diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 0000000000..8ee54e8d34 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,30 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +*.tsbuildinfo diff --git a/frontend/.npmrc b/frontend/.npmrc new file mode 100644 index 0000000000..449691b70f --- /dev/null +++ b/frontend/.npmrc @@ -0,0 +1 @@ +save-exact=true \ No newline at end of file diff --git a/frontend/.prettierignore b/frontend/.prettierignore new file mode 100644 index 0000000000..940e3fdd28 --- /dev/null +++ b/frontend/.prettierignore @@ -0,0 +1,2 @@ +**/*.svg +**/mockServiceWorker.js \ No newline at end of file diff --git a/frontend/.prettierrc.json b/frontend/.prettierrc.json new file mode 100644 index 0000000000..6d8d37b10f --- /dev/null +++ b/frontend/.prettierrc.json @@ -0,0 +1,15 @@ +{ + "printWidth": 250, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "endOfLine": "auto", + "overrides": [ + { + "files": "public/js/app.constants.js", + "options": { + "singleQuote": true + } + } + ] +} diff --git a/frontend/env.d.ts b/frontend/env.d.ts new file mode 100644 index 0000000000..11f02fe2a0 --- /dev/null +++ b/frontend/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/frontend/eslint.config.mjs b/frontend/eslint.config.mjs new file mode 100644 index 0000000000..e5da58a06e --- /dev/null +++ b/frontend/eslint.config.mjs @@ -0,0 +1,29 @@ +import globals from "globals"; +import pluginJs from "@eslint/js"; +import tseslint from "typescript-eslint"; +import pluginVue from "eslint-plugin-vue"; +import pluginPromise from "eslint-plugin-promise"; +import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended"; + +export default tseslint.config( + { + ignores: ["node_modules/**", "dist/**", "public/js/app.constants.js", "public/mockServiceWorker.js"], + }, + { + files: ["**/*.{js,mjs,ts,vue}"], + languageOptions: { globals: globals.browser, ecmaVersion: "latest", parserOptions: { parser: tseslint.parser } }, + extends: [pluginJs.configs.recommended, ...tseslint.configs.recommended, ...pluginVue.configs["flat/essential"], pluginPromise.configs["flat/recommended"], eslintPluginPrettierRecommended], + rules: { + "no-duplicate-imports": "error", + "promise/prefer-await-to-then": "error", + "require-await": "error", + "no-await-in-loop": "warn", + "prefer-rest-params": "error", + "prefer-spread": "error", + "no-var": "error", + "prefer-const": "error", + eqeqeq: ["error", "smart"], + "no-throw-literal": "warn", + }, + } +); diff --git a/frontend/index.html b/frontend/index.html new file mode 100644 index 0000000000..3d5413ce32 --- /dev/null +++ b/frontend/index.html @@ -0,0 +1,14 @@ + + + + + + + ServicePulse + + +
+
+ + + diff --git a/frontend/package-lock.json b/frontend/package-lock.json new file mode 100644 index 0000000000..285a1dc94d --- /dev/null +++ b/frontend/package-lock.json @@ -0,0 +1,9090 @@ +{ + "name": "service-pulse", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "service-pulse", + "version": "1.0.0", + "dependencies": { + "@codemirror/lang-json": "6.0.2", + "@codemirror/lang-xml": "6.1.0", + "@codemirror/legacy-modes": "6.5.2", + "@dagrejs/dagre": "1.1.8", + "@fortawesome/fontawesome-svg-core": "7.1.0", + "@fortawesome/free-brands-svg-icons": "7.1.0", + "@fortawesome/free-regular-svg-icons": "7.1.0", + "@fortawesome/free-solid-svg-icons": "7.1.0", + "@fortawesome/vue-fontawesome": "3.1.2", + "@tinyhttp/content-disposition": "2.2.2", + "@vue-flow/controls": "1.1.3", + "@vue-flow/core": "1.47.0", + "@vuepic/vue-datepicker": "12.0.5", + "@vueuse/core": "14.0.0", + "bootstrap": "5.3.8", + "codemirror": "6.0.2", + "diff": "8.0.2", + "hex-to-css-filter": "6.0.0", + "lossless-json": "4.3.0", + "moment": "2.30.1", + "pinia": "3.0.4", + "vue": "3.5.24", + "vue-codemirror6": "1.4.1", + "vue-router": "4.6.3", + "vue-tippy": "6.7.1", + "vue-toastification": "2.0.0-rc.5", + "vue3-cookies": "1.0.6", + "vue3-simple-typeahead": "1.0.11", + "xml-formatter": "3.6.7" + }, + "devDependencies": { + "@eslint/js": "9.39.1", + "@pinia/testing": "1.0.3", + "@testing-library/dom": "10.4.1", + "@testing-library/jest-dom": "6.9.1", + "@testing-library/user-event": "14.6.1", + "@testing-library/vue": "8.1.0", + "@tsconfig/node18": "18.2.6", + "@types/bootstrap": "5.2.10", + "@types/jsdom": "27.0.0", + "@types/node": "24.10.1", + "@vitejs/plugin-vue": "6.0.2", + "@vitest/coverage-v8": "4.0.10", + "@vue/tsconfig": "0.8.1", + "cross-env": "10.1.0", + "eslint": "9.39.1", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-promise": "7.2.1", + "eslint-plugin-vue": "10.5.1", + "globals": "16.5.0", + "jsdom": "26.1.0", + "msw": "2.12.2", + "prettier": "3.6.2", + "typescript": "5.9.3", + "typescript-eslint": "8.47.0", + "vite": "7.2.2", + "vite-plugin-checker": "0.11.0", + "vite-plugin-vue-devtools": "8.0.5", + "vitest": "4.0.10", + "vue-tsc": "3.1.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz", + "integrity": "sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz", + "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.3", + "@babel/types": "^7.28.2", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.3" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.3.tgz", + "integrity": "sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.27.1.tgz", + "integrity": "sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.28.0.tgz", + "integrity": "sha512-zOiZqvANjWDUaUS9xMxbMcK/Zccztbe/6ikvUXaG9nsPH3w6qh5UaPGAnirI/WhIbZ8m3OHU0ReyPrknG+ZKeg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-decorators": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.27.1.tgz", + "integrity": "sha512-YMq8Z87Lhl8EGkmb0MwYkt36QnxC+fzCgrl66ereamPlYToRpIk5nUjKUY3QKLWq8mwUB1BgbeXcTJhZOCDg5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.0.tgz", + "integrity": "sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-create-class-features-plugin": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.3.tgz", + "integrity": "sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.3", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.4", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-1.0.2.tgz", + "integrity": "sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.18.6", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.18.6.tgz", + "integrity": "sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.8.1.tgz", + "integrity": "sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.27.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-json": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-json/-/lang-json-6.0.2.tgz", + "integrity": "sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@lezer/json": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-xml": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz", + "integrity": "sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==", + "license": "MIT", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0", + "@lezer/xml": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.3.tgz", + "integrity": "sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.1.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/legacy-modes": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/legacy-modes/-/legacy-modes-6.5.2.tgz", + "integrity": "sha512-/jJbwSTazlQEDOQw2FJ8LEEKVS72pU0lx6oM54kGpL8t/NJ2Jda3CZ4pcltiKTdqYSRk3ug1B3pil1gsjA6+8Q==", + "license": "MIT", + "dependencies": { + "@codemirror/language": "^6.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.8.5", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.8.5.tgz", + "integrity": "sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.35.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/search": { + "version": "6.5.11", + "resolved": "https://registry.npmjs.org/@codemirror/search/-/search-6.5.11.tgz", + "integrity": "sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.5.2.tgz", + "integrity": "sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@marijn/find-cluster-break": "^1.0.0" + } + }, + "node_modules/@codemirror/view": { + "version": "6.38.1", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.38.1.tgz", + "integrity": "sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/state": "^6.5.0", + "crelt": "^1.0.6", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.1.0.tgz", + "integrity": "sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.1.0.tgz", + "integrity": "sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.1.0", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/@dagrejs/dagre": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@dagrejs/dagre/-/dagre-1.1.8.tgz", + "integrity": "sha512-5SEDlndt4W/LaVzPYJW+bSmSEZc9EzTf8rJ20WCKvjS5EAZAN0b+x0Yww7VMT4R3Wootkg+X9bUfUxazYw6Blw==", + "license": "MIT", + "dependencies": { + "@dagrejs/graphlib": "2.2.4" + } + }, + "node_modules/@dagrejs/graphlib": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@dagrejs/graphlib/-/graphlib-2.2.4.tgz", + "integrity": "sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==", + "license": "MIT", + "engines": { + "node": ">17.0.0" + } + }, + "node_modules/@date-fns/tz": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@date-fns/tz/-/tz-1.4.1.tgz", + "integrity": "sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==", + "license": "MIT" + }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.9.tgz", + "integrity": "sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.9.tgz", + "integrity": "sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.9.tgz", + "integrity": "sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.9.tgz", + "integrity": "sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.9.tgz", + "integrity": "sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.9.tgz", + "integrity": "sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.9.tgz", + "integrity": "sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.9.tgz", + "integrity": "sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.9.tgz", + "integrity": "sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.9.tgz", + "integrity": "sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.9.tgz", + "integrity": "sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.9.tgz", + "integrity": "sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.9.tgz", + "integrity": "sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.9.tgz", + "integrity": "sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.9.tgz", + "integrity": "sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.9.tgz", + "integrity": "sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.9.tgz", + "integrity": "sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.9.tgz", + "integrity": "sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.9.tgz", + "integrity": "sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.9.tgz", + "integrity": "sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.9.tgz", + "integrity": "sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.9.tgz", + "integrity": "sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.9.tgz", + "integrity": "sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.9.tgz", + "integrity": "sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.9.tgz", + "integrity": "sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.9.tgz", + "integrity": "sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.3.tgz", + "integrity": "sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.4.tgz", + "integrity": "sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.3", + "@floating-ui/utils": "^0.2.10" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz", + "integrity": "sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==", + "license": "MIT" + }, + "node_modules/@floating-ui/vue": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@floating-ui/vue/-/vue-1.1.9.tgz", + "integrity": "sha512-BfNqNW6KA83Nexspgb9DZuz578R7HT8MZw1CfK9I6Ah4QReNWEJsXWHN+SdmOVLNGmTPDi+fDT535Df5PzMLbQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.7.4", + "@floating-ui/utils": "^0.2.10", + "vue-demi": ">=0.13.0" + } + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-7.1.0.tgz", + "integrity": "sha512-l/BQM7fYntsCI//du+6sEnHOP6a74UixFyOYUyz2DLMXKx+6DEhfR3F2NYGE45XH1JJuIamacb4IZs9S0ZOWLA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-7.1.0.tgz", + "integrity": "sha512-fNxRUk1KhjSbnbuBxlWSnBLKLBNun52ZBTcs22H/xEEzM6Ap81ZFTQ4bZBxVQGQgVY0xugKGoRcCbaKjLQ3XZA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-7.1.0.tgz", + "integrity": "sha512-9byUd9bgNfthsZAjBl6GxOu1VPHgBuRUP9juI7ZoM98h8xNPTCTagfwUFyYscdZq4Hr7gD1azMfM9s5tIWKZZA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-7.1.0.tgz", + "integrity": "sha512-0e2fdEyB4AR+e6kU4yxwA/MonnYcw/CsMEP9lH82ORFi9svA6/RhDyhxIv5mlJaldmaHLLYVTb+3iEr+PDSZuQ==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-7.1.0.tgz", + "integrity": "sha512-Udu3K7SzAo9N013qt7qmm22/wo2hADdheXtBfxFTecp+ogsc0caQNRKEb7pkvvagUGOpG9wJC1ViH6WXs8oXIA==", + "license": "(CC-BY-4.0 AND MIT)", + "dependencies": { + "@fortawesome/fontawesome-common-types": "7.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/vue-fontawesome": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.1.2.tgz", + "integrity": "sha512-mhYnBIuuW8OIMHf31kOjaBmyE7BMrwBorhrOHVud6vTTu+7IPQNWB+DWaHoE75v10dRF5s/dFtcrgE7vKSEWwQ==", + "license": "MIT", + "peerDependencies": { + "@fortawesome/fontawesome-svg-core": "~1 || ~6 || ~7", + "vue": ">= 3.0.0 < 4" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@inquirer/core/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/balanced-match": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", + "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/brace-expansion": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", + "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@isaacs/balanced-match": "^4.0.1" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", + "license": "MIT" + }, + "node_modules/@lezer/highlight": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.1.tgz", + "integrity": "sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/json": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@lezer/json/-/json-1.0.3.tgz", + "integrity": "sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", + "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/xml": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@lezer/xml/-/xml-1.0.6.tgz", + "integrity": "sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==", + "license": "MIT", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@marijn/find-cluster-break": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@marijn/find-cluster-break/-/find-cluster-break-1.0.2.tgz", + "integrity": "sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==", + "license": "MIT" + }, + "node_modules/@mswjs/interceptors": { + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.40.0.tgz", + "integrity": "sha512-EFd6cVbHsgLa6wa4RljGj6Wk75qoHxUSyc5asLyyPSyuhIcdS2Q3Phw6ImS1q+CkALthJRShiYfKANcQMuMqsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@open-draft/deferred-promise": "^2.2.0", + "@open-draft/logger": "^0.3.0", + "@open-draft/until": "^2.0.0", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "strict-event-emitter": "^0.5.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@one-ini/wasm": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz", + "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@open-draft/logger": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-node-process": "^1.2.0", + "outvariant": "^1.4.0" + } + }, + "node_modules/@open-draft/until": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@pinia/testing": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@pinia/testing/-/testing-1.0.3.tgz", + "integrity": "sha512-g+qR49GNdI1Z8rZxKrQC3GN+LfnGTNf5Kk8Nz5Cz6mIGva5WRS+ffPXQfzhA0nu6TveWzPNYTjGl4nJqd3Cu9Q==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "pinia": ">=3.0.4" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.29", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", + "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", + "dev": true, + "license": "MIT" + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.50", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.50.tgz", + "integrity": "sha512-5e76wQiQVeL1ICOZVUg4LSOVYg9jyhGCin+icYozhsUzM+fHE7kddi1bdiE0jwVqTfkjba3jUFbEkoC9WkdvyA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.48.1.tgz", + "integrity": "sha512-rGmb8qoG/zdmKoYELCBwu7vt+9HxZ7Koos3pD0+sH5fR3u3Wb/jGcpnqxcnWsPEKDUyzeLSqksN8LJtgXjqBYw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.48.1.tgz", + "integrity": "sha512-4e9WtTxrk3gu1DFE+imNJr4WsL13nWbD/Y6wQcyku5qadlKHY3OQ3LJ/INrrjngv2BJIHnIzbqMk1GTAC2P8yQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.48.1.tgz", + "integrity": "sha512-+XjmyChHfc4TSs6WUQGmVf7Hkg8ferMAE2aNYYWjiLzAS/T62uOsdfnqv+GHRjq7rKRnYh4mwWb4Hz7h/alp8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.48.1.tgz", + "integrity": "sha512-upGEY7Ftw8M6BAJyGwnwMw91rSqXTcOKZnnveKrVWsMTF8/k5mleKSuh7D4v4IV1pLxKAk3Tbs0Lo9qYmii5mQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.48.1.tgz", + "integrity": "sha512-P9ViWakdoynYFUOZhqq97vBrhuvRLAbN/p2tAVJvhLb8SvN7rbBnJQcBu8e/rQts42pXGLVhfsAP0k9KXWa3nQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.48.1.tgz", + "integrity": "sha512-VLKIwIpnBya5/saccM8JshpbxfyJt0Dsli0PjXozHwbSVaHTvWXJH1bbCwPXxnMzU4zVEfgD1HpW3VQHomi2AQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.48.1.tgz", + "integrity": "sha512-3zEuZsXfKaw8n/yF7t8N6NNdhyFw3s8xJTqjbTDXlipwrEHo4GtIKcMJr5Ed29leLpB9AugtAQpAHW0jvtKKaQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.48.1.tgz", + "integrity": "sha512-leo9tOIlKrcBmmEypzunV/2w946JeLbTdDlwEZ7OnnsUyelZ72NMnT4B2vsikSgwQifjnJUbdXzuW4ToN1wV+Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.48.1.tgz", + "integrity": "sha512-Vy/WS4z4jEyvnJm+CnPfExIv5sSKqZrUr98h03hpAMbE2aI0aD2wvK6GiSe8Gx2wGp3eD81cYDpLLBqNb2ydwQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.48.1.tgz", + "integrity": "sha512-x5Kzn7XTwIssU9UYqWDB9VpLpfHYuXw5c6bJr4Mzv9kIv242vmJHbI5PJJEnmBYitUIfoMCODDhR7KoZLot2VQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.48.1.tgz", + "integrity": "sha512-yzCaBbwkkWt/EcgJOKDUdUpMHjhiZT/eDktOPWvSRpqrVE04p0Nd6EGV4/g7MARXXeOqstflqsKuXVM3H9wOIQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.48.1.tgz", + "integrity": "sha512-UK0WzWUjMAJccHIeOpPhPcKBqax7QFg47hwZTp6kiMhQHeOYJeaMwzeRZe1q5IiTKsaLnHu9s6toSYVUlZ2QtQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.48.1.tgz", + "integrity": "sha512-3NADEIlt+aCdCbWVZ7D3tBjBX1lHpXxcvrLt/kdXTiBrOds8APTdtk2yRL2GgmnSVeX4YS1JIf0imFujg78vpw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.48.1.tgz", + "integrity": "sha512-euuwm/QTXAMOcyiFCcrx0/S2jGvFlKJ2Iro8rsmYL53dlblp3LkUQVFzEidHhvIPPvcIsxDhl2wkBE+I6YVGzA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.48.1.tgz", + "integrity": "sha512-w8mULUjmPdWLJgmTYJx/W6Qhln1a+yqvgwmGXcQl2vFBkWsKGUBRbtLRuKJUln8Uaimf07zgJNxOhHOvjSQmBQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.48.1.tgz", + "integrity": "sha512-90taWXCWxTbClWuMZD0DKYohY1EovA+W5iytpE89oUPmT5O1HFdf8cuuVIylE6vCbrGdIGv85lVRzTcpTRZ+kA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.48.1.tgz", + "integrity": "sha512-2Gu29SkFh1FfTRuN1GR1afMuND2GKzlORQUP3mNMJbqdndOg7gNsa81JnORctazHRokiDzQ5+MLE5XYmZW5VWg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.48.1.tgz", + "integrity": "sha512-6kQFR1WuAO50bxkIlAVeIYsz3RUx+xymwhTo9j94dJ+kmHe9ly7muH23sdfWduD0BA8pD9/yhonUvAjxGh34jQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.48.1.tgz", + "integrity": "sha512-RUyZZ/mga88lMI3RlXFs4WQ7n3VyU07sPXmMG7/C1NOi8qisUg57Y7LRarqoGoAiopmGmChUhSwfpvQ3H5iGSQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.48.1.tgz", + "integrity": "sha512-8a/caCUN4vkTChxkaIJcMtwIVcBhi4X2PQRoT+yCK3qRYaZ7cURrmJFL5Ux9H9RaMIXj9RuihckdmkBX3zZsgg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@standard-schema/spec": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.0.0.tgz", + "integrity": "sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@testing-library/vue": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@testing-library/vue/-/vue-8.1.0.tgz", + "integrity": "sha512-ls4RiHO1ta4mxqqajWRh8158uFObVrrtAPoxk7cIp4HrnQUj/ScKzqz53HxYpG3X6Zb7H2v+0eTGLSoy8HQ2nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.23.2", + "@testing-library/dom": "^9.3.3", + "@vue/test-utils": "^2.4.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "@vue/compiler-sfc": ">= 3", + "vue": ">= 3" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } + } + }, + "node_modules/@testing-library/vue/node_modules/@testing-library/dom": { + "version": "9.3.4", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.4.tgz", + "integrity": "sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/vue/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@tinyhttp/content-disposition": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@tinyhttp/content-disposition/-/content-disposition-2.2.2.tgz", + "integrity": "sha512-crXw1txzrS36huQOyQGYFvhTeLeG0Si1xu+/l6kXUVYpE0TjFjEZRqTbuadQLfKGZ0jaI+jJoRyqaWwxOSHW2g==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "funding": { + "type": "individual", + "url": "https://github.com/tinyhttp/tinyhttp?sponsor=1" + } + }, + "node_modules/@tsconfig/node18": { + "version": "18.2.6", + "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.6.tgz", + "integrity": "sha512-eAWQzAjPj18tKnDzmWstz4OyWewLUNBm9tdoN9LayzoboRktYx3Enk1ZXPmThj55L7c4VWYq/Bzq0A51znZfhw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/bootstrap": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz", + "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.2" + } + }, + "node_modules/@types/chai": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" + } + }, + "node_modules/@types/deep-eql": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", + "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/jsdom": { + "version": "27.0.0", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-27.0.0.tgz", + "integrity": "sha512-NZyFl/PViwKzdEkQg96gtnB8wm+1ljhdDay9ahn4hgb+SfVtPCbm3TlmDUFXTA+MGN3CijicnMhG18SI5H3rFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "24.10.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", + "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.16.0" + } + }, + "node_modules/@types/statuses": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-2.0.6.tgz", + "integrity": "sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz", + "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/type-utils": "8.47.0", + "@typescript-eslint/utils": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", + "graphemer": "^1.4.0", + "ignore": "^7.0.0", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.47.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.47.0.tgz", + "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", + "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.47.0", + "@typescript-eslint/types": "^8.47.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", + "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", + "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz", + "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.47.0.tgz", + "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", + "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.47.0", + "@typescript-eslint/tsconfig-utils": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.47.0.tgz", + "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", + "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.47.0", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.2.tgz", + "integrity": "sha512-iHmwV3QcVGGvSC1BG5bZ4z6iwa1SOpAPWmnjOErd4Ske+lZua5K9TtAVdx0gMBClJ28DViCbSmZitjWZsWO3LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.50" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vitest/coverage-v8": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-4.0.10.tgz", + "integrity": "sha512-g+brmtoKa/sAeIohNJnnWhnHtU6GuqqVOSQ4SxDIPcgZWZyhJs5RmF5LpqXs8Kq64lANP+vnbn5JLzhLj/G56g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^1.0.2", + "@vitest/utils": "4.0.10", + "ast-v8-to-istanbul": "^0.3.8", + "debug": "^4.4.3", + "istanbul-lib-coverage": "^3.2.2", + "istanbul-lib-report": "^3.0.1", + "istanbul-lib-source-maps": "^5.0.6", + "istanbul-reports": "^3.2.0", + "magicast": "^0.5.1", + "std-env": "^3.10.0", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@vitest/browser": "4.0.10", + "vitest": "4.0.10" + }, + "peerDependenciesMeta": { + "@vitest/browser": { + "optional": true + } + } + }, + "node_modules/@vitest/expect": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.0.10.tgz", + "integrity": "sha512-3QkTX/lK39FBNwARCQRSQr0TP9+ywSdxSX+LgbJ2M1WmveXP72anTbnp2yl5fH+dU6SUmBzNMrDHs80G8G2DZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@standard-schema/spec": "^1.0.0", + "@types/chai": "^5.2.2", + "@vitest/spy": "4.0.10", + "@vitest/utils": "4.0.10", + "chai": "^6.2.1", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.0.10.tgz", + "integrity": "sha512-e2OfdexYkjkg8Hh3L9NVEfbwGXq5IZbDovkf30qW2tOh7Rh9sVtmSr2ztEXOFbymNxS4qjzLXUQIvATvN4B+lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "4.0.10", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.21" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.0.10.tgz", + "integrity": "sha512-99EQbpa/zuDnvVjthwz5bH9o8iPefoQZ63WV8+bsRJZNw3qQSvSltfut8yu1Jc9mqOYi7pEbsKxYTi/rjaq6PA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.0.10.tgz", + "integrity": "sha512-EXU2iSkKvNwtlL8L8doCpkyclw0mc/t4t9SeOnfOFPyqLmQwuceMPA4zJBa6jw0MKsZYbw7kAn+gl7HxrlB8UQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "4.0.10", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.0.10.tgz", + "integrity": "sha512-2N4X2ZZl7kZw0qeGdQ41H0KND96L3qX1RgwuCfy6oUsF2ISGD/HpSbmms+CkIOsQmg2kulwfhJ4CI0asnZlvkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.10", + "magic-string": "^0.30.21", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.0.10.tgz", + "integrity": "sha512-AsY6sVS8OLb96GV5RoG8B6I35GAbNrC49AO+jNRF9YVGb/g9t+hzNm1H6kD0NDp8tt7VJLs6hb7YMkDXqu03iw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.0.10.tgz", + "integrity": "sha512-kOuqWnEwZNtQxMKg3WmPK1vmhZu9WcoX69iwWjVz+jvKTsF1emzsv3eoPcDr6ykA3qP2bsCQE7CwqfNtAVzsmg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "4.0.10", + "tinyrainbow": "^3.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@volar/language-core": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.23.tgz", + "integrity": "sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/source-map": "2.4.23" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.23.tgz", + "integrity": "sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@volar/typescript": { + "version": "2.4.23", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.23.tgz", + "integrity": "sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.23", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue-flow/controls": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@vue-flow/controls/-/controls-1.1.3.tgz", + "integrity": "sha512-XCf+G+jCvaWURdFlZmOjifZGw3XMhN5hHlfMGkWh9xot+9nH9gdTZtn+ldIJKtarg3B21iyHU8JjKDhYcB6JMw==", + "license": "MIT", + "peerDependencies": { + "@vue-flow/core": "^1.23.0", + "vue": "^3.3.0" + } + }, + "node_modules/@vue-flow/core": { + "version": "1.47.0", + "resolved": "https://registry.npmjs.org/@vue-flow/core/-/core-1.47.0.tgz", + "integrity": "sha512-w+qrm/xjQP5NUeKUOMIbQvpOeivTbGZtY2lGffK5kHiN3ZLyEazhESc8OeIV9NZkK2T5DIeyX/nhHxCC45HLiw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vueuse/core": "^10.5.0", + "d3-drag": "^3.0.0", + "d3-interpolate": "^3.0.1", + "d3-selection": "^3.0.0", + "d3-zoom": "^3.0.0" + }, + "peerDependencies": { + "vue": "^3.3.0" + } + }, + "node_modules/@vue-flow/core/node_modules/@types/web-bluetooth": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz", + "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==", + "license": "MIT" + }, + "node_modules/@vue-flow/core/node_modules/@vueuse/core": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.1.tgz", + "integrity": "sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.20", + "@vueuse/metadata": "10.11.1", + "@vueuse/shared": "10.11.1", + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue-flow/core/node_modules/@vueuse/metadata": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.1.tgz", + "integrity": "sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue-flow/core/node_modules/@vueuse/shared": { + "version": "10.11.1", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.1.tgz", + "integrity": "sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==", + "license": "MIT", + "dependencies": { + "vue-demi": ">=0.14.8" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vue/babel-helper-vue-transform-on": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.5.0.tgz", + "integrity": "sha512-0dAYkerNhhHutHZ34JtTl2czVQHUNWv6xEbkdF5W+Yrv5pCWsqjeORdOgbtW2I9gWlt+wBmVn+ttqN9ZxR5tzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/babel-plugin-jsx": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.5.0.tgz", + "integrity": "sha512-mneBhw1oOqCd2247O0Yw/mRwC9jIGACAJUlawkmMBiNmL4dGA2eMzuNZVNqOUfYTa6vqmND4CtOPzmEEEqLKFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.0", + "@babel/types": "^7.28.2", + "@vue/babel-helper-vue-transform-on": "1.5.0", + "@vue/babel-plugin-resolve-type": "1.5.0", + "@vue/shared": "^3.5.18" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + } + } + }, + "node_modules/@vue/babel-plugin-resolve-type": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.5.0.tgz", + "integrity": "sha512-Wm/60o+53JwJODm4Knz47dxJnLDJ9FnKnGZJbUUf8nQRAtt6P+undLUAVU3Ha33LxOJe6IPoifRQ6F/0RrU31w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/parser": "^7.28.0", + "@vue/compiler-sfc": "^3.5.18" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.24.tgz", + "integrity": "sha512-eDl5H57AOpNakGNAkFDH+y7kTqrQpJkZFXhWZQGyx/5Wh7B1uQYvcWkvZi11BDhscPgj8N7XV3oRwiPnx1Vrig==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.24", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-core/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@vue/compiler-core/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.24.tgz", + "integrity": "sha512-1QHGAvs53gXkWdd3ZMGYuvQFXHW4ksKWPG8HP8/2BscrbZ0brw183q2oNWjMrSWImYLHxHrx1ItBQr50I/q2zw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.24", + "@vue/shared": "3.5.24" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.24.tgz", + "integrity": "sha512-8EG5YPRgmTB+YxYBM3VXy8zHD9SWHUJLIGPhDovo3Z8VOgvP+O7UP5vl0J4BBPWYD9vxtBabzW1EuEZ+Cqs14g==", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.24", + "@vue/compiler-dom": "3.5.24", + "@vue/compiler-ssr": "3.5.24", + "@vue/shared": "3.5.24", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-sfc/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.24.tgz", + "integrity": "sha512-trOvMWNBMQ/odMRHW7Ae1CdfYx+7MuiQu62Jtu36gMLXcaoqKvAyh+P73sYG9ll+6jLB6QPovqoKGGZROzkFFg==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.24", + "@vue/shared": "3.5.24" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.7.7.tgz", + "integrity": "sha512-lwOnNBH2e7x1fIIbVT7yF5D+YWhqELm55/4ZKf45R9T8r9dE2AIOy8HKjfqzGsoTHFbWbr337O4E0A0QADnjBg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^7.7.7" + } + }, + "node_modules/@vue/devtools-core": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-8.0.5.tgz", + "integrity": "sha512-dpCw8nl0GDBuiL9SaY0mtDxoGIEmU38w+TQiYEPOLhW03VDC0lfNMYXS/qhl4I0YlysGp04NLY4UNn6xgD0VIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.0.5", + "@vue/devtools-shared": "^8.0.5", + "mitt": "^3.0.1", + "nanoid": "^5.1.5", + "pathe": "^2.0.3", + "vite-hot-client": "^2.1.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vue/devtools-core/node_modules/@vue/devtools-kit": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.5.tgz", + "integrity": "sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.0.5", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^2.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-core/node_modules/@vue/devtools-shared": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.5.tgz", + "integrity": "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/devtools-core/node_modules/nanoid": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.1.6.tgz", + "integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, + "node_modules/@vue/devtools-core/node_modules/perfect-debounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vue/devtools-kit": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.7.7.tgz", + "integrity": "sha512-wgoZtxcTta65cnZ1Q6MbAfePVFxfM+gq0saaeytoph7nEa7yMXoi6sCPy4ufO111B9msnw0VOWjPEFCXuAKRHA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^7.7.7", + "birpc": "^2.3.0", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^1.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/@vue/devtools-shared": { + "version": "7.7.7", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.7.7.tgz", + "integrity": "sha512-+udSj47aRl5aKb0memBvcUG9koarqnxNM5yjuREvqwK6T3ap4mn3Zqqc17QrBFTqSMjr3HK1cvStEZpMDpfdyw==", + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/@vue/language-core": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-3.1.4.tgz", + "integrity": "sha512-n/58wm8SkmoxMWkUNUH/PwoovWe4hmdyPJU2ouldr3EPi1MLoS7iDN46je8CsP95SnVBs2axInzRglPNKvqMcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/language-core": "2.4.23", + "@vue/compiler-dom": "^3.5.0", + "@vue/shared": "^3.5.0", + "alien-signals": "^3.0.0", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1", + "picomatch": "^4.0.2" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.24.tgz", + "integrity": "sha512-BM8kBhtlkkbnyl4q+HiF5R5BL0ycDPfihowulm02q3WYp2vxgPcJuZO866qa/0u3idbMntKEtVNuAUp5bw4teg==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.24" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.24.tgz", + "integrity": "sha512-RYP/byyKDgNIqfX/gNb2PB55dJmM97jc9wyF3jK7QUInYKypK2exmZMNwnjueWwGceEkP6NChd3D2ZVEp9undQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.24", + "@vue/shared": "3.5.24" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.24.tgz", + "integrity": "sha512-Z8ANhr/i0XIluonHVjbUkjvn+CyrxbXRIxR7wn7+X7xlcb7dJsfITZbkVOeJZdP8VZwfrWRsWdShH6pngMxRjw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.24", + "@vue/runtime-core": "3.5.24", + "@vue/shared": "3.5.24", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.24.tgz", + "integrity": "sha512-Yh2j2Y4G/0/4z/xJ1Bad4mxaAk++C2v4kaa8oSYTMJBJ00/ndPuxCnWeot0/7/qafQFLh5pr6xeV6SdMcE/G1w==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.24", + "@vue/shared": "3.5.24" + }, + "peerDependencies": { + "vue": "3.5.24" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.24.tgz", + "integrity": "sha512-9cwHL2EsJBdi8NY22pngYYWzkTDhld6fAD6jlaeloNGciNSJL6bLpbxVgXl96X00Jtc6YWQv96YA/0sxex/k1A==", + "license": "MIT" + }, + "node_modules/@vue/test-utils": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz", + "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==", + "dev": true, + "license": "MIT", + "dependencies": { + "js-beautify": "^1.14.9", + "vue-component-type-helpers": "^2.0.0" + } + }, + "node_modules/@vue/tsconfig": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.8.1.tgz", + "integrity": "sha512-aK7feIWPXFSUhsCP9PFqPyFOcz4ENkb8hZ2pneL6m2UjCkccvaOhC/5KCKluuBufvp2KzkbdA2W2pk20vLzu3g==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": "5.x", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vuepic/vue-datepicker": { + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/@vuepic/vue-datepicker/-/vue-datepicker-12.0.5.tgz", + "integrity": "sha512-kxvJOIcU6ZuEIt4Yvo9QVNiPIKCT9cqZiQfz244ojkCwHHOCrmssjRxX4GyZ1may3snXm5XM9c2Vk1G0RXtClQ==", + "license": "MIT", + "dependencies": { + "@date-fns/tz": "^1.4.1", + "@floating-ui/vue": "^1.1.9", + "@vueuse/core": "^14.0.0", + "date-fns": "^4.1.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "vue": ">=3.5.0" + } + }, + "node_modules/@vueuse/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-14.0.0.tgz", + "integrity": "sha512-d6tKRWkZE8IQElX2aHBxXOMD478fHIYV+Dzm2y9Ag122ICBpNKtGICiXKOhWU3L1kKdttDD9dCMS4bGP3jhCTQ==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.0.0", + "@vueuse/shared": "14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-14.0.0.tgz", + "integrity": "sha512-6yoGqbJcMldVCevkFiHDBTB1V5Hq+G/haPlGIuaFZHpXC0HADB0EN1ryQAAceiW+ryS3niUwvdFbGiqHqBrfVA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-14.0.0.tgz", + "integrity": "sha512-mTCA0uczBgurRlwVaQHfG0Ja7UdGe4g9mwffiJmvLiTtp1G4AQyIjej6si/k8c8pUwTfVpNufck+23gXptPAkw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/alien-signals": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/alien-signals/-/alien-signals-3.1.0.tgz", + "integrity": "sha512-yufC6VpSy8tK3I0lO67pjumo5JvDQVQyr38+3OHqe6CHl1t2VZekKZ7EKKZSqk0cRmE7U7tfZbpXiKNzuc+ckg==", + "dev": true, + "license": "MIT" + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-4.2.0.tgz", + "integrity": "sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, + "node_modules/ast-v8-to-istanbul": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/ast-v8-to-istanbul/-/ast-v8-to-istanbul-0.3.8.tgz", + "integrity": "sha512-szgSZqUxI5T8mLKvS7WTjF9is+MVbOeLADU73IseOcrqhxr/VAvy6wfoVE39KnKzA7JRhjF5eUagNlHwvZPlKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.31", + "estree-walker": "^3.0.3", + "js-tokens": "^9.0.1" + } + }, + "node_modules/ast-v8-to-istanbul/node_modules/js-tokens": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.1.tgz", + "integrity": "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.14", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.14.tgz", + "integrity": "sha512-GM9c0cWWR8Ga7//Ves/9KRgTS8nLausCkP3CGiFLrnwA2CDUluXgaQqvrULoR2Ujrd/mz/lkX87F5BHFsNr5sQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/birpc": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/birpc/-/birpc-2.6.1.tgz", + "integrity": "sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true, + "license": "ISC" + }, + "node_modules/bootstrap": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.3.8.tgz", + "integrity": "sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/twbs" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + } + ], + "license": "MIT", + "peerDependencies": { + "@popperjs/core": "^2.11.8" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "peer": true, + "dependencies": { + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", + "update-browserslist-db": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001749", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz", + "integrity": "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chai": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.1.tgz", + "integrity": "sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/codemirror": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-6.0.2.tgz", + "integrity": "sha512-VhydHotNW5w1UGK0Qj96BwSk/Zqbp9WbnyK2W/eVMv4QyF41INRGpjUhFJY7/uDNuudSc33a/PKr4iDqRduvHw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/copy-anything": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", + "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", + "license": "MIT", + "dependencies": { + "is-what": "^4.1.8" + }, + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", + "license": "MIT" + }, + "node_modules/cross-env": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", + "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/d3-color": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz", + "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-dispatch": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz", + "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-drag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz", + "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-selection": "3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-ease": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz", + "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-interpolate": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz", + "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-selection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", + "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", + "license": "ISC", + "peer": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-timer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz", + "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/d3-transition": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz", + "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==", + "license": "ISC", + "dependencies": { + "d3-color": "1 - 3", + "d3-dispatch": "1 - 3", + "d3-ease": "1 - 3", + "d3-interpolate": "1 - 3", + "d3-timer": "1 - 3" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "d3-selection": "2 - 3" + } + }, + "node_modules/d3-zoom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz", + "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==", + "license": "ISC", + "dependencies": { + "d3-dispatch": "1 - 3", + "d3-drag": "2 - 3", + "d3-interpolate": "1 - 3", + "d3-selection": "2 - 3", + "d3-transition": "2 - 3" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/date-fns": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-4.1.0.tgz", + "integrity": "sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dev": true, + "license": "MIT", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.2.tgz", + "integrity": "sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, + "node_modules/editorconfig": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", + "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@one-ini/wasm": "0.1.1", + "commander": "^10.0.0", + "minimatch": "9.0.1", + "semver": "^7.5.3" + }, + "bin": { + "editorconfig": "bin/editorconfig" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/editorconfig/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/editorconfig/node_modules/minimatch": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", + "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.233", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.233.tgz", + "integrity": "sha512-iUdTQSf7EFXsDdQsp8MwJz5SVk4APEFqXU/S47OtQ0YLqacSwPXdZ5vRlMX3neb07Cy2vgioNuRnWUXFwuslkg==", + "dev": true, + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/entities": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-stack-parser-es": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-1.0.5.tgz", + "integrity": "sha512-5qucVt2XcuGMcEGgWI7i+yZpmpByQ8J1lHhcL7PwqCwu9FPP3VUXzT4ltHe5i2z9dePwEHcDVOAfSnHsOlCXRA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.9.tgz", + "integrity": "sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.9", + "@esbuild/android-arm": "0.25.9", + "@esbuild/android-arm64": "0.25.9", + "@esbuild/android-x64": "0.25.9", + "@esbuild/darwin-arm64": "0.25.9", + "@esbuild/darwin-x64": "0.25.9", + "@esbuild/freebsd-arm64": "0.25.9", + "@esbuild/freebsd-x64": "0.25.9", + "@esbuild/linux-arm": "0.25.9", + "@esbuild/linux-arm64": "0.25.9", + "@esbuild/linux-ia32": "0.25.9", + "@esbuild/linux-loong64": "0.25.9", + "@esbuild/linux-mips64el": "0.25.9", + "@esbuild/linux-ppc64": "0.25.9", + "@esbuild/linux-riscv64": "0.25.9", + "@esbuild/linux-s390x": "0.25.9", + "@esbuild/linux-x64": "0.25.9", + "@esbuild/netbsd-arm64": "0.25.9", + "@esbuild/netbsd-x64": "0.25.9", + "@esbuild/openbsd-arm64": "0.25.9", + "@esbuild/openbsd-x64": "0.25.9", + "@esbuild/openharmony-arm64": "0.25.9", + "@esbuild/sunos-x64": "0.25.9", + "@esbuild/win32-arm64": "0.25.9", + "@esbuild/win32-ia32": "0.25.9", + "@esbuild/win32-x64": "0.25.9" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.4.tgz", + "integrity": "sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.7" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-promise": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz", + "integrity": "sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "10.5.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-10.5.1.tgz", + "integrity": "sha512-SbR9ZBUFKgvWAbq3RrdCtWaW0IKm6wwUiApxf3BVTNfqUIo4IQQmreMg2iHFJJ6C/0wss3LXURBJ1OwS/MhFcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.3", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "@stylistic/eslint-plugin": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0", + "@typescript-eslint/parser": "^7.0.0 || ^8.0.0", + "eslint": "^8.57.0 || ^9.0.0", + "vue-eslint-parser": "^10.0.0" + }, + "peerDependenciesMeta": { + "@stylistic/eslint-plugin": { + "optional": true + }, + "@typescript-eslint/parser": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.15.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect-type": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", + "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/glob": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-12.0.0.tgz", + "integrity": "sha512-5Qcll1z7IKgHr5g485ePDdHcNQY0k2dtv/bjYy0iuyGxQw2qSOiiXUXJ+AYQpg3HNoUMHqAruX478Jeev7UULw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "foreground-child": "^3.3.1", + "jackspeak": "^4.1.1", + "minimatch": "^10.1.1", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", + "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/brace-expansion": "^5.0.0" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "16.5.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.5.0.tgz", + "integrity": "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/graphql": { + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.12.0.tgz", + "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/headers-polyfill": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-4.0.3.tgz", + "integrity": "sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/hex-to-css-filter": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hex-to-css-filter/-/hex-to-css-filter-6.0.0.tgz", + "integrity": "sha512-nQMSn+lEF2C1ddyMVBIyIPWRnaH0ZwFi2dcTtAop6cUyY0AbkA6uI/evpkvEHMD9G9DlHf8xraMJIIJ74S+MKA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=6.10.2" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true, + "license": "MIT" + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arguments": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-node-process": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-what": { + "version": "4.1.16", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", + "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", + "license": "MIT", + "engines": { + "node": ">=12.13" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-reports": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jackspeak": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", + "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/js-beautify": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.4.tgz", + "integrity": "sha512-9/KXeZUKKJwqCXUdBxFJ3vPh467OCckSBmYDwSK/EtV090K+iMJ7zx2S3HLVDIWFQdqMIsZWbnaGiba18aWhaA==", + "dev": true, + "license": "MIT", + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^1.0.4", + "glob": "^10.4.2", + "js-cookie": "^3.0.5", + "nopt": "^7.2.1" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/js-cookie": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", + "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lossless-json": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lossless-json/-/lossless-json-4.3.0.tgz", + "integrity": "sha512-ToxOC+SsduRmdSuoLZLYAr5zy1Qu7l5XhmPWM3zefCZ5IcrzW/h108qbJUKfOlDlhvhjUK84+8PSVX0kxnit0g==", + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/magicast": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.5.1.tgz", + "integrity": "sha512-xrHS24IxaLrvuo613F719wvOIv9xPHFWQHuvGUBmPnCA/3MQxKI3b+r7n1jAoDHmsbC5bRhTZYR77invLAxVnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "source-map-js": "^1.2.1" + } + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/msw": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/msw/-/msw-2.12.2.tgz", + "integrity": "sha512-Fsr8AR5Yu6C0thoWa1Z8qGBFQLDvLsWlAn/v3CNLiUizoRqBYArK3Ex3thXpMWRr1Li5/MKLOEZ5mLygUmWi1A==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@inquirer/confirm": "^5.0.0", + "@mswjs/interceptors": "^0.40.0", + "@open-draft/deferred-promise": "^2.2.0", + "@types/statuses": "^2.0.4", + "cookie": "^1.0.2", + "graphql": "^16.8.1", + "headers-polyfill": "^4.0.2", + "is-node-process": "^1.2.0", + "outvariant": "^1.4.3", + "path-to-regexp": "^6.3.0", + "picocolors": "^1.1.1", + "rettime": "^0.7.0", + "statuses": "^2.0.2", + "strict-event-emitter": "^0.5.1", + "tough-cookie": "^6.0.0", + "type-fest": "^4.26.1", + "until-async": "^3.0.2", + "yargs": "^17.7.2" + }, + "bin": { + "msw": "cli/index.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/mswjs" + }, + "peerDependencies": { + "typescript": ">= 4.8.x" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/msw/node_modules/tldts": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.18.tgz", + "integrity": "sha512-lCcgTAgMxQ1JKOWrVGo6E69Ukbnx4Gc1wiYLRf6J5NN4HRYJtCby1rPF8rkQ4a6qqoFBK5dvjJ1zJ0F7VfDSvw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^7.0.18" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/msw/node_modules/tldts-core": { + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.18.tgz", + "integrity": "sha512-jqJC13oP4FFAahv4JT/0WTDrCF9Okv7lpKtOZUGPLiAnNbACcSg8Y8T+Z9xthOmRBqi/Sob4yi0TE0miRCvF7Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/msw/node_modules/tough-cookie": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-6.0.0.tgz", + "integrity": "sha512-kXuRi1mtaKMrsLUxz3sQYvVl37B0Ns6MzfrtV5DvJceE9bPyspOqk9xxv7XbZWcfLWbFmm997vl83qUWVJA64w==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^7.0.5" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz", + "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "dev": true, + "license": "ISC", + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-6.0.0.tgz", + "integrity": "sha512-9qny7Z9DsQU8Ou39ERsPU4OZQlSTP47ShQzuKZ6PRXpYLtIFgl/DEBYEXKlvcEa+9tHVcK8CF81Y2V72qaZhWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0", + "unicorn-magic": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ohash": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/ohash/-/ohash-2.0.11.tgz", + "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/open": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.2.0.tgz", + "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "wsl-utils": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/outvariant": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true, + "license": "MIT" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-scurry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", + "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", + "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/path-to-regexp": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", + "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/perfect-debounce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/devtools-api": "^7.7.7" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.5.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true, + "license": "ISC" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/rettime": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/rettime/-/rettime-0.7.0.tgz", + "integrity": "sha512-LPRKoHnLKd/r3dVxcwO7vhCW+orkOGj9ViueosEBK6ie89CijnfRlhaDhHq/3Hxu4CkWQtxwlBG0mzTQY6uQjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.48.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.48.1.tgz", + "integrity": "sha512-jVG20NvbhTYDkGAty2/Yh7HK6/q3DGSRH4o8ALKGArmMuaauM9kLfoMZ+WliPwA5+JHr2lTn3g557FxBV87ifg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.48.1", + "@rollup/rollup-android-arm64": "4.48.1", + "@rollup/rollup-darwin-arm64": "4.48.1", + "@rollup/rollup-darwin-x64": "4.48.1", + "@rollup/rollup-freebsd-arm64": "4.48.1", + "@rollup/rollup-freebsd-x64": "4.48.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.48.1", + "@rollup/rollup-linux-arm-musleabihf": "4.48.1", + "@rollup/rollup-linux-arm64-gnu": "4.48.1", + "@rollup/rollup-linux-arm64-musl": "4.48.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.48.1", + "@rollup/rollup-linux-ppc64-gnu": "4.48.1", + "@rollup/rollup-linux-riscv64-gnu": "4.48.1", + "@rollup/rollup-linux-riscv64-musl": "4.48.1", + "@rollup/rollup-linux-s390x-gnu": "4.48.1", + "@rollup/rollup-linux-x64-gnu": "4.48.1", + "@rollup/rollup-linux-x64-musl": "4.48.1", + "@rollup/rollup-win32-arm64-msvc": "4.48.1", + "@rollup/rollup-win32-ia32-msvc": "4.48.1", + "@rollup/rollup-win32-x64-msvc": "4.48.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/run-applescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.1.0.tgz", + "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", + "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sirv": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", + "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", + "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", + "dev": true, + "license": "MIT" + }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/strict-event-emitter": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-mod": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==", + "license": "MIT", + "peer": true + }, + "node_modules/superjson": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.2.tgz", + "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==", + "license": "MIT", + "dependencies": { + "copy-anything": "^3.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, + "node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tiny-invariant": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz", + "integrity": "sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/tinyrainbow": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.0.3.tgz", + "integrity": "sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tippy.js": { + "version": "6.3.7", + "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", + "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "devOptional": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.47.0.tgz", + "integrity": "sha512-Lwe8i2XQ3WoMjua/r1PHrCTpkubPYJCAfOurtn+mtTzqB6jNd+14n9UN1bJ4s3F49x9ixAm0FLflB/JzQ57M8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.47.0", + "@typescript-eslint/parser": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/undici-types": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", + "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unicorn-magic": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.3.0.tgz", + "integrity": "sha512-+QBBXBCvifc56fsbuxZQ6Sic3wqqc3WWaqxs58gvJrcOuN83HGTCwz3oS5phzU9LthRNE9VrJCFCLUgHeeFnfA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unplugin-utils": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unplugin-utils/-/unplugin-utils-0.3.1.tgz", + "integrity": "sha512-5lWVjgi6vuHhJ526bI4nlCOmkCIF3nnfXkCMDeMJrtdvxTs6ZFCM8oNufGTsDbKv/tJ/xj8RpvXjRuPBZJuJog==", + "dev": true, + "license": "MIT", + "dependencies": { + "pathe": "^2.0.3", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=20.19.0" + }, + "funding": { + "url": "https://github.com/sponsors/sxzz" + } + }, + "node_modules/unplugin-utils/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/until-async": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/until-async/-/until-async-3.0.2.tgz", + "integrity": "sha512-IiSk4HlzAMqTUseHHe3VhIGyuFmN90zMTpD3Z3y8jeQbzLIq500MVM7Jq2vUAnTKAFPJrqwkzr6PoTcPhGcOiw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/kettanaito" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.2.tgz", + "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-dev-rpc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-dev-rpc/-/vite-dev-rpc-1.1.0.tgz", + "integrity": "sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==", + "dev": true, + "license": "MIT", + "dependencies": { + "birpc": "^2.4.0", + "vite-hot-client": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.9.0 || ^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.1 || ^7.0.0-0" + } + }, + "node_modules/vite-hot-client": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-2.1.0.tgz", + "integrity": "sha512-7SpgZmU7R+dDnSmvXE1mfDtnHLHQSisdySVR7lO8ceAXvM0otZeuQQ6C8LrS5d/aYyP/QZ0hI0L+dIPrm4YlFQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite-plugin-checker": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/vite-plugin-checker/-/vite-plugin-checker-0.11.0.tgz", + "integrity": "sha512-iUdO9Pl9UIBRPAragwi3as/BXXTtRu4G12L3CMrjx+WVTd9g/MsqNakreib9M/2YRVkhZYiTEwdH2j4Dm0w7lw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "chokidar": "^4.0.3", + "npm-run-path": "^6.0.0", + "picocolors": "^1.1.1", + "picomatch": "^4.0.3", + "tiny-invariant": "^1.3.3", + "tinyglobby": "^0.2.14", + "vscode-uri": "^3.1.0" + }, + "engines": { + "node": ">=16.11" + }, + "peerDependencies": { + "@biomejs/biome": ">=1.7", + "eslint": ">=7", + "meow": "^13.2.0", + "optionator": "^0.9.4", + "oxlint": ">=1", + "stylelint": ">=16", + "typescript": "*", + "vite": ">=5.4.20", + "vls": "*", + "vti": "*", + "vue-tsc": "~2.2.10 || ^3.0.0" + }, + "peerDependenciesMeta": { + "@biomejs/biome": { + "optional": true + }, + "eslint": { + "optional": true + }, + "meow": { + "optional": true + }, + "optionator": { + "optional": true + }, + "oxlint": { + "optional": true + }, + "stylelint": { + "optional": true + }, + "typescript": { + "optional": true + }, + "vls": { + "optional": true + }, + "vti": { + "optional": true + }, + "vue-tsc": { + "optional": true + } + } + }, + "node_modules/vite-plugin-checker/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vite-plugin-inspect": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-11.3.3.tgz", + "integrity": "sha512-u2eV5La99oHoYPHE6UvbwgEqKKOQGz86wMg40CCosP6q8BkB6e5xPneZfYagK4ojPJSj5anHCrnvC20DpwVdRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansis": "^4.1.0", + "debug": "^4.4.1", + "error-stack-parser-es": "^1.0.5", + "ohash": "^2.0.11", + "open": "^10.2.0", + "perfect-debounce": "^2.0.0", + "sirv": "^3.0.1", + "unplugin-utils": "^0.3.0", + "vite-dev-rpc": "^1.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0-0" + }, + "peerDependenciesMeta": { + "@nuxt/kit": { + "optional": true + } + } + }, + "node_modules/vite-plugin-inspect/node_modules/perfect-debounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-vue-devtools": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-8.0.5.tgz", + "integrity": "sha512-p619BlKFOqQXJ6uDWS1vUPQzuJOD6xJTfftj57JXBGoBD/yeQCowR7pnWcr/FEX4/HVkFbreI6w2uuGBmQOh6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-core": "^8.0.5", + "@vue/devtools-kit": "^8.0.5", + "@vue/devtools-shared": "^8.0.5", + "sirv": "^3.0.2", + "vite-plugin-inspect": "^11.3.3", + "vite-plugin-vue-inspector": "^5.3.2" + }, + "engines": { + "node": ">=v14.21.3" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0-0" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-kit": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-8.0.5.tgz", + "integrity": "sha512-q2VV6x1U3KJMTQPUlRMyWEKVbcHuxhqJdSr6Jtjz5uAThAIrfJ6WVZdGZm5cuO63ZnSUz0RCsVwiUUb0mDV0Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.0.5", + "birpc": "^2.6.1", + "hookable": "^5.5.3", + "mitt": "^3.0.1", + "perfect-debounce": "^2.0.0", + "speakingurl": "^14.0.1", + "superjson": "^2.2.2" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/@vue/devtools-shared": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-8.0.5.tgz", + "integrity": "sha512-bRLn6/spxpmgLk+iwOrR29KrYnJjG9DGpHGkDFG82UM21ZpJ39ztUT9OXX3g+usW7/b2z+h46I9ZiYyB07XMXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "rfdc": "^1.4.1" + } + }, + "node_modules/vite-plugin-vue-devtools/node_modules/perfect-debounce": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-2.0.0.tgz", + "integrity": "sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==", + "dev": true, + "license": "MIT" + }, + "node_modules/vite-plugin-vue-inspector": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.3.2.tgz", + "integrity": "sha512-YvEKooQcSiBTAs0DoYLfefNja9bLgkFM7NI2b07bE2SruuvX0MEa9cMaxjKVMkeCp5Nz9FRIdcN1rOdFVBeL6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.23.0", + "@babel/plugin-proposal-decorators": "^7.23.0", + "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-transform-typescript": "^7.22.15", + "@vue/babel-plugin-jsx": "^1.1.5", + "@vue/compiler-dom": "^3.3.4", + "kolorist": "^1.8.0", + "magic-string": "^0.30.4" + }, + "peerDependencies": { + "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0 || ^6.0.0-0 || ^7.0.0-0" + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vitest": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.0.10.tgz", + "integrity": "sha512-2Fqty3MM9CDwOVet/jaQalYlbcjATZwPYGcqpiYQqgQ/dLC7GuHdISKgTYIVF/kaishKxLzleKWWfbSDklyIKg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@vitest/expect": "4.0.10", + "@vitest/mocker": "4.0.10", + "@vitest/pretty-format": "4.0.10", + "@vitest/runner": "4.0.10", + "@vitest/snapshot": "4.0.10", + "@vitest/spy": "4.0.10", + "@vitest/utils": "4.0.10", + "debug": "^4.4.3", + "es-module-lexer": "^1.7.0", + "expect-type": "^1.2.2", + "magic-string": "^0.30.21", + "pathe": "^2.0.3", + "picomatch": "^4.0.3", + "std-env": "^3.10.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.15", + "tinyrainbow": "^3.0.3", + "vite": "^6.0.0 || ^7.0.0", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", + "@vitest/browser-playwright": "4.0.10", + "@vitest/browser-preview": "4.0.10", + "@vitest/browser-webdriverio": "4.0.10", + "@vitest/ui": "4.0.10", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser-playwright": { + "optional": true + }, + "@vitest/browser-preview": { + "optional": true + }, + "@vitest/browser-webdriverio": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/vitest/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/vscode-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz", + "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue": { + "version": "3.5.24", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.24.tgz", + "integrity": "sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.24", + "@vue/compiler-sfc": "3.5.24", + "@vue/runtime-dom": "3.5.24", + "@vue/server-renderer": "3.5.24", + "@vue/shared": "3.5.24" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-codemirror6": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/vue-codemirror6/-/vue-codemirror6-1.4.1.tgz", + "integrity": "sha512-mokK4q89TvxtGXzdEv3YyvfX3RJJs7VxyNjBNpdNbP+jpum/ttLvWB+TEh/ziVZq5mFrQazVPCfUV8TVI/Ji2A==", + "license": "MIT", + "dependencies": { + "vue-demi": "latest" + }, + "engines": { + "node": ">=18", + "pnpm": ">=10.3.0" + }, + "peerDependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/commands": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/search": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "codemirror": "^6.0.0", + "style-mod": "^4.0.0", + "vue": "^2.7.14 || ^3.3.4" + } + }, + "node_modules/vue-component-type-helpers": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.2.12.tgz", + "integrity": "sha512-YbGqHZ5/eW4SnkPNR44mKVc6ZKQoRs/Rux1sxC6rdwXb4qpbOSYfDr9DsTHolOTGmIKgM9j141mZbBeg05R1pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/vue-demi": { + "version": "0.14.10", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.10.tgz", + "integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz", + "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.3.tgz", + "integrity": "sha512-ARBedLm9YlbvQomnmq91Os7ck6efydTSpRP3nuOKCvgJOHNrhRoJDSKtee8kcL1Vf7nz6U+PMBL+hTvR3bTVQg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/vue-tippy": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/vue-tippy/-/vue-tippy-6.7.1.tgz", + "integrity": "sha512-gdHbBV5/Vc8gH87hQHLA7TN1K4BlLco3MAPrTb70ZYGXxx+55rAU4a4mt0fIoP+gB3etu1khUZ6c29Br1n0CiA==", + "license": "MIT", + "dependencies": { + "tippy.js": "^6.3.7" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-toastification": { + "version": "2.0.0-rc.5", + "resolved": "https://registry.npmjs.org/vue-toastification/-/vue-toastification-2.0.0-rc.5.tgz", + "integrity": "sha512-q73e5jy6gucEO/U+P48hqX+/qyXDozAGmaGgLFm5tXX4wJBcVsnGp4e/iJqlm9xzHETYOilUuwOUje2Qg1JdwA==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.2" + } + }, + "node_modules/vue-tsc": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-3.1.4.tgz", + "integrity": "sha512-GsRJxttj4WkmXW/zDwYPGMJAN3np/4jTzoDFQTpTsI5Vg/JKMWamBwamlmLihgSVHO66y9P7GX+uoliYxeI4Hw==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@volar/typescript": "2.4.23", + "@vue/language-core": "3.1.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/vue3-cookies": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vue3-cookies/-/vue3-cookies-1.0.6.tgz", + "integrity": "sha512-a1UvVD0qIgxyOqjlSOwnLnqAnz8ASltugEv8yX+96i/WGZAN9fEDci7xO4HIWZE1uToUnRq9JnFhvfDCSo45OA==", + "license": "MIT", + "dependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue3-simple-typeahead": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/vue3-simple-typeahead/-/vue3-simple-typeahead-1.0.11.tgz", + "integrity": "sha512-JKgVfWz7uENBoB4ginYw28ZVlv3LNTkFbZzbDdK2W0y+Pj2xIryfwKlkW5bYUN+w4CiPS6CmXhPma9uwUnk0Lg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "vue": "^3.0.5" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", + "license": "MIT" + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/wsl-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.1.0.tgz", + "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/xml-formatter": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/xml-formatter/-/xml-formatter-3.6.7.tgz", + "integrity": "sha512-IsfFYJQuoDqtUlKhm4EzeoBOb+fQwzQVeyxxAQ0sThn/nFnQmyLPTplqq4yRhaOENH/tAyujD2TBfIYzUKB6hg==", + "license": "MIT", + "dependencies": { + "xml-parser-xo": "^4.1.5" + }, + "engines": { + "node": ">= 16" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12" + } + }, + "node_modules/xml-parser-xo": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/xml-parser-xo/-/xml-parser-xo-4.1.5.tgz", + "integrity": "sha512-TxyRxk9sTOUg3glxSIY6f0nfuqRll2OEF8TspLgh5mZkLuBgheCn3zClcDSGJ58TvNmiwyCCuat4UajPud/5Og==", + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 0000000000..91cf4b7df9 --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,90 @@ +{ + "name": "service-pulse", + "version": "1.0.0", + "type": "module", + "description": "Production monitoring for distributed systems.", + "main": "index.html", + "scripts": { + "dev": "vite", + "dev:mocks": "cross-env NODE_ENV=dev-mocks vite", + "build": "vite build", + "type-check": "vue-tsc --build --force", + "lint": "eslint .", + "preview": "vite preview", + "test:component": "vitest run ./src", + "test:coverage": "vitest run --coverage", + "test:application:vitest": "npx vitest run ./test/specs", + "test:application": "npm run test:application:vitest" + }, + "dependencies": { + "@codemirror/lang-json": "6.0.2", + "@codemirror/lang-xml": "6.1.0", + "@codemirror/legacy-modes": "6.5.2", + "@dagrejs/dagre": "1.1.8", + "@fortawesome/fontawesome-svg-core": "7.1.0", + "@fortawesome/free-brands-svg-icons": "7.1.0", + "@fortawesome/free-regular-svg-icons": "7.1.0", + "@fortawesome/free-solid-svg-icons": "7.1.0", + "@fortawesome/vue-fontawesome": "3.1.2", + "@tinyhttp/content-disposition": "2.2.2", + "@vue-flow/controls": "1.1.3", + "@vue-flow/core": "1.47.0", + "@vuepic/vue-datepicker": "12.0.5", + "@vueuse/core": "14.0.0", + "bootstrap": "5.3.8", + "codemirror": "6.0.2", + "diff": "8.0.2", + "hex-to-css-filter": "6.0.0", + "lossless-json": "4.3.0", + "moment": "2.30.1", + "pinia": "3.0.4", + "vue": "3.5.24", + "vue-codemirror6": "1.4.1", + "vue-router": "4.6.3", + "vue-tippy": "6.7.1", + "vue-toastification": "2.0.0-rc.5", + "vue3-cookies": "1.0.6", + "vue3-simple-typeahead": "1.0.11", + "xml-formatter": "3.6.7" + }, + "devDependencies": { + "@eslint/js": "9.39.1", + "@pinia/testing": "1.0.3", + "@testing-library/dom": "10.4.1", + "@testing-library/jest-dom": "6.9.1", + "@testing-library/user-event": "14.6.1", + "@testing-library/vue": "8.1.0", + "@tsconfig/node18": "18.2.6", + "@types/bootstrap": "5.2.10", + "@types/jsdom": "27.0.0", + "@types/node": "24.10.1", + "@vitejs/plugin-vue": "6.0.2", + "@vitest/coverage-v8": "4.0.10", + "@vue/tsconfig": "0.8.1", + "cross-env": "10.1.0", + "eslint": "9.39.1", + "eslint-config-prettier": "10.1.8", + "eslint-plugin-prettier": "5.5.4", + "eslint-plugin-promise": "7.2.1", + "eslint-plugin-vue": "10.5.1", + "globals": "16.5.0", + "jsdom": "26.1.0", + "msw": "2.12.2", + "prettier": "3.6.2", + "typescript": "5.9.3", + "typescript-eslint": "8.47.0", + "vite": "7.2.2", + "vite-plugin-checker": "0.11.0", + "vite-plugin-vue-devtools": "8.0.5", + "vitest": "4.0.10", + "vue-tsc": "3.1.4" + }, + "msw": { + "workerDirectory": [ + "public" + ] + }, + "overrides": { + "glob": "^12.0.0" + } +} diff --git a/frontend/public/favicon.ico b/frontend/public/favicon.ico new file mode 100644 index 0000000000..bed01835a6 Binary files /dev/null and b/frontend/public/favicon.ico differ diff --git a/frontend/public/js/app.constants.json b/frontend/public/js/app.constants.json new file mode 100644 index 0000000000..168cc7a8ad --- /dev/null +++ b/frontend/public/js/app.constants.json @@ -0,0 +1,7 @@ +{ + "default_route": "/dashboard", + "version": "1.2.0", + "service_control_url": "http://localhost:33333/api/", + "monitoring_url": "http://localhost:33633/", + "showPendingRetry": true +} diff --git a/frontend/public/mockServiceWorker.js b/frontend/public/mockServiceWorker.js new file mode 100644 index 0000000000..f5cddde042 --- /dev/null +++ b/frontend/public/mockServiceWorker.js @@ -0,0 +1,349 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker. + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + */ + +const PACKAGE_VERSION = '2.12.2' +const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82' +const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') +const activeClientIds = new Set() + +addEventListener('install', function () { + self.skipWaiting() +}) + +addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +addEventListener('message', async function (event) { + const clientId = Reflect.get(event.source || {}, 'id') + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: { + packageVersion: PACKAGE_VERSION, + checksum: INTEGRITY_CHECKSUM, + }, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: { + client: { + id: client.id, + frameType: client.frameType, + }, + }, + }) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +addEventListener('fetch', function (event) { + const requestInterceptedAt = Date.now() + + // Bypass navigation requests. + if (event.request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if ( + event.request.cache === 'only-if-cached' && + event.request.mode !== 'same-origin' + ) { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been terminated (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + const requestId = crypto.randomUUID() + event.respondWith(handleRequest(event, requestId, requestInterceptedAt)) +}) + +/** + * @param {FetchEvent} event + * @param {string} requestId + * @param {number} requestInterceptedAt + */ +async function handleRequest(event, requestId, requestInterceptedAt) { + const client = await resolveMainClient(event) + const requestCloneForEvents = event.request.clone() + const response = await getResponse( + event, + client, + requestId, + requestInterceptedAt, + ) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + const serializedRequest = await serializeRequest(requestCloneForEvents) + + // Clone the response so both the client and the library could consume it. + const responseClone = response.clone() + + sendToClient( + client, + { + type: 'RESPONSE', + payload: { + isMockedResponse: IS_MOCKED_RESPONSE in response, + request: { + id: requestId, + ...serializedRequest, + }, + response: { + type: responseClone.type, + status: responseClone.status, + statusText: responseClone.statusText, + headers: Object.fromEntries(responseClone.headers.entries()), + body: responseClone.body, + }, + }, + }, + responseClone.body ? [serializedRequest.body, responseClone.body] : [], + ) + } + + return response +} + +/** + * Resolve the main client for the given event. + * Client that issues a request doesn't necessarily equal the client + * that registered the worker. It's with the latter the worker should + * communicate with during the response resolving phase. + * @param {FetchEvent} event + * @returns {Promise} + */ +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (activeClientIds.has(event.clientId)) { + return client + } + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +/** + * @param {FetchEvent} event + * @param {Client | undefined} client + * @param {string} requestId + * @param {number} requestInterceptedAt + * @returns {Promise} + */ +async function getResponse(event, client, requestId, requestInterceptedAt) { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const requestClone = event.request.clone() + + function passthrough() { + // Cast the request headers to a new Headers instance + // so the headers can be manipulated with. + const headers = new Headers(requestClone.headers) + + // Remove the "accept" header value that marked this request as passthrough. + // This prevents request alteration and also keeps it compliant with the + // user-defined CORS policies. + const acceptHeader = headers.get('accept') + if (acceptHeader) { + const values = acceptHeader.split(',').map((value) => value.trim()) + const filteredValues = values.filter( + (value) => value !== 'msw/passthrough', + ) + + if (filteredValues.length > 0) { + headers.set('accept', filteredValues.join(', ')) + } else { + headers.delete('accept') + } + } + + return fetch(requestClone, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const serializedRequest = await serializeRequest(event.request) + const clientMessage = await sendToClient( + client, + { + type: 'REQUEST', + payload: { + id: requestId, + interceptedAt: requestInterceptedAt, + ...serializedRequest, + }, + }, + [serializedRequest.body], + ) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'PASSTHROUGH': { + return passthrough() + } + } + + return passthrough() +} + +/** + * @param {Client} client + * @param {any} message + * @param {Array} transferrables + * @returns {Promise} + */ +function sendToClient(client, message, transferrables = []) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [ + channel.port2, + ...transferrables.filter(Boolean), + ]) + }) +} + +/** + * @param {Response} response + * @returns {Response} + */ +function respondWithMock(response) { + // Setting response status code to 0 is a no-op. + // However, when responding with a "Response.error()", the produced Response + // instance will have status code set to 0. Since it's not possible to create + // a Response instance with status code 0, handle that use-case separately. + if (response.status === 0) { + return Response.error() + } + + const mockedResponse = new Response(response.body, response) + + Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { + value: true, + enumerable: true, + }) + + return mockedResponse +} + +/** + * @param {Request} request + */ +async function serializeRequest(request) { + return { + url: request.url, + mode: request.mode, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.arrayBuffer(), + keepalive: request.keepalive, + } +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue new file mode 100644 index 0000000000..1a69d6bc41 --- /dev/null +++ b/frontend/src/App.vue @@ -0,0 +1,18 @@ + + + diff --git a/frontend/src/assets/CommandIcon.svg b/frontend/src/assets/CommandIcon.svg new file mode 100644 index 0000000000..ba45dd8215 --- /dev/null +++ b/frontend/src/assets/CommandIcon.svg @@ -0,0 +1,5 @@ + + + + diff --git a/frontend/src/assets/NoSaga.svg b/frontend/src/assets/NoSaga.svg new file mode 100644 index 0000000000..7126d918b1 --- /dev/null +++ b/frontend/src/assets/NoSaga.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/frontend/src/assets/SagaCompletedIcon.svg b/frontend/src/assets/SagaCompletedIcon.svg new file mode 100644 index 0000000000..edf6156c9c --- /dev/null +++ b/frontend/src/assets/SagaCompletedIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/assets/SagaIcon.svg b/frontend/src/assets/SagaIcon.svg new file mode 100644 index 0000000000..c37953fb4a --- /dev/null +++ b/frontend/src/assets/SagaIcon.svg @@ -0,0 +1,8 @@ + + + + + diff --git a/frontend/src/assets/SagaInitiatedIcon.svg b/frontend/src/assets/SagaInitiatedIcon.svg new file mode 100644 index 0000000000..da9691b48f --- /dev/null +++ b/frontend/src/assets/SagaInitiatedIcon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/frontend/src/assets/SagaTimeoutIcon.svg b/frontend/src/assets/SagaTimeoutIcon.svg new file mode 100644 index 0000000000..31eb4e0a8e --- /dev/null +++ b/frontend/src/assets/SagaTimeoutIcon.svg @@ -0,0 +1,8 @@ + + + + diff --git a/frontend/src/assets/SagaUpdatedIcon.svg b/frontend/src/assets/SagaUpdatedIcon.svg new file mode 100644 index 0000000000..04c8789377 --- /dev/null +++ b/frontend/src/assets/SagaUpdatedIcon.svg @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/frontend/src/assets/Shell_CopyClipboard.svg b/frontend/src/assets/Shell_CopyClipboard.svg new file mode 100644 index 0000000000..cdc8ef6e39 --- /dev/null +++ b/frontend/src/assets/Shell_CopyClipboard.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/assets/Shell_ToolbarEndpoint.svg b/frontend/src/assets/Shell_ToolbarEndpoint.svg new file mode 100644 index 0000000000..23c5003fce --- /dev/null +++ b/frontend/src/assets/Shell_ToolbarEndpoint.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/frontend/src/assets/TimeoutIcon.svg b/frontend/src/assets/TimeoutIcon.svg new file mode 100644 index 0000000000..539c2a0ccf --- /dev/null +++ b/frontend/src/assets/TimeoutIcon.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/src/assets/command.svg b/frontend/src/assets/command.svg new file mode 100644 index 0000000000..9f39793085 --- /dev/null +++ b/frontend/src/assets/command.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/assets/diff-close.svg b/frontend/src/assets/diff-close.svg new file mode 100644 index 0000000000..b93e269dd8 --- /dev/null +++ b/frontend/src/assets/diff-close.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/src/assets/diff-maximize.svg b/frontend/src/assets/diff-maximize.svg new file mode 100644 index 0000000000..72b9dbc891 --- /dev/null +++ b/frontend/src/assets/diff-maximize.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/src/assets/dropdown.css b/frontend/src/assets/dropdown.css new file mode 100644 index 0000000000..547ee0aca4 --- /dev/null +++ b/frontend/src/assets/dropdown.css @@ -0,0 +1,78 @@ +.dropdown-menu { + border-radius: 4px; + font-size: 14px; + font-weight: 100; + text-align: left; + list-style: none; +} + +.dropdown-menu > span > li > button { + border: none; + background: none; +} + +.dropdown-menu > span > li > button, +.dropdown-menu > li > button, +.dropdown-menu > li > a, +.dropdown-menu > span > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333333; + white-space: nowrap; +} + +ul.dropdown-menu > span > li > a > span { + color: #aaa; +} + +.dropdown-menu > span > li > a:hover, +.dropdown-menu > span > li > a:focus, +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > span > li > button:hover, +.dropdown-menu > span > li > button:focus, +.dropdown-menu > li > button:hover, +.dropdown-menu > li > button:focus { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; +} + +.msg-list-dropdown { + margin: 1px 0 0 0 !important; + padding-right: 0; +} + +.msg-group-menu { + margin: 21px 0px 0 6px; + float: right; + padding-top: 12px; +} + +.msg-group-menu > .control-label { + float: none; +} + +.btn.sp-btn-menu { + padding-left: 16px; + background: none; + border: none; + color: var(--sp-blue); + padding-right: 0; +} + +.sp-btn-menu:hover { + background: none; + border: none; + color: var(--sp-blue); + text-decoration: underline; +} + +.btn-toolbar > .btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} diff --git a/frontend/src/assets/endpoint-lost.svg b/frontend/src/assets/endpoint-lost.svg new file mode 100644 index 0000000000..a6c73ab95b --- /dev/null +++ b/frontend/src/assets/endpoint-lost.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/endpoint.svg b/frontend/src/assets/endpoint.svg new file mode 100644 index 0000000000..6e23ac345a --- /dev/null +++ b/frontend/src/assets/endpoint.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/event.svg b/frontend/src/assets/event.svg new file mode 100644 index 0000000000..c4222f78c9 --- /dev/null +++ b/frontend/src/assets/event.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/failed-msg.svg b/frontend/src/assets/failed-msg.svg new file mode 100644 index 0000000000..2f581c9d49 --- /dev/null +++ b/frontend/src/assets/failed-msg.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/src/assets/footer.css b/frontend/src/assets/footer.css new file mode 100644 index 0000000000..e52111e454 --- /dev/null +++ b/frontend/src/assets/footer.css @@ -0,0 +1,107 @@ +footer { + color: #bcc6c2; + font-size: 14px; + font-weight: normal; + margin-top: 100px; + text-align: left; + text-align: center; + width: 100%; + background-color: #fff; + position: fixed; + bottom: 0; + border-top: 1px solid #ddd; + box-shadow: 0px -10px 16px #f2f6f7; + padding-top: 7px; + z-index: 999; /* this needs to fight with vue-highlight-code which forces z-index to 700 */ +} + +footer .row { + display: flex; + justify-content: space-between; +} + +footer span { + padding-left: 0; + padding-right: 32px; +} + +footer span.connected-status { + color: #000; + padding-right: 0; +} + +footer span.newscversion { + padding-right: 0; +} + +.versionnumber, +footer span.monitoring-connected, +footer span.monitoring-connected span { + padding-right: 0; +} + +.footer .container { + width: 100%; +} + +footer span { + color: #777f7f; + display: inline-block; + padding: 0 8px; +} + +footer a { + font-weight: normal; +} + +footer a:hover { + font-weight: normal; +} + +@media (max-width: 1550px) { + footer { + font-size: 12px; + } +} + +.connectivity-status div, +.connectivity-status span, +.connectivity-status span span { + display: inline-block; + color: #777f7f; +} + +.connectivity-status i, +.connectivity-status div.pa-connection-success, +.connectivity-status div.pa-connection-failed { + width: 10px; + height: 10px; + border-radius: 50%; +} + +.connectivity-status .connection-failed { + color: #ce4844; +} + +.connectivity-status .pa-connection-failed { + background: #ce4844; +} + +.connectivity-status .pa-connection-success { + background: #00c468; +} + +.connectivity-status .secondary { + display: none; +} + +@media (min-width: 960px) { + .connectivity-status .secondary { + display: inline-block; + } +} + +.trialLicenseBar { + background-color: firebrick; + color: white; +} diff --git a/frontend/src/assets/header-menu-item.css b/frontend/src/assets/header-menu-item.css new file mode 100644 index 0000000000..01da32a49c --- /dev/null +++ b/frontend/src/assets/header-menu-item.css @@ -0,0 +1,13 @@ +.nav { + --bs-link-color: #9d9d9d; + --bs-link-hover-color: #fff; +} + +.navbar > .container-fluid > div { + margin: 0 1em; +} + +#navbar .router-link-active { + background: transparent !important; + border-bottom: 5px solid var(--sp-blue); +} diff --git a/frontend/src/assets/loader_spinner.gif b/frontend/src/assets/loader_spinner.gif new file mode 100644 index 0000000000..337ea0dcf4 Binary files /dev/null and b/frontend/src/assets/loader_spinner.gif differ diff --git a/frontend/src/assets/logo.svg b/frontend/src/assets/logo.svg new file mode 100644 index 0000000000..035f766bbb --- /dev/null +++ b/frontend/src/assets/logo.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/main.css b/frontend/src/assets/main.css new file mode 100644 index 0000000000..a3bd8e2a06 --- /dev/null +++ b/frontend/src/assets/main.css @@ -0,0 +1,510 @@ +@import "bootstrap/dist/css/bootstrap.css"; +@import "footer.css"; +@import "tabs.css"; +@import "dropdown.css"; +@import "toast.css"; +@import "pagination.css"; + +:root { + --bs-btn-hover-color: #333; + --bs-btn-hover-bg: #e6e6e6; + --bs-btn-hover-border-color: #adadad; + --monitoring-queue-length: #ea7e00; + --monitoring-queue-length-light: #eaddce; + --monitoring-throughput: #176397; + --monitoring-throughput-light: #cadce8; + --monitoring-retries: #cc1252; + --monitoring-retries-light: #e9c4d1; + --monitoring-processing-time: #258135; + --monitoring-processing-time-light: #bee6c5; + --monitoring-critical-time: #2700cb; + --monitoring-critical-time-light: #c4bce5; + --sp-blue: #00a3c4; + --info-icon: #0d6efd; + --reduced-emphasis: #929e9e; + /* FA7 introduced fixed width icons, whereas our design was based on auto width. Forcing it back to fix alignment issues*/ + --fa-width: auto; +} + +body { + padding-top: 0px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857143; + background-color: #f2f6f7 !important; +} + +#app { + display: flex; + flex-direction: column; + height: 100vh; + min-width: 930px; +} + +.fa { + color: #929e9e; +} + +.badge.badge-important { + background-color: #ce4844; + background-image: none; + border: none; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #777777; + border-radius: 10px; +} + +.container { + width: 92%; + max-width: inherit; + padding: 0; +} + +.container-fluid { + padding-left: 0; + padding-right: 0; +} + +#main-content { + padding-top: 40px; + padding-bottom: 40px; + overflow: auto; + flex: 1; +} + +h1 { + font-size: 30px; + font-weight: 700; + margin: 0 0 32px; +} + +h3 { + font-size: 20px; + font-weight: 700; +} + +h4 { + font-size: 18px; +} + +h5 { + color: #929e9e; + display: inline-block !important; + font-size: 14px; + font-weight: bold; + margin: 0 0 14px; + margin-right: 30px; + text-transform: uppercase; +} + +h6 { + font-size: 18px; + font-weight: 700; + color: #181919; +} + +h6 a:hover { + cursor: pointer; +} + +a { + text-decoration: none; + color: var(--sp-blue); + outline: none; + border: none; +} + +a:hover { + color: var(--sp-blue); + text-decoration: underline; +} + +body { + padding-top: 0px; +} + +span.connection-successful, +span.connection-successful i { + color: #00c468 !important; +} + +span.connection-failed, +span.connection-failed i, +.failed-validation, +.failed-validation i { + color: #ce4844 !important; +} + +.failed-validation { + margin-left: 5px; +} +span.connection-test { + position: relative; + top: 14px; + left: 10px; + text-transform: uppercase; + font-weight: bold; + color: black; +} + +form .connection h3 { + margin-bottom: 16px; +} + +form .connection .form-group { + padding-left: 0; +} + +.connection:nth-child(2) h3 { + margin-top: 40px; +} + +form .connection .form-group input { + font-size: 16px; + height: 44px; +} + +.form-group { + margin-bottom: 15px; +} + +label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + font-weight: 700; +} + +.label { + display: inline; + padding: 0.2em 0.6em 0.3em; + font-size: 75%; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25em; +} + +.label-info, +.badge-info { + background-color: #1b809e; + border-color: #1b809e; +} + +.label-warning, +.badge-warning { + background-color: #aa6708; + border-color: #aa6708; +} + +.label-important, +.badge-important { + background-color: #fa603d; + border-color: #fa5833; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333333; + word-break: break-all; + word-wrap: break-word; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; +} + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px #00000013; +} + +.form-control { + width: 100% !important; + font-size: 14px; +} + +.btn-default { + padding: 8px 16px; + color: #333; + background-color: #fff; + border-color: #ccc; +} + +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn.btn-default.disabled { + opacity: 0.4; +} + +.btn.btn-default.disabled:hover { + border-color: var(--sp-blue); +} + +.btn.btn-primary { + padding: 8px 16px; + background-color: var(--sp-blue); + border-color: #0686aa; + color: #fff; +} + +.btn-primary:hover { + background-color: #0db3c8; + border-color: var(--sp-blue); + color: #fff; +} + +.btn-primary i { + color: #ffffff; + font-size: 12px; +} + +.btn-secondary { + background-color: #fff; + color: var(--sp-blue); + border-color: var(--sp-blue); +} + +.btn-secondary:hover { + color: var(--sp-blue); + border-color: var(--sp-blue); + background-color: #fff; + opacity: 0.7; +} + +.btn-secondary.disabled { + border-color: var(--sp-blue); +} + +.row { + margin-right: 0; + margin-left: 0; +} + +.danger { + color: #ce4844 !important; + font-weight: bold !important; +} + +.btn-link:hover, +.btn-link:focus { + color: #23527c; + text-decoration: underline; + background-color: transparent; +} + +input.check-label { + margin: 4px 6px 0 0; + float: left; +} + +.btn { + font-size: 14px; +} + +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #a94442; +} + +.control-label { + float: left; + padding-top: 7.5px; + margin-right: -10px; +} + +.btn-toolbar { + padding: 12px 0 0; + margin-left: 0; +} + +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-group, +.action-btns .btn { + margin-left: 0; + margin-right: 5px; +} + +.metadata .label-important { + border-radius: 3px; + color: white; + font-size: 13px; + font-weight: bold; + margin-right: 20px; +} + +.metadata > .btn-sm > i { + color: var(--sp-blue); +} + +.metadata:first-child { + padding-left: 0; +} + +span.metadata { + display: inline-block; + padding: 0px 20px 2px 0; + color: #777f7f; +} + +span.metadata.metadata-link i.fa { + color: var(--sp-blue); +} + +.metadata > .in-progress { + font-style: italic; + color: white; +} + +.metadata-label { + margin-right: 24px; + position: relative; + top: -1px; +} + +.metadata > .metadata-label { + padding: 6px 10px; +} + +.btn-xs, +.btn-group-xs > .btn { + border-radius: 3px; +} + +.btn-retry-dismiss { + position: relative; + height: 28px; + width: 74px; + top: -2px; + left: 11px; + line-height: 1; +} + +.btn.btn-retry-dismiss { + border-radius: 4px; + padding: 8px 16px; +} + +.btn.btn-xs { + font-size: 12px; +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; + pointer-events: all; +} + +.btn.disabled:hover, +.btn[disabled]:hover, +fieldset[disabled]:hover { + cursor: not-allowed; +} +.box-group:hover { + background-color: #edf6f7; + border: 1px solid var(--sp-blue); + cursor: pointer; +} + +.box-group { + border-top: 1px solid transparent; + border-bottom: 1px solid #eee; + padding: 15px 40px; +} + +.box-container { + padding: 0; + background-color: #fff; +} + +.box-container .list-section .col-12.form-group { + margin-bottom: 0; +} + +.select-all { + width: 127px; +} + +.group-message-count { + color: #a8b3b1; + font-size: 16px; + margin: 4px 0 12px; + display: block; +} + +h3.group-message-count { + color: #a8b3b1; + font-size: 16px; + margin: 4px 0 12px; + display: block; +} + +.group-title { + display: block; + font-size: 30px; + margin: 10px 0 0; +} + +h2.group-title, +h3.group-title { + font-weight: bold; + line-height: 28px; +} + +div.alert.alert-warning strong { + text-transform: uppercase; +} + +.sticky-warning.alert.alert-warning, +.alert.alert-warning, +.alert.alert-danger { + font-size: 16px; + margin: 25px 0 0; + height: unset; +} + +/* TODO: why do these have to be !important? */ +.fake-link { + color: var(--sp-blue) !important; + text-decoration: none !important; +} + +.tooltip { + font-size: 12px; +} diff --git a/frontend/src/assets/monitoring-lost.svg b/frontend/src/assets/monitoring-lost.svg new file mode 100644 index 0000000000..5496b71809 --- /dev/null +++ b/frontend/src/assets/monitoring-lost.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/monitoring.svg b/frontend/src/assets/monitoring.svg new file mode 100644 index 0000000000..94ed3cabef --- /dev/null +++ b/frontend/src/assets/monitoring.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/navbar.css b/frontend/src/assets/navbar.css new file mode 100644 index 0000000000..4f44cf7d0b --- /dev/null +++ b/frontend/src/assets/navbar.css @@ -0,0 +1,235 @@ +:root { + --bs-link-color: #9d9d9d; + --bs-link-hover-color: #fff; +} + +.navbar { + height: 60px; + flex-wrap: nowrap; +} + +.navbar-inverse { + background-color: #1a1a1a; +} + +.navbar > .navbar-right { + margin-right: -15px; +} + +.navbar-brand { + height: 60px; + padding-bottom: 9px; + padding-top: 10px; +} + +.navbar-brand img { + width: 160px; + margin-left: 3px; +} + +.navbar-nav > li > a > span { + margin-left: 8px; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; + color: var(--bs-link-color); + text-decoration: none; +} + +.nav > li > a:hover, +.nav > li > a:focus { + color: #fff; +} + +.navbar-nav > li > a > span.no-margin { + margin: 0; +} + +.nav > li > a .navbar-toggle { + margin-top: 13px; +} + +.navbar a { + font-weight: normal; + text-decoration: none; +} + +.navbar a:hover { + font-weight: normal; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #fff; +} + +.label-important, +.badge-important { + background-color: #fa603d; + border-color: #fa5833; +} + +@media (min-width: 768px) { + .navbar-nav > li.active > a { + background: transparent !important; + border-bottom: 5px solid var(--sp-blue); + } + + .navbar-nav > li > a { + padding-bottom: 15px; + padding-top: 20px; + } + + .graph-values .col-sm-6 { + width: 45%; + } +} + +@media only screen and (min-width: 1072px) { + .navbar-label { + display: inline; + } +} + +@media only screen and (max-width: 768px) { + .navbar-collapse.collapse.in { + padding: 0 0 0 16px !important; + } +} + +@media (max-width: 1199px) { + .navbar-header { + float: none; + } + + .navbar-toggle { + display: block; + } + + .navbar-collapse { + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + } + + .navbar-collapse.collapse { + display: none !important; + } + + .navbar-nav { + float: none !important; + margin: 7.5px -15px; + } + + .navbar-nav > li { + float: none; + } + + .navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + } + + .navbar-text { + float: none; + margin: 15px 0; + } + + .navbar-collapse.collapse.in { + display: block !important; + padding: 0 32px 16px 32px; + } + + .collapsing { + overflow: hidden !important; + } +} + +@media (max-width: 1450px) { + .navbar-label { + display: none; + } + + .nav > li > a .icon-white { + color: #929e9e; + } + + .nav > li > a:hover .icon-white, + .nav > li > a:focus .icon-white { + color: #fff; + } + + .nav > li > a:hover .pa-monitoring, + .nav > li > a:focus .pa-monitoring { + background-color: #fff; + } +} + +@media (max-width: 1439px) { + nav.navbar { + position: sticky; + } + + div.navbar-header { + float: left; + } + + ul.navbar-nav { + margin: 0 8px 0 0; + display: block; + } + + .navbar-nav > li > a { + padding-top: 18px; + padding-bottom: 17px; + } + + .navbar-collapse.collapse { + display: block !important; + } + + .navbar-nav > li, + .navbar-nav { + float: left !important; + height: 59px; + } + + .navbar-nav.navbar-right:last-child { + margin-right: -15px !important; + } + + .navbar-right { + float: right !important; + } + + .navbar-nav > li.active > a { + background: transparent !important; + border-bottom: 5px solid var(--sp-blue) !important; + } + + .tabs h5 { + margin-bottom: 0; + padding-bottom: 10px; + } +} + +@media (max-width: 1439px) and (-ms-high-contrast: active), (-ms-high-contrast: none) { + nav.navbar { + margin-top: 0; + } +} + +/* TODO move this to the page/control that it's used in*/ +.pa-monitoring { + mask-image: url("@/assets/monitoring.svg"); + background-color: #929e9e; + background-position: center; + background-repeat: no-repeat; + width: 16px; + height: 14px; + position: relative; + top: 2px; +} diff --git a/frontend/src/assets/pagination.css b/frontend/src/assets/pagination.css new file mode 100644 index 0000000000..9c289e5892 --- /dev/null +++ b/frontend/src/assets/pagination.css @@ -0,0 +1,40 @@ +.pagination button.active, +.pagination .active > span, +.pagination button.active:hover, +.pagination .active > span:hover, +.pagination button.active:focus, +.pagination .active > span:focus { + background-color: var(--sp-blue); + border-color: #ddd; + color: var(--bs-pagination-active-color); + outline: none; + box-shadow: none; +} + +.pagination { + --bs-link-color: #00729c; + --bs-pagination-font-size: 14px; +} + +.pagination { + margin: 1.5em; +} + +.pagination > li > button:hover, +.pagination > li > span:hover, +.pagination > li > button:focus, +.pagination > li > span:focus { + z-index: 2; + color: #23527c; + background-color: #eeeeee; + border-color: #ddd; + outline: none; + box-shadow: none; +} + +.pagination .dropdown button:hover { + background: none; + border: none; + color: var(--sp-blue); + text-decoration: underline; +} diff --git a/frontend/src/assets/redirect-destination.svg b/frontend/src/assets/redirect-destination.svg new file mode 100644 index 0000000000..50ee436fd9 --- /dev/null +++ b/frontend/src/assets/redirect-destination.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/assets/redirect-source.svg b/frontend/src/assets/redirect-source.svg new file mode 100644 index 0000000000..2b7f20d704 --- /dev/null +++ b/frontend/src/assets/redirect-source.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/frontend/src/assets/saga-completed.svg b/frontend/src/assets/saga-completed.svg new file mode 100644 index 0000000000..e63f5a58e6 --- /dev/null +++ b/frontend/src/assets/saga-completed.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/saga-initiated.svg b/frontend/src/assets/saga-initiated.svg new file mode 100644 index 0000000000..969373a9cd --- /dev/null +++ b/frontend/src/assets/saga-initiated.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/saga-trigger.svg b/frontend/src/assets/saga-trigger.svg new file mode 100644 index 0000000000..0b809af350 --- /dev/null +++ b/frontend/src/assets/saga-trigger.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/assets/saga.svg b/frontend/src/assets/saga.svg new file mode 100644 index 0000000000..f284fcc527 --- /dev/null +++ b/frontend/src/assets/saga.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/src/assets/si-icon.svg b/frontend/src/assets/si-icon.svg new file mode 100644 index 0000000000..4b7e4561fc --- /dev/null +++ b/frontend/src/assets/si-icon.svg @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/sort-down.svg b/frontend/src/assets/sort-down.svg new file mode 100644 index 0000000000..75bcf850ea --- /dev/null +++ b/frontend/src/assets/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/sort-up.svg b/frontend/src/assets/sort-up.svg new file mode 100644 index 0000000000..91312998d8 --- /dev/null +++ b/frontend/src/assets/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/sp-loader.gif b/frontend/src/assets/sp-loader.gif new file mode 100644 index 0000000000..0054645e2b Binary files /dev/null and b/frontend/src/assets/sp-loader.gif differ diff --git a/frontend/src/assets/status_archived.svg b/frontend/src/assets/status_archived.svg new file mode 100644 index 0000000000..3ee4db5938 --- /dev/null +++ b/frontend/src/assets/status_archived.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/frontend/src/assets/status_failed.svg b/frontend/src/assets/status_failed.svg new file mode 100644 index 0000000000..ff5a79e20f --- /dev/null +++ b/frontend/src/assets/status_failed.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/status_repeated_failed.svg b/frontend/src/assets/status_repeated_failed.svg new file mode 100644 index 0000000000..c80647d759 --- /dev/null +++ b/frontend/src/assets/status_repeated_failed.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/frontend/src/assets/status_resolved.svg b/frontend/src/assets/status_resolved.svg new file mode 100644 index 0000000000..b7ab8c1f60 --- /dev/null +++ b/frontend/src/assets/status_resolved.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/status_retry_issued.svg b/frontend/src/assets/status_retry_issued.svg new file mode 100644 index 0000000000..f64c7dc974 --- /dev/null +++ b/frontend/src/assets/status_retry_issued.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/status_successful.svg b/frontend/src/assets/status_successful.svg new file mode 100644 index 0000000000..340e02ac40 --- /dev/null +++ b/frontend/src/assets/status_successful.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/tabs.css b/frontend/src/assets/tabs.css new file mode 100644 index 0000000000..489ab7f79b --- /dev/null +++ b/frontend/src/assets/tabs.css @@ -0,0 +1,104 @@ +.nav-item.active { + border-bottom: 3px solid #181919; + color: #181919; +} + +.nav-item { + padding-bottom: 10px; + margin-bottom: 0; +} + +.nav-item a { + color: var(--sp-blue); + cursor: pointer; + font-size: 16px; +} + +h5.nav-item { + color: #929e9e; + display: inline-block !important; + font-size: 14px; + font-weight: 700; + margin: 0 30px 14px 0; + margin-bottom: 0; + text-transform: uppercase; +} + +.box { + box-shadow: none; + margin: 0; + padding-bottom: 10px; + background-color: #fff; + border-top: 1px solid #eee; + border-right: 1px solid #fff; + border-bottom: 1px solid #eee; + border-left: 1px solid #fff; + margin: 0.5rem 0 1rem; + margin-bottom: 5px; + padding: 20px; +} + +.box-no-click { + background: none; + border-bottom: 1px solid #ced6d3; + border-left: none; + border-right: none; + cursor: default; +} + +.no-side-padding { + padding-right: 0; + padding-left: 0; +} + +.tabs { + border-bottom: 1px solid #e6e6e6; + padding: 0; + margin-bottom: -1px; +} + +.tabs h5 { + display: inline; + padding-bottom: 10px; + margin-bottom: 0; +} + +.tabs h5 a:hover { + text-decoration: none; +} + +.tabs h5.active { + border-bottom: 3px solid #181919; + color: #181919; +} + +.tabs h5.active a { + color: #181919; + text-decoration: none; +} + +.tabs a { + color: var(--sp-blue); + cursor: pointer; + font-size: 16px; +} + +.tabs a:hover { + color: #00729c; +} + +.tabs h5.active > a:hover { + color: #181919; + cursor: default; + text-decoration: none; +} + +.tabs h5.disabled > a { + color: #aaa; + cursor: default; + text-decoration: none; +} + +.tabs h5.disabled > a:hover { + cursor: not-allowed; +} diff --git a/frontend/src/assets/timeout.svg b/frontend/src/assets/timeout.svg new file mode 100644 index 0000000000..40869a1988 --- /dev/null +++ b/frontend/src/assets/timeout.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/src/assets/toast-danger.svg b/frontend/src/assets/toast-danger.svg new file mode 100644 index 0000000000..d9e1ef7722 --- /dev/null +++ b/frontend/src/assets/toast-danger.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/toast-warning.svg b/frontend/src/assets/toast-warning.svg new file mode 100644 index 0000000000..23ea51af32 --- /dev/null +++ b/frontend/src/assets/toast-warning.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/toast.css b/frontend/src/assets/toast.css new file mode 100644 index 0000000000..c269498b4a --- /dev/null +++ b/frontend/src/assets/toast.css @@ -0,0 +1,188 @@ +/* Vue-Toastification Globals */ +.Vue-Toastification__toast { + border-radius: 5px; + width: 100%; + height: 100%; + padding: 12px 12px 24px 15px; + color: white; +} + +.Vue-Toastification__toast-component-body { + flex: 1; + margin-top: 15px; +} + +.Vue-Toastification__toast p { + margin-bottom: 0; +} + +.Vue-Toastification__toast--default.vue-toast { + background-color: #030303; +} +.Vue-Toastification__toast--success.vue-toast { + background-color: #00c468; +} +.Vue-Toastification__toast--error.vue-toast { + background-color: #ce4844; +} +.Vue-Toastification__toast--info.vue-toast { + background-color: #1b809e; +} +.Vue-Toastification__toast--warning.vue-toast { + background-color: #f3bc52; +} + +.Vue-Toastification__fade-leave-active { + height: auto !important; +} + +.Vue-Toastification__icon { + vertical-align: top; + align-items: top; + margin: 18px 10px auto 0px; + color: white; +} + +.toast-close-button { + vertical-align: top; + height: 100%; + padding-left: 0; + color: white; +} + +@keyframes fadeInRight { + 0% { + opacity: 0; + transform: translateX(20px); + } + 100% { + opacity: 1; + transform: translateX(0); + } +} + +.toast-container { + width: 400px; + padding-bottom: 24px; + padding-right: 0px; + position: fixed; +} + +.toast-container > :not(:last-child) { + margin-bottom: 1rem; +} + +.toast-message a.btn:hover { + opacity: 0.85; + text-decoration: none; +} + +.toast-message a { + color: #000080; +} + +.toast-message a:hover { + color: #000080; + text-decoration: underline; +} + +.toast-message a.btn.btn-light { + margin-top: 16px; + margin-left: 10px; + color: #000; + border: 1px solid #000; + background-color: rgba(0, 0, 0, 0); +} + +.toast-message a.btn.btn-light:hover { + background-color: rgba(0, 0, 0, 0.1); + text-decoration: none; +} + +/* Warning Toast */ +.toast-message a.btn.btn-warning { + margin-top: 16px; + color: #f3bc52; + border: 1px solid #000; + background-color: rgba(0, 0, 0, 1); +} + +/* Error Toast */ +.toast-message a.btn.btn-error { + margin-top: 16px; + color: #ce4844; + border: 1px solid #000; + background-color: rgba(0, 0, 0, 1); +} + +.toast-error a.btn.btn-default { + color: #bd362f; + padding-right: 20px; + padding-left: 20px; + border: none; + margin-top: 16px; +} + +/* Info Toast */ +.toast-message a.btn.btn-info { + margin-top: 16px; + color: #1b809e; + border: 1px solid #000; + background-color: rgba(0, 0, 0, 1); +} + +/* Success Toast */ +.toast-message a.btn.btn-success { + margin-top: 16px; + color: #00c468; + border: 1px solid #000; + background-color: rgba(0, 0, 0, 1); +} + +/* Default Toast */ +.Vue-Toastification__toast--default { + color: #fff; +} + +.toast-default a.btn.btn-default { + margin-top: 16px; + color: #000; + border: 1px solid #fff; + background-color: rgba(255, 255, 255, 1); +} + +.toast-default a.btn.btn-light { + margin-top: 16px; + margin-left: 10px; + color: #fff; + border: 1px solid #fff; + background-color: rgba(255, 255, 255, 0); +} + +.toast-default a.btn.btn-light:hover { + background-color: rgba(255, 255, 255, 0.1); + text-decoration: none; +} + +.toast-default a { + color: var(--sp-blue); +} + +.toast-default a:hover { + color: var(--sp-blue); + text-decoration: underline; +} + +.Vue-Toastification__toast--default .toast-close-button { + color: #fff; + opacity: 0.5; +} + +.Vue-Toastification__toast--default .toast-close-button:hover { + color: #fff; + opacity: 0.8; +} + +.Vue-Toastification__toast--default .Vue-Toastification__icon { + color: #fff; +} diff --git a/frontend/src/assets/warning.svg b/frontend/src/assets/warning.svg new file mode 100644 index 0000000000..48952aa411 --- /dev/null +++ b/frontend/src/assets/warning.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/frontend/src/components/ActionButton.vue b/frontend/src/components/ActionButton.vue new file mode 100644 index 0000000000..5293bd70d5 --- /dev/null +++ b/frontend/src/components/ActionButton.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/frontend/src/components/AutoRefreshDataView.vue b/frontend/src/components/AutoRefreshDataView.vue new file mode 100644 index 0000000000..2fb2757a1d --- /dev/null +++ b/frontend/src/components/AutoRefreshDataView.vue @@ -0,0 +1,76 @@ + + + diff --git a/frontend/src/components/BackendChecksNotifications.vue b/frontend/src/components/BackendChecksNotifications.vue new file mode 100644 index 0000000000..0804ce809b --- /dev/null +++ b/frontend/src/components/BackendChecksNotifications.vue @@ -0,0 +1,51 @@ + + diff --git a/frontend/src/components/CodeEditor.vue b/frontend/src/components/CodeEditor.vue new file mode 100644 index 0000000000..c74dc9a077 --- /dev/null +++ b/frontend/src/components/CodeEditor.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/frontend/src/components/ColumnHeader.vue b/frontend/src/components/ColumnHeader.vue new file mode 100644 index 0000000000..0e2c5acb01 --- /dev/null +++ b/frontend/src/components/ColumnHeader.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/components/ConditionalRender.vue b/frontend/src/components/ConditionalRender.vue new file mode 100644 index 0000000000..350521cada --- /dev/null +++ b/frontend/src/components/ConditionalRender.vue @@ -0,0 +1,14 @@ + + + diff --git a/frontend/src/components/ConfirmDialog.vue b/frontend/src/components/ConfirmDialog.vue new file mode 100644 index 0000000000..f332e4e5af --- /dev/null +++ b/frontend/src/components/ConfirmDialog.vue @@ -0,0 +1,59 @@ + + + + diff --git a/frontend/src/components/CopyToClipboard.vue b/frontend/src/components/CopyToClipboard.vue new file mode 100644 index 0000000000..e30c88ab1f --- /dev/null +++ b/frontend/src/components/CopyToClipboard.vue @@ -0,0 +1,33 @@ + + + diff --git a/frontend/src/components/DashboardItem.vue b/frontend/src/components/DashboardItem.vue new file mode 100644 index 0000000000..4cbdc7e5de --- /dev/null +++ b/frontend/src/components/DashboardItem.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/frontend/src/components/DataView.vue b/frontend/src/components/DataView.vue new file mode 100644 index 0000000000..6bc625c5d5 --- /dev/null +++ b/frontend/src/components/DataView.vue @@ -0,0 +1,32 @@ + + + diff --git a/frontend/src/components/DataViewPageModel.ts b/frontend/src/components/DataViewPageModel.ts new file mode 100644 index 0000000000..84474be8a1 --- /dev/null +++ b/frontend/src/components/DataViewPageModel.ts @@ -0,0 +1,4 @@ +export default interface DataViewPageModel { + data: T[]; + totalCount: number; +} diff --git a/frontend/src/components/DropDown.vue b/frontend/src/components/DropDown.vue new file mode 100644 index 0000000000..6d5fba6577 --- /dev/null +++ b/frontend/src/components/DropDown.vue @@ -0,0 +1,46 @@ + + + + + diff --git a/frontend/src/components/EventItemShort.vue b/frontend/src/components/EventItemShort.vue new file mode 100644 index 0000000000..29fa3e2eb9 --- /dev/null +++ b/frontend/src/components/EventItemShort.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/frontend/src/components/EventLogItem.vue b/frontend/src/components/EventLogItem.vue new file mode 100644 index 0000000000..9ed77f02c9 --- /dev/null +++ b/frontend/src/components/EventLogItem.vue @@ -0,0 +1,176 @@ + + + + + diff --git a/frontend/src/components/ExclamationMark.vue b/frontend/src/components/ExclamationMark.vue new file mode 100644 index 0000000000..504e51b314 --- /dev/null +++ b/frontend/src/components/ExclamationMark.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/frontend/src/components/FAIcon.vue b/frontend/src/components/FAIcon.vue new file mode 100644 index 0000000000..8d550f9cb0 --- /dev/null +++ b/frontend/src/components/FAIcon.vue @@ -0,0 +1,17 @@ + + + diff --git a/frontend/src/components/FeedbackButton.vue b/frontend/src/components/FeedbackButton.vue new file mode 100644 index 0000000000..216a8786e6 --- /dev/null +++ b/frontend/src/components/FeedbackButton.vue @@ -0,0 +1,38 @@ + + + + diff --git a/frontend/src/components/FilterInput.vue b/frontend/src/components/FilterInput.vue new file mode 100644 index 0000000000..b4f92350be --- /dev/null +++ b/frontend/src/components/FilterInput.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/frontend/src/components/ItemsPerPage.vue b/frontend/src/components/ItemsPerPage.vue new file mode 100644 index 0000000000..6bce88e5a0 --- /dev/null +++ b/frontend/src/components/ItemsPerPage.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/frontend/src/components/LicenseExpired.vue b/frontend/src/components/LicenseExpired.vue new file mode 100644 index 0000000000..8e31f92e0d --- /dev/null +++ b/frontend/src/components/LicenseExpired.vue @@ -0,0 +1,40 @@ + + + diff --git a/frontend/src/components/LicenseNotExpired.vue b/frontend/src/components/LicenseNotExpired.vue new file mode 100644 index 0000000000..e6e23d0036 --- /dev/null +++ b/frontend/src/components/LicenseNotExpired.vue @@ -0,0 +1,17 @@ + + + diff --git a/frontend/src/components/LicenseNotifications.vue b/frontend/src/components/LicenseNotifications.vue new file mode 100644 index 0000000000..dc9c6441aa --- /dev/null +++ b/frontend/src/components/LicenseNotifications.vue @@ -0,0 +1,68 @@ + + diff --git a/frontend/src/components/LoadingSpinner.vue b/frontend/src/components/LoadingSpinner.vue new file mode 100644 index 0000000000..38d1b9ebb1 --- /dev/null +++ b/frontend/src/components/LoadingSpinner.vue @@ -0,0 +1,9 @@ + + + diff --git a/frontend/src/components/MaximizableCodeEditor.vue b/frontend/src/components/MaximizableCodeEditor.vue new file mode 100644 index 0000000000..57ffa635be --- /dev/null +++ b/frontend/src/components/MaximizableCodeEditor.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/frontend/src/components/MetadataItem.vue b/frontend/src/components/MetadataItem.vue new file mode 100644 index 0000000000..ad84f02d91 --- /dev/null +++ b/frontend/src/components/MetadataItem.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/frontend/src/components/NoData.spec.ts b/frontend/src/components/NoData.spec.ts new file mode 100644 index 0000000000..e45241062c --- /dev/null +++ b/frontend/src/components/NoData.spec.ts @@ -0,0 +1,8 @@ +import { expect, test, render, screen } from "@component-test-utils"; + +import NoData from "./NoData.vue"; + +test("EXAMPLE: A messge non empty message is assigned", async () => { + render(NoData, { props: { message: "No messages processed in this period of time" } }); + expect(await screen.findByText("No messages processed in this period of time")).toBeVisible(); +}); diff --git a/frontend/src/components/NoData.vue b/frontend/src/components/NoData.vue new file mode 100644 index 0000000000..8725df681e --- /dev/null +++ b/frontend/src/components/NoData.vue @@ -0,0 +1,28 @@ + + + + + diff --git a/frontend/src/components/OnOffSwitch.vue b/frontend/src/components/OnOffSwitch.vue new file mode 100644 index 0000000000..5e94948ef6 --- /dev/null +++ b/frontend/src/components/OnOffSwitch.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/frontend/src/components/OrderBy.vue b/frontend/src/components/OrderBy.vue new file mode 100644 index 0000000000..81288dcc9c --- /dev/null +++ b/frontend/src/components/OrderBy.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/frontend/src/components/PageFooter.vue b/frontend/src/components/PageFooter.vue new file mode 100644 index 0000000000..387610b94d --- /dev/null +++ b/frontend/src/components/PageFooter.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/frontend/src/components/PageHeader.vue b/frontend/src/components/PageHeader.vue new file mode 100644 index 0000000000..640f2dcdd4 --- /dev/null +++ b/frontend/src/components/PageHeader.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/frontend/src/components/PaginationStrip.spec.ts b/frontend/src/components/PaginationStrip.spec.ts new file mode 100644 index 0000000000..834859f95b --- /dev/null +++ b/frontend/src/components/PaginationStrip.spec.ts @@ -0,0 +1,275 @@ +import { expect, render, screen, describe, userEvent, test } from "@component-test-utils"; +import paginationStrip from "./PaginationStrip.vue"; + +//Defines a domain-specific language (DSL) for interacting with the system under test (sut) +interface PaginationStripDSL { + clickPrevious(): Promise; + clickNext(): Promise; + clickPage(pageName: string): Promise; + clickJumpPagesForward(): Promise; + clickJumpPagesBack(): Promise; + updateNumberOfRecordsPerPage(newNumberOfItemsPerPage: number): Promise; + assert: PaginationStripDSLAssertions; +} + +//Defines a domain-specific language (DSL) for checking assertions against the system under test (sut) +interface PaginationStripDSLAssertions { + stripOfButtonsMatchesSequence(value: string): void; + activePageIs(value: string): void; + previousIsEnabled(): void; + previousIsDisabled(): void; + nextIsEnabled(): void; + nextIsDisabled(): void; + jumpPagesBackIsPresent(value?: boolean): void; + jumpPagesForwardIsPresent(value?: boolean): void; +} + +describe("Feature: Moving backwards through pages with a single button must be possible", () => { + describe("Rule: The 'Previous' button is disabled when the first page is active", () => { + test("EXAMPLE: First page is active on the initial render", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 1 }); + + component.assert.previousIsDisabled(); + }); + + test("EXAMPLE: Clicking 'previous' button from second page", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 2 }); + + component.assert.previousIsEnabled(); + + await component.clickPrevious(); + + component.assert.previousIsDisabled(); + component.assert.activePageIs("Page 1"); + }); + }); + describe("Rule: The 'Previous' button is enabled when the first page is not active", () => { + test("EXAMPLE: Second page is active on initial render", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 2 }); + component.assert.previousIsEnabled(); + }); + + test("EXAMPLE: Clicking 'Next' button from first page", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 1 }); + + component.assert.previousIsDisabled(); + + await component.clickNext(); + + component.assert.activePageIs("Page 2"); + component.assert.previousIsEnabled(); + }); + }); +}); + +describe("Feature: Moving forward through pages with a single button must be possible", () => { + describe("Rule: The 'Next' button is disabled when the last page is active", () => { + test("EXAMPLE: Last page is active on the initial render", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 10 }); + component.assert.nextIsDisabled(); + }); + + test("EXAMPLE: Clicking 'Next' button from penultimate page", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 9 }); + + component.assert.nextIsEnabled(); + + await component.clickNext(); + + component.assert.nextIsDisabled(); + component.assert.activePageIs("Page 10"); + }); + }); + describe("Rule: The 'Next' button is enabled when the last page is not active", () => { + test("EXAMPLE: Penultimate page is active on initial render", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 9 }); + + component.assert.nextIsEnabled(); + }); + + test("EXAMPLE: Clicking 'Previous' button from last page", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 10 }); + + component.assert.nextIsDisabled(); + + await component.clickPrevious(); + component.assert.nextIsEnabled(); + component.assert.activePageIs("Page 9"); + }); + }); +}); + +describe("Feature: Navigating to a specific page that is available must be possible", () => { + describe("Rule: Clicking to an specific page should show the page as active", () => { + test("EXAMPLE: First page is active then clicking to page number 4", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 1, allowToJumpPagesBy: 2 }); + + component.assert.stripOfButtonsMatchesSequence("Previous,1,2,3,4,...,10,Next"); + + await component.clickPage("Page 4"); + component.assert.activePageIs("Page 4"); + + component.assert.stripOfButtonsMatchesSequence("Previous,1,...,2,3,4,5,6,...,10,Next"); + }); + }); +}); + +describe("Feature: Jumping a number of pages forward or backward must be possible", () => { + describe("Rule: Buttons for jumping pages back or forward are available only when enough pages ahead or back are available", () => { + test("EXAMPLE: Strip for 100 records with 10 items per page, allowing to jump pages by 2", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 1, allowToJumpPagesBy: 2 }); + + component.assert.stripOfButtonsMatchesSequence("Previous,1,2,3,4,...,10,Next"); + }); + + test("EXAMPLE: Enough pages to jump forward and backward", () => { + const component = renderPaginationStripWith({ records: 500, itemsPerPage: 10, selectedPage: 10, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(); + component.assert.jumpPagesForwardIsPresent(); + }); + + test("EXAMPLE: Enough pages to jump foward only", () => { + const component = renderPaginationStripWith({ records: 500, itemsPerPage: 10, selectedPage: 6, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(false); + component.assert.jumpPagesForwardIsPresent(); + }); + + test("EXAMPLE: Enough pages to jump back only", () => { + const component = renderPaginationStripWith({ records: 500, itemsPerPage: 10, selectedPage: 50, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(); + component.assert.jumpPagesForwardIsPresent(false); + component.assert.activePageIs("Page 50"); + }); + + test("EXAMPLE: Not enough pages to jump forward or backward", () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 1, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(false); + component.assert.jumpPagesForwardIsPresent(false); + }); + + test("EXAMPLE: Jump 5 pages forward", async () => { + const component = renderPaginationStripWith({ records: 500, itemsPerPage: 10, selectedPage: 6, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(false); + component.assert.jumpPagesForwardIsPresent(); + + await component.clickJumpPagesForward(); + + component.assert.jumpPagesBackIsPresent(); + component.assert.jumpPagesForwardIsPresent(); + + component.assert.activePageIs("Page 11"); + }); + + test("EXAMPLE: Jump 10 pages back", async () => { + const component = renderPaginationStripWith({ records: 500, itemsPerPage: 10, selectedPage: 50, allowToJumpPagesBy: 5 }); + + component.assert.jumpPagesBackIsPresent(); + component.assert.jumpPagesForwardIsPresent(false); + + await component.clickJumpPagesBack(); + await component.clickJumpPagesBack(); + + component.assert.jumpPagesBackIsPresent(); + component.assert.jumpPagesForwardIsPresent(); + + component.assert.activePageIs("Page 40"); + }); + }); +}); + +describe("Feature: changes in the number of records per page are allowed", () => { + describe("Rule: Updating the number of records per page recalculates the pages of the strip and resets selected page", () => { + test("EXAMPLE: Number of records per page gets updated from 10 to 50", async () => { + const component = renderPaginationStripWith({ records: 100, itemsPerPage: 10, selectedPage: 3, allowToJumpPagesBy: 2 }); + + component.assert.stripOfButtonsMatchesSequence("Previous,1,2,3,4,5,...,10,Next"); + component.assert.activePageIs("Page 3"); + + await component.updateNumberOfRecordsPerPage(50); + component.assert.stripOfButtonsMatchesSequence("Previous,1,2,Next"); + + component.assert.activePageIs("Page 1"); + }); + }); +}); + +function renderPaginationStripWith({ records, itemsPerPage, selectedPage, allowToJumpPagesBy = 0 }: { records: number; itemsPerPage: number; selectedPage: number; allowToJumpPagesBy?: number }): PaginationStripDSL { + const { rerender } = render(paginationStrip, { + props: { + modelValue: selectedPage, + itemsPerPage: itemsPerPage, + totalCount: records, + pageBuffer: allowToJumpPagesBy, + }, + }); + + const dslAPI: PaginationStripDSL = { + clickPrevious: async function () { + await userEvent.click(await screen.findByLabelText("Previous Page")); + }, + + clickNext: async function () { + await userEvent.click(await screen.findByLabelText("Next Page")); + }, + + clickJumpPagesForward: async function () { + await userEvent.click(await screen.findByLabelText(`Forward ${allowToJumpPagesBy}`)); + }, + + clickJumpPagesBack: async function () { + await userEvent.click(await screen.findByLabelText(`Back ${allowToJumpPagesBy}`)); + }, + clickPage: async function (pageName: string): Promise { + await userEvent.click(await screen.findByLabelText(pageName)); + }, + updateNumberOfRecordsPerPage: async function (newNumberOfItemsPerPage: number) { + await rerender({ + modelValue: selectedPage, + itemsPerPage: newNumberOfItemsPerPage, + totalCount: records, + pageBuffer: allowToJumpPagesBy, + }); + }, + assert: { + previousIsDisabled: function () { + expect(screen.queryByLabelText("Previous Page")).toBeDisabled(); + }, + previousIsEnabled: function () { + expect(screen.queryByLabelText("Previous Page")).toBeEnabled(); + }, + nextIsDisabled: function () { + expect(screen.queryByLabelText("Next Page")).toBeDisabled(); + }, + nextIsEnabled: function () { + expect(screen.queryByLabelText("Next Page")).toBeEnabled(); + }, + activePageIs: function (value) { + expect(screen.getByRole("button", { pressed: true, name: value })).toBeInTheDocument(); + }, + jumpPagesBackIsPresent: function (truthy = true) { + if (truthy) { + expect(screen.queryByLabelText(`Back ${allowToJumpPagesBy}`)).toBeInTheDocument(); + } + }, + jumpPagesForwardIsPresent: function (truthy = true) { + if (truthy) { + expect(screen.queryByLabelText(`Forward ${allowToJumpPagesBy}`)).toBeInTheDocument(); + } else { + expect(screen.queryByLabelText(`Forward ${allowToJumpPagesBy}`)).not.toBeInTheDocument(); + } + }, + stripOfButtonsMatchesSequence: function (sequence: string): void { + const allButtons = screen.getAllByRole("button"); + const generatedStripText = allButtons.map((v) => v.innerHTML).join(","); + expect(generatedStripText).toBe(sequence); + }, + }, + }; + + return dslAPI; +} diff --git a/frontend/src/components/PaginationStrip.vue b/frontend/src/components/PaginationStrip.vue new file mode 100644 index 0000000000..3f11a59f0f --- /dev/null +++ b/frontend/src/components/PaginationStrip.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/frontend/src/components/RefreshConfig.vue b/frontend/src/components/RefreshConfig.vue new file mode 100644 index 0000000000..e03ffab0c1 --- /dev/null +++ b/frontend/src/components/RefreshConfig.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/frontend/src/components/ResultsCount.vue b/frontend/src/components/ResultsCount.vue new file mode 100644 index 0000000000..2340aa8c7b --- /dev/null +++ b/frontend/src/components/ResultsCount.vue @@ -0,0 +1,20 @@ + + + + + diff --git a/frontend/src/components/SagaName.vue b/frontend/src/components/SagaName.vue new file mode 100644 index 0000000000..b1ea343aa1 --- /dev/null +++ b/frontend/src/components/SagaName.vue @@ -0,0 +1,32 @@ + + + + + diff --git a/frontend/src/components/ServiceControlAvailable.vue b/frontend/src/components/ServiceControlAvailable.vue new file mode 100644 index 0000000000..17493cf28a --- /dev/null +++ b/frontend/src/components/ServiceControlAvailable.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/frontend/src/components/SortInfo.ts b/frontend/src/components/SortInfo.ts new file mode 100644 index 0000000000..b0f123b936 --- /dev/null +++ b/frontend/src/components/SortInfo.ts @@ -0,0 +1,4 @@ +export interface SortInfo { + property: string; + isAscending: boolean; +} diff --git a/frontend/src/components/StatusIcon.vue b/frontend/src/components/StatusIcon.vue new file mode 100644 index 0000000000..0a0e5de6c1 --- /dev/null +++ b/frontend/src/components/StatusIcon.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/frontend/src/components/TabsLayout.vue b/frontend/src/components/TabsLayout.vue new file mode 100644 index 0000000000..184ab6fd61 --- /dev/null +++ b/frontend/src/components/TabsLayout.vue @@ -0,0 +1,40 @@ + + + + + diff --git a/frontend/src/components/TextEllipses.vue b/frontend/src/components/TextEllipses.vue new file mode 100644 index 0000000000..bb589e449f --- /dev/null +++ b/frontend/src/components/TextEllipses.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/frontend/src/components/TimeSince.vue b/frontend/src/components/TimeSince.vue new file mode 100644 index 0000000000..0a75a58693 --- /dev/null +++ b/frontend/src/components/TimeSince.vue @@ -0,0 +1,47 @@ + + + diff --git a/frontend/src/components/ToastPopup.vue b/frontend/src/components/ToastPopup.vue new file mode 100644 index 0000000000..39701c070f --- /dev/null +++ b/frontend/src/components/ToastPopup.vue @@ -0,0 +1,54 @@ + + + diff --git a/frontend/src/components/TypeNameDisplay.vue b/frontend/src/components/TypeNameDisplay.vue new file mode 100644 index 0000000000..917240a46b --- /dev/null +++ b/frontend/src/components/TypeNameDisplay.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/frontend/src/components/WarningLevel.ts b/frontend/src/components/WarningLevel.ts new file mode 100644 index 0000000000..eef486b287 --- /dev/null +++ b/frontend/src/components/WarningLevel.ts @@ -0,0 +1,5 @@ +export enum WarningLevel { + None = "none", + Warning = "warning", + Danger = "danger", +} diff --git a/frontend/src/components/audit/AuditList.vue b/frontend/src/components/audit/AuditList.vue new file mode 100644 index 0000000000..1004e71133 --- /dev/null +++ b/frontend/src/components/audit/AuditList.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/frontend/src/components/audit/AuditListItem.vue b/frontend/src/components/audit/AuditListItem.vue new file mode 100644 index 0000000000..cc107068b6 --- /dev/null +++ b/frontend/src/components/audit/AuditListItem.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/frontend/src/components/audit/AuditMenuItem.vue b/frontend/src/components/audit/AuditMenuItem.vue new file mode 100644 index 0000000000..ff80a9061d --- /dev/null +++ b/frontend/src/components/audit/AuditMenuItem.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/frontend/src/components/audit/DatePickerRange.vue b/frontend/src/components/audit/DatePickerRange.vue new file mode 100644 index 0000000000..be40ddf95f --- /dev/null +++ b/frontend/src/components/audit/DatePickerRange.vue @@ -0,0 +1,62 @@ + + + + + diff --git a/frontend/src/components/audit/FiltersPanel.vue b/frontend/src/components/audit/FiltersPanel.vue new file mode 100644 index 0000000000..cc21d3cb54 --- /dev/null +++ b/frontend/src/components/audit/FiltersPanel.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/frontend/src/components/audit/ListFilterSelector.vue b/frontend/src/components/audit/ListFilterSelector.vue new file mode 100644 index 0000000000..dbe8df59ce --- /dev/null +++ b/frontend/src/components/audit/ListFilterSelector.vue @@ -0,0 +1,129 @@ + + + + + diff --git a/frontend/src/components/audit/MessageStatusIcon.vue b/frontend/src/components/audit/MessageStatusIcon.vue new file mode 100644 index 0000000000..40092cfa78 --- /dev/null +++ b/frontend/src/components/audit/MessageStatusIcon.vue @@ -0,0 +1,108 @@ + + + + + diff --git a/frontend/src/components/audit/isAllMessagesSupported.ts b/frontend/src/components/audit/isAllMessagesSupported.ts new file mode 100644 index 0000000000..e3d76561fc --- /dev/null +++ b/frontend/src/components/audit/isAllMessagesSupported.ts @@ -0,0 +1,8 @@ +import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh"; + +export const minimumSCVersionForAllMessages = "6.6.0"; + +export default function useIsAllMessagesSupported() { + const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh(); + return environmentStore.serviceControlIsGreaterThan(minimumSCVersionForAllMessages); +} diff --git a/frontend/src/components/codeEditorTypes.ts b/frontend/src/components/codeEditorTypes.ts new file mode 100644 index 0000000000..c1f7bcd46f --- /dev/null +++ b/frontend/src/components/codeEditorTypes.ts @@ -0,0 +1 @@ +export type CodeLanguage = "json" | "xml" | "shell" | "powershell" | "csharp"; diff --git a/frontend/src/components/configuration/ConfigurationMenuItem.vue b/frontend/src/components/configuration/ConfigurationMenuItem.vue new file mode 100644 index 0000000000..fedab35c36 --- /dev/null +++ b/frontend/src/components/configuration/ConfigurationMenuItem.vue @@ -0,0 +1,42 @@ + + + + + diff --git a/frontend/src/components/configuration/EmailSettings.ts b/frontend/src/components/configuration/EmailSettings.ts new file mode 100644 index 0000000000..725b07323a --- /dev/null +++ b/frontend/src/components/configuration/EmailSettings.ts @@ -0,0 +1,10 @@ +export default interface EmailSettings { + enabled: boolean | null; + enable_tls: boolean | null; + smtp_server: string; + smtp_port: number | null; + authentication_account: string; + authentication_password: string; + from: string; + to: string; +} diff --git a/frontend/src/components/configuration/EndpointConnection.vue b/frontend/src/components/configuration/EndpointConnection.vue new file mode 100644 index 0000000000..86669e16a3 --- /dev/null +++ b/frontend/src/components/configuration/EndpointConnection.vue @@ -0,0 +1,228 @@ + + + + + diff --git a/frontend/src/components/configuration/HealthCheckNotifications.vue b/frontend/src/components/configuration/HealthCheckNotifications.vue new file mode 100644 index 0000000000..cc23cd2195 --- /dev/null +++ b/frontend/src/components/configuration/HealthCheckNotifications.vue @@ -0,0 +1,181 @@ + + + + + diff --git a/frontend/src/components/configuration/HealthCheckNotifications_ConfigureEmail.vue b/frontend/src/components/configuration/HealthCheckNotifications_ConfigureEmail.vue new file mode 100644 index 0000000000..f650b420d6 --- /dev/null +++ b/frontend/src/components/configuration/HealthCheckNotifications_ConfigureEmail.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/components/configuration/MassTransitConnector.vue b/frontend/src/components/configuration/MassTransitConnector.vue new file mode 100644 index 0000000000..81d0c7ed78 --- /dev/null +++ b/frontend/src/components/configuration/MassTransitConnector.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/frontend/src/components/configuration/PlatformConnections.vue b/frontend/src/components/configuration/PlatformConnections.vue new file mode 100644 index 0000000000..a853ed52ed --- /dev/null +++ b/frontend/src/components/configuration/PlatformConnections.vue @@ -0,0 +1,138 @@ + + + + + diff --git a/frontend/src/components/configuration/PlatformLicense.vue b/frontend/src/components/configuration/PlatformLicense.vue new file mode 100644 index 0000000000..bdfbf09424 --- /dev/null +++ b/frontend/src/components/configuration/PlatformLicense.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/frontend/src/components/configuration/RetryRedirectEdit.vue b/frontend/src/components/configuration/RetryRedirectEdit.vue new file mode 100644 index 0000000000..56da3e8d72 --- /dev/null +++ b/frontend/src/components/configuration/RetryRedirectEdit.vue @@ -0,0 +1,174 @@ + + + + + diff --git a/frontend/src/components/configuration/RetryRedirects.vue b/frontend/src/components/configuration/RetryRedirects.vue new file mode 100644 index 0000000000..f9f5d4a4b1 --- /dev/null +++ b/frontend/src/components/configuration/RetryRedirects.vue @@ -0,0 +1,246 @@ + + + + + diff --git a/frontend/src/components/configuration/convertToWarningLevel.ts b/frontend/src/components/configuration/convertToWarningLevel.ts new file mode 100644 index 0000000000..b808e88193 --- /dev/null +++ b/frontend/src/components/configuration/convertToWarningLevel.ts @@ -0,0 +1,13 @@ +import { LicenseWarningLevel } from "@/composables/LicenseStatus"; +import { WarningLevel } from "@/components/WarningLevel"; + +export default function convertToWarningLevel(level: LicenseWarningLevel) { + switch (level) { + case LicenseWarningLevel.None: + return WarningLevel.None; + case LicenseWarningLevel.Warning: + return WarningLevel.Warning; + case LicenseWarningLevel.Danger: + return WarningLevel.Danger; + } +} diff --git a/frontend/src/components/customchecks/CustomCheckView.vue b/frontend/src/components/customchecks/CustomCheckView.vue new file mode 100644 index 0000000000..ccb49ada81 --- /dev/null +++ b/frontend/src/components/customchecks/CustomCheckView.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/frontend/src/components/customchecks/CustomChecksDashboardItem.vue b/frontend/src/components/customchecks/CustomChecksDashboardItem.vue new file mode 100644 index 0000000000..113060771d --- /dev/null +++ b/frontend/src/components/customchecks/CustomChecksDashboardItem.vue @@ -0,0 +1,14 @@ + + + diff --git a/frontend/src/components/customchecks/CustomChecksMenuItem.vue b/frontend/src/components/customchecks/CustomChecksMenuItem.vue new file mode 100644 index 0000000000..b3c4542f68 --- /dev/null +++ b/frontend/src/components/customchecks/CustomChecksMenuItem.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/components/dashboard/DashboardMenuItem.vue b/frontend/src/components/dashboard/DashboardMenuItem.vue new file mode 100644 index 0000000000..28d1efdfa9 --- /dev/null +++ b/frontend/src/components/dashboard/DashboardMenuItem.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/frontend/src/components/events/EventsMenuItem.vue b/frontend/src/components/events/EventsMenuItem.vue new file mode 100644 index 0000000000..a1dd1a6da9 --- /dev/null +++ b/frontend/src/components/events/EventsMenuItem.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/frontend/src/components/failedmessages/DeletedMessageGroups.vue b/frontend/src/components/failedmessages/DeletedMessageGroups.vue new file mode 100644 index 0000000000..b3f0a1242f --- /dev/null +++ b/frontend/src/components/failedmessages/DeletedMessageGroups.vue @@ -0,0 +1,439 @@ + + + + + diff --git a/frontend/src/components/failedmessages/DeletedMessages.vue b/frontend/src/components/failedmessages/DeletedMessages.vue new file mode 100644 index 0000000000..0bd50627bc --- /dev/null +++ b/frontend/src/components/failedmessages/DeletedMessages.vue @@ -0,0 +1,287 @@ + + + + + diff --git a/frontend/src/components/failedmessages/EditIgnoredDialog.vue b/frontend/src/components/failedmessages/EditIgnoredDialog.vue new file mode 100644 index 0000000000..8d54c56463 --- /dev/null +++ b/frontend/src/components/failedmessages/EditIgnoredDialog.vue @@ -0,0 +1,37 @@ + + + + + diff --git a/frontend/src/components/failedmessages/EditMessageHeader.vue b/frontend/src/components/failedmessages/EditMessageHeader.vue new file mode 100644 index 0000000000..e0013b67c2 --- /dev/null +++ b/frontend/src/components/failedmessages/EditMessageHeader.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/frontend/src/components/failedmessages/EditRetryDialog.vue b/frontend/src/components/failedmessages/EditRetryDialog.vue new file mode 100644 index 0000000000..5393f459aa --- /dev/null +++ b/frontend/src/components/failedmessages/EditRetryDialog.vue @@ -0,0 +1,328 @@ + + + + + diff --git a/frontend/src/components/failedmessages/FailedMessageGroupNoteEdit.vue b/frontend/src/components/failedmessages/FailedMessageGroupNoteEdit.vue new file mode 100644 index 0000000000..1804cd4e87 --- /dev/null +++ b/frontend/src/components/failedmessages/FailedMessageGroupNoteEdit.vue @@ -0,0 +1,76 @@ + + + + + diff --git a/frontend/src/components/failedmessages/FailedMessageGroups.vue b/frontend/src/components/failedmessages/FailedMessageGroups.vue new file mode 100644 index 0000000000..00c56cf9a1 --- /dev/null +++ b/frontend/src/components/failedmessages/FailedMessageGroups.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/frontend/src/components/failedmessages/FailedMessages.vue b/frontend/src/components/failedmessages/FailedMessages.vue new file mode 100644 index 0000000000..04c88cc2b1 --- /dev/null +++ b/frontend/src/components/failedmessages/FailedMessages.vue @@ -0,0 +1,356 @@ + + + + + diff --git a/frontend/src/components/failedmessages/FailedMessagesDashboardItem.vue b/frontend/src/components/failedmessages/FailedMessagesDashboardItem.vue new file mode 100644 index 0000000000..5d2f4931ba --- /dev/null +++ b/frontend/src/components/failedmessages/FailedMessagesDashboardItem.vue @@ -0,0 +1,14 @@ + + + diff --git a/frontend/src/components/failedmessages/FailedMessagesMenuItem.vue b/frontend/src/components/failedmessages/FailedMessagesMenuItem.vue new file mode 100644 index 0000000000..92cd5da021 --- /dev/null +++ b/frontend/src/components/failedmessages/FailedMessagesMenuItem.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/components/failedmessages/LastTenOperations.vue b/frontend/src/components/failedmessages/LastTenOperations.vue new file mode 100644 index 0000000000..b146bf38e7 --- /dev/null +++ b/frontend/src/components/failedmessages/LastTenOperations.vue @@ -0,0 +1,99 @@ + + + + + diff --git a/frontend/src/components/failedmessages/MessageGroupList.vue b/frontend/src/components/failedmessages/MessageGroupList.vue new file mode 100644 index 0000000000..a6efa23ca1 --- /dev/null +++ b/frontend/src/components/failedmessages/MessageGroupList.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/frontend/src/components/failedmessages/MessageList.vue b/frontend/src/components/failedmessages/MessageList.vue new file mode 100644 index 0000000000..7fd88e9107 --- /dev/null +++ b/frontend/src/components/failedmessages/MessageList.vue @@ -0,0 +1,350 @@ + + + + + diff --git a/frontend/src/components/failedmessages/PendingRetries.vue b/frontend/src/components/failedmessages/PendingRetries.vue new file mode 100644 index 0000000000..ff5050c294 --- /dev/null +++ b/frontend/src/components/failedmessages/PendingRetries.vue @@ -0,0 +1,421 @@ + + + + + diff --git a/frontend/src/components/failedmessages/ProgressMessage.vue b/frontend/src/components/failedmessages/ProgressMessage.vue new file mode 100644 index 0000000000..bb27a5a191 --- /dev/null +++ b/frontend/src/components/failedmessages/ProgressMessage.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/components/failedmessages/failedmessages.css b/frontend/src/components/failedmessages/failedmessages.css new file mode 100644 index 0000000000..3ee09db756 --- /dev/null +++ b/frontend/src/components/failedmessages/failedmessages.css @@ -0,0 +1,90 @@ +.panel-retry { + background-color: #1a1a1a; + border: none; + color: #fff; +} + +.panel-retry p.lead { + color: #fff; +} + +.panel-retry span.metadata, +.panel-retry sp-moment { + color: #b0b5b5 !important; +} + +div.retry-completed.bulk-retry-progress-status { + color: #fff; + font-weight: bold; +} + +.progress.bulk-retry-progress { + margin-bottom: 0; + background-color: #333333; +} + +.retry-completed, +ul.retry-request-progress button { + display: inline-block; +} + +ul.retry-request-progress button { + background-color: var(--sp-blue); +} + +ul.retry-request-progress li > div { + margin-bottom: 6px; +} + +.btn.btn-sm { + color: var(--sp-blue); + font-size: 14px; + font-weight: bold; + padding: 0 36px 10px 0; +} + +.panel { + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body ul { + list-style: none; + padding-left: 0; +} + +.panel-body ul { + list-style: none; +} + +.op-metadata { + border-top: 1px solid #414242; + padding-top: 15px; +} + +.note { + margin-bottom: 10px; + background-color: #fcf8e3; + border: 1px solid #faebcc; + padding: 10px 15px; +} + +.metadata.danger, +.metadata.danger > .danger { + font-weight: normal !important; +} + +.icon { + color: var(--reduced-emphasis); +} + +button .icon { + margin-right: 2px; +} diff --git a/frontend/src/components/failedmessages/messageGroupClient.ts b/frontend/src/components/failedmessages/messageGroupClient.ts new file mode 100644 index 0000000000..f39f870a08 --- /dev/null +++ b/frontend/src/components/failedmessages/messageGroupClient.ts @@ -0,0 +1,68 @@ +import { ServiceControlStore, useServiceControlStore } from "@/stores/ServiceControlStore"; +import type GroupOperation from "@/resources/GroupOperation"; + +// eslint-disable-next-line @typescript-eslint/no-empty-object-type +export interface SuccessResponse {} +export interface ErrorResponse { + message: string; +} + +class MessageGroupClient { + serviceControlStore: ServiceControlStore; + constructor() { + //this module is only called from within view setup or other pinia stores, so this call is lifecycle safe + this.serviceControlStore = useServiceControlStore(); + } + + public async getExceptionGroups(classifier: string = "") { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`recoverability/groups/${classifier}`); + return data; + } + + public async getExceptionGroupsForEndpoint(classifier: string = "", classiferFilter = "") { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`recoverability/groups/${classifier}?classifierFilter=${classiferFilter}`); + return data; + } + + //delete note by group id + public async deleteNote(groupId: string) { + return this.evaluateResponse(await this.serviceControlStore.deleteFromServiceControl(`recoverability/groups/${groupId}/comment`)); + } + + //edit or create note by group id + public async editOrCreateNote(groupId: string, comment: string) { + return this.evaluateResponse(await this.serviceControlStore.postToServiceControl(`recoverability/groups/${groupId}/comment?comment=${comment}`)); + } + + //archive exception group by group id + //archiveGroup + public async archiveExceptionGroup(groupId: string) { + return this.evaluateResponse(await this.serviceControlStore.postToServiceControl(`recoverability/groups/${groupId}/errors/archive`)); + } + + //restore group by group id + public async restoreGroup(groupId: string) { + return this.evaluateResponse(await this.serviceControlStore.postToServiceControl(`recoverability/groups/${groupId}/errors/unarchive`)); + } + + //retry exception group by group id + //retryGroup + public async retryExceptionGroup(groupId: string) { + return this.evaluateResponse(await this.serviceControlStore.postToServiceControl(`recoverability/groups/${groupId}/errors/retry`)); + } + + //acknowledge archive exception group by group id + public async acknowledgeArchiveGroup(groupId: string) { + return this.evaluateResponse(await this.serviceControlStore.deleteFromServiceControl(`recoverability/unacknowledgedgroups/${groupId}`)); + } + + evaluateResponse(response: Response): SuccessResponse | ErrorResponse { + return response.ok ? ({} as SuccessResponse) : ({ message: response.statusText } as ErrorResponse); + } + + public isError(obj: SuccessResponse | ErrorResponse): obj is ErrorResponse { + return (obj as ErrorResponse).message !== undefined; + } +} + +export default () => new MessageGroupClient(); diff --git a/frontend/src/components/getSortFunction.ts b/frontend/src/components/getSortFunction.ts new file mode 100644 index 0000000000..047b9fbbaf --- /dev/null +++ b/frontend/src/components/getSortFunction.ts @@ -0,0 +1,19 @@ +import { type GroupPropertyType, SortDirection } from "@/resources/SortOptions"; + +export default function getSortFunction(selector: ((group: T) => GroupPropertyType) | undefined, dir: SortDirection) { + if (!selector) { + return () => 0; + } + const sortFunc = (firstElement: T, secondElement: T) => { + const x = selector(firstElement); + const y = selector(secondElement); + if (x > y) { + return 1; + } else if (x < y) { + return -1; + } + return 0; + }; + + return dir === SortDirection.Ascending ? sortFunc : (firstElement: T, secondElement: T) => -sortFunc(firstElement, secondElement); +} diff --git a/frontend/src/components/heartbeats/EndpointInstances.vue b/frontend/src/components/heartbeats/EndpointInstances.vue new file mode 100644 index 0000000000..536e60caf4 --- /dev/null +++ b/frontend/src/components/heartbeats/EndpointInstances.vue @@ -0,0 +1,253 @@ + + + + + diff --git a/frontend/src/components/heartbeats/EndpointSettingsSupported.vue b/frontend/src/components/heartbeats/EndpointSettingsSupported.vue new file mode 100644 index 0000000000..b846a91a06 --- /dev/null +++ b/frontend/src/components/heartbeats/EndpointSettingsSupported.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/frontend/src/components/heartbeats/HealthyEndpoints.vue b/frontend/src/components/heartbeats/HealthyEndpoints.vue new file mode 100644 index 0000000000..a2c14cd182 --- /dev/null +++ b/frontend/src/components/heartbeats/HealthyEndpoints.vue @@ -0,0 +1,25 @@ + + + diff --git a/frontend/src/components/heartbeats/HeartbeatConfiguration.vue b/frontend/src/components/heartbeats/HeartbeatConfiguration.vue new file mode 100644 index 0000000000..eb3a6fe1fe --- /dev/null +++ b/frontend/src/components/heartbeats/HeartbeatConfiguration.vue @@ -0,0 +1,155 @@ + + + + + diff --git a/frontend/src/components/heartbeats/HeartbeatsDashboardItem.vue b/frontend/src/components/heartbeats/HeartbeatsDashboardItem.vue new file mode 100644 index 0000000000..ae574a696a --- /dev/null +++ b/frontend/src/components/heartbeats/HeartbeatsDashboardItem.vue @@ -0,0 +1,12 @@ + + + diff --git a/frontend/src/components/heartbeats/HeartbeatsList.vue b/frontend/src/components/heartbeats/HeartbeatsList.vue new file mode 100644 index 0000000000..0a41e0b148 --- /dev/null +++ b/frontend/src/components/heartbeats/HeartbeatsList.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/frontend/src/components/heartbeats/HeartbeatsMenuItem.vue b/frontend/src/components/heartbeats/HeartbeatsMenuItem.vue new file mode 100644 index 0000000000..abf27da5a9 --- /dev/null +++ b/frontend/src/components/heartbeats/HeartbeatsMenuItem.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/components/heartbeats/LastHeartbeat.vue b/frontend/src/components/heartbeats/LastHeartbeat.vue new file mode 100644 index 0000000000..f34ff30a44 --- /dev/null +++ b/frontend/src/components/heartbeats/LastHeartbeat.vue @@ -0,0 +1,19 @@ + + + diff --git a/frontend/src/components/heartbeats/UnhealthyEndpoints.vue b/frontend/src/components/heartbeats/UnhealthyEndpoints.vue new file mode 100644 index 0000000000..78b18cd894 --- /dev/null +++ b/frontend/src/components/heartbeats/UnhealthyEndpoints.vue @@ -0,0 +1,25 @@ + + + diff --git a/frontend/src/components/heartbeats/heartbeats.css b/frontend/src/components/heartbeats/heartbeats.css new file mode 100644 index 0000000000..05f8b75ffd --- /dev/null +++ b/frontend/src/components/heartbeats/heartbeats.css @@ -0,0 +1,91 @@ +.lead.endpoint-details-link.righ-side-ellipsis a { + color: #00729c; + margin: 0; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + border-bottom: 1px dotted lightgrey; +} + +.lead.endpoint-details-link.righ-side-ellipsis a:hover { + border-bottom: 1px solid #00729c; + text-decoration: none !important; +} + +.righ-side-ellipsis { + direction: rtl; + text-align: left; +} + +.box-header { + display: flex; + gap: 0.5em; + max-width: 100%; +} + +.endpoint-name > div > div > a { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: #00729c; + border-bottom: 1px dotted lightgrey; +} + +.endpoint-name, +.endpoint-name > div { + display: flex; + flex-direction: column; + align-items: flex-start; + flex-wrap: wrap; + justify-content: center; +} + +.endpoint-name { + gap: 0.25em; +} + +.endpoint-name .box-header { + flex-direction: row; + justify-content: flex-start; + align-items: center; + max-width: 100%; +} + +.endpoint-name .box-header > *:not(:first-child) { + margin-left: 0.25em; +} + +.endpoint-count { + font-weight: bold; +} + +p:not(.lead) { + margin: 0 0 5px; +} + +div[role="columnheader"] { + display: flex; +} + +div[role="cell"] { + padding: 10px; + align-items: center; + display: flex; + gap: 0.25em; +} + +div[role="cell"].centre, +div[role="columnheader"].centre { + justify-content: center; +} + +.grid-row { + display: flex; + position: relative; + border-top: 1px solid #eee; + border-right: 1px solid #fff; + border-bottom: 1px solid #eee; + border-left: 1px solid #fff; + background-color: #fff; + margin: 0; +} diff --git a/frontend/src/components/heartbeats/isEndpointSettingsSupported.ts b/frontend/src/components/heartbeats/isEndpointSettingsSupported.ts new file mode 100644 index 0000000000..1eea96802a --- /dev/null +++ b/frontend/src/components/heartbeats/isEndpointSettingsSupported.ts @@ -0,0 +1,8 @@ +import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh"; + +export const minimumSCVersionForEndpointSettings = "5.9.0"; + +export default function useIsEndpointSettingsSupported() { + const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh(); + return environmentStore.serviceControlIsGreaterThan(minimumSCVersionForEndpointSettings); +} diff --git a/frontend/src/components/heartbeats/serviceControlWithHeartbeats.ts b/frontend/src/components/heartbeats/serviceControlWithHeartbeats.ts new file mode 100644 index 0000000000..0f3e82b871 --- /dev/null +++ b/frontend/src/components/heartbeats/serviceControlWithHeartbeats.ts @@ -0,0 +1,14 @@ +import { SetupFactoryOptions } from "../../../test/driver"; +import * as precondition from "../../../test/preconditions"; +import { minimumSCVersionForEndpointSettings } from "@/components/heartbeats/isEndpointSettingsSupported"; + +export const serviceControlWithHeartbeats = async ({ driver }: SetupFactoryOptions) => { + await driver.setUp(precondition.hasUpToDateServicePulse); + await driver.setUp(precondition.hasUpToDateServiceControl); + await driver.setUp(precondition.errorsDefaultHandler); + await driver.setUp(precondition.hasCustomChecksEmpty); + await driver.setUp(precondition.hasEventLogItems); + await driver.setUp(precondition.hasServiceControlMainInstance(minimumSCVersionForEndpointSettings)); + await driver.setUp(precondition.hasNoDisconnectedEndpoints); + await driver.setUp(precondition.hasServiceControlMonitoringInstance); +}; diff --git a/frontend/src/components/list.css b/frontend/src/components/list.css new file mode 100644 index 0000000000..fb52cf246e --- /dev/null +++ b/frontend/src/components/list.css @@ -0,0 +1,15 @@ +.lead, +.box p .lead { + word-wrap: break-word; + color: #181919; + font-size: 1em; + font-weight: bold; + margin-bottom: 0.2em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +a { + cursor: pointer; +} diff --git a/frontend/src/components/messages/BodyView.vue b/frontend/src/components/messages/BodyView.vue new file mode 100644 index 0000000000..ceb1e8d8bb --- /dev/null +++ b/frontend/src/components/messages/BodyView.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/frontend/src/components/messages/DeleteMessageButton.vue b/frontend/src/components/messages/DeleteMessageButton.vue new file mode 100644 index 0000000000..033d39ba1d --- /dev/null +++ b/frontend/src/components/messages/DeleteMessageButton.vue @@ -0,0 +1,44 @@ + + + diff --git a/frontend/src/components/messages/DiffContent.vue b/frontend/src/components/messages/DiffContent.vue new file mode 100644 index 0000000000..253569365b --- /dev/null +++ b/frontend/src/components/messages/DiffContent.vue @@ -0,0 +1,401 @@ + + + + + diff --git a/frontend/src/components/messages/DiffViewer.vue b/frontend/src/components/messages/DiffViewer.vue new file mode 100644 index 0000000000..3048c4e3a1 --- /dev/null +++ b/frontend/src/components/messages/DiffViewer.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/frontend/src/components/messages/EditAndRetryButton.vue b/frontend/src/components/messages/EditAndRetryButton.vue new file mode 100644 index 0000000000..4976aedf4f --- /dev/null +++ b/frontend/src/components/messages/EditAndRetryButton.vue @@ -0,0 +1,54 @@ + + + diff --git a/frontend/src/components/messages/ExportMessageButton.vue b/frontend/src/components/messages/ExportMessageButton.vue new file mode 100644 index 0000000000..bf88ef7d51 --- /dev/null +++ b/frontend/src/components/messages/ExportMessageButton.vue @@ -0,0 +1,30 @@ + + + diff --git a/frontend/src/components/messages/FlowDiagram/FlowDiagram.vue b/frontend/src/components/messages/FlowDiagram/FlowDiagram.vue new file mode 100644 index 0000000000..473cc575bf --- /dev/null +++ b/frontend/src/components/messages/FlowDiagram/FlowDiagram.vue @@ -0,0 +1,449 @@ + + + + + + + diff --git a/frontend/src/components/messages/FlowDiagram/useLayout.ts b/frontend/src/components/messages/FlowDiagram/useLayout.ts new file mode 100644 index 0000000000..7b76a90dfe --- /dev/null +++ b/frontend/src/components/messages/FlowDiagram/useLayout.ts @@ -0,0 +1,48 @@ +import dagre from "@dagrejs/dagre"; +import { DefaultEdge, Node, Position, useVueFlow } from "@vue-flow/core"; +import { ref } from "vue"; + +export function useLayout() { + const { findNode } = useVueFlow(); + + const graph = ref(new dagre.graphlib.Graph()); + + function layout(nodes: Node[], edges: DefaultEdge[]) { + // we create a new graph instance, in case some nodes/edges were removed, otherwise dagre would act as if they were still there + const dagreGraph = new dagre.graphlib.Graph(); + + graph.value = dagreGraph; + + dagreGraph.setDefaultEdgeLabel(() => ({})); + + const isHorizontal = false; + dagreGraph.setGraph({ rankdir: "TB" }); + + for (const node of nodes) { + const graphNode = findNode(node.id); + if (graphNode === undefined) continue; + + dagreGraph.setNode(node.id, { width: graphNode.dimensions.width || 250, height: graphNode.dimensions.height || 55 }); + } + + for (const edge of edges) { + dagreGraph.setEdge(edge.source, edge.target); + } + + dagre.layout(dagreGraph); + + // set nodes with updated positions + return nodes.map((node) => { + const nodeWithPosition = dagreGraph.node(node.id); + + return { + ...node, + targetPosition: isHorizontal ? Position.Left : Position.Top, + sourcePosition: isHorizontal ? Position.Right : Position.Bottom, + position: { x: nodeWithPosition.x, y: nodeWithPosition.y }, + }; + }); + } + + return { graph, layout }; +} diff --git a/frontend/src/components/messages/HeadersView.vue b/frontend/src/components/messages/HeadersView.vue new file mode 100644 index 0000000000..7f8c05e7df --- /dev/null +++ b/frontend/src/components/messages/HeadersView.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/frontend/src/components/messages/MessageView.vue b/frontend/src/components/messages/MessageView.vue new file mode 100644 index 0000000000..b25a2a2a81 --- /dev/null +++ b/frontend/src/components/messages/MessageView.vue @@ -0,0 +1,222 @@ + + + + + diff --git a/frontend/src/components/messages/MetadataLabel.vue b/frontend/src/components/messages/MetadataLabel.vue new file mode 100644 index 0000000000..3531068151 --- /dev/null +++ b/frontend/src/components/messages/MetadataLabel.vue @@ -0,0 +1,6 @@ + + diff --git a/frontend/src/components/messages/RestoreMessageButton.vue b/frontend/src/components/messages/RestoreMessageButton.vue new file mode 100644 index 0000000000..5390b3f822 --- /dev/null +++ b/frontend/src/components/messages/RestoreMessageButton.vue @@ -0,0 +1,41 @@ + + + diff --git a/frontend/src/components/messages/RetryMessageButton.vue b/frontend/src/components/messages/RetryMessageButton.vue new file mode 100644 index 0000000000..b670a89084 --- /dev/null +++ b/frontend/src/components/messages/RetryMessageButton.vue @@ -0,0 +1,38 @@ + + + diff --git a/frontend/src/components/messages/SagaDiagram.spec.ts b/frontend/src/components/messages/SagaDiagram.spec.ts new file mode 100644 index 0000000000..640bb04c4d --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram.spec.ts @@ -0,0 +1,402 @@ +import { render, describe, test, screen, expect, within } from "@component-test-utils"; +import sut from "@/components/messages/SagaDiagram.vue"; +import { SagaHistory } from "@/resources/SagaHistory"; +import makeRouter from "@/router"; +import { createTestingPinia } from "@pinia/testing"; +import { MessageStore } from "@/stores/MessageStore"; +import { MessageStatus } from "@/resources/Message"; + +//Defines a domain-specific language (DSL) for interacting with the system under test (sut) +interface componentDSL { + action1(value: string): void; + assert: componentDSLAssertions; +} + +//Defines a domain-specific language (DSL) for checking assertions against the system under test (sut) +interface componentDSLAssertions { + thereAreTheFollowingSagaChangesInThisOrder(expectedDatesInOrder: Date[]): void; + displayedSagaGuidIs(sagaId: string): void; + displayedSagaNameIs(humanizedSagaName: string): void; + linkIsShown(arg0: { withText: string; withHref: string }): void; + NoSagaDataAvailableMessageIsShownWithMessage(message: RegExp): void; + SagaPlugInNeededIsShownWithTheMessages({ messages, withPluginDownloadUrl }: { messages: RegExp[]; withPluginDownloadUrl: string }): void; + SagaSequenceIsNotShown(): void; +} + +describe("Feature: Message not involved in Saga", () => { + describe("Rule: When the selected message has not participated in a Saga, display a legend indicating it.​", () => { + test("EXAMPLE: A message that has not participated in a saga is selected", () => { + const messageStore = {} as MessageStore; + messageStore.state = {} as MessageStore["state"]; + messageStore.state.data = {} as MessageStore["state"]["data"]; + messageStore.state.data.invoked_saga = { + has_saga: false, + saga_id: undefined, + saga_type: undefined, + }; + + // No need to manually set up the store - it will be empty by default + const componentDriver = rendercomponent({ + initialState: { + MessageStore: messageStore, + SagaDiagramStore: undefined, // Lets pass undefined to simulate no saga data available + }, + }); + + componentDriver.assert.NoSagaDataAvailableMessageIsShownWithMessage(/This message is not part of any saga/i); + }); + }); +}); + +describe("Feature: Detecting no Audited Saga Data Available", () => { + describe("Rule: When a message participates in a Saga, but the Saga data is unavailable, display a legend indicating that the Saga audit plugin is needed to visualize the saga.", () => { + test("EXAMPLE: A message that was participated in a Saga without the Saga audit plugin being active gets selected", () => { + const messageStore = {} as MessageStore; + messageStore.state = {} as MessageStore["state"]; + messageStore.state.data = {} as MessageStore["state"]["data"]; + messageStore.state.data.invoked_saga = { + has_saga: true, + saga_id: "saga-id-123", + saga_type: "Shipping.ShipOrderWorkflow", + }; + + // No need to manually set up the store - it will be empty by default + const componentDriver = rendercomponent({ + initialState: { + MessageStore: messageStore, + SagaDiagramStore: undefined, // Lets pass undefined to simulate no saga data available + }, + }); + + componentDriver.assert.SagaPlugInNeededIsShownWithTheMessages({ + messages: [/Saga audit plugin needed to visualize saga/i, /To visualize your saga, please install the appropriate nuget package in your endpoint/i, /install-package NServiceBus\.SagaAudit/i], + withPluginDownloadUrl: "https://www.nuget.org/packages/NServiceBus.SagaAudit", + }); + }); + }); +}); + +describe("Feature: Navigation and Contextual Information", () => { + describe("Rule: Clearly indicate contextual information like Saga ID and Saga Type.", () => { + test("EXAMPLE: A message with a Saga Id '123' and a Saga Type 'ServiceControl.SmokeTest.AuditingSaga' gets selected", () => { + const messageStore = {} as MessageStore; + messageStore.state = {} as MessageStore["state"]; + messageStore.state.data = {} as MessageStore["state"]["data"]; + messageStore.state.data.invoked_saga = { + has_saga: true, + saga_id: "123", + saga_type: "ServiceControl.SmokeTest.AuditingSaga", + }; + + // Set initial state with sample saga history + const componentDriver = rendercomponent({ + initialState: { + MessageStore: messageStore, + SagaDiagramStore: { sagaHistory: sampleSagaHistory }, + }, + }); + + componentDriver.assert.displayedSagaNameIs("AuditingSaga"); + componentDriver.assert.displayedSagaGuidIs("123"); + }); + }); +}); + +describe("Feature: 3 Visual Representation of Saga Timeline", () => { + describe("Rule: 3.1 Clearly indicate the initiation and completion of a saga.", () => { + test.todo("EXAMPLE: A message with a Saga Id '123' and a Saga Type 'ServiceControl.SmokeTest.AuditingSaga' gets selected", () => { + //"Saga Initiated" is explicitly displayed first, and "Saga Completed" is explicitly displayed at the bottom. + }); + }); + + describe("Rule: 3.3 Display a chronological timeline of saga events localized to user environment.", () => { + test.each([ + { + timezone: "UTC", + }, + { + timezone: "America/Los_Angeles", + }, + ])("EXAMPLE: Rendering a Saga with 4 changes - User Timezone $timezone", ({ timezone }) => { + // Each saga event ("Saga Initiated," "Saga Updated," "Timeout Invoked," "Saga Completed") is timestamped to represent progression over time. Events are ordered by the time they ocurred. + //TODO: "Incoming messages are displayed on the left, and outgoing messages are displayed on the right." in another test? + + //arragement + //sampleSagaHistory already not sorted TODO: Make this more clear so the reader of this test doesn't have to go arround and figure out the preconditions + const messageStore = {} as MessageStore; + messageStore.state = {} as MessageStore["state"]; + messageStore.state.data = {} as MessageStore["state"]["data"]; + messageStore.state.data.invoked_saga = { + has_saga: true, + saga_id: "123", + saga_type: "ServiceControl.SmokeTest.AuditingSaga", + }; + + // Set the environment to a fixed timezone + // JSDOM, used by Vitest, defaults to UTC timezone + // To ensure consistency, explicitly set the timezone + // This ensures that the rendered local time of the saga changes + // will always be interpreted and displayed in the specified timezone, avoiding flakiness + process.env.TZ = timezone; + + //access each of the saga changes and update its start time and finish time to the same values being read from the variable declaration, + // but set them again explicitly here + //so that the reader of this test can see the preconditions at play + //and understand the test better without having to jump around + + const startTimeA = new Date("2025-03-28T03:04:08.000Z"); + const finishTimeA1 = new Date("2025-03-28T03:04:08.000Z"); + const startTimeB = new Date("2025-03-28T03:04:07.000Z"); + const finishTimeB1 = new Date("2025-03-28T03:04:07.000Z"); + const startTimeC = new Date("2025-03-28T03:04:06.000Z"); + const finishTimeC1 = new Date("2025-03-28T03:04:06.000Z"); + const startTimeD = new Date("2025-03-28T03:04:05.000Z"); + const finishTimeD1 = new Date("2025-03-28T03:04:05.000Z"); + + sampleSagaHistory.changes[0].start_time = startTimeA; + sampleSagaHistory.changes[0].finish_time = finishTimeA1; + sampleSagaHistory.changes[1].start_time = startTimeB; + sampleSagaHistory.changes[1].finish_time = finishTimeB1; + sampleSagaHistory.changes[2].start_time = startTimeC; + sampleSagaHistory.changes[2].finish_time = finishTimeC1; + sampleSagaHistory.changes[3].start_time = startTimeD; + sampleSagaHistory.changes[3].finish_time = finishTimeD1; + sampleSagaHistory.changes[3].status = "new"; + + //B(1), C(2), A(0), D(3) + //B(1), C1(2), C(2), A1(0) + + // Set up the store with sample saga history + const componentDriver = rendercomponent({ + initialState: { + MessageStore: messageStore, + SagaDiagramStore: { sagaHistory: sampleSagaHistory }, + }, + }); + + //assert + componentDriver.assert.thereAreTheFollowingSagaChangesInThisOrder([startTimeD, startTimeC, startTimeB, startTimeA]); + }); + }); +}); + +function rendercomponent({ initialState = {} }: { initialState?: { MessageStore?: MessageStore; SagaDiagramStore?: { sagaHistory: SagaHistory } } }): componentDSL { + const router = makeRouter(); + + // Render with createTestingPinia + render(sut, { + global: { + plugins: [ + router, + createTestingPinia({ + initialState, + stubActions: true, // Explicitly stub actions (this is the default) + }), + ], + stubs: { + CodeEditor: true, + CopyToClipboard: true, + }, + directives: { + // Add stub for tippy directive + tippy: () => {}, + }, + }, + }); + + const dslAPI: componentDSL = { + action1: () => { + // Add actions here; + }, + assert: { + NoSagaDataAvailableMessageIsShownWithMessage(message: RegExp) { + //ensure that the only one status message is shown + expect(screen.queryAllByRole("status")).toHaveLength(1); + + const status = screen.queryByRole("status", { name: /message-not-involved-in-saga/i }); + expect(status).toBeInTheDocument(); + const statusText = within(status!).getByText(message); + expect(statusText).toBeInTheDocument(); + + this.SagaSequenceIsNotShown(); + }, + SagaPlugInNeededIsShownWithTheMessages({ messages, withPluginDownloadUrl }: { messages: RegExp[]; withPluginDownloadUrl: string }) { + // Use the matcher to find the container element + const messageContainer = screen.queryByRole("status", { name: /saga-plugin-needed/i }); + expect(messageContainer).toBeInTheDocument(); + + // using within to find the text inside the container per each item in messages + messages.forEach((message) => { + const statusText = within(messageContainer!).getByText(message); + expect(statusText).toBeInTheDocument(); + }); + + // Verify the link + const link = screen.getByRole("link", { name: "install-package NServiceBus.SagaAudit" }); + expect(link).toBeInTheDocument(); + expect(link).toHaveAttribute("href", withPluginDownloadUrl); + + this.SagaSequenceIsNotShown(); + }, + SagaSequenceIsNotShown() { + const sagaSequence = screen.queryByRole("list", { name: /saga-sequence-list/i }); + expect(sagaSequence).not.toBeInTheDocument(); + }, + linkIsShown(args: { withText: string; withHref: string }) { + const link = screen.getByRole("link", { name: args.withText }); + expect(link).toBeInTheDocument(); + expect(link.getAttribute("href")).toBe(args.withHref); + }, + displayedSagaNameIs(name: string) { + const sagaName = screen.getByRole("heading", { name: /saga name/i }); + expect(sagaName).toBeInTheDocument(); + expect(sagaName).toHaveTextContent(name); + }, + displayedSagaGuidIs(guid: string) { + const sagaGuid = screen.getByRole("note", { name: /saga guid/i }); + expect(sagaGuid).toBeInTheDocument(); + expect(sagaGuid).toHaveTextContent(guid); + }, + thereAreTheFollowingSagaChangesInThisOrder: function (expectedDatesInOrder: Date[]): void { + //Retrive the main parent component that contains the saga changes + const sagaChangesContainer = screen.getByRole("table", { name: /saga-sequence-list/i }); + + const sagaUpdatesElements = within(sagaChangesContainer).queryAllByRole("row"); + //from within each sagaUpdatesElements get the values of an element with aria-label="time stamp" + //and check if the values are in the same order as the expectedDatesInOrder array passed to this function + const sagaUpdatesTimestamps = sagaUpdatesElements.map((item: HTMLElement) => within(item).getByLabelText("time stamp")); + + //expect the number of found sagaUpdatesTimestamps to be the same as the number of expected dates passed to this function + expect(sagaUpdatesTimestamps).toHaveLength(expectedDatesInOrder.length); + + const sagaUpdatesTimestampsValues = sagaUpdatesTimestamps.map((item) => item.innerHTML); + + // Verify we have the same number of rendered timestamps as expected dates + expect(sagaUpdatesTimestampsValues).toHaveLength(expectedDatesInOrder.length); + + // For each rendered timestamp, verify it matches the expected date at that position + // by formatting the expected date the same way and comparing strings + expectedDatesInOrder.forEach((expectedDate, index) => { + const expectedFormattedString = expectedDate.toLocaleString(); + expect(sagaUpdatesTimestampsValues[index]).toBe(expectedFormattedString); + }); + }, + }, + }; + + return dslAPI; +} + +const sampleSagaHistory: SagaHistory = { + id: "45f425fc-26ce-163b-4f64-857b889348f3", + saga_id: "45f425fc-26ce-163b-4f64-857b889348f3", + saga_type: "ServiceControl.SmokeTest.AuditingSaga", + changes: [ + { + start_time: new Date("2025-03-28T03:04:08.3819211Z"), + finish_time: new Date("2025-03-28T03:04:08.3836Z"), + status: "completed", + state_after_change: '{"Id":"45f425fc-26ce-163b-4f64-857b889348f3","Originator":null,"OriginalMessageId":"4b9fdea7-d78c-41f0-91ee-b2ae00328f9c"}', + initiating_message: { + message_id: "876d89bd-7a1f-43f1-b384-b2ae003290e8", + is_saga_timeout_message: true, + originating_endpoint: "Endpoint1", + originating_machine: "mobvm2", + time_sent: new Date("2025-03-28T03:04:06.321561Z"), + message_type: "ServiceControl.SmokeTest.MyCustomTimeout", + intent: "Send", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + outgoing_messages: [], + endpoint: "Endpoint1", + }, + { + start_time: new Date("2025-03-28T03:04:07.5416262Z"), + finish_time: new Date("2025-03-28T03:04:07.5509712Z"), + status: "updated", + state_after_change: '{"Id":"45f425fc-26ce-163b-4f64-857b889348f3","Originator":null,"OriginalMessageId":"4b9fdea7-d78c-41f0-91ee-b2ae00328f9c"}', + initiating_message: { + message_id: "1308367f-c6a2-418f-9df2-b2ae00328fc9", + is_saga_timeout_message: true, + originating_endpoint: "Endpoint1", + originating_machine: "mobvm2", + time_sent: new Date("2025-03-28T03:04:05.37723Z"), + message_type: "ServiceControl.SmokeTest.MyCustomTimeout", + intent: "Send", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + outgoing_messages: [], + endpoint: "Endpoint1", + }, + { + start_time: new Date("2025-03-28T03:04:06.3088353Z"), + finish_time: new Date("2025-03-28T03:04:06.3218175Z"), + status: "updated", + state_after_change: '{"Id":"45f425fc-26ce-163b-4f64-857b889348f3","Originator":null,"OriginalMessageId":"4b9fdea7-d78c-41f0-91ee-b2ae00328f9c"}', + initiating_message: { + message_id: "e5bb5304-7892-4d39-96e2-b2ae003290df", + is_saga_timeout_message: false, + originating_endpoint: "Sender", + originating_machine: "mobvm2", + time_sent: new Date("2025-03-28T03:04:06.293765Z"), + message_type: "ServiceControl.SmokeTest.SagaMessage2", + intent: "Send", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + outgoing_messages: [ + { + delivery_delay: "00:00:02", + destination: "Endpoint1", + message_id: "876d89bd-7a1f-43f1-b384-b2ae003290e8", + time_sent: new Date("2025-03-28T03:04:06.3214397Z"), + message_type: "ServiceControl.SmokeTest.MyCustomTimeout", + intent: "Send", + deliver_at: new Date("2025-03-28T03:04:06.293765Z"), + is_saga_timeout_message: false, + originating_endpoint: "Sender", + originating_machine: "mobvm2", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + ], + endpoint: "Endpoint1", + }, + { + start_time: new Date("2025-03-28T03:04:05.3332078Z"), + finish_time: new Date("2025-03-28T03:04:05.3799483Z"), + status: "new", + state_after_change: '{"Id":"45f425fc-26ce-163b-4f64-857b889348f3","Originator":null,"OriginalMessageId":"4b9fdea7-d78c-41f0-91ee-b2ae00328f9c"}', + initiating_message: { + message_id: "4b9fdea7-d78c-41f0-91ee-b2ae00328f9c", + is_saga_timeout_message: false, + originating_endpoint: "Sender", + originating_machine: "mobvm2", + time_sent: new Date("2025-03-28T03:04:05.235534Z"), + message_type: "ServiceControl.SmokeTest.SagaMessage1", + intent: "Send", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + outgoing_messages: [ + { + delivery_delay: "00:00:02", + destination: "Endpoint1", + message_id: "1308367f-c6a2-418f-9df2-b2ae00328fc9", + time_sent: new Date("2025-03-28T03:04:05.3715034Z"), + message_type: "ServiceControl.SmokeTest.MyCustomTimeout", + intent: "Send", + deliver_at: new Date("2025-03-28T03:04:06.293765Z"), + is_saga_timeout_message: false, + originating_endpoint: "Sender", + originating_machine: "mobvm2", + body_url: "body_url", + message_status: MessageStatus.Successful, + }, + ], + endpoint: "Endpoint1", + }, + ], +}; diff --git a/frontend/src/components/messages/SagaDiagram.vue b/frontend/src/components/messages/SagaDiagram.vue new file mode 100644 index 0000000000..fc5299693e --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram.vue @@ -0,0 +1,145 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/MessageDataBox.vue b/frontend/src/components/messages/SagaDiagram/MessageDataBox.vue new file mode 100644 index 0000000000..4124fe83f7 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/MessageDataBox.vue @@ -0,0 +1,120 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/NoSagaData.vue b/frontend/src/components/messages/SagaDiagram/NoSagaData.vue new file mode 100644 index 0000000000..f53ea14477 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/NoSagaData.vue @@ -0,0 +1,39 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaCompletedNode.vue b/frontend/src/components/messages/SagaDiagram/SagaCompletedNode.vue new file mode 100644 index 0000000000..00ea2a4668 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaCompletedNode.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaDiagramParser.ts b/frontend/src/components/messages/SagaDiagram/SagaDiagramParser.ts new file mode 100644 index 0000000000..89cedd2659 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaDiagramParser.ts @@ -0,0 +1,181 @@ +import { SagaHistory } from "@/resources/SagaHistory"; +import { typeToName } from "@/composables/typeHumanizer"; +import { SagaMessageData } from "@/stores/SagaDiagramStore"; +import { getTimeoutFriendly } from "@/composables/deliveryDelayParser"; + +export interface SagaMessageViewModel { + MessageId: string; + FriendlyTypeName: string; + FormattedTimeSent: string; + Data: SagaMessageData; + IsEventMessage: boolean; + IsCommandMessage: boolean; +} +export interface InitiatingMessageViewModel { + FriendlyTypeName: string; + IsSagaTimeoutMessage: boolean; + FormattedMessageTimestamp: string; + IsEventMessage: boolean; + MessageData: SagaMessageData; + HasRelatedTimeoutRequest?: boolean; + MessageId: string; +} +export interface SagaTimeoutMessageViewModel extends SagaMessageViewModel { + TimeoutFriendly: string; + HasBeenProcessed: boolean; +} + +export interface SagaUpdateViewModel { + MessageId: string; + StartTime: Date; + FinishTime: Date; + FormattedStartTime: string; + InitiatingMessage: InitiatingMessageViewModel; + Status: string; + StatusDisplay: string; + HasTimeout: boolean; + IsFirstNode: boolean; + OutgoingMessages: SagaMessageViewModel[]; + OutgoingTimeoutMessages: SagaTimeoutMessageViewModel[]; + HasOutgoingMessages: boolean; + HasOutgoingTimeoutMessages: boolean; + showUpdatedPropertiesOnly: boolean; + stateAfterChange: string; + previousStateAfterChange?: string; +} + +export interface SagaViewModel { + SagaTitle: string; + SagaGuid: string; + ParticipatedInSaga: boolean; + HasSagaData: boolean; + ShowNoPluginActiveLegend: boolean; + SagaCompleted: boolean; + FormattedCompletionTime: string; + SagaUpdates: SagaUpdateViewModel[]; + ShowMessageData: boolean; +} + +export function parseSagaUpdates(sagaHistory: SagaHistory | null, messagesData: SagaMessageData[]): SagaUpdateViewModel[] { + if (!sagaHistory || !sagaHistory.changes || !sagaHistory.changes.length) return []; + + const timeoutMessageIds = new Set(); + sagaHistory.changes.forEach((update) => { + if (update.outgoing_messages) { + update.outgoing_messages.forEach((msg) => { + const delivery_delay = msg.delivery_delay || "00:00:00"; + if (delivery_delay && delivery_delay !== "00:00:00") { + timeoutMessageIds.add(msg.message_id); + } + }); + } + }); + + const updates = sagaHistory.changes + .map((update) => { + const startTime = new Date(update.start_time); + const finishTime = new Date(update.finish_time); + const initiatingMessageTimestamp = new Date(update.initiating_message?.time_sent || Date.now()); + + // Find message data for initiating message + const initiatingMessageData = update.initiating_message ? findMessageData(messagesData, update.initiating_message.message_id) : createEmptyMessageData(); + + // Create common base message objects with shared properties + const outgoingMessages = update.outgoing_messages.map((msg) => { + const delivery_delay = msg.delivery_delay || "00:00:00"; + const timeSent = new Date(msg.time_sent); + const hasTimeout = !!delivery_delay && delivery_delay !== "00:00:00"; + const timeoutSeconds = delivery_delay.split(":")[2] || "0"; + const isEventMessage = msg.intent === "Publish"; + + // Find corresponding message data + const messageData = findMessageData(messagesData, msg.message_id); + return { + MessageType: msg.message_type || "", + MessageId: msg.message_id, + FormattedTimeSent: timeSent.toLocaleString(), + HasTimeout: hasTimeout, + TimeoutSeconds: timeoutSeconds, + TimeoutFriendly: getTimeoutFriendly(delivery_delay), + FriendlyTypeName: typeToName(msg.message_type || ""), + Data: messageData, + IsEventMessage: isEventMessage, + IsCommandMessage: !isEventMessage, + }; + }); + + const outgoingTimeoutMessages = outgoingMessages + .filter((msg) => msg.HasTimeout) + .map((msg) => { + // Check if this timeout message has been processed by checking if there's an initiating message with matching ID + const hasBeenProcessed = sagaHistory.changes.some((update) => update.initiating_message?.message_id === msg.MessageId); + + return { + ...msg, + TimeoutFriendly: `${msg.TimeoutFriendly}`, + HasBeenProcessed: hasBeenProcessed, + } as SagaTimeoutMessageViewModel; + }); + + const regularMessages = outgoingMessages.filter((msg) => !msg.HasTimeout) as SagaMessageViewModel[]; + + const hasTimeout = outgoingTimeoutMessages.length > 0; + + // Check if initiating message is a timeout and if so, if it has a corresponding request in the diagram + const hasRelatedTimeoutRequest = update.initiating_message?.is_saga_timeout_message && timeoutMessageIds.has(update.initiating_message?.message_id); + + return { + MessageId: update.initiating_message?.message_id || "", + StartTime: startTime, + FinishTime: finishTime, + FormattedStartTime: startTime.toLocaleString(), + Status: update.status, + StatusDisplay: update.status === "new" ? "Saga Initiated" : "Saga Updated", + InitiatingMessage: { + FriendlyTypeName: typeToName(update.initiating_message?.message_type || "Unknown Message") || "", + MessageId: update.initiating_message?.message_id || "", + FormattedMessageTimestamp: initiatingMessageTimestamp.toLocaleString(), + MessageData: initiatingMessageData, + IsEventMessage: update.initiating_message?.intent === "Publish", + IsSagaTimeoutMessage: update.initiating_message?.is_saga_timeout_message || false, + HasRelatedTimeoutRequest: hasRelatedTimeoutRequest, + }, + HasTimeout: hasTimeout, + IsFirstNode: update.status === "new", + OutgoingTimeoutMessages: outgoingTimeoutMessages, + OutgoingMessages: regularMessages, + HasOutgoingMessages: regularMessages.length > 0, + HasOutgoingTimeoutMessages: outgoingTimeoutMessages.length > 0, + showUpdatedPropertiesOnly: true, // Default to showing only updated properties + stateAfterChange: update.state_after_change || "{}", + }; + }) + .sort((a, b) => a.StartTime.getTime() - b.StartTime.getTime()) + .sort((a, b) => a.FinishTime.getTime() - b.FinishTime.getTime()); + + // Add reference to previous state for each update except the first one + for (let i = 1; i < updates.length; i++) { + updates[i].previousStateAfterChange = updates[i - 1].stateAfterChange; + } + + return updates; +} + +// Helper function to find message data or create empty data if not found +function findMessageData(messagesData: SagaMessageData[], messageId: string): SagaMessageData { + const messageData = messagesData.find((m) => m.message_id === messageId); + return messageData || createEmptyMessageData(); +} + +// Helper function to create an empty message data object +function createEmptyMessageData(): SagaMessageData { + return { + message_id: "", + body: { + data: {}, + loading: false, + failed_to_load: false, + not_found: false, + }, + }; +} diff --git a/frontend/src/components/messages/SagaDiagram/SagaHeader.vue b/frontend/src/components/messages/SagaDiagram/SagaHeader.vue new file mode 100644 index 0000000000..305705edbe --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaHeader.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaOutgoingMessage.vue b/frontend/src/components/messages/SagaDiagram/SagaOutgoingMessage.vue new file mode 100644 index 0000000000..4a8f36f138 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaOutgoingMessage.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaOutgoingTimeoutMessage.vue b/frontend/src/components/messages/SagaDiagram/SagaOutgoingTimeoutMessage.vue new file mode 100644 index 0000000000..92d1047130 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaOutgoingTimeoutMessage.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaPluginNeeded.vue b/frontend/src/components/messages/SagaDiagram/SagaPluginNeeded.vue new file mode 100644 index 0000000000..56e2f74923 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaPluginNeeded.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/frontend/src/components/messages/SagaDiagram/SagaUpdateNode.vue b/frontend/src/components/messages/SagaDiagram/SagaUpdateNode.vue new file mode 100644 index 0000000000..3b5a038707 --- /dev/null +++ b/frontend/src/components/messages/SagaDiagram/SagaUpdateNode.vue @@ -0,0 +1,490 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram.vue b/frontend/src/components/messages/SequenceDiagram.vue new file mode 100644 index 0000000000..cb0606fb11 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/EndpointTooltip.vue b/frontend/src/components/messages/SequenceDiagram/EndpointTooltip.vue new file mode 100644 index 0000000000..14b616567f --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/EndpointTooltip.vue @@ -0,0 +1,35 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/EndpointsComponent.vue b/frontend/src/components/messages/SequenceDiagram/EndpointsComponent.vue new file mode 100644 index 0000000000..10d328a771 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/EndpointsComponent.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/HandlerTooltip.vue b/frontend/src/components/messages/SequenceDiagram/HandlerTooltip.vue new file mode 100644 index 0000000000..0f1d525783 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/HandlerTooltip.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/HandlersComponent.vue b/frontend/src/components/messages/SequenceDiagram/HandlersComponent.vue new file mode 100644 index 0000000000..994679f74c --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/HandlersComponent.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/RouteTooltip.vue b/frontend/src/components/messages/SequenceDiagram/RouteTooltip.vue new file mode 100644 index 0000000000..0d27be4ee2 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/RouteTooltip.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/RoutesComponent.vue b/frontend/src/components/messages/SequenceDiagram/RoutesComponent.vue new file mode 100644 index 0000000000..d8cd9bcb50 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/RoutesComponent.vue @@ -0,0 +1,156 @@ + + + + + diff --git a/frontend/src/components/messages/SequenceDiagram/TimelineComponent.vue b/frontend/src/components/messages/SequenceDiagram/TimelineComponent.vue new file mode 100644 index 0000000000..550dc974ab --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/TimelineComponent.vue @@ -0,0 +1,13 @@ + + + diff --git a/frontend/src/components/messages/SequenceDiagram/tooltipOverlay.ts b/frontend/src/components/messages/SequenceDiagram/tooltipOverlay.ts new file mode 100644 index 0000000000..b72e5f6f58 --- /dev/null +++ b/frontend/src/components/messages/SequenceDiagram/tooltipOverlay.ts @@ -0,0 +1,60 @@ +import { useSequenceDiagramStore } from "@/stores/SequenceDiagramStore"; +import { storeToRefs } from "pinia"; +import { h, watch } from "vue"; +import { useTippy } from "vue-tippy"; +import EndpointTooltip from "./EndpointTooltip.vue"; +import HandlerTooltip from "./HandlerTooltip.vue"; +import RouteTooltip from "./RouteTooltip.vue"; +import { HandlerState } from "@/resources/SequenceDiagram/Handler"; + +export default function useTooltips() { + const store = useSequenceDiagramStore(); + const { endpoints, handlers, routes } = storeToRefs(store); + + watch( + () => endpoints.value.map((endpoint) => endpoint.uiRef), + () => + endpoints.value + .filter((endpoint) => endpoint.uiRef) + .forEach((endpoint) => + useTippy(endpoint.uiRef, { + interactive: true, + appendTo: () => document.body, + content: h(EndpointTooltip, { endpoint }), + placement: "bottom", + delay: [800, null], + }) + ) + ); + + watch( + () => handlers.value.map((handler) => handler.uiRef), + () => + handlers.value + .filter((handler) => handler.uiRef && handler.state !== HandlerState.Unknown) + .forEach((handler) => + useTippy(handler.uiRef, { + interactive: true, + appendTo: () => document.body, + content: h(HandlerTooltip, { handler }), + delay: [800, null], + }) + ) + ); + + watch( + () => routes.value.map((route) => route.uiRef), + () => + routes.value + .filter((route) => route.uiRef && route.fromRoutedMessage) + .forEach((route) => + useTippy(route.uiRef, { + interactive: true, + appendTo: () => document.body, + content: h(RouteTooltip, { routedMessage: route.fromRoutedMessage! }), + delay: [800, null], + maxWidth: 400, + }) + ) + ); +} diff --git a/frontend/src/components/messages/StacktraceFormatter.vue b/frontend/src/components/messages/StacktraceFormatter.vue new file mode 100644 index 0000000000..e1a6180ba9 --- /dev/null +++ b/frontend/src/components/messages/StacktraceFormatter.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/frontend/src/components/messages/StacktraceView.vue b/frontend/src/components/messages/StacktraceView.vue new file mode 100644 index 0000000000..d14ecefdf9 --- /dev/null +++ b/frontend/src/components/messages/StacktraceView.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/frontend/src/components/modal.css b/frontend/src/components/modal.css new file mode 100644 index 0000000000..ad78821857 --- /dev/null +++ b/frontend/src/components/modal.css @@ -0,0 +1,92 @@ +.modal-mask { + position: fixed; + z-index: 9998; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); + display: table; + transition: opacity 0.3s ease; +} + +.modal-wrapper { + display: table-cell; + vertical-align: middle; +} + +.modal-container { + width: 600px; + margin: 0px auto; + padding: 20px 30px; + background-color: #fff; + border-radius: 2px; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33); + transition: all 0.3s ease; +} + +.modal-header { + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-title { + margin: 0; + line-height: 1.42857143; +} + +.modal-body { + position: relative; + padding: 15px; + overflow: auto; + min-height: 0; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-container { + padding: 0; + border-radius: 5px; +} + +.modal-container .btn { + font-size: 14px; +} + +.modal-content { + position: relative; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 3px 9px rgb(0 0 0 / 50%); + box-shadow: 0 3px 9px rgb(0 0 0 / 50%); + outline: 0; + max-height: 95vh; +} + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; + } +} + +.modal-open .modal.modal-msg-editor, +.modal-open { + overflow-y: hidden; +} + +.modal .btn.btn-primary { + padding: 8px 20px; +} diff --git a/frontend/src/components/monitoring/EndpointBacklog.vue b/frontend/src/components/monitoring/EndpointBacklog.vue new file mode 100644 index 0000000000..c2a2a49a1f --- /dev/null +++ b/frontend/src/components/monitoring/EndpointBacklog.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointDetails.vue b/frontend/src/components/monitoring/EndpointDetails.vue new file mode 100644 index 0000000000..defa033484 --- /dev/null +++ b/frontend/src/components/monitoring/EndpointDetails.vue @@ -0,0 +1,227 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointInstances.vue b/frontend/src/components/monitoring/EndpointInstances.vue new file mode 100644 index 0000000000..597be75261 --- /dev/null +++ b/frontend/src/components/monitoring/EndpointInstances.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointList.vue b/frontend/src/components/monitoring/EndpointList.vue new file mode 100644 index 0000000000..73cbaeb66d --- /dev/null +++ b/frontend/src/components/monitoring/EndpointList.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointListRow.vue b/frontend/src/components/monitoring/EndpointListRow.vue new file mode 100644 index 0000000000..2eff118fc9 --- /dev/null +++ b/frontend/src/components/monitoring/EndpointListRow.vue @@ -0,0 +1,187 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointMessageTypes.vue b/frontend/src/components/monitoring/EndpointMessageTypes.vue new file mode 100644 index 0000000000..93d610e1b8 --- /dev/null +++ b/frontend/src/components/monitoring/EndpointMessageTypes.vue @@ -0,0 +1,211 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointTimings.vue b/frontend/src/components/monitoring/EndpointTimings.vue new file mode 100644 index 0000000000..644949b3cf --- /dev/null +++ b/frontend/src/components/monitoring/EndpointTimings.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/frontend/src/components/monitoring/EndpointWorkload.vue b/frontend/src/components/monitoring/EndpointWorkload.vue new file mode 100644 index 0000000000..2b84e8b564 --- /dev/null +++ b/frontend/src/components/monitoring/EndpointWorkload.vue @@ -0,0 +1,78 @@ + + + + + diff --git a/frontend/src/components/monitoring/LargeGraph.vue b/frontend/src/components/monitoring/LargeGraph.vue new file mode 100644 index 0000000000..c787df30e7 --- /dev/null +++ b/frontend/src/components/monitoring/LargeGraph.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringFilter.vue b/frontend/src/components/monitoring/MonitoringFilter.vue new file mode 100644 index 0000000000..8a1f49a0bb --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringFilter.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringGroupBy.vue b/frontend/src/components/monitoring/MonitoringGroupBy.vue new file mode 100644 index 0000000000..5233edcb8d --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringGroupBy.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringHead.vue b/frontend/src/components/monitoring/MonitoringHead.vue new file mode 100644 index 0000000000..ef66dade5b --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringHead.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringHistoryPeriod.vue b/frontend/src/components/monitoring/MonitoringHistoryPeriod.vue new file mode 100644 index 0000000000..c89af83230 --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringHistoryPeriod.vue @@ -0,0 +1,83 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringMenuItem.vue b/frontend/src/components/monitoring/MonitoringMenuItem.vue new file mode 100644 index 0000000000..bf6aa8863b --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringMenuItem.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringNoData.vue b/frontend/src/components/monitoring/MonitoringNoData.vue new file mode 100644 index 0000000000..4a27cd6647 --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringNoData.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/frontend/src/components/monitoring/MonitoringNotAvailable.vue b/frontend/src/components/monitoring/MonitoringNotAvailable.vue new file mode 100644 index 0000000000..d59fcc6f2a --- /dev/null +++ b/frontend/src/components/monitoring/MonitoringNotAvailable.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/frontend/src/components/monitoring/PlotData.ts b/frontend/src/components/monitoring/PlotData.ts new file mode 100644 index 0000000000..30f703edd1 --- /dev/null +++ b/frontend/src/components/monitoring/PlotData.ts @@ -0,0 +1,6 @@ +export interface PlotData { + points: number[]; + average: number; +} + +export type Coordinate = [number, number]; diff --git a/frontend/src/components/monitoring/SmallGraph.vue b/frontend/src/components/monitoring/SmallGraph.vue new file mode 100644 index 0000000000..61cbc23524 --- /dev/null +++ b/frontend/src/components/monitoring/SmallGraph.vue @@ -0,0 +1,100 @@ + + + + + diff --git a/frontend/src/components/monitoring/endpoint.css b/frontend/src/components/monitoring/endpoint.css new file mode 100644 index 0000000000..6b9c947b46 --- /dev/null +++ b/frontend/src/components/monitoring/endpoint.css @@ -0,0 +1,459 @@ +.endpoint-status { + display: flex; + top: 1px; + margin-left: 7px; + padding-left: 0; + align-items: baseline; +} + +.endpoint-status .warning { + display: block; + position: relative; +} + +.endpoint-status .endpoint-status-icon { + font-size: 20px; + color: #ce4844; +} + +h1 .endpoint-status .endpoint-status-icon { + font-size: 24px; +} + +.endpoint-status .endpoint-status-icon { + color: #777f7f; +} + +.endpoint-status .endpoint-status-icon:hover { + color: #23527c; +} + +.endpoint-status .badge { + position: relative; + top: 8px; + font-size: 10px; + margin-right: 0; + left: -10px; +} + +.endpoint-status .endpoint-status-icon { + font-size: 20px; + margin-left: 6px; +} + +.endpoint-status a { + position: relative; + top: -4px; + padding-left: 5px; +} + +.endpoint-status a:hover { + text-decoration: none; +} + +.endpoint-status a[ng-if="endpoint.errorCount"] { + top: -11px; +} + +.endpoint-status .badge { + position: relative; + top: 2px; + left: -9px; + font-size: 10px; +} + +.endpoint-status .pa-endpoint-lost.endpoint-details, +.endpoint-status .pa-monitoring-lost.endpoint-details, +.endpoint-status .pa-endpoint-lost.endpoints-overview, +.endpoint-status .pa-monitoring-lost.endpoints-overview { + display: inline-block; + width: 26px; + height: 26px; + left: 6px; + position: relative; +} + +.endpoint-status .pa-monitoring-lost.endpoints-overview, +.endpoint-status .pa-monitoring-lost.endpoint-details { + top: 4px; +} + +.pa-endpoint-lost.endpoints-overview { + background-image: url("@/assets/endpoint-lost.svg"); + background-position: center; + background-repeat: no-repeat; +} + +.pa-monitoring-lost.endpoints-overview { + background-image: url("@/assets/monitoring-lost.svg"); + background-position: center; + background-repeat: no-repeat; +} + +.pa-endpoint-lost.endpoint-details { + background-image: url("@/assets/endpoint-lost.svg"); + background-position: center; + background-repeat: no-repeat; +} + +.pa-monitoring-lost.endpoint-details { + background-image: url("@/assets/monitoring-lost.svg"); + background-position: center; + background-repeat: no-repeat; +} + +.pa-warning { + background-image: url("@/assets/warning.svg"); + background-position: center; + background-repeat: no-repeat; + display: inline-block; + width: 20px; + height: 20px; + margin-left: 4px; + padding-top: 31px; +} + +.message-type-status .pa-warning { + margin-top: -3px; +} + +.endpoint-message-types .endpoint-status { + margin-top: -8px; +} + +.endpoint-name > div > div > a { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; + color: #00729c; + border-bottom: 1px dotted lightgrey; +} + +.endpoint-name > div > div > a:first-child:hover { + border-bottom: 1px solid #00729c; + text-decoration: none !important; +} + +.endpoint-row { + display: flex; + position: relative; + padding: 2px 0 4px; + border-top: 1px solid #eee; + border-right: 1px solid #fff; + border-bottom: 1px solid #eee; + border-left: 1px solid #fff; + background-color: #fff; + margin: 0px; +} + +.endpoint-name, +.endpoint-name > div { + display: flex; + flex-direction: column; + align-items: flex-start; + flex-wrap: wrap; + justify-content: center; +} + +.endpoint-name { + gap: 0.25em; +} + +.endpoint-name .box-header.with-status { + flex-direction: row; + justify-content: flex-start; + align-items: center; + max-width: 100%; +} + +.endpoint-name .box-header.with-status > *:not(:first-child) { + margin-left: 0.25em; +} + +/* RESPONSIVE TWEAKS */ + +@media only screen and (min-width: 993px) { + .filter-period-menu { + margin-right: 0px; + } +} + +@media only screen and (max-width: 992px) { + .filter-period-menu, + .sort-menu { + float: left !important; + } + + .sort-menu { + margin-top: 0; + padding-top: 0; + } +} + +@media only screen and (max-width: 768px) { + .filter-toolbar .input-group { + margin-bottom: 6px; + } + + .msg-group-menu { + float: left !important; + margin-top: 0; + margin-left: 15px; + } + + div.sp-pull-right { + display: inline-block; + float: none; + margin-top: 0px; + } + + button.btn.btn-default { + margin-left: 0; + margin-right: 6px; + margin-bottom: 6px; + } + + .input-group-btn button.btn.btn-default { + margin-right: 0; + } + + .no-mobile-side-padding { + padding-right: 0; + padding-left: 0; + } + + .tabs h5 { + padding-bottom: 4px; + margin-bottom: 10px; + } + + .navbar-collapse.collapse.in { + padding: 0 0 0 16px !important; + } +} + +@media only screen and (max-width: 480px) { + .sidebar-label { + margin: 3px 0 14px; + } + + .btn-toolbar .btn, + .btn-toolbar .btn-group, + .btn-toolbar .input-group { + float: left !important; + } + + button.btn.btn-default.ng-binding.ng-isolate-scope { + margin-right: 4px !important; + } + + div.btn-toolbar, + div.form-inliner { + margin-bottom: 12px; + } + + .filter-toolbar, + .action-toolbar { + margin-top: 2px; + } + + div.sp-pull-right { + display: inline-block; + float: none; + margin-top: 4px; + } + + .progress.bulk-retry-progress { + margin-top: 6px; + } +} + +@media only screen and (max-width: 320px) { + div.btn-toolbar, + div.form-inliner { + margin-bottom: 0px; + } +} + +.table-head-row .col-xl-7, +.endpoint-row .col-xl-7 { + width: 20%; +} + +.table-head-row .col-xl-8, +.endpoint-row .col-xl-8 { + width: 36%; +} + +.table-head-row .col-xl-1, +.endpoint-row .col-xl-1 { + width: 16%; +} + +@media only screen and (min-width: 1730px) { + .table-head-row .col-xl-7, + .endpoint-row .col-xl-7 { + width: 30%; + } + + .table-head-row .col-xl-8, + .endpoint-row .col-xl-8 { + width: 44%; + } + + .table-head-row .col-xl-1, + .endpoint-row .col-xl-1 { + width: 14%; + } +} + +.sparkline-value { + top: 16px; + left: -0.6em; + position: relative; + font-weight: normal; + float: right; + width: 25%; +} + +.sparkline-value span { + color: #777f7f; + text-transform: uppercase; + font-size: 11px; +} + +.sparkline-value.sec { + color: #0000ff; +} + +.sparkline-value.sec span { + color: #007aff; +} + +.sparkline-value.min { + color: #8b00d0; +} + +.sparkline-value.min span { + color: #b14ae4; +} + +.sparkline-value.hr { + color: #d601da; +} + +.sparkline-value.hr span { + color: #d764d9; +} + +.sparkline-value.d { + color: #ad0017; +} + +.sparkline-value.d span { + color: #ff0004; +} + +.graph-message-retries-throughputs, +.graph-critical-processing-times { + margin-left: 0.5%; +} + +.monitoring-no-data { + margin: 60px auto 120px; + max-width: 520px; + line-height: 26px; +} + +.monitoring-no-data h1 { + font-size: 30px; +} + +.monitoring-no-data-content { + width: 80%; + display: inline-block; + margin: 0 auto; + padding: 3px; +} +.monitoring-no-data-list { + text-align: left; + list-style-type: circle; +} +.monitoring-no-data p { + font-size: 16px; + margin-bottom: 20px; + margin-top: -18px; +} + +.monitoring-no-data ul { + padding-left: 0; + text-align: left; + font-size: 16px; + margin-bottom: 30px; +} + +.monitoring-no-data .btn { + font-size: 16px; +} + +.monitoring-no-data a.btn.btn-default.btn-secondary { + margin-left: 10px; +} + +:deep(span.table-header-unit) { + color: #777f7f; +} + +.box-header { + padding-bottom: 3px; + padding-top: 2px; +} + +.box-header ul { + list-style-type: none; + margin: 0; + padding: 0; +} + +.righ-side-ellipsis { + direction: rtl; + text-align: left; +} + +@supports (-ms-ime-align: auto) { + .righ-side-ellipsis { + direction: ltr; + } +} + +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .righ-side-ellipsis { + direction: ltr; + } +} + +i.fa.pa-endpoint-lost.endpoints-overview, +i.fa.pa-monitoring-lost.endpoints-overview, +i.fa.pa-endpoint-lost.endpoint-details, +i.fa.pa-monitoring-lost.endpoint-details { + position: relative; + margin-right: 4px; + top: 4px; +} + +i.fa.pa-endpoint-lost.endpoints-overview { + top: 8px; +} + +.endpoint-instances .fa.pa-endpoint-lost.endpoint-details { + top: 4px; +} + +div[content="Unable to connect to instance"], +div[content="Unable to connect to monitoring server"] { + z-index: 99999; +} + +.pull-left { + float: left; +} diff --git a/frontend/src/components/monitoring/endpointSubTab.css b/frontend/src/components/monitoring/endpointSubTab.css new file mode 100644 index 0000000000..022c995410 --- /dev/null +++ b/frontend/src/components/monitoring/endpointSubTab.css @@ -0,0 +1,51 @@ +.endpoint-row { + padding: 0.5em 1.5em; + margin: 0; +} + +.box { + box-shadow: none; + margin: 0; +} + +.box-no-click { + background: none; + border-bottom: 1px solid #ced6d3; + border-left: none; + border-right: none; + cursor: default; +} + +.box-no-click:first-child { + border-top: 1px solid #ced6d3; +} + +.box-no-click { + padding-left: 0; + padding-right: 0; +} + +.box-no-click:hover { + background: none !important; + border-bottom: 1px solid #ced6d3 !important; + border-left: none; + border-right: none; + border-top: none; + cursor: default; + padding-top: 21px; +} + +.box-no-click:first-child:hover { + border-top: 1px solid #ced6d3 !important; + padding-top: 20px; +} + +.box-no-click > div > div { + padding-left: 0; + padding-right: 0; +} + +.box-no-click > div > div > div { + padding-left: 0; + padding-right: 0; +} diff --git a/frontend/src/components/monitoring/endpointTables.css b/frontend/src/components/monitoring/endpointTables.css new file mode 100644 index 0000000000..143d50f310 --- /dev/null +++ b/frontend/src/components/monitoring/endpointTables.css @@ -0,0 +1,29 @@ +/* Endpoint graph table*/ + +.table-head-row { + display: flex; + padding-bottom: 5px; + padding-top: 20px; + border-bottom: 1px solid #ced6d3; + border-top: 1px solid #eee; + text-transform: uppercase; + color: #181919; +} +.table-first-col { + width: 20%; + padding-left: 15px; + padding-right: 15px; +} +.table-col { + width: 16%; +} + +/*TODO: why should wider viewports give more proportional width to the first column?*/ +@media only screen and (min-width: 1730px) { + .table-first-col { + width: 30%; + } + .table-col { + width: 14%; + } +} diff --git a/frontend/src/components/monitoring/endpoints.ts b/frontend/src/components/monitoring/endpoints.ts new file mode 100644 index 0000000000..f5ae7ae381 --- /dev/null +++ b/frontend/src/components/monitoring/endpoints.ts @@ -0,0 +1,40 @@ +import type { DigestValues, EndpointDigest, EndpointMetrics, EndpointValues, EndpointValuesWithTime, ExtendedEndpointDetails } from "@/resources/MonitoringEndpoint"; + +const defaultMetricData: EndpointValues = { + points: [], + average: 0, +}; + +const defaultTimeMetricData: EndpointValuesWithTime = { + ...defaultMetricData, + timeAxisValues: [], +}; + +export const emptyEndpointMetrics = (): EndpointMetrics => ({ + queueLength: defaultMetricData, + throughput: defaultMetricData, + retries: defaultMetricData, + processingTime: defaultTimeMetricData, + criticalTime: defaultTimeMetricData, +}); + +const defaultDigestValuesData: DigestValues = {}; + +export const emptyEndpointDigest = (): EndpointDigest => ({ + queueLength: defaultDigestValuesData, + throughput: defaultDigestValuesData, + retries: defaultDigestValuesData, + processingTime: defaultDigestValuesData, + criticalTime: defaultDigestValuesData, +}); + +export const emptyEndpointDetails = (): ExtendedEndpointDetails => ({ + instances: [], + digest: { metrics: emptyEndpointDigest() }, + metricDetails: { metrics: emptyEndpointMetrics() }, + isScMonitoringDisconnected: false, + serviceControlId: "", + errorCount: 0, + isStale: false, + messageTypes: [], +}); diff --git a/frontend/src/components/monitoring/formatGraph.ts b/frontend/src/components/monitoring/formatGraph.ts new file mode 100644 index 0000000000..81d70a1f70 --- /dev/null +++ b/frontend/src/components/monitoring/formatGraph.ts @@ -0,0 +1,42 @@ +import { type EndpointValues } from "@/resources/MonitoringEndpoint"; +import { useFormatTime, useFormatLargeNumber, type ValueWithUnit } from "../../composables/formatter"; + +export function formatGraphDuration(input?: EndpointValues): ValueWithUnit { + if (input != null) { + const lastValue = input.points.length > 0 ? input.points[input.points.length - 1] : 0; + return useFormatTime(lastValue); + } + return { value: "0", unit: "" }; +} + +export function formatGraphDecimalFromNumber(input?: number, deci?: number): string { + input = input ?? 0; + let decimals = 0; + if (input < 10 || input > 1000000) { + decimals = 2; + } + return useFormatLargeNumber(input, deci || decimals); +} + +export function formatGraphDecimal(input?: EndpointValues, deci?: number): string { + input = input ?? { + points: [], + average: 0, + }; + const lastValue = input.points.length > 0 ? input.points[input.points.length - 1] : 0; + return formatGraphDecimalFromNumber(lastValue, deci); +} + +export const largeGraphsMinimumYAxis = Object.freeze({ + queueLength: 10, + throughputRetries: 10, + processingCritical: 10, +}); + +export const smallGraphsMinimumYAxis = Object.freeze({ + queueLength: 10, + throughput: 10, + retries: 10, + processingTime: 10, + criticalTime: 10, +}); diff --git a/frontend/src/components/monitoring/graphLines.ts b/frontend/src/components/monitoring/graphLines.ts new file mode 100644 index 0000000000..957dd71442 --- /dev/null +++ b/frontend/src/components/monitoring/graphLines.ts @@ -0,0 +1,79 @@ +import { ref, toValue, watchEffect } from "vue"; +import type { Coordinate, PlotData } from "./PlotData"; + +export function useGraph(plotdata: () => PlotData | undefined, minimumyaxis: () => number | undefined, minPoints = () => 10) { + const valuesPath = ref(""), + valuesArea = ref(""), + maxYaxis = ref(10), + average = ref(0), + averageLine = ref(""); + + const createGraph = () => { + const plotData = toValue(plotdata) ?? { points: [], average: 0 }; + const values = (() => { + let result = plotData.points; + if (result.length === 0) { + result = new Array(toValue(minPoints)).fill(0); + } + return result; + })(); + const xTick = 100 / (values.length - 1); + const coordinates = values.reduce((points: Coordinate[], yValue, i) => [...points, [i * xTick, yValue] as Coordinate], []); + valuesPath.value = new Path().startAt(coordinates[0]).followCoordinates(coordinates.slice(1)).toString(); + valuesArea.value = new Path().startAt([0, 0]).followCoordinates(coordinates).lineTo([100, 0]).close().toString(); + + average.value = plotData.average; + //TODO: why is this called minimumYaxis when it's only used to determine the maxYaxis? + // should the graph actually set the min y value rather than leave it at 0? + const minYaxis = toValue(minimumyaxis) ?? 10; + const minimumYaxis = !isNaN(minYaxis) ? Number(minYaxis) : 10; + maxYaxis.value = Math.max(...[...values, average.value * 1.5, minimumYaxis]); + + averageLine.value = new Path().startAt([0, average.value]).lineTo([100, average.value]).toString(); + }; + + watchEffect(() => createGraph()); + + return { valuesPath, valuesArea, maxYaxis, average, averageLine }; +} + +class Path { + #pathElements: string[] = []; + #complete = false; + + startAt([x, y]: Coordinate) { + if (this.#pathElements.length > 0) throw new Error("startAt must be the first call on a path"); + return this.moveTo([x, y]); + } + + moveTo([x, y]: Coordinate) { + if (this.#complete) throw new Error("Path is already closed"); + this.#pathElements.push(`M${x} ${y}`); + return this; + } + + lineTo([x, y]: Coordinate) { + if (this.#complete) throw new Error("Path is already closed"); + this.#pathElements.push(`L${x} ${y}`); + return this; + } + + followCoordinates(coordinates: Coordinate[]) { + for (const c of coordinates) { + this.lineTo(c); + } + return this; + } + + close() { + if (this.#complete) throw new Error("Path is already closed"); + if (this.#pathElements.length === 0) throw new Error("Cannot close an empty path"); + this.#pathElements.push("Z"); + this.#complete = true; + return this; + } + + toString() { + return this.#pathElements.join(" "); + } +} diff --git a/frontend/src/components/monitoring/largeGraphs.css b/frontend/src/components/monitoring/largeGraphs.css new file mode 100644 index 0000000000..83a4190314 --- /dev/null +++ b/frontend/src/components/monitoring/largeGraphs.css @@ -0,0 +1,66 @@ +.graph-values { + margin-left: 60px; + padding-top: 10px; + border-top: 3px solid #fff; + margin-top: -8.5px; + width: calc(100% - 60px); + display: flex; + justify-content: space-between; +} + +.metric-digest-value { + font-weight: bold; + font-size: 22px; +} + +.metric-digest-value div { + display: inline-block; +} + +.metric-digest-value-suffix { + font-weight: normal; + font-size: 14px; + display: inline-block; + text-transform: uppercase; + text-wrap: nowrap; +} + +.metric-digest { + padding: 1em; +} + +.metric-digest-header { + text-transform: uppercase; + display: inline-block; + font-size: 14px; + font-weight: bold; +} + +.current, +.average { + margin-top: 4px; + margin-bottom: 8px; + padding-left: 4px; + line-height: 20px; + height: 19px; +} + +.current { + border-left: 2.5px solid; +} + +.average { + border-left: 1px dashed; + padding-left: 6px; +} + +.graph-area { + width: 33%; + box-sizing: border-box; +} + +@media (max-width: 1300px) { + .graph-area { + width: 95%; + } +} diff --git a/frontend/src/components/monitoring/messageTypes.ts b/frontend/src/components/monitoring/messageTypes.ts new file mode 100644 index 0000000000..7eaa8375de --- /dev/null +++ b/frontend/src/components/monitoring/messageTypes.ts @@ -0,0 +1,58 @@ +import type { ExtendedMessageType, MessageType, MessageTypeDetails } from "@/resources/MonitoringEndpoint"; + +function shortenTypeName(typeName: string): string { + return typeName.split(".").pop() ?? typeName; +} + +function parseTheMessageTypeData(messageType: MessageType): ExtendedMessageType { + if (messageType.typeName.indexOf(";") > 0) { + const messageTypeHierarchy = messageType.typeName.split(";").map((item) => { + const segments = item.split(","); + const messageTypeDetails: MessageTypeDetails = { + typeName: segments[0], + assemblyName: segments[1], + assemblyVersion: segments[2].substring(segments[2].indexOf("=") + 1), + }; + + if (!segments[4]?.endsWith("=null")) { + //SC monitoring fills culture only if PublicKeyToken is filled + messageTypeDetails.culture = segments[3]; + messageTypeDetails.publicKeyToken = segments[4]; + } + return messageTypeDetails; + }); + return { + ...messageType, + messageTypeHierarchy, + typeName: messageTypeHierarchy.map((item) => item.typeName).join(", "), + shortName: messageTypeHierarchy.map((item) => shortenTypeName(item.typeName)).join(", "), + containsTypeHierarchy: true, + tooltipText: messageTypeHierarchy.reduce( + (sum, item) => (sum ? `${sum}\n ` : "") + `${item.typeName} |${item.assemblyName}-${item.assemblyVersion}` + (item.culture ? ` |${item.culture}` : "") + (item.publicKeyToken ? ` |${item.publicKeyToken}` : ""), + "" + ), + }; + } + const cultureSuffix = messageType.culture && messageType.culture !== "null" ? ` | Culture=${messageType.culture}` : ""; + const publicKeyTokenSuffix = messageType.publicKeyToken && messageType.publicKeyToken !== "null" ? ` | PublicKeyToken=${messageType.publicKeyToken}` : ""; + + return { + ...messageType, + shortName: shortenTypeName(messageType.typeName), + tooltipText: `${messageType.typeName} | ${messageType.assemblyName}-${messageType.assemblyVersion}${cultureSuffix}${publicKeyTokenSuffix}`, + }; +} + +export default class MessageTypes { + totalItems: number; + data: ExtendedMessageType[]; + + constructor(rawMessageTypes: MessageType[]) { + this.totalItems = rawMessageTypes.length; + this.data = rawMessageTypes + // filter out system message types + .filter((mt) => mt.id && mt.typeName) + .map((mt) => parseTheMessageTypeData(mt)) + .sort((a, b) => a.typeName.localeCompare(b.typeName)); + } +} diff --git a/frontend/src/components/monitoring/monitoring.css b/frontend/src/components/monitoring/monitoring.css new file mode 100644 index 0000000000..f9560daf2d --- /dev/null +++ b/frontend/src/components/monitoring/monitoring.css @@ -0,0 +1,123 @@ +div.avg-tooltip { + position: absolute; + text-align: left; + padding: 0.3rem; + line-height: 1; + background: var(--avg-tooltip-background-color); + color: #ffffff; + border-radius: 8px 1px 1px 8px; + pointer-events: none; + font-size: 11px; + white-space: nowrap; +} + +div.avg-tooltip.left { + border-radius: 1px 8px 8px 1px; +} + +div.avg-tooltip:before { + content: ""; + display: block; + z-index: -1; + right: 0; + position: absolute; + top: 50%; + background-color: var(--avg-tooltip-background-color); + width: 24px; + height: 24px; + margin-top: -12px; + margin-right: -12px; + + transform: rotate(45deg); +} + +div.avg-tooltip.left:before { + right: inherit; + margin-right: inherit; + margin-left: -12px; + left: 0; +} + +div.avg-tooltip .value { + font-size: 14px; + font-weight: bold; +} + +div.avg-tooltip .value span { + font-size: 11px; + font-weight: normal; +} + +.queue-length { + color: var(--monitoring-queue-length); + stroke: var(--monitoring-queue-length); +} + +.queue-length .graph-data-fill { + fill: var(--monitoring-queue-length-light); + stroke: none; +} + +.queue-length.avg-tooltip { + --avg-tooltip-background-color: var(--monitoring-queue-length); +} + +.throughput { + color: var(--monitoring-throughput); + stroke: var(--monitoring-throughput); +} + +.throughput .graph-data-fill { + fill: var(--monitoring-throughput-light); + stroke: none; +} + +.throughput.avg-tooltip { + --avg-tooltip-background-color: var(--monitoring-throughput); +} + +.retries { + color: var(--monitoring-retries); + stroke: var(--monitoring-retries); +} + +.retries .graph-data-fill { + fill: var(--monitoring-retries-light); + stroke: none; +} + +.retries.avg-tooltip { + --avg-tooltip-background-color: var(--monitoring-retries); +} + +.processing-time { + color: var(--monitoring-processing-time); + stroke: var(--monitoring-processing-time); +} + +.processing-time .graph-data-fill { + fill: var(--monitoring-processing-time-light); + stroke: none; +} + +.processing-time.avg-tooltip { + --avg-tooltip-background-color: var(--monitoring-processing-time); +} + +.critical-time { + color: var(--monitoring-critical-time); + stroke: var(--monitoring-critical-time); +} + +.critical-time .graph-data-fill { + fill: var(--monitoring-critical-time-light); + stroke: none; +} + +.critical-time.avg-tooltip { + --avg-tooltip-background-color: var(--monitoring-critical-time); +} + +.avg-tooltip { + color: white; +} diff --git a/frontend/src/components/notsupported.css b/frontend/src/components/notsupported.css new file mode 100644 index 0000000000..43d50b65eb --- /dev/null +++ b/frontend/src/components/notsupported.css @@ -0,0 +1,29 @@ +.not-supported { + font-size: 1rem; +} + +.not-supported div:has(> .message) { + display: flex; + align-items: center; + justify-content: center; +} + +.not-supported .message { + margin-top: 2em; + max-width: 30em; + line-height: 1.6em; +} + +.not-supported .message h1 { + font-size: 1.9em; +} + +.not-supported .message ul { + padding-left: 0; + text-align: left; + margin-bottom: 1.9rem; +} + +.not-supported .message .btn { + font-size: 1rem; +} diff --git a/frontend/src/composables/LicenseStatus.ts b/frontend/src/composables/LicenseStatus.ts new file mode 100644 index 0000000000..47c2e74113 --- /dev/null +++ b/frontend/src/composables/LicenseStatus.ts @@ -0,0 +1,5 @@ +export enum LicenseWarningLevel { + None = "none", + Warning = "warning", + Danger = "danger", +} diff --git a/frontend/src/composables/autoRefresh.ts b/frontend/src/composables/autoRefresh.ts new file mode 100644 index 0000000000..eb01dc397d --- /dev/null +++ b/frontend/src/composables/autoRefresh.ts @@ -0,0 +1,66 @@ +import { watch, ref, shallowReadonly, type WatchStopHandle } from "vue"; +import { useCounter, useDocumentVisibility, useTimeoutPoll } from "@vueuse/core"; + +export default function useFetchWithAutoRefresh(name: string, fetch: () => Promise, intervalMs: number) { + let watchStop: WatchStopHandle | null = null; + const { count, inc, dec, reset } = useCounter(0); + const interval = ref(intervalMs); + const isRefreshing = ref(false); + const fetchWrapper = async () => { + if (isRefreshing.value) { + return; + } + isRefreshing.value = true; + await fetch(); + isRefreshing.value = false; + }; + const { pause, resume } = useTimeoutPoll( + fetchWrapper, + interval, + { immediate: false, immediateCallback: true } // we control first fetch manually + ); + + const visibility = useDocumentVisibility(); + + const start = async () => { + inc(); + if (count.value === 1) { + console.debug(`[AutoRefresh] Starting auto-refresh for ${name} every ${interval.value}ms`); + resume(); + watchStop = watch(visibility, (current, previous) => { + if (current === "visible" && previous === "hidden") { + console.debug(`[AutoRefresh] Resuming auto-refresh for ${name} as document became visible`); + resume(); + } + + if (current === "hidden" && previous === "visible") { + console.debug(`[AutoRefresh] Pausing auto-refresh for ${name} as document became hidden`); + pause(); + } + }); + } else { + console.debug(`[AutoRefresh] Incremented refCount for ${name} to ${count.value}`); + // Because another component has started using the auto-refresh, do an immediate refresh to ensure it has up-to-date data + await fetchWrapper(); + } + }; + + const stop = () => { + dec(); + if (count.value <= 0) { + console.debug(`[AutoRefresh] Stopping auto-refresh for ${name}`); + pause(); + watchStop?.(); + watchStop = null; + reset(); + } else { + console.debug(`[AutoRefresh] Decremented refCount for ${name} to ${count.value}`); + } + }; + + const updateInterval = (newIntervalMs: number) => { + interval.value = newIntervalMs; + }; + + return { refreshNow: fetchWrapper, isRefreshing: shallowReadonly(isRefreshing), updateInterval, start, stop }; +} diff --git a/frontend/src/composables/contentTypeParser.ts b/frontend/src/composables/contentTypeParser.ts new file mode 100644 index 0000000000..2805fdcdf9 --- /dev/null +++ b/frontend/src/composables/contentTypeParser.ts @@ -0,0 +1,63 @@ +import { CodeLanguage } from "@/components/codeEditorTypes"; + +function parseContentType(contentType: string | undefined): { isSupported: boolean; language?: CodeLanguage } { + if (contentType === undefined) { + return { + isSupported: false, + }; + } + + // remove content type parameter, e.g. charset=utf-8 + contentType = contentType.split(";")[0].trim(); + + if (contentType === "application/json") { + return { + isSupported: true, + language: "json", + }; + } + + if (contentType === "text/xml") { + return { + isSupported: true, + language: "xml", + }; + } + + if (contentType.startsWith("text/")) { + return { + isSupported: true, + }; + } + + if (contentType === "application/xml") { + return { + isSupported: true, + language: "xml", + }; + } + + if (contentType.startsWith("application/")) { + // Some examples: + // application/atom+xml + // application/ld+json + // application/vnd.masstransit+json + if (contentType.endsWith("+json")) { + return { + isSupported: true, + language: "json", + }; + } else if (contentType.endsWith("+xml")) { + return { + isSupported: true, + language: "xml", + }; + } + } + + return { + isSupported: false, + }; +} + +export default parseContentType; diff --git a/frontend/src/composables/dateFormatter.ts b/frontend/src/composables/dateFormatter.ts new file mode 100644 index 0000000000..c0c1fce495 --- /dev/null +++ b/frontend/src/composables/dateFormatter.ts @@ -0,0 +1,123 @@ +import moment from "moment"; +import type { DateRange } from "@/types/date"; + +export interface DateDisplayOptions { + showLocalTime?: boolean; + showUtcTime?: boolean; + showRelative?: boolean; + format?: string; + emptyText?: string; +} + +/** + * Composable for consistent date formatting across the application + */ +export function useDateFormatter() { + const emptyDate = "0001-01-01T00:00:00"; + + /** + * Format a date range for display + */ + function formatDateRange(dateRange: DateRange, options: DateDisplayOptions = {}): string { + const { emptyText = "No dates" } = options; + + if (dateRange.length === 0) return emptyText; + + const [fromDate, toDate] = dateRange; + + if (toDate && toDate > new Date()) return "Date cannot be in the future"; + if (fromDate && toDate) return `${fromDate.toLocaleString()} - ${toDate.toLocaleString()}`; + if (fromDate) return fromDate.toLocaleString(); + return emptyText; + } + + /** + * Format a single date with flexible options + */ + function formatDate(dateInput: string | Date | null, options: DateDisplayOptions = {}): string { + const { showLocalTime = true, showUtcTime = false, showRelative = false, format = "LLLL", emptyText = "n/a" } = options; + + if (!dateInput || dateInput === emptyDate) { + return emptyText; + } + + const m = moment.utc(dateInput); + + if (showRelative) { + return m.fromNow(); + } + + if (showLocalTime && showUtcTime) { + return `${m.local().format(format)} (local)\n${m.utc().format(format)} (UTC)`; + } + + if (showUtcTime) { + return m.utc().format(format); + } + + return m.local().format(format); + } + + /** + * Format date for tooltip display (local and UTC) + */ + function formatDateTooltip(dateInput: string | Date | null, titleValue?: string): string { + if (titleValue) return titleValue; + if (!dateInput || dateInput === emptyDate) return ""; + + const m = moment.utc(dateInput); + return `${m.local().format("LLLL")} (local)\n${m.utc().format("LLLL")} (UTC)`; + } + + /** + * Get relative time that updates periodically + */ + function formatRelativeTime(dateInput: string | Date | null, options: DateDisplayOptions = {}): string { + const { emptyText = "n/a" } = options; + + if (!dateInput || dateInput === emptyDate) { + return emptyText; + } + + return moment.utc(dateInput).fromNow(); + } + + /** + * Format for license expiration dates + */ + function formatLicenseDate(dateInput: string | null): string { + if (!dateInput) return ""; + return new Date(dateInput.replace("Z", "")).toLocaleDateString(); + } + + /** + * Validate if a date range is valid + */ + function isValidDateRange(dateRange: DateRange): boolean { + // Empty range is valid + if (dateRange.length === 0) return true; + + const [fromDate, toDate] = dateRange; + + // If we have a toDate, it must not be in the future + if (toDate && toDate > new Date()) return false; + + // If we have a fromDate but no toDate, that's valid + if (fromDate && !toDate) return true; + + // If we have both dates, fromDate should be before or equal to toDate + if (fromDate && toDate) return fromDate <= toDate; + + return true; + } + + return { + formatDate, + formatDateRange, + formatDateTooltip, + formatRelativeTime, + formatLicenseDate, + isValidDateRange, + emptyDate, + }; +} diff --git a/frontend/src/composables/deliveryDelayParser.ts b/frontend/src/composables/deliveryDelayParser.ts new file mode 100644 index 0000000000..843249952f --- /dev/null +++ b/frontend/src/composables/deliveryDelayParser.ts @@ -0,0 +1,24 @@ +export function parseDeliveryDelay(delay: string): { days: number; hours: number; minutes: number; seconds: number } { + // Split on period first to handle multi-digit days + const parts = delay.split("."); + let days = 0; + let timeComponent = delay; + + if (parts.length > 1) { + days = parseInt(parts[0], 10); + timeComponent = parts[1]; + } + + const [hours, minutes, seconds] = timeComponent.split(":").map(Number); + return { days, hours, minutes, seconds }; +} + +function getFriendly(time: number, text: string): string { + return time > 0 ? `${time}${text}` : ""; +} + +export function getTimeoutFriendly(delivery_delay: string): string { + const { days, hours, minutes, seconds } = parseDeliveryDelay(delivery_delay); + + return `${getFriendly(days, "d")}${getFriendly(hours, "h")}${getFriendly(minutes, "m")}${getFriendly(seconds, "s")}`; +} diff --git a/frontend/src/composables/fileDownloadCreator.ts b/frontend/src/composables/fileDownloadCreator.ts new file mode 100644 index 0000000000..5234c571e1 --- /dev/null +++ b/frontend/src/composables/fileDownloadCreator.ts @@ -0,0 +1,25 @@ +export function downloadFileFromString(text: string, fileType: string, fileName: string) { + const fileBlob = new Blob([text], { type: fileType }); + const url = URL.createObjectURL(fileBlob); + downloadFile(url, fileType, fileName); +} + +export async function downloadFileFromResponse(response: Response, fileType: string, fileName: string) { + const fileBlob = await response.blob(); + const url = URL.createObjectURL(new Blob([fileBlob], { type: fileType })); + downloadFile(url, fileType, fileName); +} + +function downloadFile(url: string, fileType: string, fileName: string) { + const link = document.createElement("a"); + link.href = url; + link.setAttribute("download", fileName); + link.dataset.downloadurl = [fileType, link.download, link.href].join(":"); + link.style.display = "none"; + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + setTimeout(() => { + URL.revokeObjectURL(link.href); + }, 1500); +} diff --git a/frontend/src/composables/formatUtils.ts b/frontend/src/composables/formatUtils.ts new file mode 100644 index 0000000000..60cfa23502 --- /dev/null +++ b/frontend/src/composables/formatUtils.ts @@ -0,0 +1,19 @@ +import { useFormatTime } from "@/composables/formatter"; + +export function formatTypeName(type: string) { + const clazz = type.split(",")[0]; + let objectName = clazz.split(".").pop() ?? ""; + objectName = objectName.replace("+", "."); + return objectName; +} + +export function formatDotNetTimespan(timespan: string) { + const time = useFormatTime(dotNetTimespanToMilliseconds(timespan)); + return `${time.value} ${time.unit}`; +} + +export function dotNetTimespanToMilliseconds(timespan: string) { + //assuming if we have days in the timespan then something is very, very wrong + const [hh, mm, ss] = timespan.split(":"); + return ((parseInt(hh) * 60 + parseInt(mm)) * 60 + parseFloat(ss)) * 1000; +} diff --git a/frontend/src/composables/formatter.ts b/frontend/src/composables/formatter.ts new file mode 100644 index 0000000000..8f88a58b87 --- /dev/null +++ b/frontend/src/composables/formatter.ts @@ -0,0 +1,67 @@ +import moment from "moment"; + +const secondDuration = moment.duration(1000); +const minuteDuration = moment.duration(60 * 1000); +const hourDuration = moment.duration(60 * 60 * 1000); //this ensures that we never use minute formatting +const dayDuration = moment.duration(24 * 60 * 60 * 1000); + +export interface ValueWithUnit { + value: string; + unit: string; +} + +export function useFormatTime(value?: number): ValueWithUnit { + const time = { value: "0", unit: "ms" }; + if (value) { + const duration = moment.duration(value); + if (duration >= dayDuration) { + time.value = formatTimeValue(duration.days()) + " d " + formatTimeValue(duration.hours()) + " hrs"; + } else if (duration >= hourDuration) { + time.value = formatTimeValue(duration.hours(), true) + ":" + formatTimeValue(duration.minutes(), true); + time.unit = "hr"; + } else if (duration >= minuteDuration) { + time.value = formatTimeValue(duration.minutes()) + ":" + formatTimeValue(duration.seconds()); + time.unit = "min"; + } else if (duration >= secondDuration) { + time.value = formatTimeValue(duration.seconds()); + time.unit = "sec"; + } else { + time.value = formatTimeValue(duration.asMilliseconds()); + time.unit = "ms"; + } + } + + return time; +} + +export function useGetDayDiffFromToday(value: string) { + const today = new Date(); + today.setHours(0, 0, 0, 0); + const diff = new Date(value.replace("Z", "")).getTime() - today.getTime(); + return Math.round(diff / 1000 / 60 / 60 / 24); +} + +export function useFormatLargeNumber(num: number, decimals: number) { + const suffixes = ["k", "M", "G", "T", "P", "E"]; + + if (isNaN(num)) { + return ""; + } + + if (num < 1000000) { + return round(num, decimals).toLocaleString(); + } + + const exp = Math.floor(Math.log(num) / Math.log(1000)); + + return `${round(num / Math.pow(1000, exp), decimals).toLocaleString()}${suffixes[exp - 1]}`; +} + +function round(num: number, decimals: number) { + return Number(num.toFixed(decimals)); +} + +function formatTimeValue(timeValue: number, displayTwoDigits = false) { + const strValue = Math.floor(timeValue); + return `${displayTwoDigits ? ("0" + strValue).slice(-2) : strValue.toLocaleString()}`; +} diff --git a/frontend/src/composables/isRouteSelected.ts b/frontend/src/composables/isRouteSelected.ts new file mode 100644 index 0000000000..e86d665a74 --- /dev/null +++ b/frontend/src/composables/isRouteSelected.ts @@ -0,0 +1,8 @@ +import { useLink, useRoute } from "vue-router"; + +export default function isRouteSelected(path: string) { + const route = useRoute(); + const pathRoute = useLink({ to: path }).route.value; + + return route.matched.some((match) => match.name === pathRoute.name); +} diff --git a/frontend/src/composables/serviceSemVer.ts b/frontend/src/composables/serviceSemVer.ts new file mode 100644 index 0000000000..b1a4b6258a --- /dev/null +++ b/frontend/src/composables/serviceSemVer.ts @@ -0,0 +1,77 @@ +const reSemver = /^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-_]+(?:\.[\dA-Za-z\-_]+)*))?(?:\+([\dA-Za-z\-_]+(?:\.[\dA-Za-z\-_]+)*))?$/; + +export function isUpgradeAvailable(currentVersion: string, latestVersion: string) { + const latest = parse(latestVersion.split("-")[0]); + const current = parse(currentVersion.split("-")[0]); + + if (latest == null) return false; + if (current == null) return false; + + if (latest.major !== current.major) { + return latest.major > current.major; + } + if (latest.minor !== current.minor) { + return latest.minor > current.minor; + } + if (latest.patch !== current.patch) { + return latest.patch > current.patch; + } + + return false; +} + +export function isSupported(currentVersion: string, minSupportedVersion: string) { + const minSupported = parse(minSupportedVersion); + const current = parse(currentVersion); + + if (current == null) return false; + if (minSupported == null) return true; + + if (minSupported.major !== current.major) { + return minSupported.major <= current.major; + } + if (minSupported.minor !== current.minor) { + return minSupported.minor <= current.minor; + } + if (minSupported.patch !== current.patch) { + return minSupported.patch <= current.patch; + } + + return true; +} + +interface SemVer { + semver: string | null; + version: string; + major: number; + minor: number; + patch: number; + release: string; + build: string; +} + +function parse(version: string) { + // semver, major, minor, patch + // https://github.com/mojombo/semver/issues/32 + // https://github.com/isaacs/node-semver/issues/10 + // optional v + const m = reSemver.exec(version) || []; + + function defaultToZero(num: string) { + const n = parseInt(num, 10); + + return isNaN(n) ? 0 : n; + } + + return 0 === m.length + ? null + : { + semver: m[0], + version: m[1], + major: defaultToZero(m[2]), + minor: defaultToZero(m[3]), + patch: defaultToZero(m[4]), + release: m[5], + build: m[6], + }; +} diff --git a/frontend/src/composables/toast.ts b/frontend/src/composables/toast.ts new file mode 100644 index 0000000000..847afdcd03 --- /dev/null +++ b/frontend/src/composables/toast.ts @@ -0,0 +1,28 @@ +import ToastPopup from "@/components/ToastPopup.vue"; +import { TYPE, useToast } from "vue-toastification"; +import { ToastOptions } from "vue-toastification/dist/types/types"; + +export function useShowToast(type: TYPE, title: string, message: string, doNotUseTimeout: boolean = false, options?: ToastOptions) { + const toast = useToast(); + const content = { + // Your component or JSX template + component: ToastPopup, + + // Props are just regular props, but these won't be reactive + props: { + type: type, + title: title, + message: message, + }, + }; + toast(content, { + timeout: doNotUseTimeout ? false : undefined, + type: type, + ...options, + }); +} + +export const showToastAfterOperation = async (operation: () => Promise, toastType: TYPE, title: string, message: string) => { + await operation(); + useShowToast(toastType, title, message); +}; diff --git a/frontend/src/composables/typeHumanizer.ts b/frontend/src/composables/typeHumanizer.ts new file mode 100644 index 0000000000..c311555411 --- /dev/null +++ b/frontend/src/composables/typeHumanizer.ts @@ -0,0 +1,11 @@ +export function typeToName(type: string | null | undefined): string | null { + if (!type) { + return null; + } + + const className = type.split(",")[0]; + let objectName = className.split(".").pop() || ""; + objectName = objectName.replace(/\+/g, "."); + + return objectName; +} diff --git a/frontend/src/composables/useAutoRefresh.ts b/frontend/src/composables/useAutoRefresh.ts new file mode 100644 index 0000000000..cbc15a0987 --- /dev/null +++ b/frontend/src/composables/useAutoRefresh.ts @@ -0,0 +1,41 @@ +import { getCurrentInstance, onMounted, onUnmounted } from "vue"; +import useFetchWithAutoRefresh from "./autoRefresh"; + +export function useAutoRefresh(name: string, refresh: () => Promise, intervalMs: number) { + const { start, stop } = useFetchWithAutoRefresh(name, refresh, intervalMs); + + function useAutoRefresh() { + if (!getCurrentInstance()) return; //should only happen in some test contexts. Refresh will need to be called manually for those cases + onMounted(start); + onUnmounted(stop); + } + + return useAutoRefresh; +} + +/** + * Creates a singleton auto-refresh composable for a Pinia store. + * This handles the timing issue where the store needs to be called within a component lifecycle + * but the auto-refresh manager needs to be a singleton. + * + * @param name - Name for logging purposes + * @param useStore - Function that returns the Pinia store (called within component lifecycle) + * @param intervalMs - Refresh interval in milliseconds + * @returns A composable function that sets up auto-refresh and returns the store + */ +export function useStoreAutoRefresh Promise }>(name: string, useStore: () => TStore, intervalMs: number) { + const refresh = () => { + if (!store) { + return Promise.resolve(); + } + return store.refresh(); + }; + let store: TStore | null = null; + const autoRefresh = useAutoRefresh(name, refresh, intervalMs); + + return () => { + store = useStore(); + autoRefresh(); + return { store }; + }; +} diff --git a/frontend/src/composables/useConnectionsAndStatsAutoRefresh.ts b/frontend/src/composables/useConnectionsAndStatsAutoRefresh.ts new file mode 100644 index 0000000000..6381fb890b --- /dev/null +++ b/frontend/src/composables/useConnectionsAndStatsAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useConnectionsAndStatsStore } from "@/stores/ConnectionsAndStatsStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("connectionsAndStats", useConnectionsAndStatsStore, 5000); diff --git a/frontend/src/composables/useCustomChecksStoreAutoRefresh.ts b/frontend/src/composables/useCustomChecksStoreAutoRefresh.ts new file mode 100644 index 0000000000..e3eb1f2fce --- /dev/null +++ b/frontend/src/composables/useCustomChecksStoreAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useCustomChecksStore } from "@/stores/CustomChecksStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("customChecks", useCustomChecksStore, 5000); diff --git a/frontend/src/composables/useEnvironmentAndVersionsAutoRefresh.ts b/frontend/src/composables/useEnvironmentAndVersionsAutoRefresh.ts new file mode 100644 index 0000000000..9d25ab99d0 --- /dev/null +++ b/frontend/src/composables/useEnvironmentAndVersionsAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useEnvironmentAndVersionsStore } from "@/stores/EnvironmentAndVersionsStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("environmentAndVersions", useEnvironmentAndVersionsStore, 5000); diff --git a/frontend/src/composables/useHeartbeatInstancesStoreAutoRefresh.ts b/frontend/src/composables/useHeartbeatInstancesStoreAutoRefresh.ts new file mode 100644 index 0000000000..9b6c5b45d2 --- /dev/null +++ b/frontend/src/composables/useHeartbeatInstancesStoreAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useHeartbeatInstancesStore } from "@/stores/HeartbeatInstancesStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("heartbeatInstances", useHeartbeatInstancesStore, 5000); diff --git a/frontend/src/composables/useHeartbeatsStoreAutoRefresh.ts b/frontend/src/composables/useHeartbeatsStoreAutoRefresh.ts new file mode 100644 index 0000000000..107cbbbe7a --- /dev/null +++ b/frontend/src/composables/useHeartbeatsStoreAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useHeartbeatsStore } from "@/stores/HeartbeatsStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("heartbeats", useHeartbeatsStore, 5000); diff --git a/frontend/src/composables/useThroughputStoreAutoRefresh.ts b/frontend/src/composables/useThroughputStoreAutoRefresh.ts new file mode 100644 index 0000000000..b44aa4e33a --- /dev/null +++ b/frontend/src/composables/useThroughputStoreAutoRefresh.ts @@ -0,0 +1,4 @@ +import { useThroughputStore } from "@/stores/ThroughputStore"; +import { useStoreAutoRefresh } from "./useAutoRefresh"; + +export default useStoreAutoRefresh("throughput", useThroughputStore, 60 * 60 * 1000 /* 1 hour */); diff --git a/frontend/src/defaultConfig.ts b/frontend/src/defaultConfig.ts new file mode 100644 index 0000000000..4ef3ed3165 --- /dev/null +++ b/frontend/src/defaultConfig.ts @@ -0,0 +1,20 @@ +export interface DefaultConfig { + default_route: string; + version: string; + service_control_url: string; + monitoring_url: string; + showPendingRetry: boolean; +} + +let config: DefaultConfig | null = null; + +export function setDefaultConfig(defaultConfig: DefaultConfig): void { + config = defaultConfig; +} + +export function getDefaultConfig(): DefaultConfig { + if (!config) { + throw new Error("defaultConfig has not been initialized"); + } + return config; +} diff --git a/frontend/src/main.ts b/frontend/src/main.ts new file mode 100644 index 0000000000..7099ddccdf --- /dev/null +++ b/frontend/src/main.ts @@ -0,0 +1,39 @@ +import makeRouter from "./router"; +import { mount } from "./mount"; +import "vue-toastification/dist/index.css"; +import "vue3-simple-typeahead/dist/vue3-simple-typeahead.css"; //Optional default CSS +import "./assets/main.css"; +import "tippy.js/dist/tippy.css"; +import { setDefaultConfig } from "./defaultConfig"; + +async function conditionallyEnableMocking() { + if (process.env.NODE_ENV !== "dev-mocks") { + return; + } + + const { worker } = await import("@/../test/mocks/browser"); + + // `worker.start()` returns a Promise that resolves + // once the Service Worker is up and ready to intercept requests. + return worker.start(); +} + +// eslint-disable-next-line promise/catch-or-return +conditionallyEnableMocking() + .then(async () => { + const response = await fetch("js/app.constants.json", { + method: "GET", + }); + + // eslint-disable-next-line promise/always-return + if (response.ok) { + const appConstants = await response.json(); + setDefaultConfig(appConstants); + } else { + console.error("Failed to load app constants"); + } + }) + // eslint-disable-next-line promise/always-return + .then(() => { + mount({ router: makeRouter() }); + }); diff --git a/frontend/src/mount.ts b/frontend/src/mount.ts new file mode 100644 index 0000000000..d8eab93497 --- /dev/null +++ b/frontend/src/mount.ts @@ -0,0 +1,34 @@ +import { createApp } from "vue"; +import type { Router } from "vue-router"; +import App from "./App.vue"; +import Toast, { type PluginOptions, POSITION } from "vue-toastification"; +import VueTippy from "vue-tippy"; +import { createPinia } from "pinia"; +import SimpleTypeahead from "vue3-simple-typeahead"; + +const toastOptions: PluginOptions = { + position: POSITION.BOTTOM_RIGHT, + timeout: 5000, + transition: "Vue-Toastification__fade", + hideProgressBar: true, + containerClassName: "toast-container", + toastClassName: "vue-toast", + closeButtonClassName: "toast-close-button", +}; + +export function mount({ router }: { router: Router }) { + router.beforeEach((to, _from, next) => { + document.title = to.meta.title || "ServicePulse"; + next(); + }); + + const app = createApp(App); + app.use(router).use(Toast, toastOptions).use(SimpleTypeahead).use(createPinia()).use(VueTippy); + app.mount(`#app`); + + app.config.errorHandler = (err, instance) => { + console.error(instance, err); + }; + + return app; +} diff --git a/frontend/src/resources/Configuration.ts b/frontend/src/resources/Configuration.ts new file mode 100644 index 0000000000..53b2bacf73 --- /dev/null +++ b/frontend/src/resources/Configuration.ts @@ -0,0 +1,47 @@ +export default interface Configuration { + host: Host; + data_retention: DataRetention; + performance_tunning: PerformanceTuning; + transport: Transport; + plugins: Plugins; + mass_transit_connector?: MassTransitConnector; +} +interface MassTransitConnector { + version: string; + logs: Array<{ level: string; message: string; date: string }>; + error_queues: Array<{ name: string; ingesting: boolean }>; +} +interface Plugins { + heartbeat_grace_period: string; +} +interface Transport { + transport_type: string; + error_log_queue: string; + error_queue: string; + forward_error_messages: boolean; +} +interface PerformanceTuning { + http_default_connection_limit: number; + external_integrations_dispatching_batch_size: number; + expiration_process_batch_size: number; + expiration_process_timer_in_seconds: number; +} +interface DataRetention { + error_retention_period: string; +} +interface Host { + service_name: string; + raven_db_path: string; + logging: Logging; +} +interface Logging { + log_path: string; + logging_level: string; + raven_db_log_level: string; +} + +export interface EditAndRetryConfig { + enabled: boolean; + sensitive_headers: string[]; + locked_headers: string[]; +} diff --git a/frontend/src/resources/ConnectionState.ts b/frontend/src/resources/ConnectionState.ts new file mode 100644 index 0000000000..93936f8032 --- /dev/null +++ b/frontend/src/resources/ConnectionState.ts @@ -0,0 +1,6 @@ +export interface ConnectionState { + connected: boolean; + connecting: boolean; + connectedRecently: boolean; + unableToConnect: boolean | null; +} diff --git a/frontend/src/resources/ConnectionTestResults.ts b/frontend/src/resources/ConnectionTestResults.ts new file mode 100644 index 0000000000..ea7944c639 --- /dev/null +++ b/frontend/src/resources/ConnectionTestResults.ts @@ -0,0 +1,12 @@ +export default interface ConnectionTestResults { + transport: string; + audit_connection_result: ConnectionSettingsTestResult; + monitoring_connection_result: ConnectionSettingsTestResult; + broker_connection_result: ConnectionSettingsTestResult; +} + +export interface ConnectionSettingsTestResult { + connection_successful: boolean; + connection_error_messages: string[]; + diagnostics: string; +} diff --git a/frontend/src/resources/CustomCheck.ts b/frontend/src/resources/CustomCheck.ts new file mode 100644 index 0000000000..eb9123bc8c --- /dev/null +++ b/frontend/src/resources/CustomCheck.ts @@ -0,0 +1,16 @@ +import type EndpointDetails from "@/resources/EndpointDetails"; + +export default interface CustomCheck { + id: string; + custom_check_id: string; + category: string; + status: Status; + reported_at: string; + failure_reason: string; + originating_endpoint: EndpointDetails; +} + +export enum Status { + Fail = "Fail", + Pass = "Pass", +} diff --git a/frontend/src/resources/EditMessage.ts b/frontend/src/resources/EditMessage.ts new file mode 100644 index 0000000000..3aade1776c --- /dev/null +++ b/frontend/src/resources/EditMessage.ts @@ -0,0 +1,13 @@ +import type Header from "./Header"; + +export interface HeaderWithEditing extends Header { + isLocked: boolean; + isSensitive: boolean; + isMarkedAsRemoved: boolean; + isChanged: boolean; +} + +export interface EditedMessage { + messageBody: string; + headers: HeaderWithEditing[]; +} diff --git a/frontend/src/resources/EditRetryResponse.ts b/frontend/src/resources/EditRetryResponse.ts new file mode 100644 index 0000000000..4554155860 --- /dev/null +++ b/frontend/src/resources/EditRetryResponse.ts @@ -0,0 +1,3 @@ +export default interface EditRetryResponse { + edit_ignored: boolean; +} diff --git a/frontend/src/resources/EmailNotifications.ts b/frontend/src/resources/EmailNotifications.ts new file mode 100644 index 0000000000..d80bba6f07 --- /dev/null +++ b/frontend/src/resources/EmailNotifications.ts @@ -0,0 +1,10 @@ +export default interface EmailNotifications { + enabled: boolean; + smtp_server?: string; + smtp_port?: number; + authentication_account?: string; + authentication_password?: string; + enable_tls: boolean; + to?: string; + from?: string; +} diff --git a/frontend/src/resources/EndpointDetails.ts b/frontend/src/resources/EndpointDetails.ts new file mode 100644 index 0000000000..f61aebc7f9 --- /dev/null +++ b/frontend/src/resources/EndpointDetails.ts @@ -0,0 +1,5 @@ +export default interface EndpointDetails { + name: string; + host_id: string; + host: string; +} diff --git a/frontend/src/resources/EndpointSettings.ts b/frontend/src/resources/EndpointSettings.ts new file mode 100644 index 0000000000..50f6290cbd --- /dev/null +++ b/frontend/src/resources/EndpointSettings.ts @@ -0,0 +1,4 @@ +export interface EndpointSettings { + name: string; + track_instances: boolean; +} diff --git a/frontend/src/resources/EndpointThroughputSummary.ts b/frontend/src/resources/EndpointThroughputSummary.ts new file mode 100644 index 0000000000..6cb3f2c9f0 --- /dev/null +++ b/frontend/src/resources/EndpointThroughputSummary.ts @@ -0,0 +1,9 @@ +interface EndpointThroughputSummary { + name: string; + is_known_endpoint: boolean; + user_indicator: string; + max_daily_throughput: number; + max_monthly_throughput?: number; +} + +export default EndpointThroughputSummary; diff --git a/frontend/src/resources/EndpointView.ts b/frontend/src/resources/EndpointView.ts new file mode 100644 index 0000000000..e8e83dfe9c --- /dev/null +++ b/frontend/src/resources/EndpointView.ts @@ -0,0 +1,13 @@ +import { EndpointStatus } from "@/resources/Heartbeat"; + +export interface EndpointsView { + id: string; + name: string; + host_display_name: string; + monitor_heartbeat: boolean; + heartbeat_information?: { + last_report_at: string; + reported_status: EndpointStatus; + }; + is_sending_heartbeats: boolean; +} diff --git a/frontend/src/resources/EventLogItem.ts b/frontend/src/resources/EventLogItem.ts new file mode 100644 index 0000000000..02722b12c5 --- /dev/null +++ b/frontend/src/resources/EventLogItem.ts @@ -0,0 +1,16 @@ +export default interface EventLogItem { + id: string; + description: string; + severity: Severity; + raised_at: string; + related_to: string[]; + category: string; + event_type: string; +} + +export enum Severity { + Critical = "critical", + Error = "error", + Warning = "warning", + Info = "info", +} diff --git a/frontend/src/resources/FailedMessage.ts b/frontend/src/resources/FailedMessage.ts new file mode 100644 index 0000000000..28748fdfcc --- /dev/null +++ b/frontend/src/resources/FailedMessage.ts @@ -0,0 +1,70 @@ +import type EndpointDetails from "@/resources/EndpointDetails"; +import type Header from "@/resources/Header"; +import { ConversationModel } from "./SequenceDiagram/SequenceModel"; + +export interface FailedMessage { + id: string; + message_type: string; + time_sent?: string; + is_system_message: boolean; + exception: ExceptionDetails; + message_id: string; + number_of_processing_attempts: number; + status: FailedMessageStatus; + sending_endpoint: EndpointDetails; + receiving_endpoint: EndpointDetails; + queue_address: string; + time_of_failure: string; + last_modified: string; + edited: boolean; + edit_of: string; +} + +export interface ExtendedFailedMessage extends FailedMessage { + error_retention_period: number; + delete_soon: boolean; + deleted_in: string; + retryInProgress: boolean; + deleteInProgress: boolean; + restoreInProgress: boolean; + selected: boolean; + retried: boolean; + archiving: boolean; + restoring: boolean; + archived: boolean; + resolved: boolean; + headersNotFound: boolean; + messageBodyNotFound: boolean; + bodyUnavailable: boolean; + headers: Header[]; + conversationId: string; + conversation?: ConversationModel; + messageBody: string; + contentType: string; + isEditAndRetryEnabled: boolean; + redirect: boolean; + submittedForRetrial: boolean; +} + +export interface FailedMessageError { + notFound: boolean; + error: boolean; +} + +export function isError(obj: ExtendedFailedMessage | FailedMessageError): obj is FailedMessageError { + return (obj as FailedMessageError).error !== undefined || (obj as FailedMessageError).notFound !== undefined; +} + +export interface ExceptionDetails { + exception_type: string; + message: string; + source: string; + stack_trace: string; +} + +export enum FailedMessageStatus { + Unresolved = "unresolved", + Resolved = "resolved", + RetryIssued = "retryIssued", + Archived = "archived", +} diff --git a/frontend/src/resources/FailureGroup.ts b/frontend/src/resources/FailureGroup.ts new file mode 100644 index 0000000000..094f1e0512 --- /dev/null +++ b/frontend/src/resources/FailureGroup.ts @@ -0,0 +1,8 @@ +export default interface FailureGroup { + id: string; + title: string; + type: string; + count: number; + first: string; + last: string; +} diff --git a/frontend/src/resources/FailureGroupView.ts b/frontend/src/resources/FailureGroupView.ts new file mode 100644 index 0000000000..612eb82da5 --- /dev/null +++ b/frontend/src/resources/FailureGroupView.ts @@ -0,0 +1,9 @@ +export default interface FailureGroupView { + id: string; + title: string; + type: string; + count: number; + comment: string; + first: string; + last: string; +} diff --git a/frontend/src/resources/GroupOperation.ts b/frontend/src/resources/GroupOperation.ts new file mode 100644 index 0000000000..dedca37cfa --- /dev/null +++ b/frontend/src/resources/GroupOperation.ts @@ -0,0 +1,18 @@ +export default interface GroupOperation { + id: string; + title: string; + type: string; + count: number; + operation_messages_completed_count?: number; + comment: string; + first?: string; + last?: string; + operation_status: string; + operation_failed?: boolean; + operation_progress: number; + operation_remaining_count?: number; + operation_startTime?: string; + operation_completion_time?: string; + need_user_acknowledgement: boolean; + last_operation_completion_time?: string; +} diff --git a/frontend/src/resources/Header.ts b/frontend/src/resources/Header.ts new file mode 100644 index 0000000000..84d91211e9 --- /dev/null +++ b/frontend/src/resources/Header.ts @@ -0,0 +1,56 @@ +export default interface Header { + key: NServiceBusHeaders; + value?: string; +} + +export enum NServiceBusHeaders { + HttpFrom = "NServiceBus.From", + HttpTo = "NServiceBus.To", + RouteTo = "NServiceBus.Header.RouteTo", + DestinationSites = "NServiceBus.DestinationSites", + OriginatingSite = "NServiceBus.OriginatingSite", + SagaId = "NServiceBus.SagaId", + MessageId = "NServiceBus.MessageId", + CorrelationId = "NServiceBus.CorrelationId", + ReplyToAddress = "NServiceBus.ReplyToAddress", + NServiceBusVersion = "NServiceBus.Version", + ReturnMessageErrorCodeHeader = "NServiceBus.ReturnMessage.ErrorCode", + ControlMessageHeader = "NServiceBus.ControlMessage", + SagaType = "NServiceBus.SagaType", + OriginatingSagaId = "NServiceBus.OriginatingSagaId", + OriginatingSagaType = "NServiceBus.OriginatingSagaType", + DelayedRetries = "NServiceBus.Retries", + DelayedRetriesTimestamp = "NServiceBus.Retries.Timestamp", + ImmediateRetries = "NServiceBus.FLRetries", + ProcessingStarted = "NServiceBus.ProcessingStarted", + ProcessingEnded = "NServiceBus.ProcessingEnded", + TimeSent = "NServiceBus.TimeSent", + DeliverAt = "NServiceBus.DeliverAt", + RelatedTo = "NServiceBus.RelatedTo", + EnclosedMessageTypes = "NServiceBus.EnclosedMessageTypes", + ContentType = "NServiceBus.ContentType", + SubscriptionMessageType = "SubscriptionMessageType", + SubscriberTransportAddress = "NServiceBus.SubscriberAddress", + SubscriberEndpoint = "NServiceBus.SubscriberEndpoint", + IsSagaTimeoutMessage = "NServiceBus.IsSagaTimeoutMessage", + IsDeferredMessage = "NServiceBus.IsDeferredMessage", + OriginatingEndpoint = "NServiceBus.OriginatingEndpoint", + OriginatingMachine = "NServiceBus.OriginatingMachine", + OriginatingHostId = "$.diagnostics.originating.hostid", + ProcessingEndpoint = "NServiceBus.ProcessingEndpoint", + ProcessingMachine = "NServiceBus.ProcessingMachine", + HostDisplayName = "$.diagnostics.hostdisplayname", + HostId = "$.diagnostics.hostid", + HasLicenseExpired = "$.diagnostics.license.expired", + OriginatingAddress = "NServiceBus.OriginatingAddress", + ConversationId = "NServiceBus.ConversationId", + PreviousConversationId = "NServiceBus.PreviousConversationId", + MessageIntent = "NServiceBus.MessageIntent", + NonDurableMessage = "NServiceBus.NonDurableMessage", + TimeToBeReceived = "NServiceBus.TimeToBeReceived", + DiagnosticsTraceParent = "traceparent", + DiagnosticsTraceState = "tracestate", + DiagnosticsBaggage = "baggage", + DataBusConfigContentType = "NServiceBus.DataBusConfig.ContentType", + ExceptionInfoExceptionType = "NServiceBus.ExceptionInfo.ExceptionType", +} diff --git a/frontend/src/resources/Heartbeat.ts b/frontend/src/resources/Heartbeat.ts new file mode 100644 index 0000000000..2bbda54f40 --- /dev/null +++ b/frontend/src/resources/Heartbeat.ts @@ -0,0 +1,17 @@ +export interface LogicalEndpoint { + name: string; + monitor_heartbeat: boolean; + heartbeat_information?: { + last_report_at: string; + reported_status: EndpointStatus; + }; + track_instances: boolean; + alive_count: number; + down_count: number; + muted_count: number; +} + +export enum EndpointStatus { + Alive = "beating", + Dead = "dead", +} diff --git a/frontend/src/resources/HistoricRetryOperation.ts b/frontend/src/resources/HistoricRetryOperation.ts new file mode 100644 index 0000000000..66204ca3fc --- /dev/null +++ b/frontend/src/resources/HistoricRetryOperation.ts @@ -0,0 +1,11 @@ +import { RetryType } from "./RetryType"; + +export default interface HistoricRetryOperation { + request_id: string; + retry_type: RetryType; + start_time: string; + completion_time: string; + originator: string; + failed: boolean; + number_of_messages_processed: number; +} diff --git a/frontend/src/resources/LicenseInfo.ts b/frontend/src/resources/LicenseInfo.ts new file mode 100644 index 0000000000..2ed247bc76 --- /dev/null +++ b/frontend/src/resources/LicenseInfo.ts @@ -0,0 +1,37 @@ +import Configuration from "./Configuration"; + +export default interface LicenseInfo { + registered_to: string; + edition: string; + expiration_date: string; + upgrade_protection_expiration: string; + license_type: string; + instance_name: string; + trial_license: boolean; + license_status: LicenseStatus; + license_extension_url?: string; + status: string; +} + +export function typeText(license: LicenseInfo, configuration: Configuration | null) { + if (license.trial_license && configuration?.mass_transit_connector) { + return "Early Access "; + } +} + +export enum LicenseStatus { + Valid = "Valid", + Unavailable = "Unavailable", + InvalidDueToExpiredSubscription = "InvalidDueToExpiredSubscription", + ValidWithExpiringTrial = "ValidWithExpiringTrial", + InvalidDueToExpiredTrial = "InvalidDueToExpiredTrial", + InvalidDueToExpiredUpgradeProtection = "InvalidDueToExpiredUpgradeProtection", + ValidWithExpiredUpgradeProtection = "ValidWithExpiredUpgradeProtection", + ValidWithExpiringUpgradeProtection = "ValidWithExpiringUpgradeProtection", + ValidWithExpiringSubscription = "ValidWithExpiringSubscription", +} +export enum LicenseType { + Subscription, + Trial, + UpgradeProtection, +} diff --git a/frontend/src/resources/Message.ts b/frontend/src/resources/Message.ts new file mode 100644 index 0000000000..ed13869609 --- /dev/null +++ b/frontend/src/resources/Message.ts @@ -0,0 +1,49 @@ +import type EndpointDetails from "@/resources/EndpointDetails"; +import Header from "./Header"; + +export default interface Message { + id: string; + message_id: string; + message_type: string; + sending_endpoint: EndpointDetails; + receiving_endpoint: EndpointDetails; + time_sent: string; + processed_at: string; + critical_time: string; + processing_time: string; + delivery_time: string; + is_system_message: boolean; + conversation_id: string; + headers: Header[]; + status: MessageStatus; + message_intent: MessageIntent; + body_url: string; + body_size: number; + instance_id: string; + invoked_sagas?: SagaInfo[]; + originates_from_saga?: SagaInfo; +} + +export enum MessageStatus { + Failed = "failed", + RepeatedFailure = "repeatedFailure", + Successful = "successful", + ResolvedSuccessfully = "resolvedSuccessfully", + ArchivedFailure = "archivedFailure", + RetryIssued = "retryIssued", +} + +export enum MessageIntent { + Send = "send", + Publish = "publish", + Subscribe = "subscribe", + Unsubscribe = "unsubscribe", + Reply = "reply", + Init = "init", +} + +export interface SagaInfo { + change_status?: string; + saga_type: string; + saga_id: string; +} diff --git a/frontend/src/resources/MonitoredEndpoint.ts b/frontend/src/resources/MonitoredEndpoint.ts new file mode 100644 index 0000000000..638f828674 --- /dev/null +++ b/frontend/src/resources/MonitoredEndpoint.ts @@ -0,0 +1,13 @@ +export default interface MonitoredEndpoint { + Name: string; + IsStale: boolean; + EndpointInstanceIds: string[]; + Metrics: { [key: string]: MonitoredValues }; + DisconnectedCount: number; + ConnectedCount: number; +} + +export interface MonitoredValues { + Average?: number; + Points: number[]; +} diff --git a/frontend/src/resources/MonitoringEndpoint.ts b/frontend/src/resources/MonitoringEndpoint.ts new file mode 100644 index 0000000000..d849e1f570 --- /dev/null +++ b/frontend/src/resources/MonitoringEndpoint.ts @@ -0,0 +1,118 @@ +export interface Endpoint { + name: string; + errorCount: number; + serviceControlId: string; + isScMonitoringDisconnected: boolean; + metrics: EndpointMetrics; + isStale: boolean; + endpointInstanceIds: string[]; + disconnectedCount: number; + connectedCount: number; +} + +export interface DigestValues { + latest?: number; + average?: number; +} + +export interface EndpointDigest { + [index: string]: DigestValues | undefined; + queueLength?: DigestValues; + throughput?: DigestValues; + retries?: DigestValues; + processingTime?: DigestValues; + criticalTime?: DigestValues; +} + +export interface EndpointValues { + points: number[]; + average: number; +} + +export interface EndpointValuesWithTime extends EndpointValues { + timeAxisValues: string[]; //dates +} + +export interface EndpointMetrics { + [index: string]: EndpointValues; + queueLength: EndpointValues; + throughput: EndpointValues; + retries: EndpointValues; + processingTime: EndpointValuesWithTime; + criticalTime: EndpointValuesWithTime; +} + +export interface EndpointInstance { + name: string; + id: string; + isStale: boolean; + metrics: EndpointMetrics; +} + +export interface ExtendedEndpointInstance extends EndpointInstance { + isScMonitoringDisconnected: boolean; + serviceControlId: string; + errorCount: number; + isStale: boolean; +} + +export interface MessageType { + id: string; + typeName: string; + assemblyName: string; + assemblyVersion: string; + culture: string; + publicKeyToken: string; + metrics: EndpointMetrics; +} + +export interface MessageTypeDetails { + typeName: string; + assemblyName: string; + assemblyVersion: string; + culture?: string; + publicKeyToken?: string; +} + +export interface ExtendedMessageType extends MessageType { + shortName: string; + messageTypeHierarchy?: MessageTypeDetails[]; + containsTypeHierarchy?: boolean; + tooltipText: string; +} + +export interface EndpointDetails { + instances: EndpointInstance[]; + digest: { metrics: EndpointDigest }; + metricDetails: { + metrics: EndpointMetrics; + }; + messageTypes: MessageType[]; +} + +export interface ExtendedEndpointDetails extends EndpointDetails { + instances: ExtendedEndpointInstance[]; + isScMonitoringDisconnected: boolean; + serviceControlId: string; + errorCount: number; + isStale: boolean; +} + +export interface GroupedEndpoint { + groupName: string; + shortName: string; + endpoint: Endpoint; +} + +export interface EndpointGroup { + group: string; + endpoints: GroupedEndpoint[]; +} + +export interface EndpointDetailsError { + error?: string; +} + +export function isError(obj: EndpointDetails | EndpointDetailsError): obj is EndpointDetailsError { + return (obj as EndpointDetailsError).error !== undefined; +} diff --git a/frontend/src/resources/MonitoringResources.ts b/frontend/src/resources/MonitoringResources.ts new file mode 100644 index 0000000000..4e8fb9d081 --- /dev/null +++ b/frontend/src/resources/MonitoringResources.ts @@ -0,0 +1,56 @@ +export interface MonitoringResource { + name: string; + label: string; + unit?: string; + tooltip?: string; +} + +export const MessageType: MonitoringResource = { + name: "message-type-name", + label: "Message type name", +}; + +export const InstanceName: MonitoringResource = { + name: "instanceName", + label: "Instance Name", +}; + +export const EndpointName: MonitoringResource = { + name: "name", + label: "Endpoint Name", +}; + +export const Throughput: MonitoringResource = { + name: "throughput", + label: "Throughput", + unit: "(msgs/s)", + tooltip: "Throughput: The number of messages per second successfully processed by a receiving endpoint.", +}; + +export const ScheduledRetries: MonitoringResource = { + name: "retries", + label: "Scheduled retries", + unit: "(msgs/s)", + tooltip: "Scheduled retries: The number of messages per second scheduled for retries (immediate or delayed).", +}; + +export const ProcessingTime: MonitoringResource = { + name: "processingTime", + label: "Processing time", + unit: "(t)", + tooltip: "Processing time: The time taken for a receiving endpoint to successfully process a message.", +}; + +export const CriticalTime: MonitoringResource = { + name: "criticalTime", + label: "Critical time", + unit: "(t)", + tooltip: "Critical time: The elapsed time from when a message was sent, until it was successfully processed by a receiving endpoint.", +}; + +export const QueueLength: MonitoringResource = { + name: "queueLength", + label: "Queue length", + unit: "(msgs)", + tooltip: "Queue length: The number of messages waiting to be processed in the input queue(s) of the endpoint.", +}; diff --git a/frontend/src/resources/QueueAddress.ts b/frontend/src/resources/QueueAddress.ts new file mode 100644 index 0000000000..4079180b70 --- /dev/null +++ b/frontend/src/resources/QueueAddress.ts @@ -0,0 +1,4 @@ +export default interface QueueAddress { + physical_address: string; + failed_message_count: number; +} diff --git a/frontend/src/resources/RecoverabilityHistoryResponse.ts b/frontend/src/resources/RecoverabilityHistoryResponse.ts new file mode 100644 index 0000000000..192129b33e --- /dev/null +++ b/frontend/src/resources/RecoverabilityHistoryResponse.ts @@ -0,0 +1,8 @@ +import HistoricRetryOperation from "./HistoricRetryOperation"; +import UnacknowledgedRetryOperation from "./UnacknowledgedRetryOperation"; + +export default interface RecoverabilityHistoryResponse { + id: string; + historic_operations: HistoricRetryOperation[]; + unacknowledged_operations: UnacknowledgedRetryOperation[]; +} diff --git a/frontend/src/resources/Redirect.ts b/frontend/src/resources/Redirect.ts new file mode 100644 index 0000000000..8f139a94fa --- /dev/null +++ b/frontend/src/resources/Redirect.ts @@ -0,0 +1,6 @@ +export default interface Redirect { + message_redirect_id: string; + from_physical_address: string; + to_physical_address: string; + last_modified: string; +} diff --git a/frontend/src/resources/Release.ts b/frontend/src/resources/Release.ts new file mode 100644 index 0000000000..eab381230f --- /dev/null +++ b/frontend/src/resources/Release.ts @@ -0,0 +1,5 @@ +export default interface Release { + tag: string; + release: string; + published: string; +} diff --git a/frontend/src/resources/ReportGenerationState.ts b/frontend/src/resources/ReportGenerationState.ts new file mode 100644 index 0000000000..d7103b2555 --- /dev/null +++ b/frontend/src/resources/ReportGenerationState.ts @@ -0,0 +1,5 @@ +export default interface ReportGenerationState { + transport: string; + report_can_be_generated: boolean; + reason: string; +} diff --git a/frontend/src/resources/RetryType.ts b/frontend/src/resources/RetryType.ts new file mode 100644 index 0000000000..130ce362cb --- /dev/null +++ b/frontend/src/resources/RetryType.ts @@ -0,0 +1,9 @@ +export enum RetryType { + Unknown = "Unknown", + SingleMessage = "SingleMessage", + FailureGroup = "FailureGroup", + MultipleMessages = "MultipleMessages", + AllForEndpoint = "AllForEndpoint", + All = "All", + ByQueueAddress = "ByQueueAddress", +} diff --git a/frontend/src/resources/RootUrls.ts b/frontend/src/resources/RootUrls.ts new file mode 100644 index 0000000000..5c18ca5c65 --- /dev/null +++ b/frontend/src/resources/RootUrls.ts @@ -0,0 +1,20 @@ +export default interface RootUrls { + description: string; + endpoints_error_url: string; + known_endpoints_url: string; + endpoints_message_search_url: string; + endpoints_messages_url: string; + audit_count_url: string; + endpoints_url: string; + errors_url: string; + configuration: string; + remote_configuration: string; + message_search_url: string; + license_status: string; + license_details: string; + name: string; + sagas_url: string; + event_log_items: string; + archived_groups_url: string; + get_archive_group: string; +} diff --git a/frontend/src/resources/SagaHistory.ts b/frontend/src/resources/SagaHistory.ts new file mode 100644 index 0000000000..216b754d72 --- /dev/null +++ b/frontend/src/resources/SagaHistory.ts @@ -0,0 +1,36 @@ +import { MessageStatus } from "./Message"; + +export interface SagaHistory { + id: string; + saga_id: string; + saga_type: string; + changes: SagaStateChange[]; +} + +export interface SagaStateChange { + start_time: Date; + finish_time: Date; + status: string; + state_after_change: string; + initiating_message: SagaMessage; + outgoing_messages: OutgoingMessage[]; + endpoint: string; +} + +export interface SagaMessage { + message_id: string; + is_saga_timeout_message: boolean; + originating_endpoint: string; + originating_machine: string; + time_sent: Date; + message_type: string; + intent: string; + body_url: string; + message_status: MessageStatus; +} + +export interface OutgoingMessage extends SagaMessage { + delivery_delay?: string; + destination: string; + deliver_at: Date; +} diff --git a/frontend/src/resources/SequenceDiagram/Endpoint.ts b/frontend/src/resources/SequenceDiagram/Endpoint.ts new file mode 100644 index 0000000000..7951991910 --- /dev/null +++ b/frontend/src/resources/SequenceDiagram/Endpoint.ts @@ -0,0 +1,128 @@ +import { NServiceBusHeaders } from "../Header"; +import Message from "../Message"; +import { Handler } from "./Handler"; + +export interface Endpoint { + readonly name: string; + readonly hosts: EndpointHost[]; + readonly hostId: string; + readonly handlers: Handler[]; + readonly host: string; + readonly version: string; + uiRef?: Element; + addHandler(handler: Handler): void; +} + +export interface EndpointHost { + readonly host: string; + readonly hostId: string; + readonly versions: string[]; +} + +export function createProcessingEndpoint(message: Message): Endpoint { + return new EndpointItem( + message.receiving_endpoint.name, + message.receiving_endpoint.host, + message.receiving_endpoint.host_id, + message.receiving_endpoint.name === message.sending_endpoint.name && message.receiving_endpoint.host === message.sending_endpoint.host ? message.headers.find((h) => h.key === NServiceBusHeaders.NServiceBusVersion)?.value : undefined + ); +} + +export function createSendingEndpoint(message: Message): Endpoint { + return new EndpointItem(message.sending_endpoint.name, message.sending_endpoint.host, message.sending_endpoint.host_id, message.headers.find((h) => h.key === NServiceBusHeaders.NServiceBusVersion)?.value); +} + +export class EndpointRegistry { + #store = new Map(); + + register(item: Endpoint) { + let endpoint = this.#store.get(item.name); + if (!endpoint) { + endpoint = item as EndpointItem; + this.#store.set(endpoint.name, endpoint); + } + + item.hosts.forEach((host) => endpoint.addHost(host as Host)); + } + + get(item: Endpoint) { + return this.#store.get(item.name)! as Endpoint; + } +} + +class EndpointItem implements Endpoint { + private _hosts: Map; + private _name: string; + private _handlers: Handler[] = []; + uiRef?: SVGElement; + + constructor(name: string, host: string, id: string, version?: string) { + const initialHost = new Host(host, id, version); + this._hosts = new Map([[initialHost.equatableKey, initialHost]]); + this._name = name; + } + + get name() { + return this._name; + } + get hosts() { + return [...this._hosts].map(([, host]) => host); + } + get host() { + return [...this._hosts].map(([, host]) => host.host).join(","); + } + get hostId() { + return [...this._hosts].map(([, host]) => host.hostId).join(","); + } + get handlers() { + return [...this._handlers]; + } + get version() { + return [...this._hosts].flatMap(([, host]) => host.versions).join(","); + } + + addHost(host: Host) { + if (!this._hosts.has(host.equatableKey)) { + this._hosts.set(host.equatableKey, host); + } else { + const existing = this._hosts.get(host.equatableKey)!; + existing.addVersions(host.versions); + } + } + + addHandler(handler: Handler) { + this._handlers.push(handler); + } +} + +class Host implements EndpointHost { + private _host: string; + private _hostId: string; + private _versions: Set; + + constructor(host: string, hostId: string, version?: string) { + this._host = host; + this._hostId = hostId; + this._versions = new Set(); + this.addVersions([version]); + } + + get host() { + return this._host; + } + get hostId() { + return this._hostId; + } + + get versions() { + return [...this._versions]; + } + + get equatableKey() { + return `${this._hostId}###${this._host}`; + } + + addVersions(versions: (string | undefined)[]) { + versions.filter((version) => version).forEach((version) => this._versions.add(version!.toLowerCase())); + } +} diff --git a/frontend/src/resources/SequenceDiagram/Handler.ts b/frontend/src/resources/SequenceDiagram/Handler.ts new file mode 100644 index 0000000000..a7bd3a0686 --- /dev/null +++ b/frontend/src/resources/SequenceDiagram/Handler.ts @@ -0,0 +1,138 @@ +import { NServiceBusHeaders } from "../Header"; +import Message, { MessageStatus } from "../Message"; +import { Direction, MessageProcessingRoute, RoutedMessage } from "./RoutedMessage"; +import { Endpoint } from "./Endpoint"; +import { friendlyTypeName } from "./SequenceModel"; + +export interface Handler { + readonly id: string; + name?: string; + friendlyName?: string; + readonly endpoint: Endpoint; + readonly isPartOfSaga: boolean; + partOfSaga?: string; + state: HandlerState; + inMessage?: RoutedMessage; + readonly outMessages: RoutedMessage[]; + processedAt?: Date; + readonly handledAt?: Date; + processingTime?: number; + readonly direction: Direction; + route?: MessageProcessingRoute; + readonly selectedMessage?: Message; + uiRef?: SVGElement; + updateProcessedAt(timeSent: Date): void; + addOutMessage(routedMessage: RoutedMessage): void; +} + +export enum HandlerState { + Fail, + Success, + Unknown, +} + +export const ConversationStartHandlerName = "First"; + +export function createSendingHandler(message: Message, sendingEndpoint: Endpoint): Handler { + return new HandlerItem(message.headers.find((h) => h.key === NServiceBusHeaders.RelatedTo)?.value ?? ConversationStartHandlerName, sendingEndpoint); +} + +export function createProcessingHandler(message: Message, processingEndpoint: Endpoint): Handler { + const handler = new HandlerItem(message.message_id, processingEndpoint); + updateProcessingHandler(handler, message); + return handler; +} + +export class HandlerRegistry { + #store = new Map(); + private storeKey = (id: string, endpointName: string) => `${id}###${endpointName}`; + + register(handler: Handler) { + const existing = this.#store.get(this.storeKey(handler.id, handler.endpoint.name)); + if (existing) return { handler: existing, isNew: false }; + + this.#store.set(this.storeKey(handler.id, handler.endpoint.name), handler as HandlerItem); + return { handler, isNew: true }; + } +} + +export function updateProcessingHandler(handler: Handler, message: Message) { + handler.processedAt = new Date(message.processed_at); + //assuming if we have days in the timespan then something is very, very wrong + //TODO: extract logic since it's also currently used in AuditList + const [hh, mm, ss] = message.processing_time.split(":"); + handler.processingTime = ((parseInt(hh) * 60 + parseInt(mm)) * 60 + parseFloat(ss)) * 1000; + handler.name = message.message_type; + handler.friendlyName = friendlyTypeName(message.message_type); + + if ((message.invoked_sagas?.length ?? 0) > 0) { + handler.partOfSaga = message.invoked_sagas!.map((saga) => friendlyTypeName(saga.saga_type)).join(", "); + } + + switch (message.status) { + case MessageStatus.ArchivedFailure: + case MessageStatus.Failed: + case MessageStatus.RepeatedFailure: + handler.state = HandlerState.Fail; + break; + default: + handler.state = HandlerState.Success; + } +} + +class HandlerItem implements Handler { + private _id: string; + private _endpoint: Endpoint; + private _processedAtGuess?: Date; + private _outMessages: RoutedMessage[]; + name?: string; + partOfSaga?: string; + inMessage?: RoutedMessage; + state: HandlerState = HandlerState.Unknown; + processedAt?: Date; + processingTime?: number; + route?: MessageProcessingRoute; + uiRef?: SVGElement; + + constructor(id: string, endpoint: Endpoint) { + this._id = id; + this._endpoint = endpoint; + this._outMessages = []; + } + + get id() { + return this._id; + } + + get endpoint() { + return this._endpoint; + } + + get isPartOfSaga() { + return this.partOfSaga != null; + } + + get handledAt() { + return this.processedAt ?? this._processedAtGuess; + } + + get selectedMessage() { + return this.route?.fromRoutedMessage?.selectedMessage; + } + + get outMessages() { + return [...this._outMessages]; + } + + get direction() { + return this.outMessages[0]?.direction ?? Direction.Right; + } + + updateProcessedAt(timeSent: Date) { + if (!this._processedAtGuess || this._processedAtGuess.getTime() > timeSent.getTime()) this._processedAtGuess = timeSent; + } + + addOutMessage(routedMessage: RoutedMessage) { + this._outMessages = [routedMessage, ...this._outMessages].sort((a, b) => (a.sentTime?.getTime() ?? 0) - (b.sentTime?.getTime() ?? 0)); + } +} diff --git a/frontend/src/resources/SequenceDiagram/RoutedMessage.ts b/frontend/src/resources/SequenceDiagram/RoutedMessage.ts new file mode 100644 index 0000000000..c4c3c85415 --- /dev/null +++ b/frontend/src/resources/SequenceDiagram/RoutedMessage.ts @@ -0,0 +1,117 @@ +import EndpointDetails from "../EndpointDetails"; +import { NServiceBusHeaders } from "../Header"; +import Message, { MessageIntent, MessageStatus } from "../Message"; +import { Handler } from "./Handler"; +import { friendlyTypeName } from "./SequenceModel"; + +export interface RoutedMessage { + id: string; + name: string; + readonly selectedMessage: Message; + fromHandler?: Handler; + toHandler?: Handler; + route?: MessageProcessingRoute; + direction: Direction; + type: RoutedMessageType; + readonly receiving: EndpointDetails; + readonly sending: EndpointDetails; + readonly sentTime: Date | undefined; + readonly messageId: string; + readonly status: MessageStatus; +} + +export interface MessageProcessingRoute { + readonly name?: string; + readonly fromRoutedMessage?: RoutedMessage; + readonly processingHandler?: Handler; + uiRef?: SVGElement; +} + +export enum Direction { + Left, + Right, +} + +export enum RoutedMessageType { + Event, + Command, + Local, + Timeout, +} + +export function createRoute(routedMessage: RoutedMessage, processingHandler: Handler): MessageProcessingRoute { + return new MessageProcessingRouteItem(routedMessage, processingHandler); +} + +export function createRoutedMessage(message: Message): RoutedMessage { + const routedMessage = new RoutedMessageItem(message); + + if (message.message_intent === MessageIntent.Publish) routedMessage.type = RoutedMessageType.Event; + else { + const isTimeoutString = message.headers.find((h) => h.key === NServiceBusHeaders.IsSagaTimeoutMessage)?.value?.toLowerCase(); + const isTimeout = (isTimeoutString ?? "") === "true"; + if (isTimeout) routedMessage.type = RoutedMessageType.Timeout; + else if (message.receiving_endpoint.host_id === message.sending_endpoint.host_id && message.receiving_endpoint.name === message.sending_endpoint.name) routedMessage.type = RoutedMessageType.Local; + else routedMessage.type = RoutedMessageType.Command; + } + + return routedMessage; +} + +class MessageProcessingRouteItem implements MessageProcessingRoute { + readonly name?: string; + private _fromRoutedMessage?: RoutedMessageItem; + readonly processingHandler?: Handler; + uiRef?: SVGElement; + + constructor(routedMessage?: RoutedMessageItem, processingHandler?: Handler) { + this._fromRoutedMessage = routedMessage; + this.processingHandler = processingHandler; + + if (routedMessage && this.processingHandler) { + this.name = `${processingHandler?.name}(${routedMessage.id})`; + } + + if (routedMessage) routedMessage.route = this; + if (processingHandler) processingHandler.route = this; + } + + get fromRoutedMessage() { + return this._fromRoutedMessage as RoutedMessage | undefined; + } +} + +class RoutedMessageItem implements RoutedMessage { + readonly selectedMessage: Message; + readonly name: string; + fromHandler?: Handler; + toHandler?: Handler; + route?: MessageProcessingRoute; + direction = Direction.Left; + type = RoutedMessageType.Command; + + constructor(message: Message) { + this.selectedMessage = message; + this.name = friendlyTypeName(message.message_type) ?? ""; + } + + get id() { + return this.selectedMessage.id; + } + + get receiving() { + return this.selectedMessage.receiving_endpoint; + } + get sending() { + return this.selectedMessage.sending_endpoint; + } + get sentTime() { + return this.selectedMessage.time_sent ? new Date(this.selectedMessage.time_sent) : undefined; + } + get messageId() { + return this.selectedMessage.message_id; + } + get status() { + return this.selectedMessage.status; + } +} diff --git a/frontend/src/resources/SequenceDiagram/SequenceModel.ts b/frontend/src/resources/SequenceDiagram/SequenceModel.ts new file mode 100644 index 0000000000..3ce04dad66 --- /dev/null +++ b/frontend/src/resources/SequenceDiagram/SequenceModel.ts @@ -0,0 +1,142 @@ +import { NServiceBusHeaders } from "../Header"; +import Message from "../Message"; +import { createRoutedMessage, createRoute, MessageProcessingRoute } from "./RoutedMessage"; +import { createProcessingEndpoint, createSendingEndpoint, Endpoint, EndpointRegistry } from "./Endpoint"; +import { ConversationStartHandlerName, createProcessingHandler, createSendingHandler, Handler, HandlerRegistry, updateProcessingHandler } from "./Handler"; + +export interface ConversationModel { + endpoints: Endpoint[]; +} + +//TODO: extract to common area if this continues to be used in AuditList +export function friendlyTypeName(messageType: string) { + if (messageType == null) return undefined; + + const typeClass = messageType.split(",")[0]; + const typeName = typeClass.split(".").reverse()[0]; + return typeName.replace(/\+/g, "."); +} + +export class ModelCreator implements ConversationModel { + #endpoints: Endpoint[]; + #handlers: Handler[]; + #processingRoutes: MessageProcessingRoute[]; + + constructor(messages: Message[]) { + this.#endpoints = []; + this.#processingRoutes = []; + + const endpointRegistry = new EndpointRegistry(); + const handlerRegistry = new HandlerRegistry(); + const firstOrderHandlers: Handler[] = []; + const messagesInOrder = MessageTreeNode.createTree(messages).flatMap((node) => node.walk()); + + // NOTE: All sending endpoints are created first to ensure version info is retained + for (const message of messagesInOrder) { + endpointRegistry.register(createSendingEndpoint(message)); + } + for (const message of messagesInOrder) { + endpointRegistry.register(createProcessingEndpoint(message)); + } + + for (const message of messagesInOrder) { + const sendingEndpoint = endpointRegistry.get(createSendingEndpoint(message)); + if (!this.#endpoints.find((endpoint) => endpoint.name === sendingEndpoint?.name)) { + this.#endpoints.push(sendingEndpoint); + } + const processingEndpoint = endpointRegistry.get(createProcessingEndpoint(message)); + if (!this.#endpoints.find((endpoint) => endpoint.name === processingEndpoint?.name)) { + this.#endpoints.push(processingEndpoint); + } + + const { handler: sendingHandler, isNew: sendingHandlerIsNew } = handlerRegistry.register(createSendingHandler(message, sendingEndpoint)); + if (sendingHandlerIsNew) { + firstOrderHandlers.push(sendingHandler); + sendingEndpoint.addHandler(sendingHandler); + } + sendingHandler.updateProcessedAt(new Date(message.time_sent)); + + const { handler: processingHandler, isNew: processingHandlerIsNew } = handlerRegistry.register(createProcessingHandler(message, processingEndpoint)); + if (processingHandlerIsNew) { + firstOrderHandlers.push(processingHandler); + processingEndpoint.addHandler(processingHandler); + } else { + updateProcessingHandler(processingHandler, message); + } + + const routedMessage = createRoutedMessage(message); + routedMessage.toHandler = processingHandler; + routedMessage.fromHandler = sendingHandler; + this.#processingRoutes.push(createRoute(routedMessage, processingHandler)); + processingHandler.inMessage = routedMessage; + sendingHandler.addOutMessage(routedMessage); + } + + const start = firstOrderHandlers.filter((h) => h.id === ConversationStartHandlerName); + const orderByHandledAt = firstOrderHandlers.filter((h) => h.id !== ConversationStartHandlerName).sort((a, b) => (a.handledAt?.getTime() ?? 0) - (b.handledAt?.getTime() ?? 0)); + + this.#handlers = [...start, ...orderByHandledAt]; + } + + get endpoints(): Endpoint[] { + return [...this.#endpoints]; + } + + get handlers(): Handler[] { + return [...this.#handlers]; + } + + get routes(): MessageProcessingRoute[] { + return [...this.#processingRoutes]; + } +} + +class MessageTreeNode { + #message: Message; + #parent?: string; + #children: MessageTreeNode[]; + + static createTree(messages: Message[]) { + const nodes = messages.map((message) => new MessageTreeNode(message)); + const resolved: MessageTreeNode[] = []; + const index = new Map(nodes.map((node) => [node.id, node])); + + for (const node of nodes) { + const parent = index.get(node.parent ?? ""); + if (parent) { + parent.addChild(node); + resolved.push(node); + } + } + + return nodes.filter((node) => !resolved.includes(node)); + } + + constructor(message: Message) { + this.#message = message; + this.#parent = message.headers.find((h) => h.key === NServiceBusHeaders.RelatedTo)?.value; + this.#children = []; + } + + get id() { + return this.#message.message_id; + } + get parent() { + return this.#parent; + } + get message() { + return this.#message; + } + get children() { + return [...this.#children]; + } + + addChild(childNode: MessageTreeNode) { + this.#children.push(childNode); + } + + walk(): Message[] { + //TODO: check performance of this. We may need to pre-calculate the processed_at as a date on the message object + return [this.#message, ...this.children.sort((a, b) => new Date(a.message.processed_at).getTime() - new Date(b.message.processed_at).getTime()).flatMap((child) => child.walk())]; + } +} diff --git a/frontend/src/resources/ServiceControlMonitoringInstance.ts b/frontend/src/resources/ServiceControlMonitoringInstance.ts new file mode 100644 index 0000000000..21630a4fbf --- /dev/null +++ b/frontend/src/resources/ServiceControlMonitoringInstance.ts @@ -0,0 +1,4 @@ +export interface ServiceControlMonitoringInstance { + instanceType: string; + version: string; +} diff --git a/frontend/src/resources/SortOptions.ts b/frontend/src/resources/SortOptions.ts new file mode 100644 index 0000000000..50c58af235 --- /dev/null +++ b/frontend/src/resources/SortOptions.ts @@ -0,0 +1,19 @@ +import { IconDefinition } from "@fortawesome/free-solid-svg-icons"; +import type { Moment } from "moment"; + +export type GroupPropertyType = string | number | Date | Moment | boolean; + +export default interface SortOptions { + description: string; + iconAsc: IconDefinition; + iconDesc: IconDefinition; + dir?: SortDirection; + //used for client-side sorting only + selector?: (group: T) => GroupPropertyType; + sort?: (firstElement: T, secondElement: T) => number; +} + +export enum SortDirection { + Ascending = "asc", + Descending = "desc", +} diff --git a/frontend/src/resources/ThroughputConnectionSettings.ts b/frontend/src/resources/ThroughputConnectionSettings.ts new file mode 100644 index 0000000000..924d98cfd4 --- /dev/null +++ b/frontend/src/resources/ThroughputConnectionSettings.ts @@ -0,0 +1,10 @@ +export default interface ThroughputConnectionSettings { + service_control_settings: ThroughputConnectionSetting[]; + monitoring_settings: ThroughputConnectionSetting[]; + broker_settings: ThroughputConnectionSetting[]; +} + +export interface ThroughputConnectionSetting { + name: string; + description: string; +} diff --git a/frontend/src/resources/UnacknowledgedRetryOperation.ts b/frontend/src/resources/UnacknowledgedRetryOperation.ts new file mode 100644 index 0000000000..d8ec4fbf23 --- /dev/null +++ b/frontend/src/resources/UnacknowledgedRetryOperation.ts @@ -0,0 +1,13 @@ +import { RetryType } from "./RetryType"; + +export default interface UnacknowledgedRetryOperation { + request_id: string; + retry_type: RetryType; + start_time: string; + completion_time: string; + last: string; + originator: string; + classifier: string; + failed: boolean; + number_of_messages_processed: number; +} diff --git a/frontend/src/resources/UpdateEmailNotificationsSettingsRequest.ts b/frontend/src/resources/UpdateEmailNotificationsSettingsRequest.ts new file mode 100644 index 0000000000..f88207ba79 --- /dev/null +++ b/frontend/src/resources/UpdateEmailNotificationsSettingsRequest.ts @@ -0,0 +1,9 @@ +export default interface UpdateEmailNotificationsSettingsRequest { + smtp_server: string; + smtp_port: number; + authorization_account: string; + authorization_password: string; + enable_tls: boolean; + to: string; + from: string; +} diff --git a/frontend/src/resources/UpdateUserIndicator.ts b/frontend/src/resources/UpdateUserIndicator.ts new file mode 100644 index 0000000000..10acfdf6a6 --- /dev/null +++ b/frontend/src/resources/UpdateUserIndicator.ts @@ -0,0 +1,6 @@ +interface UpdateUserIndicator { + name: string; + user_indicator: string; +} + +export default UpdateUserIndicator; diff --git a/frontend/src/router/config.ts b/frontend/src/router/config.ts new file mode 100644 index 0000000000..63da573eff --- /dev/null +++ b/frontend/src/router/config.ts @@ -0,0 +1,228 @@ +import DashboardView from "@/views/DashboardView.vue"; +import type { RouteComponent } from "vue-router"; +import FailedMessagesView from "@/views/FailedMessagesView.vue"; +import MonitoringView from "@/views/MonitoringView.vue"; +import EventsView from "@/views/EventsView.vue"; +import ConfigurationView from "@/views/ConfigurationView.vue"; +import routeLinks from "@/router/routeLinks"; +import CustomChecksView from "@/views/CustomChecksView.vue"; +import HeartbeatsView from "@/views/HeartbeatsView.vue"; +import ThroughputReportView from "@/views/ThroughputReportView.vue"; +import AuditView from "@/views/AuditView.vue"; + +export interface RouteItem { + path: string; + alias?: string; + redirect?: string; + title: string; + component?: RouteComponent | (() => Promise); + children?: RouteItem[]; +} + +const config: RouteItem[] = [ + { + path: routeLinks.dashboard, + component: DashboardView, + title: "Dashboard", + }, + { + path: routeLinks.heartbeats.instances.template, + component: () => import("@/components/heartbeats/EndpointInstances.vue"), + title: "Endpoint Instances", + }, + { + path: routeLinks.heartbeats.root, + component: HeartbeatsView, + title: "Heartbeats", + redirect: routeLinks.heartbeats.unhealthy.link, + children: [ + { + title: "Unhealthy Endpoints", + path: routeLinks.heartbeats.unhealthy.link, + component: () => import("@/components/heartbeats/UnhealthyEndpoints.vue"), + }, + { + title: "Healthy Endpoints", + path: routeLinks.heartbeats.healthy.link, + component: () => import("@/components/heartbeats/HealthyEndpoints.vue"), + }, + { + title: "Heartbeat Configuration", + path: routeLinks.heartbeats.configuration.link, + component: () => import("@/components/heartbeats/HeartbeatConfiguration.vue"), + }, + ], + }, + { + path: routeLinks.messages.root, + component: AuditView, + title: "All Messages", + }, + { + path: routeLinks.failedMessage.root, + component: FailedMessagesView, + title: "Failed Messages", + redirect: routeLinks.failedMessage.failedMessagesGroups.link, + children: [ + { + title: "Failed Message Groups", + path: routeLinks.failedMessage.failedMessagesGroups.template, + component: () => import("@/components/failedmessages/FailedMessageGroups.vue"), + }, + { + path: routeLinks.failedMessage.failedMessages.template, + title: "All Failed Messages", + component: () => import("@/components/failedmessages/FailedMessages.vue"), + }, + { + path: routeLinks.failedMessage.deletedMessagesGroup.template, + title: "Deleted Message Groups", + component: () => import("@/components/failedmessages/DeletedMessageGroups.vue"), + }, + { + path: routeLinks.failedMessage.deletedMessages.template, + title: "All Deleted Messages", + component: () => import("@/components/failedmessages/DeletedMessages.vue"), + }, + { + path: routeLinks.failedMessage.pendingRetries.template, + title: "Pending Retries", + component: () => import("@/components/failedmessages/PendingRetries.vue"), + }, + { + title: "Failed Messages", + path: routeLinks.failedMessage.group.template, + component: () => import("@/components/failedmessages/FailedMessages.vue"), + }, + { + title: "Deleted Messages", + path: routeLinks.failedMessage.deletedGroup.template, + component: () => import("@/components/failedmessages/DeletedMessages.vue"), + }, + { + path: routeLinks.failedMessage.message.template, + title: "Message", + redirect: routeLinks.messages.failedMessage.template, + }, + ], + }, + { + path: routeLinks.messages.failedMessage.template, + title: "Message", + component: () => import("@/components/messages/MessageView.vue"), + }, + { + path: routeLinks.messages.successMessage.template, + title: "Message", + component: () => import("@/components/messages/MessageView.vue"), + }, + { + path: routeLinks.monitoring.root, + component: MonitoringView, + title: "Monitored Endpoints", + }, + { + path: routeLinks.monitoring.endpointDetails.template, + component: () => import("@/components/monitoring/EndpointDetails.vue"), + title: "Endpoint Details", + }, + { + path: routeLinks.customChecks, + title: "Custom checks", + component: CustomChecksView, + }, + { + path: routeLinks.events, + component: EventsView, + title: "Events", + }, + { + path: routeLinks.throughput.root, + component: ThroughputReportView, + title: "Usage", + redirect: routeLinks.throughput.endpoints.root, + children: [ + { + title: "Endpoints", + path: routeLinks.throughput.endpoints.root, + redirect: routeLinks.throughput.endpoints.detectedEndpoints.link, + component: () => import("@/views/throughputreport/EndpointsView.vue"), + children: [ + { + title: "Detected Endpoints", + path: routeLinks.throughput.endpoints.detectedEndpoints.template, + component: () => import("@/views/throughputreport/endpoints/DetectedEndpointsView.vue"), + }, + { + title: "Detected Broker Queues", + path: routeLinks.throughput.endpoints.detectedBrokerQueues.template, + component: () => import("@/views/throughputreport/endpoints/DetectedBrokerQueuesView.vue"), + }, + ], + }, + ], + }, + { + path: routeLinks.configuration.root, + title: "Configuration", + component: ConfigurationView, + redirect: routeLinks.configuration.license.link, + children: [ + { + title: "License", + path: routeLinks.configuration.license.template, + component: () => import("@/components/configuration/PlatformLicense.vue"), + }, + { + title: "MassTransit Connector", + path: routeLinks.configuration.massTransitConnector.template, + component: () => import("@/components/configuration/MassTransitConnector.vue"), + }, + { + title: "Health Check Notifications", + path: routeLinks.configuration.healthCheckNotifications.template, + component: () => import("@/components/configuration/HealthCheckNotifications.vue"), + }, + { + title: "Retry Redirects", + path: routeLinks.configuration.retryRedirects.template, + component: () => import("@/components/configuration/RetryRedirects.vue"), + }, + { + title: "Connections", + path: routeLinks.configuration.connections.template, + component: () => import("@/components/configuration/PlatformConnections.vue"), + }, + { + title: "Endpoint Connection", + path: routeLinks.configuration.endpointConnection.template, + component: () => import("@/components/configuration/EndpointConnection.vue"), + }, + { + title: "Usage Setup", + path: routeLinks.throughput.setup.root, + redirect: routeLinks.throughput.setup.connectionSetup.link, + component: () => import("@/views/throughputreport/SetupView.vue"), + children: [ + { + title: "Connection Setup", + path: routeLinks.throughput.setup.connectionSetup.template, + component: () => import("@/views/throughputreport/setup/ConnectionSetupView.vue"), + }, + { + title: "Mask Report Data", + path: routeLinks.throughput.setup.mask.template, + component: () => import("@/views/throughputreport/setup/MasksView.vue"), + }, + { + title: "Diagnostics", + path: routeLinks.throughput.setup.diagnostics.template, + component: () => import("@/views/throughputreport/setup/DiagnosticsView.vue"), + }, + ], + }, + ], + }, +]; + +export default config; diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts new file mode 100644 index 0000000000..66ddf21af6 --- /dev/null +++ b/frontend/src/router/index.ts @@ -0,0 +1,60 @@ +import { createRouter, createWebHashHistory, type RouteRecordRaw, RouteRecordSingleViewWithChildren } from "vue-router"; +import config, { RouteItem } from "./config"; +import { getDefaultConfig } from "@/defaultConfig"; + +function meta(item: { title: string }) { + return { title: `${item.title} • ServicePulse` }; +} + +function addChildren(parent: RouteRecordSingleViewWithChildren, item: RouteItem) { + if (item.children) { + item.children.forEach((child) => { + const newItem: RouteRecordSingleViewWithChildren = { + path: child.path, + name: `${item.path}/${child.path}`, + meta: meta(child), + component: child.component, + children: [], + }; + parent.children.push(newItem); + + if (child.redirect) newItem.redirect = child.redirect; + if (child.alias) newItem.alias = child.alias; + + addChildren(newItem, child); + }); + } +} + +export default function makeRouter() { + const routes = config.map((item) => { + const result: RouteRecordSingleViewWithChildren = { + path: item.path, + name: item.path, + meta: meta(item), + component: item.component, + children: [], + }; + + addChildren(result, item); + + if (item.redirect) result.redirect = item.redirect; + if (item.alias) result.alias = item.alias; + + return result; + }); + + const defaultRoute = getDefaultConfig().default_route; + if (!!defaultRoute && defaultRoute !== "/") { + routes.push({ + path: "/", + redirect: defaultRoute, + }); + } + + return createRouter({ + history: createWebHashHistory(), + routes: routes, + strict: false, + }); +} diff --git a/frontend/src/router/routeLinks.ts b/frontend/src/router/routeLinks.ts new file mode 100644 index 0000000000..9cb63ed9a6 --- /dev/null +++ b/frontend/src/router/routeLinks.ts @@ -0,0 +1,112 @@ +const heartbeatLinks = (root: string) => { + function createLink(template: string) { + return { link: `${root}/${template}`, template: template }; + } + + return { + root, + unhealthy: createLink("unhealthy"), + healthy: createLink("healthy"), + configuration: createLink("configuration"), + instances: { link: (endpointName: string) => `${root}/instances/${encodeURIComponent(endpointName)}`, template: "/heartbeats/instances/:endpointName" }, + }; +}; + +const failedMessagesLinks = (root: string) => { + function createLink(template: string) { + return { link: `${root}/${template}`, template: template }; + } + + return { + root, + failedMessagesGroups: createLink("failed-message-groups"), + failedMessages: createLink("all-failed-messages"), + deletedMessagesGroup: createLink("deleted-message-groups"), + deletedMessages: createLink("all-deleted-messages"), + pendingRetries: createLink("pending-retries"), + group: { link: (groupId: string) => `${root}/group/${groupId}`, template: "group/:groupId" }, + deletedGroup: { link: (groupId: string) => `${root}/deleted-messages/group/${groupId}`, template: "deleted-messages/group/:groupId" }, + message: { link: (id: string) => `${root}/message/${id}`, template: "message/:id" }, + }; +}; + +const messagesLinks = (root: string) => { + return { + root, + failedMessage: { link: (id: string) => `${root}/${id}`, template: "/messages/:id" }, + successMessage: { link: (messageId: string, id: string) => `${root}/${messageId}/${id}`, template: "/messages/:messageId/:id" }, + }; +}; + +const configurationLinks = (root: string) => { + function createLink(template: string) { + return { link: `${root}/${template}`, template: template }; + } + + return { + root, + license: createLink("license"), + massTransitConnector: createLink("mass-transit-connector"), + healthCheckNotifications: createLink("health-check-notifications"), + retryRedirects: createLink("retry-redirects"), + connections: createLink("connections"), + endpointConnection: createLink("endpoint-connection"), + }; +}; + +const throughputLinks = (root: string) => { + return { + root: root, + endpoints: throughputEndpointLinks(`${root}/endpoints`), + setup: throughputSetupLinks(`${root}/setup`), + }; +}; + +const throughputSetupLinks = (root: string) => { + function createLink(template: string) { + return { link: `${root}/${template}`, template: template }; + } + + return { + root, + connectionSetup: createLink("connection-setup"), + mask: createLink("mask"), + diagnostics: createLink("diagnostics"), + }; +}; + +const throughputEndpointLinks = (root: string) => { + function createLink(template: string) { + return { link: `${root}/${template}`, template: template }; + } + + return { + root, + detectedEndpoints: createLink("known"), + detectedBrokerQueues: createLink("broker"), + }; +}; + +const monitoringLinks = (root: string) => { + return { + root, + endpointDetails: { + link: (endpointName: string, historyPeriod: number, tab?: string) => `${root}/endpoint/${encodeURIComponent(endpointName)}?historyPeriod=${historyPeriod}${(tab && `&tab=${tab}`) ?? ""}`, + template: "/monitoring/endpoint/:endpointName", + }, + }; +}; + +const routeLinks = { + dashboard: "/dashboard", + heartbeats: heartbeatLinks("/heartbeats"), + monitoring: monitoringLinks("/monitoring"), + failedMessage: failedMessagesLinks("/failed-messages"), + customChecks: "/custom-checks", + events: "/events", + messages: messagesLinks("/messages"), + configuration: configurationLinks("/configuration"), + throughput: throughputLinks("/usage"), +}; + +export default routeLinks; diff --git a/frontend/src/router/vue-router.d.ts b/frontend/src/router/vue-router.d.ts new file mode 100644 index 0000000000..c5173bdfba --- /dev/null +++ b/frontend/src/router/vue-router.d.ts @@ -0,0 +1,13 @@ +// This can be directly added to any of your `.ts` files like `router.ts` +// It can also be added to a `.d.ts` file. Make sure it's included in +// project's tsconfig.json "files" +import "vue-router"; + +// To ensure it is treated as a module, add at least one `export` statement +export {}; + +declare module "vue-router" { + interface RouteMeta { + title: string; + } +} diff --git a/frontend/src/stores/AuditStore.ts b/frontend/src/stores/AuditStore.ts new file mode 100644 index 0000000000..4e558c4ce4 --- /dev/null +++ b/frontend/src/stores/AuditStore.ts @@ -0,0 +1,76 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { ref } from "vue"; +import type { SortInfo } from "@/components/SortInfo"; +import Message from "@/resources/Message"; +import { EndpointsView } from "@/resources/EndpointView"; +import type { DateRange } from "@/types/date"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export enum FieldNames { + TimeSent = "time_sent", + ProcessingTime = "processing_time", + CriticalTime = "critical_time", + DeliveryTime = "delivery_time", +} + +export const useAuditStore = defineStore("AuditStore", () => { + const serviceControlStore = useServiceControlStore(); + + const sortByInstances = ref({ + property: FieldNames.TimeSent, + isAscending: false, + }); + + const dateRange = ref([]); + const messageFilterString = ref(""); + const itemsPerPage = ref(100); + const totalCount = ref(0); + const messages = ref([]); + const selectedEndpointName = ref(""); + const endpoints = ref([]); + + async function loadEndpoints() { + try { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`endpoints`); + endpoints.value = data; + } catch (e) { + endpoints.value = []; + throw e; + } + } + + async function refresh() { + try { + const [fromDate, toDate] = dateRange.value; + const from = fromDate?.toISOString() ?? ""; + const to = toDate?.toISOString() ?? ""; + const [response, data] = await serviceControlStore.fetchTypedFromServiceControl( + `messages2/?endpoint_name=${selectedEndpointName.value}&from=${from}&to=${to}&q=${messageFilterString.value}&page_size=${itemsPerPage.value}&sort=${sortByInstances.value.property}&direction=${sortByInstances.value.isAscending ? "asc" : "desc"}` + ); + totalCount.value = parseInt(response.headers.get("total-count") ?? "0"); + messages.value = data; + } catch (e) { + messages.value = []; + throw e; + } + } + + return { + refresh, + loadEndpoints, + sortBy: sortByInstances, + messages, + messageFilterString, + selectedEndpointName, + itemsPerPage, + totalCount, + endpoints, + dateRange, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useAuditStore, import.meta.hot)); +} + +export type AuditStore = ReturnType; diff --git a/frontend/src/stores/ConfigurationStore.ts b/frontend/src/stores/ConfigurationStore.ts new file mode 100644 index 0000000000..b7e4b9fbd8 --- /dev/null +++ b/frontend/src/stores/ConfigurationStore.ts @@ -0,0 +1,34 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, ref, watch } from "vue"; +import Configuration from "@/resources/Configuration"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useConfigurationStore = defineStore("ConfigurationStore", () => { + const configuration = ref(null); + + const serviceControlStore = useServiceControlStore(); + const { serviceControlUrl } = storeToRefs(serviceControlStore); + + const isMassTransitConnected = computed(() => configuration.value?.mass_transit_connector !== undefined); + + async function refresh() { + if (!serviceControlUrl.value) return; + + const response = await serviceControlStore.fetchFromServiceControl("configuration"); + configuration.value = await response.json(); + } + + watch(serviceControlUrl, refresh, { immediate: true }); + + return { + configuration, + refresh, + isMassTransitConnected, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useConfigurationStore, import.meta.hot)); +} + +export type ConfigurationStore = ReturnType; diff --git a/frontend/src/stores/ConnectionsAndStatsStore.ts b/frontend/src/stores/ConnectionsAndStatsStore.ts new file mode 100644 index 0000000000..42b7cf7c66 --- /dev/null +++ b/frontend/src/stores/ConnectionsAndStatsStore.ts @@ -0,0 +1,138 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, onMounted, onUnmounted, reactive, ref } from "vue"; +import { FailedMessage, FailedMessageStatus } from "@/resources/FailedMessage"; +import { ConnectionState } from "@/resources/ConnectionState"; +import { useCounter } from "@vueuse/core"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useConnectionsAndStatsStore = defineStore("ConnectionsAndStatsStore", () => { + const serviceControlStore = useServiceControlStore(); + const { isMonitoringEnabled } = storeToRefs(serviceControlStore); + + const failedMessageCount = ref(0); + const archivedMessageCount = ref(0); + const pendingRetriesMessageCount = ref(0); + const disconnectedEndpointsCount = ref(0); + + const { count: requiresFullFailureDetailsSubscriberCount, inc, dec } = useCounter(0); + function requiresFullFailureDetails() { + onMounted(() => inc()); + onUnmounted(() => dec()); + } + + const connectionState = reactive({ + connected: false, + connecting: false, + connectedRecently: false, + unableToConnect: null, + }); + + const monitoringConnectionState = reactive({ + connected: false, + connecting: false, + connectedRecently: false, + unableToConnect: null, + }); + + const displayConnectionsWarning = computed(() => (connectionState.unableToConnect || (monitoringConnectionState.unableToConnect && isMonitoringEnabled.value)) ?? false); + + async function refresh() { + const failedMessagesResult = getErrorMessagesCount(FailedMessageStatus.Unresolved); + const archivedMessagesResult = requiresFullFailureDetailsSubscriberCount.value > 0 ? getErrorMessagesCount(FailedMessageStatus.Archived) : 0; + const pendingRetriesResult = requiresFullFailureDetailsSubscriberCount.value > 0 ? getErrorMessagesCount(FailedMessageStatus.RetryIssued) : 0; + const disconnectedEndpointsCountResult = getDisconnectedEndpointsCount(); + + const [failedMessages, archivedMessages, pendingRetries, disconnectedEndpoints] = await Promise.all([failedMessagesResult, archivedMessagesResult, pendingRetriesResult, disconnectedEndpointsCountResult]); + + failedMessageCount.value = failedMessages; + archivedMessageCount.value = archivedMessages; + pendingRetriesMessageCount.value = pendingRetries; + disconnectedEndpointsCount.value = disconnectedEndpoints; + } + + function getErrorMessagesCount(status: FailedMessageStatus) { + return fetchAndSetConnectionState( + () => serviceControlStore.fetchTypedFromServiceControl(`errors?status=${status}`), + connectionState, + (response) => parseInt(response.headers.get("Total-Count") ?? "0"), + 0 + ); + } + + function getDisconnectedEndpointsCount() { + return fetchAndSetConnectionState( + () => serviceControlStore.fetchTypedFromMonitoring("monitored-endpoints/disconnected"), + monitoringConnectionState, + (_, data) => { + return data; + }, + 0 + ); + } + + return { + refresh, + failedMessageCount, + requiresFullFailureDetails, + archivedMessageCount, + pendingRetriesMessageCount, + disconnectedEndpointsCount, + connectionState, + monitoringConnectionState, + displayConnectionsWarning, + }; +}); + +async function fetchAndSetConnectionState(fetchFunction: () => Promise<[Response?, T?]>, connectionState: ConnectionState, action: (response: Response, data: T) => TResult, defaultResult: TResult) { + if (connectionState.connecting) { + //Skip the connection state checking + try { + const [response, data] = await fetchFunction(); + if (response != null && data != null) { + return await action(response, data); + } + } catch (err) { + console.log(err); + return defaultResult; + } + } + try { + if (!connectionState.connected) { + connectionState.connecting = true; + connectionState.connected = false; + } + + try { + const [response, data] = await fetchFunction(); + let result: TResult | null = null; + if (response != null && data != null) { + result = await action(response, data); + } + connectionState.unableToConnect = false; + connectionState.connectedRecently = true; + connectionState.connected = true; + connectionState.connecting = false; + + if (result) { + return result; + } + } catch (err) { + connectionState.connected = false; + connectionState.unableToConnect = true; + connectionState.connectedRecently = false; + connectionState.connecting = false; + console.log(err); + } + } catch { + connectionState.connecting = false; + connectionState.connected = false; + } + + return defaultResult; +} + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useConnectionsAndStatsStore, import.meta.hot)); +} + +export type ConnectionsAndStatsStore = ReturnType; diff --git a/frontend/src/stores/CustomChecksStore.ts b/frontend/src/stores/CustomChecksStore.ts new file mode 100644 index 0000000000..fb02cc2d6f --- /dev/null +++ b/frontend/src/stores/CustomChecksStore.ts @@ -0,0 +1,64 @@ +import CustomCheck from "@/resources/CustomCheck"; +import { acceptHMRUpdate, defineStore } from "pinia"; +import { computed, ref, watch } from "vue"; +import { useCounter } from "@vueuse/core"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useCustomChecksStore = defineStore("CustomChecksStore", () => { + const prefix = "customchecks/"; + + const serviceControlStore = useServiceControlStore(); + + const pageNumber = ref(1); + const failingCount = ref(0); + const failedChecks = ref([]); + + const { count, inc, dec } = useCounter(0); + const skipRefresh = computed(() => count.value > 0); + + const refresh = async () => { + if (skipRefresh.value) { + return; + } + try { + const [response, data] = await serviceControlStore.fetchTypedFromServiceControl(`customchecks?status=fail&page=${pageNumber.value}`); + failedChecks.value = data; + failingCount.value = parseInt(response.headers.get("Total-Count") ?? "0"); + } catch (e) { + failedChecks.value = []; + failingCount.value = 0; + throw e; + } + }; + + watch(pageNumber, () => refresh()); + + async function dismissCustomCheck(id: string) { + try { + inc(); + // NOTE: If it takes more than the refresh interval for ServiceControl to delete the check it will reappear + failedChecks.value = failedChecks.value.filter((x) => x.id !== id); + failingCount.value--; + + // HINT: This is required to handle the difference between ServiceControl 4 and 5 + const guid = id.toLocaleLowerCase().startsWith(prefix) ? id.substring(prefix.length) : id; + await serviceControlStore.deleteFromServiceControl(`${prefix}${guid}`); + } finally { + dec(); + } + } + + return { + refresh, + dismissCustomCheck, + pageNumber, + failingCount, + failedChecks, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useCustomChecksStore, import.meta.hot)); +} + +export type CustomChecksStore = ReturnType; diff --git a/frontend/src/stores/DataContainer.ts b/frontend/src/stores/DataContainer.ts new file mode 100644 index 0000000000..80a0983e8f --- /dev/null +++ b/frontend/src/stores/DataContainer.ts @@ -0,0 +1,10 @@ +/** + * A container for data with loading states. + * Used to track loading, error, and not found states for data fetched from APIs. + */ +export interface DataContainer { + loading?: boolean; + failed_to_load?: boolean; + not_found?: boolean; + data: T; +} diff --git a/frontend/src/stores/EditRetryStore.ts b/frontend/src/stores/EditRetryStore.ts new file mode 100644 index 0000000000..2fe34e8c5b --- /dev/null +++ b/frontend/src/stores/EditRetryStore.ts @@ -0,0 +1,25 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { ref } from "vue"; +import { EditAndRetryConfig } from "@/resources/Configuration"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useEditRetryStore = defineStore("EditRetryStore", () => { + const config = ref({ enabled: false, locked_headers: [], sensitive_headers: [] }); + const serviceControlStore = useServiceControlStore(); + + async function loadConfig() { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl("edit/config"); + config.value = data; + } + + return { + config, + loadConfig, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useEditRetryStore, import.meta.hot)); +} + +export type EditRetryStore = ReturnType; diff --git a/frontend/src/stores/EndpointSettingsStore.ts b/frontend/src/stores/EndpointSettingsStore.ts new file mode 100644 index 0000000000..974a2c16cd --- /dev/null +++ b/frontend/src/stores/EndpointSettingsStore.ts @@ -0,0 +1,29 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { useServiceControlStore } from "./ServiceControlStore"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import useIsEndpointSettingsSupported from "@/components/heartbeats/isEndpointSettingsSupported"; + +export const useEndpointSettingsStore = defineStore("EndpointSettingsStore", () => { + const defaultEndpointSettingsValue = { name: "", track_instances: true }; + const serviceControlStore = useServiceControlStore(); + + const isEndpointSettingsSupported = useIsEndpointSettingsSupported(); + + async function getEndpointSettings(): Promise { + if (!isEndpointSettingsSupported.value) return [defaultEndpointSettingsValue]; + + const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`endpointssettings`); + return data; + } + + return { + defaultEndpointSettingsValue, + getEndpointSettings, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useEndpointSettingsStore, import.meta.hot)); +} + +export type EndpointSettingsStore = ReturnType; diff --git a/frontend/src/stores/EnvironmentAndVersionsStore.ts b/frontend/src/stores/EnvironmentAndVersionsStore.ts new file mode 100644 index 0000000000..0af9a90602 --- /dev/null +++ b/frontend/src/stores/EnvironmentAndVersionsStore.ts @@ -0,0 +1,150 @@ +import { isSupported, isUpgradeAvailable } from "@/composables/serviceSemVer"; +import Release from "@/resources/Release"; +import RootUrls from "@/resources/RootUrls"; +import { useMemoize } from "@vueuse/core"; +import { acceptHMRUpdate, defineStore } from "pinia"; +import { computed, reactive } from "vue"; +import { useServiceControlStore } from "./ServiceControlStore"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const useEnvironmentAndVersionsStore = defineStore("EnvironmentAndVersionsStore", () => { + const serviceControlStore = useServiceControlStore(); + + const environment = reactive({ + monitoring_version: "", + sc_version: "", + minimum_supported_sc_version: "6.6.0", + is_compatible_with_sc: true, + sp_version: getDefaultConfig().version, + supportsArchiveGroups: false, + endpoints_error_url: "", + known_endpoints_url: "", + endpoints_message_search_url: "", + endpoints_messages_url: "", + endpoints_url: "", + errors_url: "", + configuration: "", + message_search_url: "", + sagas_url: "", + }); + + const newVersions = reactive({ + newSPVersion: { + newspversion: false, + newspversionlink: "", + newspversionnumber: "", + }, + newSCVersion: { + newscversion: false, + newscversionlink: "", + newscversionnumber: "", + }, + newMVersion: { + newmversion: false, + newmversionlink: "", + newmversionnumber: "", + }, + }); + + const serviceControlIsGreaterThan = useMemoize((requiredVersion: string) => computed(() => isSupported(environment.sc_version, requiredVersion))); + + async function refresh() { + const productsResult = useServiceProductUrls(); + const scResult = getPrimaryVersion(); + const mResult = setMonitoringVersion(); + + const [products, scVer] = await Promise.all([productsResult, scResult, mResult]); + if (scVer) { + environment.supportsArchiveGroups = !!scVer.archived_groups_url; + environment.is_compatible_with_sc = isSupported(environment.sc_version, environment.minimum_supported_sc_version); + environment.endpoints_error_url = scVer && scVer.endpoints_error_url; + environment.known_endpoints_url = scVer && scVer.known_endpoints_url; + environment.endpoints_message_search_url = scVer.endpoints_message_search_url; + environment.endpoints_messages_url = scVer.endpoints_messages_url; + environment.endpoints_url = scVer.endpoints_url; + environment.errors_url = scVer.errors_url; + environment.configuration = scVer.configuration; + environment.message_search_url = scVer.message_search_url; + environment.sagas_url = scVer.sagas_url; + } + if (products.latestSP && isUpgradeAvailable(environment.sp_version, products.latestSP.tag)) { + newVersions.newSPVersion.newspversion = true; + newVersions.newSPVersion.newspversionlink = products.latestSP.release; + newVersions.newSPVersion.newspversionnumber = products.latestSP.tag; + } + if (products.latestSC && isUpgradeAvailable(environment.sc_version, products.latestSC.tag)) { + newVersions.newSCVersion.newscversion = true; + newVersions.newSCVersion.newscversionlink = products.latestSC.release; + newVersions.newSCVersion.newscversionnumber = products.latestSC.tag; + } + if (products.latestSC && isUpgradeAvailable(environment.monitoring_version, products.latestSC.tag)) { + newVersions.newMVersion.newmversion = true; + newVersions.newMVersion.newmversionlink = products.latestSC.release; + newVersions.newMVersion.newmversionnumber = products.latestSC.tag; + } + } + + async function getPrimaryVersion() { + try { + const [response, data] = await serviceControlStore.fetchTypedFromServiceControl(""); + environment.sc_version = response.headers.get("X-Particular-Version") ?? ""; + return data; + } catch { + return null; + } + } + + async function setMonitoringVersion() { + try { + const [response] = await serviceControlStore.fetchTypedFromMonitoring(""); + if (response) { + environment.monitoring_version = response.headers.get("X-Particular-Version") ?? ""; + } + } catch { + environment.monitoring_version = ""; + } + } + + return { + refresh, + environment, + newVersions, + serviceControlIsGreaterThan, + }; +}); + +async function getData(url: string) { + try { + const response = await fetch(url); + return (await response.json()) as unknown as Release[]; + } catch (e) { + console.log(e); + return [ + { + tag: "Unknown", + release: "Unknown", + published: "Unknown", + }, + ]; + } +} + +async function useServiceProductUrls() { + const spURL = "https://platformupdate.particular.net/servicepulse.txt"; + const scURL = "https://platformupdate.particular.net/servicecontrol.txt"; + + const servicePulse = getData(spURL); + const serviceControl = getData(scURL); + + const [sp, sc] = await Promise.all([servicePulse, serviceControl]); + const latestSP = sp[0]; + const latestSC = sc[0]; + + return { latestSP, latestSC }; +} + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useEnvironmentAndVersionsStore, import.meta.hot)); +} + +export type EnvironmentAndVersionsStore = ReturnType; diff --git a/frontend/src/stores/HealthChecksStore.ts b/frontend/src/stores/HealthChecksStore.ts new file mode 100644 index 0000000000..85b642159f --- /dev/null +++ b/frontend/src/stores/HealthChecksStore.ts @@ -0,0 +1,125 @@ +import EmailSettings from "@/components/configuration/EmailSettings"; +import { acceptHMRUpdate, defineStore } from "pinia"; +import { ref } from "vue"; +import { useServiceControlStore } from "./ServiceControlStore"; +import EmailNotifications from "@/resources/EmailNotifications"; +import UpdateEmailNotificationsSettingsRequest from "@/resources/UpdateEmailNotificationsSettingsRequest"; +import { useEnvironmentAndVersionsStore } from "./EnvironmentAndVersionsStore"; + +export const useHealthChecksStore = defineStore("HealthChecksStore", () => { + const emailNotifications = ref({ + enabled: null, + enable_tls: null, + smtp_server: "", + smtp_port: null, + authentication_account: "", + authentication_password: "", + from: "", + to: "", + }); + + const serviceControlStore = useServiceControlStore(); + const environmentStore = useEnvironmentAndVersionsStore(); + const hasResponseStatusInHeaders = environmentStore.serviceControlIsGreaterThan("5.2"); + + async function refresh() { + let result: EmailNotifications | null = null; + try { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl("notifications/email"); + result = data; + } catch (err) { + console.error(err); + result = { + enabled: false, + enable_tls: false, + }; + } + + emailNotifications.value = { + enabled: result.enabled, + enable_tls: result.enable_tls, + smtp_server: result.smtp_server ? result.smtp_server : "", + smtp_port: result.smtp_port ? result.smtp_port : null, + authentication_account: result.authentication_account ? result.authentication_account : "", + authentication_password: result.authentication_password ? result.authentication_password : "", + from: result.from ? result.from : "", + to: result.to ? result.to : "", + }; + } + + async function toggleEmailNotifications() { + const result = await getResponseOrError(() => + serviceControlStore.postToServiceControl("notifications/email/toggle", { + enabled: !(emailNotifications.value.enabled ?? true), + }) + ); + if (result.message === "success") return true; + else { + console.error(result.message); + //set it back to what it was + emailNotifications.value.enabled = !emailNotifications.value.enabled; + return false; + } + } + + async function testEmailNotifications() { + const result = await getResponseOrError( + () => serviceControlStore.postToServiceControl("notifications/email/test"), + (response) => (hasResponseStatusInHeaders.value ? (response.headers.get("X-Particular-Reason") ?? response.statusText) : response.statusText) + ); + if (result.message === "success") return true; + else { + console.error(result.message); + return false; + } + } + + async function saveEmailNotifications(newSettings: UpdateEmailNotificationsSettingsRequest) { + const result = await getResponseOrError(() => serviceControlStore.postToServiceControl("notifications/email", newSettings)); + if (result.message === "success") { + emailNotifications.value = { + enabled: emailNotifications.value.enabled, + enable_tls: newSettings.enable_tls, + smtp_server: newSettings.smtp_server, + smtp_port: newSettings.smtp_port, + authentication_account: newSettings.authorization_account, + authentication_password: newSettings.authorization_password, + from: newSettings.from, + to: newSettings.to, + }; + return true; + } else { + console.error(result.message); + return false; + } + } + + async function getResponseOrError(action: () => Promise, responseStatusTextOverride?: (response: Response) => string) { + const responseStatusTextDefault = (response: Response) => response.statusText; + const responseStatusText = responseStatusTextOverride ?? responseStatusTextDefault; + try { + const response = await action(); + return { + message: response.ok ? "success" : `error:${responseStatusText(response)}`, + }; + } catch (err) { + return { + message: (err as Error).message ?? err, + }; + } + } + + return { + refresh, + emailNotifications, + toggleEmailNotifications, + saveEmailNotifications, + testEmailNotifications, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useHealthChecksStore, import.meta.hot)); +} + +export type HealthChecksStore = ReturnType; diff --git a/frontend/src/stores/HeartbeatInstancesStore.spec.ts b/frontend/src/stores/HeartbeatInstancesStore.spec.ts new file mode 100644 index 0000000000..b86f029aea --- /dev/null +++ b/frontend/src/stores/HeartbeatInstancesStore.spec.ts @@ -0,0 +1,98 @@ +import { describe, expect, test } from "vitest"; +import { Driver } from "../../test/driver"; +import { makeDriverForTests } from "@component-test-utils"; +import { setActivePinia, storeToRefs } from "pinia"; +import { createTestingPinia } from "@pinia/testing"; +import { ColumnNames, useHeartbeatInstancesStore } from "@/stores/HeartbeatInstancesStore"; +import { EndpointsView } from "@/resources/EndpointView"; +import * as precondition from "../../test/preconditions"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import { serviceControlWithHeartbeats } from "@/components/heartbeats/serviceControlWithHeartbeats"; +import { EndpointStatus } from "@/resources/Heartbeat"; +import { useEnvironmentAndVersionsStore } from "./EnvironmentAndVersionsStore"; +import { useServiceControlStore } from "./ServiceControlStore"; + +describe("HeartbeatInstancesStore tests", () => { + async function setup(endpoints: EndpointsView[], endpointSettings: EndpointSettings[], preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await preSetup(driver); + await driver.setUp(serviceControlWithHeartbeats); + await driver.setUp(precondition.hasEndpointSettings(endpointSettings)); + await driver.setUp(precondition.hasHeartbeatsEndpoints(endpoints)); + + useServiceControlStore(); + await useEnvironmentAndVersionsStore().refresh(); + + const store = useHeartbeatInstancesStore(); + const refs = storeToRefs(store); + + await store.refresh(); + + return { driver, ...refs }; + } + + test("no endpoints", async () => { + const { filteredInstances } = await setup([], []); + + expect(filteredInstances.value.length).toBe(0); + }); + + test("filter by name", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: false, + id: "", + name: "", + monitor_heartbeat: false, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { filteredInstances, instanceFilterString } = await setup( + [ + { ...defaultEndpointsView, ...(>{ host_display_name: "John" }) }, + { ...defaultEndpointsView, ...(>{ host_display_name: "johnny" }) }, + { ...defaultEndpointsView, ...(>{ host_display_name: "Oliver" }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(filteredInstances.value.length).toBe(3); + instanceFilterString.value = "John"; + expect(filteredInstances.value.length).toBe(2); + instanceFilterString.value = "Oliver"; + expect(filteredInstances.value.length).toBe(1); + }); + + test("sort by", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: false, + id: "", + name: "", + monitor_heartbeat: false, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { filteredInstances, sortByInstances } = await setup( + [ + { ...defaultEndpointsView, ...(>{ host_display_name: "John", heartbeat_information: { last_report_at: "2024-10-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ host_display_name: "Anna", heartbeat_information: { last_report_at: "2024-01-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ host_display_name: "Oliver", heartbeat_information: { last_report_at: "2024-06-01T00:00:00" } }) }, + ], + [{ name: "", track_instances: true }] + ); + + const names = () => filteredInstances.value.map((value) => value.host_display_name); + sortByInstances.value = { property: ColumnNames.InstanceName, isAscending: true }; + expect(names()).toEqual(["Anna", "John", "Oliver"]); + + sortByInstances.value = { property: ColumnNames.InstanceName, isAscending: false }; + expect(names()).toEqual(["Oliver", "John", "Anna"]); + + sortByInstances.value = { property: ColumnNames.LastHeartbeat, isAscending: true }; + expect(names()).toEqual(["Anna", "Oliver", "John"]); + + sortByInstances.value = { property: ColumnNames.LastHeartbeat, isAscending: false }; + expect(names()).toEqual(["John", "Oliver", "Anna"]); + }); +}); diff --git a/frontend/src/stores/HeartbeatInstancesStore.ts b/frontend/src/stores/HeartbeatInstancesStore.ts new file mode 100644 index 0000000000..d595b759f4 --- /dev/null +++ b/frontend/src/stores/HeartbeatInstancesStore.ts @@ -0,0 +1,72 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, ref, watch } from "vue"; +import moment from "moment"; +import type { SortInfo } from "@/components/SortInfo"; +import { type GroupPropertyType, SortDirection } from "@/resources/SortOptions"; +import getSortFunction from "@/components/getSortFunction"; +import { useHeartbeatsStore } from "@/stores/HeartbeatsStore"; +import { EndpointsView } from "@/resources/EndpointView"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export enum ColumnNames { + InstanceName = "name", + LastHeartbeat = "latestHeartbeat", + MuteToggle = "toggleMuteAlerts", +} + +const columnSortings = new Map GroupPropertyType>([ + [ColumnNames.InstanceName, (endpoint) => endpoint.host_display_name], + [ColumnNames.LastHeartbeat, (endpoint) => moment.utc(endpoint.heartbeat_information?.last_report_at ?? "1975-01-01T00:00:00")], + [ColumnNames.MuteToggle, (endpoint) => !endpoint.monitor_heartbeat], +]); + +export const useHeartbeatInstancesStore = defineStore("HeartbeatInstancesStore", () => { + const serviceControlStore = useServiceControlStore(); + + const instanceFilterString = ref(""); + const store = useHeartbeatsStore(); + const { endpointInstances } = storeToRefs(store); + const sortByInstances = ref({ + property: ColumnNames.InstanceName, + isAscending: true, + }); + + const sortedInstances = computed(() => endpointInstances.value.sort(getSortFunction(columnSortings.get(sortByInstances.value.property), sortByInstances.value.isAscending ? SortDirection.Ascending : SortDirection.Descending))); + const filteredInstances = computed(() => sortedInstances.value.filter((instance) => !instanceFilterString.value || instance.host_display_name.toLowerCase().includes(instanceFilterString.value.toLowerCase()))); + + const refresh = () => store.refresh(); + + watch(instanceFilterString, (newValue) => { + setInstanceFilterString(newValue); + }); + + function setInstanceFilterString(filter: string) { + instanceFilterString.value = filter; + } + + async function deleteEndpointInstance(endpoint: EndpointsView) { + await serviceControlStore.deleteFromServiceControl(`endpoints/${endpoint.id}`); + await store.refresh(); + } + + async function toggleEndpointMonitor(endpoints: EndpointsView[]) { + await Promise.all(endpoints.map((endpoint) => serviceControlStore.patchToServiceControl(`endpoints/${endpoint.id}`, { monitor_heartbeat: !endpoint.monitor_heartbeat }))); + await store.refresh(); + } + + return { + refresh, + sortedInstances, + filteredInstances, + instanceFilterString, + deleteEndpointInstance, + toggleEndpointMonitor, + sortByInstances, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useHeartbeatInstancesStore, import.meta.hot)); +} + +export type HeartbeatInstancesStore = ReturnType; diff --git a/frontend/src/stores/HeartbeatsStore.spec.ts b/frontend/src/stores/HeartbeatsStore.spec.ts new file mode 100644 index 0000000000..eadfae06af --- /dev/null +++ b/frontend/src/stores/HeartbeatsStore.spec.ts @@ -0,0 +1,428 @@ +import { describe, expect, test } from "vitest"; +import { Driver } from "../../test/driver"; +import { makeDriverForTests } from "@component-test-utils"; +import { setActivePinia, storeToRefs } from "pinia"; +import { createTestingPinia } from "@pinia/testing"; +import { EndpointsView } from "@/resources/EndpointView"; +import * as precondition from "../../test/preconditions"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import { serviceControlWithHeartbeats } from "@/components/heartbeats/serviceControlWithHeartbeats"; +import { EndpointStatus } from "@/resources/Heartbeat"; +import { ColumnNames, useHeartbeatsStore } from "@/stores/HeartbeatsStore"; +import { useEnvironmentAndVersionsStore } from "./EnvironmentAndVersionsStore"; +import { useServiceControlStore } from "./ServiceControlStore"; + +describe("HeartbeatsStore tests", () => { + async function setup(endpoints: EndpointsView[], endpointSettings: EndpointSettings[] = [{ name: "", track_instances: true }], preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await preSetup(driver); + await driver.setUp(serviceControlWithHeartbeats); + await driver.setUp(precondition.hasHeartbeatsEndpoints(endpoints, endpointSettings)); + + useServiceControlStore(); + await useEnvironmentAndVersionsStore().refresh(); + + const store = useHeartbeatsStore(); + const storeRefs = storeToRefs(store); + await store.refresh(); + + return { driver, ...store, ...storeRefs }; + } + + test("no endpoints", async () => { + const { filteredHealthyEndpoints, filteredUnhealthyEndpoints } = await setup([]); + + expect(filteredHealthyEndpoints.value.length).toBe(0); + expect(filteredUnhealthyEndpoints.value.length).toBe(0); + }); + + describe("healthchecks total", () => { + test("all heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { failedHeartbeatsCount } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica" }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(failedHeartbeatsCount.value).toBe(0); + }); + + test("some not heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { failedHeartbeatsCount } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(failedHeartbeatsCount.value).toBe(2); + }); + + test("some not heart beating with no tracking", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { failedHeartbeatsCount } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [ + { name: "", track_instances: true }, + { name: "John", track_instances: false }, + ] + ); + + expect(failedHeartbeatsCount.value).toBe(2); + }); + + test("some not heart beating in same logical endpoint and tracking", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { failedHeartbeatsCount } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(failedHeartbeatsCount.value).toBe(3); + }); + + test("all instances muted", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { failedHeartbeatsCount } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [ + { name: "", track_instances: true }, + { name: "John", track_instances: false }, + ] + ); + + expect(failedHeartbeatsCount.value).toBe(1); + }); + }); + + describe("healthy endpoints", () => { + describe("total number when tracking instances", () => { + test("when all instances are heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { healthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(healthyEndpoints.value.length).toBe(1); + }); + + test("when some instances are not heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { healthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(healthyEndpoints.value.length).toBe(0); + }); + }); + + describe("total number when not tracking instances", () => { + test("when all instances are heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { healthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false }) }, + ], + [{ name: "", track_instances: false }] + ); + + expect(healthyEndpoints.value.length).toBe(1); + }); + + test("when some instances are not heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { healthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: false }] + ); + + expect(healthyEndpoints.value.length).toBe(0); + }); + }); + + test("filter by name", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { filteredHealthyEndpoints, endpointFilterString } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "johnny" }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(filteredHealthyEndpoints.value.length).toBe(3); + endpointFilterString.value = "John"; + expect(filteredHealthyEndpoints.value.length).toBe(2); + endpointFilterString.value = "Oliver"; + expect(filteredHealthyEndpoints.value.length).toBe(1); + }); + + test("sort by", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { filteredHealthyEndpoints, sortByInstances } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-10-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ name: "John", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-10-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Anna", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-01-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Anna", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-01-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Anna", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-01-01T00:00:00" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "2024-06-01T00:00:00" } }) }, + ], + [ + { name: "", track_instances: true }, + { name: "John", track_instances: false }, + ] + ); + + const names = () => filteredHealthyEndpoints.value.map((value) => value.name); + + sortByInstances.value = { property: ColumnNames.Name, isAscending: true }; + expect(names()).toEqual(["Anna", "John", "Oliver"]); + + sortByInstances.value = { property: ColumnNames.Name, isAscending: false }; + expect(names()).toEqual(["Oliver", "John", "Anna"]); + + sortByInstances.value = { property: ColumnNames.LastHeartbeat, isAscending: true }; + expect(names()).toEqual(["Anna", "Oliver", "John"]); + + sortByInstances.value = { property: ColumnNames.LastHeartbeat, isAscending: false }; + expect(names()).toEqual(["John", "Oliver", "Anna"]); + + sortByInstances.value = { property: ColumnNames.Tracked, isAscending: true }; + expect(names()[0]).toBe("John"); + + sortByInstances.value = { property: ColumnNames.Tracked, isAscending: false }; + expect(names()[2]).toBe("John"); + + sortByInstances.value = { property: ColumnNames.InstancesTotal, isAscending: true }; + expect(names()[2]).toBe("Anna"); + + sortByInstances.value = { property: ColumnNames.InstancesTotal, isAscending: false }; + expect(names()[0]).toBe("Anna"); + }); + }); + + describe("unhealthy endpoints", () => { + describe("total number when tracking instances", () => { + test("when all instances are heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: false, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { unhealthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(unhealthyEndpoints.value.length).toBe(2); + }); + + test("when some instances are not heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: false, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { unhealthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: true }] + ); + + expect(unhealthyEndpoints.value.length).toBe(3); + }); + }); + + describe("total number when not tracking instances", () => { + test("when all instances are heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: true, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { unhealthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false }) }, + ], + [{ name: "", track_instances: false }] + ); + + expect(unhealthyEndpoints.value.length).toBe(2); + }); + + test("when some instances are not heart beating", async () => { + const defaultEndpointsView = { + is_sending_heartbeats: false, + id: "", + name: "", + monitor_heartbeat: true, + host_display_name: "", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: "" }, + }; + const { unhealthyEndpoints } = await setup( + [ + { ...defaultEndpointsView, ...(>{ name: "Henry" }) }, + { ...defaultEndpointsView, ...(>{ name: "John" }) }, + { ...defaultEndpointsView, ...(>{ name: "John", monitor_heartbeat: false }) }, + { ...defaultEndpointsView, ...(>{ name: "Oliver", heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica" }) }, + { ...defaultEndpointsView, ...(>{ name: "Monica", monitor_heartbeat: false, heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: "" } }) }, + ], + [{ name: "", track_instances: false }] + ); + + expect(unhealthyEndpoints.value.length).toBe(3); + }); + }); + }); +}); diff --git a/frontend/src/stores/HeartbeatsStore.ts b/frontend/src/stores/HeartbeatsStore.ts new file mode 100644 index 0000000000..af808ee6ab --- /dev/null +++ b/frontend/src/stores/HeartbeatsStore.ts @@ -0,0 +1,197 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { computed, ref, watch } from "vue"; +import { EndpointStatus, LogicalEndpoint } from "@/resources/Heartbeat"; +import moment from "moment"; +import { SortDirection, type GroupPropertyType } from "@/resources/SortOptions"; +import getSortFunction from "@/components/getSortFunction"; +import { EndpointsView } from "@/resources/EndpointView"; +import type { SortInfo } from "@/components/SortInfo"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import { useServiceControlStore } from "./ServiceControlStore"; +import { useEndpointSettingsStore } from "./EndpointSettingsStore"; + +export enum ColumnNames { + Name = "name", + InstancesDown = "instancesDown", + InstancesTotal = "instancesTotal", + LastHeartbeat = "latestHeartbeat", + Muted = "muted", + Tracked = "instancesTracked", + TrackToggle = "toggleInstancesTracked", +} + +export enum MutedType { + None = 0, + Some = 1, + All = 2, +} + +const columnSortings = new Map GroupPropertyType>([ + [ColumnNames.Name, (endpoint) => endpoint.name], + [ColumnNames.InstancesDown, (endpoint) => endpoint.alive_count - endpoint.down_count], + [ColumnNames.InstancesTotal, (endpoint) => endpoint.alive_count + endpoint.down_count], + [ColumnNames.LastHeartbeat, (endpoint) => moment.utc(endpoint.heartbeat_information?.last_report_at ?? "1975-01-01T00:00:00")], + [ + ColumnNames.Muted, + (endpoint) => { + switch (endpoint.muted_count) { + case 0: + return MutedType.None; + case endpoint.alive_count + endpoint.down_count: + return MutedType.All; + default: + return MutedType.Some; + } + }, + ], + [ColumnNames.Tracked, (endpoint) => endpoint.track_instances], + [ColumnNames.TrackToggle, (endpoint) => endpoint.track_instances], +]); + +export const useHeartbeatsStore = defineStore("HeartbeatsStore", () => { + const serviceControlStore = useServiceControlStore(); + const endpointSettingsStore = useEndpointSettingsStore(); + + const sortByInstances = ref({ + property: ColumnNames.Name, + isAscending: true, + }); + + const defaultTrackingInstancesValue = ref(endpointSettingsStore.defaultEndpointSettingsValue.track_instances); + const endpointFilterString = ref(""); + const itemsPerPage = ref(20); + const endpointInstances = ref([]); + const settings = ref([]); + const sortedEndpoints = computed(() => + mapEndpointsToLogical(endpointInstances.value, settings.value).sort(getSortFunction(columnSortings.get(sortByInstances.value.property), sortByInstances.value.isAscending ? SortDirection.Ascending : SortDirection.Descending)) + ); + const filteredEndpoints = computed(() => sortedEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase()))); + const healthyEndpoints = computed(() => + sortedEndpoints.value.filter(function (endpoint) { + return endpoint.monitor_heartbeat && endpoint.heartbeat_information?.reported_status === EndpointStatus.Alive && ((endpoint.track_instances && endpoint.down_count === 0) || (!endpoint.track_instances && endpoint.alive_count > 0)); + }) + ); + const filteredHealthyEndpoints = computed(() => healthyEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase()))); + const unhealthyEndpoints = computed(() => + sortedEndpoints.value.filter(function (endpoint) { + return !endpoint.monitor_heartbeat || endpoint.heartbeat_information?.reported_status === EndpointStatus.Dead || (endpoint.track_instances && endpoint.down_count > 0) || (!endpoint.track_instances && endpoint.alive_count === 0); + }) + ); + const filteredUnhealthyEndpoints = computed(() => unhealthyEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase()))); + const failedHeartbeatsCount = computed(() => { + let counter = 0; + + for (const logical of sortedEndpoints.value) { + const endpointInstancesThatAreNotMuted = endpointInstances.value.filter((instance) => instance.name === logical.name && instance.monitor_heartbeat); + + if (logical.track_instances) { + if (endpointInstancesThatAreNotMuted.some((instance) => instance.heartbeat_information?.reported_status !== EndpointStatus.Alive)) { + counter++; + } + } else { + if (!endpointInstancesThatAreNotMuted.some((instance) => instance.heartbeat_information?.reported_status === EndpointStatus.Alive)) { + counter++; + } + } + } + + return counter; + }); + watch(endpointFilterString, (newValue) => { + setEndpointFilterString(newValue); + }); + + const refresh = async () => { + try { + const [[, data], data2] = await Promise.all([serviceControlStore.fetchTypedFromServiceControl("endpoints"), endpointSettingsStore.getEndpointSettings()]); + endpointInstances.value = data; + settings.value = data2; + defaultTrackingInstancesValue.value = data2.find((value) => value.name === "")!.track_instances; + } catch (e) { + endpointInstances.value = settings.value = []; + throw e; + } + }; + + async function updateEndpointSettings(endpoints: Pick[]) { + await Promise.all(endpoints.map((endpoint) => serviceControlStore.patchToServiceControl(`endpointssettings/${endpoint.name}`, { track_instances: !endpoint.track_instances }))); + await refresh(); + } + + function instanceDisplayText(endpoint: LogicalEndpoint) { + const total = endpoint.alive_count + endpoint.down_count; + + if (endpoint.track_instances) { + return `${endpoint.alive_count}/${total}`; + } else { + return `${endpoint.alive_count}`; + } + } + + function setEndpointFilterString(filter: string) { + endpointFilterString.value = filter; + } + + function setItemsPerPage(value: number) { + itemsPerPage.value = value; + } + + function mapEndpointsToLogical(endpoints: EndpointsView[], settings: EndpointSettings[]): LogicalEndpoint[] { + const logicalNames = [...new Set(endpoints.map((endpoint) => endpoint.name))]; + + return logicalNames.map((endpointName) => { + const endpointInstances = endpoints.filter((endpoint) => endpoint.name === endpointName); + const aliveList = endpointInstances.filter((endpoint) => endpoint.heartbeat_information && endpoint.heartbeat_information.reported_status === EndpointStatus.Alive); + + const aliveCount = aliveList.length; + const downCount = endpointInstances.length - aliveCount; + + return { + id: endpointName, //need this to be consistent between data refreshes for UI purposes, so using name rather than an id from one of the instances + name: endpointName, + alive_count: aliveCount, + down_count: downCount, + muted_count: endpointInstances.filter((endpoint) => !endpoint.monitor_heartbeat).length, + track_instances: settings.find((value) => value.name === endpointName)?.track_instances ?? defaultTrackingInstancesValue.value, + heartbeat_information: { + reported_status: aliveCount > 0 ? EndpointStatus.Alive : EndpointStatus.Dead, + last_report_at: endpointInstances.reduce((previousMax: EndpointsView | null, endpoint: EndpointsView) => { + if (endpoint.heartbeat_information) { + if (previousMax) { + return moment.utc(endpoint.heartbeat_information.last_report_at) > moment.utc(previousMax.heartbeat_information!.last_report_at) ? endpoint : previousMax; + } + return endpoint; + } + return previousMax; + }, null)?.heartbeat_information?.last_report_at, + }, + monitor_heartbeat: endpointInstances.every((endpoint) => endpoint.monitor_heartbeat), + } as LogicalEndpoint; + }); + } + + return { + refresh, + defaultTrackingInstancesValue, + updateEndpointSettings, + sortedEndpoints, + filteredEndpoints, + endpointInstances, + healthyEndpoints, + filteredHealthyEndpoints, + unhealthyEndpoints, + filteredUnhealthyEndpoints, + failedHeartbeatsCount, + instanceDisplayText, + sortByInstances, + endpointFilterString, + itemsPerPage, + setItemsPerPage, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useHeartbeatsStore, import.meta.hot)); +} + +export type HeartbeatsStore = ReturnType; diff --git a/frontend/src/stores/LicenseStore.ts b/frontend/src/stores/LicenseStore.ts new file mode 100644 index 0000000000..296ac3f251 --- /dev/null +++ b/frontend/src/stores/LicenseStore.ts @@ -0,0 +1,184 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { computed, reactive, ref } from "vue"; +import { useServiceControlStore } from "./ServiceControlStore"; +import LicenseInfo, { LicenseStatus } from "@/resources/LicenseInfo"; +import { LicenseWarningLevel } from "@/composables/LicenseStatus"; +import { useGetDayDiffFromToday } from "@/composables/formatter"; + +export const useLicenseStore = defineStore("LicenseStore", () => { + const serviceControlStore = useServiceControlStore(); + + const license = reactive({ + edition: "", + expiration_date: "", + upgrade_protection_expiration: "", + license_type: "", + instance_name: "", + trial_license: true, + registered_to: "", + status: "", + license_status: LicenseStatus.Unavailable, + license_extension_url: "", + }); + + const licenseStatus = reactive({ + isSubscriptionLicense: false, + isUpgradeProtectionLicense: false, + isTrialLicense: false, + isPlatformExpired: false, + isPlatformTrialExpired: false, + isPlatformTrialExpiring: false, + isInvalidDueToUpgradeProtectionExpired: false, + isValidWithExpiredUpgradeProtection: false, + isValidWithExpiringUpgradeProtection: false, + isExpired: false, + upgradeDaysLeft: "", + subscriptionDaysLeft: "", + trialDaysLeft: "", + warningLevel: LicenseWarningLevel.None, + licenseExtensionUrl: "", + }); + + const loading = ref(false); + + // Computed properties for license formatting + const licenseEdition = computed(() => { + return `${license.license_type}${license.edition ? `, ${license.edition}` : ""}`; + }); + + const formattedInstanceName = computed(() => { + return license.instance_name || "Upgrade ServiceControl to v3.4.0+ to see more information about this license"; + }); + + const formattedExpirationDate = computed(() => { + return license.expiration_date ? new Date(license.expiration_date.replace("Z", "")).toLocaleDateString() : ""; + }); + + const formattedUpgradeProtectionExpiration = computed(() => { + return license.upgrade_protection_expiration ? new Date(license.upgrade_protection_expiration.replace("Z", "")).toLocaleDateString() : ""; + }); + + async function refresh() { + loading.value = true; + try { + const lic = await getLicense(); + if (lic === null) { + return; + } + license.license_type = lic.license_type; + license.expiration_date = lic.expiration_date; + license.trial_license = lic.trial_license; + license.edition = lic.edition; + license.license_status = lic.license_status; + license.instance_name = lic.instance_name; + license.registered_to = lic.registered_to; + license.status = lic.status; + license.license_extension_url = lic.license_extension_url ?? "https://particular.net/extend-your-trial?p=servicepulse"; + license.upgrade_protection_expiration = lic.upgrade_protection_expiration; + + licenseStatus.isSubscriptionLicense = isSubscriptionLicense(); + licenseStatus.isUpgradeProtectionLicense = isUpgradeProtectionLicense(); + licenseStatus.isTrialLicense = license.trial_license; + licenseStatus.isPlatformExpired = license.license_status === LicenseStatus.InvalidDueToExpiredSubscription; + licenseStatus.isPlatformTrialExpiring = license.license_status === LicenseStatus.ValidWithExpiringTrial; + licenseStatus.isPlatformTrialExpired = license.license_status === LicenseStatus.InvalidDueToExpiredTrial; + licenseStatus.isInvalidDueToUpgradeProtectionExpired = license.license_status === LicenseStatus.InvalidDueToExpiredUpgradeProtection; + licenseStatus.isValidWithExpiredUpgradeProtection = license.license_status === LicenseStatus.ValidWithExpiredUpgradeProtection; + licenseStatus.isValidWithExpiringUpgradeProtection = license.license_status === LicenseStatus.ValidWithExpiringUpgradeProtection; + licenseStatus.upgradeDaysLeft = getUpgradeDaysLeft(); + licenseStatus.subscriptionDaysLeft = getSubscriptionDaysLeft(); + licenseStatus.trialDaysLeft = getTrialDaysLeft(); + licenseStatus.warningLevel = getLicenseWarningLevel(); + licenseStatus.isExpired = licenseStatus.isPlatformExpired || licenseStatus.isPlatformTrialExpired || licenseStatus.isInvalidDueToUpgradeProtectionExpired; + licenseStatus.licenseExtensionUrl = license.license_extension_url; + } finally { + loading.value = false; + } + } + + async function getLicense() { + try { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl("license?refresh=true&clientName=servicepulse"); + return data; + } catch (err) { + console.error("Error fetching license information", err); + return null; + } + } + + function getLicenseWarningLevel() { + switch (license.license_status) { + case LicenseStatus.InvalidDueToExpiredTrial: + case LicenseStatus.InvalidDueToExpiredSubscription: + case LicenseStatus.InvalidDueToExpiredUpgradeProtection: + return LicenseWarningLevel.Danger; + case LicenseStatus.ValidWithExpiringUpgradeProtection: + case LicenseStatus.ValidWithExpiringTrial: + case LicenseStatus.ValidWithExpiredUpgradeProtection: + case LicenseStatus.ValidWithExpiringSubscription: + return LicenseWarningLevel.Warning; + default: + return LicenseWarningLevel.None; + } + } + + function isUpgradeProtectionLicense() { + return license.upgrade_protection_expiration !== undefined && license.upgrade_protection_expiration !== ""; + } + + function isSubscriptionLicense() { + return license.expiration_date !== undefined && license.expiration_date !== "" && !license.trial_license; + } + + function getSubscriptionDaysLeft() { + if (license.license_status === LicenseStatus.InvalidDueToExpiredSubscription) return " - expired"; + + const isExpiring = license.license_status === LicenseStatus.ValidWithExpiringSubscription; + return getExpiringText(isExpiring, license.expiration_date); + } + + function getTrialDaysLeft() { + if (license.license_status === LicenseStatus.InvalidDueToExpiredTrial) return " - expired"; + + const isExpiring = license.license_status === LicenseStatus.ValidWithExpiringTrial; + return getExpiringText(isExpiring, license.expiration_date); + } + + function getExpiringText(isExpiring: boolean, expirationDate: string) { + const expiringIn = useGetDayDiffFromToday(expirationDate); + if (isNaN(expiringIn)) return ""; + if (!isExpiring) return ` - ${expiringIn} days left`; + if (expiringIn === 0) return " - expiring today"; + if (expiringIn === 1) return " - expiring tomorrow"; + return ` - expiring in ${expiringIn} days`; + } + + function getUpgradeDaysLeft() { + if (license.license_status === LicenseStatus.InvalidDueToExpiredUpgradeProtection) return " - expired"; + + const expiringIn = useGetDayDiffFromToday(license.upgrade_protection_expiration); + //TODO: can this be unified with the function above? Text is currently similar but not identical. + if (isNaN(expiringIn)) return ""; + if (expiringIn <= 0) return " - expired"; + if (expiringIn === 0) return " - expiring today"; + if (expiringIn === 1) return " - 1 day left"; + return " - " + expiringIn + " days left"; + } + + return { + refresh, + license, + licenseStatus, + loading, + licenseEdition, + formattedInstanceName, + formattedExpirationDate, + formattedUpgradeProtectionExpiration, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useLicenseStore, import.meta.hot)); +} + +export type LicenseStore = ReturnType; diff --git a/frontend/src/stores/MessageStore.ts b/frontend/src/stores/MessageStore.ts new file mode 100644 index 0000000000..9c8aa06454 --- /dev/null +++ b/frontend/src/stores/MessageStore.ts @@ -0,0 +1,381 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, reactive, Ref, ref } from "vue"; +import Header from "@/resources/Header"; +import type EndpointDetails from "@/resources/EndpointDetails"; +import { FailedMessage, ExceptionDetails, FailedMessageStatus } from "@/resources/FailedMessage"; +import { useEditRetryStore } from "@/stores/EditRetryStore"; +import { useConfigurationStore } from "@/stores/ConfigurationStore"; +import Message, { MessageStatus } from "@/resources/Message"; +import moment from "moment/moment"; +import { parse, stringify } from "lossless-json"; +import xmlFormat from "xml-formatter"; +import { DataContainer } from "./DataContainer"; +import { useServiceControlStore } from "./ServiceControlStore"; +import EditRetryResponse from "@/resources/EditRetryResponse"; +import { EditedMessage } from "@/resources/EditMessage"; +import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh"; + +interface Model { + id?: string; + message_id?: string; + conversation_id?: string; + message_type?: string; + sending_endpoint?: EndpointDetails; + receiving_endpoint?: EndpointDetails; + body_url?: string; + status?: MessageStatus; + processed_at?: string; + failure_status: Partial<{ + retried: boolean; + archiving: boolean; + restoring: boolean; + archived: boolean; + resolved: boolean; + delete_soon: boolean; + retry_in_progress: boolean; + delete_in_progress: boolean; + restore_in_progress: boolean; + submitted_for_retrial: boolean; + }>; + failure_metadata: Partial<{ + exception: ExceptionDetails; + number_of_processing_attempts: number; + status: FailedMessageStatus; + time_of_failure: string; + last_modified: string; + edited: boolean; + edit_of: string; + deleted_in: string; + redirect: boolean; + }>; + dialog_status: Partial<{ + show_delete_confirm: boolean; + show_restore_confirm: boolean; + show_retry_confirm: boolean; + show_edit_retry_modal: boolean; + }>; + invoked_saga: Partial<{ + has_saga: boolean; + saga_id: string; + saga_type: string; + }>; +} + +export const useMessageStore = defineStore("MessageStore", () => { + const headers = ref>({ data: [] }); + const body = ref>({ data: {} }); + const state = reactive>({ data: { failure_metadata: {}, failure_status: {}, dialog_status: {}, invoked_saga: {} } }); + const editRetryResponse = ref(null); + let bodyLoadedId = ""; + let conversationLoadedId = ""; + const conversationData = ref>({ data: [] }); + const editRetryStore = useEditRetryStore(); + const configStore = useConfigurationStore(); + const serviceControlStore = useServiceControlStore(); + const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh(); + const areSimpleHeadersSupported = environmentStore.serviceControlIsGreaterThan("5.2.0"); + + const { config: edit_and_retry_config } = storeToRefs(editRetryStore); + const { configuration } = storeToRefs(configStore); + const error_retention_period = computed(() => moment.duration(configuration.value?.data_retention?.error_retention_period).asHours()); + + // eslint-disable-next-line promise/catch-or-return,promise/prefer-await-to-then,promise/valid-params + Promise.all([editRetryStore.loadConfig(), configStore.refresh()]).then(); + + function reset() { + state.data = { failure_metadata: {}, failure_status: {}, dialog_status: {}, invoked_saga: {} }; + headers.value.data = []; + body.value.data = { value: "", content_type: "" }; + bodyLoadedId = ""; + conversationLoadedId = ""; + conversationData.value.data = []; + editRetryResponse.value = null; + } + + async function loadFailedMessage(id: string) { + state.loading = true; + state.failed_to_load = false; + state.not_found = false; + + try { + const response = await serviceControlStore.fetchFromServiceControl(`errors/last/${id}`); + if (response.status === 404) { + state.not_found = true; + return; + } else if (!response.ok) { + state.failed_to_load = true; + return; + } + + const message = (await response.json()) as FailedMessage; + state.data.message_id = message.message_id; + state.data.message_type = message.message_type; + state.data.sending_endpoint = message.sending_endpoint; + state.data.receiving_endpoint = message.receiving_endpoint; + state.data.failure_status.archived = message.status === FailedMessageStatus.Archived; + state.data.failure_status.resolved = message.status === FailedMessageStatus.Resolved; + state.data.failure_status.retried = message.status === FailedMessageStatus.RetryIssued; + state.data.failure_metadata.last_modified = message.last_modified; + state.data.failure_metadata.exception = message.exception; + state.data.failure_metadata.time_of_failure = message.time_of_failure; + state.data.failure_metadata.edited = message.edited; + state.data.failure_metadata.edit_of = message.edit_of; + state.data.failure_metadata.number_of_processing_attempts = message.number_of_processing_attempts; + state.data.failure_metadata.status = message.status; + + await loadMessage(state.data.message_id, id); + } catch { + state.failed_to_load = true; + return; + } finally { + state.loading = false; + } + + const countdown = moment(state.data.failure_metadata.last_modified).add(error_retention_period.value, "hours"); + state.data.failure_status.delete_soon = countdown < moment(); + state.data.failure_metadata.deleted_in = countdown.format(); + } + + async function loadMessage(messageId: string, id: string) { + state.data.id = id; + state.loading = headers.value.loading = true; + state.failed_to_load = headers.value.failed_to_load = false; + state.not_found = headers.value.not_found = false; + + try { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`messages/search/${messageId}`); + + const message = data.find((value) => value.id === id); + + if (!message) { + state.not_found = headers.value.not_found = true; + return; + } + const invokedSaga = message?.invoked_sagas?.[0]; + state.data.message_id = message.message_id; + state.data.conversation_id = message.conversation_id; + state.data.body_url = message.body_url; + state.data.message_type = message.message_type; + state.data.sending_endpoint = message.sending_endpoint; + state.data.receiving_endpoint = message.receiving_endpoint; + state.data.status = message.status; + state.data.processed_at = message.processed_at; + if (invokedSaga) { + state.data.invoked_saga.has_saga = true; + state.data.invoked_saga.saga_id = invokedSaga.saga_id; + state.data.invoked_saga.saga_type = invokedSaga.saga_type; + } + headers.value.data = message.headers; + } catch { + state.failed_to_load = headers.value.failed_to_load = true; + } finally { + state.loading = headers.value.loading = false; + } + } + + async function loadConversation(conversationId: string) { + if (conversationId === conversationLoadedId) { + return; + } + + conversationLoadedId = conversationId; + conversationData.value.loading = true; + try { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`conversations/${conversationId}`); + + conversationData.value.data = data; + } catch { + conversationData.value.failed_to_load = true; + } finally { + conversationData.value.loading = false; + } + } + + async function downloadBody() { + if (!state.data.body_url) { + return; + } + if (state.data.id === bodyLoadedId) { + return; + } + + bodyLoadedId = state.data.id ?? ""; + body.value.loading = true; + body.value.failed_to_load = false; + + try { + const response = await serviceControlStore.fetchFromServiceControl(state.data.body_url.substring(1)); + if (response.status === 404) { + body.value.not_found = true; + + return; + } + + if (response.status === 204) { + body.value.data.no_content = true; + + return; + } + + const contentType = response.headers.get("content-type"); + body.value.data.content_type = contentType ?? "text/plain"; + body.value.data.value = await response.text(); + + if (contentType === "application/json") { + body.value.data.value = stringify(parse(body.value.data.value), null, 2) ?? body.value.data.value; + } + if (contentType === "text/xml") { + body.value.data.value = xmlFormat(body.value.data.value, { indentation: " ", collapseContent: true }); + } + } catch { + body.value.failed_to_load = true; + } finally { + body.value.loading = false; + } + } + + async function archiveMessage() { + if (state.data.id) { + const response = await serviceControlStore.patchToServiceControl("errors/archive/", [state.data.id]); + if (!response.ok) { + throw new Error(response.statusText); + } + state.data.failure_status.archiving = true; + } + } + + async function restoreMessage() { + if (state.data.id) { + const response = await serviceControlStore.patchToServiceControl("errors/unarchive/", [state.data.id]); + if (!response.ok) { + throw new Error(response.statusText); + } + state.data.failure_status.restoring = true; + } + } + + async function retryMessage() { + if (state.data.id) { + await retryMessages([state.data.id]); + state.data.failure_status.retry_in_progress = true; + } + } + + async function retryMessages(ids: string[]) { + const response = await serviceControlStore.postToServiceControl("errors/retry", ids); + if (!response.ok) { + throw new Error(response.statusText); + } + } + + async function retryEditedMessage(id: string, editedMessage: Ref) { + const payload = { + message_body: editedMessage.value.messageBody, + message_headers: areSimpleHeadersSupported.value + ? editedMessage.value.headers.reduce( + (result, header) => { + const { key, value } = header as { key: string; value: string }; + result[key] = value; + return result; + }, + {} as { [key: string]: string } + ) + : editedMessage.value.headers, + }; + const response = await serviceControlStore.postToServiceControl(`edit/${id}`, payload); + if (!response.ok) { + throw new Error(response.statusText); + } + + //older versions of SC return no payload about the edit result + const bodyText = await response.text(); + if (bodyText === "") { + editRetryResponse.value = { + edit_ignored: false, + }; + } else { + editRetryResponse.value = parse(bodyText) as EditRetryResponse; + } + } + + async function pollForNextUpdate(status: FailedMessageStatus) { + if (!state.data.id) { + return; + } + + let maxRetries = 60; // We try for 60 seconds + + do { + // eslint-disable-next-line no-await-in-loop + await new Promise((resolve) => setTimeout(resolve, 1000)); + // eslint-disable-next-line no-await-in-loop + const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`errors/last/${state.data.id}`); + if (status === data.status) { + break; + } + } while (maxRetries-- > 0); + + if (maxRetries === 0) { + // It never changed so no need to refresh UI + return; + } + + const id = state.data.id; + reset(); + await loadFailedMessage(id); + } + + async function exportMessage() { + if (state.failed_to_load || state.not_found) { + return ""; + } + + let exportString = ""; + if (state.data.failure_metadata.exception?.stack_trace !== undefined) { + exportString += "STACKTRACE\n"; + exportString += state.data.failure_metadata.exception.stack_trace; + exportString += "\n\n"; + } + + exportString += "HEADERS"; + for (let i = 0; i < headers.value.data.length; i++) { + exportString += `\n${headers.value.data[i].key}: ${headers.value.data[i].value}`; + } + + await downloadBody(); + + if (!(body.value.not_found || body.value.failed_to_load || body.value.data.no_content)) { + exportString += "\n\nMESSAGE BODY\n"; + exportString += body.value.data.value; + } + + return exportString; + } + + return { + headers, + body, + state, + edit_and_retry_config, + editRetryResponse, + reset, + loadMessage, + loadFailedMessage, + loadConversation, + downloadBody, + exportMessage, + archiveMessage, + restoreMessage, + retryMessage, + retryMessages, + conversationData, + pollForNextUpdate, + retryEditedMessage, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useMessageStore, import.meta.hot)); +} + +export type MessageStore = ReturnType; diff --git a/frontend/src/stores/MonitoringEndpointDetailsStore.ts b/frontend/src/stores/MonitoringEndpointDetailsStore.ts new file mode 100644 index 0000000000..866fb79241 --- /dev/null +++ b/frontend/src/stores/MonitoringEndpointDetailsStore.ts @@ -0,0 +1,129 @@ +import { defineStore, acceptHMRUpdate } from "pinia"; +import { ref } from "vue"; +import MessageTypes from "@/components/monitoring/messageTypes"; +import { formatGraphDuration } from "../components/monitoring/formatGraph"; +import { type ExtendedEndpointDetails, type ExtendedEndpointInstance, type MessageType, type EndpointDetails, type EndpointDetailsError, isError } from "@/resources/MonitoringEndpoint"; +import { useMonitoringHistoryPeriodStore } from "./MonitoringHistoryPeriodStore"; +import createMessageGroupClient from "../components/failedmessages/messageGroupClient"; +import type GroupOperation from "@/resources/GroupOperation"; +import { emptyEndpointDetails } from "@/components/monitoring/endpoints"; +import { useMemoize } from "@vueuse/core"; +import useConnectionsAndStatsAutoRefresh from "@/composables/useConnectionsAndStatsAutoRefresh"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useMonitoringEndpointDetailsStore = defineStore("MonitoringEndpointDetailsStore", () => { + const historyPeriodStore = useMonitoringHistoryPeriodStore(); + const { store: connectionStore } = useConnectionsAndStatsAutoRefresh(); + const serviceControlStore = useServiceControlStore(); + const messageGroupClient = createMessageGroupClient(); + + const getMemoisedEndpointDetails = useMemoize((endpointName: string, historyPeriod = 1) => { + const data = ref(null); + return { + data, + refresh: async () => { + if (serviceControlStore.isMonitoringEnabled) { + try { + const [, details] = await serviceControlStore.fetchTypedFromMonitoring(`${`monitored-endpoints`}/${endpointName}?history=${historyPeriod}`); + data.value = details!; + } catch (error) { + console.error(error); + if (error instanceof Error) { + data.value = { error: error.message } as EndpointDetailsError; + } + } + } + }, + }; + }); + + const endpointName = ref(""); + const endpointDetails = ref(emptyEndpointDetails()); + const endpointError = ref(null); + const messageTypes = ref(null); + const messageTypesAvailable = ref(false); + const messageTypesUpdatedSet = ref([]); + const negativeCriticalTimeIsPresent = ref(false); + + async function getEndpointDetails(name: string) { + const { data, refresh } = getMemoisedEndpointDetails(name, historyPeriodStore.historyPeriod.pVal); + if (!connectionStore.monitoringConnectionState.unableToConnect) await refresh(); + + if (data.value == null || isError(data.value)) { + endpointDetails.value.instances.forEach((item) => (item.isScMonitoringDisconnected = true)); + endpointDetails.value.isScMonitoringDisconnected = true; + endpointError.value = data.value; + } else { + endpointError.value = null; + const returnedEndpointDetails = data.value as EndpointDetails; + endpointDetails.value.isScMonitoringDisconnected = false; + + const instances = await Promise.all( + returnedEndpointDetails.instances.map(async (instance): Promise => { + //get error count by instance id + const { serviceControlId, errorCount } = await getFailureDetails("Endpoint Instance", instance.id); + return { ...instance, serviceControlId, errorCount, isScMonitoringDisconnected: false }; + }) + ); + instances.sort((a, b) => a.id.localeCompare(b.id)); + + endpointDetails.value.isStale = instances.every((instance) => instance.isStale); + + if (name === endpointName.value && endpointDetails.value.messageTypes.length > 0 && endpointDetails.value.messageTypes.length !== returnedEndpointDetails.messageTypes.length) { + const { messageTypes: returnedMessageTypes, ...dataWithoutMessageTypes } = returnedEndpointDetails; + endpointDetails.value = { ...endpointDetails.value, ...dataWithoutMessageTypes, instances }; + + messageTypesAvailable.value = true; + messageTypesUpdatedSet.value = returnedMessageTypes; + } else { + endpointDetails.value = { ...endpointDetails.value, ...data.value, instances }; + } + + endpointName.value = name; + + messageTypes.value = new MessageTypes(endpointDetails.value.messageTypes); + negativeCriticalTimeIsPresent.value = endpointDetails.value.instances.some((instance) => parseInt(formatGraphDuration(instance.metrics.criticalTime).value) < 0); + } + + //get error count by endpoint name + const { serviceControlId, errorCount } = await getFailureDetails("Endpoint Name", endpointName.value); + endpointDetails.value.serviceControlId = serviceControlId; + endpointDetails.value.errorCount = errorCount; + } + + async function getFailureDetails(classifier: string, classifierFilter: string) { + const failedMessages: GroupOperation[] = await messageGroupClient.getExceptionGroupsForEndpoint(classifier, classifierFilter); + const groupOperation: GroupOperation | undefined = failedMessages[0]; + return { + serviceControlId: groupOperation?.id ?? "", + errorCount: groupOperation?.count ?? 0, + }; + } + + function updateMessageTypes() { + if (messageTypesAvailable.value) { + messageTypesAvailable.value = false; + endpointDetails.value.messageTypes = messageTypesUpdatedSet.value; + messageTypesUpdatedSet.value = []; + messageTypes.value = new MessageTypes(endpointDetails.value.messageTypes); + } + } + + return { + endpointName, + endpointDetails, + endpointError, + messageTypes, + messageTypesAvailable, + messageTypesUpdatedSet, + negativeCriticalTimeIsPresent, + updateMessageTypes, + getEndpointDetails, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useMonitoringEndpointDetailsStore, import.meta.hot)); +} + +export type MonitoringEndpointDetailsStore = ReturnType; diff --git a/frontend/src/stores/MonitoringHistoryPeriodStore.ts b/frontend/src/stores/MonitoringHistoryPeriodStore.ts new file mode 100644 index 0000000000..d186961ca6 --- /dev/null +++ b/frontend/src/stores/MonitoringHistoryPeriodStore.ts @@ -0,0 +1,58 @@ +import { defineStore, acceptHMRUpdate } from "pinia"; +import { ref } from "vue"; +import { useRoute, useRouter, type RouteLocationNormalizedLoaded } from "vue-router"; +import { useCookies } from "vue3-cookies"; + +export interface MonitoringHistoryPeriod { + pVal: number; + text: string; + refreshIntervalVal: number; + refreshIntervalText: string; +} + +export const useMonitoringHistoryPeriodStore = defineStore("MonitoringHistoryPeriodStore", () => { + const { cookies } = useCookies(); + const route = useRoute(); + const router = useRouter(); + + const periods: MonitoringHistoryPeriod[] = [ + { pVal: 1, text: "1m", refreshIntervalVal: 1 * 1000, refreshIntervalText: "Show data from the last minute. Refreshes every 1 second" }, + { pVal: 5, text: "5m", refreshIntervalVal: 5 * 1000, refreshIntervalText: "Show data from the last 5 minutes. Refreshes every 5 seconds" }, + { pVal: 10, text: "10m", refreshIntervalVal: 10 * 1000, refreshIntervalText: "Show data from the last 10 minutes. Refreshes every 10 seconds" }, + { pVal: 15, text: "15m", refreshIntervalVal: 15 * 1000, refreshIntervalText: "Show data from the last 15 minutes. Refreshes every 15 seconds" }, + { pVal: 30, text: "30m", refreshIntervalVal: 30 * 1000, refreshIntervalText: "Show data from the last 30 minutes. Refreshes every 30 seconds" }, + { pVal: 60, text: "1h", refreshIntervalVal: 60 * 1000, refreshIntervalText: "Show data from the last hour. Refreshes every 1 minute" }, + ]; + + function getHistoryPeriod(route?: RouteLocationNormalizedLoaded, requestedPeriod?: string) { + const period = requestedPeriod ?? (route?.query?.historyPeriod?.toString() || cookies.get("history_period")); + + return allPeriods.value.find((index) => index.pVal === parseInt(period)) ?? periods[0]; + } + + const allPeriods = ref(periods); + + const historyPeriod = ref(getHistoryPeriod(route)); + + /** + * @param {String} requestedPeriod - The history period value + * @description Sets the history period based on, in order of importance, a passed parameter, the url query string, saved cookie, or default value + */ + async function setHistoryPeriod(requestedPeriod?: string) { + historyPeriod.value = getHistoryPeriod(route, requestedPeriod); + cookies.set("history_period", historyPeriod.value.pVal.toString()); + await router.replace({ query: { ...route.query, historyPeriod: historyPeriod.value.pVal } }); + } + + return { + allPeriods, + historyPeriod, + setHistoryPeriod, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useMonitoringHistoryPeriodStore, import.meta.hot)); +} + +export type MonitoringHistoryPeriodStore = ReturnType; diff --git a/frontend/src/stores/MonitoringStore.ts b/frontend/src/stores/MonitoringStore.ts new file mode 100644 index 0000000000..1890b5bdb8 --- /dev/null +++ b/frontend/src/stores/MonitoringStore.ts @@ -0,0 +1,228 @@ +import { defineStore, acceptHMRUpdate } from "pinia"; +import { computed, ref, watch } from "vue"; +import { useRoute, useRouter } from "vue-router"; +import { useMonitoringHistoryPeriodStore } from "./MonitoringHistoryPeriodStore"; +import type { EndpointGroup, Endpoint, GroupedEndpoint } from "@/resources/MonitoringEndpoint"; +import type { SortInfo } from "@/components/SortInfo"; +import useConnectionsAndStatsAutoRefresh from "@/composables/useConnectionsAndStatsAutoRefresh"; +import { useServiceControlStore } from "./ServiceControlStore"; +import GroupOperation from "@/resources/GroupOperation"; + +export const useMonitoringStore = defineStore("MonitoringStore", () => { + const historyPeriodStore = useMonitoringHistoryPeriodStore(); + + const route = useRoute(); + const router = useRouter(); + const { store: connectionStore } = useConnectionsAndStatsAutoRefresh(); + const serviceControlStore = useServiceControlStore(); + + //STORE STATE CONSTANTS + const grouping = ref({ + groupedEndpoints: [] as EndpointGroup[], + groupSegments: 0, + selectedGrouping: 0, + }); + + const sortBy = ref({ + property: "name", + isAscending: true, + }); + + const endpointList = ref([]); + const disconnectedEndpointCount = ref(0); + const filterString = ref(""); + const endpointListCount = computed(() => endpointList.value.length); + const endpointListIsEmpty = computed(() => endpointListCount.value === 0); + const endpointListIsGrouped = computed(() => grouping.value.selectedGrouping !== 0); + const getEndpointList = computed(() => (filterString.value ? endpointList.value.filter((endpoint) => endpoint.name.toLowerCase().includes(filterString.value.toLowerCase())) : endpointList.value)); + + watch(sortBy, async () => await updateEndpointList(), { deep: true }); + watch(filterString, async (newValue) => { + await updateFilterString(newValue); + }); + + //STORE ACTIONS + async function updateFilterString(filter: string | null = null) { + filterString.value = filter ?? route.query.filter?.toString() ?? ""; + + if (filterString.value === "") { + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const { filter, ...withoutFilter } = route.query; + await router.replace({ query: withoutFilter }); // Update or add filter query parameter to url + } else { + await router.replace({ query: { ...route.query, filter: filterString.value } }); // Update or add filter query parameter to url + } + updateGroupedEndpoints(); + } + + async function updateEndpointList() { + if (connectionStore.monitoringConnectionState.unableToConnect) { + endpointList.value = []; + } else { + endpointList.value = await getAllMonitoredEndpoints(); + } + if (!endpointListIsEmpty.value) { + updateGroupSegments(); + if (endpointListIsGrouped.value) { + updateGroupedEndpoints(); + } else { + sortEndpointList(); + } + } + } + + async function getAllMonitoredEndpoints() { + let endpoints: Endpoint[] = []; + if (serviceControlStore.isMonitoringEnabled) { + try { + const [, data] = await serviceControlStore.fetchTypedFromMonitoring(`monitored-endpoints?history=${historyPeriodStore.historyPeriod.pVal}`); + endpoints = data ?? []; + const [, exceptionGroups] = await serviceControlStore.fetchTypedFromServiceControl(`recoverability/groups/Endpoint Name`); + + //Squash and add to existing monitored endpoints + if (exceptionGroups.length > 0) { + //sort the exceptionGroups array by name - case sensitive + exceptionGroups.sort((a, b) => (a.title > b.title ? 1 : a.title < b.title ? -1 : 0)); //desc + exceptionGroups + .filter((exceptionGroup) => exceptionGroup.operation_status !== "ArchiveCompleted") + .forEach((exceptionGroup) => { + const monitoredEndpoint = endpoints.find((item) => item.name === exceptionGroup.title); + if (monitoredEndpoint) { + monitoredEndpoint.serviceControlId = exceptionGroup.id; + monitoredEndpoint.errorCount = exceptionGroup.count; + } + }); + } + } catch (error) { + console.error(error); + } + } + return endpoints; + } + + function updateSelectedGrouping(groupSize: number) { + grouping.value.selectedGrouping = groupSize; + if (groupSize === 0) { + sortEndpointList(); + } else { + updateGroupedEndpoints(); + } + } + + function updateGroupSegments() { + grouping.value.groupSegments = endpointList.value.reduce((acc, cur) => Math.max(acc, cur.name.split(".").length - 1), 0); + } + + function updateGroupedEndpoints() { + const groups = new Map(); + for (const element of getEndpointList.value) { + const newGrouping = parseEndpoint(element, grouping.value.selectedGrouping); + + const resultGroup = groups.get(newGrouping.groupName) ?? { + group: newGrouping.groupName, + endpoints: [], + }; + resultGroup.endpoints.push(newGrouping); + groups.set(newGrouping.groupName, resultGroup); + } + + grouping.value.groupedEndpoints = [...groups.values()]; + sortGroupedEndpointList(); + } + + function parseEndpoint(endpoint: Endpoint, maxGroupSegments: number) { + if (maxGroupSegments === 0) { + return { + groupName: "Ungrouped", + shortName: endpoint.name, + endpoint: endpoint, + }; + } + + const segments = endpoint.name.split("."); + const groupSegments = segments.slice(0, maxGroupSegments); + const endpointSegments = segments.slice(maxGroupSegments); + if (endpointSegments.length === 0) { + // the endpoint's name is shorter than the group size + return parseEndpoint(endpoint, maxGroupSegments - 1); + } + + return { + groupName: groupSegments.join("."), + shortName: endpointSegments.join("."), + endpoint, + } as GroupedEndpoint; + } + + function sortEndpointList() { + const comparator = (() => { + if (sortBy.value.property === "name") { + return (a: Endpoint, b: Endpoint) => (sortBy.value.isAscending ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name)); + } else { + return (a: Endpoint, b: Endpoint) => { + const propertyA = a.metrics[sortBy.value.property].average; + const propertyB = b.metrics[sortBy.value.property].average; + + return sortBy.value.isAscending ? propertyA - propertyB : propertyB - propertyA; + }; + } + })(); + + endpointList.value.sort(comparator); + } + + function sortGroupedEndpointList() { + let comparator; + const endpointShortNameComparator = (a: GroupedEndpoint, b: GroupedEndpoint) => { + return sortBy.value.isAscending ? a.shortName.localeCompare(b.shortName) : b.shortName.localeCompare(a.shortName); + }; + + if (sortBy.value.property === "name") { + comparator = (a: EndpointGroup, b: EndpointGroup) => { + const groupNameA = a.group; + const groupNameB = b.group; + const endpointListGroupA = a.endpoints; + const endpointListGroupB = b.endpoints; + + // Sort each group's endpoints before sorting the group name + endpointListGroupA.sort(endpointShortNameComparator); + endpointListGroupB.sort(endpointShortNameComparator); + + return sortBy.value.isAscending ? groupNameA.localeCompare(groupNameB) : groupNameB.localeCompare(groupNameA); + }; + } + // TODO: Determine how sorting should be handled for columns other than endpoint name + + if (grouping.value.groupedEndpoints.length > 1) { + grouping.value.groupedEndpoints.sort(comparator); + } else if (grouping.value.groupedEndpoints.length === 1) { + grouping.value.groupedEndpoints[0].endpoints.sort(endpointShortNameComparator); + } + } + + return { + //state + grouping, + endpointList, + disconnectedEndpointCount, + filterString, + sortBy, + + //getters + endpointListCount, + endpointListIsEmpty, + endpointListIsGrouped, + getEndpointList, + + //actions + updateSelectedGrouping, + updateEndpointList, + updateFilterString, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useMonitoringStore, import.meta.hot)); +} + +export type MonitoringStore = ReturnType; diff --git a/frontend/src/stores/RedirectsStore.ts b/frontend/src/stores/RedirectsStore.ts new file mode 100644 index 0000000000..a27578e090 --- /dev/null +++ b/frontend/src/stores/RedirectsStore.ts @@ -0,0 +1,53 @@ +import Redirect from "@/resources/Redirect"; +import QueueAddress from "@/resources/QueueAddress"; +import { acceptHMRUpdate, defineStore } from "pinia"; +import { reactive } from "vue"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export interface Redirects { + data: Redirect[]; + queues: string[]; + total: number; +} + +export const useRedirectsStore = defineStore("RedirectsStore", () => { + const redirects = reactive({ + data: [], + queues: [], + total: 0, + }); + + const serviceControlStore = useServiceControlStore(); + + async function getKnownQueues() { + const [, data] = await serviceControlStore.fetchTypedFromServiceControl("errors/queues/addresses"); + redirects.queues = data.map((x) => x.physical_address); + } + + async function getRedirects() { + const [response, data] = await serviceControlStore.fetchTypedFromServiceControl("redirects"); + redirects.total = parseInt(response.headers.get("Total-Count") || "0"); + redirects.data = data; + } + + async function refresh() { + await Promise.all([getRedirects(), getKnownQueues()]); + } + + async function retryPendingMessagesForQueue(queueName: string) { + const response = await serviceControlStore.postToServiceControl(`errors/queues/${queueName}/retry`); + return { + message: response.ok ? "success" : `error:${response.statusText}`, + status: response.status, + statusText: response.statusText, + }; + } + + return { refresh, redirects, retryPendingMessagesForQueue }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useRedirectsStore, import.meta.hot)); +} + +export type RedirectsStore = ReturnType; diff --git a/frontend/src/stores/SagaDiagramStore.ts b/frontend/src/stores/SagaDiagramStore.ts new file mode 100644 index 0000000000..4a14a6e15e --- /dev/null +++ b/frontend/src/stores/SagaDiagramStore.ts @@ -0,0 +1,251 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { ref, watch } from "vue"; +import { SagaHistory, SagaMessage } from "@/resources/SagaHistory"; +import Message from "@/resources/Message"; +import { parse, stringify } from "lossless-json"; +import xmlFormat from "xml-formatter"; +import { DataContainer } from "./DataContainer"; +import { useMessageStore } from "./MessageStore"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export interface SagaMessageData { + message_id: string; + body: DataContainer<{ value?: string; content_type?: string; no_content?: boolean }>; +} +export const useSagaDiagramStore = defineStore("SagaDiagramStore", () => { + const sagaHistory = ref(null); + const sagaId = ref(null); + const loading = ref(false); + const messageDataLoading = ref(false); + const error = ref(null); + const showMessageData = ref(false); + const fetchedMessages = ref(new Set()); + const messagesData = ref([]); + const selectedMessageId = ref(null); + const scrollToTimeoutRequest = ref(false); + const scrollToTimeout = ref(false); + const MessageBodyEndpoint = "messages/{0}/body"; + const messageStore = useMessageStore(); + const serviceControlStore = useServiceControlStore(); + + watch( + () => messageStore.state.data.message_id, + (newMessageId) => { + if (newMessageId) { + setSelectedMessageId(newMessageId); + } + }, + { immediate: true } + ); + + // Watch the sagaId and fetch saga history when it changes + watch(sagaId, async (newSagaId) => { + if (newSagaId) { + await fetchSagaHistory(newSagaId); + } else { + clearSagaHistory(); + } + }); + + // Watch both showMessageData and sagaHistory together + watch([showMessageData, sagaHistory], async ([show, history]) => { + if (show && history) { + await fetchMessagesData(history); + } + }); + + function setSagaId(id: string | null) { + sagaId.value = id; + } + + async function fetchSagaHistory(id: string) { + if (!id) return; + + loading.value = true; + error.value = null; + + try { + const response = await serviceControlStore.fetchFromServiceControl(`sagas/${id}`); + + if (response.status === 404) { + sagaHistory.value = null; + error.value = "Saga history not found"; + } else if (!response.ok) { + sagaHistory.value = null; + error.value = "Failed to fetch saga history"; + } else { + const data = await response.json(); + sagaHistory.value = data; + } + } catch (e) { + error.value = e instanceof Error ? e.message : "Unknown error occurred"; + sagaHistory.value = null; + } finally { + loading.value = false; + } + } + + async function fetchSagaMessageData(message: SagaMessage): Promise { + const bodyUrl = (message.body_url ?? formatUrl(MessageBodyEndpoint, message.message_id)).replace(/^\//, ""); + const result: SagaMessageData = { + message_id: message.message_id, + body: { data: {} }, + }; + + result.body.loading = true; + result.body.failed_to_load = false; + + try { + const response = await serviceControlStore.fetchFromServiceControl(bodyUrl); + if (response.status === 404) { + result.body.not_found = true; + return result; + } + + if (response.status === 204) { + result.body.data.no_content = true; + return result; + } + + const contentType = response.headers.get("content-type"); + result.body.data.content_type = contentType ?? "text/plain"; + result.body.data.value = await response.text(); + + if (contentType === "application/json" && result.body.data.value) { + // Only format non-empty JSON objects + result.body.data.value = result.body.data.value !== "{}" ? (stringify(parse(result.body.data.value), null, 2) ?? result.body.data.value) : ""; + } else if (contentType === "text/xml" && result.body.data.value) { + // Format XML if it has content in the root element + const xmlRootElement = getContentOfXmlRootElement(result.body.data.value); + result.body.data.value = xmlRootElement ? xmlFormat(result.body.data.value, { indentation: " ", collapseContent: true }) : ""; + } + } catch { + result.body.failed_to_load = true; + } finally { + result.body.loading = false; + } + + return result; + } + + function getContentOfXmlRootElement(xml: string): string { + const parser = new DOMParser(); + const doc = parser.parseFromString(xml, "text/xml"); + const rootElement = doc.documentElement; + if (rootElement) { + const rootElementText = rootElement.textContent; + if (rootElementText) { + return rootElementText; + } + } + return ""; + } + + async function getAuditMessages(sagaId: string) { + try { + const response = await serviceControlStore.fetchFromServiceControl(`messages/search?q=${sagaId}`); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return await response.json(); + } catch (error) { + console.error("Error fetching audit messages:", error); + return { result: [] }; + } + } + + function clearSagaHistory() { + sagaHistory.value = null; + sagaId.value = null; + error.value = null; + fetchedMessages.value.clear(); + messagesData.value = []; + selectedMessageId.value = null; + scrollToTimeoutRequest.value = false; + } + + function formatUrl(template: string, id: string): string { + return template.replace("{0}", id); + } + + function toggleMessageData() { + showMessageData.value = !showMessageData.value; + } + + async function fetchMessagesData(history: SagaHistory) { + messageDataLoading.value = true; + error.value = null; + + try { + // Get all messages from changes array - both initiating and outgoing + const messagesToFetch = history.changes.flatMap((change) => { + const messages: SagaMessage[] = []; + + // Add initiating message if it exists and hasn't been fetched + if (change.initiating_message && !fetchedMessages.value.has(change.initiating_message.message_id)) { + messages.push(change.initiating_message); + } + + // Add all unfetched outgoing messages + if (change.outgoing_messages) { + messages.push(...change.outgoing_messages.filter((msg) => !fetchedMessages.value.has(msg.message_id))); + } + return messages; + }); + + // Check if any messages need body_url + const needsBodyUrl = messagesToFetch.every((msg) => !msg.body_url); + if (needsBodyUrl && messagesToFetch.length > 0) { + const auditMessages = await getAuditMessages(sagaId.value!); + messagesToFetch.forEach((message) => { + const auditMessage = auditMessages.find((x: Message) => x.message_id === message.message_id); + if (auditMessage) { + message.body_url = auditMessage.body_url; + } + }); + } + + // Fetch data for each unfetched message in parallel and store results + const fetchPromises = messagesToFetch.map(async (message) => { + const data = await fetchSagaMessageData(message); + fetchedMessages.value.add(message.message_id); + return data; + }); + + const newMessageData = await Promise.all(fetchPromises); + // Add new message data to the existing array + messagesData.value = [...messagesData.value, ...newMessageData]; + } catch (e) { + error.value = e instanceof Error ? e.message : "Unknown error occurred"; + } finally { + messageDataLoading.value = false; + } + } + + function setSelectedMessageId(messageId: string | null) { + selectedMessageId.value = messageId; + } + + return { + sagaHistory, + sagaId, + loading, + messageDataLoading, + error, + showMessageData, + messagesData, + selectedMessageId, + scrollToTimeoutRequest, + scrollToTimeout, + setSagaId, + clearSagaHistory, + toggleMessageData, + setSelectedMessageId, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useSagaDiagramStore, import.meta.hot)); +} + +export type SagaDiagramStore = ReturnType; diff --git a/frontend/src/stores/SequenceDiagramStore.ts b/frontend/src/stores/SequenceDiagramStore.ts new file mode 100644 index 0000000000..56dee8f863 --- /dev/null +++ b/frontend/src/stores/SequenceDiagramStore.ts @@ -0,0 +1,124 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, ref, watch } from "vue"; +import { ModelCreator } from "@/resources/SequenceDiagram/SequenceModel"; +import { Endpoint } from "@/resources/SequenceDiagram/Endpoint"; +import { Handler } from "@/resources/SequenceDiagram/Handler"; +import { MessageProcessingRoute } from "@/resources/SequenceDiagram/RoutedMessage"; +import { useMessageStore } from "./MessageStore"; +import { useRouter } from "vue-router"; +import routeLinks from "@/router/routeLinks"; + +export interface EndpointCentrePoint { + name: string; + centre?: number; + top: number; +} + +export interface HandlerLocation { + id: string; + endpointName: string; + left: number; + right: number; + y: number; + height: number; +} + +export const Endpoint_Width = 260; + +export const useSequenceDiagramStore = defineStore("SequenceDiagramStore", () => { + const messageStore = useMessageStore(); + const { state, conversationData } = storeToRefs(messageStore); + const router = useRouter(); + + const startX = ref(Endpoint_Width / 2); + const endpoints = ref([]); + const handlers = ref([]); + const routes = ref([]); + const endpointCentrePoints = ref([]); + const maxWidth = ref(150); + const maxHeight = ref(150); + const handlerLocations = ref([]); + const highlightId = ref(); + + const isLoading = computed(() => conversationData.value.loading); + const selectedId = computed(() => `${state.value.data.message_type ?? ""}(${state.value.data.id})`); + + watch( + () => conversationData.value.data, + (conversationData) => { + if (conversationData.length) { + startX.value = Endpoint_Width / 2; + const model = new ModelCreator(conversationData); + endpoints.value = model.endpoints; + handlers.value = model.handlers; + routes.value = model.routes; + } + }, + { immediate: true } + ); + + function setStartX(offset: number) { + const newValue = Math.max(offset + Endpoint_Width / 2, startX.value); + if (newValue === startX.value) return; + startX.value = newValue; + } + + function setMaxWidth(width: number) { + maxWidth.value = width; + } + + function setMaxHeight(height: number) { + maxHeight.value = height; + } + + function setEndpointCentrePoints(centrePoints: EndpointCentrePoint[]) { + endpointCentrePoints.value = centrePoints; + } + + function setHandlerLocations(locations: HandlerLocation[]) { + handlerLocations.value = locations; + } + + function setHighlightId(id?: string) { + highlightId.value = id; + } + + function refreshConversation() { + if (messageStore.state.data.conversation_id) messageStore.loadConversation(messageStore.state.data.conversation_id); + } + + function navigateTo(messageUniqueId: string | undefined, messageId: string | undefined, isError: boolean) { + if (messageUniqueId == null) return; + if (!isError && messageId == null) return; + + router.push({ path: isError ? routeLinks.messages.failedMessage.link(messageUniqueId) : routeLinks.messages.successMessage.link(messageId!, messageUniqueId) }); + } + + return { + startX, + endpoints, + handlers, + routes, + endpointCentrePoints, + maxWidth, + maxHeight, + handlerLocations, + highlightId, + selectedId, + isLoading, + setStartX, + setMaxWidth, + setMaxHeight, + setEndpointCentrePoints, + setHandlerLocations, + setHighlightId, + refreshConversation, + navigateTo, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useSequenceDiagramStore, import.meta.hot)); +} + +export type SequenceDiagramStore = ReturnType; diff --git a/frontend/src/stores/ServiceControlStore.ts b/frontend/src/stores/ServiceControlStore.ts new file mode 100644 index 0000000000..aeb38a855e --- /dev/null +++ b/frontend/src/stores/ServiceControlStore.ts @@ -0,0 +1,164 @@ +import { acceptHMRUpdate, defineStore } from "pinia"; +import { computed, ref } from "vue"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const useServiceControlStore = defineStore("ServiceControlStore", () => { + const serviceControlUrl = ref(); + const monitoringUrl = ref(); + + const isMonitoringDisabled = computed(() => monitoringUrl.value == null || monitoringUrl.value === "" || monitoringUrl.value === "!"); + const isMonitoringEnabled = computed(() => !isMonitoringDisabled.value); + + function getServiceControlUrl() { + if (!serviceControlUrl.value) { + refresh(); + } + if (!serviceControlUrl.value) { + throw new Error("Service Control URL is not configured"); + } + return serviceControlUrl.value; + } + + function getMonitoringUrl() { + if (!monitoringUrl.value) refresh(); + return monitoringUrl.value; + } + + function refresh() { + const params = new URLSearchParams(window.location.search); + const mu = params.get("mu"); + const config = getDefaultConfig(); + + if (config.service_control_url) { + serviceControlUrl.value = config.service_control_url; + console.debug(`setting ServiceControl Url to its default value: ${config.service_control_url}`); + } else { + console.warn("ServiceControl Url is not defined."); + } + + if (mu) { + monitoringUrl.value = mu; + window.localStorage.setItem("mu", monitoringUrl.value); + console.debug(`Monitoring Url found in QS and stored in local storage: ${monitoringUrl.value}`); + } else if (window.localStorage.getItem("mu")) { + monitoringUrl.value = window.localStorage.getItem("mu"); + console.debug(`Monitoring Url, not in QS, found in local storage: ${monitoringUrl.value}`); + } else if (config.monitoring_url) { + monitoringUrl.value = config.monitoring_url; + console.debug(`setting Monitoring Url to its default value: ${config.monitoring_url}`); + } else { + console.warn("Monitoring Url is not defined."); + } + } + + async function fetchFromServiceControl(suffix: string, options?: { cache?: RequestCache }) { + const requestOptions: RequestInit = { + method: "GET", + cache: options?.cache ?? "default", // Default if not specified + headers: { + Accept: "application/json", + }, + }; + return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions); + } + + async function fetchTypedFromServiceControl(suffix: string): Promise<[Response, T]> { + const response = await fetch(`${getServiceControlUrl()}${suffix}`); + if (!response.ok) throw new Error(response.statusText ?? "No response"); + const data = await response.json(); + + return [response, data]; + } + + async function fetchTypedFromMonitoring(suffix: string): Promise<[Response?, T?]> { + if (isMonitoringDisabled.value) { + return []; + } + + const response = await fetch(`${getMonitoringUrl()}${suffix}`); + const data = await response.json(); + + return [response, data]; + } + + async function postToServiceControl(suffix: string, payload: object | null = null) { + const requestOptions: RequestInit = { + method: "POST", + }; + if (payload != null) { + requestOptions.headers = { "Content-Type": "application/json" }; + requestOptions.body = JSON.stringify(payload); + } + return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions); + } + + async function putToServiceControl(suffix: string, payload: object | null) { + const requestOptions: RequestInit = { + method: "PUT", + }; + if (payload != null) { + requestOptions.headers = { "Content-Type": "application/json" }; + requestOptions.body = JSON.stringify(payload); + } + return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions); + } + + async function deleteFromServiceControl(suffix: string) { + const requestOptions: RequestInit = { + method: "DELETE", + }; + return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions); + } + + async function deleteFromMonitoring(suffix: string) { + const requestOptions = { + method: "DELETE", + }; + return await fetch(`${getMonitoringUrl()}${suffix}`, requestOptions); + } + + async function optionsFromMonitoring() { + if (isMonitoringDisabled.value) { + return Promise.resolve(null); + } + + const requestOptions = { + method: "OPTIONS", + }; + return await fetch(getMonitoringUrl() ?? "", requestOptions); + } + + async function patchToServiceControl(suffix: string, payload: object | null) { + const requestOptions: RequestInit = { + method: "PATCH", + }; + if (payload != null) { + requestOptions.headers = { "Content-Type": "application/json" }; + requestOptions.body = JSON.stringify(payload); + } + return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions); + } + + return { + refresh, + serviceControlUrl, + monitoringUrl, + isMonitoringDisabled, + isMonitoringEnabled, + fetchFromServiceControl, + fetchTypedFromServiceControl, + fetchTypedFromMonitoring, + putToServiceControl, + postToServiceControl, + patchToServiceControl, + deleteFromServiceControl, + deleteFromMonitoring, + optionsFromMonitoring, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useServiceControlStore, import.meta.hot)); +} + +export type ServiceControlStore = ReturnType; diff --git a/frontend/src/stores/ThroughputStore.spec.ts b/frontend/src/stores/ThroughputStore.spec.ts new file mode 100644 index 0000000000..f35ca4827b --- /dev/null +++ b/frontend/src/stores/ThroughputStore.spec.ts @@ -0,0 +1,111 @@ +import { beforeEach, describe, expect, test } from "vitest"; +import * as precondition from "../../test/preconditions"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests } from "@component-test-utils"; +import { serviceControlWithThroughput } from "@/views/throughputreport/serviceControlWithThroughput"; +import { useThroughputStore } from "@/stores/ThroughputStore"; +import { createTestingPinia } from "@pinia/testing"; +import { setActivePinia, storeToRefs } from "pinia"; +import { Driver } from "../../test/driver"; +import { disableMonitoring } from "../../test/drivers/vitest/setup"; +import { useEnvironmentAndVersionsStore } from "./EnvironmentAndVersionsStore"; +import { useServiceControlStore } from "./ServiceControlStore"; + +describe("ThroughputStore tests", () => { + async function setup(preSetup: (driver: Driver) => Promise) { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await preSetup(driver); + await driver.setUp(serviceControlWithThroughput); + await driver.setUp(precondition.hasNoDisconnectedEndpoints); + await driver.setUp(precondition.hasServiceControlMonitoringInstance); + + useServiceControlStore(); + await useEnvironmentAndVersionsStore().refresh(); + + const store = useThroughputStore(); + const refs = storeToRefs(store); + await store.refresh(); + + return { driver, ...refs }; + } + + test("when no connection test errors for any source", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport: Transport.AmazonSQS })); + }); + + expect(hasErrors.value).toBe(false); + }); + + describe("when transport is a broker", () => { + const transport = Transport.AmazonSQS; + + test("with broker connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, broker_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + + test("with monitoring connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, monitoring_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + + test("with audit connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, audit_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + }); + + describe("when transport is not a broker", () => { + const transport = Transport.MSMQ; + + test("with monitoring connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, monitoring_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + + test("with audit connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, audit_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + + describe("with monitoring disabled", () => { + beforeEach(() => { + disableMonitoring(); + }); + + test("with audit connection test failure", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, audit_connection_result: { connection_successful: false, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(true); + }); + + test("with audit connection test passing", async () => { + const { hasErrors } = await setup(async (driver) => { + await driver.setUp(precondition.hasLicensingSettingTest({ transport, audit_connection_result: { connection_successful: true, connection_error_messages: [], diagnostics: "" } })); + }); + + expect(hasErrors.value).toBe(false); + }); + }); + }); +}); diff --git a/frontend/src/stores/ThroughputStore.ts b/frontend/src/stores/ThroughputStore.ts new file mode 100644 index 0000000000..08b133db56 --- /dev/null +++ b/frontend/src/stores/ThroughputStore.ts @@ -0,0 +1,122 @@ +import { acceptHMRUpdate, defineStore, storeToRefs } from "pinia"; +import { computed, ref, watch } from "vue"; +import ConnectionTestResults from "@/resources/ConnectionTestResults"; +import createThroughputClient from "@/views/throughputreport/throughputClient"; +import { Transport } from "@/views/throughputreport/transport"; +import useIsThroughputSupported from "@/views/throughputreport/isThroughputSupported"; +import { useServiceControlStore } from "./ServiceControlStore"; + +export const useThroughputStore = defineStore("ThroughputStore", () => { + const serviceControlStore = useServiceControlStore(); + const { isMonitoringEnabled } = storeToRefs(serviceControlStore); + + const testResults = ref(null); + const isThroughputSupported = useIsThroughputSupported(); + const throughputClient = createThroughputClient(); + + const refresh = async () => { + if (isThroughputSupported.value) { + testResults.value = await throughputClient.test(); + } + }; + + const hasErrors = computed(() => { + // if it is a broker transport, we return true if connection test is unsuccessful + if (isBrokerTransport.value && !testResults.value?.broker_connection_result.connection_successful) { + return true; + } + + // if Audit connection test fails, we will return true. + // the connection test will return true if there are no Audit instances configured. + if (!testResults.value?.audit_connection_result.connection_successful) { + //TODO: should this be a warning rather than an error? + return true; + } + + // if Monitoring is enabled, we return whatever the value of the connection test + if (isMonitoringEnabled.value) { + return !testResults.value?.monitoring_connection_result.connection_successful; + } + + // Last but not least we assume no errors + return false; + }); + const transport = computed(() => { + if (testResults.value == null) { + return Transport.None; + } + + return testResults.value.transport as Transport; + }); + const isBrokerTransport = computed(() => { + switch (transport.value) { + case Transport.None: + case Transport.MSMQ: + case Transport.AzureStorageQueue: + case Transport.LearningTransport: + return false; + default: + return true; + } + }); + const transportNameForInstructions = () => { + switch (transport.value) { + case Transport.AzureStorageQueue: + return "Azure Storage Queue"; + case Transport.NetStandardAzureServiceBus: + return "Azure Service Bus"; + case Transport.MSMQ: + return "MSMQ"; + case Transport.LearningTransport: + return "Learning Transport"; + case Transport.RabbitMQ: + return "RabbitMQ"; + case Transport.SQLServer: + return "Sql Server"; + case Transport.AmazonSQS: + return "Amazon SQS"; + case Transport.PostgreSQL: + return "PostgreSQL"; + } + }; + const transportDocsLinkForInstructions = () => { + switch (transport.value) { + case Transport.AzureStorageQueue: + case Transport.LearningTransport: + case Transport.MSMQ: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-msmq-azure-storage-queues"; + case Transport.NetStandardAzureServiceBus: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-azure-service-bus"; + case Transport.RabbitMQ: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-rabbitmq"; + case Transport.SQLServer: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-sqlserver"; + case Transport.AmazonSQS: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-amazon-sqs"; + case Transport.PostgreSQL: + return "https://docs.particular.net/servicepulse/usage-config#connection-setup-postgresql"; + } + }; + + watch(isThroughputSupported, (value) => { + if (value) { + refresh(); + } + }); + + return { + testResults, + refresh, + transportNameForInstructions, + transportDocsLinkForInstructions, + isBrokerTransport, + hasErrors, + transport, + }; +}); + +if (import.meta.hot) { + import.meta.hot.accept(acceptHMRUpdate(useThroughputStore, import.meta.hot)); +} + +export type ThroughputStore = ReturnType; diff --git a/frontend/src/types/date.ts b/frontend/src/types/date.ts new file mode 100644 index 0000000000..ab548a3c47 --- /dev/null +++ b/frontend/src/types/date.ts @@ -0,0 +1 @@ +export type DateRange = [fromDate: Date, toDate: Date] | []; diff --git a/frontend/src/views/AuditView.vue b/frontend/src/views/AuditView.vue new file mode 100644 index 0000000000..2f31ff370a --- /dev/null +++ b/frontend/src/views/AuditView.vue @@ -0,0 +1,63 @@ + + + + + diff --git a/frontend/src/views/ConfigurationView.vue b/frontend/src/views/ConfigurationView.vue new file mode 100644 index 0000000000..ecb4b8e438 --- /dev/null +++ b/frontend/src/views/ConfigurationView.vue @@ -0,0 +1,104 @@ + + + diff --git a/frontend/src/views/CustomChecksView.vue b/frontend/src/views/CustomChecksView.vue new file mode 100644 index 0000000000..17b7e6992e --- /dev/null +++ b/frontend/src/views/CustomChecksView.vue @@ -0,0 +1,33 @@ + + + diff --git a/frontend/src/views/DashboardView.vue b/frontend/src/views/DashboardView.vue new file mode 100644 index 0000000000..935e89fbaf --- /dev/null +++ b/frontend/src/views/DashboardView.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/frontend/src/views/EventsView.vue b/frontend/src/views/EventsView.vue new file mode 100644 index 0000000000..4d50c64e89 --- /dev/null +++ b/frontend/src/views/EventsView.vue @@ -0,0 +1,37 @@ + + + diff --git a/frontend/src/views/FailedMessagesView.vue b/frontend/src/views/FailedMessagesView.vue new file mode 100644 index 0000000000..646ad1b599 --- /dev/null +++ b/frontend/src/views/FailedMessagesView.vue @@ -0,0 +1,66 @@ + + + diff --git a/frontend/src/views/HeartbeatsView.vue b/frontend/src/views/HeartbeatsView.vue new file mode 100644 index 0000000000..011cb89c11 --- /dev/null +++ b/frontend/src/views/HeartbeatsView.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/frontend/src/views/MonitoringView.vue b/frontend/src/views/MonitoringView.vue new file mode 100644 index 0000000000..c9ece10aa0 --- /dev/null +++ b/frontend/src/views/MonitoringView.vue @@ -0,0 +1,59 @@ + + + diff --git a/frontend/src/views/ThroughputReportView.spec.ts b/frontend/src/views/ThroughputReportView.spec.ts new file mode 100644 index 0000000000..7dd92230b4 --- /dev/null +++ b/frontend/src/views/ThroughputReportView.spec.ts @@ -0,0 +1,130 @@ +import { describe, expect, test } from "vitest"; +import * as precondition from "../../test/preconditions"; +import { createTestingPinia } from "@pinia/testing"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests, render, screen, userEvent } from "@component-test-utils"; +import { Driver } from "../../test/driver"; +import { disableMonitoring } from "../../test/drivers/vitest/setup"; +import makeRouter from "@/router"; +import { flushPromises, RouterLinkStub } from "@vue/test-utils"; +import ThroughputReportView from "@/views/ThroughputReportView.vue"; +import Toast from "vue-toastification"; +import { serviceControlWithThroughput } from "@/views/throughputreport/serviceControlWithThroughput"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; +import { getDefaultConfig } from "@/defaultConfig"; + +describe("EndpointsView tests", () => { + async function setup() { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await driver.setUp(serviceControlWithThroughput); + + return driver; + } + + // eslint-disable-next-line @typescript-eslint/no-unused-vars + async function renderComponent(transport: Transport = Transport.MSMQ, preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + disableMonitoring(); + + const driver = await setup(); + await preSetup(driver); + + useServiceControlStore(); + + const el = document.createElement("div"); + el.id = "modalDisplay"; + document.body.appendChild(el); + + const { debug } = render(ThroughputReportView, { + container: document.body, + global: { + stubs: { + RouterLink: RouterLinkStub, + }, + plugins: [makeRouter(), Toast], + directives: { + // Add stub for tippy directive + tippy: () => {}, + }, + }, + }); + await flushPromises(); + + return { debug, driver }; + } + + describe("when minimum requirements", () => { + test("are met", async () => { + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasLicensingReportAvailable()); + }); + + expect(screen.queryByText(/the minimum version of servicecontrol required to enable the usage feature is/i)).not.toBeInTheDocument(); + }); + + test("are not met, requirements warning is displayed", async () => { + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasServiceControlMainInstance("1.0.0")); + await driver.setUp(precondition.hasLicensingReportAvailable()); + }); + + expect(screen.getByText(/the minimum version of servicecontrol required to enable the usage feature is/i)).toBeInTheDocument(); + }); + }); + + describe("when report", () => { + test("is available", async () => { + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasLicensingReportAvailable()); + }); + expect(screen.getByRole("button", { name: /Download Report/i })).toBeEnabled(); + }); + + test("is unavailable", async () => { + const reason = "report testing that is not available"; + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasLicensingReportAvailable({ report_can_be_generated: false, reason: reason })); + }); + + expect(screen.getByRole("button", { name: /Download Report/i })).toBeDisabled(); + expect(screen.getByText(reason)).toBeInTheDocument(); + }); + }); + + describe("when download report is clicked", () => { + test("and no warnings, download happens", async () => { + URL.createObjectURL = () => ""; + const fileName = "hello_john.json"; + + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasLicensingReportAvailable()); + await driver.setUp(precondition.hasLicensingEndpoints([{ name: "foo", is_known_endpoint: false, user_indicator: "something", max_daily_throughput: 0 }])); + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/report/file`, { + body: {}, + headers: { + "Content-Disposition": `attachment; filename="${fileName}"`, + }, + }); + }); + + const use = userEvent.setup(); + + await use.click(screen.getByRole("button", { name: /Download Report/i })); + expect(screen.queryAllByText(new RegExp(`Please email '${fileName}' to your account manager`)).length).toBeGreaterThanOrEqual(1); + }); + + test("and there are warnings, dialog is displayed", async () => { + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasLicensingReportAvailable()); + await driver.setUp(precondition.hasLicensingEndpoints([{ name: "foo", is_known_endpoint: false, user_indicator: "", max_daily_throughput: 0 }])); + }); + + const use = userEvent.setup(); + + await use.click(screen.getByRole("button", { name: /Download Report/i })); + expect(screen.getByText("Not all endpoints/queues have an Endpoint Type set")).toBeInTheDocument(); + }); + }); +}); diff --git a/frontend/src/views/ThroughputReportView.vue b/frontend/src/views/ThroughputReportView.vue new file mode 100644 index 0000000000..62561c15c1 --- /dev/null +++ b/frontend/src/views/ThroughputReportView.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/frontend/src/views/throughputreport/EndpointsView.spec.ts b/frontend/src/views/throughputreport/EndpointsView.spec.ts new file mode 100644 index 0000000000..4ec24b7476 --- /dev/null +++ b/frontend/src/views/throughputreport/EndpointsView.spec.ts @@ -0,0 +1,78 @@ +import { describe, expect, test } from "vitest"; +import * as precondition from "../../../test/preconditions"; +import { createTestingPinia } from "@pinia/testing"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests, render, screen, userEvent } from "@component-test-utils"; +import { Driver } from "../../../test/driver"; +import { disableMonitoring } from "../../../test/drivers/vitest/setup"; +import makeRouter from "@/router"; +import { flushPromises, RouterLinkStub } from "@vue/test-utils"; +import EndpointsView from "./EndpointsView.vue"; +import { serviceControlWithThroughput } from "@/views/throughputreport/serviceControlWithThroughput"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; + +describe("EndpointsView tests", () => { + async function setup(transport: Transport) { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await driver.setUp(serviceControlWithThroughput); + await driver.setUp(precondition.hasLicensingSettingTest({ transport })); + + return driver; + } + + async function renderComponent(transport: Transport = Transport.MSMQ, preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + disableMonitoring(); + + const driver = await setup(transport); + await preSetup(driver); + + useServiceControlStore(); + + const { debug } = render(EndpointsView, { + global: { + stubs: { + RouterLink: RouterLinkStub, + }, + plugins: [makeRouter()], + directives: { + // Add stub for tippy directive + tippy: () => {}, + }, + }, + }); + await flushPromises(); + + return { debug, driver }; + } + + test("instructions by default are not showing", async () => { + await renderComponent(); + + expect(screen.queryByText(/Show Endpoint Types meaning/i)).toBeInTheDocument(); + }); + + test("show instructions", async () => { + await renderComponent(); + + const use = userEvent.setup(); + + await use.click(screen.getByRole("link", { name: /Show Endpoint Types meaning/i })); + + expect(screen.queryByText(/Hide Endpoint Types meaning/i)).toBeInTheDocument(); + }); + + test("broker displays the two tabs", async () => { + await renderComponent(Transport.AmazonSQS); + + expect(screen.getByText(/Detected Broker Queues/i)).toBeInTheDocument(); + }); + + test("non broker displays only one tabs", async () => { + await renderComponent(); + + expect(screen.queryByText(/Detected Broker Queues/i)).not.toBeInTheDocument(); + }); +}); diff --git a/frontend/src/views/throughputreport/EndpointsView.vue b/frontend/src/views/throughputreport/EndpointsView.vue new file mode 100644 index 0000000000..8bb1f99f8d --- /dev/null +++ b/frontend/src/views/throughputreport/EndpointsView.vue @@ -0,0 +1,74 @@ + + + + + diff --git a/frontend/src/views/throughputreport/LegendGatewayOrBridgeEndpoint.vue b/frontend/src/views/throughputreport/LegendGatewayOrBridgeEndpoint.vue new file mode 100644 index 0000000000..40cae6e925 --- /dev/null +++ b/frontend/src/views/throughputreport/LegendGatewayOrBridgeEndpoint.vue @@ -0,0 +1,6 @@ + diff --git a/frontend/src/views/throughputreport/LegendNServiceBusEndpoint.vue b/frontend/src/views/throughputreport/LegendNServiceBusEndpoint.vue new file mode 100644 index 0000000000..97183ed50e --- /dev/null +++ b/frontend/src/views/throughputreport/LegendNServiceBusEndpoint.vue @@ -0,0 +1,6 @@ + diff --git a/frontend/src/views/throughputreport/LegendNServiceBusEndpointNoLongerInUse.vue b/frontend/src/views/throughputreport/LegendNServiceBusEndpointNoLongerInUse.vue new file mode 100644 index 0000000000..742f3211bd --- /dev/null +++ b/frontend/src/views/throughputreport/LegendNServiceBusEndpointNoLongerInUse.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/LegendNotNServiceBusEndpoint.vue b/frontend/src/views/throughputreport/LegendNotNServiceBusEndpoint.vue new file mode 100644 index 0000000000..4ec9043290 --- /dev/null +++ b/frontend/src/views/throughputreport/LegendNotNServiceBusEndpoint.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/LegendParticularPlatformEndpoint.vue b/frontend/src/views/throughputreport/LegendParticularPlatformEndpoint.vue new file mode 100644 index 0000000000..a14e5bb52a --- /dev/null +++ b/frontend/src/views/throughputreport/LegendParticularPlatformEndpoint.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/LegendPlannedToDecommission.vue b/frontend/src/views/throughputreport/LegendPlannedToDecommission.vue new file mode 100644 index 0000000000..02393eb69f --- /dev/null +++ b/frontend/src/views/throughputreport/LegendPlannedToDecommission.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/LegendSendOnlyEndpoint.vue b/frontend/src/views/throughputreport/LegendSendOnlyEndpoint.vue new file mode 100644 index 0000000000..40d0ba236c --- /dev/null +++ b/frontend/src/views/throughputreport/LegendSendOnlyEndpoint.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/LegendTransactionalSessionProcessorEndpoint.vue b/frontend/src/views/throughputreport/LegendTransactionalSessionProcessorEndpoint.vue new file mode 100644 index 0000000000..27effc1500 --- /dev/null +++ b/frontend/src/views/throughputreport/LegendTransactionalSessionProcessorEndpoint.vue @@ -0,0 +1,3 @@ + diff --git a/frontend/src/views/throughputreport/SetupView.spec.ts b/frontend/src/views/throughputreport/SetupView.spec.ts new file mode 100644 index 0000000000..bc332cced3 --- /dev/null +++ b/frontend/src/views/throughputreport/SetupView.spec.ts @@ -0,0 +1,168 @@ +import { describe, expect, test } from "vitest"; +import * as precondition from "../../../test/preconditions"; +import { minimumSCVersionForThroughput } from "@/views/throughputreport/isThroughputSupported"; +import { createTestingPinia } from "@pinia/testing"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests, render, screen } from "@component-test-utils"; +import { Driver } from "../../../test/driver"; +import { disableMonitoring } from "../../../test/drivers/vitest/setup"; +import SetupView from "./SetupView.vue"; +import { ConnectionSettingsTestResult } from "@/resources/ConnectionTestResults"; +import makeRouter from "@/router"; +import { flushPromises, RouterLinkStub } from "@vue/test-utils"; +import { serviceControlWithThroughput } from "@/views/throughputreport/serviceControlWithThroughput"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; + +describe("SetupView tests", () => { + async function setup() { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await driver.setUp(serviceControlWithThroughput); + + return driver; + } + + async function renderComponent(transport: Transport = Transport.MSMQ, preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + const driver = await setup(); + + await driver.setUp( + precondition.hasLicensingSettingTest({ + transport, + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Audit diagnostics", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Monitoring diagnostics", + }, + broker_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Broker diagnostics", + }, + }) + ); + + await preSetup(driver); + + useServiceControlStore(); + + const { debug } = render(SetupView, { + global: { + stubs: { + RouterLink: RouterLinkStub, + }, + plugins: [makeRouter()], + directives: { + // Add stub for tippy directive + tippy: () => {}, + }, + }, + }); + await flushPromises(); + + return { debug, driver }; + } + + describe("when minimum requirements", () => { + test("are met", async () => { + disableMonitoring(); + + await renderComponent(); + + expect(screen.queryByText(/the minimum version of servicecontrol required to enable the usage feature is \./i)).not.toBeInTheDocument(); + }); + + test("are not met, requirements warning is displayed", async () => { + disableMonitoring(); + + await renderComponent(Transport.MSMQ, async (driver) => { + await driver.setUp(precondition.hasServiceControlMainInstance("1.0.0")); + }); + + expect(screen.getByText(/the minimum version of servicecontrol required to enable the usage feature is \./i)).toBeInTheDocument(); + }); + }); + + describe("when not a broker", () => { + test("without monitoring", async () => { + disableMonitoring(); + await renderComponent(); + + expect(screen.getByText(/Successfully connected to Audit instance/i)).toBeInTheDocument(); + expect(screen.queryByText(/Successfully connected to Monitoring/i)).not.toBeInTheDocument(); + }); + + test("with monitoring", async () => { + await renderComponent(Transport.MSMQ, async (driver) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasServiceControlMainInstance(minimumSCVersionForThroughput)); + await driver.setUp( + precondition.hasLicensingSettingTest({ + transport: Transport.MSMQ, + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Audit diagnostics", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Monitoring diagnostics", + }, + broker_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Broker diagnostics", + }, + }) + ); + }); + + expect(screen.getByText(/Successfully connected to Audit/i)).toBeInTheDocument(); + expect(screen.getByText(/Successfully connected to Monitoring/i)).toBeInTheDocument(); + }); + }); + + describe("when a broker", () => { + test("display success", async () => { + disableMonitoring(); + await renderComponent(Transport.AmazonSQS); + + expect(screen.getByText(/Successfully connected to Amazon SQS for usage collection/i)).toBeInTheDocument(); + }); + + test("display failure", async () => { + disableMonitoring(); + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp( + precondition.hasLicensingSettingTest({ + transport: Transport.AmazonSQS, + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Audit diagnostics", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Monitoring diagnostics", + }, + broker_connection_result: { + connection_successful: false, + connection_error_messages: [], + diagnostics: "Broker diagnostics", + }, + }) + ); + }); + + expect(screen.getByText(/The connection to Amazon SQS was not successful/i)).toBeInTheDocument(); + }); + }); +}); diff --git a/frontend/src/views/throughputreport/SetupView.vue b/frontend/src/views/throughputreport/SetupView.vue new file mode 100644 index 0000000000..62c71ef16f --- /dev/null +++ b/frontend/src/views/throughputreport/SetupView.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/frontend/src/views/throughputreport/ThroughputMenuItem.vue b/frontend/src/views/throughputreport/ThroughputMenuItem.vue new file mode 100644 index 0000000000..bcdd9a0e59 --- /dev/null +++ b/frontend/src/views/throughputreport/ThroughputMenuItem.vue @@ -0,0 +1,18 @@ + + + + + diff --git a/frontend/src/views/throughputreport/ThroughputSupported.vue b/frontend/src/views/throughputreport/ThroughputSupported.vue new file mode 100644 index 0000000000..97fd89b264 --- /dev/null +++ b/frontend/src/views/throughputreport/ThroughputSupported.vue @@ -0,0 +1,33 @@ + + + + + diff --git a/frontend/src/views/throughputreport/endpoints/DetectedBrokerQueuesView.vue b/frontend/src/views/throughputreport/endpoints/DetectedBrokerQueuesView.vue new file mode 100644 index 0000000000..26c1fb4efe --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/DetectedBrokerQueuesView.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/frontend/src/views/throughputreport/endpoints/DetectedEndpointsView.vue b/frontend/src/views/throughputreport/endpoints/DetectedEndpointsView.vue new file mode 100644 index 0000000000..9366e44294 --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/DetectedEndpointsView.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/frontend/src/views/throughputreport/endpoints/DetectedListView.spec.ts b/frontend/src/views/throughputreport/endpoints/DetectedListView.spec.ts new file mode 100644 index 0000000000..0534fd334a --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/DetectedListView.spec.ts @@ -0,0 +1,354 @@ +import { describe, expect, test } from "vitest"; +import * as precondition from "../../../../test/preconditions"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests, render, screen, userEvent } from "@component-test-utils"; +import { Driver, SetupFactoryOptions } from "../../../../test/driver"; +import { disableMonitoring } from "../../../../test/drivers/vitest/setup"; +import DetectedListView, { DetectedListViewProps } from "@/views/throughputreport/endpoints/DetectedListView.vue"; +import { DataSource } from "@/views/throughputreport/endpoints/dataSource"; +import { UserIndicator } from "@/views/throughputreport/endpoints/userIndicator"; +import { within } from "@testing-library/vue"; +import UpdateUserIndicator from "@/resources/UpdateUserIndicator"; +import { serviceControlWithThroughput } from "@/views/throughputreport/serviceControlWithThroughput"; +import { flushPromises } from "@vue/test-utils"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; +import { getDefaultConfig } from "@/defaultConfig"; +import { createTestingPinia } from "@pinia/testing"; + +describe("DetectedListView tests", () => { + async function setup() { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await driver.setUp(serviceControlWithThroughput); + await driver.setUp(precondition.hasLicensingSettingTest({ transport: Transport.AmazonSQS })); + + return driver; + } + + async function renderComponent(props: Partial = {}, preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + disableMonitoring(); + + const driver = await setup(); + await preSetup(driver); + + useServiceControlStore(); + + const el = document.createElement("div"); + el.id = "modalDisplay"; + document.body.appendChild(el); + const { debug } = render(DetectedListView, { + global: { + directives: { + tooltip: {}, + }, + }, + container: document.body, + props: { + ...{ + ariaLabel: "my endpoints", + columnTitle: "Name", + showEndpointTypePlaceholder: true, + indicatorOptions: [], + source: DataSource.Broker, + }, + ...props, + }, + }); + await flushPromises(); + + return { debug, driver }; + } + + describe("We only display", () => { + test("queues when broker is selected", async () => { + await renderComponent({}, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + { name: "I am a queue", is_known_endpoint: false, user_indicator: "", max_daily_throughput: 10 }, + { name: "I am an endpoint", is_known_endpoint: true, user_indicator: "", max_daily_throughput: 100 }, + ]) + ); + }); + + expect(screen.getByText(/I am a queue/i)).toBeInTheDocument(); + expect(screen.queryByText(/I am an endpoint/i)).not.toBeInTheDocument(); + }); + + test("endpoints when well known endpoint is selected", async () => { + await renderComponent({ source: DataSource.WellKnownEndpoint }, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + { name: "I am a queue", is_known_endpoint: false, user_indicator: "", max_daily_throughput: 10 }, + { name: "I am an endpoint", is_known_endpoint: true, user_indicator: "", max_daily_throughput: 100 }, + ]) + ); + }); + + expect(screen.getByText(/I am an endpoint/i)).toBeInTheDocument(); + expect(screen.queryByText(/I am a queue/i)).not.toBeInTheDocument(); + }); + }); + + describe("filtering scenarios", () => { + function getFilterNameElement() { + return screen.getByRole("searchbox", { name: /Filter by name/i }) as HTMLTextAreaElement; + } + + function getFilterNameTypeElement() { + return screen.getByRole("combobox", { name: /Filter name type/i }) as HTMLSelectElement; + } + + function getFilterUnsetCheckboxElement() { + return screen.getByRole("checkbox", { name: /Show only not set Endpoint Types/i }) as HTMLInputElement; + } + + test("by name", async () => { + await renderComponent({ source: DataSource.WellKnownEndpoint }, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + ...[...Array(10).keys()].map((i) => ({ name: `Alpha${i}`, is_known_endpoint: true, user_indicator: "", max_daily_throughput: i })), + ...[...Array(10).keys()].map((i) => ({ name: `${i}Beta`, is_known_endpoint: true, user_indicator: "", max_daily_throughput: i })), + ...[...Array(10).keys()].map((i) => ({ name: `${i}Delta${i}`, is_known_endpoint: true, user_indicator: "", max_daily_throughput: i })), + ]) + ); + }); + + const user = userEvent.setup(); + const filterNameElement = getFilterNameElement(); + await user.type(filterNameElement, "Alpha"); + + expect(screen.queryAllByText(/Alpha\d/i).length).toBe(10); + expect(screen.queryAllByText(/\dBeta/i).length).toBe(0); + expect(screen.queryAllByText(/\dDelta\d/i).length).toBe(0); + + const filterNameTypeElement = getFilterNameTypeElement(); + await user.selectOptions(filterNameTypeElement, "Ends with"); + await user.clear(filterNameElement); + await user.type(filterNameElement, "Beta"); + + expect(screen.queryAllByText(/\dBeta/i).length).toBe(10); + expect(screen.queryAllByText(/Alpha\d/i).length).toBe(0); + expect(screen.queryAllByText(/\dDelta\d/i).length).toBe(0); + + await user.selectOptions(filterNameTypeElement, "Contains"); + await user.clear(filterNameElement); + await user.type(filterNameElement, "Delta"); + + expect(screen.queryAllByText(/\dDelta\d/i).length).toBe(10); + expect(screen.queryAllByText(/\dBeta/i).length).toBe(0); + expect(screen.queryAllByText(/Alpha\d/i).length).toBe(0); + }); + + test("by unset only", async () => { + await renderComponent({ source: DataSource.Broker, indicatorOptions: [UserIndicator.NServiceBusEndpoint] }, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + ...[...Array(10).keys()].map((i) => ({ name: `Alpha${i}`, is_known_endpoint: false, user_indicator: "", max_daily_throughput: i })), + ...[...Array(10).keys()].map((i) => ({ name: `${i}Beta`, is_known_endpoint: false, user_indicator: UserIndicator.NServiceBusEndpoint, max_daily_throughput: i })), + ...[...Array(10).keys()].map((i) => ({ name: `${i}Delta${i}`, is_known_endpoint: false, user_indicator: "", max_daily_throughput: i })), + ]) + ); + }); + + const user = userEvent.setup(); + const filterCheckboxElement = getFilterUnsetCheckboxElement(); + await user.click(filterCheckboxElement); + + expect(screen.queryAllByText(/Alpha\d/i).length).toBe(10); + expect(screen.queryAllByText(/\dBeta/i).length).toBe(0); + expect(screen.queryAllByText(/\dDelta\d/i).length).toBe(10); + }); + + test("by combination of all", async () => { + const tableName = "Special table"; + + await renderComponent({ source: DataSource.Broker, indicatorOptions: [UserIndicator.NServiceBusEndpoint], ariaLabel: tableName }, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + ...[...Array(5).keys()].map((i) => ({ name: `${i}Beta`, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: i })), + ...[...Array(8).keys()].map((i) => ({ name: `${i}Beta`, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: i })), + ...[...Array(2).keys()].map((i) => ({ name: `${i}Delta${i}`, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: i })), + { name: "boo", is_known_endpoint: false, user_indicator: "", max_daily_throughput: 11 }, + ]) + ); + }); + + const user = userEvent.setup(); + const filterCheckboxElement = getFilterUnsetCheckboxElement(); + await user.click(filterCheckboxElement); + + const filterNameTypeElement = getFilterNameTypeElement(); + const filterNameElement = getFilterNameElement(); + await user.selectOptions(filterNameTypeElement, "Begins with"); + await user.clear(filterNameElement); + await user.type(filterNameElement, "boo"); + + const table = screen.getByRole("table", { name: tableName }); + + expect(within(table).getAllByRole("row").length).toBe(1 + 1 /* includes header row */); + }); + }); + + describe("sorting by", () => { + test("throughput", async () => { + const tableName = "Special table"; + const dataLength = 5; + + await renderComponent({ source: DataSource.Broker, indicatorOptions: [UserIndicator.NServiceBusEndpoint], ariaLabel: tableName }, async (driver) => { + await driver.setUp(precondition.hasLicensingEndpoints([...[...Array(dataLength).keys()].map((i) => ({ name: `${i}Beta`, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: i }))])); + }); + + const user = userEvent.setup(); + await user.click(screen.getByRole("button", { name: /Sort by/i })); + await user.click(screen.getByRole("link", { name: "throughput" })); + + const table = screen.getByRole("table", { name: tableName }) as HTMLTableElement; + + let throughput = 0; + for (const row of within(table).getAllByRole("row").slice(1)) { + expect(within(row).getByRole("cell", { name: "maximum usage throughput" }).textContent).toBe(`${throughput++}`); + } + + await user.click(screen.getByRole("button", { name: /Sort by/i })); + await user.click(screen.getByRole("link", { name: "throughput (Descending)" })); + + throughput = dataLength - 1; + for (const row of within(table).getAllByRole("row").slice(1)) { + expect(within(row).getByRole("cell", { name: "maximum usage throughput" }).textContent).toBe(`${throughput--}`); + } + }); + + test("name", async () => { + const tableName = "Special table"; + const unsortedNames = ["basilisk", "octopus", "hamster", "anteater", "porcupine", "gazelle", "seal", "lynx", "crocodile", "mountain goat", "yak", "polar bear", "horse", "gorilla", "zebu", "salamander", "alligator", "vicuna", "goat", "bunny"]; + const lexicallySortedNames = [ + "alligator", + "anteater", + "basilisk", + "bunny", + "crocodile", + "gazelle", + "goat", + "gorilla", + "hamster", + "horse", + "lynx", + "mountain goat", + "octopus", + "polar bear", + "porcupine", + "salamander", + "seal", + "vicuna", + "yak", + "zebu", + ]; + + await renderComponent({ source: DataSource.Broker, indicatorOptions: [UserIndicator.NServiceBusEndpoint], ariaLabel: tableName }, async (driver) => { + await driver.setUp(precondition.hasLicensingEndpoints([...[...unsortedNames].map((name, idx) => ({ name, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: idx }))])); + }); + + const user = userEvent.setup(); + await user.click(screen.getByRole("button", { name: /Sort by/i })); + await user.click(screen.getByRole("link", { name: "name" })); + + const table = screen.getByRole("table", { name: tableName }); + + //let orderedNames = unsortedNames.sort((a, b) => a.localeCompare(b)); + let idx = 0; + for (const row of within(table).getAllByRole("row").slice(1)) { + expect(within(row).getByRole("cell", { name: "name" }).textContent).toBe(lexicallySortedNames[idx++]); + } + + await user.click(screen.getByRole("button", { name: /Sort by/i })); + await user.click(screen.getByRole("link", { name: "name (Descending)" })); + + const reverseLexicallySortedNames = lexicallySortedNames.reverse(); + idx = 0; + for (const row of within(table).getAllByRole("row").slice(1)) { + expect(within(row).getByRole("cell", { name: "name" }).textContent).toBe(reverseLexicallySortedNames[idx++]); + } + }); + }); + + describe("updating data", () => { + const updateLicensingEndpoints = + ( + body: UpdateUserIndicator[] = [ + { + name: "Sender", + user_indicator: "", + }, + ] + ) => + ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/endpoints/update`, { + body, + method: "post", + status: 200, + }); + return []; + }; + + const setup = async () => { + const tableName = "Special table"; + + const { driver } = await renderComponent({ source: DataSource.Broker, indicatorOptions: [UserIndicator.PlannedToDecommission, UserIndicator.NServiceBusEndpoint], ariaLabel: tableName }, async (driver) => { + await driver.setUp( + precondition.hasLicensingEndpoints([ + { name: `Not set yet`, is_known_endpoint: false, user_indicator: "", max_daily_throughput: 100 }, + { name: `Set and needs updating`, is_known_endpoint: false, user_indicator: UserIndicator.PlannedToDecommission, max_daily_throughput: 50 }, + ]) + ); + await driver.setUp(updateLicensingEndpoints()); + }); + + const user = userEvent.setup(); + + const table = screen.getByRole("table", { name: tableName }); + + await driver.setUp( + precondition.hasLicensingEndpoints([ + { name: `Not set yet`, is_known_endpoint: false, user_indicator: UserIndicator.NServiceBusEndpoint, max_daily_throughput: 100 }, + { name: `Set and needs updating`, is_known_endpoint: false, user_indicator: UserIndicator.NServiceBusEndpoint, max_daily_throughput: 50 }, + ]) + ); + + return { user, table }; + }; + + test("single", async () => { + const { user, table } = await setup(); + + for (const row of within(table).getAllByRole("row").slice(1)) { + const dropdown = within(row).getByRole("combobox"); + // eslint-disable-next-line no-await-in-loop + await user.selectOptions(dropdown, UserIndicator.NServiceBusEndpoint); + } + + for (const row of within(table).getAllByRole("row").slice(1)) { + const dropdown = within(row).getByRole("combobox") as HTMLSelectElement; + expect(dropdown.value).toBe(UserIndicator.NServiceBusEndpoint); + } + }); + + test("bulk", async () => { + const { user, table } = await setup(); + + const bulkDropdown = screen.getByRole("button", { name: /Set Endpoint Type for all items below/i }); + await user.click(bulkDropdown); + const link = within(bulkDropdown.parentElement!).getByRole("link", { name: /NServiceBus Endpoint/i }); + await user.click(link); + const confirmDialog = screen.getByRole("dialog", { name: /Proceed with bulk operation/i }); + const yesButton = within(confirmDialog).getByRole("button", { name: /Yes/i }); + await user.click(yesButton); + + for (const row of within(table).getAllByRole("row").slice(1)) { + const dropdown = within(row).getByRole("combobox") as HTMLSelectElement; + expect(dropdown.value).toBe(UserIndicator.NServiceBusEndpoint); + } + }); + }); +}); diff --git a/frontend/src/views/throughputreport/endpoints/DetectedListView.vue b/frontend/src/views/throughputreport/endpoints/DetectedListView.vue new file mode 100644 index 0000000000..34d307f4f4 --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/DetectedListView.vue @@ -0,0 +1,290 @@ + + + + + diff --git a/frontend/src/views/throughputreport/endpoints/dataSource.ts b/frontend/src/views/throughputreport/endpoints/dataSource.ts new file mode 100644 index 0000000000..e8d66c0c95 --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/dataSource.ts @@ -0,0 +1,4 @@ +export enum DataSource { + "WellKnownEndpoint" = "ServiceControl", + "Broker" = "Broker", +} diff --git a/frontend/src/views/throughputreport/endpoints/useHiddenFeature.ts b/frontend/src/views/throughputreport/endpoints/useHiddenFeature.ts new file mode 100644 index 0000000000..28c11e2a58 --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/useHiddenFeature.ts @@ -0,0 +1,26 @@ +import { ref, watchEffect } from "vue"; + +const keys = ref([]); +const hiddenFeatureEnabled = ref(false); +const keyHandler = (event: KeyboardEvent) => { + keys.value.push(event.key); +}; + +watchEffect((onCleanup) => { + if (keys.value.length > 0) { + const timeout = setTimeout(() => keys.value.splice(0), 5000); + onCleanup(() => clearTimeout(timeout)); + } +}); + +window.document.addEventListener("keydown", keyHandler); + +export function useHiddenFeature(keyCombo: string[]) { + watchEffect(() => { + if (keys.value.toString() === keyCombo.toString()) { + hiddenFeatureEnabled.value = true; + } + }); + + return hiddenFeatureEnabled; +} diff --git a/frontend/src/views/throughputreport/endpoints/userIndicator.ts b/frontend/src/views/throughputreport/endpoints/userIndicator.ts new file mode 100644 index 0000000000..e0d1199d23 --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/userIndicator.ts @@ -0,0 +1,10 @@ +export enum UserIndicator { + NServiceBusEndpoint = "NServiceBusEndpoint", + NotNServiceBusEndpoint = "NotNServiceBusEndpoint", + TransactionalSessionProcessorEndpoint = "TransactionalSessionProcessorEndpoint", + SendOnlyEndpoint = "SendOnlyEndpoint", + NServiceBusEndpointNoLongerInUse = "NServiceBusEndpointNoLongerInUse", + PlannedToDecommission = "PlannedToDecommission", + GatewayOrBridgingEndpoint = "GatewayOrBridgingEndpoint", + ParticularPlatformEndpoint = "ParticularPlatformEndpoint", +} diff --git a/frontend/src/views/throughputreport/endpoints/userIndicatorMapper.ts b/frontend/src/views/throughputreport/endpoints/userIndicatorMapper.ts new file mode 100644 index 0000000000..09f5c8d0df --- /dev/null +++ b/frontend/src/views/throughputreport/endpoints/userIndicatorMapper.ts @@ -0,0 +1,12 @@ +import { UserIndicator } from "@/views/throughputreport/endpoints/userIndicator"; + +export const userIndicatorMapper = new Map([ + [UserIndicator.NServiceBusEndpoint, "NServiceBus Endpoint"], + [UserIndicator.NServiceBusEndpointNoLongerInUse, "No longer in use"], + [UserIndicator.TransactionalSessionProcessorEndpoint, "Transactional Session Processor Endpoint"], + [UserIndicator.SendOnlyEndpoint, "Send-Only Endpoint"], + [UserIndicator.PlannedToDecommission, "Planned to be decommissioned"], + [UserIndicator.NotNServiceBusEndpoint, "Not an NServiceBus Endpoint"], + [UserIndicator.GatewayOrBridgingEndpoint, "Gateway or Bridging Endpoint"], + [UserIndicator.ParticularPlatformEndpoint, "Particular Platform Infrastructure Endpoint"], +]); diff --git a/frontend/src/views/throughputreport/isThroughputSupported.ts b/frontend/src/views/throughputreport/isThroughputSupported.ts new file mode 100644 index 0000000000..90414bccad --- /dev/null +++ b/frontend/src/views/throughputreport/isThroughputSupported.ts @@ -0,0 +1,8 @@ +import useEnvironmentAndVersionsAutoRefresh from "@/composables/useEnvironmentAndVersionsAutoRefresh"; + +export const minimumSCVersionForThroughput = "5.4.0"; + +export default function useIsThroughputSupported() { + const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh(); + return environmentStore.serviceControlIsGreaterThan(minimumSCVersionForThroughput); +} diff --git a/frontend/src/views/throughputreport/serviceControlWithThroughput.ts b/frontend/src/views/throughputreport/serviceControlWithThroughput.ts new file mode 100644 index 0000000000..f8fb63cf4e --- /dev/null +++ b/frontend/src/views/throughputreport/serviceControlWithThroughput.ts @@ -0,0 +1,14 @@ +import { SetupFactoryOptions } from "../../../test/driver"; +import * as precondition from "../../../test/preconditions"; +import { minimumSCVersionForThroughput } from "@/views/throughputreport/isThroughputSupported"; + +export const serviceControlWithThroughput = async ({ driver }: SetupFactoryOptions) => { + await driver.setUp(precondition.hasUpToDateServicePulse); + await driver.setUp(precondition.hasUpToDateServiceControl); + await driver.setUp(precondition.errorsDefaultHandler); + await driver.setUp(precondition.hasCustomChecksEmpty); + await driver.setUp(precondition.hasEventLogItems); + await driver.setUp(precondition.hasNoHeartbeatsEndpoints); + await driver.setUp(precondition.hasServiceControlMainInstance(minimumSCVersionForThroughput)); + await driver.setUp(precondition.hasEndpointSettings([])); +}; diff --git a/frontend/src/views/throughputreport/setup/ConfigurationCode.vue b/frontend/src/views/throughputreport/setup/ConfigurationCode.vue new file mode 100644 index 0000000000..d004cdeb97 --- /dev/null +++ b/frontend/src/views/throughputreport/setup/ConfigurationCode.vue @@ -0,0 +1,110 @@ + + + + diff --git a/frontend/src/views/throughputreport/setup/ConnectionResultView.vue b/frontend/src/views/throughputreport/setup/ConnectionResultView.vue new file mode 100644 index 0000000000..9616f497a3 --- /dev/null +++ b/frontend/src/views/throughputreport/setup/ConnectionResultView.vue @@ -0,0 +1,29 @@ + + + + + diff --git a/frontend/src/views/throughputreport/setup/ConnectionSetupView.vue b/frontend/src/views/throughputreport/setup/ConnectionSetupView.vue new file mode 100644 index 0000000000..80fae259ea --- /dev/null +++ b/frontend/src/views/throughputreport/setup/ConnectionSetupView.vue @@ -0,0 +1,113 @@ + + + + diff --git a/frontend/src/views/throughputreport/setup/DiagnosticsView.spec.ts b/frontend/src/views/throughputreport/setup/DiagnosticsView.spec.ts new file mode 100644 index 0000000000..3d8f7f18e4 --- /dev/null +++ b/frontend/src/views/throughputreport/setup/DiagnosticsView.spec.ts @@ -0,0 +1,135 @@ +import { describe, expect, test } from "vitest"; +import * as precondition from "../../../../test/preconditions"; +import { minimumSCVersionForThroughput } from "@/views/throughputreport/isThroughputSupported"; +import DiagnosticsView from "./DiagnosticsView.vue"; +import { createTestingPinia } from "@pinia/testing"; +import { Transport } from "@/views/throughputreport/transport"; +import { makeDriverForTests, userEvent, render, screen } from "@component-test-utils"; +import { Driver } from "../../../../test/driver"; +import { disableMonitoring } from "../../../../test/drivers/vitest/setup"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; + +describe("DiagnosticsView tests", () => { + async function setup() { + const driver = makeDriverForTests(); + setActivePinia(createTestingPinia({ stubActions: false })); + + await driver.setUp(precondition.hasServiceControlMainInstance(minimumSCVersionForThroughput)); + await driver.setUp(precondition.hasUpToDateServicePulse); + await driver.setUp(precondition.hasUpToDateServiceControl); + await driver.setUp(precondition.errorsDefaultHandler); + + return driver; + } + + async function renderComponent(transport: Transport = Transport.MSMQ, preSetup: (driver: Driver) => Promise = () => Promise.resolve()) { + const driver = await setup(); + + await preSetup(driver); + + await driver.setUp( + precondition.hasLicensingSettingTest({ + transport, + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Audit diagnostics", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Monitoring diagnostics", + }, + broker_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Broker diagnostics", + }, + }) + ); + + useServiceControlStore(); + + const { debug } = render(DiagnosticsView, { + global: { + plugins: [], + directives: { + // Add stub for tippy directive + tippy: () => {}, + }, + }, + }); + + return { debug, driver }; + } + + test("renders audit diagnostics when not a broker and monitoring is not enabled", async () => { + disableMonitoring(); + + await renderComponent(); + const use = userEvent.setup(); + await use.click(screen.getByRole("button", { name: /Refresh Connection Test/i })); + expect(screen.getByText(/Audit diagnostics/i)).toBeInTheDocument(); + expect(screen.queryByText(/Broker diagnostics/i)).toBeNull(); + expect(screen.queryByText(/Monitoring diagnostics/i)).toBeNull(); + }); + + test("renders audit and broker diagnostics with monitoring not enabled", async () => { + disableMonitoring(); + + await renderComponent(Transport.AmazonSQS); + const use = userEvent.setup(); + await use.click(screen.getByRole("button", { name: /Refresh Connection Test/i })); + expect(screen.getByText(/Audit diagnostics/i)).toBeInTheDocument(); + expect(screen.getByText(/Broker diagnostics/i)).toBeInTheDocument(); + expect(screen.queryByText(/Monitoring diagnostics/i)).toBeNull(); + }); + + test("renders audit, broker and monitoring diagnostics when all enabled", async () => { + await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasServiceControlMonitoringInstance); + await driver.setUp(precondition.hasNoDisconnectedEndpoints); + }); + const use = userEvent.setup(); + await use.click(screen.getByRole("button", { name: /Refresh Connection Test/i })); + expect(screen.getByText(/Audit diagnostics/i)).toBeInTheDocument(); + expect(screen.getByText(/Broker diagnostics/i)).toBeInTheDocument(); + expect(screen.getByText(/Monitoring diagnostics/i)).toBeInTheDocument(); + }); + + test("refreshes diagnostics", async () => { + const { driver } = await renderComponent(Transport.AmazonSQS, async (driver) => { + await driver.setUp(precondition.hasServiceControlMonitoringInstance); + await driver.setUp(precondition.hasNoDisconnectedEndpoints); + }); + const use = userEvent.setup(); + await use.click(screen.getByRole("button", { name: /Refresh Connection Test/i })); + + await driver.setUp( + precondition.hasLicensingSettingTest({ + transport: Transport.AmazonSQS, + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Audit refreshed diagnostics", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Monitoring refreshed diagnostics", + }, + broker_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "Broker refreshed diagnostics", + }, + }) + ); + + await use.click(screen.getByRole("button", { name: /Refresh Connection Test/i })); + expect(screen.getByText(/Audit refreshed diagnostics/i)).toBeInTheDocument(); + expect(screen.getByText(/Broker refreshed diagnostics/i)).toBeInTheDocument(); + expect(screen.getByText(/Monitoring refreshed diagnostics/i)).toBeInTheDocument(); + }); +}); diff --git a/frontend/src/views/throughputreport/setup/DiagnosticsView.vue b/frontend/src/views/throughputreport/setup/DiagnosticsView.vue new file mode 100644 index 0000000000..dbf90fad6e --- /dev/null +++ b/frontend/src/views/throughputreport/setup/DiagnosticsView.vue @@ -0,0 +1,58 @@ + + + + + diff --git a/frontend/src/views/throughputreport/setup/MasksView.spec.ts b/frontend/src/views/throughputreport/setup/MasksView.spec.ts new file mode 100644 index 0000000000..68d3b5d168 --- /dev/null +++ b/frontend/src/views/throughputreport/setup/MasksView.spec.ts @@ -0,0 +1,77 @@ +import { makeDriverForTests, userEvent, render, screen } from "@component-test-utils"; +import MasksView from "@/views/throughputreport/setup/MasksView.vue"; +import { describe, expect, test } from "vitest"; +import * as precondition from "../../../../test/preconditions"; +import { minimumSCVersionForThroughput } from "@/views/throughputreport/isThroughputSupported"; +import Toast from "vue-toastification"; +import { disableMonitoring } from "../../../../test/drivers/vitest/setup"; +import { flushPromises } from "@vue/test-utils"; +import { createTestingPinia } from "@pinia/testing"; +import { useServiceControlStore } from "@/stores/ServiceControlStore"; +import { setActivePinia } from "pinia"; +import { getDefaultConfig } from "@/defaultConfig"; + +describe("MaskView tests", () => { + async function setup() { + const driver = makeDriverForTests(); + + disableMonitoring(); + + await driver.setUp(precondition.hasServiceControlMainInstance(minimumSCVersionForThroughput)); + await driver.setUp(precondition.hasUpToDateServicePulse); + await driver.setUp(precondition.hasUpToDateServiceControl); + await driver.setUp(precondition.errorsDefaultHandler); + + return driver; + } + + async function renderComponent(body: string[] = []) { + const driver = await setup(); + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/settings/masks`, { body }); + setActivePinia(createTestingPinia({ stubActions: false })); + + useServiceControlStore(); + + const { debug } = render(MasksView, { global: { plugins: [Toast], directives: { tippy: () => {} } } }); + await flushPromises(); + + return { debug, driver }; + } + + function getTextAreaElement() { + return screen.getByRole("textbox", { name: /List of words to mask/i }) as HTMLTextAreaElement; + } + + test("renders empty list", async () => { + await renderComponent(); + + expect(getTextAreaElement().value).toBe(""); + }); + + test("renders mask list loaded from server", async () => { + await renderComponent(["first", "second"]); + + expect(getTextAreaElement().value).toBe("first\nsecond"); + }); + + test("update mask list", async () => { + await renderComponent(["first", "second"]); + + const use = userEvent.setup(); + await use.type(getTextAreaElement(), "\nthree\nfour\nfive"); + + expect(getTextAreaElement().value).toBe("first\nsecond\nthree\nfour\nfive"); + }); + + test("save mask list", async () => { + const { driver } = await renderComponent(["first", "second"]); + + const use = userEvent.setup(); + await use.type(getTextAreaElement(), "\nthree\nfour\nfive"); + + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/settings/masks/update`, { body: undefined, method: "post" }); + await use.click(screen.getByRole("button", { name: /Save/i })); + + expect(screen.queryAllByText(/Masks Saved/i).length).toBeGreaterThanOrEqual(1); + }); +}); diff --git a/frontend/src/views/throughputreport/setup/MasksView.vue b/frontend/src/views/throughputreport/setup/MasksView.vue new file mode 100644 index 0000000000..e2f9b4ec32 --- /dev/null +++ b/frontend/src/views/throughputreport/setup/MasksView.vue @@ -0,0 +1,64 @@ + + + + + diff --git a/frontend/src/views/throughputreport/throughputClient.ts b/frontend/src/views/throughputreport/throughputClient.ts new file mode 100644 index 0000000000..40083614d8 --- /dev/null +++ b/frontend/src/views/throughputreport/throughputClient.ts @@ -0,0 +1,72 @@ +import EndpointThroughputSummary from "@/resources/EndpointThroughputSummary"; +import UpdateUserIndicator from "@/resources/UpdateUserIndicator"; +import ConnectionTestResults from "@/resources/ConnectionTestResults"; +import ThroughputConnectionSettings from "@/resources/ThroughputConnectionSettings"; +import { downloadFileFromResponse } from "@/composables/fileDownloadCreator"; +import ReportGenerationState from "@/resources/ReportGenerationState"; +import { parse } from "@tinyhttp/content-disposition"; +import { ServiceControlStore, useServiceControlStore } from "@/stores/ServiceControlStore"; +import { getDefaultConfig } from "@/defaultConfig"; + +class ThroughputClient { + serviceControlStore: ServiceControlStore; + constructor(readonly basePath: string) { + //this module is only called from within view setup or other pinia stores, so this call is lifecycle safe + this.serviceControlStore = useServiceControlStore(); + } + + public async endpoints() { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/endpoints`); + + return data; + } + + public async updateIndicators(data: UpdateUserIndicator[]): Promise { + await this.serviceControlStore.postToServiceControl(`${this.basePath}/endpoints/update`, data); + } + + public async test() { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/test`); + return data; + } + + public async setting() { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/info`); + return data; + } + + public async reportAvailable() { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/report/available`); + return data; + } + + public async downloadReport() { + const response = await this.serviceControlStore.fetchFromServiceControl(`${this.basePath}/report/file?spVersion=${encodeURIComponent(getDefaultConfig().version)}`); + if (response.ok) { + let fileName = "throughput-report.json"; + const contentType = response.headers.get("Content-Type") ?? "application/json"; + const contentDisposition = response.headers.get("Content-Disposition"); + try { + if (contentDisposition != null) { + fileName = parse(contentDisposition).parameters["filename"] as string; + } + } catch { + //fallback to the default name, if filename is missing in response header + } + await downloadFileFromResponse(response, contentType, fileName); + return fileName; + } + return ""; + } + + public async getMasks() { + const [, data] = await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/masks`); + return data; + } + + public async updateMasks(data: string[]): Promise { + await this.serviceControlStore.postToServiceControl(`${this.basePath}/settings/masks/update`, data); + } +} + +export default () => new ThroughputClient("licensing"); diff --git a/frontend/src/views/throughputreport/transport.ts b/frontend/src/views/throughputreport/transport.ts new file mode 100644 index 0000000000..a55ed96803 --- /dev/null +++ b/frontend/src/views/throughputreport/transport.ts @@ -0,0 +1,11 @@ +export enum Transport { + None = "None", + MSMQ = "MSMQ", + AzureStorageQueue = "AzureStorageQueue", + NetStandardAzureServiceBus = "AzureServiceBus", + LearningTransport = "LearningTransport", + RabbitMQ = "RabbitMQ", + SQLServer = "SqlTransport", + AmazonSQS = "AmazonSQS", + PostgreSQL = "PostgreSql", +} diff --git a/frontend/src/vue3-simple-typeahead.d.ts b/frontend/src/vue3-simple-typeahead.d.ts new file mode 100644 index 0000000000..87725a8eb4 --- /dev/null +++ b/frontend/src/vue3-simple-typeahead.d.ts @@ -0,0 +1 @@ +declare module "vue3-simple-typeahead"; diff --git a/frontend/test/driver.ts b/frontend/test/driver.ts new file mode 100644 index 0000000000..af86bcb85c --- /dev/null +++ b/frontend/test/driver.ts @@ -0,0 +1,40 @@ +import { DefaultBodyType, StrictRequest, type PathParams } from "msw"; + +type GoTo = (path: string) => Promise; +type DisposeApp = () => void; + +export type Method = "get" | "post" | "patch" | "put" | "delete" | "options"; + +export type MockEndpointOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + body: Record | string | number | boolean | null | undefined; + method?: Method; + status?: number; + headers?: { [key: string]: string }; +}; + +export type MockEndpointDynamicOptions = { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + body: Record | string | number | boolean | null | undefined; + status?: number; + headers?: { [key: string]: string }; +}; + +type MockEndpoint = (path: string, options: MockEndpointOptions) => void; +type MockEndpointDynamic = (endpoint: string, method: Method, callBack: (url: URL, params: PathParams, request: StrictRequest) => Promise) => void; + +export type SetupFactoryOptions = { + driver: Driver; +}; +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type SetupFactory = ({ driver }: SetupFactoryOptions) => any; + +type SetUp = (factory: Factory) => Promise>; + +export type Driver = { + goTo: GoTo; + mockEndpoint: MockEndpoint; + mockEndpointDynamic: MockEndpointDynamic; + setUp: SetUp; + disposeApp: DisposeApp; +}; diff --git a/frontend/test/drivers/vitest/driver.ts b/frontend/test/drivers/vitest/driver.ts new file mode 100644 index 0000000000..36e1adcd48 --- /dev/null +++ b/frontend/test/drivers/vitest/driver.ts @@ -0,0 +1,78 @@ +import { flushPromises } from "@vue/test-utils"; +import { test as testVitest, describe } from "vitest"; +import { Driver } from "../../driver"; +import { mount } from "@/mount"; +import makeRouter from "../../../src/router"; +import { mockEndpoint, mockEndpointDynamic } from "../../utils"; +import { App } from "vue"; +import { mockServer } from "../../mock-server"; + +function makeDriver() { + let app: App; + const driver = { + async goTo(path) { + const router = makeRouter(); + try { + await router.push(path); + } catch (error) { + // Ignore redirection error. + if (error instanceof Error && error.message.includes("Redirected when going from")) { + return; + } + + throw error; + } + + document.body.innerHTML = '
'; + app = mount({ router }); + }, + mockEndpoint, + mockEndpointDynamic: mockEndpointDynamic, + setUp(factory) { + return factory({ driver: this }); + }, + disposeApp() { + app.unmount(); + }, + }; + return driver; +} + +function deleteAllCookies() { + const cookies = document.cookie.split(";"); + + for (let i = 0; i < cookies.length; i++) { + const cookie = cookies[i]; + const eqPos = cookie.indexOf("="); + const name = eqPos > -1 ? cookie.slice(0, eqPos) : cookie; + document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT"; + } +} + +const test = testVitest.extend<{ driver: Driver }>({ + // eslint-disable-next-line no-empty-pattern, @typescript-eslint/no-explicit-any + driver: async ({}, use: any) => { + const driver = makeDriver(); + console.log("Starting test"); + + //run the test + await use(driver); + + console.log("Test ended"); + //unmount the app after the test runs + driver.disposeApp(); + + // We need to wait for any pending promises to resolve before resetting handlers and clearing storage + await flushPromises(); + + console.log("Cleanup after test"); + mockServer.resetHandlers(); + //Make JSDOM create a fresh document per each test run + jsdom.reconfigure({ url: "http://localhost:3000/" }); + localStorage.clear(); + sessionStorage.clear(); + deleteAllCookies(); + }, +}); + +export { test, describe }; diff --git a/frontend/test/drivers/vitest/setup.ts b/frontend/test/drivers/vitest/setup.ts new file mode 100644 index 0000000000..efcac68d6e --- /dev/null +++ b/frontend/test/drivers/vitest/setup.ts @@ -0,0 +1,35 @@ +import { afterAll, beforeAll, beforeEach } from "vitest"; +import { mockServer } from "../../mock-server"; +import "@testing-library/jest-dom/vitest"; +import { setDefaultConfig, type DefaultConfig } from "@/defaultConfig"; + +const defaultConfig: DefaultConfig = { + default_route: "/dashboard", + version: "1.2.0", + service_control_url: "http://localhost:33333/api/", + monitoring_url: "http://localhost:33633/", + showPendingRetry: false, +}; + +export function disableMonitoring() { + setDefaultConfig({ ...defaultConfig, monitoring_url: "!" }); +} + +beforeEach(() => { + setDefaultConfig(defaultConfig); +}); + +beforeAll(() => { + console.log("Starting mock server"); + + mockServer.listen({ + onUnhandledRequest: (_, print) => { + print.warning(); + }, + }); +}); + +afterAll(() => { + console.log("Shutting down mock server"); + mockServer.close(); +}); diff --git a/frontend/test/mock-endpoint.ts b/frontend/test/mock-endpoint.ts new file mode 100644 index 0000000000..9eac041efa --- /dev/null +++ b/frontend/test/mock-endpoint.ts @@ -0,0 +1,22 @@ +import { DefaultBodyType, http, HttpResponse, StrictRequest, type PathParams } from "msw"; +import type { SetupWorker } from "msw/browser"; +import { SetupServer } from "msw/node"; +import { MockEndpointDynamicOptions, MockEndpointOptions, Method } from "./driver"; + +export const makeMockEndpoint = + ({ mockServer }: { mockServer: SetupServer | SetupWorker }) => + (endpoint: string, { body, method = "get", status = 200, headers = {} }: MockEndpointOptions) => { + mockServer.use(http[method](endpoint, () => HttpResponse.json(body, { status: status, headers: headers }))); + }; + +export const makeMockEndpointDynamic = + ({ mockServer }: { mockServer: SetupServer | SetupWorker }) => + (endpoint: string, method: Method = "get", callBack: (url: URL, params: PathParams, request: StrictRequest) => Promise) => { + mockServer.use( + http[method](endpoint, async ({ request, params }) => { + const url = new URL(request.url.toString()); + const { body, status = 200, headers = {} } = await callBack(url, params, request); + return HttpResponse.json(body, { status: status, headers: headers }); + }) + ); + }; diff --git a/frontend/test/mock-server.ts b/frontend/test/mock-server.ts new file mode 100644 index 0000000000..12e2a779d5 --- /dev/null +++ b/frontend/test/mock-server.ts @@ -0,0 +1,3 @@ +import { setupServer } from "msw/node"; + +export const mockServer = setupServer(); diff --git a/frontend/test/mocks/browser.ts b/frontend/test/mocks/browser.ts new file mode 100644 index 0000000000..5b192293d7 --- /dev/null +++ b/frontend/test/mocks/browser.ts @@ -0,0 +1,48 @@ +import { setupWorker } from "msw/browser"; +import { Driver } from "../driver"; +import { makeMockEndpoint, makeMockEndpointDynamic } from "../mock-endpoint"; +import * as precondition from "../preconditions"; +export const worker = setupWorker(); +const mockEndpoint = makeMockEndpoint({ mockServer: worker }); +const mockEndpointDynamic = makeMockEndpointDynamic({ mockServer: worker }); + +const makeDriver = (): Driver => ({ + goTo() { + throw new Error("Not implemented"); + }, + mockEndpoint, + mockEndpointDynamic, + setUp(factory) { + return factory({ driver: this }); + }, + disposeApp() { + throw new Error("Not implemented"); + }, +}); + +const driver = makeDriver(); + +(async () => { + await driver.setUp(precondition.serviceControlWithMonitoring); + //override the default mocked endpoints with a custom list + await driver.setUp(precondition.hasCustomChecks(3, 2)); + + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + ]) + ); + await driver.setUp( + precondition.hasFailedMessage({ + withGroupId: "81dca64e-76fc-e1c3-11a2-3069f51c58c8", + withMessageId: "40134401-bab9-41aa-9acb-b19c0066f22d", + withContentType: "application/json", + withBody: { Index: 0, Data: "" }, + }) + ); +})(); diff --git a/frontend/test/mocks/event-log-items-template.ts b/frontend/test/mocks/event-log-items-template.ts new file mode 100644 index 0000000000..7ad74ad372 --- /dev/null +++ b/frontend/test/mocks/event-log-items-template.ts @@ -0,0 +1,258 @@ +import EventLogItem, { Severity } from "@/resources/EventLogItem"; + +export const eventLogInfoItem = { + id: "EventLogItem/EndpointControl/EndpointStarted/71648490-d233-4649-a4be-a32ad74f2c3d", + description: "Endpoint 'A.C.Billing' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:36:59.7562274Z", + related_to: ["/endpoint/A.C.Billing", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "EndpointControl", + event_type: "EndpointStarted", +}; + +export const eventLogErrorItem = { + id: "EventLogItem/HeartbeatMonitoring/EndpointFailedToHeartbeat/ace4f469-d06c-407e-83a2-e1472830602b", + description: "Endpoint A.C.Test.Shipping has failed to send expected heartbeat to ServiceControl on host mobvm2. It is possible that the endpoint could be down or is unresponsive. If this condition persists restart the endpoint.", + severity: Severity.Error, + raised_at: "2024-01-17T20:43:44.2911811Z", + related_to: ["/endpoint/A.C.Test.Shipping", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "EndpointFailedToHeartbeat", +}; + +export const eventLogItems: EventLogItem[] = [ + { + id: "EventLogItem/EndpointControl/EndpointStarted/71648490-d233-4649-a4be-a32ad74f2c3d", + description: "Endpoint 'A.C.Billing' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:36:59.7562274Z", + related_to: ["/endpoint/A.C.Billing", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/cd4d5d73-6c85-4bca-9839-e4eca1010dc6", + description: "Endpoint 'A.C.ClientUI' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:01.2718812Z", + related_to: ["/endpoint/A.C.ClientUI", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/fcfcf0f4-4062-4755-b828-8e5da7fafb77", + description: "Endpoint A.C.ClientUI running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:11.4278863Z", + related_to: ["/endpoint/mobvm2", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/9d951f41-f2b5-44f3-8d35-cc263c988948", + description: "Endpoint A.C.Billing running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:10.0854951Z", + related_to: ["/endpoint/mobvm2", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/5d08d338-c8c9-4725-86af-f284e46e4fe4", + description: "Endpoint 'A.C.Test.Shipping' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:33.6238008Z", + related_to: ["/endpoint/A.C.Test.Shipping", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/fba4a0d6-4357-4c84-8eca-94aa0192f3a5", + description: "Endpoint 'A.C.Sales' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:33.7768681Z", + related_to: ["/endpoint/A.C.Sales", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/0ef6280b-7c5d-4470-85af-635776d3b1c8", + description: "Endpoint A.C.Test.Shipping running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:43.8031271Z", + related_to: ["/endpoint/mobvm2", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/e7ac0797-dad0-482f-909f-7a94f514dd88", + description: "Endpoint A.C.Sales running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-17T20:37:43.9606575Z", + related_to: ["/endpoint/mobvm2", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/51a0341b-ff8f-4b86-bc87-c760c78f03bb", + description: "Endpoint 'A.C.Billing' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:43:55.9277993Z", + related_to: ["/endpoint/A.C.Billing", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/a9a1701e-c3af-4d97-afe5-ada0c8909135", + description: "Endpoint 'A.C.ClientUI' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-17T20:43:56.5597366Z", + related_to: ["/endpoint/A.C.ClientUI", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/HeartbeatMonitoring/EndpointFailedToHeartbeat/ace4f469-d06c-407e-83a2-e1472830602b", + description: "Endpoint A.C.Test.Shipping has failed to send expected heartbeat to ServiceControl on host mobvm2. It is possible that the endpoint could be down or is unresponsive. If this condition persists restart the endpoint.", + severity: Severity.Error, + raised_at: "2024-01-17T20:43:44.2911811Z", + related_to: ["/endpoint/A.C.Test.Shipping", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "EndpointFailedToHeartbeat", + }, + { + id: "EventLogItem/HeartbeatMonitoring/EndpointFailedToHeartbeat/27d608d2-5742-45d0-89d9-5f5022336b83", + description: "Endpoint A.C.Sales has failed to send expected heartbeat to ServiceControl on host mobvm2. It is possible that the endpoint could be down or is unresponsive. If this condition persists restart the endpoint.", + severity: Severity.Error, + raised_at: "2024-01-17T20:43:44.3999114Z", + related_to: ["/endpoint/A.C.Sales", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "HeartbeatMonitoring", + event_type: "EndpointFailedToHeartbeat", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/5d1cd28c-0778-4640-80b9-a90fb2cb15d1", + description: "Endpoint A.C.Test.Shipping running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T00:39:04.0303413Z", + related_to: ["/endpoint/mobvm2", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/788d49d2-60b6-4357-8656-23cdd49bdce2", + description: "Endpoint A.C.Sales running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T00:39:03.2703321Z", + related_to: ["/endpoint/mobvm2", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/82cee9eb-9982-4e48-828a-04609f9e1b36", + description: "Endpoint A.C.ClientUI running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T00:38:56.5984615Z", + related_to: ["/endpoint/mobvm2", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/ac012de1-ddef-4039-a7e2-5199180f9d1c", + description: "Endpoint A.C.Billing running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T00:39:05.32629Z", + related_to: ["/endpoint/mobvm2", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/0407dd1e-3c41-4b2b-9fab-3b76f9fb0801", + description: "Endpoint A.C.ClientUI running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T17:26:45.3960557Z", + related_to: ["/endpoint/mobvm2", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/69268396-feaa-417e-aff1-afc5348ecf3a", + description: "Endpoint A.C.Billing running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T17:26:53.6281349Z", + related_to: ["/endpoint/mobvm2", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/9cf13a6d-19dd-4185-8c6c-3c73c394204a", + description: "Endpoint 'A.C.Test.Shipping' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-23T17:29:29.4241151Z", + related_to: ["/endpoint/A.C.Test.Shipping", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/EndpointControl/EndpointStarted/16e6ae03-5eb2-47f0-a177-0c1fb9c23b06", + description: "Endpoint 'A.C.Sales' started on host mobvm2.", + severity: Severity.Info, + raised_at: "2024-01-23T17:29:29.5676709Z", + related_to: ["/endpoint/A.C.Sales", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "EndpointControl", + event_type: "EndpointStarted", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/1a7ad0e3-21ed-455f-bf58-898365579bc6", + description: "Endpoint A.C.Test.Shipping running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T17:29:39.5840091Z", + related_to: ["/endpoint/mobvm2", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/182c8027-2100-4efb-9ee9-49cf4d154ff3", + description: "Endpoint A.C.Sales running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-23T17:29:39.768301Z", + related_to: ["/endpoint/mobvm2", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/ef138ef1-b726-4cd6-b488-baf078134b49", + description: "Endpoint A.C.Test.Shipping running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-24T04:43:35.1785174Z", + related_to: ["/endpoint/mobvm2", "/host/c62841c1-e8ab-e364-15eb-7ec412cedf58"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/e56815fd-09bd-4fda-b05c-72a56eb9d600", + description: "Endpoint A.C.Sales running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-24T04:43:35.6138283Z", + related_to: ["/endpoint/mobvm2", "/host/6b40b6b9-9489-9339-d037-72d23d5c5f19"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/2973ad07-3148-4db5-90b3-f628a24192c8", + description: "Endpoint A.C.ClientUI running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-24T04:43:36.5952086Z", + related_to: ["/endpoint/mobvm2", "/host/cce2f6ad-d518-9ee3-4de8-af0e2cc9da34"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, + { + id: "EventLogItem/HeartbeatMonitoring/HeartbeatingEndpointDetected/073b22a3-77e9-4fda-a925-da1a1e73bf08", + description: "Endpoint A.C.Billing running on host mobvm2 has been confirmed to have heartbeats enabled.", + severity: Severity.Info, + raised_at: "2024-01-24T04:43:34.7539958Z", + related_to: ["/endpoint/mobvm2", "/host/af940336-eb7c-92f0-687a-f81fe94a0673"], + category: "HeartbeatMonitoring", + event_type: "HeartbeatingEndpointDetected", + }, +]; diff --git a/frontend/test/mocks/heartbeat-endpoint-template.ts b/frontend/test/mocks/heartbeat-endpoint-template.ts new file mode 100644 index 0000000000..35978b1612 --- /dev/null +++ b/frontend/test/mocks/heartbeat-endpoint-template.ts @@ -0,0 +1,20 @@ +import { EndpointsView } from "@/resources/EndpointView"; +import { EndpointStatus } from "@/resources/Heartbeat"; + +export const healthyEndpointTemplate = { + is_sending_heartbeats: true, + id: "HealthyEndpoint", + name: "HealthyEndpoint", + monitor_heartbeat: true, + host_display_name: "HealhtyEndpoint.Hostname", + heartbeat_information: { reported_status: EndpointStatus.Alive, last_report_at: new Date().toISOString() }, +}; + +export const unHealthyEndpointTemplate = { + is_sending_heartbeats: true, + id: "UnHealthyEndpoint", + name: `UnHealthyEndpoint`, + monitor_heartbeat: true, + host_display_name: "UnHealhtyEndpoint.Hostname", + heartbeat_information: { reported_status: EndpointStatus.Dead, last_report_at: new Date().toISOString() }, +}; diff --git a/frontend/test/mocks/history-period-template.ts b/frontend/test/mocks/history-period-template.ts new file mode 100644 index 0000000000..1cf510a774 --- /dev/null +++ b/frontend/test/mocks/history-period-template.ts @@ -0,0 +1,40 @@ +import { Endpoint } from "@/resources/MonitoringEndpoint"; + +export const oneEndpointWithMetricsPoints = (queueLength: number | number[], throughput: number | number[], retries: number | number[], processingTime: number | number[], criticalTime: number | number[]): Endpoint[] => { + return [ + { + name: "Endpoint1", + isStale: false, + errorCount: 411, + serviceControlId: "voluptatibus", + isScMonitoringDisconnected: false, + endpointInstanceIds: ["c62841c1e8abe36415eb7ec412cedf58"], + metrics: { + queueLength: { + average: queueLength, + points: [queueLength], + }, + throughput: { + average: throughput, + points: [throughput], + }, + retries: { + average: retries, + points: [retries], + }, + processingTime: { + average: processingTime, + points: [processingTime], + timeAxisValues: [], + }, + criticalTime: { + average: criticalTime, + points: [criticalTime], + timeAxisValues: [], + }, + }, + disconnectedCount: 0, + connectedCount: 1, + }, + ]; +}; diff --git a/frontend/test/mocks/monitored-endpoint-template.ts b/frontend/test/mocks/monitored-endpoint-template.ts new file mode 100644 index 0000000000..ead47042cf --- /dev/null +++ b/frontend/test/mocks/monitored-endpoint-template.ts @@ -0,0 +1,351 @@ +import { Endpoint, ExtendedEndpointInstance, EndpointMetrics, ExtendedEndpointDetails, MessageType } from "@/resources/MonitoringEndpoint"; + +export const monitoredEndpointTemplate = { + name: "A happy endpoint", + isStale: false, + errorCount: 150, + serviceControlId: "voluptatibus", + isScMonitoringDisconnected: false, + endpointInstanceIds: ["c62841c1e8abe36415eb7ec412cedf58"], + metrics: { + processingTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + criticalTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + retries: { + average: 0.0, + points: [], + }, + throughput: { + average: 0.0, + points: [], + }, + queueLength: { + average: 0.0, + points: [], + }, + }, + disconnectedCount: 0, + connectedCount: 1, +}; + +export const monitoredEndpointList: Endpoint[] = [ + { + name: "A.C.Test.Shipping", + isStale: false, + endpointInstanceIds: ["c62841c1e8abe36415eb7ec412cedf58"], + metrics: { + processingTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + criticalTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + retries: { + average: 0.0, + points: [], + }, + throughput: { + average: 0.0, + points: [], + }, + queueLength: { + average: 0.0, + points: [ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + ], + }, + }, + disconnectedCount: 0, + connectedCount: 1, + errorCount: 0, + serviceControlId: "", + isScMonitoringDisconnected: false, + }, + { + name: "A.C.ClientUI", + isStale: false, + endpointInstanceIds: ["cce2f6add5189ee34de8af0e2cc9da34"], + metrics: { + processingTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + criticalTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + retries: { + average: 0.0, + points: [], + }, + throughput: { + average: 0.0, + points: [], + }, + queueLength: { + average: 0.0, + points: [ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + ], + }, + }, + disconnectedCount: 0, + connectedCount: 1, + errorCount: 0, + serviceControlId: "", + isScMonitoringDisconnected: false, + }, + { + name: "A.C.Sales1", + isStale: false, + endpointInstanceIds: ["6b40b6b994899339d03772d23d5c5f19"], + metrics: { + processingTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + criticalTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + retries: { + average: 0.0, + points: [], + }, + throughput: { + average: 0.0, + points: [], + }, + queueLength: { + average: 0.0, + points: [ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + ], + }, + }, + disconnectedCount: 0, + connectedCount: 1, + errorCount: 0, + serviceControlId: "", + isScMonitoringDisconnected: false, + }, + { + name: "A.C.Billing", + isStale: false, + endpointInstanceIds: ["af940336eb7c92f0687af81fe94a0673"], + metrics: { + processingTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + criticalTime: { + average: 0.0, + points: [], + timeAxisValues: [], + }, + retries: { + average: 0.0, + points: [], + }, + throughput: { + average: 0.0, + points: [], + }, + queueLength: { + average: 0.0, + points: [ + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + ], + }, + }, + disconnectedCount: 0, + connectedCount: 1, + errorCount: 0, + serviceControlId: "", + isScMonitoringDisconnected: false, + }, +]; + +export const monitoredEndpointDetails = { + isScMonitoringDisconnected: false, + errorCount: 0, + digest: { + metrics: { + processingTime: { + latest: 0, + average: 74.82203389830508, + }, + criticalTime: { + latest: 0, + average: 239.78813559322035, + }, + retries: { + latest: 0, + average: 0, + }, + throughput: { + latest: 0, + average: 1.9666666666666666, + }, + queueLength: { + latest: 2, + average: 2, + }, + }, + }, + instances: [ + { + id: "d4b8b36ba72b0738feffe71105aaceQ1", + name: "Endpoint1", + isStale: false, + metrics: { + processingTime: { + average: 74.82203389830508, + points: [0], + }, + criticalTime: { + average: 239.78813559322035, + points: [0], + }, + retries: { + average: 0, + points: [0], + }, + throughput: { + average: 1.9666666666666666, + points: [0], + }, + }, + }, + ], + messageTypes: [ + { + id: "Message1, Shared, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", + typeName: "Message1", + assemblyName: "Shared", + assemblyVersion: "1.0.0.0", + culture: "neutral", + publicKeyToken: "null", + metrics: { + processingTime: { + average: 74.82203389830508, + points: [0], + }, + criticalTime: { + average: 239.78813559322035, + points: [0], + }, + retries: { + average: 0, + points: [0], + }, + throughput: { + average: 1.9666666666666666, + points: [0], + }, + }, + }, + ], + metricDetails: { + metrics: { + processingTime: { + timeAxisValues: ["2024-06-12T23:47:00Z"], + average: 74.82203389830508, + points: [0], + }, + criticalTime: { + timeAxisValues: ["2024-06-12T23:47:00Z"], + average: 239.78813559322035, + points: [0], + }, + retries: { + timeAxisValues: [], + average: 0, + points: [0], + }, + throughput: { + timeAxisValues: [], + average: 1.9666666666666666, + points: [0], + }, + queueLength: { + timeAxisValues: [], + average: 2, + points: [0], + }, + }, + }, +}; + +export const messageTypeForEndpoint = { + id: "Message1, Shared, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", + typeName: "Message1", + assemblyName: "Shared", + assemblyVersion: "1.0.0.0", + culture: "neutral", + publicKeyToken: "null", + metrics: { + processingTime: { + average: 74.82203389830508, + points: [0], + }, + criticalTime: { + average: 239.78813559322035, + points: [0], + }, + retries: { + average: 0, + points: [0], + }, + throughput: { + average: 1.9666666666666666, + points: [0], + }, + }, +}; + +export const instanceForEndpoint = { + id: "d4b8b36ba72b0738feffe71105aaceQ1", + name: "Endpoint1", + isStale: false, + metrics: { + processingTime: { + average: 74.82203389830508, + points: [0], + }, + criticalTime: { + average: 239.78813559322035, + points: [0], + }, + retries: { + average: 0, + points: [0], + }, + throughput: { + average: 1.9666666666666666, + points: [0], + }, + }, +}; + +export const noMonitoredEndpoints = []; diff --git a/frontend/test/mocks/platform-updates-template.ts b/frontend/test/mocks/platform-updates-template.ts new file mode 100644 index 0000000000..6e3130a9ca --- /dev/null +++ b/frontend/test/mocks/platform-updates-template.ts @@ -0,0 +1,307 @@ +import type Release from "@/resources/Release"; + +export const serviceControlNoPlatformUpdatesNeeded: Release[] = [ + { + tag: "5.0.4", + release: "https://github.com/Particular/ServiceControl/releases/tag/5.0.4", + published: "2024-01-23T09:56:56Z", + }, + { + tag: "4.33.2", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.33.2", + published: "2024-01-23T15:47:12Z", + }, + { + tag: "5.0.3", + release: "https://github.com/Particular/ServiceControl/releases/tag/5.0.3", + published: "2023-12-19T23:44:11Z", + }, + { + tag: "5.0.2", + release: "https://github.com/Particular/ServiceControl/releases/tag/5.0.2", + published: "2023-12-19T13:31:02Z", + }, + { + tag: "5.0.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/5.0.1", + published: "2023-12-08T10:33:57Z", + }, + { + tag: "4.33.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.33.1", + published: "2023-12-08T10:00:43Z", + }, + { + tag: "5.0.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/5.0.0", + published: "2023-12-01T20:15:16Z", + }, + { + tag: "4.33.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.33.0", + published: "2023-11-20T20:07:51Z", + }, + { + tag: "4.32.4", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.32.4", + published: "2023-11-15T10:06:55Z", + }, + { + tag: "4.32.3", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.32.3", + published: "2023-11-06T11:33:37Z", + }, + { + tag: "4.32.2", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.32.2", + published: "2023-07-21T16:50:47Z", + }, + { + tag: "4.32.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.32.1", + published: "2023-07-05T07:00:57Z", + }, + { + tag: "4.32.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.32.0", + published: "2023-06-22T19:11:16Z", + }, + { + tag: "4.31.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.31.0", + published: "2023-06-07T01:38:57Z", + }, + { + tag: "4.30.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.30.1", + published: "2023-05-29T09:26:53Z", + }, + { + tag: "4.30.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.30.0", + published: "2023-04-14T12:46:46Z", + }, + { + tag: "4.29.3", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.29.3", + published: "2023-03-07T04:52:45Z", + }, + { + tag: "4.29.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.29.1", + published: "2023-02-24T22:58:52Z", + }, + { + tag: "4.29.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.29.0", + published: "2023-02-23T01:08:20Z", + }, + { + tag: "4.28.4", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.28.4", + published: "2023-02-10T18:38:48Z", + }, + { + tag: "4.28.3", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.28.3", + published: "2023-02-03T06:32:00Z", + }, + { + tag: "4.27.7", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.27.7", + published: "2023-02-02T09:36:05Z", + }, + { + tag: "4.27.6", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.27.6", + published: "2023-01-18T19:22:00Z", + }, + { + tag: "4.27.4", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.27.4", + published: "2022-12-21T18:23:30Z", + }, + { + tag: "4.26.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.26.0", + published: "2022-11-08T15:15:42Z", + }, + { + tag: "4.25.2", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.25.2", + published: "2022-09-07T23:55:39Z", + }, + { + tag: "4.25.1", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.25.1", + published: "2022-09-06T04:56:05Z", + }, + { + tag: "4.23.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.23.0", + published: "2022-08-05T20:51:49Z", + }, + { + tag: "4.22.0", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.22.0", + published: "2022-06-15T09:24:56Z", + }, + { + tag: "4.21.8", + release: "https://github.com/Particular/ServiceControl/releases/tag/4.21.8", + published: "2022-03-03T12:33:24Z", + }, +]; + +export const servicePulseNoPlatformUpdatesNeeded: Release[] = [ + { + tag: "1.37.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.37.0", + published: "2023-08-16T14:57:29Z", + }, + { + tag: "1.36.4", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.36.4", + published: "2023-06-20T15:49:51Z", + }, + { + tag: "1.36.3", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.36.3", + published: "2023-06-01T17:28:25Z", + }, + { + tag: "1.36.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.36.0", + published: "2023-05-30T17:32:02Z", + }, + { + tag: "1.35.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.35.1", + published: "2023-04-19T15:38:25Z", + }, + { + tag: "1.35.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.35.0", + published: "2023-04-03T19:33:39Z", + }, + { + tag: "1.34.4", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.34.4", + published: "2023-03-27T19:03:52Z", + }, + { + tag: "1.33.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.33.1", + published: "2022-11-29T13:20:13Z", + }, + { + tag: "1.32.4", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.32.4", + published: "2022-08-12T10:30:53Z", + }, + { + tag: "1.32.3", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.32.3", + published: "2022-08-10T21:22:04Z", + }, + { + tag: "1.32.2", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.32.2", + published: "2022-08-01T11:55:22Z", + }, + { + tag: "1.32.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.32.1", + published: "2022-07-14T13:24:26Z", + }, + { + tag: "1.31.3", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.31.3", + published: "2022-05-19T14:06:22Z", + }, + { + tag: "1.31.2", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.31.2", + published: "2022-04-28T12:49:51Z", + }, + { + tag: "1.31.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.31.1", + published: "2021-11-29T12:57:51Z", + }, + { + tag: "1.31.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.31.0", + published: "2021-11-29T11:16:05Z", + }, + { + tag: "1.30.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.30.0", + published: "2021-06-02T12:40:48Z", + }, + { + tag: "1.29.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.29.0", + published: "2021-05-06T12:16:46Z", + }, + { + tag: "1.28.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.28.0", + published: "2020-11-19T09:23:50Z", + }, + { + tag: "1.27.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.27.1", + published: "2020-10-29T12:35:38Z", + }, + { + tag: "1.27.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.27.0", + published: "2020-10-20T12:43:46Z", + }, + { + tag: "1.26.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.26.0", + published: "2020-09-28T08:13:08Z", + }, + { + tag: "1.25.4", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.25.4", + published: "2020-07-06T13:25:52Z", + }, + { + tag: "1.25.3", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.25.3", + published: "2020-06-01T17:49:48Z", + }, + { + tag: "1.25.2", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.25.2", + published: "2020-05-27T11:55:55Z", + }, + { + tag: "1.25.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.25.1", + published: "2020-05-04T12:30:48Z", + }, + { + tag: "1.25.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.25.0", + published: "2020-05-04T08:44:06Z", + }, + { + tag: "1.24.3", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.24.3", + published: "2020-03-11T10:12:27Z", + }, + { + tag: "1.24.1", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.24.1", + published: "2020-02-12T12:56:05Z", + }, + { + tag: "1.24.0", + release: "https://github.com/Particular/ServicePulse/releases/tag/1.24.0", + published: "2020-02-11T11:58:31Z", + }, +]; diff --git a/frontend/test/mocks/service-control-instance-template.ts b/frontend/test/mocks/service-control-instance-template.ts new file mode 100644 index 0000000000..35f3218626 --- /dev/null +++ b/frontend/test/mocks/service-control-instance-template.ts @@ -0,0 +1,29 @@ +import RootUrls from "@/resources/RootUrls"; +import { LicenseStatus } from "@/resources/LicenseInfo"; +import { ServiceControlMonitoringInstance } from "@/resources/ServiceControlMonitoringInstance"; + +export const serviceControlMainInstance = { + description: "The management backend for the Particular Service Platform", + endpoints_error_url: "http://localhost:33333/api/endpoints/{name}/errors/{?page,per_page,direction,sort}", + known_endpoints_url: "/endpoints/known", + endpoints_message_search_url: "http://localhost:33333/api/endpoints/{name}/messages/search/{keyword}/{?page,per_page,direction,sort}", + endpoints_messages_url: "http://localhost:33333/api/endpoints/{name}/messages/{?page,per_page,direction,sort}", + audit_count_url: "http://localhost:33333/api/endpoints/{name}/audit-count", + endpoints_url: "http://localhost:33333/api/endpoints", + errors_url: "http://localhost:33333/api/errors/{?page,per_page,direction,sort}", + configuration: "http://localhost:33333/api/configuration", + remote_configuration: "http://localhost:33333/api/configuration/remotes", + message_search_url: "http://localhost:33333/api/messages/search/{keyword}/{?page,per_page,direction,sort}", + license_status: LicenseStatus.Valid, + license_details: "http://localhost:33333/api/license", + name: "ServiceControl", + sagas_url: "http://localhost:33333/api/sagas", + event_log_items: "http://localhost:33333/api/eventlogitems", + archived_groups_url: "http://localhost:33333/api/errors/groups/{classifier?}", + get_archive_group: "http://localhost:33333/api/archive/groups/id/{groupId}", +}; + +export const monitoredInstanceTemplate = { + instanceType: "monitoring", + version: "5.0.0-alpha.2", +}; diff --git a/frontend/test/preconditions/configuration.ts b/frontend/test/preconditions/configuration.ts new file mode 100644 index 0000000000..7ba0bf6670 --- /dev/null +++ b/frontend/test/preconditions/configuration.ts @@ -0,0 +1,16 @@ +import QueueAddress from "@/resources/QueueAddress"; +import Redirect from "@/resources/Redirect"; +import { SetupFactoryOptions } from "test/driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const knownQueuesDefaultHandler = ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}errors/queues/addresses`, { + body: [], + }); +}; + +export const redirectsDefaultHandler = ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}redirects`, { + body: [], + }); +}; diff --git a/frontend/test/preconditions/customChecks.ts b/frontend/test/preconditions/customChecks.ts new file mode 100644 index 0000000000..3b1bdd7354 --- /dev/null +++ b/frontend/test/preconditions/customChecks.ts @@ -0,0 +1,136 @@ +import CustomCheck, { Status } from "@/resources/CustomCheck"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; +const emptyContent = JSON.stringify([]); + +export const hasCustomChecksEmpty = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}customchecks`, { + body: emptyContent, + headers: { + "Total-Count": "0", //count of failing custom checks + }, + }); +}; + +const generateGuid = () => { + return crypto.randomUUID(); +}; +const customCheckTemplate = { + id: "customchecks/6131fa95-9414-1898-9c83-c5b18587945b", + custom_check_id: "SampleCustomeCheck", + category: "SomeCategory", + status: "Pass", + failure_reason: "I don't know the reason", + reported_at: "2025-01-10T05:06:30.4074087Z", + originating_endpoint: { + name: "EndpointX", + host_id: "ff605b55-6fbb-af56-5753-73c1ff73e601", + host: "ABC", + }, +}; + +export const hasCustomChecks = + (failingCount: number, passingCount: number) => + ({ driver }: SetupFactoryOptions) => { + const customChecksData = generateCustomChecksData(failingCount, passingCount)(); + + // Call getCustomChecks to mock the endpoints with the generated data + getCustomChecks(customChecksData)({ driver }); + }; + +export const generateCustomChecksData = (failingCount: number, passingCount: number) => () => { + // Calculate total count + const totalCount = failingCount + passingCount; + + // Create checks (both failing and passing) + const customChecks = Array.from({ length: totalCount }).map((_, index) => { + // Generate the date based on the index + const date = new Date(); + date.setDate(date.getDate() - index); // Subtract `index` days from the current date + const reportedAt = date.toISOString(); // Convert to ISO string format + + // Determine status and failure reason + const status = index < failingCount ? Status.Fail : Status.Pass; + const failureReason = status === Status.Fail ? `configured to fail on endpoint ${index}` : ""; + + // Generate a new GUID for the ID and host_id + const newGuid = generateGuid(); + const originatingEndpointName = `endpoint ${index}`; + const originatingHost = `ABC ${index}`; + const customCategory = `Some Category ${index}`; + const customeCheckId = `SampleCustomeCheck ${index}`; + + return { + ...customCheckTemplate, + id: `customchecks/${newGuid}`, // New GUID for ID + category: customCategory, + custom_check_id: customeCheckId, + status, // Fail or Pass based on index + failure_reason: failureReason, // Failure reason or empty for passing + reported_at: reportedAt, // Autogenerated reported_at based on index + originating_endpoint: { + name: originatingEndpointName, // Endpoint name based on index + host_id: newGuid, // New GUID for host_id + host: originatingHost, // Host name based on index + }, + }; + }); + return customChecks; +}; + +export const getCustomChecks = + (customChecks: CustomCheck[]) => + ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + + const failedCustomChecks = customChecks.filter((check) => check.status === "Fail"); + + driver.mockEndpointDynamic(`${serviceControlInstanceUrl}customchecks`, "get", (url) => { + const status = url.searchParams.get("status"); + if (status === "fail") { + return Promise.resolve({ + body: failedCustomChecks, + headers: { "Total-Count": failedCustomChecks.length.toString() }, + }); + } + + return Promise.resolve({ + body: customChecks, + headers: { "Total-Count": customChecks.length.toString() }, + }); + }); + driver.mockEndpointDynamic(`${serviceControlInstanceUrl}customchecks/:id`, "delete", () => { + return Promise.resolve({ + body: { message: "Successfully deleted" }, + status: 200, + headers: { "Content-Type": "application/json" }, + }); + }); + }; + +export const updateCustomCheckItemByStatus = (data: CustomCheck[], statusToUpdate: string) => { + const itemToUpdate = data.find((item) => item.status === statusToUpdate); + + if (itemToUpdate) { + if (statusToUpdate === "Pass") { + itemToUpdate.status = Status.Fail; + itemToUpdate.failure_reason = "Some reason I dont know"; + } else { + itemToUpdate.status = Status.Pass; + itemToUpdate.failure_reason = ""; + } + } +}; +export const updateCustomCheckItemByItem = (data: CustomCheck[], itemToUpdate: CustomCheck, statusToUpdate: string) => { + const itemFound = data.find((item) => item.id === itemToUpdate.id); + if (itemFound != null) { + if (statusToUpdate === "Fail") { + itemToUpdate.status = Status.Fail; + itemToUpdate.failure_reason = "Some reason I dont know"; + } else { + itemToUpdate.status = Status.Pass; + itemToUpdate.failure_reason = ""; + } + } +}; diff --git a/frontend/test/preconditions/hasEmptyRecoverabilityGroups.ts b/frontend/test/preconditions/hasEmptyRecoverabilityGroups.ts new file mode 100644 index 0000000000..b0b00e4a65 --- /dev/null +++ b/frontend/test/preconditions/hasEmptyRecoverabilityGroups.ts @@ -0,0 +1,10 @@ +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasRecoverabilityGroups = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}recoverability/groups/Endpoint%20Name`, { + body: [], + }); + return []; +}; diff --git a/frontend/test/preconditions/hasEndpointSettings.ts b/frontend/test/preconditions/hasEndpointSettings.ts new file mode 100644 index 0000000000..54251f62ad --- /dev/null +++ b/frontend/test/preconditions/hasEndpointSettings.ts @@ -0,0 +1,15 @@ +import { SetupFactoryOptions } from "../driver"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasEndpointSettings = function (settings: EndpointSettings[]) { + if (settings.length === 0) { + settings.push({ name: "", track_instances: true }); + } + return ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}endpointssettings`, { + body: settings, + }); + return settings; + }; +}; diff --git a/frontend/test/preconditions/hasEndpointsWithHistoryPeriodData.ts b/frontend/test/preconditions/hasEndpointsWithHistoryPeriodData.ts new file mode 100644 index 0000000000..c78602593b --- /dev/null +++ b/frontend/test/preconditions/hasEndpointsWithHistoryPeriodData.ts @@ -0,0 +1,13 @@ +import * as historyPeriodTemplate from "../mocks/history-period-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasEndpointWithMetricsPoints = + (queueLength: number | number[], throughput: number | number[], retries: number | number[], processingTime: number | number[], criticalTime: number | number[]) => + ({ driver }: SetupFactoryOptions) => { + const body = historyPeriodTemplate.oneEndpointWithMetricsPoints(queueLength, throughput, retries, processingTime, criticalTime); + driver.mockEndpoint(`${getDefaultConfig().monitoring_url}monitored-endpoints`, { + body: body, + }); + return [body]; + }; diff --git a/frontend/test/preconditions/hasEventLogItems.ts b/frontend/test/preconditions/hasEventLogItems.ts new file mode 100644 index 0000000000..a21fae2b2f --- /dev/null +++ b/frontend/test/preconditions/hasEventLogItems.ts @@ -0,0 +1,11 @@ +import { eventLogItems } from "../mocks/event-log-items-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasEventLogItems = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}eventlogitems`, { + body: eventLogItems, + }); + return eventLogItems; +}; diff --git a/frontend/test/preconditions/hasHeartbeatEndpoints.ts b/frontend/test/preconditions/hasHeartbeatEndpoints.ts new file mode 100644 index 0000000000..d913ec95f9 --- /dev/null +++ b/frontend/test/preconditions/hasHeartbeatEndpoints.ts @@ -0,0 +1,185 @@ +import { MockEndpointDynamicOptions, SetupFactoryOptions } from "../driver"; +import { EndpointsView } from "@/resources/EndpointView"; +import { healthyEndpointTemplate, unHealthyEndpointTemplate } from "../mocks/heartbeat-endpoint-template"; +import { DefaultBodyType, PathParams, StrictRequest } from "msw"; +import { EndpointSettings } from "@/resources/EndpointSettings"; +import { getDefaultConfig } from "@/defaultConfig"; + +interface ChangeTracking { + track_instances: boolean; +} + +interface MonitorHeartbeat { + monitor_heartbeat: boolean; +} + +export const hasHeartbeatsEndpoints = ( + endpoints: EndpointsView[], + endpointSettings = [ + { + name: "", + track_instances: true, + }, + ] +) => { + const endpointSettingsList: EndpointSettings[] = [...endpointSettings]; + + const endpointsList = [...endpoints]; + + return ({ driver }: SetupFactoryOptions) => { + driver.mockEndpointDynamic(`${getDefaultConfig().service_control_url}endpoints`, "get", () => { + return Promise.resolve({ + body: endpointsList, + }); + }); + + driver.mockEndpointDynamic(`${getDefaultConfig().service_control_url}endpointssettings`, "get", () => { + return Promise.resolve({ + body: endpointSettingsList, + }); + }); + + endpointsList.forEach((e) => { + driver.mockEndpointDynamic(`${getDefaultConfig().service_control_url}endpoints/${e.id}`, "patch", async (_url: URL, _params: PathParams, request: StrictRequest) => { + const requestBody = await request.json(); + + e.monitor_heartbeat = requestBody.monitor_heartbeat; + + return Promise.resolve({ + status: 200, + }); + }); + + driver.mockEndpointDynamic(`${getDefaultConfig().service_control_url}endpointssettings/${e.id}`, "patch", async (url: URL, params: PathParams, request: StrictRequest) => { + const requestBody = await request.json(); + + let endpointSettings = endpointSettingsList.find((setting) => setting.name === e.name); + + if (!endpointSettings) { + endpointSettings = { + name: e.name, + track_instances: requestBody.track_instances, + }; + endpointSettingsList.push(endpointSettings); + } else { + endpointSettings.track_instances = requestBody.track_instances; + } + + return { + status: 200, + }; + }); + }); + }; +}; + +export const hasUnhealthyHeartbeatsEndpoints = (numberOfUnhealthyEndpoints: number, endpointNamePrefix: string) => { + const unhealthyEndpoints = []; + + for (let i = 0; i < numberOfUnhealthyEndpoints; i++) { + unhealthyEndpoints.push({ + ...unHealthyEndpointTemplate, + id: `${endpointNamePrefix}_${i}`, + name: `${endpointNamePrefix}_${i}`, + }); + } + + return hasHeartbeatsEndpoints(unhealthyEndpoints); +}; + +export const hasAnUnhealthyEndpoint = () => hasUnhealthyHeartbeatsEndpoints(1, "UnhealthyHeartbeatEndpoint"); + +export const hasUnhealthyEndpoints = (numberOfUnhealthyHeartbeats: number) => hasUnhealthyHeartbeatsEndpoints(numberOfUnhealthyHeartbeats, "UnhealthyHeartbeatEndpoint"); + +export const hasAnUnhealthyEndpointWithNamePrefix = (endpointNamePrefix: string) => hasUnhealthyHeartbeatsEndpoints(1, endpointNamePrefix); + +export const hasHealthyHeartbeatsEndpoints = (numberOfHealthyEndpoints: number, endpointNamePrefix: string) => { + const healthyEndpoints = []; + + for (let i = 0; i < numberOfHealthyEndpoints; i++) { + healthyEndpoints.push({ + ...healthyEndpointTemplate, + id: `${endpointNamePrefix}_${i}`, + name: `${endpointNamePrefix}_${i}`, + }); + } + return hasHeartbeatsEndpoints(healthyEndpoints); +}; + +export const hasAHealthyEndpoint = () => hasHealthyHeartbeatsEndpoints(1, "HealthyHeartbeatEndpoit"); + +export const hasHealthyEndpoints = (numberOfUnhealthyHeartbeats: number) => hasHealthyHeartbeatsEndpoints(numberOfUnhealthyHeartbeats, "HealthyHeartbeatEndpoint"); + +export const hasAHealthyEndpointWithNamePrefix = (endpointNamePrefix: string) => hasHealthyHeartbeatsEndpoints(1, endpointNamePrefix); + +export const hasNoHeartbeatsEndpoints = hasHeartbeatsEndpoints([]); + +export const hasAnUnhealthyUnMonitoredEndpoint = () => { + return hasHeartbeatsEndpoints([ + { + ...unHealthyEndpointTemplate, + id: `Unhealthy_UnmonitoredEndpoint`, + name: `Unhealthy_UnmonitoredEndpoint`, + monitor_heartbeat: false, + }, + ]); +}; + +export const hasAHealthyButUnMonitoredEndpoint = () => { + return hasHeartbeatsEndpoints([ + { + ...healthyEndpointTemplate, + id: `Healthy_UnmonitoredEndpoint`, + name: `Healthy_UnmonitoredEndpoint`, + monitor_heartbeat: false, + }, + ]); +}; + +export const HasHealthyAndUnHealthyNamedEndpoints = (numberOfHealthyEndpoints: number, numberOfUnhealthyEndpoints: number, endpointNamePrefix: string) => { + const endpoints: EndpointsView[] = []; + + const repeat = (action: (count: number) => void, count: number) => { + if (count) { + repeat(action, count - 1); + action(count); + } + }; + + repeat( + (count) => + endpoints.push({ + ...healthyEndpointTemplate, + id: `${endpointNamePrefix}_${count}`, + name: `${endpointNamePrefix}_${count}`, + }), + numberOfHealthyEndpoints + ); + + repeat( + (count) => + endpoints.push({ + ...unHealthyEndpointTemplate, + id: `${endpointNamePrefix}_${numberOfHealthyEndpoints + count}`, + name: `${endpointNamePrefix}_${numberOfHealthyEndpoints + count}`, + }), + numberOfUnhealthyEndpoints + ); + + return hasHeartbeatsEndpoints(endpoints); + // for (let i = 0; i < numberOfHealthyEndpoints; i++) { + // endpoints.push({ + // ...healthyEndpointTemplate, + // name: `${endpointNamePrefix}_${i}`, + // }); + // } + + // for (let i = 0; i < numberOfUnhealthyEndpoints; i++) { + // endpoints.push({ + // ...unHealthyEndpointTemplate, + // name: `${endpointNamePrefix}_${i}`, + // }); + // } +}; + +export const HasHealthyAndUnHealthyEndpoints = (numberOfHealthyEndpoints: number, numberOfUnhealthyEndpoints: number) => HasHealthyAndUnHealthyNamedEndpoints(numberOfHealthyEndpoints, numberOfUnhealthyEndpoints, "TestEndpoint"); diff --git a/frontend/test/preconditions/hasLicensingEndpoints.ts b/frontend/test/preconditions/hasLicensingEndpoints.ts new file mode 100644 index 0000000000..beb8e0a6c7 --- /dev/null +++ b/frontend/test/preconditions/hasLicensingEndpoints.ts @@ -0,0 +1,23 @@ +import { SetupFactoryOptions } from "../driver"; +import EndpointThroughputSummary from "@/resources/EndpointThroughputSummary"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasLicensingEndpoints = + ( + body: EndpointThroughputSummary[] = [ + { + name: "Sender", + is_known_endpoint: true, + user_indicator: "", + max_daily_throughput: 10, + }, + ] + ) => + ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/endpoints`, { + body, + method: "get", + status: 200, + }); + return []; + }; diff --git a/frontend/test/preconditions/hasLicensingReportAvailable.ts b/frontend/test/preconditions/hasLicensingReportAvailable.ts new file mode 100644 index 0000000000..2e0973c3b3 --- /dev/null +++ b/frontend/test/preconditions/hasLicensingReportAvailable.ts @@ -0,0 +1,20 @@ +import ReportGenerationState from "@/resources/ReportGenerationState"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasLicensingReportAvailable = + (body: Partial = {}) => + ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/report/available`, { + body: { + ...({ + transport: "LearningTransport", + report_can_be_generated: true, + reason: "", + }), + ...body, + }, + method: "get", + status: 200, + }); + }; diff --git a/frontend/test/preconditions/hasLicensingSettingTest.ts b/frontend/test/preconditions/hasLicensingSettingTest.ts new file mode 100644 index 0000000000..f91abc9a73 --- /dev/null +++ b/frontend/test/preconditions/hasLicensingSettingTest.ts @@ -0,0 +1,33 @@ +import ConnectionTestResults, { ConnectionSettingsTestResult } from "@/resources/ConnectionTestResults"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasLicensingSettingTest = + (body: Partial = {}) => + ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`${getDefaultConfig().service_control_url}licensing/settings/test`, { + body: { + ...({ + transport: "", + audit_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "", + }, + monitoring_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "", + }, + broker_connection_result: { + connection_successful: true, + connection_error_messages: [], + diagnostics: "", + }, + }), + ...body, + }, + method: "get", + status: 200, + }); + }; diff --git a/frontend/test/preconditions/hasMonitoredEndpointDetails.ts b/frontend/test/preconditions/hasMonitoredEndpointDetails.ts new file mode 100644 index 0000000000..dd28be33de --- /dev/null +++ b/frontend/test/preconditions/hasMonitoredEndpointDetails.ts @@ -0,0 +1,121 @@ +import { EndpointDetails } from "@/resources/MonitoringEndpoint"; +import { monitoredEndpointDetails, instanceForEndpoint, messageTypeForEndpoint } from "../mocks/monitored-endpoint-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasMonitoredEndpointDetails = + (endpointDetails: EndpointDetails) => + ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints/${endpointDetails.instances[0].name}`, { + body: endpointDetails, + }); + return endpointDetails; + }; + +export const hasEndpointMessageTypesNamed = + (messageNames: string[]) => + ({ driver }: SetupFactoryOptions) => { + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.messageTypes = []; + endpointDetails.messageTypes.push(...messageNames.map((name) => ({ ...messageTypeForEndpoint, typeName: name }))); + + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints/${endpointDetails.instances[0].name}`, { + body: endpointDetails, + }); + + return endpointDetails; + }; + +export const hasEndpointInstancesNamed = + (instanceNames: string[]) => + ({ driver }: SetupFactoryOptions) => { + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.instances = []; + endpointDetails.instances.push(...instanceNames.map((name) => ({ ...instanceForEndpoint, name: name }))); + + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints/${endpointDetails.instances[0].name}`, { + body: endpointDetails, + }); + + return endpointDetails; + }; + +export const hasEndpointWithMetricValues = + ( + queueLengthLatest: number, + queueLengthAverage: number, + throughputLatest: number, + throughputAverage: number, + retriesLatest: number, + retriesAverage: number, + processingTimeLatest: number, + processingTimeAverage: number, + criticalTimeLatest: number, + criticalTimeAverage: number + ) => + ({ driver }: SetupFactoryOptions) => { + const endpointDetails = structuredClone(monitoredEndpointDetails); + if (endpointDetails.digest.metrics.queueLength === undefined) { + return undefined; + } + if (endpointDetails.digest.metrics.throughput === undefined) { + return undefined; + } + if (endpointDetails.digest.metrics.retries === undefined) { + return undefined; + } + if (endpointDetails.digest.metrics.processingTime === undefined) { + return undefined; + } + if (endpointDetails.digest.metrics.criticalTime === undefined) { + return undefined; + } + + endpointDetails.digest.metrics.queueLength.latest = queueLengthLatest; + endpointDetails.digest.metrics.queueLength.average = queueLengthAverage; + endpointDetails.digest.metrics.throughput.latest = throughputLatest; + endpointDetails.digest.metrics.throughput.average = throughputAverage; + endpointDetails.digest.metrics.retries.latest = retriesLatest; + endpointDetails.digest.metrics.retries.average = retriesAverage; + endpointDetails.digest.metrics.processingTime.latest = processingTimeLatest; + endpointDetails.digest.metrics.processingTime.average = processingTimeAverage; + endpointDetails.digest.metrics.criticalTime.latest = criticalTimeLatest; + endpointDetails.digest.metrics.criticalTime.average = criticalTimeAverage; + + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints/${endpointDetails.instances[0].name}`, { + body: endpointDetails, + }); + + return endpointDetails; + }; + +export const endpointRecoverabilityByInstanceDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}recoverability/groups/Endpoint%20Instance`, { + body: [], + }); + return []; +}; + +export const endpointRecoverabilityByNameDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}recoverability/groups/Endpoint%20Name`, { + body: [], + }); + return []; +}; + +export const serviceControlMonitoringOptions = ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + + driver.mockEndpoint(`${monitoringInstanceUrl}`, { + body: [], + method: "options", + headers: { Allow: "DELETE" }, + }); +}; diff --git a/frontend/test/preconditions/hasMonitoredEndpoints.ts b/frontend/test/preconditions/hasMonitoredEndpoints.ts new file mode 100644 index 0000000000..e1f173e083 --- /dev/null +++ b/frontend/test/preconditions/hasMonitoredEndpoints.ts @@ -0,0 +1,37 @@ +import { monitoredEndpointTemplate, noMonitoredEndpoints } from "../mocks/monitored-endpoint-template"; + +import { SetupFactoryOptions } from "../driver"; +import { Endpoint } from "@/resources/MonitoringEndpoint"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasNoMonitoredEndpoints = ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints`, { + body: noMonitoredEndpoints, + }); + return noMonitoredEndpoints; +}; + +export const monitoredEndpointsNamed = + (endpointNames: string[]) => + ({ driver }: SetupFactoryOptions) => { + const response = endpointNames.map((name) => { + return { ...monitoredEndpointTemplate, name: name }; + }); + + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints`, { + body: response, + }); + return response; + }; + +export const hasMonitoredEndpointsList = + (monitoringEndpointTemplates: Endpoint[]) => + ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints`, { + body: monitoringEndpointTemplates, + }); + return monitoringEndpointTemplates; + }; diff --git a/frontend/test/preconditions/hasNoDisconnectedEndpoints.ts b/frontend/test/preconditions/hasNoDisconnectedEndpoints.ts new file mode 100644 index 0000000000..1fadd5698d --- /dev/null +++ b/frontend/test/preconditions/hasNoDisconnectedEndpoints.ts @@ -0,0 +1,12 @@ +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +const content = JSON.stringify(0); + +export const hasNoDisconnectedEndpoints = ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(`${monitoringInstanceUrl}monitored-endpoints/disconnected`, { + body: content, + }); + return content; +}; diff --git a/frontend/test/preconditions/hasNoErrors.ts b/frontend/test/preconditions/hasNoErrors.ts new file mode 100644 index 0000000000..703423d576 --- /dev/null +++ b/frontend/test/preconditions/hasNoErrors.ts @@ -0,0 +1,12 @@ +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +const content = JSON.stringify([]); + +export const errorsDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}errors`, { + body: content, + }); + return content; +}; diff --git a/frontend/test/preconditions/hasServiceControlMainInstance.ts b/frontend/test/preconditions/hasServiceControlMainInstance.ts new file mode 100644 index 0000000000..ac3220cf13 --- /dev/null +++ b/frontend/test/preconditions/hasServiceControlMainInstance.ts @@ -0,0 +1,14 @@ +import { serviceControlMainInstance } from "../mocks/service-control-instance-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasServiceControlMainInstance = + (serviceControlVersion = "6.1.1") => + ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(serviceControlInstanceUrl, { + body: serviceControlMainInstance, + headers: { "X-Particular-Version": serviceControlVersion }, + }); + return serviceControlMainInstance; + }; diff --git a/frontend/test/preconditions/hasServiceControlMainInstanceDown.ts b/frontend/test/preconditions/hasServiceControlMainInstanceDown.ts new file mode 100644 index 0000000000..863c581d74 --- /dev/null +++ b/frontend/test/preconditions/hasServiceControlMainInstanceDown.ts @@ -0,0 +1,12 @@ +import { serviceControlMainInstance } from "../mocks/service-control-instance-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasServiceControlMainInstanceDown = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(serviceControlInstanceUrl, { + body: serviceControlMainInstance, + headers: { "X-Particular-Version": "5.0.4" }, + }); + return serviceControlMainInstance; +}; diff --git a/frontend/test/preconditions/hasServiceControlMonitoringInstance.ts b/frontend/test/preconditions/hasServiceControlMonitoringInstance.ts new file mode 100644 index 0000000000..21f3337cb3 --- /dev/null +++ b/frontend/test/preconditions/hasServiceControlMonitoringInstance.ts @@ -0,0 +1,12 @@ +import { serviceControlMainInstance } from "../mocks/service-control-instance-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const hasServiceControlMonitoringInstance = ({ driver }: SetupFactoryOptions) => { + const monitoringInstanceUrl = getDefaultConfig().monitoring_url; + driver.mockEndpoint(monitoringInstanceUrl, { + body: serviceControlMainInstance, + headers: { "X-Particular-Version": "5.0.4" }, + }); + return serviceControlMainInstance; +}; diff --git a/frontend/test/preconditions/hasServiceControlMonitoringInstanceUrl.ts b/frontend/test/preconditions/hasServiceControlMonitoringInstanceUrl.ts new file mode 100644 index 0000000000..623e97479b --- /dev/null +++ b/frontend/test/preconditions/hasServiceControlMonitoringInstanceUrl.ts @@ -0,0 +1,16 @@ +import { monitoredInstanceTemplate } from "../mocks/service-control-instance-template"; +import { SetupFactoryOptions } from "../driver"; +import { getDefaultConfig, setDefaultConfig } from "@/defaultConfig"; + +export const hasServiceControlMonitoringInstanceUrl = + (url: string) => + ({ driver }: SetupFactoryOptions) => { + const content = monitoredInstanceTemplate; + const config = getDefaultConfig(); + setDefaultConfig({ ...config, monitoring_url: url }); + driver.mockEndpoint(url, { + body: content, + headers: { "X-Particular-Version": "5.0.4" }, + }); + return content; + }; diff --git a/frontend/test/preconditions/hasUpToDateServiceControl.ts b/frontend/test/preconditions/hasUpToDateServiceControl.ts new file mode 100644 index 0000000000..e84423de80 --- /dev/null +++ b/frontend/test/preconditions/hasUpToDateServiceControl.ts @@ -0,0 +1,9 @@ +import { serviceControlNoPlatformUpdatesNeeded } from "../mocks/platform-updates-template"; +import { SetupFactoryOptions } from "../driver"; + +export const hasUpToDateServiceControl = ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`https://platformupdate.particular.net/servicecontrol.txt`, { + body: serviceControlNoPlatformUpdatesNeeded, + }); + return serviceControlNoPlatformUpdatesNeeded; +}; diff --git a/frontend/test/preconditions/hasUpToDateServicePulse.ts b/frontend/test/preconditions/hasUpToDateServicePulse.ts new file mode 100644 index 0000000000..3a58c5bad4 --- /dev/null +++ b/frontend/test/preconditions/hasUpToDateServicePulse.ts @@ -0,0 +1,9 @@ +import { servicePulseNoPlatformUpdatesNeeded } from "../mocks/platform-updates-template"; +import { SetupFactoryOptions } from "../driver"; + +export const hasUpToDateServicePulse = ({ driver }: SetupFactoryOptions) => { + driver.mockEndpoint(`https://platformupdate.particular.net/servicepulse.txt`, { + body: servicePulseNoPlatformUpdatesNeeded, + }); + return servicePulseNoPlatformUpdatesNeeded; +}; diff --git a/frontend/test/preconditions/index.ts b/frontend/test/preconditions/index.ts new file mode 100644 index 0000000000..b2a0bcc10c --- /dev/null +++ b/frontend/test/preconditions/index.ts @@ -0,0 +1,23 @@ +export * from "../preconditions/licensing"; +export { hasServiceControlMainInstance } from "../preconditions/hasServiceControlMainInstance"; +export { hasServiceControlMonitoringInstance } from "../preconditions/hasServiceControlMonitoringInstance"; +export { hasServiceControlMonitoringInstanceUrl } from "../preconditions/hasServiceControlMonitoringInstanceUrl"; +export { hasUpToDateServiceControl } from "../preconditions/hasUpToDateServiceControl"; +export { hasUpToDateServicePulse } from "../preconditions/hasUpToDateServicePulse"; +export { errorsDefaultHandler } from "../preconditions/hasNoErrors"; +export { hasCustomChecksEmpty, hasCustomChecks, generateCustomChecksData, getCustomChecks, updateCustomCheckItemByStatus, updateCustomCheckItemByItem } from "./customChecks"; +export { hasNoDisconnectedEndpoints } from "../preconditions/hasNoDisconnectedEndpoints"; +export { hasNoMonitoredEndpoints, hasMonitoredEndpointsList, monitoredEndpointsNamed } from "../preconditions/hasMonitoredEndpoints"; +export { hasEventLogItems } from "../preconditions/hasEventLogItems"; +export { hasRecoverabilityGroups } from "../preconditions/hasEmptyRecoverabilityGroups"; +export * from "./hasEndpointsWithHistoryPeriodData"; +export * from "./hasMonitoredEndpointDetails"; +export * from "../preconditions/hasHeartbeatEndpoints"; +export { serviceControlWithMonitoring } from "./serviceControlWithMonitoring"; +export * from "./recoverability"; +export * from "./licensing"; +export { hasLicensingReportAvailable } from "../preconditions/hasLicensingReportAvailable"; +export { hasLicensingSettingTest } from "../preconditions/hasLicensingSettingTest"; +export { hasLicensingEndpoints } from "../preconditions/hasLicensingEndpoints"; +export { hasEndpointSettings } from "./hasEndpointSettings"; +export * from "./configuration"; diff --git a/frontend/test/preconditions/licensing.ts b/frontend/test/preconditions/licensing.ts new file mode 100644 index 0000000000..ee336c426b --- /dev/null +++ b/frontend/test/preconditions/licensing.ts @@ -0,0 +1,89 @@ +import { SetupFactoryOptions } from "../driver"; +import LicenseInfo, { LicenseStatus, LicenseType } from "@/resources/LicenseInfo"; +import { getDefaultConfig } from "@/defaultConfig"; + +const licenseResponseTemplate = { + registered_to: "ACME Software", + edition: "Enterprise", + expiration_date: "2026-01-23T00:00:00.0000000Z", + upgrade_protection_expiration: "", + license_type: "Commercial", + instance_name: "Particular.ServiceControl", + trial_license: false, + license_status: LicenseStatus.Valid, + license_extension_url: "", + status: "valid", +}; +export const hasActiveLicense = ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlInstanceUrl}license`, { + body: licenseResponseTemplate, + }); + return licenseResponseTemplate; +}; +export const hasExpiredLicense = (licenseType: LicenseType, expiredDays: number = 10, extensionUrl: string = "") => getLicenseMockedResponse(licenseType, expiredDays, extensionUrl, true); +export const hasExpiringLicense = (licenseType: LicenseType, expiringInDays: number = 10, extensionUrl: string = "") => getLicenseMockedResponse(licenseType, expiringInDays, extensionUrl, false); + +const getLicenseMockedResponse = + (licenseType: LicenseType, expiringInDays: number, extensionUrl: string, isExpired: boolean) => + ({ driver }: SetupFactoryOptions) => { + const serviceControlInstanceUrl = getDefaultConfig().service_control_url; + const customISOString = getCustomDateISOString(expiringInDays, isExpired); + + let status: LicenseStatus; + let trialLicense = false; + let upgradeProtectionExpiration = ""; + let expirationDate = ""; + let licenseExtensionUrl = extensionUrl; + + switch (licenseType) { + case LicenseType.Subscription: + status = isExpired ? LicenseStatus.InvalidDueToExpiredSubscription : LicenseStatus.ValidWithExpiringSubscription; + expirationDate = customISOString; + break; + case LicenseType.Trial: + status = isExpired ? LicenseStatus.InvalidDueToExpiredTrial : LicenseStatus.ValidWithExpiringTrial; + expirationDate = customISOString; + trialLicense = true; + licenseExtensionUrl = extensionUrl ? extensionUrl : "https://particular.net/extend-your-trial?p=servicepulse"; + break; + case LicenseType.UpgradeProtection: + status = isExpired ? LicenseStatus.InvalidDueToExpiredUpgradeProtection : LicenseStatus.ValidWithExpiringUpgradeProtection; + upgradeProtectionExpiration = customISOString; + licenseExtensionUrl = extensionUrl ? extensionUrl : "https://particular.net/extend-your-trial?p=servicepulse"; + break; + } + + const response = { + ...licenseResponseTemplate, + license_type: status === LicenseStatus.ValidWithExpiringTrial || status === LicenseStatus.InvalidDueToExpiredTrial ? "Trial" : "Commercial", + trial_license: trialLicense, + expiration_date: expirationDate, + upgrade_protection_expiration: upgradeProtectionExpiration, + license_status: status, + license_extension_url: licenseExtensionUrl, + }; + console.log(response); + driver.mockEndpoint(`${serviceControlInstanceUrl}license`, { + body: response, + }); + return response; + }; + +function getCustomDateISOString(daysCount: number, isExpired: boolean) { + const today = new Date(); + const customDate = new Date(today); + // Set hours, minutes, seconds, and milliseconds to 00 + today.setHours(0, 0, 0, 0); + customDate.setHours(0, 0, 0, 0); + + if (isExpired) { + customDate.setDate(today.getDate() - daysCount); + } else { + customDate.setDate(today.getDate() + daysCount); + } + + const nativeISOString = customDate.toISOString(); // e.g., "2026-02-02T14:23:45.123Z" + const customISOString = nativeISOString.replace(/\.\d+Z$/, (match) => match.slice(0, -1).padEnd(8, "0") + "Z"); + return customISOString; +} diff --git a/frontend/test/preconditions/recoverability.ts b/frontend/test/preconditions/recoverability.ts new file mode 100644 index 0000000000..99f75d7dc8 --- /dev/null +++ b/frontend/test/preconditions/recoverability.ts @@ -0,0 +1,269 @@ +import Configuration, { EditAndRetryConfig } from "@/resources/Configuration"; +import { SetupFactoryOptions } from "../driver"; +import RecoverabilityHistoryResponse from "@/resources/RecoverabilityHistoryResponse"; +import { FailedMessage } from "@/resources/FailedMessage"; +import Message from "@/resources/Message"; +import { getDefaultConfig } from "@/defaultConfig"; + +export const serviceControlConfigurationDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}configuration`, { + body: { + host: { + service_name: "Particular.ServiceControl", + raven_db_path: "", + logging: { + log_path: "", + logging_level: "Info", + raven_db_log_level: "Info", + }, + }, + data_retention: { + error_retention_period: "30.00:00:00", + }, + performance_tunning: { + http_default_connection_limit: 100, + external_integrations_dispatching_batch_size: 100, + expiration_process_batch_size: 100, + expiration_process_timer_in_seconds: 300, + }, + transport: { + transport_type: "MSMQ", + error_log_queue: "error.log", + error_queue: "error", + forward_error_messages: true, + }, + plugins: { + heartbeat_grace_period: "00:00:00", + }, + }, + }); +}; + +export const archivedGroupsWithClassifierDefaulthandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}errors/groups{/:classifier}`, { + body: [], + }); +}; + +export const recoverabilityGroupsWithClassifierDefaulthandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}recoverability/groups{/:classifier}`, { + body: [], + }); +}; + +export const recoverabilityClassifiers = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}recoverability/classifiers`, { + body: ["Exception Type and Stack Trace", "Message Type", "Endpoint Address", "Endpoint Instance", "Endpoint Name"], + }); +}; + +export const recoverabilityHistoryDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}recoverability/history`, { + body: { + id: "RetryOperations/History", + historic_operations: [], + unacknowledged_operations: [], + }, + }); +}; + +const editConfig = { + enabled: false, + sensitive_headers: [ + "NServiceBus.Header.RouteTo", + "NServiceBus.DestinationSites", + "NServiceBus.OriginatingSite", + "NServiceBus.To", + "NServiceBus.ReplyToAddress", + "NServiceBus.ReturnMessage.ErrorCode", + "NServiceBus.SagaType", + "NServiceBus.OriginatingSagaType", + "NServiceBus.TimeSent", + "Header", + ], + locked_headers: [ + "NServiceBus.MessageId", + "NServiceBus.SagaId", + "NServiceBus.CorrelationId", + "NServiceBus.ControlMessage", + "NServiceBus.OriginatingSagaId", + "NServiceBus.RelatedTo", + "NServiceBus.ConversationId", + "NServiceBus.MessageIntent", + "NServiceBus.Version", + "NServiceBus.IsSagaTimeoutMessage", + "NServiceBus.IsDeferredMessage", + "NServiceBus.Retries", + "NServiceBus.Retries.Timestamp", + "NServiceBus.FLRetries", + "NServiceBus.ProcessingStarted", + "NServiceBus.ProcessingEnded", + "NServiceBus.ExceptionInfo.ExceptionType", + "NServiceBus.ExceptionInfo.HelpLink", + "NServiceBus.ExceptionInfo.Message", + "NServiceBus.ExceptionInfo.Source", + "NServiceBus.ExceptionInfo.StackTrace", + "NServiceBus.TimeOfFailure", + "NServiceBus.FailedQ", + ], +}; +export const recoverabilityEditConfigDefaultHandler = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + driver.mockEndpoint(`${serviceControlUrl}edit/config`, { + body: editConfig, + }); +}; + +export const enableEditAndRetry = ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + const config = structuredClone(editConfig); + config.enabled = true; + driver.mockEndpoint(`${serviceControlUrl}edit/config`, { + body: config, + }); +}; + +export const hasFailedMessage = + ({ withGroupId, withMessageId, withContentType, withBody }: { withGroupId: string; withMessageId: string; withContentType: string; withBody: Record | string | number | boolean | null | undefined }) => + ({ driver }: SetupFactoryOptions) => { + const serviceControlUrl = getDefaultConfig().service_control_url; + + const failedMessage = { + id: withGroupId, + message_type: "ServiceControl.SmokeTest.SimpleCommand", + time_sent: "2024-06-27T06:14:48.895733Z", + is_system_message: false, + exception: { + exception_type: "System.Exception", + message: "SimpleHandler: Throwing exceptions enabled in Endpoint1", + source: "ServiceControl.SmokeTest", + stack_trace: + "System.Exception: SimpleHandler: Throwing exceptions enabled in Endpoint1\r\n at ServiceControl.SmokeTest.SimpleHandler.Handle(SimpleCommand message, IMessageHandlerContext context) in /_/src/ServiceControl.SmokeTest/SimpleHandler.cs:line 26\r\n at NServiceBus.InvokeHandlerTerminator.Terminate(IInvokeHandlerContext context) in /_/src/NServiceBus.Core/Pipeline/Incoming/InvokeHandlerTerminator.cs:line 33\r\n at NServiceBus.SagaAudit.AuditInvokedSagaBehavior.Invoke(IInvokeHandlerContext context, Func`1 next) in /_/src/NServiceBus.SagaAudit/AuditInvokedSagaBehavior.cs:line 13\r\n at NServiceBus.SagaPersistenceBehavior.Invoke(IInvokeHandlerContext context, Func`2 next) in /_/src/NServiceBus.Core/Sagas/SagaPersistenceBehavior.cs:line 41\r\n at NServiceBus.SagaAudit.CaptureSagaStateBehavior.Invoke(IInvokeHandlerContext context, Func`1 next) in /_/src/NServiceBus.SagaAudit/CaptureSagaStateBehavior.cs:line 33\r\n at NServiceBus.LoadHandlersConnector.Invoke(IIncomingLogicalMessageContext context, Func`2 stage) in /_/src/NServiceBus.Core/Pipeline/Incoming/LoadHandlersConnector.cs:line 44\r\n at NServiceBus.InvokeSagaNotFoundBehavior.Invoke(IIncomingLogicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Sagas/InvokeSagaNotFoundBehavior.cs:line 17\r\n at NServiceBus.DeserializeMessageConnector.Invoke(IIncomingPhysicalMessageContext context, Func`2 stage) in /_/src/NServiceBus.Core/Pipeline/Incoming/DeserializeMessageConnector.cs:line 32\r\n at ReceivePerformanceDiagnosticsBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Metrics/ProbeBuilders/ReceivePerformanceDiagnosticsBehavior.cs:line 18\r\n at NServiceBus.InvokeAuditPipelineBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Audit/InvokeAuditPipelineBehavior.cs:line 19\r\n at NServiceBus.ProcessingStatisticsBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Performance/Statistics/ProcessingStatisticsBehavior.cs:line 25\r\n at NServiceBus.TransportReceiveToPhysicalMessageConnector.Invoke(ITransportReceiveContext context, Func`2 next) in /_/src/NServiceBus.Core/Pipeline/Incoming/TransportReceiveToPhysicalMessageConnector.cs:line 35\r\n at NServiceBus.RetryAcknowledgementBehavior.Invoke(ITransportReceiveContext context, Func`2 next) in /_/src/NServiceBus.Core/ServicePlatform/Retries/RetryAcknowledgementBehavior.cs:line 25\r\n at NServiceBus.MainPipelineExecutor.Invoke(MessageContext messageContext, CancellationToken cancellationToken) in /_/src/NServiceBus.Core/Pipeline/MainPipelineExecutor.cs:line 49\r\n at NServiceBus.MainPipelineExecutor.Invoke(MessageContext messageContext, CancellationToken cancellationToken) in /_/src/NServiceBus.Core/Pipeline/MainPipelineExecutor.cs:line 68\r\n at NServiceBus.LearningTransportMessagePump.ProcessFile(ILearningTransportTransaction transaction, String messageId, CancellationToken messageProcessingCancellationToken) in /_/src/NServiceBus.Core/Transports/Learning/LearningTransportMessagePump.cs:line 340", + }, + message_id: withMessageId, + number_of_processing_attempts: 1, + status: "unresolved", + sending_endpoint: { name: "Sender", host_id: "abb12931-1352-fd70-02c2-b78f6daab553", host: "mobvm2" }, + receiving_endpoint: { name: "Endpoint1", host_id: "abb12931-1352-fd70-02c2-b78f6daab553", host: "mobvm2" }, + queue_address: "Endpoint1", + time_of_failure: "2024-06-27T06:14:48.912923Z", + last_modified: "2024-06-27T06:14:49.2216249Z", + edited: false, + edit_of: "", + }; + + driver.mockEndpointDynamic(`${serviceControlUrl}errors`, "get", (url) => { + const status = url.searchParams.get("status"); + if (status === "unresolved") { + return Promise.resolve({ + body: [failedMessage], + headers: { "Total-Count": "1" }, + }); + } + + //For status=archived or status=retryissued + return Promise.resolve({ + body: [], + headers: { "Total-Count": "0" }, + }); + }); + + driver.mockEndpoint(`${serviceControlUrl}messages/${withMessageId}/body`, { + body: withBody, + }); + + driver.mockEndpoint(`${serviceControlUrl}messages/search/${withMessageId}`, { + body: [ + { + id: withGroupId, + message_id: withMessageId, + message_type: "ServiceControl.SmokeTest.SimpleCommand", + sending_endpoint: { name: "Sender", host_id: "abb12931-1352-fd70-02c2-b78f6daab553", host: "mobvm2" }, + receiving_endpoint: { name: "Endpoint1", host_id: "abb12931-1352-fd70-02c2-b78f6daab553", host: "mobvm2" }, + time_sent: "2024-06-27T06:14:48.895733Z", + processed_at: "2024-06-27T06:14:48.912923Z", + critical_time: "00:00:00", + processing_time: "00:00:00", + delivery_time: "00:00:00", + is_system_message: false, + conversation_id: "7de07fd4-928f-4d1a-be0f-b19c0066f22d", + headers: [ + { key: "NServiceBus.MessageId", value: withMessageId }, + { key: "NServiceBus.MessageIntent", value: "Send" }, + { key: "NServiceBus.ConversationId", value: "7de07fd4-928f-4d1a-be0f-b19c0066f22d" }, + { key: "NServiceBus.CorrelationId", value: withMessageId }, + { key: "NServiceBus.OriginatingMachine", value: "mobvm2" }, + { key: "NServiceBus.OriginatingEndpoint", value: "Sender" }, + { key: "$.diagnostics.originating.hostid", value: "abb129311352fd7002c2b78f6daab553" }, + { key: "NServiceBus.ContentType", value: withContentType }, + { key: "NServiceBus.EnclosedMessageTypes", value: "ServiceControl.SmokeTest.SimpleCommand, ServiceControl.SmokeTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" }, + { key: "NServiceBus.Version", value: "9.0.0" }, + { key: "NServiceBus.TimeSent", value: "2024-06-27 06:14:48:895733 Z" }, + { key: "NServiceBus.ProcessingMachine", value: "mobvm2" }, + { key: "NServiceBus.ProcessingEndpoint", value: "Endpoint1" }, + { key: "$.diagnostics.hostid", value: "abb129311352fd7002c2b78f6daab553" }, + { key: "$.diagnostics.hostdisplayname", value: "mobvm2" }, + { key: "NServiceBus.FailedQ", value: "Endpoint1" }, + { key: "NServiceBus.ExceptionInfo.ExceptionType", value: "System.Exception" }, + { key: "NServiceBus.ExceptionInfo.HelpLink" }, + { key: "NServiceBus.ExceptionInfo.Message", value: "SimpleHandler: Throwing exceptions enabled in Endpoint1" }, + { key: "NServiceBus.ExceptionInfo.Source", value: "ServiceControl.SmokeTest" }, + { + key: "NServiceBus.ExceptionInfo.StackTrace", + value: + "System.Exception: SimpleHandler: Throwing exceptions enabled in Endpoint1\r\n at ServiceControl.SmokeTest.SimpleHandler.Handle(SimpleCommand message, IMessageHandlerContext context) in /_/src/ServiceControl.SmokeTest/SimpleHandler.cs:line 26\r\n at NServiceBus.InvokeHandlerTerminator.Terminate(IInvokeHandlerContext context) in /_/src/NServiceBus.Core/Pipeline/Incoming/InvokeHandlerTerminator.cs:line 33\r\n at NServiceBus.SagaAudit.AuditInvokedSagaBehavior.Invoke(IInvokeHandlerContext context, Func`1 next) in /_/src/NServiceBus.SagaAudit/AuditInvokedSagaBehavior.cs:line 13\r\n at NServiceBus.SagaPersistenceBehavior.Invoke(IInvokeHandlerContext context, Func`2 next) in /_/src/NServiceBus.Core/Sagas/SagaPersistenceBehavior.cs:line 41\r\n at NServiceBus.SagaAudit.CaptureSagaStateBehavior.Invoke(IInvokeHandlerContext context, Func`1 next) in /_/src/NServiceBus.SagaAudit/CaptureSagaStateBehavior.cs:line 33\r\n at NServiceBus.LoadHandlersConnector.Invoke(IIncomingLogicalMessageContext context, Func`2 stage) in /_/src/NServiceBus.Core/Pipeline/Incoming/LoadHandlersConnector.cs:line 44\r\n at NServiceBus.InvokeSagaNotFoundBehavior.Invoke(IIncomingLogicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Sagas/InvokeSagaNotFoundBehavior.cs:line 17\r\n at NServiceBus.DeserializeMessageConnector.Invoke(IIncomingPhysicalMessageContext context, Func`2 stage) in /_/src/NServiceBus.Core/Pipeline/Incoming/DeserializeMessageConnector.cs:line 32\r\n at ReceivePerformanceDiagnosticsBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Metrics/ProbeBuilders/ReceivePerformanceDiagnosticsBehavior.cs:line 18\r\n at NServiceBus.InvokeAuditPipelineBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Audit/InvokeAuditPipelineBehavior.cs:line 19\r\n at NServiceBus.ProcessingStatisticsBehavior.Invoke(IIncomingPhysicalMessageContext context, Func`2 next) in /_/src/NServiceBus.Core/Performance/Statistics/ProcessingStatisticsBehavior.cs:line 25\r\n at NServiceBus.TransportReceiveToPhysicalMessageConnector.Invoke(ITransportReceiveContext context, Func`2 next) in /_/src/NServiceBus.Core/Pipeline/Incoming/TransportReceiveToPhysicalMessageConnector.cs:line 35\r\n at NServiceBus.RetryAcknowledgementBehavior.Invoke(ITransportReceiveContext context, Func`2 next) in /_/src/NServiceBus.Core/ServicePlatform/Retries/RetryAcknowledgementBehavior.cs:line 25\r\n at NServiceBus.MainPipelineExecutor.Invoke(MessageContext messageContext, CancellationToken cancellationToken) in /_/src/NServiceBus.Core/Pipeline/MainPipelineExecutor.cs:line 49\r\n at NServiceBus.MainPipelineExecutor.Invoke(MessageContext messageContext, CancellationToken cancellationToken) in /_/src/NServiceBus.Core/Pipeline/MainPipelineExecutor.cs:line 68\r\n at NServiceBus.LearningTransportMessagePump.ProcessFile(ILearningTransportTransaction transaction, String messageId, CancellationToken messageProcessingCancellationToken) in /_/src/NServiceBus.Core/Transports/Learning/LearningTransportMessagePump.cs:line 340", + }, + { key: "NServiceBus.TimeOfFailure", value: "2024-06-27 06:14:48:912923 Z" }, + { key: "NServiceBus.ExceptionInfo.Data.Message type", value: "ServiceControl.SmokeTest.SimpleCommand" }, + { key: "NServiceBus.ExceptionInfo.Data.Handler type", value: "ServiceControl.SmokeTest.SimpleHandler" }, + { key: "NServiceBus.ExceptionInfo.Data.Handler start time", value: "2024-06-27 06:14:48:911780 Z" }, + { key: "NServiceBus.ExceptionInfo.Data.Handler failure time", value: "2024-06-27 06:14:48:911893 Z" }, + { key: "NServiceBus.ExceptionInfo.Data.Handler canceled", value: "False" }, + { key: "NServiceBus.ExceptionInfo.Data.Message ID", value: withMessageId }, + { key: "NServiceBus.ExceptionInfo.Data.Transport message ID", value: "cec43aaf-d3ac-40b9-8c3c-5c210606c016" }, + { key: "NServiceBus.ExceptionInfo.Data.Pipeline canceled", value: "False" }, + ], + status: "failed", + message_intent: "send", + body_url: `/messages/${withGroupId}/body?instance_id=aHR0cDovLzEwLjAuMC41OjQ5MjAwL2FwaQ..`, + body_size: 21, + instance_id: "aHR0cDovLzEwLjAuMC41OjQ5MjAwL2FwaQ..", + }, + ], + }); + + driver.mockEndpoint(`${serviceControlUrl}errors/last/${withGroupId}`, { + body: failedMessage, + }); + + driver.mockEndpoint(`${serviceControlUrl}recoverability/groups{/:classifier}`, { + body: [ + { + id: withGroupId, + title: "Endpoint1", + type: "Endpoint Name", + count: 1, + first: "2024-06-27T06:14:48.912923Z", + last: "2024-06-27T06:14:48.912923Z", + operation_status: "None", + operation_progress: 0, + need_user_acknowledgement: false, + }, + ], + }); + + //api/recoverability/groups/${withGroupId}/errors?status=unresolved&page=1&per_page=50&sort=time_of_failure&direction=desc + driver.mockEndpoint(`${serviceControlUrl}recoverability/groups/${withGroupId}/errors`, { + body: [failedMessage], + headers: { "Total-Count": "1" }, + }); + + driver.mockEndpoint(`${serviceControlUrl}recoverability/groups/id/${withGroupId}`, { + body: { id: withGroupId, title: "Endpoint1", type: "Endpoint Name", count: 1, first: "2024-06-27T06:14:48.912923Z", last: "2024-06-27T06:14:48.912923Z" }, + }); + }; diff --git a/frontend/test/preconditions/serviceControlWithMonitoring.ts b/frontend/test/preconditions/serviceControlWithMonitoring.ts new file mode 100644 index 0000000000..dfae768ace --- /dev/null +++ b/frontend/test/preconditions/serviceControlWithMonitoring.ts @@ -0,0 +1,86 @@ +import * as precondition from "."; +import { SetupFactoryOptions } from "../driver"; + +export const serviceControlWithMonitoring = async ({ driver }: SetupFactoryOptions) => { + //Service control requests minimum setup. Todo: encapsulate for reuse. + + //http://localhost:33333/api/license + await driver.setUp(precondition.hasActiveLicense); + + //Default handler for /api/licensing/settings/test + await driver.setUp(precondition.hasLicensingSettingTest()); + + //http://localhost:33333/api/ + await driver.setUp(precondition.hasServiceControlMainInstance()); + + //http://localhost:33633 + await driver.setUp(precondition.hasServiceControlMonitoringInstance); + + //https://platformupdate.particular.net/servicecontrol.txt + await driver.setUp(precondition.hasUpToDateServiceControl); + + //https://platformupdate.particular.net/servicepulse.txt + await driver.setUp(precondition.hasUpToDateServicePulse); + + //http://localhost:33333/api/errors + await driver.setUp(precondition.errorsDefaultHandler); + + //http://localhost:33333/api/customchecks + await driver.setUp(precondition.hasCustomChecksEmpty); + + //http://localhost:33633/monitored-endpoints/disconnected + await driver.setUp(precondition.hasNoDisconnectedEndpoints); + + //http://localhost:33333/api/eventlogitems + await driver.setUp(precondition.hasEventLogItems); + + //http://localhost:33333/api/recoverability/groups/Endpoint%20Name + await driver.setUp(precondition.hasRecoverabilityGroups); + + //http://localhost:33333/api/endpoints + await driver.setUp(precondition.hasNoHeartbeatsEndpoints); + + //http://localhost:33633/monitored-endpoints + await driver.setUp(precondition.hasNoMonitoredEndpoints); + + //http://localhost:33333/recoverability/groups/Endpoint%20Instance + await driver.setUp(precondition.endpointRecoverabilityByInstanceDefaultHandler); + + //http://localhost:33333/recoverability/groups/Endpoint%20Name?classifierFilter=${name} - the classifierFilter is ignored, this is a default handler for the route. + await driver.setUp(precondition.endpointRecoverabilityByNameDefaultHandler); + + //OPTIONS VERB against monitoring instance http://localhost:33633/ - this is used for enabling deleting an instance from the endpoint details page - instances panel + await driver.setUp(precondition.serviceControlMonitoringOptions); + + //http://localhost:33333/api/configuration default handler + await driver.setUp(precondition.serviceControlConfigurationDefaultHandler); + + //http://localhost:33333/api/recoverability/classifiers default handler + await driver.setUp(precondition.recoverabilityClassifiers); + + //http://localhost:33333/api/recoverability/history default handler + await driver.setUp(precondition.recoverabilityHistoryDefaultHandler); + + //http://localhost:33333/api/edit/config default handler + await driver.setUp(precondition.recoverabilityEditConfigDefaultHandler); + + //http://localhost:33333/api/errors/groups{/:classifier}? default handler + await driver.setUp(precondition.archivedGroupsWithClassifierDefaulthandler); + + //http://localhost:33333/api/recoverability/groups{/:classifier} default handler + await driver.setUp(precondition.recoverabilityGroupsWithClassifierDefaulthandler); + + //Default handler for /api/licensing/report/available + await driver.setUp(precondition.hasLicensingReportAvailable()); + + //Default handler for /api/licensing/endpoints + await driver.setUp(precondition.hasLicensingEndpoints()); + + await driver.setUp(precondition.hasEndpointSettings([])); + + //default handler for /api/redirects + await driver.setUp(precondition.redirectsDefaultHandler); + + //default handler for /api/queues/addresses + await driver.setUp(precondition.knownQueuesDefaultHandler); +}; diff --git a/frontend/test/specs/configuration/configuring-health-check-notifications.spec.ts b/frontend/test/specs/configuration/configuring-health-check-notifications.spec.ts new file mode 100644 index 0000000000..48fbdcc1c5 --- /dev/null +++ b/frontend/test/specs/configuration/configuring-health-check-notifications.spec.ts @@ -0,0 +1,97 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Health check notifications", () => { + describe("RULE: Email notification should be able to toggled on and off", () => { + test.todo("EXAMPLE: Email notification is toggled on"); + + /* SCENARIO + Enable email notifications + + Given Email notifications are OFF + When the toggle button is clicked + Then Email notifications are ON + */ + + test.todo("EXAMPLE: Email notification is toggled off"); + /* SCENARIO + Disable email notifications + + Given Email notifications are ON + When the toggle button is clicked + Then Email notifications are OFF + */ + }); + describe("RULE: Email notifications should be configurable", () => { + test.todo("EXAMPLE: Clicking the configure button should open the email configuration popup"); + + /* SCENARIO + Open email configuration + + Given the Email configuration popup is not visible + When the "Configure" button is clicked + Then the Email configuration popup is displayed + */ + + test.todo("EXAMPLE: The save button should be enabled when the form is valid"); + test.todo("EXAMPLE: The save button should be disabled when the form is invalid"); + test.todo("EXAMPLE: The save button should update the email configuration and close the popup when clicked"); + + /* SCENARIO + Invalid configurations cannot be saved + + Given the Email configuration popup is visible + When invalid or incomplete data is entered into the form + Then the Save button is not enabled + */ + + test.todo("EXAMPLE: The cancel button should close the email configuration popup without saving changes"); + + /* SCENARIO + Email configuration changed can be cancelled + + Given the Email configuration popup is visible + And edits have been made to the email configuration + When the Cancel button is pressed + Then the Email configuration popup is closed + And no changes have been made to the email configuration + */ + }); + describe("RULE: Health check notification configuration should be persistent", () => { + test.todo("EXAMPLE: Updated email configuration should remain after a page refresh"); + + /* SCENARIO + Email configuration + + When the email configuration has been changed + And the screen is refreshed + Then the email notification configuration matches what was last saved + */ + + test.todo("EXAMPLE: Email notification are on and remain on after a page refresh"); + test.todo("EXAMPLE: Email notification are off and remain off after a page refresh"); + /* SCENARIO + Email notifications toggle + + Given the Email notifications are ON + When the page is refreshed + Then the Email notifications are ON + */ + }); + describe("RULE: Sending a test notification should indicate success or failure", () => { + test.todo("EXAMPLE: Invalid Configuration"); + + /* SCENARIO + Given an invalid configuration + When "Send test notification" is clicked + Then "TEST FAILED" is displayed + */ + + test.todo("EXAMPLE: Valid Configuration"); + /* SCENARIO + + Given a valid configuration + When "Send test notification" is clicked + Then "Test email sent successfully" is displayed + */ + }); +}); diff --git a/frontend/test/specs/configuration/configuring-redirects.spec.ts b/frontend/test/specs/configuration/configuring-redirects.spec.ts new file mode 100644 index 0000000000..c7afb96a45 --- /dev/null +++ b/frontend/test/specs/configuration/configuring-redirects.spec.ts @@ -0,0 +1,269 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Configuring queue redirects", () => { + describe("RULE: All queue redirects should be listed", () => { + test.todo("EXAMPLE: A message should be shown when there are no redirects"); + + /* SCENARIO + Empty + + When there are no redirects + Then "There are currently no redirects" should appear + */ + + test.todo("EXAMPLE: Exiting redirects should be shown in a list"); + /* SCENARIO + Non-empty + + When there are redirects + Then they are shown + */ + + test.todo("EXAMPLE: Redirects should be shown in a list when there are created"); + + /* SCENARIO + Empty + + Given there are no redirects + When a redirect is created + Then the new redirect is shown in the list + */ + + /* NOTES + From Address + To Address + Last Modified + End Redirect + Modify Redirect + */ + }); + describe("RULE: Queue redirects should be able to be created", () => { + test.todo("EXAMPLE: The 'create' button in the create redirect dialog should be disabled when the form is invalid"); + + /* SCENARIO + Cannot save invalid + + When Create Redirect is clicked + And invalid redirect info is entered + Then the Save button is disabled + */ + + test.todo("EXAMPLE: Clicking the 'create' button with Valid redirect information in the create redirect dialog should create a redirect"); + + /* SCENARIO + Valid redirect + + When Create Redirect is clicked + And valid redirect info is entered + And Save is clicked + Then the redirect is created + */ + + test.todo("EXAMPLE: A valid 'To' address that is not known should show a warning message but still allow the redirect to be created"); + /* SCENARIO + Warn if to-address is not known + + When Create Redirect is clicked + And valid redirect info is entered + And the to address is not known to ServiceControl + Then a warning message is shown + And the redirect can still be created + */ + + test.todo("EXAMPLE: Clicking the 'create' button with the 'Immediately retry any matching failed messages' checkbox checked should create a redirect and start a retry operation"); + /* SCENARIO + Immediate retry + + When Create Redirect is clicked + And valid redirect info is entered + And the "Immediately retry any matching failed messages" checkbox is checked + And the Create button is clicked + Then the redirect is created + And a retry operation starts matching the from physical address + */ + + test.todo("EXAMPLE: Clicking the 'create' button with the 'Immediately retry any matching failed messages' checkbox unchecked should create a redirect and not start a retry operation"); + + /* SCENARIO + No immediate retry + + When Create Redirect is clicked + And valid redirect info is entered + And the "Immediately retry any matching failed messages" checkbox is unchecked + And the Create button is clicked + Then the redirect is created + And no retry operation starts + */ + + test.todo("EXAMPLE: Creating a redirect with a 'From' address that already exists should show an error message and not create a new redirect"); + /* SCENARIO + Cannot create multiple redirects for same from address + + Given a redirect exists with a From address of "Endpoint1" + When a new redirect is created with a From address of "Endpoint1" + Then no new redirect is created + And the user is notified that this action is invalid + */ + + test.todo("EXAMPLE: Creating a redirect with a 'To' address that already exists should show an error message and not create a new redirect"); + /* SCENARIO + Cannot chain redirects + + Given a rediect exists with a From address of "Endpoint1" + When a new redirect is created with a To address of "Endpoint1" + Then no new redirect is created + And the user is notified that this action is invalid + */ + + test.todo("EXAMPLE: Creating a redirect with a 'From' address when a redirect with the same 'To' address already exists should show an error message and not create a new redirect"); + /* SCENARIO + Cannot chain redirects 2 + + Given a rediect exists with a To address of "Endpoint1" + When a new redirect is created with a From address of "Endpoint1" + Then no new redirect is created + And the user is notified that this action is invalid + */ + + test.todo("EXAMPLE: Clicking the 'cancel' button in the create redirect dialog should close the dialog and not create a redirect"); + /* SCENARIO + Cancel + + When Create Redirect is clicked + And valid redirect info is entered + And Cancel is clicked + Then the Create redirect dialog is closed + And no redirect is created + */ + }); + describe("RULE: Existing queue redirects should not allow the 'From' address to modified", () => { + test.todo("EXAMPLE: Opening the 'Modify redirect' dialog should not allow the 'From' address to be changed"); + /* SCENARIO + Cannot change from address + + Given an existing redirect + When Modify Redirect is clicked + Then the Modify redirect dialog is shown + And the From address cannot be changed + */ + }); + describe("RULE: Existing queue redirects should be able to be modified", () => { + test.todo("EXAMPLE: Changes to the 'To' address should be saved when the 'modify' button is clicked"); + + /* SCENARIO + Can change to address + + Given an existing redirect + When Modify Redirect is clicked + And the To address is changed + And the Modify button is clicked + Then the redirect is updated + */ + + test.todo("EXAMPLE: 'To' address that is not known should show a warning message but still allow the redirect to be modified"); + /* SCENARIO + Warn if to-address is not known + + Given an existing redirect + When Modify Redirect is clicked + And the to address is not known to ServiceControl + Then a warning message is shown + And the redirect can still be modified + */ + + test.todo("EXAMPLE: Modifying a redirect with a 'to' address that already exists to another redirect's 'from' address should show an error message and not modify the redirect"); + /* SCENARIO + Cannot chain redirects + + Given a rediect exists with a From address of "Endpoint1" + When another redirect is modfied with a To address of "Endpoint1" + Then the redirect is not modified + And the user is notified that this action is invalid + */ + + test.todo("EXAMPLE: Modifying a redirect and checking the 'Immediately retry any matching failed messages' checkbox should update the redirect and start a retry operation"); + /* SCENARIO + Immediate retry + + Given an existing redirect + When Modify Redirect is clicked + And the "Immediately retry any matching failed messages" checkbox is checked + And the Modify button is clicked + Then the redirect is updated + And a retry operation starts matching the from physical address + */ + + test.todo("EXAMPLE: Modifying a redirect and unchecking the 'Immediately retry any matching failed messages' checkbox should update the redirect and not start a retry operation"); + /* SCENARIO + No immediate retry + + Given an existing redirect + When Modify Redirect is clicked + And the "Immediately retry any matching failed messages" checkbox is unchecked + And the Modify button is clicked + Then the redirect is updated + And no retry operation starts + */ + + test.todo("EXAMPLE: Clicking the 'cancel' button in the modify redirect dialog should close the dialog and not modify the redirect"); + + /* SCENARIO + Cancel + + Given an existing redirect + When Modify Redirect is clicked + And the details of the redirect are changed + And Cancel is clicked + Then the Modify redirect dialog is closed + And the redirect is not modified + */ + }); + describe("RULE: Redirects should be able to be ended", () => { + test.todo("EXAMPLE: Clicking the 'Yes' button in the end redirect dialog should end the redirect"); + + /* SCENARIO + Confirmed + + Given an existing redirect + When End Redirect is clicked + And Yes is clicked + And the redirect is ended + */ + + test.todo("EXAMPLE: Clicking the 'No' button in the end redirect dialog should not end the redirect"); + /* SCENARIO + Not confirmed + + Given an existing redirect + When End Redirect is clicked + And No is clicked + And the redirect is still present + */ + }); + describe("RULE: The number of redirects should be displayed", () => { + test.todo("EXAMPLE: The tab should include a (0) suffix when there are no redirects"); + + /* SCENARIO + Empty + + When there are no redirects + Then the tab should include a (0) suffix + */ + + test.todo("EXAMPLE: The tab should increment the counter when a redirect is added"); + /* SCENARIO + A redirect is added + + When a redirect is added + Then the counter next to the tab should be incremented + */ + + test.todo("EXAMPLE: The tab should decrement the counter when a redirect is ended"); + /* SCENARIO + A redirect is ended + + When a redirect is ended + Then the counter next to the tab should be decremented + */ + }); +}); diff --git a/frontend/test/specs/configuration/configuring-retry-redirects.spec.ts b/frontend/test/specs/configuration/configuring-retry-redirects.spec.ts new file mode 100644 index 0000000000..d5ecbf12d0 --- /dev/null +++ b/frontend/test/specs/configuration/configuring-retry-redirects.spec.ts @@ -0,0 +1,94 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Retry redirects", () => { + describe("RULE: Existing connection details should be shown", () => { + test.todo("EXAMPLE: The set ServiceControl connection URL should be displayed"); + + /* SCENARIO + ServiceControl connection + + Given a ServiceControl connection of http://localhost:33333/api/ + When the page loads + Then the ServiceControl connection url box should show http://localhost:33333/api + */ + test.todo("EXAMPLE: The set ServiceControl Monitoring connection URL should be displayed"); + /* SCENARIO + ServiceControl Monitoring connection + + Given a ServiceControl Monitoring connection of http://localhost:33633/ + When the page loads + Then the ServiceControl Monitoring connection url box should show http://localhost:33633/ + */ + }); + describe("RULE: Connection details should be able to be tested", () => { + test.todo("EXAMPLE: Clicking the ServiceControl 'Test' button with a valid URL should display a success message"); + + /* SCENARIO + Valid ServiceControl connection + + Given a ServiceControl connection to a valid running instance + When the Test button is clicked + Then "Connection successful" should be displayed + */ + + test.todo("EXAMPLE: Clicking the ServiceControl 'Test' button with an invalid URL should display a failure message"); + test.todo("EXAMPLE: Clicking the ServiceControl 'Test' button with a URL to an instance that isn't running should display a failure message"); + /* SCENARIO + Invalid ServiceControl connection + + Given a ServiceControl connection to an invalid or not running instance + When the Test button is clicked + Then "Connection failed" should be displayed + */ + + test.todo("EXAMPLE: Clicking the ServiceControl Monitoring 'Test' button with a valid URL should display a success message"); + + /* SCENARIO + Valid ServiceControl Monitoring connection + + Given a ServiceControl Monitoring connection to a valid running instance + When the Test button is clicked + Then "Connection successful" should be displayed + */ + + test.todo("EXAMPLE: Clicking the ServiceControl Monitoring 'Test' button with an invalid URL should display a failure message"); + test.todo("EXAMPLE: Clicking the ServiceControl Monitoring 'Test' button with a URL to an instance that isn't running should display a failure message"); + /* SCENARIO + Invalid ServiceControl Monitoring connection + + Given a ServiceControl Monitoring connection to an invalid or not running instance + When the Test button is clicked + Then "Connection failed" should be displayed + */ + }); + describe("RULE: Connection URLs should be able to be saved", () => { + test.todo("EXAMPLE: Clicking the 'Save' button with a valid running instance should display a success message"); + + /* SCENARIO + Valid ServiceControl connection + + Given a ServiceControl connection to a valid running instance + When the Save button is clicked + Then "Connection saved" should be displayed + */ + + test.todo("EXAMPLE: Updating a connection URL and refreshing the page should display the original value"); + /* SCENARIO + Not saved + + Given a ServiceControl connection + When the ServiceControl connection is changed + And the page is refreshed + Then the original value is restored + */ + }); + describe("RULE: The ServiceControl Monitoring URL should be optional", () => { + test.todo("EXAMPLE: Entering a '!' into the Monitoring connection URL should disable the Test button and remove the Monitoring tab"); + + /* SCENARIO + When the Monitoring connection is set to ! + Then the Test button is disabled + And the Monitoring tab is removed + */ + }); +}); diff --git a/frontend/test/specs/configuration/questions/licenseExpired.ts b/frontend/test/specs/configuration/questions/licenseExpired.ts new file mode 100644 index 0000000000..55afaafaf3 --- /dev/null +++ b/frontend/test/specs/configuration/questions/licenseExpired.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export async function licenseExpired() { + const licenseExpiredText = await screen.findByRole("note", { name: "license-expired" }); + return licenseExpiredText.textContent?.trim(); +} diff --git a/frontend/test/specs/configuration/questions/licenseExpiryDate.ts b/frontend/test/specs/configuration/questions/licenseExpiryDate.ts new file mode 100644 index 0000000000..d435c4d407 --- /dev/null +++ b/frontend/test/specs/configuration/questions/licenseExpiryDate.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export async function licenseExpiryDate() { + const licenseExpiryDateElement = await screen.findByRole("note", { name: "license-expiry-date" }); + return licenseExpiryDateElement; +} diff --git a/frontend/test/specs/configuration/questions/licenseExpiryDaysLeft.ts b/frontend/test/specs/configuration/questions/licenseExpiryDaysLeft.ts new file mode 100644 index 0000000000..95a6b5046c --- /dev/null +++ b/frontend/test/specs/configuration/questions/licenseExpiryDaysLeft.ts @@ -0,0 +1,7 @@ +import { screen } from "@testing-library/vue"; + +export async function licenseExpiryDaysLeft() { + //TODO: determine why timeout had to be increased + const licenseExpiryDaysLeftElement = await screen.findByRole("note", { name: "license-days-left" }); + return licenseExpiryDaysLeftElement; +} diff --git a/frontend/test/specs/configuration/questions/licenseTabs.ts b/frontend/test/specs/configuration/questions/licenseTabs.ts new file mode 100644 index 0000000000..7fc5a0d123 --- /dev/null +++ b/frontend/test/specs/configuration/questions/licenseTabs.ts @@ -0,0 +1,12 @@ +import { screen } from "@testing-library/vue"; + +export async function licenseTabList() { + const tabs = await screen.findAllByRole("tab"); + return tabs; +} +export async function licenseTabNames() { + const tabs = await licenseTabList(); + // Check the names of the tabs + const tabNames = tabs.map((tab) => tab.textContent?.trim()); + return tabNames; +} diff --git a/frontend/test/specs/configuration/questions/licenseTypeDetails.ts b/frontend/test/specs/configuration/questions/licenseTypeDetails.ts new file mode 100644 index 0000000000..09fdf1ee44 --- /dev/null +++ b/frontend/test/specs/configuration/questions/licenseTypeDetails.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export async function licenseTypeDetails() { + const licenseType = await screen.findByRole("note", { name: "license-type" }); + return licenseType.textContent; +} diff --git a/frontend/test/specs/configuration/viewing-endpoint-connection.spec.ts b/frontend/test/specs/configuration/viewing-endpoint-connection.spec.ts new file mode 100644 index 0000000000..c75303e487 --- /dev/null +++ b/frontend/test/specs/configuration/viewing-endpoint-connection.spec.ts @@ -0,0 +1,28 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Endpoint connection", () => { + describe("RULE: Examples should match the current configuration", () => { + test.todo("EXAMPLE: The 'Endpoint Configuration Only' tab should be selected by default"); + test.todo("EXAMPLE: The 'Endpoint Configuration Only' tab should display endpoint configuration examples for the current configuration"); + /* SCENARIO + Endpoint Configuration only + */ + + test.todo("EXAMPLE: The 'JSON File' tab should display JSON file configuration examples for the current configuration"); + /* SCENARIO + Json file + */ + }); + describe("RULE: Copying the example should happen with a single click", () => { + test.todo("EXAMPLE: Clicking the 'Copy' button in the 'Endpoint Configuration Only' tab should copy the example to the clipboard"); + + /* SCENARIO + Endpoint Configuration only + */ + + test.todo("EXAMPLE: Clicking the 'Copy' button in the 'JSON File' tab should copy the example to the clipboard"); + /* SCENARIO + Json file + */ + }); +}); diff --git a/frontend/test/specs/configuration/viewing-license.spec.ts b/frontend/test/specs/configuration/viewing-license.spec.ts new file mode 100644 index 0000000000..f34f4a9f6e --- /dev/null +++ b/frontend/test/specs/configuration/viewing-license.spec.ts @@ -0,0 +1,115 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { licenseTypeDetails } from "./questions/licenseTypeDetails"; +import { licenseExpiryDate } from "./questions/licenseExpiryDate"; +import { licenseExpiryDaysLeft } from "./questions/licenseExpiryDaysLeft"; +import { licenseExpired } from "./questions/licenseExpired"; +import { waitFor } from "@testing-library/vue"; +import { LicenseType } from "@/resources/LicenseInfo"; +import { licenseTabList, licenseTabNames } from "./questions/licenseTabs"; + +describe("FEATURE: License", () => { + describe("RULE: Platform license type should be shown", () => { + test("EXAMPLE: The platform is running a commercial license", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasActiveLicense); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseTypeDetails()).toBe("Commercial, Enterprise"); + }); + }); + }); + + describe("RULE: License expiry date should be shown", () => { + test("EXAMPLE: Valid license expiry date is shown", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasActiveLicense); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDate()).toBeVisible(); + }); + }); + }); + + describe("RULE: License expired", () => { + test("EXAMPLE: An expired license", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiredLicense(LicenseType.Subscription, 5)); //license expired 6 days before + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpired()).toBe("Your license expired. Please update the license to continue using the Particular Service Platform."); + }); + }); + test("EXAMPLE: Visiting the configuration page with an expired license", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiredLicense(LicenseType.Subscription, 5)); //license expired 6 days before + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseTabList()).toHaveLength(3); + expect(await licenseTabNames()).toEqual(expect.arrayContaining(["License", "Usage Setup", "Connections"])); + }); + }); + }); + + describe("RULE: License expiring soon must be displayed", () => { + test("EXAMPLE: License expiring in 11 days", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, 11)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDaysLeft()).toBeVisible(); + expect((await licenseExpiryDaysLeft()).textContent).toContain("expiring in 11 days"); + }); + }); + test("EXAMPLE: License expiring tomorrow", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, 1)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDaysLeft()).toBeVisible(); + expect((await licenseExpiryDaysLeft()).textContent).toContain("expiring tomorrow"); + }); + }); + test("EXAMPLE: License expiring today", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription, 0)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDaysLeft()).toBeVisible(); + expect((await licenseExpiryDaysLeft()).textContent).toContain("expiring today"); + }); + }); + }); + + describe("RULE: Upgrade Protection license expiring soon must be displayed with a reference to how much time is left and a warning:'Once upgrade protection expires, you'll no longer have access to support or new product versions. '", () => { + test("EXAMPLE: Upgrade Protection license expiring in 11 days", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.UpgradeProtection, 11)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDaysLeft()).toBeVisible(); + expect((await licenseExpiryDaysLeft()).textContent).toContain("11 days left"); + }); + }); + test("EXAMPLE: Upgrade Protection license expiring tomorrow", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.UpgradeProtection, 1)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + expect(await licenseExpiryDaysLeft()).toBeVisible(); + expect((await licenseExpiryDaysLeft()).textContent).toContain("1 day left"); + }); + }); + test("EXAMPLE: Upgrade Protection license expiring today", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.UpgradeProtection, -1)); + await driver.goTo("/configuration/license"); + await waitFor(async () => { + const testable = await licenseExpiryDaysLeft(); + expect(testable).toBeVisible(); + expect(testable.textContent).toContain("expired"); + }); + }); + }); +}); diff --git a/frontend/test/specs/customchecks/dismissing-custom-checks.spec.ts b/frontend/test/specs/customchecks/dismissing-custom-checks.spec.ts new file mode 100644 index 0000000000..144233fb35 --- /dev/null +++ b/frontend/test/specs/customchecks/dismissing-custom-checks.spec.ts @@ -0,0 +1,55 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import { expect } from "vitest"; +import * as precondition from "../../preconditions"; +import { customChecksListElement, customChecksDismissButtonList, customChecksFailedRowsList } from "./questions/failedCustomChecks"; +import { waitFor } from "@testing-library/vue"; +import userEvent from "@testing-library/user-event"; + +describe("FEATURE: Dismiss custom checks", () => { + describe("RULE: Dismiss button should be visible", () => { + test("EXAMPLE: Dismiss button is visible on each failing custom check", async ({ driver }) => { + const failingCustomCheckCount = 4; + const passingCustomCheckCount = 2; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); + }); + + await waitFor(async () => { + expect(await customChecksDismissButtonList()).toHaveLength(failingCustomCheckCount); //count of dismiss button + }); + }); + }); + + describe("RULE: Dismissing a custom check should remove from the list", () => { + test("EXAMPLE: The dismiss button removes the custom check from the list when clicked", async ({ driver }) => { + const failingCustomCheckCount = 4; + const passingCustomCheckCount = 2; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + + let dismissButtonList = await customChecksDismissButtonList(); + expect(dismissButtonList).toHaveLength(failingCustomCheckCount); //count of dismiss button matches the failed custom check count + + //click the dismiss button + await userEvent.click(dismissButtonList[0]); + + //get the new dismiss button list + dismissButtonList = await customChecksDismissButtonList(); + expect(dismissButtonList).toHaveLength(failingCustomCheckCount - 1); //count of dismiss button is decreased by 1 + }); + }); +}); diff --git a/frontend/test/specs/customchecks/questions/failedCustomChecks.ts b/frontend/test/specs/customchecks/questions/failedCustomChecks.ts new file mode 100644 index 0000000000..085cfa33f5 --- /dev/null +++ b/frontend/test/specs/customchecks/questions/failedCustomChecks.ts @@ -0,0 +1,46 @@ +import { screen } from "@testing-library/vue"; +import moment from "moment"; + +export function customChecksMessageElement() { + const customCheckNoDataElement = screen.queryByRole("note", { name: "customcheck-message" }); + return customCheckNoDataElement; +} +export function customChecksMessage() { + const customCheckNoDataMessage = customChecksMessageElement(); + return customCheckNoDataMessage?.textContent?.trim(); +} +export function customChecksListElement() { + const customChecksListElement = screen.queryByRole("table", { name: "custom-check-list" }); + return customChecksListElement; +} +export async function customChecksFailedRowsList() { + const failedCustomChecksRows = await screen.findAllByRole("row", { name: "custom-check-failed-row" }); + return failedCustomChecksRows; +} +export async function customChecksFailedReasonList() { + const failedCustomChecksReasons = await screen.findAllByRole("note", { name: "custom-check-failed-reason" }); + return failedCustomChecksReasons; +} +export function customChecksListPaginationElement() { + const customChecksListPaginationElement = screen.queryByRole("row", { name: "custom-check-pagination" }); + return customChecksListPaginationElement; +} +export async function customChecksReportedDateList() { + const timeElements = await screen.getAllByRole("note", { name: "custom-check-reported-date" }); + + const timeStamps = timeElements.map((el) => { + const utcDateString = el.title.match(/(\w+day, \w+ \d+, \d+ \d+:\d+ [APM]+ \(UTC\))/); + + const finalUtcString = utcDateString ? utcDateString[0] : moment.utc().format("dddd, MMMM D, YYYY h:mm A (UTC)"); + + // Step 2: Parse the UTC date using moment + const utcDate = moment(finalUtcString, "dddd, MMMM D, YYYY h:mm A (UTC)").utc().toDate(); // Converts to UTC Date object + return utcDate.getTime(); + }); + + return timeStamps; +} +export async function customChecksDismissButtonList() { + const dismissButtonList = await screen.findAllByRole("button", { name: "custom-check-dismiss" }); + return dismissButtonList; +} diff --git a/frontend/test/specs/customchecks/viewing-failing-custom-checks.spec.ts b/frontend/test/specs/customchecks/viewing-failing-custom-checks.spec.ts new file mode 100644 index 0000000000..2cce74f0e7 --- /dev/null +++ b/frontend/test/specs/customchecks/viewing-failing-custom-checks.spec.ts @@ -0,0 +1,153 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import { expect } from "vitest"; +import * as precondition from "../../preconditions"; +import { customChecksFailedRowsList, customChecksListElement, customChecksMessageElement, customChecksFailedReasonList, customChecksListPaginationElement, customChecksReportedDateList } from "./questions/failedCustomChecks"; +import { waitFor } from "@testing-library/vue"; +import { updateCustomCheckItemByStatus } from "../../preconditions/customChecks"; + +describe("FEATURE: Failing custom checks", () => { + describe("RULE: Failed custom checks should be displayed", () => { + test("EXAMPLE: All custom checks are in a failed state are displayed in a list on the custom checks tab", async ({ driver }) => { + const failingCustomCheckCount = 5; + const passingCustomCheckCount = 3; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + }); + expect(customChecksMessageElement()).not.toBeInTheDocument(); //no data message is not vsible + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + + const failedReasonList = await customChecksFailedReasonList(); + expect(failedReasonList).toHaveLength(failingCustomCheckCount); //count of failed reasons matches failing count set + + failedReasonList.forEach((reason) => { + const textContent = reason.textContent?.trim(); + expect(textContent).not.toBe(""); // the failed reason text content is not empty + }); + }); + }); + }); + + describe("RULE: Failed custom checks should have pagination when failed checks count is greater than 10", () => { + test("EXAMPLE: 11 failed custom checks is paginated on the custom checks tab", async ({ driver }) => { + const failingCustomCheckCount = 11; + const passingCustomCheckCount = 3; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list visible + }); + expect(customChecksListPaginationElement()).toBeInTheDocument(); //pagination visible + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + }); + + test("EXAMPLE: 9 failed custom checks is not paginated on the custom checks tab", async ({ driver }) => { + const failingCustomCheckCount = 9; + const passingCustomCheckCount = 3; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + }); + expect(customChecksListPaginationElement()).not.toBeInTheDocument(); //pagination not visible + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + }); + }); + describe("RULE: Failed custom checks should be shown in descending order of last checked", () => { + test("EXAMPLE:Three failed custom checks is displayed in descending order of last checked on the custom checks tab", async ({ driver }) => { + const failingCustomCheckCount = 5; + const passingCustomCheckCount = 3; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + }); + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + + const timestamps = await customChecksReportedDateList(); // Ensure this is awaited correctly + + // Ensure that the times are in descending order + for (let i = 0; i < timestamps.length - 1; i++) { + expect(timestamps[i]).toBeGreaterThanOrEqual(timestamps[i + 1]); + } + }); + }); + describe("RULE: Custom checks should auto-refresh", () => { + test("EXAMPLE:When a custom check fails, the custom checks tab is auto-refreshed with the new failed custom check", async ({ driver }) => { + const failingCustomCheckCount = 3; + const passingCustomCheckCount = 2; + + await driver.setUp(precondition.serviceControlWithMonitoring); + const customCheckItems = precondition.generateCustomChecksData(failingCustomCheckCount, passingCustomCheckCount)(); + await driver.setUp(precondition.getCustomChecks(customCheckItems)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + }); + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + + updateCustomCheckItemByStatus(customCheckItems, "Pass"); // Fail an existing item that is passing + await driver.setUp(precondition.getCustomChecks(customCheckItems)); + + await driver.goTo("/custom-checks"); + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount + 1); // Now it should be increased by 1 + }); + }); + + test("EXAMPLE: A failing custom check that begins passing is auto-refreshed and removed from the list on the custom checks tab", async ({ driver }) => { + const failingCustomCheckCount = 3; + const passingCustomCheckCount = 2; + + await driver.setUp(precondition.serviceControlWithMonitoring); + const customCheckItems = precondition.generateCustomChecksData(failingCustomCheckCount, passingCustomCheckCount)(); + await driver.setUp(precondition.getCustomChecks(customCheckItems)); + + await driver.goTo("/custom-checks"); + + await waitFor(async () => { + expect(await customChecksListElement()).toBeInTheDocument(); //failed list is visisble + }); + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount); //count of failed checks matches failing count set + }); + + updateCustomCheckItemByStatus(customCheckItems, "Fail"); // an existing item that is failing + + await driver.setUp(precondition.getCustomChecks(customCheckItems)); + + await driver.goTo("/custom-checks"); + await waitFor(async () => { + expect(await customChecksFailedRowsList()).toHaveLength(failingCustomCheckCount - 1); // Now it should be decreased by 1 + }); + }); + }); +}); diff --git a/frontend/test/specs/customchecks/viewing-no-data.spec.ts b/frontend/test/specs/customchecks/viewing-no-data.spec.ts new file mode 100644 index 0000000000..d6ba4d5a2c --- /dev/null +++ b/frontend/test/specs/customchecks/viewing-no-data.spec.ts @@ -0,0 +1,32 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import { expect } from "vitest"; +import * as precondition from "../../preconditions"; +import { customChecksMessage } from "./questions/failedCustomChecks"; +import { waitFor } from "@testing-library/vue"; + +describe("FEATURE: No data", () => { + describe("RULE: When there is no data to show, a message should be displayed ", () => { + test("EXAMPLE: There are no failed or passing custom checks", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasCustomChecksEmpty); + + await driver.goTo("/custom-checks"); + + await waitFor(() => { + expect(customChecksMessage()).toBe("No failed custom checks"); + }); + }); + test("EXAMPLE: There are custom checks but none of them are failing", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + const failingCustomCheckCount = 0; + const passingCustomCheckCount = 5; + await driver.setUp(precondition.hasCustomChecks(failingCustomCheckCount, passingCustomCheckCount)); + + await driver.goTo("/custom-checks"); + + await waitFor(() => { + expect(customChecksMessage()).toBe("No failed custom checks"); + }); + }); + }); +}); diff --git a/frontend/test/specs/failedmessages/actions/openEditAndRetryEditor.ts b/frontend/test/specs/failedmessages/actions/openEditAndRetryEditor.ts new file mode 100644 index 0000000000..fb6b1b5a90 --- /dev/null +++ b/frontend/test/specs/failedmessages/actions/openEditAndRetryEditor.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; +import UserEvent from "@testing-library/user-event"; +export async function openEditAndRetryEditor() { + const button = await screen.findByRole("button", { name: "Edit & retry" }); + await UserEvent.click(button); +} diff --git a/frontend/test/specs/failedmessages/deleting-failed-message-groups.spec.ts b/frontend/test/specs/failedmessages/deleting-failed-message-groups.spec.ts new file mode 100644 index 0000000000..6db8ee5ddd --- /dev/null +++ b/frontend/test/specs/failedmessages/deleting-failed-message-groups.spec.ts @@ -0,0 +1,54 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Deleted Message Groups", () => { + describe("RULE: Deleted Message Groups view should shows all current deleted messages, grouped by the selected grouping", () => { + test.todo("EXAMPLE: A message should be show when there are no deleted messages"); + + /* SCENARIO + Given there are no Deleted Messages + Then the "Deleted Message Groups" tab will display a message indicating the fact + */ + + test.todo("EXAMPLE: The number of deleted messages in a group should be shown"); + test.todo("EXAMPLE: The time period from the first failed message should be shown"); + test.todo("EXAMPLE: The time period of the last failed message should be shown"); + test.todo("EXAMPLE: The time period of when the group was last retried should be shown"); + test.todo("EXAMPLE: A deleted message group that has not been retried should show N/A for the last retry time"); + + /* SCENARIO + Given there are 1 or more groups shown on the "Deleted Message Groups" tab + Then the group row will display the current grouping name in bold + and the group will display the number of messages in the group + and the group will display a time period indicating how long ago the first failure happened + and the group will display a time period indicating how long ago the last failure happened + and the group will display a time period indicating how long ago the group was last retried, or N/A if never retried + */ + }); + describe("RULE: All messages in a Deleted Message Group should be able to be restored in a single action", () => { + test.todo("EXAMPLE: A restore button should be shown when there are deleted messages in a group"); + /* SCENARIO + Given there are 1 or more groups shown on the "Deleted Message Groups" tab + Then "Restore group" is shown as an available action on the group + */ + + /* SCENARIO + Given there are 1 or more groups shown on the "Deleted Message Groups" tab + When the user clicks the "Restore group" action + and clicks "Yes" on the action confirmation modal + Then all the messages in the selected group are returned to the Failed Messages list + and the list refreshes with progress/confirmation of the successful restoration + */ + }); + describe("RULE: Ability to select a given group should be hinted ", () => { + test.todo("EXAMPLE: A group should indicate that it is active and selectable when the cursor is hovered over"); + + /* SCENARIO + Mouse hovering a group + + Given there are 1 or more groups show in the "Deleted Message Groups" tab + and the user hovers over a Deleted Message Group row + Then the row indicates that it is active (hover state) + and that it is selectable (cursor/underlining) + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/deleting-failed-messages.spec.ts b/frontend/test/specs/failedmessages/deleting-failed-messages.spec.ts new file mode 100644 index 0000000000..2e60d82ce5 --- /dev/null +++ b/frontend/test/specs/failedmessages/deleting-failed-messages.spec.ts @@ -0,0 +1,7 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Deleting failed messages", () => { + describe("RULE: All failed messages should be able to be deleted", () => { + test.todo("EXAMPLE: A delete message button should be shown when viewing the message details"); + }); +}); diff --git a/frontend/test/specs/failedmessages/edit-and-retry.spec.ts b/frontend/test/specs/failedmessages/edit-and-retry.spec.ts new file mode 100644 index 0000000000..30c063b2ad --- /dev/null +++ b/frontend/test/specs/failedmessages/edit-and-retry.spec.ts @@ -0,0 +1,112 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { openEditAndRetryEditor } from "./actions/openEditAndRetryEditor"; +import { getEditAndRetryEditor } from "./questions/getEditAndRetryEditor"; +import { expect } from "vitest"; + +describe("FEATURE: Editing failed messages", () => { + function getBoundingClientRect(): DOMRect { + const rec = { + x: 0, + y: 0, + bottom: 0, + height: 0, + left: 0, + right: 0, + top: 0, + width: 0, + }; + return { ...rec, toJSON: () => rec }; + } + + class FakeDOMRectList extends Array implements DOMRectList { + item(index: number): DOMRect | null { + return this[index]; + } + } + + document.elementFromPoint = (): null => null; + HTMLElement.prototype.getBoundingClientRect = getBoundingClientRect; + HTMLElement.prototype.getClientRects = (): DOMRectList => new FakeDOMRectList(); + Range.prototype.getBoundingClientRect = getBoundingClientRect; + Range.prototype.getClientRects = (): DOMRectList => new FakeDOMRectList(); + + describe("RULE: Editing of a message should only be allowed when ServiceControl 'AllowMessageEditing' is enabled", () => { + test.todo( + "EXAMPLE: ServiceControl 'AllowMessageEditing' is disabled" + /* + Given a failed message is displayed in the Failed Messages list + and the ServiceControl 'AllowMessageEditing' is disabled + When the user sees the details of the message + Then button for editing the message is not shown + */ + ); + + test.todo( + "EXAMPLE: ServiceControl 'AllowMessageEditing' is enabled" + /* + Given a failed message is displayed in the Failed Messages list + and the ServiceControl 'AllowMessageEditing' is enabled + When the user sees the details of the message + Then button for editing the message is shown + */ + ); + }); + + describe("RULE: Only messages with with a content-type that is editable text should be allowed to be edited", () => { + [{ contentType: "application/atom+xml" }, { contentType: "application/ld+json" }, { contentType: "application/vnd.masstransit+json" }].forEach(({ contentType }) => { + test(`EXAMPLE: Editing a message with "${contentType}" content-type`, async ({ driver }) => { + // Given a failed message is displayed in the Failed Messages list + // And the message has a content-type of "${contentType}" + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.enableEditAndRetry); + + await driver.setUp( + precondition.hasFailedMessage({ + withGroupId: "81dca64e-76fc-e1c3-11a2-3069f51c58c8", + withMessageId: "40134401-bab9-41aa-9acb-b19c0066f22d", + withContentType: contentType, + withBody: { Index: 0, Data: "" }, + }) + ); + + //When the user opens the message editor + await driver.goTo("messages/81dca64e-76fc-e1c3-11a2-3069f51c58c8"); + await openEditAndRetryEditor(); + const messageEditor = await getEditAndRetryEditor(); + await messageEditor.switchToMessageBodyTab(); + + //Then The message body should be editable + expect(messageEditor.bodyFieldIsReadOnly()).toBeFalsy(); + }); + }); + + test(`EXAMPLE: Editing a message with a content-type not recognized as editable text`, async ({ driver }) => { + // Given a failed message is displayed in the Failed Messages list + // And the message has a content-type of application/octet-stream + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.enableEditAndRetry); + + await driver.setUp( + precondition.hasFailedMessage({ + withGroupId: "81dca64e-76fc-e1c3-11a2-3069f51c58c8", + withMessageId: "40134401-bab9-41aa-9acb-b19c0066f22d", + withContentType: "application/octet-stream", + withBody: { Index: 0, Data: "" }, + }) + ); + + //When the user opens the message editor + await driver.goTo("messages/81dca64e-76fc-e1c3-11a2-3069f51c58c8"); + await openEditAndRetryEditor(); + const messageEditor = await getEditAndRetryEditor(); + await messageEditor.switchToMessageBodyTab(); + + //Then The message body should NOT be editable + expect(messageEditor.bodyFieldIsReadOnly()).toBeTruthy(); + expect( + messageEditor.hasWarningMatchingText(/message body cannot be edited because content type "application\/octet-stream" is not supported\. only messages with content types "application\/json" and "text\/xml" can be edited\./i) + ).toBeTruthy(); + }); + }); +}); diff --git a/frontend/test/specs/failedmessages/grouping-failed-messages.spec.ts b/frontend/test/specs/failedmessages/grouping-failed-messages.spec.ts new file mode 100644 index 0000000000..43696db6de --- /dev/null +++ b/frontend/test/specs/failedmessages/grouping-failed-messages.spec.ts @@ -0,0 +1,134 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Failed Message Groups", () => { + describe("RULE: Failed Message Groups view should shows all current failed messages, grouped by the selected grouping and sorted by the selected sort", () => { + test.todo("EXAMPLE: A message should be shown when there are no failed messages"); + + /* SCENARIO + Given there are no Failed Messages + Then the "Failed Message Groups" tab will display a message indicating the fact + */ + }); + describe("RULE: Overview information of each group should be displayed without having to navigate to the Failed Message Group details", () => { + test.todo("EXAMPLE: The number of deleted messages in a group should be shown"); + test.todo("EXAMPLE: The time period from the first failed message should be shown"); + test.todo("EXAMPLE: The time period of the last failed message should be shown"); + test.todo("EXAMPLE: The time period of when the group was last retried should be shown"); + test.todo("EXAMPLE: A deleted message group that has not been retried should show N/A for the last retry time"); + + /* SCENARIO + A group with failures that occurred in different times that has also been retried + + Given the following groups of failed messages + |name | number of failures | first failed time | last failure time | Las retried time| + |MessageX | 50 | 13:00 | 13:51 | 14:05 | + And the current time is 15:00 + When the list of failed messages groups is loaded + Then a row with the following information is included in the list + TODO: insert table with expected data to be visualized + + Previous more generic scenario draft: + Given there are 1 or more groups shown on the "Failed Message Groups" tab + Then the group row will display the current grouping name in bold + and the group will display the number of messages in the group + and the group will display a time period indicating how long ago the first failure happened + and the group will display a time period indicating how long ago the last failure happened + and the group will display a time period indicating how long ago the group was last retried, or N/A if never retried + */ + }); + describe("RULE: Ability to select a given group should be hinted ", () => { + test.todo("EXAMPLE: Hovering the cursor over a group should indicate that it is active and selectable"); + + /* SCENARIO + Mouse hovering a group + + Given there are 1 or more groups show in the "Failed Message Groups" tab + and the user hovers over a Failed Message Group row + Then the row indicates that it is active (hover state) + and that it is selectable (cursor/underlining) + */ + }); + describe("RULE: Routing should place routes in browser history", () => { + test.todo("EXAMPLE: Navigating away from and then back to a detail view should return to the same detail view"); + + /* SCENARIO + Navigating back after selecting a group + + Given I start from the "Failed Message Groups" view + and I select a group to view + and the "Failed Messages" view is shown + When I navigate back in the browser + Then I should be returned to the "Failed Message Groups" view + (and subsequently navigating forwards should return me to the same "Failed Messages" view) + */ + + test.todo("EXAMPLE: Forward and backward navigation should navigate through the selected tabs in order"); + /* SCENARIO + Navigating between tabs of "Failed Messages" area + + Given I am in the "Failed Messages" area + and I click between tabs + Then the browser navigation forward/backward should navigate me through the selected tabs, in order + */ + }); + describe("RULE: Selected Grouping and Sort Order should remain selected when returning to Failed Message Groups tab", () => { + test.todo("EXAMPLE: The selected grouping and sorting should be restored when returning to the tab"); + + /* SCENARIO + Given I have selected a particular grouping and sorting on the "Failed Message Groups" tab + and I have navigated away from the tab, or I have refreshed the application, or I have closed the application and re-opened it + When I return to the "Failed Message Groups" tab + Then the grouping and sorting that I have previously selected are restored + */ + }); + describe("RULE: Something to do with last 10 completed retry requests", () => { + test.todo("Not implemented"); + }); + describe("RULE: Something to do with the badge on the tab header", () => { + test.todo("Not implemented"); + }); + describe("RULE: Actions on groups should be conditional on the state of the group", () => { + test.todo("EXAMPLE: Adding a note should be possible when there are no notes on a group"); + /* SCENARIO + Given there are 1 or more groups shown on the "Failed Message Groups" tab + and no note has been added to the group + Then "Add Note" is shown as an available action on the group + */ + + test.todo("EXAMPLE: Editing a note should be possible when there is a note on a group"); + /* SCENARIO + Given there are 1 or more groups shown on the "Failed Message Groups" tab + and a note has been added to the group + Then the note contents are shown on the group row + and "Edit Note" is shown as an available action on the group + and "Remove Note" is shown as an available action on the group + */ + + test.todo("EXAMPLE: Removing a note should be possible when there is a note on a group"); + /* SCENARIO + Given there is a group shown on the "Failed Message Groups" tab + and a note has been added to the group + When the user clicks the "Remove Note" action + and clicks "Yes" on the action confirmation modal + Then the note is removed from the group + */ + + test.todo("EXAMPLE: Requesting a retry should be possible when there are failed messages in a group"); + /* SCENARIO + Given there are 1 or more groups shown on the "Failed Message Groups" tab + When the user clicks the "Request Retry" action + and clicks "Yes" on the action confirmation modal + Then all the messages in the selected group are scheduled for retry + and the list refreshes with the retried group removed + */ + + test.todo("EXAMPLE: Deleting a group should be possible when there are failed messages in a group"); + /* SCENARIO + Given there are 1 or more groups shown on the "Failed Message Groups" tab + When the user clicks the "Delete Group" action + and clicks "Yes" on the action confirmation modal + Then all the messages in the selected group are deleted according to the ServiceControl retention policy + and the list refreshes with progress/confirmation of the successful deletion + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/listing-failed-message.spec.ts b/frontend/test/specs/failedmessages/listing-failed-message.spec.ts new file mode 100644 index 0000000000..09ea3f6c01 --- /dev/null +++ b/frontend/test/specs/failedmessages/listing-failed-message.spec.ts @@ -0,0 +1,116 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: All Failed Messages", () => { + describe("RULE: All failed messages view should show an unfiltered list", () => { + test.todo("EXAMPLE: All failed messages tab should be highlighted as active"); + test.todo("EXAMPLE: Browser tab title should show 'All Failed Messages'"); + test.todo("EXAMPLE: Failed messages should be ordered according to the selected sort by field"); + + /* SCENARIO + Given the entry route to the failed messages view is from the "All Failed Messages" tab + Then the view should show all current failed messages + and the "All Failed Messages" tab should be highlighted as active + and the browser tab title should show "All Failed Messages" + */ + + test.todo("EXAMPLE: Failed messages should be ordered according to the selected sort by field"); + /* SCENARIO + Given the failed messages are shown + Then they are ordered according to the selected Sort By field + */ + + test.todo("EXAMPLE: A failed message should display the current message name in bold"); + test.todo("EXAMPLE: A failed message should display a time period indicating how long ago the failure happened"); + test.todo("EXAMPLE: A failed message should display the name of the Endpoint that the message failed on"); + test.todo("EXAMPLE: A failed message should display the name of the Machine that the message failed on"); + test.todo("EXAMPLE: A failed message should display the exception message text"); + /* SCENARIO + Given there are 1 or more Failed Message rows shown + Then the row will display the current message name in bold + and the row will display a time period indicating how long ago the failure happened (retry failure if there is one) + and the row will display the name of the Endpoint that the message failed on + and the row will display the name of the Machine that the message failed on + and the row will display the exception message text + */ + + test.todo("EXAMPLE: A failed message should display the number of times it has failed retries"); + /* SCENARIO + Given there is a Failed Message row shown + and that row has previously been retried + Then the row will display the number of times it has failed retries (note: 1 less than total failures for the message) + and this retry failure information will be visually more prominent than the other information + */ + + test.todo("EXAMPLE: A message should be shown when there are no failed messages"); + /* SCENARIO + Given there are no Failed Messages + Then the "All Failed Message" tab will display a message indicating the fact + */ + }); + describe("RULE: Failed messages (group route) view should only show failed messages associated with that group", () => { + test.todo("EXAMPLE: Only messages of a selected group should be shown"); + test.todo("EXAMPLE: Group name should be shown as a heading"); + test.todo("EXAMPLE: Group message count should be shown as a subtext to the group heading"); + test.todo("EXAMPLE: Failed Message Groups tab should remain highlighted as active"); + /* SCENARIO + Given the entry route to the failed messages view is from selecting a group in the "Failed Message Groups" tab + Then the view should show only failed messages associated with the selected group + and the group name should be shown as a heading + and the group message count should be shown as a subtext to the group heading + and the "Failed Message Groups" tab should remain highlighted as active + */ + }); + describe("RULE: Row hover functionality", () => { + test.todo("EXAMPLE: Hovering the cursor over a failed message row should indicate that it is active, selectable, and show the 'Request Retry' action"); + + /* SCENARIO + Given there are 1 or more Failed Message rows shown + and the user hovers over a Failed Message row + Then the row indicates that it is active (hover state) + and that it is selectable (cursor/underlining) + and the "Request Retry" action is made available on the row + */ + + /* QUESTIONS + why is "Request Retry" not always shown, similar to "Request Retry" on the Failed Message Groups screen? + */ + }); + describe('RULE: The badge counter on the "All Failed Messages" tab header and the "Failed messages" main navigation items should reflect the total count of failed messages', () => { + test.todo("Not implemented"); + }); + describe("RULE: action functionality", () => { + test.todo("EXAMPLE: Clicking the 'Request Retry' action should initiate a retry for the selected message"); + + /* SCENARIO + Given there are 1 or more Failed Message rows are shown + and the user clicks the "Request Retry" action for a row + Then the row indicates that it is pending a retry + and the row is removed from the "Failed Messages" list once the retry has been initiated + */ + }); + describe("RULE: button functionality", () => { + test.todo("EXAMPLE: When no Failed Message rows are selected, the 'Select All' button should be enabled"); + test.todo("EXAMPLE: When no Failed Message rows are selected, the 'Retry Selected' button should be disabled"); + test.todo("EXAMPLE: When no Failed Message rows are selected, the 'Delete Selected' button should be disabled"); + test.todo("EXAMPLE: When no Failed Message rows are selected, the 'Export Selected' button should be disabled"); + + /* SCENARIO + Given no Failed Message rows are selected + Then the "Select All" button is enabled + and the "Retry Selected" button is disabled + and the "Delete Selected" button is disabled + and the "Export Selected" button is disabled + */ + + test.todo("EXAMPLE: When 1 or more Failed Message rows are selected, the 'Select All' button should be replaced by a 'Clear Selection' button"); + test.todo("EXAMPLE: When 1 or more Failed Message rows are selected, the 'Retry Selected' button should indicate the number of rows selected and be enabled"); + test.todo("EXAMPLE: When 1 or more Failed Message rows are selected, the 'Delete Selected' button should indicate the number of rows selected and be enabled"); + /* SCENARIO + Given 1 or more Failed Message rows are selected + Then the "Select All" button is replaced by a "Clear Selection" button + and the "Retry selected" button indicates the number of rows selected and is enabled + and the "Delete selected" button indicates the number of rows selected and is enabled + and the "Export selected" button indicates the number of rows selected and is enabled + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/questions/getEditAndRetryEditor.ts b/frontend/test/specs/failedmessages/questions/getEditAndRetryEditor.ts new file mode 100644 index 0000000000..fa68aaa395 --- /dev/null +++ b/frontend/test/specs/failedmessages/questions/getEditAndRetryEditor.ts @@ -0,0 +1,22 @@ +import { screen, within } from "@testing-library/vue"; +import UserEvent from "@testing-library/user-event"; +export async function getEditAndRetryEditor() { + const dialog = await screen.findByRole("dialog", { name: "edit and retry message" }); + + return { + async switchToMessageBodyTab() { + const tab = within(dialog).getByRole("tab", { name: /message body/i }); + await UserEvent.click(tab); + }, + + bodyFieldIsReadOnly() { + const textbox = within(within(dialog).getByLabelText("message body")).getByRole("textbox"); + return textbox.ariaReadOnly === "true"; + }, + + hasWarningMatchingText(legendText: RegExp) { + const information = within(dialog).getByRole("status", { name: /cannot edit message body/i }); + return within(information).getByText(legendText) !== null; + }, + }; +} diff --git a/frontend/test/specs/failedmessages/viewing-all-deleted-messages.spec.ts b/frontend/test/specs/failedmessages/viewing-all-deleted-messages.spec.ts new file mode 100644 index 0000000000..8021f4a758 --- /dev/null +++ b/frontend/test/specs/failedmessages/viewing-all-deleted-messages.spec.ts @@ -0,0 +1,108 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: All Deleted Messages", () => { + describe("RULE: All deleted messages view should show an unfiltered list", () => { + test.todo("EXAMPLE: All deleted messages tab should be highlighted as active"); + test.todo("EXAMPLE: Browser tab title should show 'All Deleted Messages'"); + + /* SCENARIO + Given the entry route to the deleted messages view is from the "All Deleted Messages" tab + Then the view should show all current deleted messages + and the "All Deleted Messages" tab should be highlighted as active + and the browser tab title should show "All Deleted Messages" + */ + + test.todo("EXAMPLE: Deleted messages should be ordered according to the selected sort by field"); + /* SCENARIO + Given the deleted messages are shown + Then they are ordered according to the selected Sort By field + */ + + test.todo("EXAMPLE: A deleted message should display the current message name in bold"); + test.todo("EXAMPLE: A deleted message should display a time period indicating how long ago the failure happened"); + test.todo("EXAMPLE: A deleted message should display the name of the Endpoint that the message failed on"); + test.todo("EXAMPLE: A deleted message should display the name of the Machine that the message failed on"); + test.todo("EXAMPLE: A deleted message should display a time period indicating how long ago it was deleted"); + test.todo("EXAMPLE: A deleted message should display, in a prominent style, a time period indicating when the message is scheduled for hard deletion"); + + /* SCENARIO + Given there are 1 or more Deleted Message rows shown + Then the row will display the current message name in bold + and the row will display a time period indicating how long ago the failure happened (retry failure if there is one) + and the row will display the name of the Endpoint that the message failed on + and the row will display the name of the Machine that the message failed on + and the row will display a time period indicating how long ago it was deleted + and the row will display, in a prominent style, a time period indicating when the message is scheduled for hard deletion + and the row will display the exception message text + */ + + test.todo("EXAMPLE: A deleted message should display the number of times it has failed retries"); + /* SCENARIO + Given there is a Deleted Message row shown + and that row has previously been retried + Then the row will display the number of times it has failed retries (note: 1 less than total failures for the message) + and this retry failure information will be visually more prominent than the other information + */ + + test.todo("EXAMPLE: A message should be shown when there are no deleted messages"); + /* SCENARIO + Given there are no Deleted Messages + Then the "All Deleted Message" tab will display a message indicating the fact + */ + }); + describe("RULE: Deleted messages (group route) view should only show deleted messages associated with that group", () => { + test.todo("EXAMPLE: Only messages of a selected group should be shown"); + test.todo("EXAMPLE: Group name should be shown as a heading"); + test.todo("EXAMPLE: Group message count should be shown as a subtext to the group heading"); + test.todo("EXAMPLE: Deleted Message Groups tab should remain highlighted as active"); + + /* SCENARIO + Given the entry route to the deleted messages view is from selecting a group in the "Deleted Message Groups" tab + Then the view should show only deleted messages associated with the selected group + and the group name should be shown as a heading + and the group message count should be shown as a subtext to the group heading + and the "Deleted Message Groups" tab should remain highlighted as active + */ + }); + describe("RULE: Row hover functionality", () => { + test.todo("EXAMPLE: Hovering the cursor over a deleted message should indicate that it is active and selectable"); + + /* SCENARIO + Given there are 1 or more Deleted Message rows shown + and the user hovers over a Deleted Message row + Then the row indicates that it is active (hover state) + and that it is selectable (cursor/underlining) + */ + }); + describe("RULE: button functionality", () => { + test.todo("EXAMPLE: Selecting a row should enable the 'Restore Selected' button"); + + /* SCENARIO + Given no Deleted Message rows are selected + Then the "Select All" button is enabled + and the "Restore Selected" button is disabled + */ + + test.todo("EXAMPLE: Selecting all rows should enable the 'Restore Selected' button"); + /* SCENARIO + Given 1 or more Deleted Message rows are selected + Then the "Select All" button is replaced by a "Clear Selection" button + and the "Restore selected" button indicates the number of rows selected and is enabled + */ + + test.todo("EXAMPLE: Clicking the 'Restore Selected' button should show an action confirmation modal"); + test.todo("EXAMPLE: Clicking 'Yes' on the action confirmation modal should restore the message"); + test.todo("EXAMPLE: The list should refresh with the restored message removed"); + /* SCENARIO + Given 1 or more Deleted Message rows are selected + When the user clicks the "Restore selected" button + and clicks "Yes" on the action confirmation modal + Then the message is restored + and the list refreshes with the restored message removed + */ + + /* QUESTIONS + note that there is a progress-update intermediate step between deleted and restored states which will briefly show on screen depending on the update polling rate + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/viewing-failed-message.spec.ts b/frontend/test/specs/failedmessages/viewing-failed-message.spec.ts new file mode 100644 index 0000000000..eeb5149a3b --- /dev/null +++ b/frontend/test/specs/failedmessages/viewing-failed-message.spec.ts @@ -0,0 +1,70 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Message View", () => { + describe("RULE: Error scenarios should be handled gracefully", () => { + test.todo("EXAMPLE: When no data is returned for a message, text should be shown indicating that the message could not be found"); + + /* SCENARIO + Given no data is returned from ServiceControl for a message id + When the message view is shown + Then a text will be shown indicating that the message could not be found + */ + + test.todo("EXAMPLE: When an error is returned for a message, text should be shown indicating that an error occurred"); + /* SCENARIO + Given an error is returned from ServiceControl for a message id + When the message view is shown + Then a text will be shown indicating that an error occured and to investigate ServiceControl logs for the reason + */ + }); + describe("RULE: Header should show meta information and action buttons for a message that has not been deleted", () => { + test.todo("EXAMPLE: Message name should be displayed as a heading"); + test.todo("EXAMPLE: Time period indicating how long ago the failure happened should be displayed"); + test.todo("EXAMPLE: Name of the Endpoint that the message failed on should be displayed"); + test.todo("EXAMPLE: Name of the Machine that the message failed on should be displayed"); + test.todo("EXAMPLE: Delete message button should be displayed"); + test.todo("EXAMPLE: Retry message button should be displayed"); + test.todo("EXAMPLE: View in ServiceInsight button should be displayed"); + test.todo("EXAMPLE: Export message button should be displayed"); + + /* SCENARIO + Given the message is not deleted + When the message view is shown + Then the view header will display the message name as a heading + and the header will display a time period indicating how long ago the failure happened (retry failure if there is one) + and the header will display the name of the Endpoint that the message failed on + and the header will display the name of the Machine that the message failed on + and the header will display a "Delete message" button + and the header will display buttons for "Retry message", "View in ServiceInsight" and "Export Message" + */ + }); + describe("RULE: Header should show meta information and action buttons for a message that has been deleted", () => { + test.todo("EXAMPLE: Message name should be displayed as a heading"); + test.todo("EXAMPLE: Header should display prominently that the message is deleted"); + test.todo("EXAMPLE: Time period indicating how long ago the failure happened should be displayed"); + test.todo("EXAMPLE: Name of the Endpoint that the message failed on should be displayed"); + test.todo("EXAMPLE: Name of the Machine that the message failed on should be displayed"); + test.todo("EXAMPLE: Time period indicating how long ago the message was deleted should be displayed"); + test.todo("EXAMPLE: Time period indicating when the messages is schedule for hard deletion should be displayed prominently"); + test.todo("EXAMPLE: Restore button should be displayed"); + test.todo("EXAMPLE: View in ServiceInsight button should be displayed"); + + /* SCENARIO + Given the message is deleted + When the message view is shown + Then the view header will display the message name as a heading + and the header will display prominently that the message is deleted + and the header will display a time period indicating how long ago the failure happened (retry failure if there is one) + and the header will display the name of the Endpoint that the message failed on + and the header will display the name of the Machine that the message failed on + and the header will display a time period indicating how long ago the messsage was deleted + and the header will display, in a prominent style, a time period indicating when the messages is schedule for hard deletion + and the header will display a "Restore" button + and the header will display buttons for "View in ServiceInsight" and "Export Message" + */ + + /* QUESTIONS + this view also displays the "Retry message" button, but it's always disabled. Should the button be hidden instead? + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/viewing-failed-messages.spec.ts b/frontend/test/specs/failedmessages/viewing-failed-messages.spec.ts new file mode 100644 index 0000000000..d9ccdd81c2 --- /dev/null +++ b/frontend/test/specs/failedmessages/viewing-failed-messages.spec.ts @@ -0,0 +1,19 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Viewing the details of a message group", () => { + describe("RULE: Viewing the details of a Failed message group should be possible", () => { + test.todo("EXAMPLE: Selecting a group from the failed messages view should show all messages associated with that group"); + test.todo("EXAMPLE: The group heading should be the group name of the group that was selected"); + test.todo("EXAMPLE: The browser tab title should show 'Failed Messages', not 'All Failed Messages'"); + + /* SCENARIO + Selecting a group from the failed messages view + + Given there are 1 or more groups are shown in the "Failed Message Groups" tab + When a group is selected + Then all messages associated with that group should be shown in the Failed Messages view + and the group heading should be the group name of the group that was selected + and the browser tab title should show "Failed Messages", not "All Failed Messages" + */ + }); +}); diff --git a/frontend/test/specs/failedmessages/viewing-pending-retries.spec.ts b/frontend/test/specs/failedmessages/viewing-pending-retries.spec.ts new file mode 100644 index 0000000000..1ac9e11f28 --- /dev/null +++ b/frontend/test/specs/failedmessages/viewing-pending-retries.spec.ts @@ -0,0 +1,29 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Pending Retries", () => { + describe("RULE: Pending Retries tab being shown is conditional on a config value", () => { + test.todo("EXAMPLE: When the config value 'showPendingRetry' is set to false, the Pending Retries tab should not shown"); + + /* SCENARIO + When the config value "showPendingRetry" is set to false + Then the Pending Retries tab is not shown + */ + + /* QUESTIONS + should the /failed-messages/pending-retries route also be disabled? + */ + + test.todo("EXAMPLE: When the config value 'showPendingRetry' is set to true, the Pending Retries tab should be shown"); + + /* SCENARIO + When the config value "showPendingRetry" is set to true + Then the Pending Retries tab is shown + */ + + test.todo("EXAMPLE: When the config value 'showPendingRetry' is not set, the Pending Retries tab should not shown"); + /* SCENARIO + When the config value "showPendingRetry" is not set + Then the Pending Retries tab is not shown + */ + }); +}); diff --git a/frontend/test/specs/heartbeats/actions/navigateToHeartbeatsTabs.ts b/frontend/test/specs/heartbeats/actions/navigateToHeartbeatsTabs.ts new file mode 100644 index 0000000000..e996f603d4 --- /dev/null +++ b/frontend/test/specs/heartbeats/actions/navigateToHeartbeatsTabs.ts @@ -0,0 +1,26 @@ +import { screen } from "@testing-library/vue"; + +export async function navigateToHeartbeatsConfiguration() { + const configurationTab = await screen.findByRole("tab", { name: "Configuration" }); + configurationTab.click(); + + // Wait for the tab to switch + //TODO: determine why timeout had to be increased when these tests are run as part of the full application suite + await screen.findByRole("region", { name: "Endpoint Configuration" }, { timeout: 5000 }); +} + +export async function navigateToHealthyHeartbeats() { + const healthyHeartbeatsTab = await screen.findByRole("tab", { name: /Healthy Endpoints \(\d+\)/i }); + healthyHeartbeatsTab.click(); + + // Wait for the tab to switch + await screen.findByRole("region", { name: "Healthy Endpoints" }); +} + +export async function navigateToUnHealthyHeartbeats() { + const unhealthyHeartbeatsTab = await screen.findByRole("tab", { name: /Unhealthy Endpoints \(\d+\)/i }); + unhealthyHeartbeatsTab.click(); + + // Wait for the tab to switch + await screen.findByRole("region", { name: "Unhealthy Endpoints" }); +} diff --git a/frontend/test/specs/heartbeats/actions/setHeartbeatFilter.ts b/frontend/test/specs/heartbeats/actions/setHeartbeatFilter.ts new file mode 100644 index 0000000000..403fceff3d --- /dev/null +++ b/frontend/test/specs/heartbeats/actions/setHeartbeatFilter.ts @@ -0,0 +1,12 @@ +import { screen } from "@testing-library/vue"; +import UserEvent from "@testing-library/user-event"; + +export async function setHeartbeatFilter(filterText: string) { + const filterBox = await screen.findByRole("searchbox", { name: "Filter by name" }); + + if (filterText.length > 0) { + await UserEvent.type(filterBox, filterText); + } else { + await UserEvent.clear(filterBox); + } +} diff --git a/frontend/test/specs/heartbeats/actions/toggleHeartbeatMonitoring.ts b/frontend/test/specs/heartbeats/actions/toggleHeartbeatMonitoring.ts new file mode 100644 index 0000000000..1f4a5f3b9e --- /dev/null +++ b/frontend/test/specs/heartbeats/actions/toggleHeartbeatMonitoring.ts @@ -0,0 +1,7 @@ +import { screen, within } from "@testing-library/vue"; + +export async function toggleHeartbeatMonitoring(instanceName: string) { + const endpointRow = await screen.findByRole("row", { name: instanceName }); + + (within(endpointRow).getByRole("checkbox", { hidden: true })).click(); +} diff --git a/frontend/test/specs/heartbeats/active-endpoints.spec.ts b/frontend/test/specs/heartbeats/active-endpoints.spec.ts new file mode 100644 index 0000000000..2d58da3abc --- /dev/null +++ b/frontend/test/specs/heartbeats/active-endpoints.spec.ts @@ -0,0 +1,104 @@ +import { test, describe } from "../../drivers/vitest/driver"; + +describe("FEATURE: Active Endpoints", () => { + describe("RULE: The number of active endpoints should be shown", () => { + test.todo("EXAMPLE: With 7 active endpoints, the tab should show (7)"); + + /* SCENARIO + Given 7 endpoint instances sending heartbeats + When the hearbeats screen is open + Then the Active Endpoints tab includes a (7) suffix + */ + + test.todo("EXAMPLE: With 7 active endpoints and 1 endpoint stop sending heartbeat, the tab should show (6)"); + /* SCENARIO + Given 7 endpoint instances sending heartbeats + When one of the endpoints stop sending heartbeats + Then the Active Endpoints tab suffix changes to (6) + */ + + test.todo("EXAMPLE: With 6 active endpoints and 1 endpoint starts sending heartbeat, the tab should show (7)"); + /* SCENARIO + Given 6 endpoint instances sending heartbeats + And 1 endpoint instance not sending heartbeats + When the stopped endpoint starts sending heartbeats + Then the Active Endpoints tab suffix changes to (7) + */ + }); + describe("RULE: A list of active endpoints should be shown", () => { + test.todo("EXAMPLE: With 3 active endpoints sending heartbeats, 3 endpoints should be shown in the list of active endpoints"); + + /* SCENARIO + Display list of active endpoints + + Given 3 endpoint instances sending heartbeats + When the Active Endpoints tab is open + Then the 3 endpoints are displayed + */ + }); + describe("RULE: Active endpoint list row should show endpoint instances with name, host identifier, and latest heartbeat received", () => { + test.todo("EXAMPLE: With 3 active endpoint instances named 'Endpoint1' at host 'HOST1' sending a heartbeat, there should be 3 rows displaying 'Endpoint1@HOST1', and the latest heartbeat received"); + + /* SCENARIO + Display Endpoint Instances + + Given 3 endpoint instances sending heartbeats + When the Active Endpoints tab is open + Then the 3 endpoint instances are displayed + */ + + /* NOTES + Endpoint name + Host identifier + Latest heartbeat received + + */ + }); + describe("RULE: Active endpoint list row should show logical endpoint with name, number of instances, host identifier, and latest heartbeat received", () => { + test.todo("EXAMPLE: With multiple instances of an endpoints sending heartbeats, only the single logical endpoint details should be displayed in the list"); + }); + /* SCENARIO + Display Logical Endpoints + + Given 3 endpoint instances sending heartbeats + Endpoint1@HOST1 + Endpoint1@HOST2 + Endpoint2@HOST1 + When the Active Endpoints tab is open + Then 2 logical endpoints are shown + Endpoint1 + Endpoint2 + */ + + /* NOTES + Endpoint name + Instance count + Latest heartbeat received + */ + describe("RULE: Changing between logical and instance listing displays should be possible", () => { + test.todo("Not implemented"); + }); + describe("RULE: Sorting by of the name of an endpoint should be possible in all displays", () => { + test.todo("Not implemented"); + }); + describe("RULE: Filtering endpoints by name should be possible", () => { + test.todo("Not implemented"); + }); +}); +describe("FEATURE: Inactive endpoints", () => { + describe("RULE: The count of inactive endpoints should be displayed", () => { + test.todo("Not implemented"); + }); + describe("RULE: Listing inactive endpoints should be possible", () => { + test.todo("Not implemented"); + }); + describe("RULE: Changing between logical and instance listing displays should be possible", () => { + test.todo("Not implemented"); + }); + describe("RULE: Sorting by of the name of an endpoint should be possible in all displays", () => { + test.todo("Not implemented"); + }); + describe("RULE: Filtering endpoints by name should be possible", () => { + test.todo("Not implemented"); + }); +}); diff --git a/frontend/test/specs/heartbeats/configuring-heartbeats.spec.ts b/frontend/test/specs/heartbeats/configuring-heartbeats.spec.ts new file mode 100644 index 0000000000..1a4a10e767 --- /dev/null +++ b/frontend/test/specs/heartbeats/configuring-heartbeats.spec.ts @@ -0,0 +1,270 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { expect, vi } from "vitest"; +import { getNothingToConfigureStatus } from "./questions/getNothingToConfigureStatus"; +import { navigateToHeartbeatsConfiguration, navigateToUnHealthyHeartbeats } from "./actions/navigateToHeartbeatsTabs"; +import { getEndpointsForConfiguration } from "./questions/getEndpointsForConfiguration"; +import { getEndpointInstance } from "./questions/getEndpointInstance"; +import { toggleHeartbeatMonitoring } from "./actions/toggleHeartbeatMonitoring"; +import { getAllHeartbeatEndpointRecords, getHeartbeatEndpointRecord } from "./questions/getHeartbeatEndpointRecord"; +import { healthyEndpointTemplate } from "../../mocks/heartbeat-endpoint-template"; +import { setHeartbeatFilter } from "./actions/setHeartbeatFilter"; +import { getHeartbeatFilterValue } from "./questions/getHeartbeatFilterValue"; +import { flushPromises } from "@vue/test-utils"; + +vi.mock("@vueuse/core", async (importOriginal) => { + const originalModule = await importOriginal(); + return { + ...originalModule, + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + useDebounceFn: (fn: Function) => fn, + }; +}); + +describe("FEATURE: Heartbeats configuration", () => { + describe("RULE: A list of all endpoints with the heartbeats plug-in installed should be displayed", () => { + test("EXAMPLE: With no endpoints, the text 'Nothing to configure' should be displayed", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.goTo("heartbeats/unhealthy"); + + await navigateToHeartbeatsConfiguration(); + + const nothingToConfigureElement = await getNothingToConfigureStatus(); + + expect(nothingToConfigureElement).toBeTruthy(); + expect(nothingToConfigureElement.textContent).toBe("Nothing to configure"); + }); + + test("EXAMPLE: 3 endpoints should be displayed in the list", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasHealthyEndpoints(3)); + await driver.goTo("heartbeats/unhealthy"); + + await navigateToHeartbeatsConfiguration(); + + const endpointRows = await getEndpointsForConfiguration(); + + expect(endpointRows.size).toBe(3); + }); + }); + + describe("RULE: Toggling on/off heartbeat monitoring for endpoints should be possible", () => { + test("EXAMPLE: Heartbeat monitoring toggle should be off by default", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.HasHealthyAndUnHealthyEndpoints(1, 1)); + await driver.goTo("heartbeats/instances/TestEndpoint_2"); + + const endpointInstance = await getEndpointInstance("TestEndpoint_2"); + + expect(endpointInstance.muted).toBe(false); + }); + + /* SCENARIO + Given a monitored endpoint instance + When the monitoring toggle is clicked + Then the endpoint instance is no longer monitored + And should appear in the unhealthy endpoints list + And should indicate the number of untracked instances. + */ + test("EXAMPLE: Clicking the monitoring toggle for an active, healthy endpoint deactivates heartbeat monitoring for that instance", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.HasHealthyAndUnHealthyEndpoints(1, 1)); + await driver.goTo("heartbeats/instances/TestEndpoint_1"); + + await toggleHeartbeatMonitoring("TestEndpoint_1"); + + await driver.goTo("heartbeats/unhealthy"); + // Force all the initial pending remote calls on the page to resolve. + await flushPromises(); + + const unhealthyEndpoint = await getHeartbeatEndpointRecord("TestEndpoint_1"); + + expect(unhealthyEndpoint).toBeTruthy(); + expect(unhealthyEndpoint?.instancesMuted).toBe(1); + }); + + /* SCENARIO + Given an unmonitored endpoint instance + And the instance is sending heartbeats + When the monitoring toggle is clicked + Then the endpoint instance is monitored + And should appear in the Healthy Endpoints list + */ + test("EXAMPLE: Clicking the monitoring toggle for a unmonitored, healthy endpoint will activate heartbeat monitoring of the endpoint", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAHealthyButUnMonitoredEndpoint()); + await driver.goTo("heartbeats/instances/Healthy_UnmonitoredEndpoint"); + + await toggleHeartbeatMonitoring("Healthy_UnmonitoredEndpoint"); + + await driver.goTo("heartbeats/healthy"); + // Force all the initial pending remote calls on the page to resolve. + await flushPromises(); + + const healthyEndpoint = await getHeartbeatEndpointRecord("Healthy_UnmonitoredEndpoint"); + + expect(healthyEndpoint).toBeTruthy(); + expect(healthyEndpoint?.instancesMuted).toBe(0); + }); + + /* SCENARIO + Given an unmonitored endpoint instance + And the instance is not sending heartbeats + When the monitoring toggle is clicked + Then the endpoint instance is monitored + And should appear in the Unhealthy Endpoints list + */ + test("EXAMPLE: Clicking the monitoring toggle for an unmonitored, unhealthy endpoint will activate heartbeat monitoring of the endpoint", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAnUnhealthyUnMonitoredEndpoint()); + await driver.goTo("heartbeats/instances/Unhealthy_UnmonitoredEndpoint"); + + await toggleHeartbeatMonitoring("Unhealthy_UnmonitoredEndpoint"); + + await driver.goTo("heartbeats/unhealthy"); + // Force all the initial pending remote calls on the page to resolve. + await flushPromises(); + + const healthyEndpoint = await getHeartbeatEndpointRecord("Unhealthy_UnmonitoredEndpoint"); + + expect(healthyEndpoint).toBeTruthy(); + expect(healthyEndpoint?.instancesMuted).toBe(0); + }); + }); + + describe("RULE: Sorting by of the name of an endpoint should be possible in all displays", () => { + test.todo("EXAMPLE: List of endpoints should be sorted by name in ascending order"); + + /* SCENARIO + Given 3 endpoint instance + Name | + Foo1 + Foo2 + Foo3 + When the sort by is set to Name + Then the instances should be listed in order + */ + + /* NOTES + Name (asc/desc) + Latest heartbeat (asc/dec) + */ + + test.todo("EXAMPLE: List of endpoints should be sorted by name in descending order"); + /* SCENARIO + Given 3 endpoint instance + Name | + Foo1 + Foo2 + Foo3 + When the sort by is set to Name (descending) + Then the instances should be listed in reverse order + */ + + test.todo("EXAMPLE: List of endpoints should be sorted by latest heartbeat in ascending order"); + test.todo("EXAMPLE: List of endpoints should be sorted by latest heartbeat in descending order"); + /* SCENARIO + Same again for Latest heartbeat + */ + + test.todo("EXAMPLE: Sort by should be persisted on page refresh and across tabs"); + /* SCENARIO + Given the Sort By field has been changed + When the page is refreshed + Then the Sort By field retains its value + And the Sort By field has the same value on all other Endpoint Heartbeats tabs + */ + }); + + describe("RULE: Filtering endpoints by name should be possible", () => { + /* SCENARIO + Given 3 endpoint instances + Name | + Foo1 + Bar + Foo2 + When the text "foo" is entered into the filter box + Then Foo1 should be shown + And Foo2 should be shown + And Bar should not be shown + */ + test("EXAMPLE: When the filter string matches a subset of endpoint names, only those endpoints should be displayed", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.hasHeartbeatsEndpoints([ + { ...healthyEndpointTemplate, id: "Foo1", name: "Foo1", host_display_name: "Foo1.Hostname" }, + { ...healthyEndpointTemplate, id: "Bar", name: "Bar", host_display_name: "Bar.Hostname" }, + { ...healthyEndpointTemplate, id: "Foo2", name: "Foo2", host_display_name: "Foo2.Hostname" }, + ]) + ); + await driver.goTo("heartbeats/healthy"); + + await setHeartbeatFilter("Foo"); + + const visibleEndpoints = await getAllHeartbeatEndpointRecords(); + const unexpectedEndpoints = visibleEndpoints.filter((e) => e.name !== "Foo1" && e.name !== "Foo2"); + + expect(unexpectedEndpoints.length).toBe(0); + expect(visibleEndpoints.length).toBe(2); + }); + + /* SCENARIO + Given 3 endpoint instances + Name | + Foo1 + Foo2 + Foo3 + When the text "bar" is entered into the filter box + Then Foo1 should not be shown + And Foo2 should not be shown + And Foo3 should not be shown + */ + test("EXAMPLE: Filter string matches no endpoint names should display no endpoints", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.hasHeartbeatsEndpoints([ + { ...healthyEndpointTemplate, id: "Foo1", name: "Foo1", host_display_name: "Foo1.Hostname" }, + { ...healthyEndpointTemplate, id: "Foo2", name: "Foo2", host_display_name: "Foo2.Hostname" }, + { ...healthyEndpointTemplate, id: "Foo3", name: "Foo3", host_display_name: "Foo3.Hostname" }, + ]) + ); + await driver.goTo("heartbeats/healthy"); + + await setHeartbeatFilter("bar"); + + const visibleEndpoints = await getAllHeartbeatEndpointRecords(); + const unexpectedEndpoints = visibleEndpoints.filter((e) => e.name !== "Foo1" && e.name !== "Foo2" && e.name !== "Foo3"); + + expect(unexpectedEndpoints.length).toBe(0); + expect(visibleEndpoints.length).toBe(0); + }); + + /* SCENARIO + Given the filter string is "" + When the text "Foo" is entered into the filter control + Then the list is filtered (see above) + And the filter control on the Healthy Endpoints tab contains "Foo" + And the filter control on the Unhealthy endpoints tab contains "Foo" + */ + test("EXAMPLE: The filter string is persisted on page refresh and across tabs", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + + await driver.goTo("heartbeats/healthy"); + + await setHeartbeatFilter("bar"); + + await navigateToUnHealthyHeartbeats(); + + expect(await getHeartbeatFilterValue()).toBe("bar"); + }); + }); + + describe("RULE: A performance monitoring warning should be displayed", () => { + test.todo("EXAMPLE: A warning should be displayed when the configuration screen is loaded"); + + /* SCENARIO + When the configuration screen is loaded + Then a warning should be displayed about this being disconnected to performance monitoring + */ + }); +}); diff --git a/frontend/test/specs/heartbeats/dashboard-item.spec.ts b/frontend/test/specs/heartbeats/dashboard-item.spec.ts new file mode 100644 index 0000000000..740e88b9a3 --- /dev/null +++ b/frontend/test/specs/heartbeats/dashboard-item.spec.ts @@ -0,0 +1,53 @@ +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { expect } from "vitest"; +import { queryHeartbeatDashboardItem } from "./questions/queryHeartbeatDashboardItem"; +import { waitFor } from "@testing-library/vue"; + +describe("FEATURE: Dashboard item", () => { + describe("RULE: The count of unhealthy endpoints should be displayed", () => { + test("EXAMPLE: No unhealthy endpoints.", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAHealthyEndpoint()); + + await driver.goTo("dashboard"); + + await waitFor(async () => { + const heartbeatDashboardItem = await queryHeartbeatDashboardItem(); + + // Reverse logic here to make sure the heartbeatDashboardItem is defined but the flag is falsey. + expect(heartbeatDashboardItem && !heartbeatDashboardItem.isCounterVisible).toBeTruthy(); + }); + }); + + test("EXAMPLE: One unhealthy endpoint.", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAnUnhealthyEndpoint()); + + await driver.goTo("dashboard"); + + await waitFor(async () => { + const heartbeatDashboardItem = await queryHeartbeatDashboardItem(); + // check the endpoint data has been updated immediately + expect(heartbeatDashboardItem && heartbeatDashboardItem.isCounterVisible).toBeTruthy(); + expect(heartbeatDashboardItem && heartbeatDashboardItem.counterValue).toBe(1); + }); + }); + + test("EXAMPLE: Three unhealthy endpoints.", async ({ driver }) => { + const numberOfUnhealthyEndpoints = 3; + + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasUnhealthyEndpoints(numberOfUnhealthyEndpoints)); + + await driver.goTo("dashboard"); + + await waitFor(async () => { + const heartbeatDashboardItem = await queryHeartbeatDashboardItem(); + + expect(heartbeatDashboardItem && heartbeatDashboardItem.isCounterVisible).toBeTruthy(); + expect(heartbeatDashboardItem && heartbeatDashboardItem.counterValue).toBe(numberOfUnhealthyEndpoints); + }); + }); + }); +}); diff --git a/frontend/test/specs/heartbeats/menu-item.spec.ts b/frontend/test/specs/heartbeats/menu-item.spec.ts new file mode 100644 index 0000000000..dd3e8a02a0 --- /dev/null +++ b/frontend/test/specs/heartbeats/menu-item.spec.ts @@ -0,0 +1,76 @@ +import { expect, vi } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { queryHeartbeatMenuItem } from "./questions/queryHeartbeatMenuItem"; +import { waitFor } from "@testing-library/vue"; + +describe("FEATURE: Menu item", () => { + describe("RULE: The count of inactive endpoints should be displayed in the navigation menu", () => { + test("EXAMPLE: One unhealthy endpoint", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAnUnhealthyEndpoint()); + + await driver.goTo("dashboard"); + + await waitFor(async () => { + const heartbeatMenuItem = await queryHeartbeatMenuItem(); + + expect(heartbeatMenuItem && heartbeatMenuItem.isCounterVisible).toBeTruthy(); + expect(heartbeatMenuItem && heartbeatMenuItem.counterValue).toBe(1); + }); + }); + + /* SCENARIO + Given a monitored endpoint instance sending heartbeats + When the endpoint instance stops sending heartbeats + Then the menu item in the page header updates to include a badge indicating it has stopped + */ + test("EXAMPLE: An instance starts sending heartbeats, the menu item should remove the badge", async ({ driver }) => { + vi.useFakeTimers(); + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAnUnhealthyEndpointWithNamePrefix("ResurrectingEndpoint")); + + await driver.goTo("dashboard"); + + vi.advanceTimersByTime(5000); + + await waitFor(async () => { + const heartbeatMenuItem = await queryHeartbeatMenuItem(); + + expect(heartbeatMenuItem && heartbeatMenuItem.isCounterVisible).toBeTruthy(); + expect(heartbeatMenuItem && heartbeatMenuItem.counterValue).toBe(1); + }); + + await driver.setUp(precondition.hasAHealthyEndpointWithNamePrefix("ResurrectingEndpoint")); + vi.advanceTimersByTime(5000); + + await waitFor(async () => { + const heartbeatMenuItem = await queryHeartbeatMenuItem(); + + expect(heartbeatMenuItem && !heartbeatMenuItem.isCounterVisible).toBeTruthy(); + expect(heartbeatMenuItem && heartbeatMenuItem.counterValue).toBe(0); + }); + + vi.restoreAllMocks(); + }); + + /* SCENARIO + Given a set of monitored endpoint instances + When all instances are sending heartbeats + Then the menu item in the page header does not include a badge + */ + test("EXAMPLE: An unmonitored instance stops sending heartbeats, the menu item should not show a badge with a count", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasAnUnhealthyUnMonitoredEndpoint()); + + await driver.goTo("dashboard"); + + await waitFor(async () => { + const heartbeatMenuItem = await queryHeartbeatMenuItem(); + + expect(heartbeatMenuItem && !heartbeatMenuItem.isCounterVisible).toBeTruthy(); + expect(heartbeatMenuItem && heartbeatMenuItem.counterValue).toBe(0); + }); + }); + }); +}); diff --git a/frontend/test/specs/heartbeats/questions/getDashboardItems.ts b/frontend/test/specs/heartbeats/questions/getDashboardItems.ts new file mode 100644 index 0000000000..3c326e4343 --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getDashboardItems.ts @@ -0,0 +1,29 @@ +import { screen, within } from "@testing-library/vue"; + +export interface DashboardItemData { + name: string; + isCounterVisible: boolean; + counterValue: number; + dashboardItem: HTMLElement; +} + +export async function getDashboardItems() { + const dashboardItems = await screen.findAllByRole("link", { name: "Dashboard Item" }); + + return new Map( + dashboardItems.map((di) => { + const name = String(within(di).getByRole("heading").textContent); + const counterElement = within(di).queryByLabelText("Alert Count"); + + return [ + name, + { + name: name, + isCounterVisible: counterElement !== null, + counterValue: counterElement ? Number(counterElement.textContent) : 0, + dashboardItem: di, + }, + ]; + }) + ); +} diff --git a/frontend/test/specs/heartbeats/questions/getEndpointInstance.ts b/frontend/test/specs/heartbeats/questions/getEndpointInstance.ts new file mode 100644 index 0000000000..30711c38bd --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getEndpointInstance.ts @@ -0,0 +1,16 @@ +import { screen, within } from "@testing-library/vue"; + +// Assumes the current page is /heartbeats/instances/{instance name} +export async function getEndpointInstance(instanceName: string) { + const endpointRow = await screen.findByRole("row", { name: instanceName }); + const hostName = within(endpointRow).getByLabelText("instance-name").textContent; + const lastHeartbeat = within(endpointRow).getByTitle("Last Heartbeat").textContent; + const muted = (within(endpointRow).getByRole("checkbox", { hidden: true })).checked; + + return { + hostName, + lastHeartbeat, + muted, + endpointRow, + }; +} diff --git a/frontend/test/specs/heartbeats/questions/getEndpointsForConfiguration.ts b/frontend/test/specs/heartbeats/questions/getEndpointsForConfiguration.ts new file mode 100644 index 0000000000..b963dce8de --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getEndpointsForConfiguration.ts @@ -0,0 +1,37 @@ +import { screen, within } from "@testing-library/vue"; + +export interface EndpointConfigurationItem { + endpointName: string; + instances: string; + lastHeartbeat: string; + trackingEnabled: boolean; + endpointRow: HTMLElement; +} + +export async function getEndpointsForConfiguration() { + const endpointList = await screen.findByRole("rowgroup", { name: "endpoints" }); + const endpointRows = await within(endpointList).findAllByRole("row"); + + const map = new Map( + endpointRows.map((row) => { + const endpointName = String(within(row).getByRole("link", { name: "details-link" }).textContent); + const instances = String(within(row).getByLabelText("instance-count").textContent); + const lastHeartbeat = String(within(row).getByTitle("Last Heartbeat").textContent); + const trackingCheckbox = within(row).getByRole("checkbox", { hidden: true }); + const trackingEnabled = trackingCheckbox.ariaLabel === `onoffswitch${endpointName}` && trackingCheckbox.checked; + + return [ + endpointName, + { + endpointName: endpointName, + instances: instances, + lastHeartbeat: lastHeartbeat, + trackingEnabled: trackingEnabled, + endpointRow: row, + }, + ]; + }) + ); + + return map; +} diff --git a/frontend/test/specs/heartbeats/questions/getHeartbeatEndpointRecord.ts b/frontend/test/specs/heartbeats/questions/getHeartbeatEndpointRecord.ts new file mode 100644 index 0000000000..29de4437e6 --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getHeartbeatEndpointRecord.ts @@ -0,0 +1,36 @@ +import { screen, within, waitFor } from "@testing-library/vue"; + +export type EndpointRecord = { + name: string; + instanceCount: string; + lastHeartbeat: string; + trackInstances: boolean; + instancesMuted: number; +}; + +export async function getHeartbeatEndpointRecord(endpointName: string) { + const endpointRow = await waitFor(() => screen.queryByRole("row", { name: endpointName })); + + if (!endpointRow) { + return null; + } + return createRecordFromRowElement(endpointRow); +} + +export async function getAllHeartbeatEndpointRecords() { + const endpointRowgroup = await screen.findByRole("rowgroup", { name: "endpoints" }); + const endpointRows = within(endpointRowgroup).queryAllByRole("row"); + return endpointRows ? endpointRows.map((row) => createRecordFromRowElement(row)) : []; +} + +function createRecordFromRowElement(endpointRow: HTMLElement) { + const mutedInstanceCountElement = within(endpointRow).queryByLabelText("Muted instance count"); + + return { + name: within(endpointRow).getByRole("link", { name: "details-link" }).textContent, + instanceCount: within(endpointRow).getByLabelText("instance-count").textContent, + lastHeartbeat: within(endpointRow).getByTitle("Last Heartbeat").textContent, + trackInstances: within(endpointRow).queryByTitle("Instances are being tracked") != null, + instancesMuted: mutedInstanceCountElement === null ? 0 : Number(mutedInstanceCountElement.textContent), + }; +} diff --git a/frontend/test/specs/heartbeats/questions/getHeartbeatFilterValue.ts b/frontend/test/specs/heartbeats/questions/getHeartbeatFilterValue.ts new file mode 100644 index 0000000000..e341bf87c9 --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getHeartbeatFilterValue.ts @@ -0,0 +1,7 @@ +import { screen } from "@testing-library/vue"; + +export async function getHeartbeatFilterValue() { + const filterBox = await screen.findByRole("searchbox", { name: "Filter by name" }); + + return filterBox.value; +} diff --git a/frontend/test/specs/heartbeats/questions/getNothingToConfigureStatus.ts b/frontend/test/specs/heartbeats/questions/getNothingToConfigureStatus.ts new file mode 100644 index 0000000000..d1b80bdbdb --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/getNothingToConfigureStatus.ts @@ -0,0 +1,5 @@ +import { screen } from "@testing-library/vue"; + +export async function getNothingToConfigureStatus() { + return await screen.findByRole("status"); +} diff --git a/frontend/test/specs/heartbeats/questions/queryHeartbeatDashboardItem.ts b/frontend/test/specs/heartbeats/questions/queryHeartbeatDashboardItem.ts new file mode 100644 index 0000000000..ee13610c1d --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/queryHeartbeatDashboardItem.ts @@ -0,0 +1,6 @@ +import { getDashboardItems } from "./getDashboardItems"; + +export async function queryHeartbeatDashboardItem() { + const dashboardItems = await getDashboardItems(); + return dashboardItems ? dashboardItems.get("Heartbeats") : null; +} diff --git a/frontend/test/specs/heartbeats/questions/queryHeartbeatMenuItem.ts b/frontend/test/specs/heartbeats/questions/queryHeartbeatMenuItem.ts new file mode 100644 index 0000000000..9b8a71bd05 --- /dev/null +++ b/frontend/test/specs/heartbeats/questions/queryHeartbeatMenuItem.ts @@ -0,0 +1,13 @@ +import { screen, within } from "@testing-library/vue"; + +export async function queryHeartbeatMenuItem() { + const navBar = await screen.findByRole("navigation"); + const menuItem = await within(navBar).getByRole("link", { name: "Heartbeats Menu Item" }); + const counter = within(menuItem).queryByLabelText("Alert Count"); + + return { + menuItemName: menuItem.ariaLabel, + isCounterVisible: counter && true, + counterValue: counter ? Number(counter.textContent) : 0, + }; +} diff --git a/frontend/test/specs/installation-config/app-constants.spec.ts b/frontend/test/specs/installation-config/app-constants.spec.ts new file mode 100644 index 0000000000..2e9f45a384 --- /dev/null +++ b/frontend/test/specs/installation-config/app-constants.spec.ts @@ -0,0 +1,58 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { endpointsNames } from "../monitoring/questions/endpointsNames"; +import { getDefaultConfig, setDefaultConfig } from "@/defaultConfig"; + +describe("FEATURE: app.constants.js", () => { + describe("RULE: The system should automatically navigate to the specified path in default_route property", () => { + test("EXAMPLE: default route is set to /dashboard", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + setDefaultConfig({ ...getDefaultConfig(), default_route: "/dashboard" }); + + //act + await driver.goTo("/"); + + expect(window.location.href).toBe("http://localhost:3000/#/dashboard"); + }); + + test("EXAMPLE: default route is set to /monitoring", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1"])); + setDefaultConfig({ ...getDefaultConfig(), default_route: "/monitoring" }); + + //act + await driver.goTo("/"); + + //Although the navigation was not explicitly made to /monitoring, the default route should be applied and therefore: + // - the monitoring page should be displayed + expect(await endpointsNames()).toEqual(["Endpoint1"]); + //- the monitoring address should be in the URL + expect(window.location.href).toBe("http://localhost:3000/#/monitoring"); + }); + + test("EXAMPLE: default route is set to a empty value", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + setDefaultConfig({ ...getDefaultConfig(), default_route: "" }); + + //act + await driver.goTo(""); + + expect(window.location.href).toBe("http://localhost:3000/#/"); + }); + + test("EXAMPLE: default route is set to /", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + setDefaultConfig({ ...getDefaultConfig(), default_route: "/" }); + + //act + await driver.goTo(""); + + expect(window.location.href).toBe("http://localhost:3000/#/"); + }); + }); +}); diff --git a/frontend/test/specs/licensing/license-enforcement.spec.ts b/frontend/test/specs/licensing/license-enforcement.spec.ts new file mode 100644 index 0000000000..48da269a63 --- /dev/null +++ b/frontend/test/specs/licensing/license-enforcement.spec.ts @@ -0,0 +1,107 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { expiredLicenseMessageWithValue } from "./questions/expiredLicenseMessageWithValue"; +import { viewYourLicenseButton } from "./questions/viewYourLicenseButton"; +import { extendYourLicenseButton } from "./questions/extendYourLicenseButton"; +import { getAlertNotifications } from "./questions/alertNotifications"; +import { LicenseType } from "@/resources/LicenseInfo"; + +describe("FEATURE: EXPIRING license detection", () => { + describe("RULE: The user should be alerted while using the monitoring endpoint list functionality about an EXPIRING license", () => { + [{ licenseExtensionUrl: "https://particular.net/extend-your-trial?p=servicepulse" }, { licenseExtensionUrl: "http://custom-url?with-parts=value1" }].forEach(({ licenseExtensionUrl }) => { + test(`EXAMPLE: Expiring trial with ${licenseExtensionUrl} as license extension url `, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Trial, 10, licenseExtensionUrl)); + + await driver.goTo("monitoring"); + + const notification = (await getAlertNotifications()).find((n) => n.textMatches(/your non-production development license will expire soon\. to continue using the particular service platform you'll need to extend your license\./i)); + + expect(notification).not.toBeUndefined(); + expect(notification?.hasLink({ caption: "Extend your license", address: licenseExtensionUrl })).toBeTruthy(); + expect(notification?.hasLink({ caption: "View license details", address: "#/configuration" })).toBeTruthy(); + }); + }); + + [ + { description: "Expiring upgrade protection", licenseType: LicenseType.UpgradeProtection, textMatch: /once upgrade protection expires, you'll no longer have access to support or new product versions/i }, + { description: "Expiring platform subscription", licenseType: LicenseType.Subscription, textMatch: /Once the license expires you'll no longer be able to continue using the Particular Service Platform/i }, + ].forEach(({ description, licenseType, textMatch }) => { + test(`EXAMPLE: ${description}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(licenseType)); + + await driver.goTo("monitoring"); + + const notification = (await getAlertNotifications()).find((n) => n.textMatches(textMatch)); + + expect(notification).not.toBeUndefined(); + expect(notification?.hasLink({ caption: "View license details", address: "#/configuration" })).toBeTruthy(); + }); + }); + }); +}); +//Once the license expires you'll no longer be able to continue using the Particular Service Platform. +describe("FEATURE: EXPIRED license detection", () => { + //As of the moment of writing this test, license check is performed during the first load of the application only. No continuous check is performed. + describe("RULE: Access to the monitoring endpoint list functionality should be blocked when a expired license is detected and a notification should be displayed", () => { + test("EXAMPLE: Expired trial", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiredLicense(LicenseType.Trial)); + + //Act + await driver.goTo("monitoring"); + + expect(await expiredLicenseMessageWithValue(/to continue using the particular service platform, please extend your license/i)).toBeTruthy(); + expect((await extendYourLicenseButton()).address).toBe("https://particular.net/extend-your-trial?p=servicepulse"); + expect((await viewYourLicenseButton()).address).toBe("#/configuration/license"); + + //Find all the toast notifications that popped up and check if there is a notification about the expired license with a link to the expected page + const notification = (await getAlertNotifications()).find((n) => n.textMatches(/your license has expired\. please contact particular software support at:/i)); + + expect(notification).not.toBeUndefined(); + expect(notification?.hasLink({ caption: "http://particular.net/support", address: "http://particular.net/support" })).toBeTruthy(); + }); + + test("EXAMPLE: Expired platform subscription", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiredLicense(LicenseType.Subscription)); + + //Act + await driver.goTo("monitoring"); + + //expect(await screen.findByText(/please update your license to continue using the particular service platform/i)).toBeInTheDocument(); + expect(await expiredLicenseMessageWithValue(/please update your license to continue using the particular service platform/i)).toBeTruthy(); + expect((await viewYourLicenseButton()).address).toBe("#/configuration/license"); + + //Find all the toast notifications that popped up and check if there is a notification about the expired license with a link to the expected page + const notification = (await getAlertNotifications()).find((n) => n.textMatches(/your license has expired\. please contact particular software support at:/i)); + + expect(notification).not.toBeUndefined(); + expect(notification?.hasLink({ caption: "http://particular.net/support", address: "http://particular.net/support" })).toBeTruthy(); + }); + + test("EXAMPLE: Expired upgrade protection", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiredLicense(LicenseType.UpgradeProtection)); + + //Act + await driver.goTo("monitoring"); + + expect(await expiredLicenseMessageWithValue(/your upgrade protection period has elapsed and your license is not valid for this version of servicepulse\./i)).toBeTruthy(); + expect((await viewYourLicenseButton()).address).toBe("#/configuration/license"); + + //Find all the toast notifications that popped up and check if there is a notification about the expired license with a link to the expected page + const notification = (await getAlertNotifications()).find((n) => n.textMatches(/your license has expired\. please contact particular software support at:/i)); + + expect(notification).not.toBeUndefined(); + expect(notification?.hasLink({ caption: "http://particular.net/support", address: "http://particular.net/support" })).toBeTruthy(); + }); + }); +}); diff --git a/frontend/test/specs/licensing/questions/alertNotifications.ts b/frontend/test/specs/licensing/questions/alertNotifications.ts new file mode 100644 index 0000000000..e193ea5315 --- /dev/null +++ b/frontend/test/specs/licensing/questions/alertNotifications.ts @@ -0,0 +1,13 @@ +import { screen, within } from "@testing-library/vue"; + +export async function getAlertNotifications() { + const alerts = await screen.findAllByRole("alert"); + return alerts.map(function (alert) { + return { + textMatches: (match: RegExp) => within(alert).queryByText(match) !== null, + hasLink({ caption, address }: { caption: string; address: string }) { + return within(alert).getByRole("link", { name: caption }).getAttribute("href") === address; + }, + }; + }); +} diff --git a/frontend/test/specs/licensing/questions/expiredLicenseMessageWithValue.ts b/frontend/test/specs/licensing/questions/expiredLicenseMessageWithValue.ts new file mode 100644 index 0000000000..44fd2e4bbc --- /dev/null +++ b/frontend/test/specs/licensing/questions/expiredLicenseMessageWithValue.ts @@ -0,0 +1,5 @@ +import { screen } from "@testing-library/vue"; +export async function expiredLicenseMessageWithValue(message: string | RegExp): Promise { + const elm = await screen.findByText(message, { selector: "p" }); + return elm !== null; +} diff --git a/frontend/test/specs/licensing/questions/extendYourLicenseButton.ts b/frontend/test/specs/licensing/questions/extendYourLicenseButton.ts new file mode 100644 index 0000000000..7bdc6bfc69 --- /dev/null +++ b/frontend/test/specs/licensing/questions/extendYourLicenseButton.ts @@ -0,0 +1,7 @@ +import { screen } from "@testing-library/vue"; +export async function extendYourLicenseButton() { + const elm = await screen.findByRole("link", { name: "Extend your license" }); + return { + address: elm.getAttribute("href"), + }; +} diff --git a/frontend/test/specs/licensing/questions/trialLicenseBar.ts b/frontend/test/specs/licensing/questions/trialLicenseBar.ts new file mode 100644 index 0000000000..51d478abb1 --- /dev/null +++ b/frontend/test/specs/licensing/questions/trialLicenseBar.ts @@ -0,0 +1,13 @@ +import { screen, within } from "@testing-library/vue"; + +export async function getTrialBar() { + const trialBar = await screen.findByRole("status", { name: /trial license bar information/i }); + return { + textMatches: (match: RegExp) => within(trialBar).queryByText(match) !== null, + hasLinkWithCaption(caption: string) { + return { + address: within(trialBar).getByRole("link", { name: caption }).getAttribute("href"), + }; + }, + }; +} diff --git a/frontend/test/specs/licensing/questions/viewYourLicenseButton.ts b/frontend/test/specs/licensing/questions/viewYourLicenseButton.ts new file mode 100644 index 0000000000..9c61432680 --- /dev/null +++ b/frontend/test/specs/licensing/questions/viewYourLicenseButton.ts @@ -0,0 +1,7 @@ +import { screen } from "@testing-library/vue"; +export function viewYourLicenseButton() { + const elm = screen.getByRole("link", { name: "View license details" }); + return { + address: elm.getAttribute("href"), + }; +} diff --git a/frontend/test/specs/licensing/trial-license-notifications.spec.ts b/frontend/test/specs/licensing/trial-license-notifications.spec.ts new file mode 100644 index 0000000000..96d7365db1 --- /dev/null +++ b/frontend/test/specs/licensing/trial-license-notifications.spec.ts @@ -0,0 +1,38 @@ +import { screen, waitFor } from "@testing-library/vue"; +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { getTrialBar } from "./questions/trialLicenseBar"; +import { LicenseType } from "@/resources/LicenseInfo"; + +describe("FEATURE: Trial license notifications", () => { + describe("RULE: The user should know they are using a trial license at all times", () => { + [{ viewname: "dashboard" }, { viewname: "configuration" }, { viewname: "monitoring" }].forEach(({ viewname }) => { + test(`EXAMPLE: ${viewname}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Trial)); + + await driver.goTo(viewname); + + const trialBar = await getTrialBar(); + expect(trialBar.textMatches(/non-production use only/i)).toBeTruthy(); + expect(trialBar.hasLinkWithCaption("Trial license").address).toBe("#/configuration/license"); + }); + }); + }); + describe("RULE: The user should not see trial license information for commercial licenses", () => { + [{ viewname: "configuration" }, { viewname: "dashboard" }, { viewname: "monitoring" }].forEach(({ viewname }) => { + test(`EXAMPLE: ${viewname}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasExpiringLicense(LicenseType.Subscription)); + + await driver.goTo(viewname); + + //This has to use waitFor because of shared state between test runs. See issue documented issue and proposed solution https://github.com/Particular/ServicePulse/issues/1905 + await waitFor(() => expect(screen.queryByRole("status", { name: /trial license bar information/i })).toBeNull()); + }); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/actions/enterFilterString.ts b/frontend/test/specs/monitoring/actions/enterFilterString.ts new file mode 100644 index 0000000000..1f55cacd80 --- /dev/null +++ b/frontend/test/specs/monitoring/actions/enterFilterString.ts @@ -0,0 +1,11 @@ +import { screen } from "@testing-library/vue"; +import UserEvent from "@testing-library/user-event"; + +export async function enterFilterString(filterString: string) { + const filterByNameInput = await screen.findByLabelText("Filter by name"); + if (filterString.length > 0) { + await UserEvent.type(filterByNameInput, filterString); + } else { + await UserEvent.clear(filterByNameInput); + } +} diff --git a/frontend/test/specs/monitoring/actions/groupEndpointsBy.ts b/frontend/test/specs/monitoring/actions/groupEndpointsBy.ts new file mode 100644 index 0000000000..6f62e355b3 --- /dev/null +++ b/frontend/test/specs/monitoring/actions/groupEndpointsBy.ts @@ -0,0 +1,9 @@ +import UserEvent from "@testing-library/user-event"; +import { groupingOptionWithName } from "../questions/groupingOptionWithName"; +import { openGroupingOptions } from "./openGroupingOptions"; + +export async function groupEndpointsBy({ numberOfSegments }: { numberOfSegments: number }) { + await openGroupingOptions(); + const filterRegEx = numberOfSegments === 0 ? new RegExp(`no grouping`, "i") : new RegExp(`max\\. ${numberOfSegments} segments`, "i"); + await UserEvent.click(await groupingOptionWithName(filterRegEx)); +} diff --git a/frontend/test/specs/monitoring/actions/openGroupingOptions.ts b/frontend/test/specs/monitoring/actions/openGroupingOptions.ts new file mode 100644 index 0000000000..e59f3cdb7e --- /dev/null +++ b/frontend/test/specs/monitoring/actions/openGroupingOptions.ts @@ -0,0 +1,6 @@ +import userEvent from "@testing-library/user-event"; +import { screen } from "@testing-library/vue"; + +export async function openGroupingOptions() { + await userEvent.click(await screen.findByRole("button", { name: /group-by-btn/i })); +} diff --git a/frontend/test/specs/monitoring/actions/selectHistoryPeriod.ts b/frontend/test/specs/monitoring/actions/selectHistoryPeriod.ts new file mode 100644 index 0000000000..1e68456c3f --- /dev/null +++ b/frontend/test/specs/monitoring/actions/selectHistoryPeriod.ts @@ -0,0 +1,15 @@ +import userEvent from "@testing-library/user-event"; +import { screen, within } from "@testing-library/vue"; +import { vi } from "vitest"; + +export async function selectHistoryPeriod(historyPeriod: number, advanceTimers: boolean = false) { + const historyPeriodList = await screen.findByRole("list", { name: "history-period-list" }); + const historyPeriodListItem = await within(historyPeriodList).findByRole("listitem", { name: `${historyPeriod}` }); + const historyPeriodLink = await within(historyPeriodListItem).findByRole("link"); + if (advanceTimers) { + const user = userEvent.setup({ advanceTimers: vi.advanceTimersByTime }); + await user.click(historyPeriodLink); + } else { + await userEvent.click(historyPeriodLink); + } +} diff --git a/frontend/test/specs/monitoring/actions/sortEndpointsBy.ts b/frontend/test/specs/monitoring/actions/sortEndpointsBy.ts new file mode 100644 index 0000000000..982279c6ee --- /dev/null +++ b/frontend/test/specs/monitoring/actions/sortEndpointsBy.ts @@ -0,0 +1,7 @@ +import UserEvent from "@testing-library/user-event"; +import { endpointSortingColumnWithName } from "../questions/endpointSortingColumnWithName"; + +export async function sortEndpointsBy({ column }: { column: string }) { + const filterRegEx = new RegExp(column, "i"); + await UserEvent.click(await endpointSortingColumnWithName(filterRegEx)); +} diff --git a/frontend/test/specs/monitoring/endpoint-details.spec.ts b/frontend/test/specs/monitoring/endpoint-details.spec.ts new file mode 100644 index 0000000000..56a59686ee --- /dev/null +++ b/frontend/test/specs/monitoring/endpoint-details.spec.ts @@ -0,0 +1,269 @@ +import { expect, vi } from "vitest"; +import { waitFor } from "@testing-library/dom"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { endpointsDetailsTitle } from "./questions/endpointDetailsTitle"; +import { endpointMessageNames, endpointMessageTypesCount } from "./questions/endpointDetailsMessageTypes"; +import { endpointInstanceNames, endpointInstancesCount } from "./questions/endpointDetailsInstances"; +import { endpointDetailsGraphsCurrentValues } from "./questions/endpointDetailGraphsCurrentValues"; +import { endpointDetailsGraphsAverageValues } from "./questions/endpointDetailGraphsAverageValues"; +import { monitoredEndpointDetails } from "../../mocks/monitored-endpoint-template"; +import * as warningQuestion from "./questions/endpointWarnings"; +import { selectHistoryPeriod } from "./actions/selectHistoryPeriod"; +import { paginationVisible } from "./questions/paginationVisible"; + +describe("FEATURE: Endpoint details", () => { + describe("RULE: Endpoint details include the endpoint name", () => { + test("EXAMPLE: Clicking an endpoint name from the endpoint monitoring list", async ({ driver }) => { + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpointDetails = structuredClone(monitoredEndpointDetails); + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + await driver.goTo("/monitoring/endpoint/Endpoint1"); + expect(await endpointsDetailsTitle()).toBe("Endpoint1"); + }); + }); + describe("RULE: Endpoint detail metric data should be updated immediately after changing the history period", () => { + test(`EXAMPLE: As history periods are selected the graph data values should update immediately`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpointDetails = structuredClone(monitoredEndpointDetails); + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + //Act + await driver.goTo(`/monitoring/endpoint/Endpoint1`); + + // Assert + // Wait for the default values of the page to be updated after the page is loaded + await waitFor(async () => expect(await endpointDetailsGraphsCurrentValues()).toEqual(["2", "0", "0", "0", "0"])); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "1.97", "0", "74", "239"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(2, 2, 8, 9.56, 13.24, 10, 81, 78, 215, 220)); + await selectHistoryPeriod(5); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["2", "8", "13.24", "81", "215"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "9.56", "10", "78", "220"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(5, 3.1, 12, 7.4, 2.2, 1, 124, 105.7, 201, 198)); + await selectHistoryPeriod(10); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["5", "12", "2.2", "124", "201"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["3.1", "7.4", "1", "105", "198"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(8, 6.5, 15, 12.6, 3.1, 2.4, 278, 255.3, 403, 387.8)); + await selectHistoryPeriod(15); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["8", "15", "3.1", "278", "403"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["6.5", "12.6", "2.4", "255", "387"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 777.7, 888.8, 999.9, 800.8)); + await selectHistoryPeriod(30); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["1.1", "3.3", "5.5", "777", "999"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2.2", "4.4", "6.6", "888", "800"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(9.999, 8.888, 7.777, 6.666, 5.555, 4.444, 333.333, 222.222, 111.111, 100.123)); + await selectHistoryPeriod(60); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["10", "7.78", "5.55", "333", "111"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["8.89", "6.67", "4.44", "222", "100"]); + + await driver.setUp(precondition.hasEndpointWithMetricValues(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + await selectHistoryPeriod(1); + + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["1", "3", "5", "7", "9"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "4", "6", "8", "10"]); + }); + }); + describe("RULE: Endpoint detail metric data should be updated at the interval selected by the history period", () => { + [ + { description: "As history period is changed to 5 minutes the endpoint metrics data should be updated at the correct interval", historyPeriod: 5 }, + { description: "As history period is changed to 10 minutes the endpoint metrics data should be updated at the correct interval", historyPeriod: 10 }, + { description: "As history period is changed to 15 minutes the endpoint metrics data should be updated at the correct interval", historyPeriod: 15 }, + { description: "As history period is changed to 30 minutes the endpoint metrics data should be updated at the correct interval", historyPeriod: 30 }, + { description: "As history period is changed to 60 minutes the endpoint metrics data should be updated at the correct interval", historyPeriod: 60 }, + ].forEach(({ description, historyPeriod }) => { + // + test(`EXAMPLE: ${description}`, async ({ driver }) => { + // Arrange + vi.useFakeTimers(); // Needs to be called before the first call to setInterval + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointWithMetricValues(2, 2, 8, 9.56, 13.24, 10, 81, 78, 215, 220)); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1"); + await selectHistoryPeriod(historyPeriod, true); + + // Assert + // Wait for component to update from selected history period immediately + await waitFor(async () => expect(await endpointDetailsGraphsCurrentValues()).toEqual(["2", "8", "13.24", "81", "215"])); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "9.56", "10", "78", "220"]); + + // Update the mocked data to what the backend should respond with when the fetching happens + await driver.setUp(precondition.hasEndpointWithMetricValues(5, 3.1, 12, 7.4, 2.2, 1, 124, 105.7, 201, 198)); + + // Simulate the time passing for half the selected history period + await vi.advanceTimersByTimeAsync((historyPeriod * 1000) / 2); + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["2", "8", "13.24", "81", "215"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "9.56", "10", "78", "220"]); + + // Simulate the time passing for all except 1 millisecond of the selected history period + await vi.advanceTimersByTimeAsync((historyPeriod * 1000) / 2 - 1); + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["2", "8", "13.24", "81", "215"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["2", "9.56", "10", "78", "220"]); + + // Simulate the time passing for the last millisecond to make the selected history period time now be elapsed + await vi.advanceTimersByTimeAsync(1); + expect(await endpointDetailsGraphsCurrentValues()).toEqual(["5", "12", "2.2", "124", "201"]); + expect(await endpointDetailsGraphsAverageValues()).toEqual(["3.1", "7.4", "1", "105", "198"]); + + vi.useRealTimers(); + }); + }); + }); + describe("RULE: An indication should be be displayed for the status of an endpoint", () => { + test("EXAMPLE: An endpoint has a negative critical time", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.instances[0].metrics.criticalTime.points.push(-1000); + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1"); + + // Assert + await waitFor(async () => expect(await warningQuestion.negativeCriticalTimeWarning()).toBeTruthy()); + }); + test("EXAMPLE: An endpoint is stale", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.instances[0].isStale = true; + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1"); + + // Assert + expect(await warningQuestion.endpointStaleWarning()).toBeTruthy(); + }); + test("EXAMPLE: An endpoint is disconnected from ServiceControl monitoring", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.isScMonitoringDisconnected = true; + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1"); + + // Assert + expect(await warningQuestion.endpointDisconnectedWarning()).toBeTruthy(); + }); + + test("EXAMPLE: An endpoint has a failed message", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + const endpointDetails = structuredClone(monitoredEndpointDetails); + endpointDetails.errorCount = 5; + await driver.setUp(precondition.hasMonitoredEndpointDetails(endpointDetails)); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1"); + + // Assert + expect(await warningQuestion.endpointErrorCountWarning()).toBeTruthy(); + expect(await warningQuestion.endpointErrorCount()).toBe("5"); + }); + }); + describe("RULE: Endpoint details should show all message types for the endpoint", () => { + test("EXAMPLE: The endpoint sends messages of type 'Message1,' 'Message2,' and 'Message3'", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointMessageTypesNamed(["Message1", "Message2", "Message3"])); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1"); + + // Assert + expect(await endpointMessageNames()).toEqual(["Message1", "Message2", "Message3"]); + }); + test("EXAMPLE: Endpoint details should show correct counts for message types", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointMessageTypesNamed(["Message1", "Message2", "Message3"])); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1"); + + //retrieve the endpoint message names as a way to wait for the page to finish loading + await endpointMessageNames(); + // Assert + expect(await endpointMessageTypesCount()).toEqual("3"); + }); + }); + describe("RULE: Endpoint details should show all instances of the endpoint", () => { + test("EXAMPLE: The endpoint has 1 instance running", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointInstancesNamed(["Endpoint1"])); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1&tab=instancesBreakdown"); + + // Assert + expect(await endpointInstanceNames()).toEqual(["Endpoint1"]); + expect(await endpointInstancesCount()).toEqual("1"); + }); + test("EXAMPLE: The endpoint has 3 instances running", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointInstancesNamed(["Endpoint1", "Endpoint2", "Endpoint3"])); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1?historyPeriod=1&tab=instancesBreakdown"); + + // Assert + expect(await endpointInstanceNames()).toEqual(["Endpoint1", "Endpoint2", "Endpoint3"]); + expect(await endpointInstancesCount()).toEqual("3"); + }); + }); + describe("RULE: Pagination should be displayed when 11 or more message types are present", () => { + test("EXAMPLE: 10 message types are present", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointMessageTypesNamed(new Array(10).fill("Message").map((name, index) => `${name}${index}`))); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1"); + + // Assert + await waitFor(() => expect(paginationVisible()).not.toBeTruthy()); + }); + test("EXAMPLE: 11 message types are present", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointMessageTypesNamed(new Array(11).fill("Message").map((name, index) => `${name}${index}`))); + + // Act + await driver.goTo("monitoring/endpoint/Endpoint1"); + + // Assert + await waitFor(() => expect(paginationVisible()).not.toBeTruthy()); + }); + test("EXAMPLE: 12 message types are present", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointMessageTypesNamed(new Array(12).fill("Message").map((name, index) => `${name}${index}`))); + + // Act + await driver.goTo("/monitoring/endpoint/Endpoint1"); + + // Assert + await waitFor(() => expect(paginationVisible()).toBeTruthy()); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/filtering-endpoints.spec.ts b/frontend/test/specs/monitoring/filtering-endpoints.spec.ts new file mode 100644 index 0000000000..f67ac6c231 --- /dev/null +++ b/frontend/test/specs/monitoring/filtering-endpoints.spec.ts @@ -0,0 +1,248 @@ +import { vi, expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import { enterFilterString } from "./actions/enterFilterString"; +import { groupEndpointsBy } from "./actions/groupEndpointsBy"; +import { endpointGroupNames } from "./questions/endpointGroupNames"; +import { endpointGroup } from "./questions/endpointGroup"; +import { currentFilterValueToBe } from "./questions/currentFilterValueToBe"; +import { endpointsNames } from "./questions/endpointsNames"; +import * as precondition from "../../preconditions"; + +vi.mock("@vueuse/core", async (importOriginal) => { + const originalModule = await importOriginal(); + return { + ...originalModule, + // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type + useDebounceFn: (fn: Function) => fn, + }; +}); + +describe("FEATURE: Endpoint filtering", () => { + describe("RULE: List of monitoring endpoints should be filterable by the name", () => { + [ + { + description: "Filter string matches full endpoint name", + filterString: "Universe.Solarsystem.Earth.Endpoint1", + expectedEndpoints: ["Universe.Solarsystem.Earth.Endpoint1"], + }, + { + description: "Filter string matches a substring of only 1 endpoint name", + filterString: "Endpoint1", + expectedEndpoints: ["Universe.Solarsystem.Earth.Endpoint1"], + }, + { + description: "Filter string doesn't match any endpoint name", + filterString: "WrongName", + expectedEndpoints: [], + }, + ].forEach((scenario) => { + test(`EXAMPLE: ${scenario.description}`, async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + // Act + await driver.goTo("monitoring"); + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"]); + await enterFilterString(scenario.filterString); + + // Assert + expect(await endpointsNames()).toEqual(scenario.expectedEndpoints); + }); + }); + + test("EXAMPLE: Enter filter string that matches 1 endpoint and clearing the filter string should display all endpoints", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + // Act + await driver.goTo("monitoring"); + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"]); + + await enterFilterString("Endpoint1"); + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1"]); + + await enterFilterString(""); + + // Assert + // Confirm all endpoints show in the list after clearing the filter string + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"]); + }); + + test("EXAMPLE: No filter string is entered and all endpoints should be displayed", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + // Act + await driver.goTo("monitoring"); + + // Assert + // Confirm all endpoints show in the list after clearing the filter string + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"]); + }); + }); + + describe("RULE: Filtering by endpoint name should be case insensitive", () => { + [ + { description: "All lower case letters are used for a filter string that matches only 1 endpoint", filterString: "endpoint1" }, + { description: "All upper case letters are used for a filter string that matches only 1 endpoint", filterString: "ENDPOINT1" }, + { description: "A mix of upper and lower case letters are used for a filter string that matches only 1 endpoint", filterString: "EnDpOiNt1" }, + ].forEach((scenario) => { + test(`EXAMPLE: ${scenario.description}`, async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + // Act + await driver.goTo("monitoring"); + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"]); + await enterFilterString(scenario.filterString); + + // Assert + // Confirm only endpoint1 shows in the list after filtering + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1"]); + }); + }); + }); + + describe("RULE: Filtering by endpoint name should be possible when endpoints are grouped", () => { + test("EXAMPLE: Filter string matches only 1 endpoint in only 1 group", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + ]) + ); + + // Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 3 }); + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + await enterFilterString("Endpoint1"); + + // Assert + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Mercury"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1"]); + expect(await endpointsNames()).toEqual(["Endpoint1"]); + }); + + test("EXAMPLE: Filter string matches all endpoints in each group", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + ]) + ); + + // Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 3 }); + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + await enterFilterString("Endpoint"); + + // Assert + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + expect(await endpointsNames()).toEqual(["Endpoint5", "Endpoint6", "Endpoint1", "Endpoint2", "Endpoint3", "Endpoint4"]); + }); + + test("EXAMPLE: Filter string doesn't match any endpoints in any groups", async ({ driver }) => { + // Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + ]) + ); + + // Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 3 }); + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + await enterFilterString("WrongName"); + + // Assert + expect(endpointGroupNames()).toEqual([]); + expect(await endpointsNames()).toEqual([]); + }); + }); + + describe("RULE: Filter string can get and set the filter parameter in the permalink", () => { + test("EXAMPLE: Filter string should be updated when the permalink has the filter parameter set", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + //Setup at least one endpoint to prevent the no-data screen to show, which would prevent the filter input from being displayed + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1"])); + //Act + await driver.goTo("monitoring?filter=Endpoint1"); + //Retrieve the endpoints names to give time for endpoints list to render and parse the filter parameter from the URL. This functions awaits until the endpoint list gets rendered. + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1"]); + + //Assert + expect(currentFilterValueToBe("Endpoint1")).toBeTruthy(); + }); + + test("EXAMPLE: The permalink's filter parameter is updated when a filter string is entered", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + //Setup at least one endpoint to prevent the no-data screen to show, which would prevent the filter input from being displayed + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1"])); + + //Act + await driver.goTo("monitoring"); + await enterFilterString("Endpoint1"); + + //Assert + expect(window.location.href).toEqual("http://localhost:3000/#/monitoring?historyPeriod=1&filter=Endpoint1"); + }); + + test("EXAMPLE: The permalink's filter parameter is removed when filter string is empty", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + //Setup at least one endpoint to prevent the no-data screen to show, which would prevent the filter input from being displayed + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1"])); + + //Act + await driver.goTo("monitoring?filter=Endpoint1"); + //Retrieve the endpoints names to give time for endpoints list to render and parse the filter parameter from the URL. This functions awaits until the endpoint list gets rendered. + expect(await endpointsNames()).toEqual(["Universe.Solarsystem.Earth.Endpoint1"]); + + expect(currentFilterValueToBe("Endpoint1")).toBeTruthy(); + await enterFilterString(""); + + //Assert + expect(window.location.href).toEqual("http://localhost:3000/#/monitoring"); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/grouping-endpoints.spec.ts b/frontend/test/specs/monitoring/grouping-endpoints.spec.ts new file mode 100644 index 0000000000..17faf4ddf5 --- /dev/null +++ b/frontend/test/specs/monitoring/grouping-endpoints.spec.ts @@ -0,0 +1,167 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import * as precondition from "../../preconditions"; +import { numberOfGroupingSegments } from "./questions/numberOfGroupingSegments"; +import { groupingOptionWithName } from "./questions/groupingOptionWithName"; +import { openGroupingOptions } from "./actions/openGroupingOptions"; +import { groupingOptions } from "./questions/groupingOptions"; +import { groupEndpointsBy } from "./actions/groupEndpointsBy"; +import { endpointGroupNames } from "./questions/endpointGroupNames"; +import { endpointGroup } from "./questions/endpointGroup"; + +describe("FEATURE: Grouping endpoints", () => { + describe("RULE: The number of grouping segments is determined by the number of periods in the endpoint name", () => { + test("EXAMPLE: All endpoints have three periods in their name", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await openGroupingOptions(); + + //Assert + expect(await groupingOptionWithName(/max\. 1 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 2 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 3 segments/i)).toBeInTheDocument(); + expect(await numberOfGroupingSegments()).toBe(3); + }); + + test("EXAMPLE: One endpoint has three periods in its name and the other endpoints have two periods in their name", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Endpoint2", "Universe.Solarsystem.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await openGroupingOptions(); + + //Assert + expect(await groupingOptionWithName(/max\. 1 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 2 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 3 segments/i)).toBeInTheDocument(); + expect(await numberOfGroupingSegments()).toBe(3); + }); + + test("EXAMPLE: All endpoints have a different number of periods in their respective names", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Endpoint1", "Universe.Solarsystem.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await openGroupingOptions(); + + //Assert + expect(await groupingOptionWithName(/max\. 1 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 2 segments/i)).toBeInTheDocument(); + expect(await groupingOptionWithName(/max\. 3 segments/i)).toBeInTheDocument(); + expect(await numberOfGroupingSegments()).toBe(3); + }); + + test("EXAMPLE: One endpoint does not have a period in its name and the other endpoints have one period in their respective names", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1", "Universe.Endpoint2", "Universe.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await openGroupingOptions(); + + //Assert + expect(await groupingOptionWithName(/max\. 1 segments/i)).toBeInTheDocument(); + expect(await numberOfGroupingSegments()).toBe(1); + }); + + test("EXAMPLE: No endpoints have a period in their respective names", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1", "Endpoint2", "Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await openGroupingOptions(); + + //Assert + expect(await groupingOptionWithName(/no grouping/i)).toBeInTheDocument(); + expect(groupingOptions().length).toBe(1); + }); + }); + + describe("RULE: Allow the user to group endpoints by the number of segments in the endpoint name", () => { + test("EXAMPLE: Grouping by ONE segment", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Alphacentauri.Proximacentauri.Endpoint1", "Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2"])); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 1 }); + + //Assert + expect(endpointGroupNames()).toEqual(["Universe"]); + expect(endpointGroup("Universe").Endpoints).toEqual(["Alphacentauri.Proximacentauri.Endpoint1", "Solarsystem.Earth.Endpoint1", "Solarsystem.Earth.Endpoint2"]); + }); + + test("EXAMPLE: Grouping by ONE segment when a single endpoint does not have a segment to be grouped by", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 1 }); + + //Assert + expect(endpointGroupNames()).toEqual(["Ungrouped", "Universe"]); + expect(endpointGroup("Ungrouped").Endpoints).toEqual(["Endpoint1"]); + expect(endpointGroup("Universe").Endpoints).toEqual(["Solarsystem.Earth.Endpoint2", "Solarsystem.Earth.Endpoint3"]); + }); + + test("EXAMPLE: Grouping by TWO segments", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Alphacentauri.Proximacentauri.Endpoint1", "Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2"])); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 2 }); + + //Assert + expect(endpointGroupNames()).toEqual(["Universe.Alphacentauri", "Universe.Solarsystem"]); + expect(endpointGroup("Universe.Alphacentauri").Endpoints).toEqual(["Proximacentauri.Endpoint1"]); + expect(endpointGroup("Universe.Solarsystem").Endpoints).toEqual(["Earth.Endpoint1", "Earth.Endpoint2"]); + }); + + test("EXAMPLE: Grouping by TWO segments when a single endpoint only has ONE segment to be grouped by", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 2 }); + + //Assert + expect(endpointGroupNames()).toEqual(["Universe", "Universe.Solarsystem"]); + expect(endpointGroup("Universe").Endpoints).toEqual(["Endpoint1"]); + expect(endpointGroup("Universe.Solarsystem").Endpoints).toEqual(["Earth.Endpoint2", "Earth.Endpoint3"]); + }); + }); + + describe("RULE: Allow the user to ungroup endpoints", () => { + test("EXAMPLE: Select grouping by ONE segment and then select `no grouping` when all endpoints have one or more segments", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 1 }); + await groupEndpointsBy({ numberOfSegments: 0 }); + + //Assert + expect(endpointGroupNames()).toEqual([]); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/history-period.spec.ts b/frontend/test/specs/monitoring/history-period.spec.ts new file mode 100644 index 0000000000..09e865b7f3 --- /dev/null +++ b/frontend/test/specs/monitoring/history-period.spec.ts @@ -0,0 +1,163 @@ +import { expect, vi } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import { waitFor } from "@testing-library/vue"; +import * as precondition from "../../preconditions"; +import { selectHistoryPeriod } from "./actions/selectHistoryPeriod"; +import { endpointSparklineValues } from "./questions/endpointSparklineValues"; +import { historyPeriodSelected } from "./questions/historyPeriodSelected"; +import { endpointDetailsLinks } from "./questions/endpointDetailLinks"; + +describe("FEATURE: Endpoint history periods", () => { + describe("RULE: History period should get and set the permalink history period query parameter", () => { + [ + { description: "History period '1m' selected and permalink history period query parameter should be set to 1", historyPeriod: 1 }, + { description: "History period '5m' selected and permalink history period query parameter should be set to 5", historyPeriod: 5 }, + { description: "History period '10m' selected and permalink history period query parameter should be set to 10", historyPeriod: 10 }, + { description: "History period '15m' selected and permalink history period query parameter should be set to 15", historyPeriod: 15 }, + { description: "History period '30m' selected and permalink history period query parameter should be set to 30", historyPeriod: 30 }, + { description: "History period '1h' selected and permalink history period query parameter should be set to 60", historyPeriod: 60 }, + ].forEach(({ description, historyPeriod }) => { + test(`EXAMPLE: ${description}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1"])); + + //Act + await driver.goTo(`monitoring`); + await selectHistoryPeriod(historyPeriod); + + //Assert + expect(window.location.href).toEqual(`http://localhost:3000/#/monitoring?historyPeriod=${historyPeriod}`); + }); + }); + [ + { description: "History period query parameter is set to 1 and history period '1m' should be selected", historyPeriod: 1 }, + { description: "History period query parameter is set to 5 and history period '5m' should be selected", historyPeriod: 10 }, + { description: "History period query parameter is set to 10 and history period '10m' should be selected", historyPeriod: 15 }, + { description: "History period query parameter is set to 15 and history period '15m' should be selected", historyPeriod: 30 }, + { description: "History period query parameter is set to 30 and history period '30m' should be selected", historyPeriod: 30 }, + { description: "History period query parameter is set to 60 and history period '1h' should be selected", historyPeriod: 60 }, + ].forEach(({ description, historyPeriod }) => { + test(`EXAMPLE: ${description}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1"])); + + //Act + await driver.goTo(`monitoring?historyPeriod=${historyPeriod}`); + + //Assert + expect(await historyPeriodSelected(historyPeriod)).toEqual("true"); + }); + }); + test("EXAMPLE: No history query parameter set and History period '1m' should be selected", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1"])); + + //Act + await driver.goTo("monitoring"); + + //Assert + expect(await historyPeriodSelected(1)).toEqual("true"); + }); + [ + { description: "Selecting history period '1m' should update the endpoint name link with the history period selected for details", historyPeriod: 1 }, + { description: "Selecting history period '10m' should update the endpoint name link with the history period selected for details", historyPeriod: 15 }, + { description: "Selecting history period '15m' should update the endpoint name link with the history period selected for details", historyPeriod: 10 }, + { description: "Selecting history period '30m' should update the endpoint name link with the history period selected for details", historyPeriod: 30 }, + { description: "Selecting history period '1h' should update the endpoint name link with the history period selected for details", historyPeriod: 60 }, + ].forEach(({ description, historyPeriod }) => { + test(`EXAMPLE: ${description}`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Endpoint1", "Endpoint2"])); + + //Act + await driver.goTo(`monitoring`); + await selectHistoryPeriod(historyPeriod); + + //Assert + expect(await endpointDetailsLinks()).toEqual([`#/monitoring/endpoint/Endpoint1?historyPeriod=${historyPeriod}`, `#/monitoring/endpoint/Endpoint2?historyPeriod=${historyPeriod}`]); + }); + }); + }); + describe("RULE: Endpoint history period data should be displayed immediately after the history period is updated", () => { + test(`EXAMPLE: As history periods are selected the endpoint sparkline data should update immediately`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasEndpointWithMetricsPoints(14, 9.28, 13.8, 76, 217)); + + //Act & Assert + await driver.goTo(`monitoring`); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["14", "9.28", "13.8", "76", "217"]); + + await driver.setUp(precondition.hasEndpointWithMetricsPoints(2.96, 2.26, 2.1, 36, 147)); + await selectHistoryPeriod(5); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["2.96", "2.26", "2.1", "36", "147"]); + + await driver.setUp(precondition.hasEndpointWithMetricsPoints(10, 6.98, 9.97, 63, 194)); + await selectHistoryPeriod(10); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["10", "6.98", "9.97", "63", "194"]); + + await driver.setUp(precondition.hasEndpointWithMetricsPoints(3.65, 2.7, 2.84, 39, 152)); + await selectHistoryPeriod(15); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["3.65", "2.7", "2.84", "39", "152"]); + + await driver.setUp(precondition.hasEndpointWithMetricsPoints(12, 7.87, 11.45, 68, 203)); + await selectHistoryPeriod(30); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["12", "7.87", "11.45", "68", "203"]); + + await driver.setUp(precondition.hasEndpointWithMetricsPoints(13, 8.37, 11.61, 72, 206)); + await selectHistoryPeriod(60); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["13", "8.37", "11.61", "72", "206"]); + }); + }); + describe("RULE: Endpoint history period data should be displayed at the interval selected by the history period", () => { + [ + { description: "As history period is changed to 5 minutes the endpoint sparkline data should be updated at the correct interval", historyPeriod: 5 }, + { description: "As history period is changed to 10 minutes the endpoint sparkline data should be updated at the correct interval", historyPeriod: 10 }, + { description: "As history period is changed to 15 minutes the endpoint sparkline data should be updated at the correct interval", historyPeriod: 15 }, + { description: "As history period is changed to 30 minutes the endpoint sparkline data should be updated at the correct interval", historyPeriod: 30 }, + { description: "As history period is changed to 60 minutes the endpoint sparkline data should be updated at the correct interval", historyPeriod: 60 }, + ].forEach(({ description, historyPeriod }) => { + test(`EXAMPLE: ${description}`, async ({ driver }) => { + //Arrange + vi.useFakeTimers(); // Needs to be called before the first call to setInterval + await driver.setUp(precondition.serviceControlWithMonitoring); + + //Act & Assert + await driver.goTo(`monitoring`); + + // Update the mocked data to what the backed should respond with when the fetching happens + await driver.setUp(precondition.hasEndpointWithMetricsPoints(12, 9.56, 13.24, 81, 215)); + // simulate clicking on the history period buttons + await selectHistoryPeriod(historyPeriod, true); + + // Wait for component to update from selected history period + await waitFor(async () => { + // check the endpoint data has been updated immediately + expect(await endpointSparklineValues("Endpoint1")).toEqual(["12", "9.56", "13.24", "81", "215"]); + }); + + // Update the mocked data to what the backend should respond with when the fetching happens + await driver.setUp(precondition.hasEndpointWithMetricsPoints(12, 9.56, 13.24, 81, 220)); + + // Simulate the time passing for half the selected history period + await vi.advanceTimersByTimeAsync((historyPeriod * 1000) / 2); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["12", "9.56", "13.24", "81", "215"]); + + // Simulate the time passing for all except 1 millisecond of the selected history period + await vi.advanceTimersByTimeAsync((historyPeriod * 1000) / 2 - 1); + expect(await endpointSparklineValues("Endpoint1")).toEqual(["12", "9.56", "13.24", "81", "215"]); + + // Simulate the time passing for the last millisecond to make the selected history period time now be elapsed + await vi.advanceTimersByTimeAsync(1); + + expect(await endpointSparklineValues("Endpoint1")).toEqual(["12", "9.56", "13.24", "81", "220"]); + + vi.useRealTimers(); + }); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/listing-endpoints.spec.ts b/frontend/test/specs/monitoring/listing-endpoints.spec.ts new file mode 100644 index 0000000000..611accb00f --- /dev/null +++ b/frontend/test/specs/monitoring/listing-endpoints.spec.ts @@ -0,0 +1,18 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import { screen } from "@testing-library/vue"; +import * as precondition from "../../preconditions"; + +describe("FEATURE: Endpoint listing", () => { + describe("RULE: It should be indicated when there is connectivity to the backend but there is no endpoints found (no data)", () => { + test("EXAMPLE: No monitored endpoints", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.hasNoMonitoredEndpoints); + //Act + await driver.goTo("monitoring"); + + expect(await screen.findByText(/the monitoring service is active but no data is being returned\./i)).toBeInTheDocument(); + }); + }); +}); diff --git a/frontend/test/specs/monitoring/questions/currentFilterValueToBe.ts b/frontend/test/specs/monitoring/questions/currentFilterValueToBe.ts new file mode 100644 index 0000000000..bb31412922 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/currentFilterValueToBe.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export function currentFilterValueToBe(filterString: RegExp | string) { + const htmlElement = screen.queryByDisplayValue(filterString); + return htmlElement != null; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailGraphsAverageValues.ts b/frontend/test/specs/monitoring/questions/endpointDetailGraphsAverageValues.ts new file mode 100644 index 0000000000..3efd715ef7 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailGraphsAverageValues.ts @@ -0,0 +1,12 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointDetailsGraphsAverageValues() { + const graphDetails = await screen.getByRole("grid", { name: "detail-graphs-data" }); + const allGraphCurrentValues = within(graphDetails).getAllByLabelText("metric-average-value"); + + const data = allGraphCurrentValues.map((element) => { + return element.textContent?.split(" ")[0] || null; + }); + + return data; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailGraphsCurrentValues.ts b/frontend/test/specs/monitoring/questions/endpointDetailGraphsCurrentValues.ts new file mode 100644 index 0000000000..d087853303 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailGraphsCurrentValues.ts @@ -0,0 +1,12 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointDetailsGraphsCurrentValues() { + const graphDetails = await screen.getByRole("grid", { name: "detail-graphs-data" }); + const allGraphCurrentValues = within(graphDetails).getAllByLabelText("metric-current-value"); + + const data = allGraphCurrentValues.map((element) => { + return element.textContent?.split(" ")[0] || null; + }); + + return data; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailLinks.ts b/frontend/test/specs/monitoring/questions/endpointDetailLinks.ts new file mode 100644 index 0000000000..b5445ba0b1 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailLinks.ts @@ -0,0 +1,8 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointDetailsLinks() { + const endpointList = await screen.findByRole("table", { name: "endpoint-list" }); + const detailLinks = within(endpointList).queryAllByLabelText("details-link"); + const endpointDetailLinks = detailLinks.map((item) => item.getAttribute("href")); + return endpointDetailLinks; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailsInstances.ts b/frontend/test/specs/monitoring/questions/endpointDetailsInstances.ts new file mode 100644 index 0000000000..626d81b9fe --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailsInstances.ts @@ -0,0 +1,11 @@ +import { screen } from "@testing-library/vue"; + +export async function endpointInstanceNames() { + const messageName = await screen.findAllByRole("instance-name", { name: "instance-name" }); + return messageName.map((name) => name.textContent); +} + +export async function endpointInstancesCount() { + const messageTypesCount = await screen.findByLabelText("instances-count"); + return messageTypesCount.textContent; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailsMessageTypes.ts b/frontend/test/specs/monitoring/questions/endpointDetailsMessageTypes.ts new file mode 100644 index 0000000000..064f7226bf --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailsMessageTypes.ts @@ -0,0 +1,11 @@ +import { screen } from "@testing-library/vue"; + +export async function endpointMessageNames() { + const messageName = await screen.findAllByRole("message-type-name", { name: "message-type-name" }); + return messageName.map((name) => name.textContent); +} + +export async function endpointMessageTypesCount() { + const messageTypesCount = await screen.findByLabelText("message-types-count"); + return messageTypesCount.textContent; +} diff --git a/frontend/test/specs/monitoring/questions/endpointDetailsTitle.ts b/frontend/test/specs/monitoring/questions/endpointDetailsTitle.ts new file mode 100644 index 0000000000..3429c538d3 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointDetailsTitle.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export async function endpointsDetailsTitle() { + const title = await screen.findByRole("heading", { name: "endpoint-title" }); + return title.textContent; +} diff --git a/frontend/test/specs/monitoring/questions/endpointGroup.ts b/frontend/test/specs/monitoring/questions/endpointGroup.ts new file mode 100644 index 0000000000..abcb353d22 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointGroup.ts @@ -0,0 +1,11 @@ +import { screen, within } from "@testing-library/vue"; + +export function endpointGroup(groupName: RegExp | string) { + const allGroupedEndpoints = screen.getByRole("rowgroup", { name: "grouped-endpoints" }); + const groupOfEndpoints = within(allGroupedEndpoints).getByRole("group", { name: groupName }); + const endpoints = within(groupOfEndpoints).getAllByRole("link", { name: /details-link/i }); + const endpointNames = endpoints.map((item) => item.textContent); + return { + Endpoints: endpointNames, + }; +} diff --git a/frontend/test/specs/monitoring/questions/endpointGroupNames.ts b/frontend/test/specs/monitoring/questions/endpointGroupNames.ts new file mode 100644 index 0000000000..18a2fda728 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointGroupNames.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export function endpointGroupNames() { + const groups = screen.queryAllByRole("group"); + return groups.map((group) => group.getAttribute("aria-labelledby") || group.getAttribute("aria-label")); +} diff --git a/frontend/test/specs/monitoring/questions/endpointSortingColumnWithName.ts b/frontend/test/specs/monitoring/questions/endpointSortingColumnWithName.ts new file mode 100644 index 0000000000..4b1f1bc418 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointSortingColumnWithName.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export async function endpointSortingColumnWithName(optionText: RegExp | string) { + const filterRegEx = new RegExp(optionText, "i"); + return await screen.findByRole("button", { name: filterRegEx }); +} diff --git a/frontend/test/specs/monitoring/questions/endpointSparklineValues.ts b/frontend/test/specs/monitoring/questions/endpointSparklineValues.ts new file mode 100644 index 0000000000..e3aec6b2e0 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointSparklineValues.ts @@ -0,0 +1,7 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointSparklineValues(endpointName: string) { + const endpointRow = await screen.findByRole("row", { name: endpointName }); + const endpointSparklineElement = within(endpointRow).getAllByRole("text", { name: /sparkline/i }); + return endpointSparklineElement.map((item) => item.textContent?.split(" ")[0]); +} diff --git a/frontend/test/specs/monitoring/questions/endpointWarnings.ts b/frontend/test/specs/monitoring/questions/endpointWarnings.ts new file mode 100644 index 0000000000..e06d80fa25 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointWarnings.ts @@ -0,0 +1,27 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointStaleWarning() { + const staleWarning = await screen.findByRole("status", { name: "stale-warning" }); + return staleWarning; +} + +export async function negativeCriticalTimeWarning() { + const criticalTimeWarning = await screen.queryByRole("status", { name: "negative-critical-time-warning" }); + return criticalTimeWarning; +} + +export async function endpointDisconnectedWarning() { + const disconnectedWarning = await screen.findByRole("status", { name: "disconnected-warning" }); + return disconnectedWarning; +} + +export async function endpointErrorCountWarning() { + const errorCountWarning = await screen.findByRole("status", { name: "error-count-warning" }); + return errorCountWarning; +} + +export async function endpointErrorCount() { + const errorCountWarning = await screen.findByRole("status", { name: "error-count-warning" }); + const errorCount = await within(errorCountWarning).findByLabelText("error-count"); + return errorCount.textContent; +} diff --git a/frontend/test/specs/monitoring/questions/endpointsNames.ts b/frontend/test/specs/monitoring/questions/endpointsNames.ts new file mode 100644 index 0000000000..8bbdc955ef --- /dev/null +++ b/frontend/test/specs/monitoring/questions/endpointsNames.ts @@ -0,0 +1,7 @@ +import { screen, within } from "@testing-library/vue"; + +export async function endpointsNames() { + const endpointList = await screen.findByRole("table", { name: "endpoint-list" }); + const endpoints = within(endpointList).queryAllByRole("link", { name: /details-link/i }); + return endpoints.map((item) => item.textContent); +} diff --git a/frontend/test/specs/monitoring/questions/groupingOptionWithName.ts b/frontend/test/specs/monitoring/questions/groupingOptionWithName.ts new file mode 100644 index 0000000000..38166d41a1 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/groupingOptionWithName.ts @@ -0,0 +1,5 @@ +import { screen } from "@testing-library/vue"; + +export async function groupingOptionWithName(optionText: RegExp | string) { + return await screen.findByRole("link", { name: optionText }); +} diff --git a/frontend/test/specs/monitoring/questions/groupingOptions.ts b/frontend/test/specs/monitoring/questions/groupingOptions.ts new file mode 100644 index 0000000000..be38224861 --- /dev/null +++ b/frontend/test/specs/monitoring/questions/groupingOptions.ts @@ -0,0 +1,6 @@ +import { screen, within } from "@testing-library/vue"; + +export function groupingOptions() { + const list = screen.getByRole("list", { name: /Group by:/i }); + return within(list).getAllByRole("listitem"); +} diff --git a/frontend/test/specs/monitoring/questions/historyPeriodSelected.ts b/frontend/test/specs/monitoring/questions/historyPeriodSelected.ts new file mode 100644 index 0000000000..e3c9df69aa --- /dev/null +++ b/frontend/test/specs/monitoring/questions/historyPeriodSelected.ts @@ -0,0 +1,7 @@ +import { screen, within } from "@testing-library/vue"; + +export async function historyPeriodSelected(historyPeriod: number) { + const historyPeriodList = await screen.findByRole("list", { name: "history-period-list" }); + const historyPeriodListItem = await within(historyPeriodList).findByRole("listitem", { name: `${historyPeriod}` }); + return historyPeriodListItem.getAttribute("aria-selected"); +} diff --git a/frontend/test/specs/monitoring/questions/numberOfGroupingSegments.ts b/frontend/test/specs/monitoring/questions/numberOfGroupingSegments.ts new file mode 100644 index 0000000000..53a51ee83b --- /dev/null +++ b/frontend/test/specs/monitoring/questions/numberOfGroupingSegments.ts @@ -0,0 +1,5 @@ +import { screen } from "@testing-library/vue"; + +export async function numberOfGroupingSegments() { + return (await screen.findAllByRole("link", { name: /max\..*segments/i })).length; +} diff --git a/frontend/test/specs/monitoring/questions/paginationVisible.ts b/frontend/test/specs/monitoring/questions/paginationVisible.ts new file mode 100644 index 0000000000..cd54cb784b --- /dev/null +++ b/frontend/test/specs/monitoring/questions/paginationVisible.ts @@ -0,0 +1,6 @@ +import { screen } from "@testing-library/vue"; + +export function paginationVisible() { + const pagination = screen.queryByRole("list", { name: /pagination/i }); + return pagination ? true : false; +} diff --git a/frontend/test/specs/monitoring/questions/smallGraphAverageValuesByColumn.ts b/frontend/test/specs/monitoring/questions/smallGraphAverageValuesByColumn.ts new file mode 100644 index 0000000000..4235cdc18d --- /dev/null +++ b/frontend/test/specs/monitoring/questions/smallGraphAverageValuesByColumn.ts @@ -0,0 +1,30 @@ +import { screen, within, fireEvent } from "@testing-library/vue"; + +export enum columnName { + ENDPOINTNAME = "name", + QUEUELENGTH = "queueLength", + THROUGHPUT = "throughput", + SCHEDULEDRETRIES = "retries", + PROCESSINGTIME = "processingTime", + CRITICALTIME = "criticalTime", +} +export async function smallGraphAverageValuesByColumn({ column }: { column: columnName | string }) { + const ungroupedEndpoints = screen.getByRole("rowgroup", { name: "ungrouped-endpoints" }); + const endpointRows = within(ungroupedEndpoints).getAllByRole("row"); + const averageValues: string[] = []; + + for (const row of endpointRows) { + const gridCell = within(row).getByRole("gridcell", { name: column }); + const graphImage = within(gridCell).getByRole("img", { name: column }); + // eslint-disable-next-line no-await-in-loop + await fireEvent.mouseOver(graphImage); + const averageValueElement = within(graphImage).getByRole("text", { name: "average-value" }); + + const textContent = averageValueElement.textContent; + const valueWithoutSuffix = textContent?.split(" ")[0]; + + averageValues.push(valueWithoutSuffix || ""); + } + + return averageValues; +} diff --git a/frontend/test/specs/monitoring/questions/sortDirection.ts b/frontend/test/specs/monitoring/questions/sortDirection.ts new file mode 100644 index 0000000000..de5b15e99a --- /dev/null +++ b/frontend/test/specs/monitoring/questions/sortDirection.ts @@ -0,0 +1,7 @@ +import { screen, within } from "@testing-library/vue"; + +export function findSortImageInColumn(columnName: string, direction: "up" | "down") { + const columnButton = screen.getByRole("columnheader", { name: columnName }); + const imageRole = direction === "up" ? "sort-up" : "sort-down"; + return within(columnButton).queryByRole("img", { name: imageRole }); +} diff --git a/frontend/test/specs/monitoring/sorting-endpoints.spec.ts b/frontend/test/specs/monitoring/sorting-endpoints.spec.ts new file mode 100644 index 0000000000..4a636d9231 --- /dev/null +++ b/frontend/test/specs/monitoring/sorting-endpoints.spec.ts @@ -0,0 +1,491 @@ +import { expect } from "vitest"; +import { test, describe } from "../../drivers/vitest/driver"; +import { groupEndpointsBy } from "./actions/groupEndpointsBy"; +import { endpointGroupNames } from "./questions/endpointGroupNames"; +import { endpointGroup } from "./questions/endpointGroup"; +import { sortEndpointsBy } from "./actions/sortEndpointsBy"; +import { findSortImageInColumn } from "./questions/sortDirection"; +import { smallGraphAverageValuesByColumn, columnName } from "./questions/smallGraphAverageValuesByColumn"; +import * as precondition from "../../preconditions"; +import { monitoredEndpointTemplate } from "../../mocks/monitored-endpoint-template"; +import { Endpoint } from "@/resources/MonitoringEndpoint"; +import { endpointsNames } from "./questions/endpointsNames"; + +describe("FEATURE: Endpoint sorting", () => { + describe("RULE: Grouped endpoints should be able to be sorted in ascending and descending order by group name and by endpoint name inside the group", () => { + // Skipping for now, this is constantly failing randomly + // test("EXAMPLE: Endpoints inside of the groups and group names should be sorted in the same direction as the ungrouped endpoints", async ({ driver }) => { + // //Arrange + // await driver.setUp(precondition.serviceControlWithMonitoring); + // await driver.setUp( + // precondition.monitoredEndpointsNamed([ + // "Universe.Solarsystem.Earth.Endpoint5", + // "Universe.Solarsystem.Earth.Endpoint6", + // "Universe.Solarsystem.Mercury.Endpoint1", + // "Universe.Solarsystem.Mercury.Endpoint2", + // "Universe.Solarsystem.Venus.Endpoint3", + // "Universe.Solarsystem.Venus.Endpoint4", + // ]) + // ); + // + // //Act + // await driver.goTo("monitoring"); + // await groupEndpointsBy({ numberOfSegments: 3 }); + // //Assert + // expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + // expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + // expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + // expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + // + // //Act + // await groupEndpointsBy({ numberOfSegments: 0 }); + // await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); //Descending + // await groupEndpointsBy({ numberOfSegments: 3 }); + // //Assert + // expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Venus", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Earth"]); + // expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint4", "Endpoint3"]); + // expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint2", "Endpoint1"]); + // expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint6", "Endpoint5"]); + // }); + + test("EXAMPLE: Endpoints inside of the groups and group names should be sorted in descending order when clicking the endpoint name column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + ]) + ); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 3 }); + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); + + //Assert + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Venus", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Earth"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint4", "Endpoint3"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint2", "Endpoint1"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint6", "Endpoint5"]); + }); + + test("EXAMPLE: Endpoints inside of the groups and group names should be sorted in ascending order when clicking twice on the endpoint name column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp( + precondition.monitoredEndpointsNamed([ + "Universe.Solarsystem.Venus.Endpoint3", + "Universe.Solarsystem.Venus.Endpoint4", + "Universe.Solarsystem.Mercury.Endpoint1", + "Universe.Solarsystem.Mercury.Endpoint2", + "Universe.Solarsystem.Earth.Endpoint5", + "Universe.Solarsystem.Earth.Endpoint6", + ]) + ); + + //Act + await driver.goTo("monitoring"); + await groupEndpointsBy({ numberOfSegments: 3 }); + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); //Click the column title once for descending + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); //Click the column title again for ascending + + //Assert + expect(endpointGroupNames()).toEqual(["Universe.Solarsystem.Earth", "Universe.Solarsystem.Mercury", "Universe.Solarsystem.Venus"]); + expect(endpointGroup("Universe.Solarsystem.Earth").Endpoints).toEqual(["Endpoint5", "Endpoint6"]); + expect(endpointGroup("Universe.Solarsystem.Mercury").Endpoints).toEqual(["Endpoint1", "Endpoint2"]); + expect(endpointGroup("Universe.Solarsystem.Venus").Endpoints).toEqual(["Endpoint3", "Endpoint4"]); + }); + }); + + describe("RULE: Sort arrow images should only be visible on the column that is being sorted", () => { + test("EXAMPLE: Sort up arrow should only be visible on endpoint name column on page load", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + + //retrieve the endpoint names as a way to ensure the monitoring page finished rendering the endpoint list + await endpointsNames(); + //Assert + assertSortImageState(columnName.ENDPOINTNAME, "up"); + for (const otherColumn of Object.values(columnName).filter((col) => col !== columnName.ENDPOINTNAME)) { + assertSortImageState(otherColumn, null); // Assert that all other columns don't have sorting images + } + }); + + Object.values(columnName).forEach((column) => { + test(`EXAMPLE: Sort up and down arrow images should alternate visibility only on the column "${column.toUpperCase()}"`, async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + + //retrieve the endpoint names as a way to ensure the monitoring page finished rendering the endpoint list + await endpointsNames(); + + //Assert sorting of Endpoint name first since it sorts in ascending order by default, while all the other columns sort in descending order by default + assertSortImageState(columnName.ENDPOINTNAME, "up"); + + await sortEndpointsBy({ column }); // Click the column title being tested once for descending + assertSortImageState(column, "down"); + + for (const otherColumn of Object.values(columnName).filter((col) => col !== column)) { + assertSortImageState(otherColumn, null); // Assert that all other columns don't have sorting images + } + + await sortEndpointsBy({ column }); // Click the column title once for ascending + assertSortImageState(column, "up"); + + for (const otherColumn of Object.values(columnName).filter((col) => col !== column)) { + assertSortImageState(otherColumn, null); // Assert that all other columns don't have sorting images + } + }); + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on endpoint name", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking name on the Endpoint name column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); // Act: Click the column title once for descending + assertSortImageState(columnName.ENDPOINTNAME, "down"); + + //Assert + for (const otherColumn of Object.values(columnName).filter((col) => col !== columnName.ENDPOINTNAME)) { + assertSortImageState(otherColumn, null); // Assert that all other columns don't have sorting images + } + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking name on the Endpoint name column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + await driver.setUp(precondition.monitoredEndpointsNamed(["Universe.Solarsystem.Earth.Endpoint1", "Universe.Solarsystem.Earth.Endpoint2", "Universe.Solarsystem.Earth.Endpoint3"])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.ENDPOINTNAME }); // Act: Click the column title once for ascending + assertSortImageState(columnName.ENDPOINTNAME, "up"); + + //Assert + for (const otherColumn of Object.values(columnName).filter((col) => col !== columnName.ENDPOINTNAME)) { + assertSortImageState(otherColumn, null); // Assert that all other columns don't have sorting images + } + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on average queue length", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking the queue length column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.queueLength.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.queueLength.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.queueLength.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.QUEUELENGTH }); // Act: Click the column title once for descending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint2", "Endpoint1", "Endpoint3"]); + const avgValues = await smallGraphAverageValuesByColumn({ column: columnName.QUEUELENGTH }); + expect(avgValues).toEqual(["4.1", "2.1", "1.1"]); + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking the queue length column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.queueLength.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.queueLength.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.queueLength.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.QUEUELENGTH }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.QUEUELENGTH }); // Act: Click the column title once for ascending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint3", "Endpoint1", "Endpoint2"]); + const ascendingAvgValues = await smallGraphAverageValuesByColumn({ column: columnName.QUEUELENGTH }); + expect(ascendingAvgValues).toEqual(["1.1", "2.1", "4.1"]); + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on average throughput per second", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking the throughput column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.throughput.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.throughput.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.throughput.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.THROUGHPUT }); // Act: Click the column title once for descending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint2", "Endpoint1", "Endpoint3"]); + const avgValues = await smallGraphAverageValuesByColumn({ column: columnName.THROUGHPUT }); + expect(avgValues).toEqual(["4.1", "2.1", "1.1"]); + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking the throughput column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.throughput.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.throughput.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.throughput.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.THROUGHPUT }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.THROUGHPUT }); // Act: Click the column title once for ascending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint3", "Endpoint1", "Endpoint2"]); + const ascendingAvgValues = await smallGraphAverageValuesByColumn({ column: columnName.THROUGHPUT }); + expect(ascendingAvgValues).toEqual(["1.1", "2.1", "4.1"]); + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on average scheduled retries per second", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking the scheduled retries column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.retries.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.retries.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.retries.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.SCHEDULEDRETRIES }); // Act: Click the column title once for descending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint2", "Endpoint1", "Endpoint3"]); + const avgValues = await smallGraphAverageValuesByColumn({ column: columnName.SCHEDULEDRETRIES }); + expect(avgValues).toEqual(["4.1", "2.1", "1.1"]); + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking the scheduled retries column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.retries.average = 2.1; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.retries.average = 4.1; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.retries.average = 1.1; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.SCHEDULEDRETRIES }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.SCHEDULEDRETRIES }); // Act: Click the column title once for ascending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint3", "Endpoint1", "Endpoint2"]); + const ascendingAvgValues = await smallGraphAverageValuesByColumn({ column: columnName.SCHEDULEDRETRIES }); + expect(ascendingAvgValues).toEqual(["1.1", "2.1", "4.1"]); + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on average processing time", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking the scheduled retries column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.processingTime.average = 350; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.processingTime.average = 800; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.processingTime.average = 225; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.PROCESSINGTIME }); // Act: Click the column title once for descending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint2", "Endpoint1", "Endpoint3"]); + const avgValues = await smallGraphAverageValuesByColumn({ column: columnName.PROCESSINGTIME }); + expect(avgValues).toEqual(["800", "350", "225"]); + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking the scheduled retries column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1: Endpoint = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.processingTime.average = 350; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.processingTime.average = 800; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.processingTime.average = 225; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.PROCESSINGTIME }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.PROCESSINGTIME }); // Act: Click the column title once for ascending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint3", "Endpoint1", "Endpoint2"]); + const ascendingAvgValues = await smallGraphAverageValuesByColumn({ column: columnName.PROCESSINGTIME }); + expect(ascendingAvgValues).toEqual(["225", "350", "800"]); + }); + }); + + describe("RULE: Ungrouped endpoints should be able to be sorted in ascending and descending order based on average critical time", () => { + test("EXAMPLE: Endpoints are sorted in descending order by clicking the scheduled retries column title", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.criticalTime.average = 350; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.criticalTime.average = 800; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.criticalTime.average = 225; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.CRITICALTIME }); // Act: Click the column title once for descending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint2", "Endpoint1", "Endpoint3"]); + const avgValues = await smallGraphAverageValuesByColumn({ column: columnName.CRITICALTIME }); + expect(avgValues).toEqual(["800", "350", "225"]); + }); + test("EXAMPLE: Endpoints are sorted in ascending order by clicking the scheduled retries column title twice", async ({ driver }) => { + //Arrange + await driver.setUp(precondition.serviceControlWithMonitoring); + const endpoint1 = structuredClone(monitoredEndpointTemplate); + endpoint1.name = "Endpoint1"; + endpoint1.metrics.criticalTime.average = 350; + + const endpoint2 = structuredClone(monitoredEndpointTemplate); + endpoint2.name = "Endpoint2"; + endpoint2.metrics.criticalTime.average = 800; + + const endpoint3 = structuredClone(monitoredEndpointTemplate); + endpoint3.name = "Endpoint3"; + endpoint3.metrics.criticalTime.average = 225; + + await driver.setUp(precondition.hasMonitoredEndpointsList([endpoint1, endpoint2, endpoint3])); + + //Act + await driver.goTo("monitoring"); + await sortEndpointsBy({ column: columnName.CRITICALTIME }); // Act: Click the column title once for descending + await sortEndpointsBy({ column: columnName.CRITICALTIME }); // Act: Click the column title once for ascending + + //Assert + expect(await endpointsNames()).toEqual(["Endpoint3", "Endpoint1", "Endpoint2"]); + const ascendingAvgValues = await smallGraphAverageValuesByColumn({ column: columnName.CRITICALTIME }); + expect(ascendingAvgValues).toEqual(["225", "350", "800"]); + }); + }); +}); + +function assertSortImageState(column: string, direction: "up" | "down" | null) { + if (direction === null) { + expect(findSortImageInColumn(column, "up")).toBeNull(); + expect(findSortImageInColumn(column, "down")).toBeNull(); + } else if (direction === "up") { + expect(findSortImageInColumn(column, "up")).toBeInTheDocument(); + expect(findSortImageInColumn(column, "down")).toBeNull(); + } else { + expect(findSortImageInColumn(column, "up")).toBeNull(); + expect(findSortImageInColumn(column, "down")).toBeInTheDocument(); + } +} diff --git a/frontend/test/utils.ts b/frontend/test/utils.ts new file mode 100644 index 0000000000..6d8b987d8c --- /dev/null +++ b/frontend/test/utils.ts @@ -0,0 +1,28 @@ +import { makeMockEndpoint, makeMockEndpointDynamic } from "./mock-endpoint"; +import userEvent from "@testing-library/user-event"; + +import { mockServer } from "./mock-server"; +import { Driver } from "./driver"; + +export { render, screen, within } from "@testing-library/vue"; +export { expect, test, describe } from "vitest"; +export { userEvent }; + +export const mockEndpoint = makeMockEndpoint({ mockServer }); +export const mockEndpointDynamic = makeMockEndpointDynamic({ mockServer }); + +export function makeDriverForTests(): Driver { + return { + goTo() { + throw new Error("Not implemented"); + }, + mockEndpoint, + mockEndpointDynamic, + setUp(factory) { + return factory({ driver: this }); + }, + disposeApp() { + throw new Error("Not implemented"); + }, + }; +} diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json new file mode 100644 index 0000000000..551cc8deb8 --- /dev/null +++ b/frontend/tsconfig.app.json @@ -0,0 +1,22 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "include": ["env.d.ts", "src/**/*.js", "src/**/*.ts", "src/**/*.vue", "./test/**/*.ts"], + "exclude": ["node_modules", "dist"], + "compilerOptions": { + "composite": true, + "allowJs": false, + "alwaysStrict": true, + "isolatedModules": true, + "verbatimModuleSyntax": false, + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"], + "@component-test-utils": ["./test/utils.ts"] + }, + "noUncheckedIndexedAccess": false, + "strict": true, + "sourceMap": true, + "lib": ["ES2022", "DOM", "DOM.Iterable"], + "types": ["vitest/jsdom"] + } +} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json new file mode 100644 index 0000000000..66b5e5703e --- /dev/null +++ b/frontend/tsconfig.json @@ -0,0 +1,11 @@ +{ + "files": [], + "references": [ + { + "path": "./tsconfig.node.json" + }, + { + "path": "./tsconfig.app.json" + } + ] +} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json new file mode 100644 index 0000000000..923413ec04 --- /dev/null +++ b/frontend/tsconfig.node.json @@ -0,0 +1,12 @@ +{ + "extends": "@tsconfig/node18/tsconfig.json", + "exclude": ["node_modules", "dist"], + "include": ["vite.config.*", "vitest.config.*"], + "compilerOptions": { + "composite": true, + "noEmit": true, + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"] + } +} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts new file mode 100644 index 0000000000..7a95e5b270 --- /dev/null +++ b/frontend/vite.config.ts @@ -0,0 +1,79 @@ +import { fileURLToPath, URL } from "node:url"; +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import path from "path"; +import checker from "vite-plugin-checker"; +import vueDevTools from "vite-plugin-vue-devtools"; + +function createCSPOverrides(hostPort: number, configuredDestinations: string[]) { + const destinations = configuredDestinations.join(" "); + + return ( + "default-src 'self';" + + `connect-src ws://localhost:${hostPort} https://platformupdate.particular.net ${destinations} 'self';` + + "font-src 'self' https://fonts.gstatic.com/ data:;" + + `img-src data: 'self';` + + `script-src eval: inline: https://platformupdate.particular.net ${destinations} 'self' 'unsafe-eval' 'unsafe-inline';` + + `style-src inline: 'self' 'unsafe-inline';` + + "worker-src 'self';" + + "block-all-mixed-content;" + + "sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads;" + ); +} + +const port = 5173; +const defaultUrls = [ + "http://10.211.55.3:*", // The default Parallels url to access Windows VM + "http://localhost:*", +]; + +// https://vitejs.dev/config/ +export default defineConfig({ + css: { + devSourcemap: true, + }, + plugins: [ + vueDevTools(), + vue(), + checker({ overlay: { initialIsOpen: "error" }, vueTsc: { tsconfigPath: "tsconfig.app.json" }, eslint: { lintCommand: "eslint .", useFlatConfig: true } }), + { + name: "app-constants-js-cache-busting", + transformIndexHtml(html) { + const cachebuster = Math.round(new Date().getTime() / 1000); + return html.replace(/app.constants.js/, "app.constants.js?" + cachebuster); + }, + }, + ], + resolve: { + alias: [ + { + find: "@", + replacement: fileURLToPath(new URL("./src", import.meta.url)), + }, + { + find: "~bootstrap", + replacement: path.resolve(__dirname, "node_modules/bootstrap"), + }, + ], + }, + base: "./", + build: { + outDir: "../src/ServiceControl/wwwroot", + emptyOutDir: true, + sourcemap: true, + rollupOptions: { + external: ["./js/app.constants.js"], + }, + }, + server: { + headers: { + "Content-Security-Policy": createCSPOverrides(port, defaultUrls), + }, + host: true, + port: port, + fs: { + // Allow serving files from one level up to the project root + allow: [".."], + }, + }, +}); diff --git a/frontend/vitest.config.ts b/frontend/vitest.config.ts new file mode 100644 index 0000000000..2d7db9cf25 --- /dev/null +++ b/frontend/vitest.config.ts @@ -0,0 +1,32 @@ +import { defineConfig } from "vitest/config"; +import viteConfig from "./vite.config.js"; +import path from "path"; +export default defineConfig({ + ...viteConfig, + resolve: { + alias: [ + { + find: "@component-test-utils", + replacement: "/test/utils.ts", + }, + { + find: "@", + replacement: path.resolve(__dirname, "./src"), + }, + ], + }, + test: { + pool: "forks", + globals: true, + clearMocks: true, + css: true, + testTimeout: 15000, + coverage: { + exclude: [`**/__test__/**/*`, `**/.eslintrc.js`, `**/*.spec.ts`, `test/**/*`], + provider: `v8`, + reporter: ["text", "text-summary", "cobertura"], + }, + environment: `jsdom`, + setupFiles: [`./test/drivers/vitest/setup.ts`], + }, +}); diff --git a/src/ServiceControl/Hosting/Commands/RunCommand.cs b/src/ServiceControl/Hosting/Commands/RunCommand.cs index db658857de..262198c6a8 100644 --- a/src/ServiceControl/Hosting/Commands/RunCommand.cs +++ b/src/ServiceControl/Hosting/Commands/RunCommand.cs @@ -24,7 +24,11 @@ public override async Task Execute(HostArguments args, Settings settings) hostBuilder.AddServiceControlApi(); var app = hostBuilder.Build(); - app.UseServiceControl(); + app.UseServiceControl() + .UseMiddleware() + .UseDefaultFiles() + .UseStaticFiles(); + await app.RunAsync(settings.RootUrl); } } diff --git a/src/ServiceControl/Infrastructure/WebApi/AppConstantsMiddleware.cs b/src/ServiceControl/Infrastructure/WebApi/AppConstantsMiddleware.cs new file mode 100644 index 0000000000..6bbaf9abe6 --- /dev/null +++ b/src/ServiceControl/Infrastructure/WebApi/AppConstantsMiddleware.cs @@ -0,0 +1,42 @@ +namespace ServiceControl.Infrastructure.WebApi +{ + using System.Net.Mime; + using System.Text.Json; + using System.Threading.Tasks; + using Microsoft.AspNetCore.Http; + + class AppConstantsMiddleware + { + readonly RequestDelegate next; + + static AppConstantsMiddleware() => FileVersion = ServiceControlVersion.GetFileVersion(); + static readonly string FileVersion; + public AppConstantsMiddleware(RequestDelegate next) + { + this.next = next; + } + + public async Task InvokeAsync(HttpContext context) + { + if (context.Request.Path.StartsWithSegments("/js/app.constants.json")) + { + // TODO: Populate some of these settings dynamically from the config settings the user has set + var constants = new + { + default_route = "/dashboard", + service_control_url = "api/", + monitoring_url = "http://localhost:33633/", + showPendingRetry = true, + version = FileVersion + }; + + context.Response.ContentType = MediaTypeNames.Text.JavaScript; + var options = new JsonSerializerOptions { PropertyNamingPolicy = null }; + await context.Response.WriteAsync(JsonSerializer.Serialize(constants, options)); + return; + } + + await next(context); + } + } +} diff --git a/src/ServiceControl/WebApplicationExtensions.cs b/src/ServiceControl/WebApplicationExtensions.cs index dfa7511613..a6b476751b 100644 --- a/src/ServiceControl/WebApplicationExtensions.cs +++ b/src/ServiceControl/WebApplicationExtensions.cs @@ -7,7 +7,7 @@ namespace ServiceControl; public static class WebApplicationExtensions { - public static void UseServiceControl(this WebApplication app) + public static IApplicationBuilder UseServiceControl(this WebApplication app) { app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All }); app.UseResponseCompression(); @@ -16,5 +16,7 @@ public static void UseServiceControl(this WebApplication app) app.MapHub("/api/messagestream"); app.UseCors(); app.MapControllers(); + + return app; } } \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/CodeEditor-aAfC1_1i.css b/src/ServiceControl/wwwroot/assets/CodeEditor-aAfC1_1i.css new file mode 100644 index 0000000000..5cf804b4ad --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/CodeEditor-aAfC1_1i.css @@ -0,0 +1 @@ +.wrapper[data-v-f7dae91f]{margin-top:5px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff;display:flex;flex-direction:column}.toolbar[data-v-f7dae91f]{background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:5px;margin-bottom:.5rem;display:flex;flex-direction:row;justify-content:space-between;align-items:center}.clipboard[data-v-f7dae91f]{margin-left:.5rem} diff --git a/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js b/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js new file mode 100644 index 0000000000..69bac5d295 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js @@ -0,0 +1,16 @@ +import{e as Lo,r as Ei,b0 as yd,c as Yt,w as Rr,o as bd,aZ as xd,ad as kd,b5 as vd,ap as wd,p as Un,n as ni,z as Kn,a2 as Sd,x as wl,ah as Sl,c3 as Ol,y as Od,bq as Cd,br as Ad,m as Cl,t as Al,v as Td,q as Tl,Z as Ml,U as Md}from"./index-tFZp7u44.js";let Er=[],Fh=[];(()=>{let n="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e>1;if(n=Fh[i])e=i+1;else return!0;if(e==t)return!1}}function Pl(n){return n>=127462&&n<=127487}const Dl=8205;function Dd(n,e,t=!0,i=!0){return(t?Vh:Rd)(n,e,i)}function Vh(n,e,t){if(e==n.length)return e;e&&Wh(n.charCodeAt(e))&&zh(n.charCodeAt(e-1))&&e--;let i=Zs(n,e);for(e+=Rl(i);e=0&&Pl(Zs(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Rd(n,e,t){for(;e>0;){let i=Vh(n,e-2,t);if(i=56320&&n<57344}function zh(n){return n>=55296&&n<56320}function Rl(n){return n<65536?1:2}class _{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=ci(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ye.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=ci(this,e,t);let i=[];return this.decompose(e,t,i,0),Ye.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new $i(this),r=new $i(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new $i(this,e)}iterRange(e,t=this.length){return new qh(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Hh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?_.empty:e.length<=32?new ee(e):Ye.from(ee.split(e,[]))}}class ee extends _{constructor(e,t=Ed(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new Bd(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new ee(El(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Gn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new ee(l,o.length+r.length));else{let a=l.length>>1;i.push(new ee(l.slice(0,a)),new ee(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof ee))return super.replace(e,t,i);[e,t]=ci(this,e,t);let s=Gn(this.text,Gn(i.text,El(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new ee(s,r):Ye.from(ee.split(s,[]),r)}sliceString(e,t=this.length,i=` +`){[e,t]=ci(this,e,t);let s="";for(let r=0,o=0;r<=t&&oe&&o&&(s+=i),er&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new ee(i,s)),i=[],s=-1);return s>-1&&t.push(new ee(i,s)),t}}class Ye extends _{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=ci(this,e,t),i.lines=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let c=this.children.slice();return c[s]=a,new Ye(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=` +`){[e,t]=ci(this,e,t);let s="";for(let r=0,o=0;re&&r&&(s+=i),eo&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ye))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new ee(d,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>r&&d instanceof Ye)for(let m of d.children)f(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof ee&&a&&(p=c[c.length-1])instanceof ee&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new ee(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>s&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:Ye.from(c,h)),h=-1,a=c.length=0)}for(let d of e)f(d);return u(),l.length==1?l[0]:new Ye(l,t)}}_.empty=new ee([""],0);function Ed(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Gn(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r=t&&(a>i&&(l=l.slice(0,i-s)),s0?1:(e instanceof ee?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof ee?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(s instanceof ee){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof ee?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class qh{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new $i(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class Hh{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(_.prototype[Symbol.iterator]=function(){return this.iter()},$i.prototype[Symbol.iterator]=qh.prototype[Symbol.iterator]=Hh.prototype[Symbol.iterator]=function(){return this});class Bd{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function ci(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}function ue(n,e,t=!0,i=!0){return Dd(n,e,t,i)}function Ld(n){return n>=56320&&n<57344}function Id(n){return n>=55296&&n<56320}function we(n,e){let t=n.charCodeAt(e);if(!Id(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return Ld(i)?(t-55296<<10)+(i-56320)+65536:t}function Io(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function Je(n){return n<65536?1:2}const Br=/\r\n?|\n/;var ye=(function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n})(ye||(ye={}));class nt{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-s);r+=l}else{if(i!=ye.Simple&&h>=e&&(i==ye.TrackDel&&se||i==ye.TrackBefore&&se))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i=0&&s<=t&&l>=e)return st?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new nt(e)}static create(e){return new nt(e)}}class ne extends nt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Lr(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return Ir(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length0&&kt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;ou||f<0||u>t)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?_.of(d.split(i||Br)):d:_.empty,m=p.length;if(f==u&&m==0)return;fo&&de(s,f-o,-1),de(s,u-f,m),kt(r,s,p),o=u}}return h(e),a(!l),l}static empty(e){return new ne(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;sl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==n[s+1]?n[s]+=e:s>=0&&e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function kt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,f),s=h,r=c}}}function Ir(n,e,t,i=!1){let s=[],r=i?[]:null,o=new _i(n),l=new _i(e);for(let a=-1;;){if(o.done&&l.len||l.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);de(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class _i{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?_.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?_.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class $t{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new $t(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return x.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return x.range(this.anchor,i)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return x.range(e.anchor,e.head)}static create(e,t,i){return new $t(e,t,i)}}class x{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:x.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let i=0;ie.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new x(e.ranges.map(t=>$t.fromJSON(t)),e.main)}static single(e,t=e){return new x([x.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;se?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;sr.head?x.range(a,l):x.range(l,a))}}return new x(e,t)}}function jh(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let No=0;class L{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=No++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new L(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:$o),!!e.static,e.enables)}of(e){return new Qn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Qn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Qn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function $o(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Qn{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=No++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:(((t=e[f.id])!==null&&t!==void 0?t:1)&1)==0&&c.push(e[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||Nr(f,c)){let d=i(f);if(l?!Bl(d,f.values[o],s):!s(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[r];if(p!=null){let m=hs(u,p);if(this.dependencies.every(g=>g instanceof L?u.facet(g)===f.facet(g):g instanceof re?u.field(g,!1)==f.field(g,!1):!0)||(l?Bl(d=i(f),m,s):s(d=i(f),m)))return f.values[o]=m,0}else d=i(f);return f.values[o]=d,1}}}}function Bl(n,e,t){if(n.length!=e.length)return!1;for(let i=0;in[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;ci===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(vn).find(i=>i.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>{let r=i.facet(vn),o=s.facet(vn),l;return(l=r.find(a=>a.field==this))&&l!=o.find(a=>a.field==this)?(i.values[t]=l.create(i),1):s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}}init(e){return[this,vn.of({field:this,create:e})]}get extension(){return this}}const It={lowest:4,low:3,default:2,high:1,highest:0};function Ci(n){return e=>new Uh(e,n)}const Gt={highest:Ci(It.highest),high:Ci(It.high),default:Ci(It.default),low:Ci(It.low),lowest:Ci(It.lowest)};class Uh{constructor(e,t){this.inner=e,this.prec=t}}class fi{of(e){return new $r(this,e)}reconfigure(e){return fi.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class $r{constructor(e,t){this.compartment=e,this.inner=t}}class as{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let u of $d(e,t,o))u instanceof re?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of s)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i?.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=c&&c[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,$o(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(y=>g.dynamicSlot(y)));l[p.id]=h.length<<1,h.push(g=>Nd(g,p,d))}}let f=h.map(u=>u(l));return new as(e,o,f,l,a,r)}}function $d(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof $r&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof $r){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof Uh)r(o.inner,o.prec);else if(o instanceof re)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Qn)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,It.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,It.default),i.reduce((o,l)=>o.concat(l))}function Fi(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function hs(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const Kh=L.define(),Fr=L.define({combine:n=>n.some(e=>e),static:!0}),Gh=L.define({combine:n=>n.length?n[0]:void 0,static:!0}),Qh=L.define(),Xh=L.define(),Yh=L.define(),Jh=L.define({combine:n=>n.length?n[0]:!1});class mt{constructor(e,t){this.type=e,this.value=t}static define(){return new Fd}}class Fd{of(e){return new mt(this,e)}}class Vd{constructor(e){this.map=e}of(e){return new F(this,e)}}class F{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new F(this.type,t)}is(e){return this.type==e}static define(e={}){return new Vd(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}F.reconfigure=F.define();F.appendConfig=F.define();class se{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&jh(i,t.newLength),r.some(l=>l.type==se.time)||(this.annotations=r.concat(se.time.of(Date.now())))}static create(e,t,i,s,r,o){return new se(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(se.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}se.time=mt.define();se.userEvent=mt.define();se.addToHistory=mt.define();se.remote=mt.define();function Wd(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i=n[i]))r=n[i++],o=n[i++];else if(s=0;s--){let r=i[s](n);r instanceof se?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof se?n=r[0]:n=ec(e,si(r),!1)}return n}function qd(n){let e=n.startState,t=e.facet(Yh),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=Zh(i,Vr(e,r,n.changes.newLength),!0))}return i==n?n:se.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const Hd=[];function si(n){return n==null?Hd:Array.isArray(n)?n:[n]}var J=(function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n})(J||(J={}));const _d=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Wr;try{Wr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function jd(n){if(Wr)return Wr.test(n);for(let e=0;e"€"&&(t.toUpperCase()!=t.toLowerCase()||_d.test(t)))return!0}return!1}function Ud(n){return e=>{if(!/\S/.test(e))return J.Space;if(jd(e))return J.Word;for(let t=0;t-1)return J.Word;return J.Other}}class z{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ls.set(h,a)),t=null),s.set(l.value.compartment,l.value.extension)):l.is(F.reconfigure)?(t=null,i=l.value):l.is(F.appendConfig)&&(t=null,i=si(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=as.resolve(i,s,this),r=new z(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(Fr)?e.newSelection:e.newSelection.asSingle();new z(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:x.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=si(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return z.create({doc:e.doc,selection:x.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=as.resolve(e.extensions||[],new Map),i=e.doc instanceof _?e.doc:_.of((e.doc||"").split(t.staticFacet(z.lineSeparator)||Br)),s=e.selection?e.selection instanceof x?e.selection:x.single(e.selection.anchor,e.selection.head):x.single(0);return jh(s,i.length),t.staticFacet(Fr)||(s=s.asSingle()),new z(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(z.tabSize)}get lineBreak(){return this.facet(z.lineSeparator)||` +`}get readOnly(){return this.facet(Jh)}phrase(e,...t){for(let i of this.facet(z.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(i,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let s=[];for(let r of this.facet(Kh))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){return Ud(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let a=ue(t,o,!1);if(r(t.slice(a,o))!=J.Word)break;o=a}for(;ln.length?n[0]:4});z.lineSeparator=Gh;z.readOnly=Jh;z.phrases=L.define({compare(n,e){let t=Object.keys(n),i=Object.keys(e);return t.length==i.length&&t.every(s=>n[s]==e[s])}});z.languageData=Kh;z.changeFilter=Qh;z.transactionFilter=Xh;z.transactionExtender=Yh;fi.reconfigure=F.define();function He(n,e,t={}){let i={};for(let s of n)for(let r of Object.keys(s)){let o=s[r],l=i[r];if(l===void 0)i[r]=o;else if(!(l===o||o===void 0))if(Object.hasOwnProperty.call(t,r))i[r]=t[r](l,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)i[s]===void 0&&(i[s]=e[s]);return i}class qt{eq(e){return this==e}range(e,t=e){return zr.create(e,t,this)}}qt.prototype.startSide=qt.prototype.endSide=0;qt.prototype.point=!1;qt.prototype.mapMode=ye.TrackDel;let zr=class tc{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new tc(e,t,i)}};function qr(n,e){return n.from-e.from||n.value.startSide-e.value.startSide}class Fo{constructor(e,t,i,s){this.from=e,this.to=t,this.value=i,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,s=0){let r=i?this.to:this.from;for(let o=s,l=r.length;;){if(o==l)return o;let a=o+l>>1,h=r[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return h>=0?o:l;h>=0?l=a:o=a+1}}between(e,t,i,s){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rd||u==d&&h.startSide>0&&h.endSide<=0)continue;(d-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(l=Math.max(l,d-u)),i.push(h),s.push(u-o),r.push(d-o))}return{mapped:i.length?new Fo(s,r,i,l):null,pos:o}}}class H{constructor(e,t,i,s){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=s}static create(e,t,i,s){return new H(e,t,i,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(qr)),this.isEmpty)return t.length?H.of(t):this;let l=new ic(this,null,-1).goto(0),a=0,h=[],c=new ut;for(;l.value||a=0){let f=t[a++];c.addInner(f.from,f.to,f.value)||h.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||rl.to||r=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return ji.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ji.from(e).goto(t)}static compare(e,t,i,s,r=-1){let o=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=r),a=Ll(o,l,i),h=new Ai(o,a,r),c=new Ai(l,a,r);i.iterGaps((f,u,d)=>Il(h,f,c,u,d,s)),i.empty&&i.length==0&&Il(h,0,c,0,0,s)}static eq(e,t,i=0,s){s==null&&(s=999999999);let r=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0),o=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let l=Ll(r,o),a=new Ai(r,l,0).goto(i),h=new Ai(o,l,0).goto(i);for(;;){if(a.to!=h.to||!Hr(a.active,h.active)||a.point&&(!h.point||!a.point.eq(h.point)))return!1;if(a.to>s)return!0;a.next(),h.next()}}static spans(e,t,i,s,r=-1){let o=new Ai(e,null,r).goto(t),l=t,a=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let c=o.activeForPoint(o.to),f=o.pointFroml&&(s.span(l,h,o.active,a),a=o.openEnd(h));if(o.to>i)return a+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(e,t=!1){let i=new ut;for(let s of e instanceof zr?[e]:t?Kd(e):e)i.add(s.from,s.to,s.value);return i.finish()}static join(e){if(!e.length)return H.empty;let t=e[e.length-1];for(let i=e.length-2;i>=0;i--)for(let s=e[i];s!=H.empty;s=s.nextLayer)t=new H(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}H.empty=new H([],[],null,-1);function Kd(n){if(n.length>1)for(let e=n[0],t=1;t0)return n.slice().sort(qr);e=i}return n}H.empty.nextLayer=H.empty;class ut{finishChunk(e){this.chunks.push(new Fo(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new ut)).add(e,t,i)}addInner(e,t,i){let s=e-this.lastTo||i.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(H.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=H.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ll(n,e,t){let i=new Map;for(let r of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&s.push(new ic(o,t,i,r));return s.length==1?s[0]:new ji(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)er(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)er(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),er(this.heap,0)}}}function er(n,e){for(let t=n[e];;){let i=(e<<1)+1;if(i>=n.length)break;let s=n[i];if(i+1=0&&(s=n[i+1],i++),t.compare(s)<0)break;n[i]=t,n[e]=s,e=i}}class Ai{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ji.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){wn(this.active,e),wn(this.activeTo,e),wn(this.activeRank,e),this.minActive=Nl(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:s,rank:r}=this.cursor;for(;t0;)t++;Sn(this.active,t,i),Sn(this.activeTo,t,s),Sn(this.activeRank,t,r),e&&Sn(e,t,this.cursor.from),this.minActive=Nl(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let i=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),i&&wn(i,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[s]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}}function Il(n,e,t,i,s,r){n.goto(e),t.goto(i);let o=i+s,l=i,a=i-e;for(;;){let h=n.to+a-t.to,c=h||n.endSide-t.endSide,f=c<0?n.to+a:t.to,u=Math.min(f,o);if(n.point||t.point?n.point&&t.point&&(n.point==t.point||n.point.eq(t.point))&&Hr(n.activeForPoint(n.to),t.activeForPoint(t.to))||r.comparePoint(l,u,n.point,t.point):u>l&&!Hr(n.active,t.active)&&r.compareRange(l,u,n.active,t.active),f>o)break;(h||n.openEnd!=t.openEnd)&&r.boundChange&&r.boundChange(f),l=f,c<=0&&n.next(),c>=0&&t.next()}}function Hr(n,e){if(n.length!=e.length)return!1;for(let t=0;t=e;i--)n[i+1]=n[i];n[e]=t}function Nl(n,e){let t=-1,i=1e9;for(let s=0;s=e)return s;if(s==n.length)break;r+=n.charCodeAt(s)==9?t-r%t:1,s=ue(n,s)}return i===!0?-1:n.length}const jr="ͼ",$l=typeof Symbol>"u"?"__"+jr:Symbol.for(jr),Ur=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Fl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class At{constructor(e,t){this.rules=[];let{finish:i}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,l,a,h){let c=[],f=/^@(\w+)\b/.exec(o[0]),u=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))r(d.split(/,\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+d+") should be a primitive value.");r(s(d),p,c,u)}else p!=null&&c.push(d.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(c.length||u)&&a.push((i&&!f&&!h?o.map(i):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Fl[$l]||1;return Fl[$l]=e+1,jr+e.toString(36)}static mount(e,t,i){let s=e[Ur],r=i&&i.nonce;s?r&&s.setNonce(r):s=new Gd(e,r),s.mount(Array.isArray(t)?t:[t],e)}}let Vl=new Map;class Gd{constructor(e,t){let i=e.ownerDocument||e,s=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=Vl.get(i);if(r)return e[Ur]=r;this.sheet=new s.CSSStyleSheet,Vl.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Ur]=this}mount(e,t){let i=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(a,1),r--,a=-1),a==-1){if(this.modules.splice(r++,0,l),i)for(let h=0;h",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Qd=typeof navigator<"u"&&/Mac/.test(navigator.platform),Xd=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var fe=0;fe<10;fe++)Tt[48+fe]=Tt[96+fe]=String(fe);for(var fe=1;fe<=24;fe++)Tt[fe+111]="F"+fe;for(var fe=65;fe<=90;fe++)Tt[fe]=String.fromCharCode(fe+32),Ui[fe]=String.fromCharCode(fe);for(var tr in Tt)Ui.hasOwnProperty(tr)||(Ui[tr]=Tt[tr]);function Yd(n){var e=Qd&&n.metaKey&&n.shiftKey&&!n.ctrlKey&&!n.altKey||Xd&&n.shiftKey&&n.key&&n.key.length==1||n.key=="Unidentified",t=!e&&n.key||(n.shiftKey?Ui:Tt)[n.keyCode]||n.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function j(){var n=arguments[0];typeof n=="string"&&(n=document.createElement(n));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var i in t)if(Object.prototype.hasOwnProperty.call(t,i)){var s=t[i];typeof s=="string"?n.setAttribute(i,s):s!=null&&(n[i]=s)}e++}for(;e.995&&t<1.005||!isFinite(t)||Math.abs(e.width-n.offsetWidth)<1)&&(t=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.height-n.offsetHeight)<1)&&(i=1),{scaleX:t,scaleY:i}}function Zd(n,e,t,i,s,r,o,l){let a=n.ownerDocument,h=a.defaultView||window;for(let c=n,f=!1;c&&!f;)if(c.nodeType==1){let u,d=c==a.body,p=1,m=1;if(d)u=Jd(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(f=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let k=c.getBoundingClientRect();({scaleX:p,scaleY:m}=sc(c,k)),u={left:k.left,right:k.left+c.clientWidth*p,top:k.top,bottom:k.top+c.clientHeight*m}}let g=0,y=0;if(s=="nearest")e.top0&&e.bottom>u.bottom+y&&(y=e.bottom-u.bottom+o)):e.bottom>u.bottom&&(y=e.bottom-u.bottom+o,t<0&&e.top-y0&&e.right>u.right+g&&(g=e.right-u.right+r)):e.right>u.right&&(g=e.right-u.right+r,t<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),c=c.assignedSlot||c.parentNode}else if(c.nodeType==11)c=c.host;else break}function ep(n){let e=n.ownerDocument,t,i;for(let s=n.parentNode;s&&!(s==e.body||t&&i);)if(s.nodeType==1)!i&&s.scrollHeight>s.clientHeight&&(i=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:i}}class tp{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:i}=e;this.set(t,Math.min(e.anchorOffset,t?st(t):0),i,Math.min(e.focusOffset,i?st(i):0))}set(e,t,i,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=s}}let Xt=null;function rc(n){if(n.setActive)return n.setActive();if(Xt)return n.focus(Xt);let e=[];for(let t=n;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(n.focus(Xt==null?{get preventScroll(){return Xt={preventScroll:!0},!0}}:void 0),!Xt){Xt=!1;for(let t=0;tMath.max(1,n.scrollHeight-n.clientHeight-4)}function ac(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&i>0)return{node:t,offset:i};if(t.nodeType==1&&i>0){if(t.contentEditable=="false")return null;t=t.childNodes[i-1],i=st(t)}else if(t.parentNode&&!cs(t))i=Ht(t),t=t.parentNode;else return null}}function hc(n,e){for(let t=n,i=e;;){if(t.nodeType==3&&it)return f.domBoundsAround(e,t,h);if(u>=e&&s==-1&&(s=a,r=h),h>t&&f.dom.parentNode==this.dom){o=a,l=c;break}c=u,h=u+f.breakAfter}return{from:r,to:l<0?i+this.length:l,startDOM:(s?this.children[s-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=Vo){this.markDirty();for(let s=e;sthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}}function fc(n,e,t,i,s,r,o,l,a){let{children:h}=n,c=h.length?h[e]:null,f=r.length?r[r.length-1]:null,u=f?f.breakAfter:o;if(!(e==i&&c&&!o&&!u&&r.length<2&&c.merge(t,s,r.length?f:null,t==0,l,a))){if(i0&&(!o&&r.length&&c.merge(t,c.length,r[0],!1,l,0)?c.breakAfter=r.shift().breakAfter:(t2);var B={mac:_l||/Mac/.test(Se.platform),windows:/Win/.test(Se.platform),linux:/Linux|X11/.test(Se.platform),ie:Es,ie_version:dc?Gr.documentMode||6:Xr?+Xr[1]:Qr?+Qr[1]:0,gecko:Hl,gecko_version:Hl?+(/Firefox\/(\d+)/.exec(Se.userAgent)||[0,0])[1]:0,chrome:!!ir,chrome_version:ir?+ir[1]:0,ios:_l,android:/Android\b/.test(Se.userAgent),safari:pc,webkit_version:sp?+(/\bAppleWebKit\/(\d+)/.exec(Se.userAgent)||[0,0])[1]:0,tabSize:Gr.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};const rp=256;class ze extends K{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return this.flags&8||i&&(!(i instanceof ze)||this.length-(t-e)+i.length>rp||i.flags&8)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new ze(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new pe(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return op(this.dom,e,t)}}class dt extends K{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let s of t)s.setParent(this)}setAttrs(e){if(oc(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,s,r,o){return i&&(!(i instanceof dt&&i.mark.eq(this.mark))||e&&r<=0||te&&t.push(i=e&&(s=r),i=a,r++}let o=this.length-e;return this.length=e,s>-1&&(this.children.length=s,this.markDirty()),new dt(this.mark,t,o)}domAtPos(e){return mc(this,e)}coordsAt(e,t){return yc(this,e,t)}}function op(n,e,t){let i=n.nodeValue.length;e>i&&(e=i);let s=e,r=e,o=0;e==0&&t<0||e==i&&t>=0?B.chrome||B.gecko||(e?(s--,o=1):r=0)?0:l.length-1];return B.safari&&!o&&a.width==0&&(a=Array.prototype.find.call(l,h=>h.width)||a),o?hn(a,o<0):a||null}class vt extends K{static create(e,t,i){return new vt(e,t,i)}constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}split(e){let t=vt.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,i,s,r,o){return i&&(!(i instanceof vt)||!this.widget.compare(i.widget)||e>0&&r<=0||t0)?pe.before(this.dom):pe.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;let s=this.dom.getClientRects(),r=null;if(!s.length)return null;let o=this.side?this.side<0:e>0;for(let l=o?s.length-1:0;r=s[l],!(e>0?l==0:l==s.length-1||r.top0?pe.before(this.dom):pe.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return _.empty}get isHidden(){return!0}}ze.prototype.children=vt.prototype.children=di.prototype.children=Vo;function mc(n,e){let t=n.dom,{children:i}=n,s=0;for(let r=0;sr&&e0;r--){let o=i[r-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let r=s;r0&&e instanceof dt&&s.length&&(i=s[s.length-1])instanceof dt&&i.mark.eq(e.mark)?gc(i,e.children[0],t-1):(s.push(e),e.setParent(n)),n.length+=e.length}function yc(n,e,t){let i=null,s=-1,r=null,o=-1;function l(h,c){for(let f=0,u=0;f=c&&(d.children.length?l(d,c-u):(!r||r.isHidden&&(t>0||ap(r,d)))&&(p>c||u==p&&d.getSide()>0)?(r=d,o=c-u):(u-1?1:0)!=s.length-(t&&s.indexOf(t)>-1?1:0))return!1;for(let r of i)if(r!=t&&(s.indexOf(r)==-1||n[r]!==e[r]))return!1;return!0}function Jr(n,e,t){let i=!1;if(e)for(let s in e)t&&s in t||(i=!0,s=="style"?n.style.cssText="":n.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(i=!0,s=="style"?n.style.cssText=t[s]:n.setAttribute(s,t[s]));return i}function hp(n){let e=Object.create(null);for(let t=0;t0?3e8:-4e8:t>0?1e8:-1e8,new Mt(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,s;if(e.isBlockGap)i=-5e8,s=4e8;else{let{start:r,end:o}=bc(e,t);i=(r?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new Mt(e,i,s,t,e.widget||null,!0)}static line(e){return new fn(e)}static set(e,t=!1){return H.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}N.none=H.empty;class cn extends N{constructor(e){let{start:t,end:i}=bc(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,i;return this==e||e instanceof cn&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((i=e.attrs)===null||i===void 0?void 0:i.class))&&fs(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}cn.prototype.point=!1;class fn extends N{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof fn&&this.spec.class==e.spec.class&&fs(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}fn.prototype.mapMode=ye.TrackBefore;fn.prototype.point=!0;class Mt extends N{constructor(e,t,i,s,r,o){super(t,i,r,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?ye.TrackBefore:ye.TrackAfter:ye.TrackDel}get type(){return this.startSide!=this.endSide?xe.WidgetRange:this.startSide<=0?xe.WidgetBefore:xe.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Mt&&cp(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}Mt.prototype.point=!0;function bc(n,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=n;return t==null&&(t=n.inclusive),i==null&&(i=n.inclusive),{start:t??e,end:i??e}}function cp(n,e){return n==e||!!(n&&e&&n.compare(e))}function Yn(n,e,t,i=0){let s=t.length-1;s>=0&&t[s]+i>=n?t[s]=Math.max(t[s],e):t.push(n,e)}class te extends K{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,s,r,o){if(i){if(!(i instanceof te))return!1;this.dom||i.transferDOM(this)}return s&&this.setDeco(i?i.attrs:null),uc(this,e,t,i?i.children.slice():[],r,o),!0}split(e){let t=new te;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i,off:s}=this.childPos(e);s&&(t.append(this.children[i].split(s),0),this.children[i].merge(s,this.children[i].length,null,!1,0,0),i++);for(let r=i;r0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){fs(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){gc(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Yr(t,this.attrs||{})),i&&(this.attrs=Yr({class:i},this.attrs||{}))}domAtPos(e){return mc(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var i;this.dom?this.flags&4&&(oc(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Jr(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let s=this.dom.lastChild;for(;s&&K.get(s)instanceof dt;)s=s.lastChild;if(!s||!this.length||s.nodeName!="BR"&&((i=K.get(s))===null||i===void 0?void 0:i.isEditable)==!1&&(!B.ios||!this.children.some(r=>r instanceof ze))){let r=document.createElement("BR");r.cmIgnore=!0,this.dom.appendChild(r)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let i of this.children){if(!(i instanceof ze)||/[^ -~]/.test(i.text))return null;let s=ui(i.dom);if(s.length!=1)return null;e+=s[0].width,t=s[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let i=yc(this,e,t);if(!this.children.length&&i&&this.parent){let{heightOracle:s}=this.parent.view.viewState,r=i.bottom-i.top;if(Math.abs(r-s.lineHeight)<2&&s.textHeight=t){if(r instanceof te)return r;if(o>t)break}s=o+r.breakAfter}return null}}class ft extends K{constructor(e,t,i){super(),this.widget=e,this.length=t,this.deco=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,s,r,o){return i&&(!(i instanceof ft)||!this.widget.compare(i.widget)||e>0&&r<=0||t0}}class Zr extends gt{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class Wi{constructor(e,t,i,s){this.doc=e,this.pos=t,this.end=i,this.disallowBlockEffectsFor=s,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof ft&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new te),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(On(new di(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,!this.posCovered()&&!(e&&this.content.length&&this.content[this.content.length-1]instanceof ft)&&this.getLine()}buildText(e,t,i){for(;e>0;){if(this.textOff==this.text.length){let{value:r,lineBreak:o,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=r,this.textOff=0}let s=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(On(new ze(this.text.slice(this.textOff,this.textOff+s)),t),i),this.atCursorPos=!0,this.textOff+=s,e-=s,i=0}}span(e,t,i,s){this.buildText(t-e,i,s),this.pos=t,this.openStart<0&&(this.openStart=s)}point(e,t,i,s,r,o){if(this.disallowBlockEffectsFor[o]&&i instanceof Mt){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(i instanceof Mt)if(i.block)i.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ft(i.widget||pi.block,l,i));else{let a=vt.create(i.widget||pi.inline,l,l?0:i.startSide),h=this.atCursorPos&&!a.isEditable&&r<=s.length&&(e0),c=!a.isEditable&&(es.length||i.startSide<=0),f=this.getLine();this.pendingBuffer==2&&!h&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(s),h&&(f.append(On(new di(1),s),r),r=s.length+Math.max(0,r-s.length)),f.append(On(a,s),r),this.atCursorPos=c,this.pendingBuffer=c?es.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=s.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=r)}static build(e,t,i,s,r){let o=new Wi(e,t,i,r);return o.openEnd=H.spans(s,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}}function On(n,e){for(let t of e)n=new dt(t,[n],n.length);return n}class pi extends gt{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}pi.inline=new pi("span");pi.block=new pi("div");var X=(function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n})(X||(X={}));const jt=X.LTR,Wo=X.RTL;function xc(n){let e=[];for(let t=0;t=t){if(l.level==i)return o;(r<0||(s!=0?s<0?l.fromt:e[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function vc(n,e){if(n.length!=e.length)return!1;for(let t=0;t=0;m-=3)if(Ke[m+1]==-d){let g=Ke[m+2],y=g&2?s:g&4?g&1?r:s:0;y&&(U[f]=U[Ke[m]]=y),l=m;break}}else{if(Ke.length==189)break;Ke[l++]=f,Ke[l++]=u,Ke[l++]=a}else if((p=U[f])==2||p==1){let m=p==s;a=m?0:1;for(let g=l-3;g>=0;g-=3){let y=Ke[g+2];if(y&2)break;if(m)Ke[g+2]|=2;else{if(y&4)break;Ke[g+2]|=4}}}}}function gp(n,e,t,i){for(let s=0,r=i;s<=t.length;s++){let o=s?t[s-1].to:n,l=sa;)p==g&&(p=t[--m].from,g=m?t[m-1].to:n),U[--p]=d;a=c}else r=h,a++}}}function to(n,e,t,i,s,r,o){let l=i%2?2:1;if(i%2==s%2)for(let a=e,h=0;aa&&o.push(new wt(a,m.from,d));let g=m.direction==jt!=!(d%2);io(n,g?i+1:i,s,m.inner,m.from,m.to,o),a=m.to}p=m.to}else{if(p==t||(c?U[p]!=l:U[p]==l))break;p++}u?to(n,a,p,i+1,s,u,o):ae;){let c=!0,f=!1;if(!h||a>r[h-1].to){let m=U[a-1];m!=l&&(c=!1,f=m==16)}let u=!c&&l==1?[]:null,d=c?i:i+1,p=a;e:for(;;)if(h&&p==r[h-1].to){if(f)break e;let m=r[--h];if(!c)for(let g=m.from,y=h;;){if(g==e)break e;if(y&&r[y-1].to==g)g=r[--y].from;else{if(U[g-1]==l)break e;break}}if(u)u.push(m);else{m.toU.length;)U[U.length]=256;let i=[],s=e==jt?0:1;return io(n,s,s,t,0,n.length,i),i}function wc(n){return[new wt(0,n,0)]}let Sc="";function bp(n,e,t,i,s){var r;let o=i.head-n.from,l=wt.find(e,o,(r=i.bidiLevel)!==null&&r!==void 0?r:-1,i.assoc),a=e[l],h=a.side(s,t);if(o==h){let u=l+=s?1:-1;if(u<0||u>=e.length)return null;a=e[l=u],o=a.side(!s,t),h=a.side(s,t)}let c=ue(n.text,o,a.forward(s,t));(ca.to)&&(c=h),Sc=n.text.slice(Math.min(o,c),Math.max(o,c));let f=l==(s?e.length-1:0)?null:e[l+(s?1:-1)];return f&&c==h&&f.level+(s?0:1)n.some(e=>e)}),Rc=L.define({combine:n=>n.some(e=>e)}),Ec=L.define();class oi{constructor(e,t="nearest",i="nearest",s=5,r=5,o=!1){this.range=e,this.y=t,this.x=i,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new oi(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new oi(x.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Cn=F.define({map:(n,e)=>n.map(e)}),Bc=F.define();function be(n,e,t){let i=n.facet(Tc);i.length?i[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const ct=L.define({combine:n=>n.length?n[0]:!0});let kp=0;const ei=L.define({combine(n){return n.filter((e,t)=>{for(let i=0;i{let a=[];return o&&a.push(Gi.of(h=>{let c=h.plugin(l);return c?o(c):N.none})),r&&a.push(r(l)),a})}static fromClass(e,t){return Z.define((i,s)=>new e(i,s),t)}}class nr{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(be(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){be(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){be(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Lc=L.define(),Ho=L.define(),Gi=L.define(),Ic=L.define(),_o=L.define(),Nc=L.define();function Ul(n,e){let t=n.state.facet(Nc);if(!t.length)return t;let i=t.map(r=>r instanceof Function?r(n):r),s=[];return H.spans(i,e.from,e.to,{point(){},span(r,o,l,a){let h=r-e.from,c=o-e.from,f=s;for(let u=l.length-1;u>=0;u--,a--){let d=l[u].spec.bidiIsolate,p;if(d==null&&(d=xp(e.text,h,c)),a>0&&f.length&&(p=f[f.length-1]).to==h&&p.direction==d)p.to=c,f=p.inner;else{let m={from:h,to:c,direction:d,inner:[]};f.push(m),f=m.inner}}}}),s}const $c=L.define();function jo(n){let e=0,t=0,i=0,s=0;for(let r of n.state.facet($c)){let o=r(n);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(i=Math.max(i,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:i,bottom:s}}const Bi=L.define();class $e{constructor(e,t,i,s){this.fromA=e,this.toA=t,this.fromB=i,this.toB=s}join(e){return new $e(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>i.toA)){if(s.toAc)break;r+=2}if(!a)return i;new $e(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),o=a.toA,l=a.toB}}}class us{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=ne.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let s=[];this.changes.iterChangedRanges((r,o,l,a)=>s.push(new $e(r,o,l,a))),this.changedRanges=s}static create(e,t,i){return new us(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}class Kl extends K{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=N.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new te],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new $e(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let i=e.changedRanges;this.minWidth>0&&i.length&&(i.every(({fromA:h,toA:c})=>cthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!Tp(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?wp(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:h,to:c}=this.hasComposition;i=new $e(h,c,e.changes.mapPos(h,-1),e.changes.mapPos(c,1)).addToSet(i.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(B.ie||B.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,l=this.updateDeco(),a=Cp(o,l,e.changes);return i=$e.extendWithRanges(i,a),!(this.flags&7)&&i.length==0?!1:(this.updateInner(i,e.startState.doc.length,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,i){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,i);let{observer:s}=this.view;s.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let o=B.chrome||B.ios?{node:s.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,o),this.flags&=-8,o&&(o.written||s.selectionRange.focusNode!=o.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(o=>o.flags&=-9);let r=[];if(this.view.viewport.from||this.view.viewport.to=0?s[o]:null;if(!l)break;let{fromA:a,toA:h,fromB:c,toB:f}=l,u,d,p,m;if(i&&i.range.fromBc){let w=Wi.build(this.view.state.doc,c,i.range.fromB,this.decorations,this.dynamicDecorationMap),v=Wi.build(this.view.state.doc,i.range.toB,f,this.decorations,this.dynamicDecorationMap);d=w.breakAtStart,p=w.openStart,m=v.openEnd;let A=this.compositionView(i);v.breakAtStart?A.breakAfter=1:v.content.length&&A.merge(A.length,A.length,v.content[0],!1,v.openStart,0)&&(A.breakAfter=v.content[0].breakAfter,v.content.shift()),w.content.length&&A.merge(0,0,w.content[w.content.length-1],!0,0,w.openEnd)&&w.content.pop(),u=w.content.concat(A).concat(v.content)}else({content:u,breakAtStart:d,openStart:p,openEnd:m}=Wi.build(this.view.state.doc,c,f,this.decorations,this.dynamicDecorationMap));let{i:g,off:y}=r.findPos(h,1),{i:k,off:O}=r.findPos(a,-1);fc(this,k,O,g,y,u,d,p,m)}i&&this.fixCompositionDOM(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let i of t.effects)i.is(Bc)&&(this.editContextFormatting=i.value)}compositionView(e){let t=new ze(e.text.nodeValue);t.flags|=8;for(let{deco:s}of e.marks)t=new dt(s,[t],t.length);let i=new te;return i.append(t,0),i}fixCompositionDOM(e){let t=(r,o)=>{o.flags|=8|(o.children.some(a=>a.flags&7)?1:0),this.markedForComposition.add(o);let l=K.get(r);l&&l!=o&&(l.dom=null),o.setDOM(r)},i=this.childPos(e.range.fromB,1),s=this.children[i.i];t(e.line,s);for(let r=e.marks.length-1;r>=-1;r--)i=s.childPos(i.off,1),s=s.children[i.i],t(r>=0?e.marks[r].node:e.text,s)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,s=i==this.dom,r=!s&&!(this.view.state.facet(ct)||this.dom.tabIndex>-1)&&Xn(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(s||t||r))return;let o=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(l.anchor)),h=l.empty?a:this.moveToLine(this.domAtPos(l.head));if(B.gecko&&l.empty&&!this.hasComposition&&vp(a)){let f=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(f,a.node.childNodes[a.offset]||null)),a=h=new pe(f,0),o=!0}let c=this.view.observer.selectionRange;(o||!c.focusNode||(!Vi(a.node,a.offset,c.anchorNode,c.anchorOffset)||!Vi(h.node,h.offset,c.focusNode,c.focusOffset))&&!this.suppressWidgetCursorChange(c,l))&&(this.view.observer.ignore(()=>{B.android&&B.chrome&&this.dom.contains(c.focusNode)&&Ap(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let f=Ki(this.view.root);if(f)if(l.empty){if(B.gecko){let u=Sp(a.node,a.offset);if(u&&u!=3){let d=(u==1?ac:hc)(a.node,a.offset);d&&(a=new pe(d.node,d.offset))}}f.collapse(a.node,a.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(a.node,a.offset);try{f.extend(h.node,h.offset)}catch{}}else{let u=document.createRange();l.anchor>l.head&&([a,h]=[h,a]),u.setEnd(h.node,h.offset),u.setStart(a.node,a.offset),f.removeAllRanges(),f.addRange(u)}r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,h)),this.impreciseAnchor=a.precise?null:new pe(c.anchorNode,c.anchorOffset),this.impreciseHead=h.precise?null:new pe(c.focusNode,c.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Vi(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,i=Ki(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=te.find(this,t.head);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),h=this.coordsAt(t.head,1);if(!a||!h||a.bottom>h.top)return;let c=this.domAtPos(t.head+t.assoc);i.collapse(c.node,c.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=t.from&&i.collapse(s,r)}moveToLine(e){let t=this.dom,i;if(e.node!=t)return e;for(let s=e.offset;!i&&s=0;s--){let r=K.get(t.childNodes[s]);r instanceof te&&(i=r.domAtPos(r.length))}return i?new pe(i.node,i.offset,!0):e}nearest(e){for(let t=e;t;){let i=K.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;t=0;o--){let l=this.children[o],a=r-l.breakAfter,h=a-l.length;if(ae||l.covers(1))&&(!i||l instanceof te&&!(i instanceof te&&t>=0)))i=l,s=h;else if(i&&h==e&&a==e&&l instanceof ft&&Math.abs(t)<2){if(l.deco.startSide<0)break;o&&(i=null)}r=h}return i?i.coordsAt(e-s,t):null}coordsForChar(e){let{i:t,off:i}=this.childPos(e,1),s=this.children[t];if(!(s instanceof te))return null;for(;s.children.length;){let{i:l,off:a}=s.childPos(i,1);for(;;l++){if(l==s.children.length)return null;if((s=s.children[l]).length)break}i=a}if(!(s instanceof ze))return null;let r=ue(s.text,i);if(r==i)return null;let o=_t(s.dom,i,r).getClientRects();for(let l=0;lMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==X.LTR;for(let h=0,c=0;cs)break;if(h>=i){let d=f.dom.getBoundingClientRect();if(t.push(d.height),o){let p=f.dom.lastChild,m=p?ui(p):[];if(m.length){let g=m[m.length-1],y=a?g.right-d.left:d.right-g.left;y>l&&(l=y,this.minWidth=r,this.minWidthFrom=h,this.minWidthTo=u)}}}h=u+f.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?X.RTL:X.LTR}measureTextSize(){for(let r of this.children)if(r instanceof te){let o=r.measureTextSize();if(o)return o}let e=document.createElement("div"),t,i,s;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let r=ui(e.firstChild)[0];t=e.getBoundingClientRect().height,i=r?r.width/27:7,s=r?r.height:t,e.remove()}),{lineHeight:t,charWidth:i,textHeight:s}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new cc(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,s=0;;s++){let r=s==t.viewports.length?null:t.viewports[s],o=r?r.from-1:this.length;if(o>i){let l=(t.lineBlockAt(o).bottom-t.lineBlockAt(i).top)/this.view.scaleY;e.push(N.replace({widget:new Zr(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return N.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Gi).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),i=!1,s=this.view.state.facet(Ic).map((r,o)=>{let l=typeof r=="function";return l&&(i=!0),l?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=i,t.push(H.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];et.anchor?-1:1),s;if(!i)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,s.left),top:Math.min(i.top,s.top),right:Math.max(i.right,s.right),bottom:Math.max(i.bottom,s.bottom)});let r=jo(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:l,offsetHeight:a}=this.view.scrollDOM;Zd(this.view.scrollDOM,o,t.head{ie.from&&(t=!0)}),t}function Mp(n,e,t=1){let i=n.charCategorizer(e),s=n.doc.lineAt(e),r=e-s.from;if(s.length==0)return x.cursor(e);r==0?t=1:r==s.length&&(t=-1);let o=r,l=r;t<0?o=ue(s.text,r,!1):l=ue(s.text,r);let a=i(s.text.slice(o,l));for(;o>0;){let h=ue(s.text,o,!1);if(i(s.text.slice(h,o))!=a)break;o=h}for(;ln?e.left-n:Math.max(0,n-e.right)}function Dp(n,e){return e.top>n?e.top-n:Math.max(0,n-e.bottom)}function sr(n,e){return n.tope.top+1}function Gl(n,e){return en.bottom?{top:n.top,left:n.left,right:n.right,bottom:e}:n}function so(n,e,t){let i,s,r,o,l=!1,a,h,c,f;for(let p=n.firstChild;p;p=p.nextSibling){let m=ui(p);for(let g=0;gO||o==O&&r>k)&&(i=p,s=y,r=k,o=O,l=k?e0:gy.bottom&&(!c||c.bottomy.top)&&(h=p,f=y):c&&sr(c,y)?c=Ql(c,y.bottom):f&&sr(f,y)&&(f=Gl(f,y.top))}}if(c&&c.bottom>=t?(i=a,s=c):f&&f.top<=t&&(i=h,s=f),!i)return{node:n,offset:0};let u=Math.max(s.left,Math.min(s.right,e));if(i.nodeType==3)return Xl(i,u,t);if(l&&i.contentEditable!="false")return so(i,u,t);let d=Array.prototype.indexOf.call(n.childNodes,i)+(e>=(s.left+s.right)/2?1:0);return{node:n,offset:d}}function Xl(n,e,t){let i=n.nodeValue.length,s=-1,r=1e9,o=0;for(let l=0;lt?c.top-t:t-c.bottom)-1;if(c.left-1<=e&&c.right+1>=e&&f=(c.left+c.right)/2,d=u;if((B.chrome||B.gecko)&&_t(n,l).getBoundingClientRect().left==c.right&&(d=!u),f<=0)return{node:n,offset:l+(d?1:0)};s=l+(d?1:0),r=f}}}return{node:n,offset:s>-1?s:o>0?n.nodeValue.length:0}}function Vc(n,e,t,i=-1){var s,r;let o=n.contentDOM.getBoundingClientRect(),l=o.top+n.viewState.paddingTop,a,{docHeight:h}=n.viewState,{x:c,y:f}=e,u=f-l;if(u<0)return 0;if(u>h)return n.state.doc.length;for(let w=n.viewState.heightOracle.textHeight/2,v=!1;a=n.elementAtHeight(u),a.type!=xe.Text;)for(;u=i>0?a.bottom+w:a.top-w,!(u>=0&&u<=h);){if(v)return t?null:0;v=!0,i=-i}f=l+u;let d=a.from;if(dn.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:t?null:Yl(n,o,a,c,f);let p=n.dom.ownerDocument,m=n.root.elementFromPoint?n.root:p,g=m.elementFromPoint(c,f);g&&!n.contentDOM.contains(g)&&(g=null),g||(c=Math.max(o.left+1,Math.min(o.right-1,c)),g=m.elementFromPoint(c,f),g&&!n.contentDOM.contains(g)&&(g=null));let y,k=-1;if(g&&((s=n.docView.nearest(g))===null||s===void 0?void 0:s.isEditable)!=!1){if(p.caretPositionFromPoint){let w=p.caretPositionFromPoint(c,f);w&&({offsetNode:y,offset:k}=w)}else if(p.caretRangeFromPoint){let w=p.caretRangeFromPoint(c,f);w&&({startContainer:y,startOffset:k}=w,(!n.contentDOM.contains(y)||B.safari&&Rp(y,k,c)||B.chrome&&Ep(y,k,c))&&(y=void 0))}y&&(k=Math.min(st(y),k))}if(!y||!n.docView.dom.contains(y)){let w=te.find(n.docView,d);if(!w)return u>a.top+a.height/2?a.to:a.from;({node:y,offset:k}=so(w.dom,c,f))}let O=n.docView.nearest(y);if(!O)return null;if(O.isWidget&&((r=O.dom)===null||r===void 0?void 0:r.nodeType)==1){let w=O.dom.getBoundingClientRect();return e.yn.defaultLineHeight*1.5){let l=n.viewState.heightOracle.textHeight,a=Math.floor((s-t.top-(n.defaultLineHeight-l)*.5)/l);r+=a*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(t.from,t.to);return t.from+_r(o,r,n.state.tabSize)}function Rp(n,e,t){let i,s=n;if(n.nodeType!=3||e!=(i=n.nodeValue.length))return!1;for(;;){let r=s.nextSibling;if(r){if(r.nodeName=="BR")break;return!1}else{let o=s.parentNode;if(!o||o.nodeName=="DIV")break;s=o}}return _t(n,i-1,i).getBoundingClientRect().right>t}function Ep(n,e,t){if(e!=0)return!1;for(let s=n;;){let r=s.parentNode;if(!r||r.nodeType!=1||r.firstChild!=s)return!1;if(r.classList.contains("cm-line"))break;s=r}let i=n.nodeType==1?n.getBoundingClientRect():_t(n,0,Math.max(n.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function ro(n,e,t){let i=n.lineBlockAt(e);if(Array.isArray(i.type)){let s;for(let r of i.type){if(r.from>e)break;if(!(r.toe)return r;(!s||r.type==xe.Text&&(s.type!=r.type||(t<0?r.frome)))&&(s=r)}}return s||i}return i}function Bp(n,e,t,i){let s=ro(n,e.head,e.assoc||-1),r=!i||s.type!=xe.Text||!(n.lineWrapping||s.widgetLineBreaks)?null:n.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let o=n.dom.getBoundingClientRect(),l=n.textDirectionAt(s.from),a=n.posAtCoords({x:t==(l==X.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(a!=null)return x.cursor(a,t?-1:1)}return x.cursor(t?s.to:s.from,t?-1:1)}function Jl(n,e,t,i){let s=n.state.doc.lineAt(e.head),r=n.bidiSpans(s),o=n.textDirectionAt(s.from);for(let l=e,a=null;;){let h=bp(s,r,o,l,t),c=Sc;if(!h){if(s.number==(t?n.state.doc.lines:1))return l;c=` +`,s=n.state.doc.line(s.number+(t?1:-1)),r=n.bidiSpans(s),h=n.visualLineSide(s,!t)}if(a){if(!a(c))return l}else{if(!i)return h;a=i(c)}l=h}}function Lp(n,e,t){let i=n.state.charCategorizer(e),s=i(t);return r=>{let o=i(r);return s==J.Space&&(s=o),s==o}}function Ip(n,e,t,i){let s=e.head,r=t?1:-1;if(s==(t?n.state.doc.length:0))return x.cursor(s,e.assoc);let o=e.goalColumn,l,a=n.contentDOM.getBoundingClientRect(),h=n.coordsAtPos(s,e.assoc||-1),c=n.documentTop;if(h)o==null&&(o=h.left-a.left),l=r<0?h.top:h.bottom;else{let d=n.viewState.lineBlockAt(s);o==null&&(o=Math.min(a.right-a.left,n.defaultCharacterWidth*(s-d.from))),l=(r<0?d.top:d.bottom)+c}let f=a.left+o,u=i??n.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*r,m=Vc(n,{x:f,y:p},!1,r);if(pa.bottom||(r<0?ms)){let g=n.docView.coordsForChar(m),y=!g||p{if(e>r&&es(n)),t.from,e.head>t.from?-1:1);return i==t.from?t:x.cursor(i,ir)&&this.lineBreak(),s=o}return this.findPointBefore(i,t),this}readTextNode(e){let t=e.nodeValue;for(let i of this.points)i.node==e&&(i.pos=this.text.length+Math.min(i.offset,t.length));for(let i=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,l;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,i),o=this.lineSeparator.length):(l=s.exec(t))&&(r=l.index,o=l[0].length),this.append(t.slice(i,r<0?t.length:r)),r<0)break;if(this.lineBreak(),o>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);i=r+o}}readNode(e){if(e.cmIgnore)return;let t=K.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let s=i.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+($p(e,i.node,i.offset)?t:0))}}function $p(n,e,t){for(;;){if(!e||t-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let l=r||o?[]:zp(e),a=new Np(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=qp(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!Kr(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Kr(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),c=e.viewport;if((B.ios||B.chrome)&&e.state.selection.main.empty&&a!=h&&(c.from>0||c.toDate.now()-100?n.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:l}=e.bounds,a=s.from,h=null;(r===8||B.android&&e.text.length=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:n.state.doc.slice(s.from,t.from).append(t.insert).append(n.state.doc.slice(t.to,s.to))}:B.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==` + `&&n.lineWrapping&&(i&&(i=x.single(i.main.anchor-1,i.main.head-1)),t={from:s.from,to:s.to,insert:_.of([" "])}),t)return Uo(n,t,i,r);if(i&&!i.main.eq(s)){let o=!1,l="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(o=!0),l=n.inputState.lastSelectionOrigin),n.dispatch({selection:i,scrollIntoView:o,userEvent:l}),!0}else return!1}function Uo(n,e,t,i=-1){if(B.ios&&n.inputState.flushIOSKey(e))return!0;let s=n.state.selection.main;if(B.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&n.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&ri(n.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||i==8&&e.insert.lengths.head)&&ri(n.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&ri(n.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();n.inputState.composing>=0&&n.inputState.composing++;let o,l=()=>o||(o=Vp(n,e,t));return n.state.facet(Mc).some(a=>a(n,e.from,e.to,r,l))||n.dispatch(l()),!0}function Vp(n,e,t){let i,s=n.state,r=s.selection.main;if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let l=r.frome.to?s.sliceDoc(e.to,r.to):"";i=s.replaceSelection(n.state.toText(l+e.insert.sliceString(0,void 0,n.state.lineBreak)+a))}else{let l=s.changes(e),a=t&&t.main.to<=l.newLength?t.main:void 0;if(s.selection.ranges.length>1&&n.inputState.composing>=0&&e.to<=r.to&&e.to>=r.to-10){let h=n.state.sliceDoc(e.from,e.to),c,f=t&&Fc(n,t.main.head);if(f){let p=e.insert.length-(e.to-e.from);c={from:f.from,to:f.to-p}}else c=n.state.doc.lineAt(r.head);let u=r.to-e.to,d=r.to-r.from;i=s.changeByRange(p=>{if(p.from==r.from&&p.to==r.to)return{changes:l,range:a||p.map(l)};let m=p.to-u,g=m-h.length;if(p.to-p.from!=d||n.state.sliceDoc(g,m)!=h||p.to>=c.from&&p.from<=c.to)return{range:p};let y=s.changes({from:g,to:m,insert:e.insert}),k=p.to-r.to;return{changes:y,range:a?x.range(Math.max(0,a.anchor+k),Math.max(0,a.head+k)):p.map(y)}})}else i={changes:l,selection:a&&s.selection.replaceRange(a)}}let o="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,o+=".compose",n.inputState.compositionFirstChange&&(o+=".start",n.inputState.compositionFirstChange=!1)),s.update(i,{userEvent:o,scrollIntoView:!0})}function Wp(n,e,t,i){let s=Math.min(n.length,e.length),r=0;for(;r0&&l>0&&n.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,r-Math.min(o,l));t-=o+a-r}if(o=o?r-t:0;r-=a,l=r+(l-o),o=r}else if(l=l?r-t:0;r-=a,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function zp(n){let e=[];if(n.root.activeElement!=n.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}=n.observer.selectionRange;return t&&(e.push(new Zl(t,i)),(s!=t||r!=i)&&e.push(new Zl(s,r))),e}function qp(n,e){if(n.length==0)return null;let t=n[0].pos,i=n.length==2?n[1].pos:t;return t>-1&&i>-1?x.single(t+e,i+e):null}class Hp{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,B.safari&&e.contentDOM.addEventListener("input",()=>null),B.gecko&&rm(e.contentDOM.ownerDocument)}handleEvent(e){!Yp(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let i=this.handlers[e];if(i){for(let s of i.observers)s(this.view,t);for(let s of i.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=_p(e),i=this.handlers,s=this.view.contentDOM;for(let r in t)if(r!="scroll"){let o=!t[r].handlers.length,l=i[r];l&&o!=!l.handlers.length&&(s.removeEventListener(r,this.handleEvent),l=null),l||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in i)r!="scroll"&&!t[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&qc.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),B.android&&B.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return B.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=zc.find(i=>i.keyCode==e.keyCode))&&!e.ctrlKey||jp.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from0?!0:B.safari&&!B.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function ea(n,e){return(t,i)=>{try{return e.call(n,i,t)}catch(s){be(t.state,s)}}}function _p(n){let e=Object.create(null);function t(i){return e[i]||(e[i]={observers:[],handlers:[]})}for(let i of n){let s=i.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let l in r){let a=r[l];a&&t(l).handlers.push(ea(i.value,a))}if(o)for(let l in o){let a=o[l];a&&t(l).observers.push(ea(i.value,a))}}for(let i in qe)t(i).handlers.push(qe[i]);for(let i in Ve)t(i).observers.push(Ve[i]);return e}const zc=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],jp="dthko",qc=[16,17,18,20,91,92,224,225],An=6;function Tn(n){return Math.max(0,n)*.7+8}function Up(n,e){return Math.max(Math.abs(n.clientX-e.clientX),Math.abs(n.clientY-e.clientY))}class Kp{constructor(e,t,i,s){this.view=e,this.startEvent=t,this.style=i,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=ep(e.contentDOM),this.atoms=e.state.facet(_o).map(o=>o(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(z.allowMultipleSelections)&&Gp(e,t),this.dragging=Xp(e,t)&&jc(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&Up(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,i=0,s=0,r=0,o=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:r,bottom:l}=this.scrollParents.y.getBoundingClientRect());let a=jo(this.view);e.clientX-a.left<=s+An?t=-Tn(s-e.clientX):e.clientX+a.right>=o-An&&(t=Tn(e.clientX-o)),e.clientY-a.top<=r+An?i=-Tn(r-e.clientY):e.clientY+a.bottom>=l-An&&(i=Tn(e.clientY-l)),this.setScrollSpeed(t,i)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let i=0;it.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function Gp(n,e){let t=n.state.facet(Oc);return t.length?t[0](e):B.mac?e.metaKey:e.ctrlKey}function Qp(n,e){let t=n.state.facet(Cc);return t.length?t[0](e):B.mac?!e.altKey:!e.ctrlKey}function Xp(n,e){let{main:t}=n.state.selection;if(t.empty)return!1;let i=Ki(n.root);if(!i||i.rangeCount==0)return!0;let s=i.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function Yp(n,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=n.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=K.get(t))&&i.ignoreEvent(e))return!1;return!0}const qe=Object.create(null),Ve=Object.create(null),Hc=B.ie&&B.ie_version<15||B.ios&&B.webkit_version<604;function Jp(n){let e=n.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{n.focus(),t.remove(),_c(n,t.value)},50)}function Bs(n,e,t){for(let i of n.facet(e))t=i(t,n);return t}function _c(n,e){e=Bs(n.state,zo,e);let{state:t}=n,i,s=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(oo!=null&&t.selection.ranges.every(a=>a.empty)&&oo==r.toString()){let a=-1;i=t.changeByRange(h=>{let c=t.doc.lineAt(h.from);if(c.from==a)return{range:h};a=c.from;let f=t.toText((o?r.line(s++).text:e)+t.lineBreak);return{changes:{from:c.from,insert:f},range:x.cursor(h.from+f.length)}})}else o?i=t.changeByRange(a=>{let h=r.line(s++);return{changes:{from:a.from,to:a.to,insert:h.text},range:x.cursor(a.from+h.length)}}):i=t.replaceSelection(r);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}Ve.scroll=n=>{n.inputState.lastScrollTop=n.scrollDOM.scrollTop,n.inputState.lastScrollLeft=n.scrollDOM.scrollLeft};qe.keydown=(n,e)=>(n.inputState.setSelectionOrigin("select"),e.keyCode==27&&n.inputState.tabFocusMode!=0&&(n.inputState.tabFocusMode=Date.now()+2e3),!1);Ve.touchstart=(n,e)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};Ve.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};qe.mousedown=(n,e)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let i of n.state.facet(Ac))if(t=i(n,e),t)break;if(!t&&e.button==0&&(t=tm(n,e)),t){let i=!n.hasFocus;n.inputState.startMouseSelection(new Kp(n,e,t,i)),i&&n.observer.ignore(()=>{rc(n.contentDOM);let r=n.root.activeElement;r&&!r.contains(n.contentDOM)&&r.blur()});let s=n.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}return!1};function ta(n,e,t,i){if(i==1)return x.cursor(e,t);if(i==2)return Mp(n.state,e,t);{let s=te.find(n.docView,e),r=n.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,l=s?s.posAtEnd:r.to;return le>=t.top&&e<=t.bottom&&n>=t.left&&n<=t.right;function Zp(n,e,t,i){let s=te.find(n.docView,e);if(!s)return 1;let r=e-s.posAtStart;if(r==0)return 1;if(r==s.length)return-1;let o=s.coordsAt(r,-1);if(o&&ia(t,i,o))return-1;let l=s.coordsAt(r,1);return l&&ia(t,i,l)?1:o&&o.bottom>=i?-1:1}function na(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:Zp(n,t,e.clientX,e.clientY)}}const em=B.ie&&B.ie_version<=11;let sa=null,ra=0,oa=0;function jc(n){if(!em)return n.detail;let e=sa,t=oa;return sa=n,oa=Date.now(),ra=!e||t>Date.now()-400&&Math.abs(e.clientX-n.clientX)<2&&Math.abs(e.clientY-n.clientY)<2?(ra+1)%3:1}function tm(n,e){let t=na(n,e),i=jc(e),s=n.state.selection;return{update(r){r.docChanged&&(t.pos=r.changes.mapPos(t.pos),s=s.map(r.changes))},get(r,o,l){let a=na(n,r),h,c=ta(n,a.pos,a.bias,i);if(t.pos!=a.pos&&!o){let f=ta(n,t.pos,t.bias,i),u=Math.min(f.from,c.from),d=Math.max(f.to,c.to);c=u1&&(h=im(s,a.pos))?h:l?s.addRange(c):x.create([c])}}}function im(n,e){for(let t=0;t=e)return x.create(n.ranges.slice(0,t).concat(n.ranges.slice(t+1)),n.mainIndex==t?0:n.mainIndex-(n.mainIndex>t?1:0))}return null}qe.dragstart=(n,e)=>{let{selection:{main:t}}=n.state;if(e.target.draggable){let s=n.docView.nearest(e.target);if(s&&s.isWidget){let r=s.posAtStart,o=r+s.length;(r>=t.to||o<=t.from)&&(t=x.range(r,o))}}let{inputState:i}=n;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",Bs(n.state,qo,n.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};qe.dragend=n=>(n.inputState.draggedContent=null,!1);function la(n,e,t,i){if(t=Bs(n.state,zo,t),!t)return;let s=n.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=n.inputState,o=i&&r&&Qp(n,e)?{from:r.from,to:r.to}:null,l={from:s,insert:t},a=n.state.changes(o?[o,l]:l);n.focus(),n.dispatch({changes:a,selection:{anchor:a.mapPos(s,-1),head:a.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),n.inputState.draggedContent=null}qe.drop=(n,e)=>{if(!e.dataTransfer)return!1;if(n.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let i=Array(t.length),s=0,r=()=>{++s==t.length&&la(n,e,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(i[o]=l.result),r()},l.readAsText(t[o])}return!0}else{let i=e.dataTransfer.getData("Text");if(i)return la(n,e,i,!0),!0}return!1};qe.paste=(n,e)=>{if(n.state.readOnly)return!0;n.observer.flush();let t=Hc?null:e.clipboardData;return t?(_c(n,t.getData("text/plain")||t.getData("text/uri-list")),!0):(Jp(n),!1)};function nm(n,e){let t=n.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function sm(n){let e=[],t=[],i=!1;for(let s of n.selection.ranges)s.empty||(e.push(n.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:r}of n.selection.ranges){let o=n.doc.lineAt(r);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),s=o.number}i=!0}return{text:Bs(n,qo,e.join(n.lineBreak)),ranges:t,linewise:i}}let oo=null;qe.copy=qe.cut=(n,e)=>{let{text:t,ranges:i,linewise:s}=sm(n.state);if(!t&&!s)return!1;oo=s?t:null,e.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=Hc?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",t),!0):(nm(n,t),!1)};const Uc=mt.define();function Kc(n,e){let t=[];for(let i of n.facet(Pc)){let s=i(n,e);s&&t.push(s)}return t.length?n.update({effects:t,annotations:Uc.of(!0)}):null}function Gc(n){setTimeout(()=>{let e=n.hasFocus;if(e!=n.inputState.notifiedFocused){let t=Kc(n.state,e);t?n.dispatch(t):n.update([])}},10)}Ve.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),Gc(n)};Ve.blur=n=>{n.observer.clearSelectionRange(),Gc(n)};Ve.compositionstart=Ve.compositionupdate=n=>{n.observer.editContext||(n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0))};Ve.compositionend=n=>{n.observer.editContext||(n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,B.chrome&&B.android?n.observer.flushSoon():n.inputState.compositionPendingChange?Promise.resolve().then(()=>n.observer.flush()):setTimeout(()=>{n.inputState.composing<0&&n.docView.hasComposition&&n.update([])},50))};Ve.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};qe.beforeinput=(n,e)=>{var t,i;if(e.inputType=="insertReplacementText"&&n.observer.editContext){let r=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(r&&o.length){let l=o[0],a=n.posAtDOM(l.startContainer,l.startOffset),h=n.posAtDOM(l.endContainer,l.endOffset);return Uo(n,{from:a,to:h,insert:n.state.toText(r)},null),!0}}let s;if(B.chrome&&B.android&&(s=zc.find(r=>r.inputType==e.inputType))&&(n.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((i=window.visualViewport)===null||i===void 0?void 0:i.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>r+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}return B.ios&&e.inputType=="deleteContentForward"&&n.observer.flushSoon(),B.safari&&e.inputType=="insertText"&&n.inputState.composing>=0&&setTimeout(()=>Ve.compositionend(n,e),20),!1};const aa=new Set;function rm(n){aa.has(n)||(aa.add(n),n.addEventListener("copy",()=>{}),n.addEventListener("cut",()=>{}))}const ha=["pre-wrap","normal","pre-line","break-spaces"];let mi=!1;function ca(){mi=!1}class om{constructor(e){this.lineWrapping=e,this.doc=_.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return ha.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=i,this.textHeight=s,this.lineLength=r,a){this.heightSamples={};for(let h=0;h0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Zn&&(mi=!0),this.height=e)}replace(e,t,i){return ke.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,s){let r=this,o=i.doc;for(let l=s.length-1;l>=0;l--){let{fromA:a,toA:h,fromB:c,toB:f}=s[l],u=r.lineAt(a,Q.ByPosNoHeight,i.setDoc(t),0,0),d=u.to>=h?u:r.lineAt(h,Q.ByPosNoHeight,i,0,0);for(f+=d.to-h,h=d.to;l>0&&u.from<=s[l-1].toA;)a=s[l-1].fromA,c=s[l-1].fromB,l--,ar*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),i+=1+l.break,s-=l.size}else if(r>s*2){let l=e[i];l.break?e.splice(i,1,l.left,null,l.right):e.splice(i,1,l.left,l.right),i+=2+l.break,r-=l.size}else break;else if(s=r&&o(this.blockAt(0,i,s,r))}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more&&this.setHeight(s.heights[s.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Pe extends Qc{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,i,s){return new Ze(s,this.length,i,this.height,this.breaks)}replace(e,t,i){let s=i[0];return i.length==1&&(s instanceof Pe||s instanceof ce&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof ce?s=new Pe(s.length,this.height):s.height=this.height,this.outdated||(s.outdated=!1),s):ke.of(i)}updateHeight(e,t=0,i=!1,s){return s&&s.from<=t&&s.more?this.setHeight(s.heights[s.index++]):(i||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class ce extends ke{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,r=s-i+1,o,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*r);o=a/r,this.length>r+1&&(l=(this.height-a)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:s,perLine:o,perChar:l}}blockAt(e,t,i,s){let{firstLine:r,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(t,s);if(t.lineWrapping){let h=s+(e0){let r=i[i.length-1];r instanceof ce?i[i.length-1]=new ce(r.length+s):i.push(null,new ce(s-1))}if(e>0){let r=i[0];r instanceof ce?i[0]=new ce(e+r.length):i.unshift(new ce(e-1),null)}return ke.of(i)}decomposeLeft(e,t){t.push(new ce(e-1),null)}decomposeRight(e,t){t.push(null,new ce(this.length-e-1))}updateHeight(e,t=0,i=!1,s){let r=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],l=Math.max(t,s.from),a=-1;for(s.from>t&&o.push(new ce(s.from-t-1).updateHeight(e,t));l<=r&&s.more;){let c=e.doc.lineAt(l).length;o.length&&o.push(null);let f=s.heights[s.index++];a==-1?a=f:Math.abs(f-a)>=Zn&&(a=-2);let u=new Pe(c,f);u.outdated=!1,o.push(u),l+=c+1}l<=r&&o.push(null,new ce(r-l).updateHeight(e,l));let h=ke.of(o);return(a<0||Math.abs(h.height-this.height)>=Zn||Math.abs(a-this.heightMetrics(e,t).perLine)>=Zn)&&(mi=!0),ds(this,h)}else(i||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class am extends ke{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,s){let r=i+this.left.height;return el))return h;let c=t==Q.ByPosNoHeight?Q.ByPosNoHeight:Q.ByPos;return a?h.join(this.right.lineAt(l,c,i,o,l)):this.left.lineAt(l,c,i,s,r).join(h)}forEachLine(e,t,i,s,r,o){let l=s+this.left.height,a=r+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,l,a,o);else{let h=this.lineAt(a,Q.ByPos,i,s,r);e=e&&h.from<=t&&o(h),t>h.to&&this.right.forEachLine(h.to+1,t,i,l,a,o)}}replace(e,t,i){let s=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let l of i)r.push(l);if(e>0&&fa(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,s=i+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e2*t.size||t.size>2*e.size?ke.of(this.break?[e,null,t]:[e,t]):(this.left=ds(this.left,e),this.right=ds(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,s){let{left:r,right:o}=this,l=t+r.length+this.break,a=null;return s&&s.from<=t+r.length&&s.more?a=r=r.updateHeight(e,t,i,s):r.updateHeight(e,t,i),s&&s.from<=l+o.length&&s.more?a=o=o.updateHeight(e,l,i,s):o.updateHeight(e,l,i),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function fa(n,e){let t,i;n[e]==null&&(t=n[e-1])instanceof ce&&(i=n[e+1])instanceof ce&&n.splice(e-1,3,new ce(t.length+1+i.length))}const hm=5;class Ko{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof Pe?s.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Pe(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=hm)&&this.addLineDeco(s,r,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Pe(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new ce(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Pe)return e;let t=new Pe(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,i){let s=this.ensureLine();s.length+=i,s.collapsed+=i,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+i}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Pe)&&!this.isCovered?this.nodes.push(new Pe(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&f.overflow!="visible"){let u=c.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=Math.min(h==n.parentNode?s.innerHeight:a,u.bottom)}h=f.position=="absolute"||f.position=="fixed"?c.offsetParent:c.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function dm(n){let e=n.getBoundingClientRect(),t=n.ownerDocument.defaultView||window;return e.left0&&e.top0}function pm(n,e){let t=n.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class or{constructor(e,t,i,s){this.from=e,this.to=t,this.size=i,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new om(t),this.stateDeco=e.facet(Gi).filter(i=>typeof i!="function"),this.heightMap=ke.empty().applyChanges(this.stateDeco,_.empty,this.heightOracle.setDoc(e.doc),[new $e(0,0,0,e.doc.length)]);for(let i=0;i<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());i++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=N.set(this.lineGaps.map(i=>i.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let s=i?t.head:t.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new Mn(r,o))}}return this.viewports=e.sort((i,s)=>i.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?da:new Go(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Ii(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(Gi).filter(c=>typeof c!="function");let s=e.changedRanges,r=$e.extendWithRanges(s,cm(i,this.stateDeco,e?e.changes:ne.empty(this.state.doc.length))),o=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);ca(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||mi)&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let h=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(h||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Rc)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),s=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?X.RTL:X.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),l=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let h=0,c=0;if(l.width&&l.height){let{scaleX:w,scaleY:v}=sc(t,l);(w>.005&&Math.abs(this.scaleX-w)>.005||v>.005&&Math.abs(this.scaleY-v)>.005)&&(this.scaleX=w,this.scaleY=v,h|=16,o=a=!0)}let f=(parseInt(i.paddingTop)||0)*this.scaleY,u=(parseInt(i.paddingBottom)||0)*this.scaleY;(this.paddingTop!=f||this.paddingBottom!=u)&&(this.paddingTop=f,this.paddingBottom=u,h|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=16);let d=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=d&&(this.scrollAnchorHeight=-1,this.scrollTop=d),this.scrolledToBottom=lc(e.scrollDOM);let p=(this.printing?pm:um)(t,this.paddingTop),m=p.top-this.pixelViewport.top,g=p.bottom-this.pixelViewport.bottom;this.pixelViewport=p;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(a=!0)),!this.inView&&!this.scrollTarget&&!dm(e.dom))return 0;let k=l.width;if((this.contentDOMWidth!=k||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,h|=16),a){let w=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(w)&&(o=!0),o||s.lineWrapping&&Math.abs(k-this.contentDOMWidth)>s.charWidth){let{lineHeight:v,charWidth:A,textHeight:M}=e.docView.measureTextSize();o=v>0&&s.refresh(r,v,A,M,Math.max(5,k/A),w),o&&(e.docView.minWidth=0,h|=16)}m>0&&g>0?c=Math.max(m,g):m<0&&g<0&&(c=Math.min(m,g)),ca();for(let v of this.viewports){let A=v.from==this.viewport.from?w:e.docView.measureVisibleLineHeights(v);this.heightMap=(o?ke.empty().applyChanges(this.stateDeco,_.empty,this.heightOracle,[new $e(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new lm(v.from,A))}mi&&(h|=2)}let O=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return O&&(h&2&&(h|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),h|=this.updateForViewport()),(h&2||O)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Mn(s.lineAt(o-i*1e3,Q.ByHeight,r,0,0).from,s.lineAt(l+(1-i)*1e3,Q.ByHeight,r,0,0).to);if(t){let{head:h}=t.range;if(ha.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=s.lineAt(h,Q.ByPos,r,0,0),u;t.y=="center"?u=(f.top+f.bottom)/2-c/2:t.y=="start"||t.y=="nearest"&&h=l+Math.max(10,Math.min(i,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=X.LTR&&!i)return[];let l=[],a=(c,f,u,d)=>{if(f-cc&&yy.from>=u.from&&y.to<=u.to&&Math.abs(y.from-c)y.fromk));if(!g){if(fO.from<=f&&O.to>=f)){let O=t.moveToLineBoundary(x.cursor(f),!1,!0).head;O>c&&(f=O)}let y=this.gapSize(u,c,f,d),k=i||y<2e6?y:2e6;g=new or(c,f,y,k)}l.push(g)},h=c=>{if(c.length2e6)for(let A of e)A.from>=c.from&&A.fromc.from&&a(c.from,d,c,f),pt.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let i=[];H.spans(t,this.viewport.from,this.viewport.to,{span(r,o){i.push({from:r,to:o})},point(){}},20);let s=0;if(i.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ii(this.heightMap.lineAt(e,Q.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Ii(this.heightMap.lineAt(this.scaler.fromDOM(e),Q.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Ii(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Mn{constructor(e,t){this.from=e,this.to=t}}function gm(n,e,t){let i=[],s=n,r=0;return H.spans(t,n,e,{span(){},point(o,l){o>s&&(i.push({from:s,to:o}),r+=o-s),s=l}},20),s=1)return e[e.length-1].to;let i=Math.floor(n*t);for(let s=0;;s++){let{from:r,to:o}=e[s],l=o-r;if(i<=l)return r+i;i-=l}}function Dn(n,e){let t=0;for(let{from:i,to:s}of n.ranges){if(e<=s){t+=e-i;break}t+=s-i}return t/n.total}function ym(n,e){for(let t of n)if(e(t))return t}const da={toDOM(n){return n},fromDOM(n){return n},scale:1,eq(n){return n==this}};class Go{constructor(e,t,i){let s=0,r=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=t.lineAt(l,Q.ByPos,e,0,0).top,c=t.lineAt(a,Q.ByPos,e,0,0).bottom;return s+=c-h,{from:l,to:a,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(e){for(let t=0,i=0,s=0;;t++){let r=tt.from==e.viewports[i].from&&t.to==e.viewports[i].to):!1}}function Ii(n,e){if(e.scale==1)return n;let t=e.toDOM(n.top),i=e.toDOM(n.bottom);return new Ze(n.from,n.length,t,i-t,Array.isArray(n._content)?n._content.map(s=>Ii(s,e)):n._content)}const Rn=L.define({combine:n=>n.join(" ")}),lo=L.define({combine:n=>n.indexOf(!0)>-1}),ao=At.newName(),Xc=At.newName(),Yc=At.newName(),Jc={"&light":"."+Xc,"&dark":"."+Yc};function ho(n,e,t){return new At(e,{finish(i){return/&/.test(i)?i.replace(/&\w*/,s=>{if(s=="&")return n;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):n+" "+i}})}const bm=ho("."+ao,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Jc),xm={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},lr=B.ie&&B.ie_version<=11;class km{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new tp,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(B.ie&&B.ie_version<=11||B.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&B.android&&e.constructor.EDIT_CONTEXT!==!1&&!(B.chrome&&B.chrome_version<126)&&(this.editContext=new wm(e),e.state.facet(ct)&&(e.contentDOM.editContext=this.editContext.editContext)),lr&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,s=this.selectionRange;if(i.state.facet(ct)?i.root.activeElement!=this.dom:!Xn(this.dom,s))return;let r=s.anchorNode&&i.docView.nearest(s.anchorNode);if(r&&r.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(B.ie&&B.ie_version<=11||B.android&&B.chrome)&&!i.state.selection.main.empty&&s.focusNode&&Vi(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Ki(e.root);if(!t)return!1;let i=B.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&vm(this.view,t)||t;if(!i||this.selectionRange.eq(i))return!1;let s=Xn(this.dom,i);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&ri(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:s}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),s=this.selectionChanged&&Xn(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let r=new Fp(this.view,e,t,i);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let i=this.view.state,s=Wc(this.view,t);return this.view.state==i&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let i=pa(t,e.previousSibling||e.target.previousSibling,-1),s=pa(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(ct)!=e.state.facet(ct)&&(e.view.contentDOM.editContext=e.state.facet(ct)?this.editContext.editContext:null))}destroy(){var e,t,i;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function pa(n,e,t){for(;e;){let i=K.get(e);if(i&&i.parent==n)return i;let s=e.parentNode;e=s!=n.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function ma(n,e){let t=e.startContainer,i=e.startOffset,s=e.endContainer,r=e.endOffset,o=n.docView.domAtPos(n.state.selection.main.anchor);return Vi(o.node,o.offset,s,r)&&([t,i,s,r]=[s,r,t,i]),{anchorNode:t,anchorOffset:i,focusNode:s,focusOffset:r}}function vm(n,e){if(e.getComposedRanges){let s=e.getComposedRanges(n.root)[0];if(s)return ma(n,s)}let t=null;function i(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return n.contentDOM.addEventListener("beforeinput",i,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",i,!0),t?ma(n,t):null}class wm{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=i=>{let s=e.state.selection.main,{anchor:r,head:o}=s,l=this.toEditorPos(i.updateRangeStart),a=this.toEditorPos(i.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:i.updateRangeStart,editorBase:l,drifted:!1});let h={from:l,to:a,insert:_.of(i.text.split(` +`))};if(h.from==this.from&&rthis.to&&(h.to=r),h.from==h.to&&!h.insert.length){let c=x.single(this.toEditorPos(i.selectionStart),this.toEditorPos(i.selectionEnd));c.main.eq(s)||e.dispatch({selection:c,userEvent:"select"});return}if((B.mac||B.android)&&h.from==o-1&&/^\. ?$/.test(i.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:l,to:a,insert:_.of([i.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let c=this.to-this.from+(h.to-h.from+h.insert.length);Uo(e,h,x.single(this.toEditorPos(i.selectionStart,c),this.toEditorPos(i.selectionEnd,c)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state))},this.handlers.characterboundsupdate=i=>{let s=[],r=null;for(let o=this.toEditorPos(i.rangeStart),l=this.toEditorPos(i.rangeEnd);o{let s=[];for(let r of i.getTextFormats()){let o=r.underlineStyle,l=r.underlineThickness;if(o!="None"&&l!="None"){let a=this.toEditorPos(r.rangeStart),h=this.toEditorPos(r.rangeEnd);if(a{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:i}=this.composing;this.composing=null,i&&this.reset(e.state)}};for(let i in this.handlers)t.addEventListener(i,this.handlers[i]);this.measureReq={read:i=>{this.editContext.updateControlBounds(i.contentDOM.getBoundingClientRect());let s=Ki(i.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,i=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,o,l,a,h)=>{if(i)return;let c=h.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(h)){s=this.pendingContextChange=null,t+=c,this.to+=c;return}else s=null,this.revertPending(e.state);if(r+=t,o+=t,o<=this.from)this.from+=c,this.to+=c;else if(rthis.to||this.to-this.from+h.length>3e4){i=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),h.toString()),this.to+=c}t+=c}),s&&!i&&this.revertPending(e.state),!i}update(e){let t=this.pendingContextChange,i=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(i.from,i.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,i=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=i||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(i,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let i=this.composing;return i&&i.drifted?i.editorBase+(e-i.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class E{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:i}=e;this.dispatchTransactions=e.dispatchTransactions||i&&(s=>s.forEach(r=>i(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||ip(e.parent)||document,this.viewState=new ua(e.state||z.create(e)),e.scrollTo&&e.scrollTo.is(Cn)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ei).map(s=>new nr(s));for(let s of this.plugins)s.update(this);this.observer=new km(this),this.inputState=new Hp(this),this.inputState.ensureHandlers(this.plugins),this.docView=new Kl(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>this.requestMeasure())}dispatch(...e){let t=e.length==1&&e[0]instanceof se?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,s,r=this.state;for(let u of e){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,l=0,a=null;e.some(u=>u.annotation(Uc))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=Kc(r,o),a||(l=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(z.phrases)!=this.state.facet(z.phrases))return this.setState(r);s=us.create(this,r,e),s.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(f&&(f=f.map(u.changes)),u.scrollIntoView){let{main:d}=u.state.selection;f=new oi(d.empty?d:x.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of u.effects)d.is(Cn)&&(f=d.value.clip(this.state))}this.viewState.update(s,f),this.bidiCache=ps.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(Bi)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Rn)!=s.state.facet(Rn)&&(this.viewState.mustMeasureContent=!0),(t||i||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let u of this.state.facet(no))try{u(s)}catch(d){be(this.state,d,"update listener")}(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!Wc(this,c)&&h.force&&ri(this.contentDOM,h.key,h.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new ua(e),this.plugins=e.facet(ei).map(i=>new nr(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView.destroy(),this.docView=new Kl(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(ei),i=e.state.facet(ei);if(t!=i){let s=[];for(let r of i){let o=t.indexOf(r);if(o<0)s.push(new nr(r));else{let l=this.plugins[o];l.mustUpdate=e,s.push(l)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,i=this.scrollDOM,s=i.scrollTop*this.scaleY,{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(o<0)if(lc(i))r=-1,o=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(s);r=d.from,o=d.top}this.updateState=1;let a=this.viewState.measure(this);if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let h=[];a&4||([this.measureRequests,h]=[h,this.measureRequests]);let c=h.map(d=>{try{return d.read(this)}catch(p){return be(this.state,p),ga}}),f=us.create(this,this.state,[]),u=!1;f.flags|=a,t?t.flags|=a:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),u=this.docView.update(f),u&&this.docViewUpdate());for(let d=0;d1||p<-1){s=s+p,i.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(no))l(t)}get themeClasses(){return ao+" "+(this.state.facet(lo)?Yc:Xc)+" "+this.state.facet(Rn)}updateAttrs(){let e=ya(this,Lc,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(ct)?"true":"false",class:"cm-content",style:`${B.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),ya(this,Ho,t);let i=this.observer.ignore(()=>{let s=Jr(this.contentDOM,this.contentAttrs,t),r=Jr(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let s of i.effects)if(s.is(E.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(Bi);let e=this.state.facet(E.cspNonce);At.mount(this.root,this.styleModules.concat(bm).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return rr(this,e,Jl(this,e,t,i))}moveByGroup(e,t){return rr(this,e,Jl(this,e,t,i=>Lp(this,e.head,i)))}visualLineSide(e,t){let i=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=i[t?i.length-1:0];return x.cursor(r.side(t,s)+e.from,r.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,i=!0){return Bp(this,e,t,i)}moveVertically(e,t,i){return rr(this,e,Ip(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Vc(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let s=this.state.doc.lineAt(e),r=this.bidiSpans(s),o=r[wt.find(r,e-s.from,-1,t)];return hn(i,o.dir==X.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Dc)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Sm)return wc(e.length);let t=this.textDirectionAt(e.from),i;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==t&&(r.fresh||vc(r.isolates,i=Ul(this,e))))return r.order;i||(i=Ul(this,e));let s=yp(e.text,t,i);return this.bidiCache.push(new ps(e.from,e.to,t,i,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||B.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{rc(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Cn.of(new oi(typeof e=="number"?x.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,i=this.viewState.scrollAnchorAt(e);return Cn.of(new oi(x.cursor(i.from),"start","start",i.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return Z.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Z.define(()=>({}),{eventObservers:e})}static theme(e,t){let i=At.newName(),s=[Rn.of(i),Bi.of(ho(`.${i}`,e))];return t&&t.dark&&s.push(lo.of(!0)),s}static baseTheme(e){return Gt.lowest(Bi.of(ho("."+ao,e,Jc)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),s=i&&K.get(i)||K.get(e);return((t=s?.rootView)===null||t===void 0?void 0:t.view)||null}}E.styleModule=Bi;E.inputHandler=Mc;E.clipboardInputFilter=zo;E.clipboardOutputFilter=qo;E.scrollHandler=Ec;E.focusChangeEffect=Pc;E.perLineTextDirection=Dc;E.exceptionSink=Tc;E.updateListener=no;E.editable=ct;E.mouseSelectionStyle=Ac;E.dragMovesSelection=Cc;E.clickAddsSelectionRange=Oc;E.decorations=Gi;E.outerDecorations=Ic;E.atomicRanges=_o;E.bidiIsolatedRanges=Nc;E.scrollMargins=$c;E.darkTheme=lo;E.cspNonce=L.define({combine:n=>n.length?n[0]:""});E.contentAttributes=Ho;E.editorAttributes=Lc;E.lineWrapping=E.contentAttributes.of({class:"cm-lineWrapping"});E.announce=F.define();const Sm=4096,ga={};class ps{constructor(e,t,i,s,r,o){this.from=e,this.to=t,this.dir=i,this.isolates=s,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some(r=>r.fresh))return e;let i=[],s=e.length?e[e.length-1].dir:X.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=i[s],o=typeof r=="function"?r(n):r;o&&Yr(o,t)}return t}const Om=B.mac?"mac":B.windows?"win":B.linux?"linux":"key";function Cm(n,e){const t=n.split(/-(?!$)/);let i=t[t.length-1];i=="Space"&&(i=" ");let s,r,o,l;for(let a=0;ai.concat(s),[]))),t}function Tm(n,e,t){return ef(Zc(n.state),e,n,t)}let xt=null;const Mm=4e3;function Pm(n,e=Om){let t=Object.create(null),i=Object.create(null),s=(o,l)=>{let a=i[o];if(a==null)i[o]=l;else if(a!=l)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},r=(o,l,a,h,c)=>{var f,u;let d=t[o]||(t[o]=Object.create(null)),p=l.split(/ (?!$)/).map(y=>Cm(y,e));for(let y=1;y{let w=xt={view:O,prefix:k,scope:o};return setTimeout(()=>{xt==w&&(xt=null)},Mm),!0}]})}let m=p.join(" ");s(m,!1);let g=d[m]||(d[m]={preventDefault:!1,stopPropagation:!1,run:((u=(f=d._any)===null||f===void 0?void 0:f.run)===null||u===void 0?void 0:u.slice())||[]});a&&g.run.push(a),h&&(g.preventDefault=!0),c&&(g.stopPropagation=!0)};for(let o of n){let l=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of l){let c=t[h]||(t[h]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:f}=o;for(let u in c)c[u].run.push(d=>f(d,co))}let a=o[e]||o.key;if(a)for(let h of l)r(h,a,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(h,"Shift-"+a,o.shift,o.preventDefault,o.stopPropagation)}return t}let co=null;function ef(n,e,t,i){co=e;let s=Yd(e),r=we(s,0),o=Je(r)==s.length&&s!=" ",l="",a=!1,h=!1,c=!1;xt&&xt.view==t&&xt.scope==i&&(l=xt.prefix+" ",qc.indexOf(e.keyCode)<0&&(h=!0,xt=null));let f=new Set,u=g=>{if(g){for(let y of g.run)if(!f.has(y)&&(f.add(y),y(t)))return g.stopPropagation&&(c=!0),!0;g.preventDefault&&(g.stopPropagation&&(c=!0),h=!0)}return!1},d=n[i],p,m;return d&&(u(d[l+En(s,e,!o)])?a=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(B.windows&&e.ctrlKey&&e.altKey)&&!(B.mac&&e.altKey&&!e.ctrlKey)&&(p=Tt[e.keyCode])&&p!=s?(u(d[l+En(p,e,!0)])||e.shiftKey&&(m=Ui[e.keyCode])!=s&&m!=p&&u(d[l+En(m,e,!1)]))&&(a=!0):o&&e.shiftKey&&u(d[l+En(s,e,!0)])&&(a=!0),!a&&u(d._any)&&(a=!0)),h&&(a=!0),a&&c&&e.stopPropagation(),co=null,a}class dn{constructor(e,t,i,s,r){this.className=e,this.left=t,this.top=i,this.width=s,this.height=r}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,i){if(i.empty){let s=e.coordsAtPos(i.head,i.assoc||1);if(!s)return[];let r=tf(e);return[new dn(t,s.left-r.left,s.top-r.top,null,s.bottom-s.top)]}else return Dm(e,t,i)}}function tf(n){let e=n.scrollDOM.getBoundingClientRect();return{left:(n.textDirection==X.LTR?e.left:e.right-n.scrollDOM.clientWidth*n.scaleX)-n.scrollDOM.scrollLeft*n.scaleX,top:e.top-n.scrollDOM.scrollTop*n.scaleY}}function xa(n,e,t,i){let s=n.coordsAtPos(e,t*2);if(!s)return i;let r=n.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,l=n.posAtCoords({x:r.left+1,y:o}),a=n.posAtCoords({x:r.right-1,y:o});return l==null||a==null?i:{from:Math.max(i.from,Math.min(l,a)),to:Math.min(i.to,Math.max(l,a))}}function Dm(n,e,t){if(t.to<=n.viewport.from||t.from>=n.viewport.to)return[];let i=Math.max(t.from,n.viewport.from),s=Math.min(t.to,n.viewport.to),r=n.textDirection==X.LTR,o=n.contentDOM,l=o.getBoundingClientRect(),a=tf(n),h=o.querySelector(".cm-line"),c=h&&window.getComputedStyle(h),f=l.left+(c?parseInt(c.paddingLeft)+Math.min(0,parseInt(c.textIndent)):0),u=l.right-(c?parseInt(c.paddingRight):0),d=ro(n,i,1),p=ro(n,s,-1),m=d.type==xe.Text?d:null,g=p.type==xe.Text?p:null;if(m&&(n.lineWrapping||d.widgetLineBreaks)&&(m=xa(n,i,1,m)),g&&(n.lineWrapping||p.widgetLineBreaks)&&(g=xa(n,s,-1,g)),m&&g&&m.from==g.from&&m.to==g.to)return k(O(t.from,t.to,m));{let v=m?O(t.from,null,m):w(d,!1),A=g?O(null,t.to,g):w(p,!0),M=[];return(m||d).to<(g||p).from-(m&&g?1:0)||d.widgetLineBreaks>1&&v.bottom+n.defaultLineHeight/2C&&R.from=Y)break;Re>V&&T(Math.max(he,V),v==null&&he<=C,Math.min(Re,Y),A==null&&Re>=b,je.dir)}if(V=ge.to+1,V>=Y)break}return P.length==0&&T(C,v==null,b,A==null,n.textDirection),{top:$,bottom:W,horizontal:P}}function w(v,A){let M=l.top+(A?v.top:v.bottom);return{top:M,bottom:M,horizontal:[]}}}function Rm(n,e){return n.constructor==e.constructor&&n.eq(e)}class Em{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(es)!=e.state.facet(es)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,i=e.facet(es);for(;t!Rm(t,this.drawn[i]))){let t=this.dom.firstChild,i=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[i].constructor&&s.update(t,this.drawn[i])?(t=t.nextSibling,i++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const es=L.define();function nf(n){return[Z.define(e=>new Em(e,n)),es.of(n)]}const Qi=L.define({combine(n){return He(n,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function sf(n={}){return[Qi.of(n),Bm,Lm,Im,Rc.of(!0)]}function rf(n){return n.startState.facet(Qi)!=n.state.facet(Qi)}const Bm=nf({above:!0,markers(n){let{state:e}=n,t=e.facet(Qi),i=[];for(let s of e.selection.ranges){let r=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=r?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=s.empty?s:x.cursor(s.head,s.head>s.anchor?-1:1);for(let a of dn.forRange(n,o,l))i.push(a)}}return i},update(n,e){n.transactions.some(i=>i.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=rf(n);return t&&ka(n.state,e),n.docChanged||n.selectionSet||t},mount(n,e){ka(e.state,n)},class:"cm-cursorLayer"});function ka(n,e){e.style.animationDuration=n.facet(Qi).cursorBlinkRate+"ms"}const Lm=nf({above:!1,markers(n){return n.state.selection.ranges.map(e=>e.empty?[]:dn.forRange(n,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(n,e){return n.docChanged||n.selectionSet||n.viewportChanged||rf(n)},class:"cm-selectionLayer"}),Im=Gt.highest(E.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),of=F.define({map(n,e){return n==null?null:e.mapPos(n)}}),Ni=re.define({create(){return null},update(n,e){return n!=null&&(n=e.changes.mapPos(n)),e.effects.reduce((t,i)=>i.is(of)?i.value:t,n)}}),Nm=Z.fromClass(class{constructor(n){this.view=n,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(n){var e;let t=n.state.field(Ni);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(n.startState.field(Ni)!=t||n.docChanged||n.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:n}=this,e=n.state.field(Ni),t=e!=null&&n.coordsAtPos(e);if(!t)return null;let i=n.scrollDOM.getBoundingClientRect();return{left:t.left-i.left+n.scrollDOM.scrollLeft*n.scaleX,top:t.top-i.top+n.scrollDOM.scrollTop*n.scaleY,height:t.bottom-t.top}}drawCursor(n){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;n?(this.cursor.style.left=n.left/e+"px",this.cursor.style.top=n.top/t+"px",this.cursor.style.height=n.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(n){this.view.state.field(Ni)!=n&&this.view.dispatch({effects:of.of(n)})}},{eventObservers:{dragover(n){this.setDropPos(this.view.posAtCoords({x:n.clientX,y:n.clientY}))},dragleave(n){(n.target==this.view.contentDOM||!this.view.contentDOM.contains(n.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function $m(){return[Ni,Nm]}function va(n,e,t,i,s){e.lastIndex=0;for(let r=n.iterRange(t,i),o=t,l;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;l=e.exec(r.value);)s(o+l.index,l)}function Fm(n,e){let t=n.visibleRanges;if(t.length==1&&t[0].from==n.viewport.from&&t[0].to==n.viewport.to)return t;let i=[];for(let{from:s,to:r}of t)s=Math.max(n.state.doc.lineAt(s).from,s-e),r=Math.min(n.state.doc.lineAt(r).to,r+e),i.length&&i[i.length-1].to>=s?i[i.length-1].to=r:i.push({from:s,to:r});return i}class Vm{constructor(e){const{regexp:t,decoration:i,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(l,a,h,c)=>s(c,h,h+l[0].length,l,a);else if(typeof i=="function")this.addMatch=(l,a,h,c)=>{let f=i(l,a,h);f&&c(h,h+l[0].length,f)};else if(i)this.addMatch=(l,a,h,c)=>c(h,h+l[0].length,i);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let t=new ut,i=t.add.bind(t);for(let{from:s,to:r}of Fm(e,this.maxLength))va(e.state.doc,this.regexp,s,r,(o,l)=>this.addMatch(l,e,o,i));return t.finish()}updateDeco(e,t){let i=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,o,l,a)=>{a>=e.view.viewport.from&&l<=e.view.viewport.to&&(i=Math.min(l,i),s=Math.max(a,s))}),e.viewportMoved||s-i>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),i,s):t}updateRange(e,t,i,s){for(let r of e.visibleRanges){let o=Math.max(r.from,i),l=Math.min(r.to,s);if(l>=o){let a=e.state.doc.lineAt(o),h=a.toa.from;o--)if(this.boundary.test(a.text[o-1-a.from])){c=o;break}for(;lu.push(y.range(m,g));if(a==h)for(this.regexp.lastIndex=c-a.from;(d=this.regexp.exec(a.text))&&d.indexthis.addMatch(g,e,m,p));t=t.update({filterFrom:c,filterTo:f,filter:(m,g)=>mf,add:u})}}return t}}const fo=/x/.unicode!=null?"gu":"g",Wm=new RegExp(`[\0-\b +--Ÿ­؜​‎‏\u2028\u2029‭‮⁦⁧⁩\uFEFF-]`,fo),zm={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let ar=null;function qm(){var n;if(ar==null&&typeof document<"u"&&document.body){let e=document.body.style;ar=((n=e.tabSize)!==null&&n!==void 0?n:e.MozTabSize)!=null}return ar||!1}const ts=L.define({combine(n){let e=He(n,{render:null,specialChars:Wm,addSpecialChars:null});return(e.replaceTabs=!qm())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,fo)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,fo)),e}});function lf(n={}){return[ts.of(n),Hm()]}let wa=null;function Hm(){return wa||(wa=Z.fromClass(class{constructor(n){this.view=n,this.decorations=N.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(n.state.facet(ts)),this.decorations=this.decorator.createDeco(n)}makeDecorator(n){return new Vm({regexp:n.specialChars,decoration:(e,t,i)=>{let{doc:s}=t.state,r=we(e[0],0);if(r==9){let o=s.lineAt(i),l=t.state.tabSize,a=vi(o.text,l,i-o.from);return N.replace({widget:new Km((l-a%l)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[r]||(this.decorationCache[r]=N.replace({widget:new Um(n,r)}))},boundary:n.replaceTabs?void 0:/[^]/})}update(n){let e=n.state.facet(ts);n.startState.facet(ts)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(n.view)):this.decorations=this.decorator.updateDeco(n,this.decorations)}},{decorations:n=>n.decorations}))}const _m="•";function jm(n){return n>=32?_m:n==10?"␤":String.fromCharCode(9216+n)}class Um extends gt{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=jm(this.code),i=e.state.phrase("Control character")+" "+(zm[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,i,t);if(s)return s;let r=document.createElement("span");return r.textContent=t,r.title=i,r.setAttribute("aria-label",i),r.className="cm-specialChar",r}ignoreEvent(){return!1}}class Km extends gt{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function Gm(){return Xm}const Qm=N.line({class:"cm-activeLine"}),Xm=Z.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.docChanged||n.selectionSet)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=-1,t=[];for(let i of n.state.selection.ranges){let s=n.lineBlockAt(i.head);s.from>e&&(t.push(Qm.range(s.from)),e=s.from)}return N.set(t)}},{decorations:n=>n.decorations});class Ym extends gt{constructor(e){super(),this.content=e}toDOM(e){let t=document.createElement("span");return t.className="cm-placeholder",t.style.pointerEvents="none",t.appendChild(typeof this.content=="string"?document.createTextNode(this.content):typeof this.content=="function"?this.content(e):this.content.cloneNode(!0)),t.setAttribute("aria-hidden","true"),t}coordsAt(e){let t=e.firstChild?ui(e.firstChild):[];if(!t.length)return null;let i=window.getComputedStyle(e.parentNode),s=hn(t[0],i.direction!="rtl"),r=parseInt(i.lineHeight);return s.bottom-s.top>r*1.5?{left:s.left,right:s.right,top:s.top,bottom:s.top+r}:s}ignoreEvent(){return!1}}function Jm(n){let e=Z.fromClass(class{constructor(t){this.view=t,this.placeholder=n?N.set([N.widget({widget:new Ym(n),side:1}).range(0)]):N.none}get decorations(){return this.view.state.doc.length?N.none:this.placeholder}},{decorations:t=>t.decorations});return typeof n=="string"?[e,E.contentAttributes.of({"aria-placeholder":n})]:e}const uo=2e3;function Zm(n,e,t){let i=Math.min(e.line,t.line),s=Math.max(e.line,t.line),r=[];if(e.off>uo||t.off>uo||e.col<0||t.col<0){let o=Math.min(e.off,t.off),l=Math.max(e.off,t.off);for(let a=i;a<=s;a++){let h=n.doc.line(a);h.length<=l&&r.push(x.range(h.from+o,h.to+l))}}else{let o=Math.min(e.col,t.col),l=Math.max(e.col,t.col);for(let a=i;a<=s;a++){let h=n.doc.line(a),c=_r(h.text,o,n.tabSize,!0);if(c<0)r.push(x.cursor(h.to));else{let f=_r(h.text,l,n.tabSize);r.push(x.range(h.from+c,h.from+f))}}}return r}function eg(n,e){let t=n.coordsAtPos(n.viewport.from);return t?Math.round(Math.abs((t.left-e)/n.defaultCharacterWidth)):-1}function Sa(n,e){let t=n.posAtCoords({x:e.clientX,y:e.clientY},!1),i=n.state.doc.lineAt(t),s=t-i.from,r=s>uo?-1:s==i.length?eg(n,e.clientX):vi(i.text,n.state.tabSize,t-i.from);return{line:i.number,col:r,off:s}}function tg(n,e){let t=Sa(n,e),i=n.state.selection;return t?{update(s){if(s.docChanged){let r=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(r);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},i=i.map(s.changes)}},get(s,r,o){let l=Sa(n,s);if(!l)return i;let a=Zm(n.state,t,l);return a.length?o?x.create(a.concat(i.ranges)):x.create(a):i}}:null}function ig(n){let e=(t=>t.altKey&&t.button==0);return E.mouseSelectionStyle.of((t,i)=>e(i)?tg(t,i):null)}const ng={Alt:[18,n=>!!n.altKey],Control:[17,n=>!!n.ctrlKey],Shift:[16,n=>!!n.shiftKey],Meta:[91,n=>!!n.metaKey]},sg={style:"cursor: crosshair"};function rg(n={}){let[e,t]=ng[n.key||"Alt"],i=Z.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[i,E.contentAttributes.of(s=>{var r;return!((r=s.plugin(i))===null||r===void 0)&&r.isDown?sg:null})]}const Ti="-10000px";class af{constructor(e,t,i,s){this.facet=t,this.createTooltipView=i,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=i(o,r))}update(e,t){var i;let s=e.state.facet(this.facet),r=s.filter(a=>a);if(s===this.input){for(let a of this.tooltipViews)a.update&&a.update(e);return!1}let o=[],l=t?[]:null;for(let a=0;at[h]=a),t.length=l.length),this.input=s,this.tooltips=r,this.tooltipViews=o,!0}}function og(n){let e=n.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const hr=L.define({combine:n=>{var e,t,i;return{position:B.ios?"absolute":((e=n.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=n.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((i=n.find(s=>s.tooltipSpace))===null||i===void 0?void 0:i.tooltipSpace)||og}}}),Oa=new WeakMap,Qo=Z.fromClass(class{constructor(n){this.view=n,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=n.state.facet(hr);this.position=e.position,this.parent=e.parent,this.classes=n.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new af(n,Ls,(t,i)=>this.createTooltip(t,i),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),n.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let n of this.manager.tooltipViews)this.intersectionObserver.observe(n.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(n){n.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(n,this.above);e&&this.observeIntersection();let t=e||n.geometryChanged,i=n.state.facet(hr);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(n,e){let t=n.create(this.view),i=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),n.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=Ti,t.dom.style.left="0px",this.container.insertBefore(t.dom,i),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var n,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let i of this.manager.tooltipViews)i.dom.remove(),(n=i.destroy)===null||n===void 0||n.call(i);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let n=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(B.gecko)t=r.offsetParent!=this.container.ownerDocument.body;else if(r.style.top==Ti&&r.style.left=="0px"){let o=r.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}}if(t||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(n=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:n,scaleY:e}=this.view.viewState);let i=this.view.scrollDOM.getBoundingClientRect(),s=jo(this.view);return{visible:{left:i.left+s.left,top:i.top+s.top,right:i.right-s.right,bottom:i.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((r,o)=>{let l=this.manager.tooltipViews[o];return l.getCoords?l.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(hr).tooltipSpace(this.view),scaleX:n,scaleY:e,makeAbsolute:t}}writeMeasure(n){var e;if(n.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let l of this.manager.tooltipViews)l.dom.style.position="absolute"}let{visible:t,space:i,scaleX:s,scaleY:r}=n,o=[];for(let l=0;l=Math.min(t.bottom,i.bottom)||f.rightMath.min(t.right,i.right)+.1)){c.style.top=Ti;continue}let d=a.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=d?7:0,m=u.right-u.left,g=(e=Oa.get(h))!==null&&e!==void 0?e:u.bottom-u.top,y=h.offset||ag,k=this.view.textDirection==X.LTR,O=u.width>i.right-i.left?k?i.left:i.right-u.width:k?Math.max(i.left,Math.min(f.left-(d?14:0)+y.x,i.right-m)):Math.min(Math.max(i.left,f.left-m+(d?14:0)-y.x),i.right-m),w=this.above[l];!a.strictSide&&(w?f.top-g-p-y.yi.bottom)&&w==i.bottom-f.bottom>f.top-i.top&&(w=this.above[l]=!w);let v=(w?f.top-i.top:i.bottom-f.bottom)-p;if(vO&&$.topA&&(A=w?$.top-g-2-p:$.bottom+p+2);if(this.position=="absolute"?(c.style.top=(A-n.parent.top)/r+"px",Ca(c,(O-n.parent.left)/s)):(c.style.top=A/r+"px",Ca(c,O/s)),d){let $=f.left+(k?y.x:-y.x)-(O+14-7);d.style.left=$/s+"px"}h.overlap!==!0&&o.push({left:O,top:A,right:M,bottom:A+g}),c.classList.toggle("cm-tooltip-above",w),c.classList.toggle("cm-tooltip-below",!w),h.positioned&&h.positioned(n.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let n of this.manager.tooltipViews)n.dom.style.top=Ti}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Ca(n,e){let t=parseInt(n.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(n.style.left=e+"px")}const lg=E.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),ag={x:0,y:0},Ls=L.define({enables:[Qo,lg]}),ms=L.define({combine:n=>n.reduce((e,t)=>e.concat(t),[])});class Is{static create(e){return new Is(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new af(e,ms,(t,i)=>this.createHostedView(t,i),t=>t.dom.remove())}createHostedView(e,t){let i=e.create(this.view);return i.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(i.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&i.mount&&i.mount(this.view),i}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let i of this.manager.tooltipViews){let s=i[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const hg=Ls.compute([ms],n=>{let e=n.facet(ms);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var i;return(i=t.end)!==null&&i!==void 0?i:t.pos})),create:Is.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class cg{constructor(e,t,i,s,r){this.view=e,this.source=t,this.field=i,this.setHover=s,this.hoverTime=r,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;el.bottom||t.xl.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(s)).find(c=>c.from<=s&&c.to>=s),h=a&&a.dir==X.RTL?-1:1;r=t.x{this.pending==l&&(this.pending=null,a&&!(Array.isArray(a)&&!a.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(a)?a:[a])}))},a=>be(e.state,a,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Qo),t=e?e.manager.tooltips.findIndex(i=>i.create==Is.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,i;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:r}=this;if(s.length&&r&&!fg(r.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,l=(i=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&i!==void 0?i:o;(o==l?this.view.posAtCoords(this.lastMove)!=o:!ug(this.view,o,l,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:i}=this;i&&i.dom.contains(e.relatedTarget)?this.watchTooltipLeave(i.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=i=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(i.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Bn=4;function fg(n,e){let{left:t,right:i,top:s,bottom:r}=n.getBoundingClientRect(),o;if(o=n.querySelector(".cm-tooltip-arrow")){let l=o.getBoundingClientRect();s=Math.min(l.top,s),r=Math.max(l.bottom,r)}return e.clientX>=t-Bn&&e.clientX<=i+Bn&&e.clientY>=s-Bn&&e.clientY<=r+Bn}function ug(n,e,t,i,s,r){let o=n.scrollDOM.getBoundingClientRect(),l=n.documentTop+n.documentPadding.top+n.contentHeight;if(o.left>i||o.rights||Math.min(o.bottom,l)=e&&a<=t}function dg(n,e={}){let t=F.define(),i=re.define({create(){return[]},update(s,r){if(s.length&&(e.hideOnChange&&(r.docChanged||r.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(r,o))),r.docChanged)){let o=[];for(let l of s){let a=r.changes.mapPos(l.pos,-1,ye.TrackDel);if(a!=null){let h=Object.assign(Object.create(null),l);h.pos=a,h.end!=null&&(h.end=r.changes.mapPos(h.end)),o.push(h)}}s=o}for(let o of r.effects)o.is(t)&&(s=o.value),o.is(pg)&&(s=[]);return s},provide:s=>ms.from(s)});return{active:i,extension:[i,Z.define(s=>new cg(s,n,i,t,e.hoverTime||300)),hg]}}function hf(n,e){let t=n.plugin(Qo);if(!t)return null;let i=t.manager.tooltips.indexOf(e);return i<0?null:t.manager.tooltipViews[i]}const pg=F.define(),Aa=L.define({combine(n){let e,t;for(let i of n)e=e||i.topContainer,t=t||i.bottomContainer;return{topContainer:e,bottomContainer:t}}});function Xi(n,e){let t=n.plugin(cf),i=t?t.specs.indexOf(e):-1;return i>-1?t.panels[i]:null}const cf=Z.fromClass(class{constructor(n){this.input=n.state.facet(Yi),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(n));let e=n.state.facet(Aa);this.top=new Ln(n,!0,e.topContainer),this.bottom=new Ln(n,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(n){let e=n.state.facet(Aa);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Ln(n.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ln(n.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=n.state.facet(Yi);if(t!=this.input){let i=t.filter(a=>a),s=[],r=[],o=[],l=[];for(let a of i){let h=this.specs.indexOf(a),c;h<0?(c=a(n.view),l.push(c)):(c=this.panels[h],c.update&&c.update(n)),s.push(c),(c.top?r:o).push(c)}this.specs=i,this.panels=s,this.top.sync(r),this.bottom.sync(o);for(let a of l)a.dom.classList.add("cm-panel"),a.mount&&a.mount()}else for(let i of this.panels)i.update&&i.update(n)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:n=>E.scrollMargins.of(e=>{let t=e.plugin(n);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Ln{constructor(e,t,i){this.view=e,this.top=t,this.container=i,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Ta(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Ta(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Ta(n){let e=n.nextSibling;return n.remove(),e}const Yi=L.define({enables:cf});class rt extends qt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}rt.prototype.elementClass="";rt.prototype.toDOM=void 0;rt.prototype.mapMode=ye.TrackBefore;rt.prototype.startSide=rt.prototype.endSide=-1;rt.prototype.point=!0;const is=L.define(),mg=L.define(),gg={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>H.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},zi=L.define();function ff(n){return[uf(),zi.of({...gg,...n})]}const Ma=L.define({combine:n=>n.some(e=>e)});function uf(n){return[yg]}const yg=Z.fromClass(class{constructor(n){this.view=n,this.domAfter=null,this.prevViewport=n.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=n.state.facet(zi).map(e=>new Da(n,e)),this.fixed=!n.state.facet(Ma);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),n.scrollDOM.insertBefore(this.dom,n.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(n){if(this.updateGutters(n)){let e=this.prevViewport,t=n.view.viewport,i=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(i<(t.to-t.from)*.8)}if(n.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Ma)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=n.view.viewport}syncGutters(n){let e=this.dom.nextSibling;n&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=H.iter(this.view.state.facet(is),this.view.viewport.from),i=[],s=this.gutters.map(r=>new bg(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let o=!0;for(let l of r.type)if(l.type==xe.Text&&o){po(t,i,l.from);for(let a of s)a.line(this.view,l,i);o=!1}else if(l.widget)for(let a of s)a.widget(this.view,l)}else if(r.type==xe.Text){po(t,i,r.from);for(let o of s)o.line(this.view,r,i)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();n&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(n){let e=n.startState.facet(zi),t=n.state.facet(zi),i=n.docChanged||n.heightChanged||n.viewportChanged||!H.eq(n.startState.facet(is),n.state.facet(is),n.view.viewport.from,n.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(n)&&(i=!0);else{i=!0;let s=[];for(let r of t){let o=e.indexOf(r);o<0?s.push(new Da(this.view,r)):(this.gutters[o].update(n),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return i}destroy(){for(let n of this.gutters)n.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:n=>E.scrollMargins.of(e=>{let t=e.plugin(n);if(!t||t.gutters.length==0||!t.fixed)return null;let i=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==X.LTR?{left:i,right:s}:{right:i,left:s}})});function Pa(n){return Array.isArray(n)?n:[n]}function po(n,e,t){for(;n.value&&n.from<=t;)n.from==t&&e.push(n.value),n.next()}class bg{constructor(e,t,i){this.gutter=e,this.height=i,this.i=0,this.cursor=H.iter(e.markers,t.from)}addElement(e,t,i){let{gutter:s}=this,r=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let l=new df(e,o,r,i);s.elements.push(l),s.dom.appendChild(l.dom)}else s.elements[this.i].update(e,o,r,i);this.height=t.bottom,this.i++}line(e,t,i){let s=[];po(this.cursor,s,t.from),i.length&&(s=s.concat(i));let r=this.gutter.config.lineMarker(e,t,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let i=this.gutter.config.widgetMarker(e,t.widget,t),s=i?[i]:null;for(let r of e.state.facet(mg)){let o=r(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Da{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let i in t.domEventHandlers)this.dom.addEventListener(i,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let a=r.getBoundingClientRect();o=(a.top+a.bottom)/2}else o=s.clientY;let l=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[i](e,l,s)&&s.preventDefault()});this.markers=Pa(t.markers(e)),t.initialSpacer&&(this.spacer=new df(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Pa(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let i=e.view.viewport;return!H.eq(this.markers,t,i.from,i.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class df{constructor(e,t,i,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,i,s)}update(e,t,i,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=i&&(this.dom.style.marginTop=(this.above=i)?i+"px":""),xg(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let i="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let l=o,a=rr(l,a,h)||o(l,a,h):o}return i}})}});class cr extends rt{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function fr(n,e){return n.state.facet(ti).formatNumber(e,n.state)}const wg=zi.compute([ti],n=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(kg)},lineMarker(e,t,i){return i.some(s=>s.toDOM)?null:new cr(fr(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,i)=>{for(let s of e.state.facet(vg)){let r=s(e,t,i);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(ti)!=e.state.facet(ti),initialSpacer(e){return new cr(fr(e,Ra(e.state.doc.lines)))},updateSpacer(e,t){let i=fr(t.view,Ra(t.view.state.doc.lines));return i==e.number?e:new cr(i)},domEventHandlers:n.facet(ti).domEventHandlers,side:"before"}));function Sg(n={}){return[ti.of(n),uf(),wg]}function Ra(n){let e=9;for(;e{let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.head).from;s>t&&(t=s,e.push(Og.range(s)))}return H.of(e)});function Ag(){return Cg}const pf=1024;let Tg=0;class ur{constructor(e,t){this.from=e,this.to=t}}class q{constructor(e={}){this.id=Tg++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=ve.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}}q.closedBy=new q({deserialize:n=>n.split(" ")});q.openedBy=new q({deserialize:n=>n.split(" ")});q.group=new q({deserialize:n=>n.split(" ")});q.isolate=new q({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});q.contextHash=new q({perNode:!0});q.lookAhead=new q({perNode:!0});q.mounted=new q({perNode:!0});class gs{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[q.mounted.id]}}const Mg=Object.create(null);class ve{constructor(e,t,i,s=0){this.name=e,this.props=t,this.id=i,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):Mg,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new ve(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[r[0].id]=r[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(q.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let s of i.split(" "))t[s]=e[i];return i=>{for(let s=i.prop(q.group),r=-1;r<(s?s.length:0);r++){let o=t[r<0?i.name:s[r]];if(o)return o}}}}ve.none=new ve("",Object.create(null),0,8);class Ns{constructor(e){this.types=e;for(let t=0;t0;for(let a=this.cursor(o|oe.IncludeAnonymous);;){let h=!1;if(a.from<=r&&a.to>=s&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Jo(ve.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,s)=>new G(this.type,t,i,s,this.propValues),e.makeTree||((t,i,s)=>new G(ve.none,t,i,s)))}static build(e){return Eg(e)}}G.empty=new G(ve.none,[],[],0);class Xo{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new Xo(this.buffer,this.index)}}class Pt{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return ve.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,i){let s=this.buffer,r=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function Ji(n,e,t,i){for(var s;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to0?l.length:-1;e!=h;e+=t){let c=l[e],f=a[e]+o.from;if(mf(s,i,f,f+c.length)){if(c instanceof Pt){if(r&oe.ExcludeBuffers)continue;let u=c.findChild(0,c.buffer.length,t,i-f,s);if(u>-1)return new St(new Pg(o,c,e,f),null,u)}else if(r&oe.IncludeAnonymous||!c.type.isAnonymous||Yo(c)){let u;if(!(r&oe.IgnoreMounts)&&(u=gs.get(c))&&!u.overlay)return new Fe(u.tree,f,e,o);let d=new Fe(c,f,e,o);return r&oe.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?c.children.length-1:0,t,i,s)}}}if(r&oe.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let s;if(!(i&oe.IgnoreOverlays)&&(s=gs.get(this._tree))&&s.overlay){let r=e-this.from;for(let{from:o,to:l}of s.overlay)if((t>0?o<=r:o=r:l>r))return new Fe(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function Ba(n,e,t,i){let s=n.cursor(),r=[];if(!s.firstChild())return r;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return r}for(;;){if(i!=null&&s.type.is(i))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return i==null?r:[]}}function mo(n,e,t=e.length-1){for(let i=n;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}class Pg{constructor(e,t,i,s){this.parent=e,this.buffer=t,this.index=i,this.start=s}}class St extends gf{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new St(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&oe.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new St(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new St(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new St(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,s=this.index+4,r=i.buffer[this.index+3];if(r>s){let o=i.buffer[this.index+1];e.push(i.slice(s,r,o)),t.push(0)}return new G(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function yf(n){if(!n.length)return null;let e=0,t=n[0];for(let r=1;rt.from||o.to=e){let l=new Fe(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[i])).push(Ji(l,e,t,!1))}}return s?yf(s):i}class go{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Fe)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=i+s.buffer[e+1],this.to=i+s.buffer[e+2],!0}yield(e){return e?e instanceof Fe?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&oe.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&oe.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&oe.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let s=i<0?0:this.stack[i]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(s)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let l=i._tree.children[r];if(this.mode&oe.IncludeAnonymous||l instanceof Pt||!l.type.isAnonymous||Yo(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,i=r+1;break e}s=this.stack[--r]}for(let s=i;s=0;r--){if(r<0)return mo(this._tree,e,s);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function Yo(n){return n.children.some(e=>e instanceof Pt||!e.type.isAnonymous||Yo(e))}function Eg(n){var e;let{buffer:t,nodeSet:i,maxBufferLength:s=pf,reused:r=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(t)?new Xo(t,t.length):t,a=i.types,h=0,c=0;function f(v,A,M,$,W,P){let{id:T,start:C,end:b,size:R}=l,V=c,Y=h;for(;R<0;)if(l.next(),R==-1){let lt=r[T];M.push(lt),$.push(C-v);return}else if(R==-3){h=T;return}else if(R==-4){c=T;return}else throw new RangeError(`Unrecognized record size: ${R}`);let ge=a[T],je,he,Re=C-v;if(b-C<=s&&(he=g(l.pos-A,W))){let lt=new Uint16Array(he.size-he.skip),Ee=l.pos-he.size,Ue=lt.length;for(;l.pos>Ee;)Ue=y(he.start,lt,Ue);je=new Pt(lt,b-he.start,i),Re=he.start-v}else{let lt=l.pos-R;l.next();let Ee=[],Ue=[],Bt=T>=o?T:-1,Qt=0,kn=b;for(;l.pos>lt;)Bt>=0&&l.id==Bt&&l.size>=0?(l.end<=kn-s&&(p(Ee,Ue,C,Qt,l.end,kn,Bt,V,Y),Qt=Ee.length,kn=l.end),l.next()):P>2500?u(C,lt,Ee,Ue):f(C,lt,Ee,Ue,Bt,P+1);if(Bt>=0&&Qt>0&&Qt-1&&Qt>0){let vl=d(ge,Y);je=Jo(ge,Ee,Ue,0,Ee.length,0,b-C,vl,vl)}else je=m(ge,Ee,Ue,b-C,V-b,Y)}M.push(je),$.push(Re)}function u(v,A,M,$){let W=[],P=0,T=-1;for(;l.pos>A;){let{id:C,start:b,end:R,size:V}=l;if(V>4)l.next();else{if(T>-1&&b=0;R-=3)C[V++]=W[R],C[V++]=W[R+1]-b,C[V++]=W[R+2]-b,C[V++]=V;M.push(new Pt(C,W[2]-b,i)),$.push(b-v)}}function d(v,A){return(M,$,W)=>{let P=0,T=M.length-1,C,b;if(T>=0&&(C=M[T])instanceof G){if(!T&&C.type==v&&C.length==W)return C;(b=C.prop(q.lookAhead))&&(P=$[T]+C.length+b)}return m(v,M,$,W,P,A)}}function p(v,A,M,$,W,P,T,C,b){let R=[],V=[];for(;v.length>$;)R.push(v.pop()),V.push(A.pop()+M-W);v.push(m(i.types[T],R,V,P-W,C-P,b)),A.push(W-M)}function m(v,A,M,$,W,P,T){if(P){let C=[q.contextHash,P];T=T?[C].concat(T):[C]}if(W>25){let C=[q.lookAhead,W];T=T?[C].concat(T):[C]}return new G(v,A,M,$,T)}function g(v,A){let M=l.fork(),$=0,W=0,P=0,T=M.end-s,C={size:0,start:0,skip:0};e:for(let b=M.pos-v;M.pos>b;){let R=M.size;if(M.id==A&&R>=0){C.size=$,C.start=W,C.skip=P,P+=4,$+=4,M.next();continue}let V=M.pos-R;if(R<0||V=o?4:0,ge=M.start;for(M.next();M.pos>V;){if(M.size<0)if(M.size==-3)Y+=4;else break e;else M.id>=o&&(Y+=4);M.next()}W=ge,$+=R,P+=Y}return(A<0||$==v)&&(C.size=$,C.start=W,C.skip=P),C.size>4?C:void 0}function y(v,A,M){let{id:$,start:W,end:P,size:T}=l;if(l.next(),T>=0&&$4){let b=l.pos-(T-4);for(;l.pos>b;)M=y(v,A,M)}A[--M]=C,A[--M]=P-v,A[--M]=W-v,A[--M]=$}else T==-3?h=$:T==-4&&(c=$);return M}let k=[],O=[];for(;l.pos>0;)f(n.start||0,n.bufferStart||0,k,O,-1,0);let w=(e=n.length)!==null&&e!==void 0?e:k.length?O[0]+k[0].length:0;return new G(a[n.topID],k.reverse(),O.reverse(),w)}const La=new WeakMap;function ns(n,e){if(!n.isAnonymous||e instanceof Pt||e.type!=n)return 1;let t=La.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=n||!(i instanceof G)){t=1;break}t+=ns(n,i)}La.set(e,t)}return t}function Jo(n,e,t,i,s,r,o,l,a){let h=0;for(let p=i;p=c)break;A+=M}if(O==w+1){if(A>c){let M=p[w];d(M.children,M.positions,0,M.children.length,m[w]+k);continue}f.push(p[w])}else{let M=m[O-1]+p[O-1].length-v;f.push(Jo(n,p,m,w,O,v,M,null,a))}u.push(v+k-r)}}return d(e,t,i,s,0),(l||a)(f,u,o)}class Wt{constructor(e,t,i,s,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let s=[new Wt(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&s.push(r);return s}static applyChanges(e,t,i=128){if(!t.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let c=l=i)for(;o&&o.from=u.from||f<=u.to||h){let d=Math.max(u.from,a)-h,p=Math.min(u.to,f)-h;u=d>=p?null:new Wt(d,p,u.tree,u.offset+h,l>0,!!c)}if(u&&s.push(u),o.to>f)break;o=rnew ur(s.from,s.to)):[new ur(0,0)]:[new ur(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let s=this.startParse(e,t,i);for(;;){let r=s.advance();if(r)return r}}}class Bg{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}new q({perNode:!0});let Lg=0;class Be{constructor(e,t,i,s){this.name=e,this.set=t,this.base=i,this.modified=s,this.id=Lg++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let i=typeof e=="string"?e:"?";if(e instanceof Be&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let s=new Be(i,[],null,[]);if(s.set.push(s),t)for(let r of t.set)s.set.push(r);return s}static defineModifier(e){let t=new ys(e);return i=>i.modified.indexOf(t)>-1?i:ys.get(i.base||i,i.modified.concat(t).sort((s,r)=>s.id-r.id))}}let Ig=0;class ys{constructor(e){this.name=e,this.instances=[],this.id=Ig++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&Ng(t,l.modified));if(i)return i;let s=[],r=new Be(e.name,s,e,t);for(let l of t)l.instances.push(r);let o=$g(t);for(let l of e.set)if(!l.modified.length)for(let a of o)s.push(ys.get(l,a));return r}}function Ng(n,e){return n.length==e.length&&n.every((t,i)=>t==e[i])}function $g(n){let e=[[]];for(let t=0;ti.length-t.length)}function el(n){let e=Object.create(null);for(let t in n){let i=n[t];Array.isArray(i)||(i=[i]);for(let s of t.split(" "))if(s){let r=[],o=2,l=s;for(let f=0;;){if(l=="..."&&f>0&&f+3==s.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+s);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==s.length)break;let d=s[f++];if(f==s.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+s);l=s.slice(f)}let a=r.length-1,h=r[a];if(!h)throw new RangeError("Invalid path: "+s);let c=new bs(i,o,a>0?r.slice(0,a):null);e[h]=c.sort(e[h])}}return bf.add(e)}const bf=new q;class bs{constructor(e,t,i,s){this.tags=e,this.mode=t,this.context=i,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let l of r)for(let a of l.set){let h=t[a.id];if(h){o=o?o+" "+h:h;break}}return o},scope:i}}function Fg(n,e){let t=null;for(let i of n){let s=i.style(e);s&&(t=t?t+" "+s:s)}return t}function Vg(n,e,t,i=0,s=n.length){let r=new Wg(i,Array.isArray(e)?e:[e],t);r.highlightRange(n.cursor(),i,s,"",r.highlighters),r.flush(s)}class Wg{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,s,r){let{type:o,from:l,to:a}=e;if(l>=i||a<=t)return;o.isTop&&(r=this.highlighters.filter(d=>!d.scope||d.scope(o)));let h=s,c=zg(e)||bs.empty,f=Fg(r,c.tags);if(f&&(h&&(h+=" "),h+=f,c.mode==1&&(s+=(s?" ":"")+f)),this.startSpan(Math.max(t,l),h),c.opaque)return;let u=e.tree&&e.tree.prop(q.mounted);if(u&&u.overlay){let d=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(u.tree.type)),m=e.firstChild();for(let g=0,y=l;;g++){let k=g=O||!e.nextSibling())););if(!k||O>i)break;y=k.to+l,y>t&&(this.highlightRange(d.cursor(),Math.max(t,k.from+l),Math.min(i,y),"",p),this.startSpan(Math.min(i,y),h))}m&&e.parent()}else if(e.firstChild()){u&&(s="");do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,s,r),this.startSpan(Math.min(i,e.to),h)}while(e.nextSibling());e.parent()}}}function zg(n){let e=n.type.prop(bf);for(;e&&e.context&&!n.matchContext(e.context);)e=e.next;return e||null}const D=Be.define,Nn=D(),yt=D(),Ia=D(yt),Na=D(yt),bt=D(),$n=D(bt),dr=D(bt),Xe=D(),Lt=D(Xe),Ge=D(),Qe=D(),yo=D(),Mi=D(yo),Fn=D(),S={comment:Nn,lineComment:D(Nn),blockComment:D(Nn),docComment:D(Nn),name:yt,variableName:D(yt),typeName:Ia,tagName:D(Ia),propertyName:Na,attributeName:D(Na),className:D(yt),labelName:D(yt),namespace:D(yt),macroName:D(yt),literal:bt,string:$n,docString:D($n),character:D($n),attributeValue:D($n),number:dr,integer:D(dr),float:D(dr),bool:D(bt),regexp:D(bt),escape:D(bt),color:D(bt),url:D(bt),keyword:Ge,self:D(Ge),null:D(Ge),atom:D(Ge),unit:D(Ge),modifier:D(Ge),operatorKeyword:D(Ge),controlKeyword:D(Ge),definitionKeyword:D(Ge),moduleKeyword:D(Ge),operator:Qe,derefOperator:D(Qe),arithmeticOperator:D(Qe),logicOperator:D(Qe),bitwiseOperator:D(Qe),compareOperator:D(Qe),updateOperator:D(Qe),definitionOperator:D(Qe),typeOperator:D(Qe),controlOperator:D(Qe),punctuation:yo,separator:D(yo),bracket:Mi,angleBracket:D(Mi),squareBracket:D(Mi),paren:D(Mi),brace:D(Mi),content:Xe,heading:Lt,heading1:D(Lt),heading2:D(Lt),heading3:D(Lt),heading4:D(Lt),heading5:D(Lt),heading6:D(Lt),contentSeparator:D(Xe),list:D(Xe),quote:D(Xe),emphasis:D(Xe),strong:D(Xe),link:D(Xe),monospace:D(Xe),strikethrough:D(Xe),inserted:D(),deleted:D(),changed:D(),invalid:D(),meta:Fn,documentMeta:D(Fn),annotation:D(Fn),processingInstruction:D(Fn),definition:Be.defineModifier("definition"),constant:Be.defineModifier("constant"),function:Be.defineModifier("function"),standard:Be.defineModifier("standard"),local:Be.defineModifier("local"),special:Be.defineModifier("special")};for(let n in S){let e=S[n];e instanceof Be&&(e.name=n)}xf([{tag:S.link,class:"tok-link"},{tag:S.heading,class:"tok-heading"},{tag:S.emphasis,class:"tok-emphasis"},{tag:S.strong,class:"tok-strong"},{tag:S.keyword,class:"tok-keyword"},{tag:S.atom,class:"tok-atom"},{tag:S.bool,class:"tok-bool"},{tag:S.url,class:"tok-url"},{tag:S.labelName,class:"tok-labelName"},{tag:S.inserted,class:"tok-inserted"},{tag:S.deleted,class:"tok-deleted"},{tag:S.literal,class:"tok-literal"},{tag:S.string,class:"tok-string"},{tag:S.number,class:"tok-number"},{tag:[S.regexp,S.escape,S.special(S.string)],class:"tok-string2"},{tag:S.variableName,class:"tok-variableName"},{tag:S.local(S.variableName),class:"tok-variableName tok-local"},{tag:S.definition(S.variableName),class:"tok-variableName tok-definition"},{tag:S.special(S.variableName),class:"tok-variableName2"},{tag:S.definition(S.propertyName),class:"tok-propertyName tok-definition"},{tag:S.typeName,class:"tok-typeName"},{tag:S.namespace,class:"tok-namespace"},{tag:S.className,class:"tok-className"},{tag:S.macroName,class:"tok-macroName"},{tag:S.propertyName,class:"tok-propertyName"},{tag:S.operator,class:"tok-operator"},{tag:S.comment,class:"tok-comment"},{tag:S.meta,class:"tok-meta"},{tag:S.invalid,class:"tok-invalid"},{tag:S.punctuation,class:"tok-punctuation"}]);var pr;const Ft=new q;function kf(n){return L.define({combine:n?e=>e.concat(n):void 0})}const qg=new q;class Le{constructor(e,t,i=[],s=""){this.data=e,this.name=s,z.prototype.hasOwnProperty("tree")||Object.defineProperty(z.prototype,"tree",{get(){return ae(this)}}),this.parser=t,this.extension=[Dt.of(this),z.languageData.of((r,o,l)=>{let a=$a(r,o,l),h=a.type.prop(Ft);if(!h)return[];let c=r.facet(h),f=a.type.prop(qg);if(f){let u=a.resolve(o-a.from,l);for(let d of f)if(d.test(u,r)){let p=r.facet(d.facet);return d.type=="replace"?p:p.concat(c)}}return c})].concat(i)}isActiveAt(e,t,i=-1){return $a(e,t,i).type.prop(Ft)==this.data}findRegions(e){let t=e.facet(Dt);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],s=(r,o)=>{if(r.prop(Ft)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(q.mounted);if(l){if(l.tree.prop(Ft)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let a=i.length;if(s(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;ai.isTop?t:void 0)]}),e.name)}configure(e,t){return new Zi(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ae(n){let e=n.field(Le.state,!1);return e?e.tree:G.empty}class Hg{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let i=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}}let Pi=null;class gi{constructor(e,t,i=[],s,r,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new gi(e,t,[],G.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Hg(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=G.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Wt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Pi;Pi=this;try{return e()}finally{Pi=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Fa(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:s,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,c,f,u)=>a.push({fromA:h,toA:c,fromB:f,toB:u})),i=Wt.applyChanges(i,a),s=G.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),f=e.mapPos(h.to,-1);ce.from&&(this.fragments=Fa(this.fragments,s,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends Zo{createParse(t,i,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let a=Pi;if(a){for(let h of s)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new G(ve.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Pi}}function Fa(n,e,t){return Wt.applyChanges(n,[{fromA:e,toA:t,fromB:e,toB:t}])}class yi{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new yi(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=gi.create(e.facet(Dt).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new yi(i)}}Le.state=re.define({create:yi.init,update(n,e){for(let t of e.effects)if(t.is(Le.setState))return t.value;return e.startState.facet(Dt)!=e.state.facet(Dt)?yi.init(e.state):n.apply(e)}});let vf=n=>{let e=setTimeout(()=>n(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(vf=n=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(n,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const mr=typeof navigator<"u"&&(!((pr=navigator.scheduling)===null||pr===void 0)&&pr.isInputPending)?()=>navigator.scheduling.isInputPending():null,_g=Z.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Le.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Le.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=vf(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnds+1e3,a=r.context.work(()=>mr&&mr()||Date.now()>o,s+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Le.setState.of(new yi(r.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>be(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),Dt=L.define({combine(n){return n.length?n[0]:null},enables:n=>[Le.state,_g,E.contentAttributes.compute([n],e=>{let t=e.facet(n);return t&&t.name?{"data-language":t.name}:{}})]});class wf{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}const jg=L.define(),$s=L.define({combine:n=>{if(!n.length)return" ";let e=n[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(n[0]));return e}});function Ut(n){let e=n.facet($s);return e.charCodeAt(0)==9?n.tabSize*e.length:e.length}function en(n,e){let t="",i=n.tabSize,s=n.facet($s)[0];if(s==" "){for(;e>=i;)t+=" ",e-=i;s=" "}for(let r=0;r=e?Ug(n,t,e):null}class Fs{constructor(e,t={}){this.state=e,this.options=t,this.unit=Ut(e)}lineAt(e,t=1){let i=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=i.from&&s<=i.to?r&&s==e?{text:"",from:e}:(t<0?s-1&&(r+=o-this.countColumn(i,i.search(/\S|$/))),r}countColumn(e,t=e.length){return vi(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:i,from:s}=this.lineAt(e,t),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(i,i.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Vs=new q;function Ug(n,e,t){let i=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=i.node){let r=[];for(let o=s;o&&!(o.fromi.node.to||o.from==i.node.from&&o.type==i.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)i={node:r[o],next:i}}return Sf(i,n,t)}function Sf(n,e,t){for(let i=n;i;i=i.next){let s=Gg(i.node);if(s)return s(il.create(e,t,i))}return 0}function Kg(n){return n.pos==n.options.simulateBreak&&n.options.simulateDoubleBreak}function Gg(n){let e=n.type.prop(Vs);if(e)return e;let t=n.firstChild,i;if(t&&(i=t.type.prop(q.closedBy))){let s=n.lastChild,r=s&&i.indexOf(s.name)>-1;return o=>Jg(o,!0,1,void 0,r&&!Kg(o)?s.from:void 0)}return n.parent==null?Qg:null}function Qg(){return 0}class il extends Fs{constructor(e,t,i){super(e.state,e.options),this.base=e,this.pos=t,this.context=i}get node(){return this.context.node}static create(e,t,i){return new il(e,t,i)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let i=e.resolve(t.from);for(;i.parent&&i.parent.from==i.from;)i=i.parent;if(Xg(i,e))break;t=this.state.doc.lineAt(i.from)}return this.lineIndent(t.from)}continue(){return Sf(this.context.next,this.base,this.pos)}}function Xg(n,e){for(let t=e;t;t=t.parent)if(n==t)return!0;return!1}function Yg(n){let e=n.node,t=e.childAfter(e.from),i=e.lastChild;if(!t)return null;let s=n.options.simulateBreak,r=n.state.doc.lineAt(t.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==i)return null;if(!a.type.isSkipped){if(a.from>=o)return null;let h=/^ */.exec(r.text.slice(t.to-r.from))[0].length;return{from:t.from,to:t.to+h}}l=a.to}}function Jg(n,e,t,i,s){let r=n.textAfter,o=r.match(/^\s*/)[0].length,l=i&&r.slice(o,o+i.length)==i||s==n.pos+o,a=Yg(n);return a?l?n.column(a.from):n.column(a.to):n.baseIndent+(l?0:n.unit*t)}function Va({except:n,units:e=1}={}){return t=>{let i=n&&n.test(t.textAfter);return t.baseIndent+(i?0:e*t.unit)}}const Zg=200;function e0(){return z.transactionFilter.of(n=>{if(!n.docChanged||!n.isUserEvent("input.type")&&!n.isUserEvent("input.complete"))return n;let e=n.startState.languageDataAt("indentOnInput",n.startState.selection.main.head);if(!e.length)return n;let t=n.newDoc,{head:i}=n.newSelection.main,s=t.lineAt(i);if(i>s.from+Zg)return n;let r=t.sliceString(s.from,i);if(!e.some(h=>h.test(r)))return n;let{state:o}=n,l=-1,a=[];for(let{head:h}of o.selection.ranges){let c=o.doc.lineAt(h);if(c.from==l)continue;l=c.from;let f=tl(o,c.from);if(f==null)continue;let u=/^\s*/.exec(c.text)[0],d=en(o,f);u!=d&&a.push({from:c.from,to:c.from+u.length,insert:d})}return a.length?[n,{changes:a,sequential:!0}]:n})}const t0=L.define(),nl=new q;function i0(n){let e=n.firstChild,t=n.lastChild;return e&&e.tot)continue;if(r&&l.from=e&&h.to>t&&(r=h)}}return r}function s0(n){let e=n.lastChild;return e&&e.to==n.to&&e.type.isError}function xs(n,e,t){for(let i of n.facet(t0)){let s=i(n,e,t);if(s)return s}return n0(n,e,t)}function Of(n,e){let t=e.mapPos(n.from,1),i=e.mapPos(n.to,-1);return t>=i?void 0:{from:t,to:i}}const Ws=F.define({map:Of}),pn=F.define({map:Of});function Cf(n){let e=[];for(let{head:t}of n.state.selection.ranges)e.some(i=>i.from<=t&&i.to>=t)||e.push(n.lineBlockAt(t));return e}const Kt=re.define({create(){return N.none},update(n,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,i)=>n=Wa(n,t,i)),n=n.map(e.changes);for(let t of e.effects)if(t.is(Ws)&&!r0(n,t.value.from,t.value.to)){let{preparePlaceholder:i}=e.state.facet(Mf),s=i?N.replace({widget:new u0(i(e.state,t.value))}):za;n=n.update({add:[s.range(t.value.from,t.value.to)]})}else t.is(pn)&&(n=n.update({filter:(i,s)=>t.value.from!=i||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(n=Wa(n,e.selection.main.head)),n},provide:n=>E.decorations.from(n),toJSON(n,e){let t=[];return n.between(0,e.doc.length,(i,s)=>{t.push(i,s)}),t},fromJSON(n){if(!Array.isArray(n)||n.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t{se&&(i=!0)}),i?n.update({filterFrom:e,filterTo:t,filter:(s,r)=>s>=t||r<=e}):n}function ks(n,e,t){var i;let s=null;return(i=n.field(Kt,!1))===null||i===void 0||i.between(e,t,(r,o)=>{(!s||s.from>r)&&(s={from:r,to:o})}),s}function r0(n,e,t){let i=!1;return n.between(e,e,(s,r)=>{s==e&&r==t&&(i=!0)}),i}function Af(n,e){return n.field(Kt,!1)?e:e.concat(F.appendConfig.of(Pf()))}const o0=n=>{for(let e of Cf(n)){let t=xs(n.state,e.from,e.to);if(t)return n.dispatch({effects:Af(n.state,[Ws.of(t),Tf(n,t)])}),!0}return!1},l0=n=>{if(!n.state.field(Kt,!1))return!1;let e=[];for(let t of Cf(n)){let i=ks(n.state,t.from,t.to);i&&e.push(pn.of(i),Tf(n,i,!1))}return e.length&&n.dispatch({effects:e}),e.length>0};function Tf(n,e,t=!0){let i=n.state.doc.lineAt(e.from).number,s=n.state.doc.lineAt(e.to).number;return E.announce.of(`${n.state.phrase(t?"Folded lines":"Unfolded lines")} ${i} ${n.state.phrase("to")} ${s}.`)}const a0=n=>{let{state:e}=n,t=[];for(let i=0;i{let e=n.state.field(Kt,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,n.state.doc.length,(i,s)=>{t.push(pn.of({from:i,to:s}))}),n.dispatch({effects:t}),!0},c0=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:o0},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:l0},{key:"Ctrl-Alt-[",run:a0},{key:"Ctrl-Alt-]",run:h0}],f0={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},Mf=L.define({combine(n){return He(n,f0)}});function Pf(n){return[Kt,m0]}function Df(n,e){let{state:t}=n,i=t.facet(Mf),s=o=>{let l=n.lineBlockAt(n.posAtDOM(o.target)),a=ks(n.state,l.from,l.to);a&&n.dispatch({effects:pn.of(a)}),o.preventDefault()};if(i.placeholderDOM)return i.placeholderDOM(n,s,e);let r=document.createElement("span");return r.textContent=i.placeholderText,r.setAttribute("aria-label",t.phrase("folded code")),r.title=t.phrase("unfold"),r.className="cm-foldPlaceholder",r.onclick=s,r}const za=N.replace({widget:new class extends gt{toDOM(n){return Df(n,null)}}});class u0 extends gt{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Df(e,this.value)}}const d0={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class gr extends rt{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function p0(n={}){let e={...d0,...n},t=new gr(e,!0),i=new gr(e,!1),s=Z.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(Dt)!=o.state.facet(Dt)||o.startState.field(Kt,!1)!=o.state.field(Kt,!1)||ae(o.startState)!=ae(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let l=new ut;for(let a of o.viewportLineBlocks){let h=ks(o.state,a.from,a.to)?i:xs(o.state,a.from,a.to)?t:null;h&&l.add(a.from,a.from,h)}return l.finish()}}),{domEventHandlers:r}=e;return[s,ff({class:"cm-foldGutter",markers(o){var l;return((l=o.plugin(s))===null||l===void 0?void 0:l.markers)||H.empty},initialSpacer(){return new gr(e,!1)},domEventHandlers:{...r,click:(o,l,a)=>{if(r.click&&r.click(o,l,a))return!0;let h=ks(o.state,l.from,l.to);if(h)return o.dispatch({effects:pn.of(h)}),!0;let c=xs(o.state,l.from,l.to);return c?(o.dispatch({effects:Ws.of(c)}),!0):!1}}}),Pf()]}const m0=E.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class zs{constructor(e,t){this.specs=e;let i;function s(l){let a=At.newName();return(i||(i=Object.create(null)))["."+a]=l,a}const r=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof Le?l=>l.prop(Ft)==o.data:o?l=>l==o:void 0,this.style=xf(e.map(l=>({tag:l.tag,class:l.class||s(Object.assign({},l,{tag:null}))})),{all:r}).style,this.module=i?new At(i):null,this.themeType=t.themeType}static define(e,t){return new zs(e,t||{})}}const bo=L.define(),Rf=L.define({combine(n){return n.length?[n[0]]:null}});function yr(n){let e=n.facet(bo);return e.length?e:n.facet(Rf)}function Ef(n,e){let t=[y0],i;return n instanceof zs&&(n.module&&t.push(E.styleModule.of(n.module)),i=n.themeType),e?.fallback?t.push(Rf.of(n)):i?t.push(bo.computeN([E.darkTheme],s=>s.facet(E.darkTheme)==(i=="dark")?[n]:[])):t.push(bo.of(n)),t}class g0{constructor(e){this.markCache=Object.create(null),this.tree=ae(e.state),this.decorations=this.buildDeco(e,yr(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ae(e.state),i=yr(e.state),s=i!=yr(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,i),this.decoratedTo=r.to)}buildDeco(e,t){if(!t||!this.tree.length)return N.none;let i=new ut;for(let{from:s,to:r}of e.visibleRanges)Vg(this.tree,t,(o,l,a)=>{i.add(o,l,this.markCache[a]||(this.markCache[a]=N.mark({class:a})))},s,r);return i.finish()}}const y0=Gt.high(Z.fromClass(g0,{decorations:n=>n.decorations})),Bf=zs.define([{tag:S.meta,color:"#404740"},{tag:S.link,textDecoration:"underline"},{tag:S.heading,textDecoration:"underline",fontWeight:"bold"},{tag:S.emphasis,fontStyle:"italic"},{tag:S.strong,fontWeight:"bold"},{tag:S.strikethrough,textDecoration:"line-through"},{tag:S.keyword,color:"#708"},{tag:[S.atom,S.bool,S.url,S.contentSeparator,S.labelName],color:"#219"},{tag:[S.literal,S.inserted],color:"#164"},{tag:[S.string,S.deleted],color:"#a11"},{tag:[S.regexp,S.escape,S.special(S.string)],color:"#e40"},{tag:S.definition(S.variableName),color:"#00f"},{tag:S.local(S.variableName),color:"#30a"},{tag:[S.typeName,S.namespace],color:"#085"},{tag:S.className,color:"#167"},{tag:[S.special(S.variableName),S.macroName],color:"#256"},{tag:S.definition(S.propertyName),color:"#00c"},{tag:S.comment,color:"#940"},{tag:S.invalid,color:"#f00"}]),b0=E.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Lf=1e4,If="()[]{}",Nf=L.define({combine(n){return He(n,{afterCursor:!0,brackets:If,maxScanDistance:Lf,renderMatch:v0})}}),x0=N.mark({class:"cm-matchingBracket"}),k0=N.mark({class:"cm-nonmatchingBracket"});function v0(n){let e=[],t=n.matched?x0:k0;return e.push(t.range(n.start.from,n.start.to)),n.end&&e.push(t.range(n.end.from,n.end.to)),e}const w0=re.define({create(){return N.none},update(n,e){if(!e.docChanged&&!e.selection)return n;let t=[],i=e.state.facet(Nf);for(let s of e.state.selection.ranges){if(!s.empty)continue;let r=et(e.state,s.head,-1,i)||s.head>0&&et(e.state,s.head-1,1,i)||i.afterCursor&&(et(e.state,s.head,1,i)||s.headE.decorations.from(n)}),S0=[w0,b0];function O0(n={}){return[Nf.of(n),S0]}const $f=new q;function xo(n,e,t){let i=n.prop(e<0?q.openedBy:q.closedBy);if(i)return i;if(n.name.length==1){let s=t.indexOf(n.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function ko(n){let e=n.type.prop($f);return e?e(n.node):n}function et(n,e,t,i={}){let s=i.maxScanDistance||Lf,r=i.brackets||If,o=ae(n),l=o.resolveInner(e,t);for(let a=l;a;a=a.parent){let h=xo(a.type,t,r);if(h&&a.from0?e>=c.from&&ec.from&&e<=c.to))return C0(n,e,t,a,c,h,r)}}return A0(n,e,t,o,l.type,s,r)}function C0(n,e,t,i,s,r,o){let l=i.parent,a={from:s.from,to:s.to},h=0,c=l?.cursor();if(c&&(t<0?c.childBefore(i.from):c.childAfter(i.to)))do if(t<0?c.to<=i.from:c.from>=i.to){if(h==0&&r.indexOf(c.type.name)>-1&&c.from0)return null;let h={from:t<0?e-1:e,to:t>0?e+1:e},c=n.doc.iterRange(e,t>0?n.doc.length:0),f=0;for(let u=0;!c.next().done&&u<=r;){let d=c.value;t<0&&(u+=d.length);let p=e+u*t;for(let m=t>0?0:d.length-1,g=t>0?d.length:-1;m!=g;m+=t){let y=o.indexOf(d[m]);if(!(y<0||i.resolveInner(p+m,1).type!=s))if(y%2==0==t>0)f++;else{if(f==1)return{start:h,end:{from:p+m,to:p+m+1},matched:y>>1==a>>1};f--}}t>0&&(u+=d.length)}return c.done?{start:h,matched:!1}:null}function qa(n,e,t,i=0,s=0){e==null&&(e=n.search(/[^\s\u00a0]/),e==-1&&(e=n.length));let r=s;for(let o=i;o=this.string.length}sol(){return this.pos==0}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosi?o.toLowerCase():o,r=this.string.substr(this.pos,e.length);return s(r)==s(e)?(t!==!1&&(this.pos+=e.length),!0):null}else{let s=this.string.slice(this.pos).match(e);return s&&s.index>0?null:(s&&t!==!1&&(this.pos+=s[0].length),s)}}current(){return this.string.slice(this.start,this.pos)}}function T0(n){return{name:n.name||"",token:n.token,blankLine:n.blankLine||(()=>{}),startState:n.startState||(()=>!0),copyState:n.copyState||M0,indent:n.indent||(()=>null),languageData:n.languageData||{},tokenTable:n.tokenTable||rl,mergeTokens:n.mergeTokens!==!1}}function M0(n){if(typeof n!="object")return n;let e={};for(let t in n){let i=n[t];e[t]=i instanceof Array?i.slice():i}return e}const Ha=new WeakMap;class qi extends Le{constructor(e){let t=kf(e.languageData),i=T0(e),s,r=new class extends Zo{createParse(o,l,a){return new D0(s,o,l,a)}};super(t,r,[],e.name),this.topNode=B0(t,this),s=this,this.streamParser=i,this.stateAfter=new q({perNode:!0}),this.tokenTable=e.tokenTable?new qf(i.tokenTable):E0}static define(e){return new qi(e)}getIndent(e){let t,{overrideIndentation:i}=e.options;i&&(t=Ha.get(e.state),t!=null&&t1e4)return null;for(;r=i&&t+e.length<=s&&e.prop(n.stateAfter);if(r)return{state:n.streamParser.copyState(r),pos:t+e.length};for(let o=e.children.length-1;o>=0;o--){let l=e.children[o],a=t+e.positions[o],h=l instanceof G&&a=e.length)return e;!s&&t==0&&e.type==n.topNode&&(s=!0);for(let r=e.children.length-1;r>=0;r--){let o=e.positions[r],l=e.children[r],a;if(ot&&sl(n,r.tree,0-r.offset,t,l),h;if(a&&a.pos<=i&&(h=Vf(n,r.tree,t+r.offset,a.pos+r.offset,!1)))return{state:a.state,tree:h}}return{state:n.streamParser.startState(s?Ut(s):4),tree:G.empty}}let D0=class{constructor(e,t,i,s){this.lang=e,this.input=t,this.fragments=i,this.ranges=s,this.stoppedAt=null,this.chunks=[],this.chunkPos=[],this.chunk=[],this.chunkReused=void 0,this.rangeIndex=0,this.to=s[s.length-1].to;let r=gi.get(),o=s[0].from,{state:l,tree:a}=P0(e,i,o,this.to,r?.state);this.state=l,this.parsedPos=this.chunkStart=o+a.length;for(let h=0;hh.from<=r.viewport.from&&h.to>=r.viewport.from)&&(this.state=this.lang.streamParser.startState(Ut(r.state)),r.skipUntilInView(this.parsedPos,r.viewport.from),this.parsedPos=r.viewport.from),this.moveRangeIndex()}advance(){let e=gi.get(),t=this.stoppedAt==null?this.to:Math.min(this.to,this.stoppedAt),i=Math.min(t,this.chunkStart+512);for(e&&(i=Math.min(i,e.viewport.to));this.parsedPos=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)t==` +`&&(t="");else{let i=t.indexOf(` +`);i>-1&&(t=t.slice(0,i))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),i=e+t.length;for(let s=this.rangeIndex;;){let r=this.ranges[s].to;if(r>=i||(t=t.slice(0,r-(i-t.length)),s++,s==this.ranges.length))break;let o=this.ranges[s].from,l=this.lineAfter(o);t+=l,i=o+l.length}return{line:t,end:i}}skipGapsTo(e,t,i){for(;;){let s=this.ranges[this.rangeIndex].to,r=e+t;if(i>0?s>r:s>=r)break;let o=this.ranges[++this.rangeIndex].from;t+=o-s}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){s=this.skipGapsTo(t,s,1),t+=s;let l=this.chunk.length;s=this.skipGapsTo(i,s,-1),i+=s,r+=this.chunk.length-l}let o=this.chunk.length-4;return this.lang.streamParser.mergeTokens&&r==4&&o>=0&&this.chunk[o]==e&&this.chunk[o+2]==t?this.chunk[o+2]=i:this.chunk.push(e,t,i,r),s}parseLine(e){let{line:t,end:i}=this.nextLine(),s=0,{streamParser:r}=this.lang,o=new Ff(t,e?e.state.tabSize:4,e?Ut(e.state):2);if(o.eol())r.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let l=Wf(r.token,o,this.state);if(l&&(s=this.emitToken(this.lang.tokenTable.resolve(l),this.parsedPos+o.start,this.parsedPos+o.pos,s)),o.start>1e4)break}this.parsedPos=i,this.moveRangeIndex(),this.parsedPose.start)return s}throw new Error("Stream parser failed to advance stream.")}const rl=Object.create(null),tn=[ve.none],R0=new Ns(tn),_a=[],ja=Object.create(null),zf=Object.create(null);for(let[n,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])zf[n]=Hf(rl,e);class qf{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),zf)}resolve(e){return e?this.table[e]||(this.table[e]=Hf(this.extra,e)):0}}const E0=new qf(rl);function br(n,e){_a.indexOf(n)>-1||(_a.push(n),console.warn(e))}function Hf(n,e){let t=[];for(let l of e.split(" ")){let a=[];for(let h of l.split(".")){let c=n[h]||S[h];c?typeof c=="function"?a.length?a=a.map(c):br(h,`Modifier ${h} used at start of tag`):a.length?br(h,`Tag ${h} used as modifier`):a=Array.isArray(c)?c:[c]:br(h,`Unknown highlighting tag ${h}`)}for(let h of a)t.push(h)}if(!t.length)return 0;let i=e.replace(/ /g,"_"),s=i+" "+t.map(l=>l.id),r=ja[s];if(r)return r.id;let o=ja[s]=ve.define({id:tn.length,name:i,props:[el({[i]:t})]});return tn.push(o),o.id}function B0(n,e){let t=ve.define({id:tn.length,name:"Document",props:[Ft.add(()=>n),Vs.add(()=>i=>e.getIndent(i))],top:!0});return tn.push(t),t}X.RTL,X.LTR;const L0=n=>{let{state:e}=n,t=e.doc.lineAt(e.selection.main.from),i=ll(n.state,t.from);return i.line?I0(n):i.block?$0(n):!1};function ol(n,e){return({state:t,dispatch:i})=>{if(t.readOnly)return!1;let s=n(e,t);return s?(i(t.update(s)),!0):!1}}const I0=ol(W0,0),N0=ol(_f,0),$0=ol((n,e)=>_f(n,e,V0(e)),0);function ll(n,e){let t=n.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Di=50;function F0(n,{open:e,close:t},i,s){let r=n.sliceDoc(i-Di,i),o=n.sliceDoc(s,s+Di),l=/\s*$/.exec(r)[0].length,a=/^\s*/.exec(o)[0].length,h=r.length-l;if(r.slice(h-e.length,h)==e&&o.slice(a,a+t.length)==t)return{open:{pos:i-l,margin:l&&1},close:{pos:s+a,margin:a&&1}};let c,f;s-i<=2*Di?c=f=n.sliceDoc(i,s):(c=n.sliceDoc(i,i+Di),f=n.sliceDoc(s-Di,s));let u=/^\s*/.exec(c)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return c.slice(u,u+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:i+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function V0(n){let e=[];for(let t of n.selection.ranges){let i=n.doc.lineAt(t.from),s=t.to<=i.to?i:n.doc.lineAt(t.to);s.from>i.from&&s.from==t.to&&(s=t.to==i.to+1?i:n.doc.lineAt(t.to-1));let r=e.length-1;r>=0&&e[r].to>i.from?e[r].to=s.to:e.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:s.to})}return e}function _f(n,e,t=e.selection.ranges){let i=t.map(r=>ll(e,r.from).block);if(!i.every(r=>r))return null;let s=t.map((r,o)=>F0(e,i[o],r.from,r.to));if(n!=2&&!s.every(r=>r))return{changes:e.changes(t.map((r,o)=>s[o]?[]:[{from:r.from,insert:i[o].open+" "},{from:r.to,insert:" "+i[o].close}]))};if(n!=1&&s.some(r=>r)){let r=[];for(let o=0,l;os&&(r==o||o>f.from)){s=f.from;let u=/^\s*/.exec(f.text)[0].length,d=u==f.length,p=f.text.slice(u,u+h.length)==h?u:-1;ur.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:l,token:a,indent:h,empty:c,single:f}of i)(f||!c)&&r.push({from:l.from+h,insert:a+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(n!=1&&i.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:l,token:a}of i)if(l>=0){let h=o.from+l,c=h+a.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}const vo=mt.define(),z0=mt.define(),q0=L.define(),jf=L.define({combine(n){return He(n,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(i,s)=>e(i,s)||t(i,s)})}}),Uf=re.define({create(){return tt.empty},update(n,e){let t=e.state.facet(jf),i=e.annotation(vo);if(i){let a=Ce.fromTransaction(e,i.selection),h=i.side,c=h==0?n.undone:n.done;return a?c=vs(c,c.length,t.minDepth,a):c=Xf(c,e.startState.selection),new tt(h==0?i.rest:c,h==0?c:i.rest)}let s=e.annotation(z0);if((s=="full"||s=="before")&&(n=n.isolate()),e.annotation(se.addToHistory)===!1)return e.changes.empty?n:n.addMapping(e.changes.desc);let r=Ce.fromTransaction(e),o=e.annotation(se.time),l=e.annotation(se.userEvent);return r?n=n.addChanges(r,o,l,t,e):e.selection&&(n=n.addSelection(e.startState.selection,o,l,t.newGroupDelay)),(s=="full"||s=="after")&&(n=n.isolate()),n},toJSON(n){return{done:n.done.map(e=>e.toJSON()),undone:n.undone.map(e=>e.toJSON())}},fromJSON(n){return new tt(n.done.map(Ce.fromJSON),n.undone.map(Ce.fromJSON))}});function Kf(n={}){return[Uf,jf.of(n),E.domEventHandlers({beforeinput(e,t){let i=e.inputType=="historyUndo"?Gf:e.inputType=="historyRedo"?wo:null;return i?(e.preventDefault(),i(t)):!1}})]}function qs(n,e){return function({state:t,dispatch:i}){if(!e&&t.readOnly)return!1;let s=t.field(Uf,!1);if(!s)return!1;let r=s.pop(n,t,e);return r?(i(r),!0):!1}}const Gf=qs(0,!1),wo=qs(1,!1),H0=qs(0,!0),_0=qs(1,!0);class Ce{constructor(e,t,i,s,r){this.changes=e,this.effects=t,this.mapped=i,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new Ce(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,i;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(i=this.startSelection)===null||i===void 0?void 0:i.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new Ce(e.changes&&ne.fromJSON(e.changes),[],e.mapped&&nt.fromJSON(e.mapped),e.startSelection&&x.fromJSON(e.startSelection),e.selectionsAfter.map(x.fromJSON))}static fromTransaction(e,t){let i=Ie;for(let s of e.startState.facet(q0)){let r=s(e);r.length&&(i=i.concat(r))}return!i.length&&e.changes.empty?null:new Ce(e.changes.invert(e.startState.doc),i,void 0,t||e.startState.selection,Ie)}static selection(e){return new Ce(void 0,Ie,void 0,void 0,e)}}function vs(n,e,t,i){let s=e+1>t+20?e-t-1:0,r=n.slice(s,e);return r.push(i),r}function j0(n,e){let t=[],i=!1;return n.iterChangedRanges((s,r)=>t.push(s,r)),e.iterChangedRanges((s,r,o,l)=>{for(let a=0;a=h&&o<=c&&(i=!0)}}),i}function U0(n,e){return n.ranges.length==e.ranges.length&&n.ranges.filter((t,i)=>t.empty!=e.ranges[i].empty).length===0}function Qf(n,e){return n.length?e.length?n.concat(e):n:e}const Ie=[],K0=200;function Xf(n,e){if(n.length){let t=n[n.length-1],i=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-K0));return i.length&&i[i.length-1].eq(e)?n:(i.push(e),vs(n,n.length-1,1e9,t.setSelAfter(i)))}else return[Ce.selection([e])]}function G0(n){let e=n[n.length-1],t=n.slice();return t[n.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function xr(n,e){if(!n.length)return n;let t=n.length,i=Ie;for(;t;){let s=Q0(n[t-1],e,i);if(s.changes&&!s.changes.empty||s.effects.length){let r=n.slice(0,t);return r[t-1]=s,r}else e=s.mapped,t--,i=s.selectionsAfter}return i.length?[Ce.selection(i)]:Ie}function Q0(n,e,t){let i=Qf(n.selectionsAfter.length?n.selectionsAfter.map(l=>l.map(e)):Ie,t);if(!n.changes)return Ce.selection(i);let s=n.changes.map(e),r=e.mapDesc(n.changes,!0),o=n.mapped?n.mapped.composeDesc(r):r;return new Ce(s,F.mapEffects(n.effects,e),o,n.startSelection.map(r),i)}const X0=/^(input\.type|delete)($|\.)/;class tt{constructor(e,t,i=0,s=void 0){this.done=e,this.undone=t,this.prevTime=i,this.prevUserEvent=s}isolate(){return this.prevTime?new tt(this.done,this.undone):this}addChanges(e,t,i,s,r){let o=this.done,l=o[o.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!i||X0.test(i))&&(!l.selectionsAfter.length&&t-this.prevTime0&&t-this.prevTimet.empty?n.moveByChar(t,e):Hs(t,e))}function me(n){return n.textDirectionAt(n.state.selection.main.head)==X.LTR}const Zf=n=>Jf(n,!me(n)),eu=n=>Jf(n,me(n));function tu(n,e){return _e(n,t=>t.empty?n.moveByGroup(t,e):Hs(t,e))}const Y0=n=>tu(n,!me(n)),J0=n=>tu(n,me(n));function Z0(n,e,t){if(e.type.prop(t))return!0;let i=e.to-e.from;return i&&(i>2||/[^\s,.;:]/.test(n.sliceDoc(e.from,e.to)))||e.firstChild}function _s(n,e,t){let i=ae(n).resolveInner(e.head),s=t?q.closedBy:q.openedBy;for(let a=e.head;;){let h=t?i.childAfter(a):i.childBefore(a);if(!h)break;Z0(n,h,s)?i=h:a=t?h.to:h.from}let r=i.type.prop(s),o,l;return r&&(o=t?et(n,i.from,1):et(n,i.to,-1))&&o.matched?l=t?o.end.to:o.end.from:l=t?i.to:i.from,x.cursor(l,t?-1:1)}const ey=n=>_e(n,e=>_s(n.state,e,!me(n))),ty=n=>_e(n,e=>_s(n.state,e,me(n)));function iu(n,e){return _e(n,t=>{if(!t.empty)return Hs(t,e);let i=n.moveVertically(t,e);return i.head!=t.head?i:n.moveToLineBoundary(t,e)})}const nu=n=>iu(n,!1),su=n=>iu(n,!0);function ru(n){let e=n.scrollDOM.clientHeighto.empty?n.moveVertically(o,e,t.height):Hs(o,e));if(s.eq(i.selection))return!1;let r;if(t.selfScroll){let o=n.coordsAtPos(i.selection.main.head),l=n.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,h=l.bottom-t.marginBottom;o&&o.top>a&&o.bottomou(n,!1),So=n=>ou(n,!0);function Rt(n,e,t){let i=n.lineBlockAt(e.head),s=n.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?i.to:i.from)&&(s=n.moveToLineBoundary(e,t,!1)),!t&&s.head==i.from&&i.length){let r=/^\s*/.exec(n.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;r&&e.head!=i.from+r&&(s=x.cursor(i.from+r))}return s}const iy=n=>_e(n,e=>Rt(n,e,!0)),ny=n=>_e(n,e=>Rt(n,e,!1)),sy=n=>_e(n,e=>Rt(n,e,!me(n))),ry=n=>_e(n,e=>Rt(n,e,me(n))),oy=n=>_e(n,e=>x.cursor(n.lineBlockAt(e.head).from,1)),ly=n=>_e(n,e=>x.cursor(n.lineBlockAt(e.head).to,-1));function ay(n,e,t){let i=!1,s=wi(n.selection,r=>{let o=et(n,r.head,-1)||et(n,r.head,1)||r.head>0&&et(n,r.head-1,1)||r.headay(n,e);function We(n,e){let t=wi(n.state.selection,i=>{let s=e(i);return x.range(i.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(n.state.selection)?!1:(n.dispatch(ot(n.state,t)),!0)}function lu(n,e){return We(n,t=>n.moveByChar(t,e))}const au=n=>lu(n,!me(n)),hu=n=>lu(n,me(n));function cu(n,e){return We(n,t=>n.moveByGroup(t,e))}const cy=n=>cu(n,!me(n)),fy=n=>cu(n,me(n)),uy=n=>We(n,e=>_s(n.state,e,!me(n))),dy=n=>We(n,e=>_s(n.state,e,me(n)));function fu(n,e){return We(n,t=>n.moveVertically(t,e))}const uu=n=>fu(n,!1),du=n=>fu(n,!0);function pu(n,e){return We(n,t=>n.moveVertically(t,e,ru(n).height))}const Ka=n=>pu(n,!1),Ga=n=>pu(n,!0),py=n=>We(n,e=>Rt(n,e,!0)),my=n=>We(n,e=>Rt(n,e,!1)),gy=n=>We(n,e=>Rt(n,e,!me(n))),yy=n=>We(n,e=>Rt(n,e,me(n))),by=n=>We(n,e=>x.cursor(n.lineBlockAt(e.head).from)),xy=n=>We(n,e=>x.cursor(n.lineBlockAt(e.head).to)),Qa=({state:n,dispatch:e})=>(e(ot(n,{anchor:0})),!0),Xa=({state:n,dispatch:e})=>(e(ot(n,{anchor:n.doc.length})),!0),Ya=({state:n,dispatch:e})=>(e(ot(n,{anchor:n.selection.main.anchor,head:0})),!0),Ja=({state:n,dispatch:e})=>(e(ot(n,{anchor:n.selection.main.anchor,head:n.doc.length})),!0),ky=({state:n,dispatch:e})=>(e(n.update({selection:{anchor:0,head:n.doc.length},userEvent:"select"})),!0),vy=({state:n,dispatch:e})=>{let t=js(n).map(({from:i,to:s})=>x.range(i,Math.min(s+1,n.doc.length)));return e(n.update({selection:x.create(t),userEvent:"select"})),!0},wy=({state:n,dispatch:e})=>{let t=wi(n.selection,i=>{let s=ae(n),r=s.resolveStack(i.from,1);if(i.empty){let o=s.resolveStack(i.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:l}=o;if((l.from=i.to||l.to>i.to&&l.from<=i.from)&&o.next)return x.range(l.to,l.from)}return i});return t.eq(n.selection)?!1:(e(ot(n,t)),!0)},Sy=({state:n,dispatch:e})=>{let t=n.selection,i=null;return t.ranges.length>1?i=x.create([t.main]):t.main.empty||(i=x.create([x.cursor(t.main.head)])),i?(e(ot(n,i)),!0):!1};function mn(n,e){if(n.state.readOnly)return!1;let t="delete.selection",{state:i}=n,s=i.changeByRange(r=>{let{from:o,to:l}=r;if(o==l){let a=e(r);ao&&(t="delete.forward",a=Vn(n,a,!0)),o=Math.min(o,a),l=Math.max(l,a)}else o=Vn(n,o,!1),l=Vn(n,l,!0);return o==l?{range:r}:{changes:{from:o,to:l},range:x.cursor(o,os(n)))i.between(e,e,(s,r)=>{se&&(e=t?r:s)});return e}const mu=(n,e,t)=>mn(n,i=>{let s=i.from,{state:r}=n,o=r.doc.lineAt(s),l,a;if(t&&!e&&s>o.from&&smu(n,!1,!0),gu=n=>mu(n,!0,!1),yu=(n,e)=>mn(n,t=>{let i=t.head,{state:s}=n,r=s.doc.lineAt(i),o=s.charCategorizer(i);for(let l=null;;){if(i==(e?r.to:r.from)){i==t.head&&r.number!=(e?s.doc.lines:1)&&(i+=e?1:-1);break}let a=ue(r.text,i-r.from,e)+r.from,h=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),c=o(h);if(l!=null&&c!=l)break;(h!=" "||i!=t.head)&&(l=c),i=a}return i}),bu=n=>yu(n,!1),Oy=n=>yu(n,!0),Cy=n=>mn(n,e=>{let t=n.lineBlockAt(e.head).to;return e.headmn(n,e=>{let t=n.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),Ty=n=>mn(n,e=>{let t=n.moveToLineBoundary(e,!0).head;return e.head{if(n.readOnly)return!1;let t=n.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:_.of(["",""])},range:x.cursor(i.from)}));return e(n.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},Py=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=n.changeByRange(i=>{if(!i.empty||i.from==0||i.from==n.doc.length)return{range:i};let s=i.from,r=n.doc.lineAt(s),o=s==r.from?s-1:ue(r.text,s-r.from,!1)+r.from,l=s==r.to?s+1:ue(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:l,insert:n.doc.slice(s,l).append(n.doc.slice(o,s))},range:x.cursor(l)}});return t.changes.empty?!1:(e(n.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function js(n){let e=[],t=-1;for(let i of n.selection.ranges){let s=n.doc.lineAt(i.from),r=n.doc.lineAt(i.to);if(!i.empty&&i.to==r.from&&(r=n.doc.lineAt(i.to-1)),t>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(i)}else e.push({from:s.from,to:r.to,ranges:[i]});t=r.number+1}return e}function xu(n,e,t){if(n.readOnly)return!1;let i=[],s=[];for(let r of js(n)){if(t?r.to==n.doc.length:r.from==0)continue;let o=n.doc.lineAt(t?r.to+1:r.from-1),l=o.length+1;if(t){i.push({from:r.to,to:o.to},{from:r.from,insert:o.text+n.lineBreak});for(let a of r.ranges)s.push(x.range(Math.min(n.doc.length,a.anchor+l),Math.min(n.doc.length,a.head+l)))}else{i.push({from:o.from,to:r.from},{from:r.to,insert:n.lineBreak+o.text});for(let a of r.ranges)s.push(x.range(a.anchor-l,a.head-l))}}return i.length?(e(n.update({changes:i,scrollIntoView:!0,selection:x.create(s,n.selection.mainIndex),userEvent:"move.line"})),!0):!1}const Dy=({state:n,dispatch:e})=>xu(n,e,!1),Ry=({state:n,dispatch:e})=>xu(n,e,!0);function ku(n,e,t){if(n.readOnly)return!1;let i=[];for(let s of js(n))t?i.push({from:s.from,insert:n.doc.slice(s.from,s.to)+n.lineBreak}):i.push({from:s.to,insert:n.lineBreak+n.doc.slice(s.from,s.to)});return e(n.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Ey=({state:n,dispatch:e})=>ku(n,e,!1),By=({state:n,dispatch:e})=>ku(n,e,!0),Ly=n=>{if(n.state.readOnly)return!1;let{state:e}=n,t=e.changes(js(e).map(({from:s,to:r})=>(s>0?s--:r{let r;if(n.lineWrapping){let o=n.lineBlockAt(s.head),l=n.coordsAtPos(s.head,s.assoc||1);l&&(r=o.bottom+n.documentTop-l.bottom+n.defaultLineHeight/2)}return n.moveVertically(s,!0,r)}).map(t);return n.dispatch({changes:t,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0};function Iy(n,e){if(/\(\)|\[\]|\{\}/.test(n.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ae(n).resolveInner(e),i=t.childBefore(e),s=t.childAfter(e),r;return i&&s&&i.to<=e&&s.from>=e&&(r=i.type.prop(q.closedBy))&&r.indexOf(s.name)>-1&&n.doc.lineAt(i.to).from==n.doc.lineAt(s.from).from&&!/\S/.test(n.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}const Za=vu(!1),Ny=vu(!0);function vu(n){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let i=e.changeByRange(s=>{let{from:r,to:o}=s,l=e.doc.lineAt(r),a=!n&&r==o&&Iy(e,r);n&&(r=o=(o<=l.to?l:e.doc.lineAt(o)).to);let h=new Fs(e,{simulateBreak:r,simulateDoubleBreak:!!a}),c=tl(h,r);for(c==null&&(c=vi(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));ol.from&&r{let s=[];for(let o=i.from;o<=i.to;){let l=n.doc.lineAt(o);l.number>t&&(i.empty||i.to>l.from)&&(e(l,s,i),t=l.number),o=l.to+1}let r=n.changes(s);return{changes:s,range:x.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}})}const $y=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let t=Object.create(null),i=new Fs(n,{overrideIndentation:r=>{let o=t[r];return o??-1}}),s=al(n,(r,o,l)=>{let a=tl(i,r.from);if(a==null)return;/\S/.test(r.text)||(a=0);let h=/^\s*/.exec(r.text)[0],c=en(n,a);(h!=c||l.fromn.readOnly?!1:(e(n.update(al(n,(t,i)=>{i.push({from:t.from,insert:n.facet($s)})}),{userEvent:"input.indent"})),!0),Su=({state:n,dispatch:e})=>n.readOnly?!1:(e(n.update(al(n,(t,i)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let r=vi(s,n.tabSize),o=0,l=en(n,Math.max(0,r-Ut(n)));for(;o(n.setTabFocusMode(),!0),Vy=[{key:"Ctrl-b",run:Zf,shift:au,preventDefault:!0},{key:"Ctrl-f",run:eu,shift:hu},{key:"Ctrl-p",run:nu,shift:uu},{key:"Ctrl-n",run:su,shift:du},{key:"Ctrl-a",run:oy,shift:by},{key:"Ctrl-e",run:ly,shift:xy},{key:"Ctrl-d",run:gu},{key:"Ctrl-h",run:Oo},{key:"Ctrl-k",run:Cy},{key:"Ctrl-Alt-h",run:bu},{key:"Ctrl-o",run:My},{key:"Ctrl-t",run:Py},{key:"Ctrl-v",run:So}],Wy=[{key:"ArrowLeft",run:Zf,shift:au,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Y0,shift:cy,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:sy,shift:gy,preventDefault:!0},{key:"ArrowRight",run:eu,shift:hu,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:J0,shift:fy,preventDefault:!0},{mac:"Cmd-ArrowRight",run:ry,shift:yy,preventDefault:!0},{key:"ArrowUp",run:nu,shift:uu,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Qa,shift:Ya},{mac:"Ctrl-ArrowUp",run:Ua,shift:Ka},{key:"ArrowDown",run:su,shift:du,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Xa,shift:Ja},{mac:"Ctrl-ArrowDown",run:So,shift:Ga},{key:"PageUp",run:Ua,shift:Ka},{key:"PageDown",run:So,shift:Ga},{key:"Home",run:ny,shift:my,preventDefault:!0},{key:"Mod-Home",run:Qa,shift:Ya},{key:"End",run:iy,shift:py,preventDefault:!0},{key:"Mod-End",run:Xa,shift:Ja},{key:"Enter",run:Za,shift:Za},{key:"Mod-a",run:ky},{key:"Backspace",run:Oo,shift:Oo},{key:"Delete",run:gu},{key:"Mod-Backspace",mac:"Alt-Backspace",run:bu},{key:"Mod-Delete",mac:"Alt-Delete",run:Oy},{mac:"Mod-Backspace",run:Ay},{mac:"Mod-Delete",run:Ty}].concat(Vy.map(n=>({mac:n.key,run:n.run,shift:n.shift}))),Ou=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:ey,shift:uy},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:ty,shift:dy},{key:"Alt-ArrowUp",run:Dy},{key:"Shift-Alt-ArrowUp",run:Ey},{key:"Alt-ArrowDown",run:Ry},{key:"Shift-Alt-ArrowDown",run:By},{key:"Escape",run:Sy},{key:"Mod-Enter",run:Ny},{key:"Alt-l",mac:"Ctrl-l",run:vy},{key:"Mod-i",run:wy,preventDefault:!0},{key:"Mod-[",run:Su},{key:"Mod-]",run:wu},{key:"Mod-Alt-\\",run:$y},{key:"Shift-Mod-k",run:Ly},{key:"Shift-Mod-\\",run:hy},{key:"Mod-/",run:L0},{key:"Alt-A",run:N0},{key:"Ctrl-m",mac:"Shift-Alt-m",run:Fy}].concat(Wy),zy={key:"Tab",run:wu,shift:Su};class eh{constructor(e,t,i){this.from=e,this.to=t,this.diagnostic=i}}class Nt{constructor(e,t,i){this.diagnostics=e,this.panel=t,this.selected=i}static init(e,t,i){let s=i.facet(it).markerFilter;s&&(e=s(e,i));let r=e.slice().sort((c,f)=>c.from-f.from||c.to-f.to),o=new ut,l=[],a=0;for(let c=0;;){let f=c==r.length?null:r[c];if(!f&&!l.length)break;let u,d;for(l.length?(u=a,d=l.reduce((m,g)=>Math.min(m,g.to),f&&f.from>u?f.from:1e8)):(u=f.from,d=f.to,l.push(f),c++);cm.from||m.to==u))l.push(m),c++,d=Math.min(m.to,d);else{d=Math.min(m.from,d);break}}let p=Eu(l);if(l.some(m=>m.from==m.to||m.from==m.to-1&&i.doc.lineAt(m.from).to==m.from))o.add(u,u,N.widget({widget:new Yy(p),diagnostics:l.slice()}));else{let m=l.reduce((g,y)=>y.markClass?g+" "+y.markClass:g,"");o.add(u,d,N.mark({class:"cm-lintRange cm-lintRange-"+p+m,diagnostics:l.slice(),inclusiveEnd:l.some(g=>g.to>d)}))}a=d;for(let m=0;m{if(!(e&&o.diagnostics.indexOf(e)<0))if(!i)i=new eh(s,r,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(i.diagnostic)<0)return!1;i=new eh(i.from,r,i.diagnostic)}}),i}function Cu(n,e){let t=e.pos,i=e.end||t,s=n.state.facet(it).hideOn(n,t,i);if(s!=null)return s;let r=n.startState.doc.lineAt(e.pos);return!!(n.effects.some(o=>o.is(Us))||n.changes.touchesRange(r.from,Math.max(r.to,i)))}function Au(n,e){return n.field(Ae,!1)?e:e.concat(F.appendConfig.of(Iu))}function qy(n,e){return{effects:Au(n,[Us.of(e)])}}const Us=F.define(),hl=F.define(),Tu=F.define(),Ae=re.define({create(){return new Nt(N.none,null,null)},update(n,e){if(e.docChanged&&n.diagnostics.size){let t=n.diagnostics.map(e.changes),i=null,s=n.panel;if(n.selected){let r=e.changes.mapPos(n.selected.from,1);i=bi(t,n.selected.diagnostic,r)||bi(t,null,r)}!t.size&&s&&e.state.facet(it).autoPanel&&(s=null),n=new Nt(t,s,i)}for(let t of e.effects)if(t.is(Us)){let i=e.state.facet(it).autoPanel?t.value.length?nn.open:null:n.panel;n=Nt.init(t.value,i,e.state)}else t.is(hl)?n=new Nt(n.diagnostics,t.value?nn.open:null,n.selected):t.is(Tu)&&(n=new Nt(n.diagnostics,n.panel,t.value));return n},provide:n=>[Yi.from(n,e=>e.panel),E.decorations.from(n,e=>e.diagnostics)]});function Hy(n){let e=n.field(Ae,!1);return e?e.diagnostics.size:0}const _y=N.mark({class:"cm-lintRange cm-lintRange-active"});function jy(n,e,t){let{diagnostics:i}=n.state.field(Ae),s,r=-1,o=-1;i.between(e-(t<0?1:0),e+(t>0?1:0),(a,h,{spec:c})=>{if(e>=a&&e<=h&&(a==h||(e>a||t>0)&&(eRu(n,t,!1)))}const Uy=n=>{let e=n.state.field(Ae,!1);(!e||!e.panel)&&n.dispatch({effects:Au(n.state,[hl.of(!0)])});let t=Xi(n,nn.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},th=n=>{let e=n.state.field(Ae,!1);return!e||!e.panel?!1:(n.dispatch({effects:hl.of(!1)}),!0)},Ky=n=>{let e=n.state.field(Ae,!1);if(!e)return!1;let t=n.state.selection.main,i=e.diagnostics.iter(t.to+1);return!i.value&&(i=e.diagnostics.iter(0),!i.value||i.from==t.from&&i.to==t.to)?!1:(n.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0}),!0)},Gy=[{key:"Mod-Shift-m",run:Uy,preventDefault:!0},{key:"F8",run:Ky}],Pu=Z.fromClass(class{constructor(n){this.view=n,this.timeout=-1,this.set=!0;let{delay:e}=n.state.facet(it);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let n=Date.now();if(nPromise.resolve(i(this.view))),i=>{this.view.state.doc==e.doc&&this.view.dispatch(qy(this.view.state,i.reduce((s,r)=>s.concat(r))))},i=>{be(this.view.state,i)})}}update(n){let e=n.state.facet(it);(n.docChanged||e!=n.startState.facet(it)||e.needsRefresh&&e.needsRefresh(n))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function Qy(n,e,t){let i=[],s=-1;for(let r of n)r.then(o=>{i.push(o),clearTimeout(s),i.length==n.length?e(i):s=setTimeout(()=>e(i),200)},t)}const it=L.define({combine(n){return Object.assign({sources:n.map(e=>e.source).filter(e=>e!=null)},He(n.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,t)=>e?t?i=>e(i)||t(i):e:t}))}});function Xy(n,e={}){return[it.of({source:n,config:e}),Pu,Iu]}function ih(n){let e=n.plugin(Pu);e&&e.force()}function Du(n){let e=[];if(n)e:for(let{name:t}of n){for(let i=0;ir.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function Ru(n,e,t){var i;let s=t?Du(e.actions):[];return j("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},j("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(n):e.message),(i=e.actions)===null||i===void 0?void 0:i.map((r,o)=>{let l=!1,a=u=>{if(u.preventDefault(),l)return;l=!0;let d=bi(n.state.field(Ae).diagnostics,e);d&&r.apply(n,d.from,d.to)},{name:h}=r,c=s[o]?h.indexOf(s[o]):-1,f=c<0?h:[h.slice(0,c),j("u",h.slice(c,c+1)),h.slice(c+1)];return j("button",{type:"button",class:"cm-diagnosticAction",onclick:a,onmousedown:a,"aria-label":` Action: ${h}${c<0?"":` (access key "${s[o]})"`}.`},f)}),e.source&&j("div",{class:"cm-diagnosticSource"},e.source))}class Yy extends gt{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return j("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class nh{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Ru(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class nn{constructor(e){this.view=e,this.items=[];let t=s=>{if(s.keyCode==27)th(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:r}=this.items[this.selectedIndex],o=Du(r.actions);for(let l=0;l{for(let r=0;rth(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Ae).selected;if(!e)return-1;for(let t=0;t{for(let c of h.diagnostics){if(o.has(c))continue;o.add(c);let f=-1,u;for(let d=i;di&&(this.items.splice(i,f-i),s=!0)),t&&u.diagnostic==t.diagnostic?u.dom.hasAttribute("aria-selected")||(u.dom.setAttribute("aria-selected","true"),r=u):u.dom.hasAttribute("aria-selected")&&u.dom.removeAttribute("aria-selected"),i++}});i({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:l,panel:a})=>{let h=a.height/this.list.offsetHeight;l.topa.bottom&&(this.list.scrollTop+=(l.bottom-a.bottom)/h)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let i=e;e=i.nextSibling,i.remove()}for(let i of this.items)if(i.dom.parentNode==this.list){for(;e!=i.dom;)t();e=i.dom.nextSibling}else this.list.insertBefore(i.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(Ae),i=bi(t.diagnostics,this.items[e].diagnostic);i&&this.view.dispatch({selection:{anchor:i.from,head:i.to},scrollIntoView:!0,effects:Tu.of(i)})}static open(e){return new nn(e)}}function ss(n,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(n)}')`}function Wn(n){return ss(``,'width="6" height="3"')}const Jy=E.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Wn("#d11")},".cm-lintRange-warning":{backgroundImage:Wn("orange")},".cm-lintRange-info":{backgroundImage:Wn("#999")},".cm-lintRange-hint":{backgroundImage:Wn("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function Zy(n){return n=="error"?4:n=="warning"?3:n=="info"?2:1}function Eu(n){let e="hint",t=1;for(let i of n){let s=Zy(i.severity);s>t&&(t=s,e=i.severity)}return e}class Bu extends rt{constructor(e){super(),this.diagnostics=e,this.severity=Eu(e)}toDOM(e){let t=document.createElement("div");t.className="cm-lint-marker cm-lint-marker-"+this.severity;let i=this.diagnostics,s=e.state.facet(Ks).tooltipFilter;return s&&(i=s(i,e.state)),i.length&&(t.onmouseover=()=>tb(e,t,i)),t}}function eb(n,e){let t=i=>{let s=e.getBoundingClientRect();if(!(i.clientX>s.left-10&&i.clientXs.top-10&&i.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,eb(n,e)}let{hoverTime:s}=n.state.facet(Ks),r=setTimeout(i,s);e.onmouseout=()=>{clearTimeout(r),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(r),r=setTimeout(i,s)}}function ib(n,e){let t=Object.create(null);for(let s of e){let r=n.lineAt(s.from);(t[r.from]||(t[r.from]=[])).push(s)}let i=[];for(let s in t)i.push(new Bu(t[s]).range(+s));return H.of(i,!0)}const nb=ff({class:"cm-gutter-lint",markers:n=>n.state.field(Co),widgetMarker:(n,e,t)=>{let i=[];return n.state.field(Co).between(t.from,t.to,(s,r,o)=>{s>t.from&&si.is(cl)?i.value:t,n)},provide:n=>Ls.from(n)}),sb=E.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:ss('')},".cm-lint-marker-warning":{content:ss('')},".cm-lint-marker-error":{content:ss('')}}),Iu=[Ae,E.decorations.compute([Ae],n=>{let{selected:e,panel:t}=n.field(Ae);return!e||!t||e.from==e.to?N.none:N.set([_y.range(e.from,e.to)])}),dg(jy,{hideOn:Cu}),Jy],Ks=L.define({combine(n){return He(n,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function rb(n={}){return[Ks.of(n),Co,nb,sb,Lu]}const sh=typeof String.prototype.normalize=="function"?n=>n.normalize("NFKD"):n=>n;class xi{constructor(e,t,i=0,s=e.length,r,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(i,s),this.bufferStart=i,this.normalize=r?l=>r(sh(l)):sh,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return we(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Io(e),i=this.bufferStart+this.bufferPos;this.bufferPos+=Je(e);let s=this.normalize(t);if(s.length)for(let r=0,o=i;;r++){let l=s.charCodeAt(r),a=this.match(l,o,this.bufferPos+this.bufferStart);if(r==s.length-1){if(a)return this.value=a,this;break}o==i&&rthis.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let i=this.curLineStart+t.index,s=i+t[0].length;if(this.matchPos=ws(this.text,s+(i==s?1:0)),i==this.curLineStart+this.curLine.length&&this.nextLine(),(ithis.value.to)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length=i||s.to<=t){let l=new li(t,e.sliceString(t,i));return kr.set(e,l),l}if(s.from==t&&s.to==i)return s;let{text:r,from:o}=s;return o>t&&(r=e.sliceString(t,o)+r,o=t),s.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let i=this.flat.from+t.index,s=i+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(i,s,t)))return this.value={from:i,to:s,match:t},this.matchPos=ws(this.text,s+(i==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=li.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&($u.prototype[Symbol.iterator]=Fu.prototype[Symbol.iterator]=function(){return this});function ob(n){try{return new RegExp(n,fl),!0}catch{return!1}}function ws(n,e){if(e>=n.length)return e;let t=n.lineAt(e),i;for(;e=56320&&i<57344;)e++;return e}function Ao(n){let e=String(n.state.doc.lineAt(n.state.selection.main.head).number),t=j("input",{class:"cm-textfield",name:"line",value:e}),i=j("form",{class:"cm-gotoLine",onkeydown:r=>{r.keyCode==27?(r.preventDefault(),n.dispatch({effects:Hi.of(!1)}),n.focus()):r.keyCode==13&&(r.preventDefault(),s())},onsubmit:r=>{r.preventDefault(),s()}},j("label",n.state.phrase("Go to line"),": ",t)," ",j("button",{class:"cm-button",type:"submit"},n.state.phrase("go")),j("button",{name:"close",onclick:()=>{n.dispatch({effects:Hi.of(!1)}),n.focus()},"aria-label":n.state.phrase("close"),type:"button"},["×"]));function s(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(t.value);if(!r)return;let{state:o}=n,l=o.doc.lineAt(o.selection.main.head),[,a,h,c,f]=r,u=c?+c.slice(1):0,d=h?+h:l.number;if(h&&f){let g=d/100;a&&(g=g*(a=="-"?-1:1)+l.number/o.doc.lines),d=Math.round(o.doc.lines*g)}else h&&a&&(d=d*(a=="-"?-1:1)+l.number);let p=o.doc.line(Math.max(1,Math.min(o.doc.lines,d))),m=x.cursor(p.from+Math.max(0,Math.min(u,p.length)));n.dispatch({effects:[Hi.of(!1),E.scrollIntoView(m.from,{y:"center"})],selection:m}),n.focus()}return{dom:i}}const Hi=F.define(),rh=re.define({create(){return!0},update(n,e){for(let t of e.effects)t.is(Hi)&&(n=t.value);return n},provide:n=>Yi.from(n,e=>e?Ao:null)}),lb=n=>{let e=Xi(n,Ao);if(!e){let t=[Hi.of(!0)];n.state.field(rh,!1)==null&&t.push(F.appendConfig.of([rh,ab])),n.dispatch({effects:t}),e=Xi(n,Ao)}return e&&e.dom.querySelector("input").select(),!0},ab=E.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px",position:"relative","& label":{fontSize:"80%"},"& [name=close]":{position:"absolute",top:"0",bottom:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:"0"}}}),hb={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},cb=L.define({combine(n){return He(n,hb,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function fb(n){return[gb,mb]}const ub=N.mark({class:"cm-selectionMatch"}),db=N.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function oh(n,e,t,i){return(t==0||n(e.sliceDoc(t-1,t))!=J.Word)&&(i==e.doc.length||n(e.sliceDoc(i,i+1))!=J.Word)}function pb(n,e,t,i){return n(e.sliceDoc(t,t+1))==J.Word&&n(e.sliceDoc(i-1,i))==J.Word}const mb=Z.fromClass(class{constructor(n){this.decorations=this.getDeco(n)}update(n){(n.selectionSet||n.docChanged||n.viewportChanged)&&(this.decorations=this.getDeco(n.view))}getDeco(n){let e=n.state.facet(cb),{state:t}=n,i=t.selection;if(i.ranges.length>1)return N.none;let s=i.main,r,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return N.none;let a=t.wordAt(s.head);if(!a)return N.none;o=t.charCategorizer(s.head),r=t.sliceDoc(a.from,a.to)}else{let a=s.to-s.from;if(a200)return N.none;if(e.wholeWords){if(r=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(oh(o,t,s.from,s.to)&&pb(o,t,s.from,s.to)))return N.none}else if(r=t.sliceDoc(s.from,s.to),!r)return N.none}let l=[];for(let a of n.visibleRanges){let h=new xi(t.doc,r,a.from,a.to);for(;!h.next().done;){let{from:c,to:f}=h.value;if((!o||oh(o,t,c,f))&&(s.empty&&c<=s.from&&f>=s.to?l.push(db.range(c,f)):(c>=s.to||f<=s.from)&&l.push(ub.range(c,f)),l.length>e.maxMatches))return N.none}}return N.set(l)}},{decorations:n=>n.decorations}),gb=E.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),yb=({state:n,dispatch:e})=>{let{selection:t}=n,i=x.create(t.ranges.map(s=>n.wordAt(s.head)||x.cursor(s.head)),t.mainIndex);return i.eq(t)?!1:(e(n.update({selection:i})),!0)};function bb(n,e){let{main:t,ranges:i}=n.selection,s=n.wordAt(t.head),r=s&&s.from==t.from&&s.to==t.to;for(let o=!1,l=new xi(n.doc,e,i[i.length-1].to);;)if(l.next(),l.done){if(o)return null;l=new xi(n.doc,e,0,Math.max(0,i[i.length-1].from-1)),o=!0}else{if(o&&i.some(a=>a.from==l.value.from))continue;if(r){let a=n.wordAt(l.value.from);if(!a||a.from!=l.value.from||a.to!=l.value.to)continue}return l.value}}const xb=({state:n,dispatch:e})=>{let{ranges:t}=n.selection;if(t.some(r=>r.from===r.to))return yb({state:n,dispatch:e});let i=n.sliceDoc(t[0].from,t[0].to);if(n.selection.ranges.some(r=>n.sliceDoc(r.from,r.to)!=i))return!1;let s=bb(n,i);return s?(e(n.update({selection:n.selection.addRange(x.range(s.from,s.to),!1),effects:E.scrollIntoView(s.to)})),!0):!1},Si=L.define({combine(n){return He(n,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new Rb(e),scrollToMatch:e=>E.scrollIntoView(e)})}});class Vu{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||ob(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,i)=>i=="n"?` +`:i=="r"?"\r":i=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new Sb(this):new vb(this)}getCursor(e,t=0,i){let s=e.doc?e:z.create({doc:e});return i==null&&(i=s.doc.length),this.regexp?Zt(this,s,t,i):Jt(this,s,t,i)}}class Wu{constructor(e){this.spec=e}}function Jt(n,e,t,i){return new xi(e.doc,n.unquoted,t,i,n.caseSensitive?void 0:s=>s.toLowerCase(),n.wholeWord?kb(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function kb(n,e){return(t,i,s,r)=>((r>t||r+s.length=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Jt(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(i+this.spec.unquoted.length,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}function Zt(n,e,t,i){return new $u(e.doc,n.search,{ignoreCase:!n.caseSensitive,test:n.wholeWord?wb(e.charCategorizer(e.selection.main.head)):void 0},t,i)}function Ss(n,e){return n.slice(ue(n,e,!1),e)}function Os(n,e){return n.slice(e,ue(n,e))}function wb(n){return(e,t,i)=>!i[0].length||(n(Ss(i.input,i.index))!=J.Word||n(Os(i.input,i.index))!=J.Word)&&(n(Os(i.input,i.index+i[0].length))!=J.Word||n(Ss(i.input,i.index+i[0].length))!=J.Word)}class Sb extends Wu{nextMatch(e,t,i){let s=Zt(this.spec,e,i,e.doc.length).next();return s.done&&(s=Zt(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,i){for(let s=1;;s++){let r=Math.max(t,i-s*1e4),o=Zt(this.spec,e,r,i),l=null;for(;!o.next().done;)l=o.value;if(l&&(r==t||l.from>r+10))return l;if(r==t)return null}}prevMatch(e,t,i){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,i,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,i)=>{if(i=="&")return e.match[0];if(i=="$")return"$";for(let s=i.length;s>0;s--){let r=+i.slice(0,s);if(r>0&&r=t)return null;s.push(i.value)}return s}highlight(e,t,i,s){let r=Zt(this.spec,e,Math.max(0,t-250),Math.min(i+250,e.doc.length));for(;!r.next().done;)s(r.value.from,r.value.to)}}const sn=F.define(),ul=F.define(),Ct=re.define({create(n){return new vr(To(n).create(),null)},update(n,e){for(let t of e.effects)t.is(sn)?n=new vr(t.value.create(),n.panel):t.is(ul)&&(n=new vr(n.query,t.value?dl:null));return n},provide:n=>Yi.from(n,e=>e.panel)});class vr{constructor(e,t){this.query=e,this.panel=t}}const Ob=N.mark({class:"cm-searchMatch"}),Cb=N.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Ab=Z.fromClass(class{constructor(n){this.view=n,this.decorations=this.highlight(n.state.field(Ct))}update(n){let e=n.state.field(Ct);(e!=n.startState.field(Ct)||n.docChanged||n.selectionSet||n.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:n,panel:e}){if(!e||!n.spec.valid)return N.none;let{view:t}=this,i=new ut;for(let s=0,r=t.visibleRanges,o=r.length;sr[s+1].from-500;)a=r[++s].to;n.highlight(t.state,l,a,(h,c)=>{let f=t.state.selection.ranges.some(u=>u.from==h&&u.to==c);i.add(h,c,f?Cb:Ob)})}return i.finish()}},{decorations:n=>n.decorations});function gn(n){return e=>{let t=e.state.field(Ct,!1);return t&&t.query.spec.valid?n(e,t):Hu(e)}}const Cs=gn((n,{query:e})=>{let{to:t}=n.state.selection.main,i=e.nextMatch(n.state,t,t);if(!i)return!1;let s=x.single(i.from,i.to),r=n.state.facet(Si);return n.dispatch({selection:s,effects:[pl(n,i),r.scrollToMatch(s.main,n)],userEvent:"select.search"}),qu(n),!0}),As=gn((n,{query:e})=>{let{state:t}=n,{from:i}=t.selection.main,s=e.prevMatch(t,i,i);if(!s)return!1;let r=x.single(s.from,s.to),o=n.state.facet(Si);return n.dispatch({selection:r,effects:[pl(n,s),o.scrollToMatch(r.main,n)],userEvent:"select.search"}),qu(n),!0}),Tb=gn((n,{query:e})=>{let t=e.matchAll(n.state,1e3);return!t||!t.length?!1:(n.dispatch({selection:x.create(t.map(i=>x.range(i.from,i.to))),userEvent:"select.search.matches"}),!0)}),Mb=({state:n,dispatch:e})=>{let t=n.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:i,to:s}=t.main,r=[],o=0;for(let l=new xi(n.doc,n.sliceDoc(i,s));!l.next().done;){if(r.length>1e3)return!1;l.value.from==i&&(o=r.length),r.push(x.range(l.value.from,l.value.to))}return e(n.update({selection:x.create(r,o),userEvent:"select.search.matches"})),!0},lh=gn((n,{query:e})=>{let{state:t}=n,{from:i,to:s}=t.selection.main;if(t.readOnly)return!1;let r=e.nextMatch(t,i,i);if(!r)return!1;let o=r,l=[],a,h,c=[];o.from==i&&o.to==s&&(h=t.toText(e.getReplacement(o)),l.push({from:o.from,to:o.to,insert:h}),o=e.nextMatch(t,o.from,o.to),c.push(E.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(i).number)+".")));let f=n.state.changes(l);return o&&(a=x.single(o.from,o.to).map(f),c.push(pl(n,o)),c.push(t.facet(Si).scrollToMatch(a.main,n))),n.dispatch({changes:f,selection:a,effects:c,userEvent:"input.replace"}),!0}),Pb=gn((n,{query:e})=>{if(n.state.readOnly)return!1;let t=e.matchAll(n.state,1e9).map(s=>{let{from:r,to:o}=s;return{from:r,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let i=n.state.phrase("replaced $ matches",t.length)+".";return n.dispatch({changes:t,effects:E.announce.of(i),userEvent:"input.replace.all"}),!0});function dl(n){return n.state.facet(Si).createPanel(n)}function To(n,e){var t,i,s,r,o;let l=n.selection.main,a=l.empty||l.to>l.from+100?"":n.sliceDoc(l.from,l.to);if(e&&!a)return e;let h=n.facet(Si);return new Vu({search:((t=e?.literal)!==null&&t!==void 0?t:h.literal)?a:a.replace(/\n/g,"\\n"),caseSensitive:(i=e?.caseSensitive)!==null&&i!==void 0?i:h.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:h.literal,regexp:(r=e?.regexp)!==null&&r!==void 0?r:h.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:h.wholeWord})}function zu(n){let e=Xi(n,dl);return e&&e.dom.querySelector("[main-field]")}function qu(n){let e=zu(n);e&&e==n.root.activeElement&&e.select()}const Hu=n=>{let e=n.state.field(Ct,!1);if(e&&e.panel){let t=zu(n);if(t&&t!=n.root.activeElement){let i=To(n.state,e.query.spec);i.valid&&n.dispatch({effects:sn.of(i)}),t.focus(),t.select()}}else n.dispatch({effects:[ul.of(!0),e?sn.of(To(n.state,e.query.spec)):F.appendConfig.of(Bb)]});return!0},_u=n=>{let e=n.state.field(Ct,!1);if(!e||!e.panel)return!1;let t=Xi(n,dl);return t&&t.dom.contains(n.root.activeElement)&&n.focus(),n.dispatch({effects:ul.of(!1)}),!0},Db=[{key:"Mod-f",run:Hu,scope:"editor search-panel"},{key:"F3",run:Cs,shift:As,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Cs,shift:As,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:_u,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Mb},{key:"Mod-Alt-g",run:lb},{key:"Mod-d",run:xb,preventDefault:!0}];class Rb{constructor(e){this.view=e;let t=this.query=e.state.field(Ct).query.spec;this.commit=this.commit.bind(this),this.searchField=j("input",{value:t.search,placeholder:Te(e,"Find"),"aria-label":Te(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=j("input",{value:t.replace,placeholder:Te(e,"Replace"),"aria-label":Te(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=j("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=j("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=j("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function i(s,r,o){return j("button",{class:"cm-button",name:s,onclick:r,type:"button"},o)}this.dom=j("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,i("next",()=>Cs(e),[Te(e,"next")]),i("prev",()=>As(e),[Te(e,"previous")]),i("select",()=>Tb(e),[Te(e,"all")]),j("label",null,[this.caseField,Te(e,"match case")]),j("label",null,[this.reField,Te(e,"regexp")]),j("label",null,[this.wordField,Te(e,"by word")]),...e.state.readOnly?[]:[j("br"),this.replaceField,i("replace",()=>lh(e),[Te(e,"replace")]),i("replaceAll",()=>Pb(e),[Te(e,"replace all")])],j("button",{name:"close",onclick:()=>_u(e),"aria-label":Te(e,"close"),type:"button"},["×"])])}commit(){let e=new Vu({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:sn.of(e)}))}keydown(e){Tm(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?As:Cs)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),lh(this.view))}update(e){for(let t of e.transactions)for(let i of t.effects)i.is(sn)&&!i.value.eq(this.query)&&this.setQuery(i.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(Si).top}}function Te(n,e){return n.state.phrase(e)}const zn=30,qn=/[\s\.,:;?!]/;function pl(n,{from:e,to:t}){let i=n.state.doc.lineAt(e),s=n.state.doc.lineAt(t).to,r=Math.max(i.from,e-zn),o=Math.min(s,t+zn),l=n.state.sliceDoc(r,o);if(r!=i.from){for(let a=0;al.length-zn;a--)if(!qn.test(l[a-1])&&qn.test(l[a])){l=l.slice(0,a);break}}return E.announce.of(`${n.state.phrase("current match")}. ${l} ${n.state.phrase("on line")} ${i.number}.`)}const Eb=E.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),Bb=[Ct,Gt.low(Ab),Eb];class ju{constructor(e,t,i,s){this.state=e,this.pos=t,this.explicit=i,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ae(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),i=Math.max(t.from,this.pos-250),s=t.text.slice(i-t.from,this.pos-t.from),r=s.search(Uu(e,!1));return r<0?null:{from:i+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,i){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),i&&i.onDocChange&&(this.abortOnDocChange=!0))}}function ah(n){let e=Object.keys(n).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function Lb(n){let e=Object.create(null),t=Object.create(null);for(let{label:s}of n){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[t,i]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:Lb(e);return s=>{let r=s.matchBefore(i);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:t}:null}}class hh{constructor(e,t,i,s){this.completion=e,this.source=t,this.match=i,this.score=s}}function zt(n){return n.selection.main.from}function Uu(n,e){var t;let{source:i}=n,s=e&&i[0]!="^",r=i[i.length-1]!="$";return!s&&!r?n:new RegExp(`${s?"^":""}(?:${i})${r?"$":""}`,(t=n.flags)!==null&&t!==void 0?t:n.ignoreCase?"i":"")}const Ku=mt.define();function Nb(n,e,t,i){let{main:s}=n.selection,r=t-s.from,o=i-s.from;return Object.assign(Object.assign({},n.changeByRange(l=>{if(l!=s&&t!=i&&n.sliceDoc(l.from+r,l.from+o)!=n.sliceDoc(t,i))return{range:l};let a=n.toText(e);return{changes:{from:l.from+r,to:i==s.from?l.to:l.from+o,insert:a},range:x.cursor(l.from+r+a.length)}})),{scrollIntoView:!0,userEvent:"input.complete"})}const ch=new WeakMap;function $b(n){if(!Array.isArray(n))return n;let e=ch.get(n);return e||ch.set(n,e=Ib(n)),e}const Ts=F.define(),rn=F.define();class Fb{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&v<=57||v>=97&&v<=122?2:v>=65&&v<=90?1:0:(A=Io(v))!=A.toLowerCase()?1:A!=A.toUpperCase()?2:0;(!k||M==1&&g||w==0&&M!=0)&&(t[f]==v||i[f]==v&&(u=!0)?o[f++]=k:o.length&&(y=!1)),w=M,k+=Je(v)}return f==a&&o[0]==0&&y?this.result(-100+(u?-200:0),o,e):d==a&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):l>-1?this.ret(-700-e.length,[l,l+this.pattern.length]):d==a?this.ret(-900-e.length,[p,m]):f==a?this.result(-100+(u?-200:0)+-700+(y?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,i){let s=[],r=0;for(let o of t){let l=o+(this.astral?Je(we(i,o)):1);r&&s[r-1]==o?s[r-1]=l:(s[r++]=o,s[r++]=l)}return this.ret(e-i.length,s)}}class Vb{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:Wb,filterStrict:!1,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>i=>fh(e(i),t(i)),optionClass:(e,t)=>i=>fh(e(i),t(i)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function fh(n,e){return n?e?n+" "+e:n:e}function Wb(n,e,t,i,s,r){let o=n.textDirection==X.RTL,l=o,a=!1,h="top",c,f,u=e.left-s.left,d=s.right-e.right,p=i.right-i.left,m=i.bottom-i.top;if(l&&u=m||k>e.top?c=t.bottom-e.top:(h="bottom",c=e.bottom-t.top)}let g=(e.bottom-e.top)/r.offsetHeight,y=(e.right-e.left)/r.offsetWidth;return{style:`${h}: ${c/g}px; max-width: ${f/y}px`,class:"cm-completionInfo-"+(a?o?"left-narrow":"right-narrow":l?"left":"right")}}function zb(n){let e=n.addToOptions.slice();return n.icons&&e.push({render(t){let i=document.createElement("div");return i.classList.add("cm-completionIcon"),t.type&&i.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),i.setAttribute("aria-hidden","true"),i},position:20}),e.push({render(t,i,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let l=t.displayLabel||t.label,a=0;for(let h=0;ha&&o.appendChild(document.createTextNode(l.slice(a,c)));let u=o.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(l.slice(c,f))),u.className="cm-completionMatchedText",a=f}return at.position-i.position).map(t=>t.render)}function wr(n,e,t){if(n<=t)return{from:0,to:n};if(e<0&&(e=0),e<=n>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let i=Math.floor((n-e)/t);return{from:n-(i+1)*t,to:n-i*t}}class qb{constructor(e,t,i){this.view=e,this.stateField=t,this.applyCompletion=i,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:a=>this.placeInfo(a),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:r,selected:o}=s.open,l=e.state.facet(le);this.optionContent=zb(l),this.optionClass=l.optionClass,this.tooltipClass=l.tooltipClass,this.range=wr(r.length,o,l.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",a=>{let{options:h}=e.state.field(t).open;for(let c=a.target,f;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(f=/-(\d+)$/.exec(c.id))&&+f[1]{let h=e.state.field(this.stateField,!1);h&&h.tooltip&&e.state.facet(le).closeOnBlur&&a.relatedTarget!=e.contentDOM&&e.dispatch({effects:rn.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let i=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),i!=s){let{options:r,selected:o,disabled:l}=i.open;(!s.open||s.open.options!=r)&&(this.range=wr(r.length,o,e.state.facet(le).maxRenderedOptions),this.showOptions(r,i.id)),this.updateSel(),l!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!l)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let i of this.currentClass.split(" "))i&&this.dom.classList.remove(i);for(let i of t.split(" "))i&&this.dom.classList.add(i);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=wr(t.options.length,t.selected,this.view.state.facet(le).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:i}=t.options[t.selected],{info:s}=i;if(!s)return;let r=typeof s=="string"?document.createTextNode(s):s(i);if(!r)return;"then"in r?r.then(o=>{o&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(o,i)}).catch(o=>be(this.view.state,o,"completion info")):this.addInfoPane(r,i)}}addInfoPane(e,t){this.destroyInfo();let i=this.info=document.createElement("div");if(i.className="cm-tooltip cm-completionInfo",e.nodeType!=null)i.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:r}=e;i.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(i),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let i=this.list.firstChild,s=this.range.from;i;i=i.nextSibling,s++)i.nodeName!="LI"||!i.id?s--:s==e?i.hasAttribute("aria-selected")||(i.setAttribute("aria-selected","true"),t=i):i.hasAttribute("aria-selected")&&i.removeAttribute("aria-selected");return t&&_b(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),i=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,t.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=i.from;oi.from||i.from==0))if(r=u,typeof h!="string"&&h.header)s.appendChild(h.header(h));else{let d=s.appendChild(document.createElement("completion-section"));d.textContent=u}}const c=s.appendChild(document.createElement("li"));c.id=t+"-"+o,c.setAttribute("role","option");let f=this.optionClass(l);f&&(c.className=f);for(let u of this.optionContent){let d=u(l,this.view.state,this.view,a);d&&c.appendChild(d)}}return i.from&&s.classList.add("cm-completionListIncompleteTop"),i.tonew qb(t,n,e)}function _b(n,e){let t=n.getBoundingClientRect(),i=e.getBoundingClientRect(),s=t.height/n.offsetHeight;i.topt.bottom&&(n.scrollTop+=(i.bottom-t.bottom)/s)}function uh(n){return(n.boost||0)*100+(n.apply?10:0)+(n.info?5:0)+(n.type?1:0)}function jb(n,e){let t=[],i=null,s=h=>{t.push(h);let{section:c}=h.completion;if(c){i||(i=[]);let f=typeof c=="string"?c:c.name;i.some(u=>u.name==f)||i.push(typeof c=="string"?{name:f}:c)}},r=e.facet(le);for(let h of n)if(h.hasResult()){let c=h.result.getMatch;if(h.result.filter===!1)for(let f of h.result.options)s(new hh(f,h.source,c?c(f):[],1e9-t.length));else{let f=e.sliceDoc(h.from,h.to),u,d=r.filterStrict?new Vb(f):new Fb(f);for(let p of h.result.options)if(u=d.match(p.label)){let m=p.displayLabel?c?c(p,u.matched):[]:u.matched;s(new hh(p,h.source,m,u.score+(p.boost||0)))}}}if(i){let h=Object.create(null),c=0,f=(u,d)=>{var p,m;return((p=u.rank)!==null&&p!==void 0?p:1e9)-((m=d.rank)!==null&&m!==void 0?m:1e9)||(u.namef.score-c.score||a(c.completion,f.completion))){let c=h.completion;!l||l.label!=c.label||l.detail!=c.detail||l.type!=null&&c.type!=null&&l.type!=c.type||l.apply!=c.apply||l.boost!=c.boost?o.push(h):uh(h.completion)>uh(l)&&(o[o.length-1]=h),l=h.completion}return o}class ii{constructor(e,t,i,s,r,o){this.options=e,this.attrs=t,this.tooltip=i,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new ii(this.options,dh(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,i,s,r,o){if(s&&!o&&e.some(h=>h.isPending))return s.setDisabled();let l=jb(e,t);if(!l.length)return s&&e.some(h=>h.isPending)?s.setDisabled():null;let a=t.facet(le).selectOnOpen?0:-1;if(s&&s.selected!=a&&s.selected!=-1){let h=s.options[s.selected].completion;for(let c=0;cc.hasResult()?Math.min(h,c.from):h,1e8),create:Yb,above:r.aboveCursor},s?s.timestamp:Date.now(),a,!1)}map(e){return new ii(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}setDisabled(){return new ii(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class Ms{constructor(e,t,i){this.active=e,this.id=t,this.open=i}static start(){return new Ms(Qb,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,i=t.facet(le),r=(i.override||t.languageDataAt("autocomplete",zt(t)).map($b)).map(a=>(this.active.find(c=>c.source==a)||new Ne(a,this.active.some(c=>c.state!=0)?1:0)).update(e,i));r.length==this.active.length&&r.every((a,h)=>a==this.active[h])&&(r=this.active);let o=this.open,l=e.effects.some(a=>a.is(ml));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(a=>a.hasResult()&&e.changes.touchesRange(a.from,a.to))||!Ub(r,this.active)||l?o=ii.build(r,t,this.id,o,i,l):o&&o.disabled&&!r.some(a=>a.isPending)&&(o=null),!o&&r.every(a=>!a.isPending)&&r.some(a=>a.hasResult())&&(r=r.map(a=>a.hasResult()?new Ne(a.source,0):a));for(let a of e.effects)a.is(Qu)&&(o=o&&o.setSelected(a.value,this.id));return r==this.active&&o==this.open?this:new Ms(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?Kb:Gb}}function Ub(n,e){if(n==e)return!0;for(let t=0,i=0;;){for(;t-1&&(t["aria-activedescendant"]=n+"-"+e),t}const Qb=[];function Gu(n,e){if(n.isUserEvent("input.complete")){let i=n.annotation(Ku);if(i&&e.activateOnCompletion(i))return 12}let t=n.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:n.isUserEvent("delete.backward")?2:n.selection?8:n.docChanged?16:0}class Ne{constructor(e,t,i=!1){this.source=e,this.state=t,this.explicit=i}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let i=Gu(e,t),s=this;(i&8||i&16&&this.touches(e))&&(s=new Ne(s.source,0)),i&4&&s.state==0&&(s=new Ne(this.source,1)),s=s.updateFor(e,i);for(let r of e.effects)if(r.is(Ts))s=new Ne(s.source,1,r.value);else if(r.is(rn))s=new Ne(s.source,0);else if(r.is(ml))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(zt(e.state))}}class ai extends Ne{constructor(e,t,i,s,r,o){super(e,3,t),this.limit=i,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,t){var i;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),l=zt(e.state);if(l>o||!s||t&2&&(zt(e.startState)==this.from||lt.map(e))}}),Qu=F.define(),Oe=re.define({create(){return Ms.start()},update(n,e){return n.update(e)},provide:n=>[Ls.from(n,e=>e.tooltip),E.contentAttributes.from(n,e=>e.attrs)]});function gl(n,e){const t=e.completion.apply||e.completion.label;let i=n.state.field(Oe).active.find(s=>s.source==e.source);return i instanceof ai?(typeof t=="string"?n.dispatch(Object.assign(Object.assign({},Nb(n.state,t,i.from,i.to)),{annotations:Ku.of(e.completion)})):t(n,e.completion,i.from,i.to),!0):!1}const Yb=Hb(Oe,gl);function Hn(n,e="option"){return t=>{let i=t.state.field(Oe,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+s*(n?1:-1):n?0:o-1;return l<0?l=e=="page"?0:o-1:l>=o&&(l=e=="page"?o-1:0),t.dispatch({effects:Qu.of(l)}),!0}}const Jb=n=>{let e=n.state.field(Oe,!1);return n.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampn.state.field(Oe,!1)?(n.dispatch({effects:Ts.of(!0)}),!0):!1,Zb=n=>{let e=n.state.field(Oe,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(n.dispatch({effects:rn.of(null)}),!0)};class ex{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const tx=50,ix=1e3,nx=Z.fromClass(class{constructor(n){this.view=n,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of n.state.field(Oe).active)e.isPending&&this.startQuery(e)}update(n){let e=n.state.field(Oe),t=n.state.facet(le);if(!n.selectionSet&&!n.docChanged&&n.startState.field(Oe)==e)return;let i=n.transactions.some(r=>{let o=Gu(r,t);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rtx&&Date.now()-o.time>ix){for(let l of o.context.abortListeners)try{l()}catch(a){be(this.view.state,a)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...n.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),n.transactions.some(r=>r.effects.some(o=>o.is(Ts)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of n.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:n}=this.view,e=n.field(Oe);for(let t of e.active)t.isPending&&!this.running.some(i=>i.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}startQuery(n){let{state:e}=this.view,t=zt(e),i=new ju(e,t,n.explicit,this.view),s=new ex(n,i);this.running.push(s),Promise.resolve(n.source(i)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:rn.of(null)}),be(this.view.state,r)})}scheduleAccept(){this.running.every(n=>n.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(le).updateSyncTime))}accept(){var n;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(le),i=this.view.state.field(Oe);for(let s=0;sl.source==r.active.source);if(o&&o.isPending)if(r.done==null){let l=new Ne(r.active.source,0);for(let a of r.updates)l=l.update(a,t);l.isPending||e.push(l)}else this.startQuery(o)}(e.length||i.open&&i.open.disabled)&&this.view.dispatch({effects:ml.of(e)})}},{eventHandlers:{blur(n){let e=this.view.state.field(Oe,!1);if(e&&e.tooltip&&this.view.state.facet(le).closeOnBlur){let t=e.open&&hf(this.view,e.open.tooltip);(!t||!t.dom.contains(n.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:rn.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ts.of(!1)}),20),this.composing=0}}}),sx=typeof navigator=="object"&&/Win/.test(navigator.platform),rx=Gt.highest(E.domEventHandlers({keydown(n,e){let t=e.state.field(Oe,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||n.key.length>1||n.ctrlKey&&!(sx&&n.altKey)||n.metaKey)return!1;let i=t.open.options[t.open.selected],s=t.active.find(o=>o.source==i.source),r=i.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(n.key)>-1&&gl(e,i),!1}})),ox=E.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),on={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},Vt=F.define({map(n,e){let t=e.mapPos(n,-1,ye.TrackAfter);return t??void 0}}),yl=new class extends qt{};yl.startSide=1;yl.endSide=-1;const Xu=re.define({create(){return H.empty},update(n,e){if(n=n.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);n=n.update({filter:i=>i>=t.from&&i<=t.to})}for(let t of e.effects)t.is(Vt)&&(n=n.update({add:[yl.range(t.value,t.value+1)]}));return n}});function lx(){return[hx,Xu]}const Sr="()[]{}<>«»»«[]{}";function Yu(n){for(let e=0;e{if((ax?n.composing:n.compositionStarted)||n.state.readOnly)return!1;let s=n.state.selection.main;if(i.length>2||i.length==2&&Je(we(i,0))==1||e!=s.from||t!=s.to)return!1;let r=ux(n.state,i);return r?(n.dispatch(r),!0):!1}),cx=({state:n,dispatch:e})=>{if(n.readOnly)return!1;let i=Ju(n,n.selection.main.head).brackets||on.brackets,s=null,r=n.changeByRange(o=>{if(o.empty){let l=dx(n.doc,o.head);for(let a of i)if(a==l&&Gs(n.doc,o.head)==Yu(we(a,0)))return{changes:{from:o.head-a.length,to:o.head+a.length},range:x.cursor(o.head-a.length)}}return{range:s=o}});return s||e(n.update(r,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},fx=[{key:"Backspace",run:cx}];function ux(n,e){let t=Ju(n,n.selection.main.head),i=t.brackets||on.brackets;for(let s of i){let r=Yu(we(s,0));if(e==s)return r==s?gx(n,s,i.indexOf(s+s+s)>-1,t):px(n,s,r,t.before||on.before);if(e==r&&Zu(n,n.selection.main.from))return mx(n,s,r)}return null}function Zu(n,e){let t=!1;return n.field(Xu).between(0,n.doc.length,i=>{i==e&&(t=!0)}),t}function Gs(n,e){let t=n.sliceString(e,e+2);return t.slice(0,Je(we(t,0)))}function dx(n,e){let t=n.sliceString(e-2,e);return Je(we(t,0))==t.length?t:t.slice(1)}function px(n,e,t,i){let s=null,r=n.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:Vt.of(o.to+e.length),range:x.range(o.anchor+e.length,o.head+e.length)};let l=Gs(n.doc,o.head);return!l||/\s/.test(l)||i.indexOf(l)>-1?{changes:{insert:e+t,from:o.head},effects:Vt.of(o.head+e.length),range:x.cursor(o.head+e.length)}:{range:s=o}});return s?null:n.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function mx(n,e,t){let i=null,s=n.changeByRange(r=>r.empty&&Gs(n.doc,r.head)==t?{changes:{from:r.head,to:r.head+t.length,insert:t},range:x.cursor(r.head+t.length)}:i={range:r});return i?null:n.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function gx(n,e,t,i){let s=i.stringPrefixes||on.stringPrefixes,r=null,o=n.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:Vt.of(l.to+e.length),range:x.range(l.anchor+e.length,l.head+e.length)};let a=l.head,h=Gs(n.doc,a),c;if(h==e){if(mh(n,a))return{changes:{insert:e+e,from:a},effects:Vt.of(a+e.length),range:x.cursor(a+e.length)};if(Zu(n,a)){let u=t&&n.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+u.length,insert:u},range:x.cursor(a+u.length)}}}else{if(t&&n.sliceDoc(a-2*e.length,a)==e+e&&(c=gh(n,a-2*e.length,s))>-1&&mh(n,c))return{changes:{insert:e+e+e+e,from:a},effects:Vt.of(a+e.length),range:x.cursor(a+e.length)};if(n.charCategorizer(a)(h)!=J.Word&&gh(n,a,s)>-1&&!yx(n,a,e,s))return{changes:{insert:e+e,from:a},effects:Vt.of(a+e.length),range:x.cursor(a+e.length)}}return{range:r=l}});return r?null:n.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function mh(n,e){let t=ae(n).resolveInner(e+1);return t.parent&&t.from==e}function yx(n,e,t,i){let s=ae(n).resolveInner(e,-1),r=i.reduce((o,l)=>Math.max(o,l.length),0);for(let o=0;o<5;o++){let l=n.sliceDoc(s.from,Math.min(s.to,s.from+t.length+r)),a=l.indexOf(t);if(!a||a>-1&&i.indexOf(l.slice(0,a))>-1){let c=s.firstChild;for(;c&&c.from==s.from&&c.to-c.from>t.length+a;){if(n.sliceDoc(c.to-t.length,c.to)==t)return!1;c=c.firstChild}return!0}let h=s.to==e&&s.parent;if(!h)break;s=h}return!1}function gh(n,e,t){let i=n.charCategorizer(e);if(i(n.sliceDoc(e-1,e))!=J.Word)return e;for(let s of t){let r=e-s.length;if(n.sliceDoc(r,e)==s&&i(n.sliceDoc(r-1,r))!=J.Word)return r}return-1}function bx(n={}){return[rx,Oe,le.of(n),nx,xx,ox]}const ed=[{key:"Ctrl-Space",run:ph},{mac:"Alt-`",run:ph},{key:"Escape",run:Zb},{key:"ArrowDown",run:Hn(!0)},{key:"ArrowUp",run:Hn(!1)},{key:"PageDown",run:Hn(!0,"page")},{key:"PageUp",run:Hn(!1,"page")},{key:"Enter",run:Jb}],xx=Gt.highest(un.computeN([le],n=>n.facet(le).defaultKeymap?[ed]:[])),kx=[Sg(),Ag(),lf(),Kf(),p0(),sf(),$m(),z.allowMultipleSelections.of(!0),e0(),Ef(Bf,{fallback:!0}),O0(),lx(),bx(),ig(),rg(),Gm(),fb(),un.of([...fx,...Ou,...Db,...Yf,...c0,...ed,...Gy])],vx=[lf(),Kf(),sf(),Ef(Bf,{fallback:!0}),un.of([...Ou,...Yf])];const wx=n=>n?Object.entries(n).reduce((e,[t,i])=>(t=t.charAt(0).toUpperCase()+t.slice(1),t=`on${t}`,{...e,[t]:i}),{}):{};function yh(n,e={},t){const{props:i,domProps:s,on:r,...o}=e,l=r?wx(r):{};return vd(n,{...o,...i,...s,...l},t)}const Sx=n=>typeof n=="function"?n():n,Ox=Lo({name:"CodeMirror",model:{prop:"modelValue",event:"update:modelValue"},props:{modelValue:{type:String,default:""},theme:{type:Object,default:()=>({})},dark:{type:Boolean,default:!1},basic:{type:Boolean,default:!1},minimal:{type:Boolean,default:!1},placeholder:{type:String,default:void 0},wrap:{type:Boolean,default:!1},tab:{type:Boolean,default:!1},indentUnit:{type:String,default:void 0},allowMultipleSelections:{type:Boolean,default:!1},tabSize:{type:Number,default:void 0},lineSeparator:{type:String,default:void 0},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},extensions:{type:Array,default:()=>[]},phrases:{type:Object,default:void 0},lang:{type:Object,default:void 0},linter:{type:Function,default:void 0},linterConfig:{type:Object,default:()=>({})},forceLinting:{type:Boolean,default:!1},gutter:{type:Boolean,default:!1},gutterConfig:{type:Object,default:void 0},tag:{type:String,default:"div"},scrollIntoView:{type:Boolean,default:!0},keymap:{type:Array,default:()=>[]}},emits:{"update:modelValue":(n="")=>!0,update:n=>!0,ready:n=>!0,focus:n=>!0,change:n=>!0,destroy:()=>!0},setup(n,e){const t=Ei(),i=Ei(n.modelValue),s=yd(void 0),r=Yt({get:()=>s.value?.hasFocus??!1,set:b=>{b&&s.value&&s.value.focus()}}),o=Yt({get:()=>s.value?.state.selection,set:b=>{s.value&&b&&s.value.dispatch({selection:b})}}),l=Yt({get:()=>s.value?.state.selection.main.head??0,set:b=>{s.value&&s.value.dispatch({selection:{anchor:b}})}}),a=Yt({get:()=>s.value?.state.toJSON(),set:b=>{s.value&&b&&s.value.setState(z.fromJSON(b))}}),h=Ei(0),c=Ei(0),f=Yt(()=>{const b=new fi,R=new fi;if(n.basic&&n.minimal)throw new Error("[Vue CodeMirror] Both basic and minimal cannot be specified.");let V=[];return n.keymap&&n.keymap.length>0&&(V=n.keymap),n.tab&&V.push(zy),[n.basic&&!n.minimal?kx:void 0,n.minimal&&!n.basic?vx:void 0,E.updateListener.of(Y=>{s.value&&(e.emit("focus",s.value.hasFocus),h.value=s.value.state.doc?.length,!(Y.changes.empty||!Y.docChanged)&&(n.linter&&(n.forceLinting&&ih(s.value),c.value=n.linter(s.value).length),e.emit("update",Y)))}),E.theme(n.theme,{dark:n.dark}),n.wrap?E.lineWrapping:void 0,n.indentUnit?$s.of(n.indentUnit):void 0,z.allowMultipleSelections.of(n.allowMultipleSelections),n.tabSize?R.of(z.tabSize.of(n.tabSize)):void 0,n.phrases?z.phrases.of(n.phrases):void 0,z.readOnly.of(n.readonly),E.editable.of(!n.disabled),n.lineSeparator?z.lineSeparator.of(n.lineSeparator):void 0,n.lang?b.of(n.lang):void 0,n.linter?Xy(n.linter,n.linterConfig):void 0,n.linter&&n.gutter?rb(n.gutterConfig):void 0,n.placeholder?Jm(n.placeholder):void 0,V.length>0?un.of(V):void 0,...n.extensions].filter(Y=>!!Y)});Rr(f,b=>s.value?.dispatch({effects:F.reconfigure.of(b)}),{immediate:!0}),Rr(()=>n.modelValue,async b=>{if(!s.value||s.value.composing||s.value.state.doc.toJSON().join(n.lineSeparator??` +`)===b)return;const R=!s.value.state.selection.ranges.every(V=>V.anchor{if(globalThis.window===void 0||!t.value)return;let b=i.value;t.value.childNodes[0]&&(i.value!==""&&console.warn("[CodeMirror.vue] The tag contains child elements that overwrite the `v-model` values."),b=t.value.childNodes[0].innerText.trim()),s.value=new E({parent:t.value,state:z.create({doc:b,extensions:f.value}),dispatch:R=>{s.value&&(s.value.update([R]),!(R.changes.empty||!R.docChanged)&&(e.emit("update:modelValue",R.state.doc.toString()),e.emit("change",R.state)))}}),await xd(),e.emit("ready",{view:s.value,state:s.value.state,container:t.value})}),kd(()=>{s.value&&(s.value.destroy(),e.emit("destroy"))});const u=()=>{!n.linter||!s.value||(n.forceLinting&&ih(s.value),c.value=Hy(s.value.state))},d=()=>{s.value?.dispatch({effects:F.reconfigure.of([])}),s.value?.dispatch({effects:F.appendConfig.of(f.value)})},p=(b,R)=>s.value?.state.sliceDoc(b,R),m=b=>s.value?.state.doc.line(b+1).text,g=()=>s.value?.state.doc.lines??0,y=()=>s.value?.state.selection.main.head??0,k=()=>s.value?.state.selection.ranges??[],O=()=>s.value?s.value.state.sliceDoc(s.value.state.selection.main.from,s.value.state.selection.main.to):"",w=()=>{const b=s.value?.state;return b?b.selection.ranges.map(R=>b.sliceDoc(R.from,R.to)):[]},v=()=>s.value?.state.selection.ranges.some(b=>!b.empty)??!1,A=(b,R,V)=>{s.value&&s.value.dispatch({changes:{from:R,to:V,insert:b}})},M=b=>{s.value&&s.value.dispatch(s.value.state.replaceSelection(b))},$=b=>{s.value&&s.value.dispatch({selection:{anchor:b}})},W=(b,R)=>{s.value&&s.value.dispatch({selection:{anchor:b,head:R}})},P=(b,R)=>{s.value&&s.value.dispatch({selection:x.create(b,R)})},T=b=>{s.value&&o.value&&s.value.dispatch({selection:x.create(o.value.ranges.map(R=>R.extend(b(R))))})},C={editor:t,view:s,cursor:l,selection:o,focus:r,length:h,json:a,diagnosticCount:c,dom:s.value?.contentDOM,lint:u,forceReconfigure:d,getRange:p,getLine:m,lineCount:g,getCursor:y,listSelections:k,getSelection:O,getSelections:w,somethingSelected:v,replaceRange:A,replaceSelection:M,setCursor:$,setSelection:W,setSelections:P,extendSelectionsBy:T};return e.expose(C),C},render(){return yh(this.$props.tag,{ref:"editor",class:"vue-codemirror"},this.$slots.default?yh("aside",{style:"display: none;","aria-hidden":"true"},Sx(this.$slots.default)):void 0)}});var bh={};class Ps{constructor(e,t,i,s,r,o,l,a,h,c=0,f){this.p=e,this.stack=t,this.state=i,this.reducePos=s,this.pos=r,this.score=o,this.buffer=l,this.bufferBase=a,this.curContext=h,this.lookAhead=c,this.parent=f}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,i=0){let s=e.parser.context;return new Ps(e,[],t,i,i,0,[],0,s?new xh(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let i=e>>19,s=e&65535,{parser:r}=this.p,o=this.reducePos=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(h==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(s,h)}storeNode(e,t,i,s=4,r=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&o.buffer[l-4]==0&&o.buffer[l-1]>-1){if(t==i)return;if(o.buffer[l-2]>=t){o.buffer[l-2]=i;return}}}if(!r||this.pos==i)this.buffer.push(e,t,i,s);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0){let l=!1;for(let a=o;a>0&&this.buffer[a-2]>i;a-=4)if(this.buffer[a-1]>=0){l=!0;break}if(l)for(;o>0&&this.buffer[o-2]>i;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=i,this.buffer[o+3]=s}}shift(e,t,i,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let r=e,{parser:o}=this.p;(s>this.pos||t<=o.maxNode)&&(this.pos=s,o.stateFlag(r,1)||(this.reducePos=s)),this.pushState(r,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,s,4)}else this.pos=s,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,s,4)}apply(e,t,i,s){e&65536?this.reduce(e):this.shift(e,t,i,s)}useNode(e,t){let i=this.p.reused.length-1;(i<0||this.p.reused[i]!=e)&&(this.p.reused.push(e),i++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(i,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let i=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new Ps(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,i,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let i=e<=this.p.parser.maxNode;i&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,i?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Cx(this);;){let i=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(i==0)return!1;if((i&65536)==0)return!0;t.reduce(i)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let s=[];for(let r=0,o;ra&1&&l==o)||s.push(t[r],o)}t=s}let i=[];for(let s=0;s>19,s=t&65535,r=this.stack.length-i*3;if(r<0||e.getGoto(this.stack[r],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],i=(s,r)=>{if(!t.includes(s))return t.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let l=(o>>19)-r;if(l>1){let a=o&65535,h=this.stack.length-l*3;if(h>=0&&e.getGoto(this.stack[h],a,!1)>=0)return l<<19|65536|a}}else{let l=i(o,r+1);if(l!=null)return l}})};return i(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class xh{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class Cx{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,i=e>>19;i==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(i-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}}class Ds{constructor(e,t,i){this.stack=e,this.pos=t,this.index=i,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Ds(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Ds(this.stack,this.pos,this.index)}}function _n(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let i=0,s=0;i=92&&o--,o>=34&&o--;let a=o-32;if(a>=46&&(a-=46,l=!0),r+=a,l)break;r*=46}t?t[s++]=r:t=new e(r)}return t}class rs{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const kh=new rs;class Ax{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=kh,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let i=this.range,s=this.rangeIndex,r=this.pos+e;for(;ri.to:r>=i.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];r+=o.from-i.to,i=o}return r}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,i,s;if(t>=0&&t=this.chunk2Pos&&il.to&&(this.chunk2=this.chunk2.slice(0,l.to-i)),s=this.chunk2.charCodeAt(0)}}return i>=this.token.lookAhead&&(this.token.lookAhead=i+1),s}acceptToken(e,t=0){let i=t?this.resolveOffset(t,-1):this.pos;if(i==null||i=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=kh,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let i="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(i+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return i}}class hi{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:i}=t.p;Tx(this.data,e,t,this.id,i.data,i.tokenPrecTable)}}hi.prototype.contextual=hi.prototype.fallback=hi.prototype.extend=!1;hi.prototype.fallback=hi.prototype.extend=!1;class td{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function Tx(n,e,t,i,s,r){let o=0,l=1<0){let p=n[d];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||Mx(p,e.token.value,s,r))){e.acceptToken(p);break}}let c=e.next,f=0,u=n[o+2];if(e.next<0&&u>f&&n[h+u*3-3]==65535){o=n[h+u*3-1];continue e}for(;f>1,p=h+d+(d<<1),m=n[p],g=n[p+1]||65536;if(c=g)f=d+1;else{o=n[p+2],e.advance();continue e}}break}}function vh(n,e,t){for(let i=e,s;(s=n[i])!=65535;i++)if(s==t)return i-e;return-1}function Mx(n,e,t,i){let s=vh(t,i,e);return s<0||vh(t,i,n)e)&&!i.type.isError)return t<0?Math.max(0,Math.min(i.to-1,e-25)):Math.min(n.length,Math.max(i.from+1,e+25));if(t<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return t<0?0:n.length}}class Px{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?wh(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?wh(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=o,null;if(r instanceof G){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+r.length}}}class Dx{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(i=>new rs)}getActions(e){let t=0,i=null,{parser:s}=e.p,{tokenizers:r}=s,o=s.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let h=0;hf.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let u=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!c.extend&&(i=f,t>u))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!i&&e.pos==this.stream.end&&(i=new rs,i.value=e.p.parser.eofTerm,i.start=i.end=e.pos,t=this.addActions(e,i.value,i.end,t)),this.mainToken=i,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new rs,{pos:i,p:s}=e;return t.start=i,t.end=Math.min(i+1,s.stream.end),t.value=i==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,i){let s=this.stream.clipPos(i.pos);if(t.token(this.stream.reset(s,e),i),e.value>-1){let{parser:r}=i.p;for(let o=0;o=0&&i.p.parser.dialect.allows(l>>1)){(l&1)==0?e.value=l>>1:e.extended=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,i,s){for(let r=0;re.bufferLength*4?new Px(i,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,i=this.stacks=[],s,r;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;ot)i.push(l);else{if(this.advanceStack(l,i,e))continue;{s||(s=[],r=[]),s.push(l);let a=this.tokens.getMainToken(l);r.push(a.value,a.end)}}break}}if(!i.length){let o=s&&Lx(s);if(o)return Me&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw Me&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,i);if(o)return Me&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(i.length>o)for(i.sort((l,a)=>a.score-l.score);i.length>o;)i.pop();i.some(l=>l.reducePos>t)&&this.recovering--}else if(i.length>1){e:for(let o=0;o500&&h.buffer.length>500)if((l.score-h.score||l.buffer.length-h.buffer.length)>0)i.splice(a--,1);else{i.splice(o--,1);continue e}}}i.length>12&&i.splice(12,i.length-12)}this.minStackPos=i[0].pos;for(let o=1;o ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,c=h?e.curContext.hash:0;for(let f=this.fragments.nodeAt(s);f;){let u=this.parser.nodeSet.types[f.type.id]==f.type?r.getGoto(e.state,f.type.id):-1;if(u>-1&&f.length&&(!h||(f.prop(q.contextHash)||0)==c))return e.useNode(f,u),Me&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(f.type.id)})`),!0;if(!(f instanceof G)||f.children.length==0||f.positions[0]>0)break;let d=f.children[0];if(d instanceof G&&f.positions[0]==0)f=d;else break}}let l=r.stateSlot(e.state,4);if(l>0)return e.reduce(l),Me&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(l&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let h=0;hs?t.push(p):i.push(p)}return!1}advanceFully(e,t){let i=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>i)return Sh(e,t),!0}}runRecovery(e,t,i){let s=null,r=!1;for(let o=0;o ":"";if(l.deadEnd&&(r||(r=!0,l.restart(),Me&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,i))))continue;let f=l.split(),u=c;for(let d=0;f.forceReduce()&&d<10&&(Me&&console.log(u+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,i));d++)Me&&(u=this.stackID(f)+" -> ");for(let d of l.recoverByInsert(a))Me&&console.log(c+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,i);this.stream.end>l.pos?(h==l.pos&&(h++,a=0),l.recoverByDelete(a,h),Me&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),Sh(l,i)):(!s||s.scoren;class Bx{constructor(e){this.start=e.start,this.shift=e.shift||Cr,this.reduce=e.reduce||Cr,this.reuse=e.reuse||Cr,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class ln extends Zo{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;le.topRules[l][1]),s=[];for(let l=0;l=0)r(c,a,l[h++]);else{let f=l[h+-c];for(let u=-c;u>0;u--)r(l[h++],a,f);h++}}}this.nodeSet=new Ns(t.map((l,a)=>ve.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:s[a],top:i.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=pf;let o=_n(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;ltypeof l=="number"?new hi(o,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,i){let s=new Rx(this,e,t,i);for(let r of this.wrappers)s=r(s,e,t,i);return s}getGoto(e,t,i=!1){let s=this.goto;if(t>=s[0])return-1;for(let r=s[t+1];;){let o=s[r++],l=o&1,a=s[r++];if(l&&i)return a;for(let h=r+(o>>1);r0}validAction(e,t){return!!this.allActions(e,i=>i==t?!0:null)}allActions(e,t){let i=this.stateSlot(e,4),s=i?t(i):void 0;for(let r=this.stateSlot(e,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=ht(this.data,r+2);else break;s=t(ht(this.data,r+1))}return s}nextStates(e){let t=[];for(let i=this.stateSlot(e,1);;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=ht(this.data,i+2);else break;if((this.data[i+2]&1)==0){let s=this.data[i+1];t.some((r,o)=>o&1&&r==s)||t.push(this.data[i],s)}}return t}configure(e){let t=Object.assign(Object.create(ln.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let i=this.topRules[e.top];if(!i)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=i}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(i=>{let s=e.tokenizers.find(r=>r.from==i);return s?s.to:i})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((i,s)=>{let r=e.specializers.find(l=>l.from==i.external);if(!r)return i;let o=Object.assign(Object.assign({},i),{external:r.to});return t.specializers[s]=Oh(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),i=t.map(()=>!1);if(e)for(let r of e.split(" ")){let o=t.indexOf(r);o>=0&&(i[o]=!0)}let s=null;for(let r=0;ri)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scoren.external(t,i)<<1|e}return n.get}const Ix=el({String:S.string,Number:S.number,"True False":S.bool,PropertyName:S.propertyName,Null:S.null,", :":S.separator,"[ ]":S.squareBracket,"{ }":S.brace}),Nx=ln.deserialize({version:14,states:"$bOVQPOOOOQO'#Cb'#CbOnQPO'#CeOvQPO'#ClOOQO'#Cr'#CrQOQPOOOOQO'#Cg'#CgO}QPO'#CfO!SQPO'#CtOOQO,59P,59PO![QPO,59PO!aQPO'#CuOOQO,59W,59WO!iQPO,59WOVQPO,59QOqQPO'#CmO!nQPO,59`OOQO1G.k1G.kOVQPO'#CnO!vQPO,59aOOQO1G.r1G.rOOQO1G.l1G.lOOQO,59X,59XOOQO-E6k-E6kOOQO,59Y,59YOOQO-E6l-E6l",stateData:"#O~OeOS~OQSORSOSSOTSOWQO_ROgPO~OVXOgUO~O^[O~PVO[^O~O]_OVhX~OVaO~O]bO^iX~O^dO~O]_OVha~O]bO^ia~O",goto:"!kjPPPPPPkPPkqwPPPPk{!RPPP!XP!e!hXSOR^bQWQRf_TVQ_Q`WRg`QcZRicQTOQZRQe^RhbRYQR]R",nodeNames:"⚠ JsonText True False Null Number String } { Object Property PropertyName : , ] [ Array",maxTerm:25,nodeProps:[["isolate",-2,6,11,""],["openedBy",7,"{",14,"["],["closedBy",8,"}",15,"]"]],propSources:[Ix],skippedNodes:[0],repeatNodeCount:2,tokenData:"(|~RaXY!WYZ!W]^!Wpq!Wrs!]|}$u}!O$z!Q!R%T!R![&c![!]&t!}#O&y#P#Q'O#Y#Z'T#b#c'r#h#i(Z#o#p(r#q#r(w~!]Oe~~!`Wpq!]qr!]rs!xs#O!]#O#P!}#P;'S!];'S;=`$o<%lO!]~!}Og~~#QXrs!]!P!Q!]#O#P!]#U#V!]#Y#Z!]#b#c!]#f#g!]#h#i!]#i#j#m~#pR!Q![#y!c!i#y#T#Z#y~#|R!Q![$V!c!i$V#T#Z$V~$YR!Q![$c!c!i$c#T#Z$c~$fR!Q![!]!c!i!]#T#Z!]~$rP;=`<%l!]~$zO]~~$}Q!Q!R%T!R![&c~%YRT~!O!P%c!g!h%w#X#Y%w~%fP!Q![%i~%nRT~!Q![%i!g!h%w#X#Y%w~%zR{|&T}!O&T!Q![&Z~&WP!Q![&Z~&`PT~!Q![&Z~&hST~!O!P%c!Q![&c!g!h%w#X#Y%w~&yO[~~'OO_~~'TO^~~'WP#T#U'Z~'^P#`#a'a~'dP#g#h'g~'jP#X#Y'm~'rOR~~'uP#i#j'x~'{P#`#a(O~(RP#`#a(U~(ZOS~~(^P#f#g(a~(dP#i#j(g~(jP#X#Y(m~(rOQ~~(wOW~~(|OV~",tokenizers:[0],topRules:{JsonText:[0,1]},tokenPrec:0}),$x=Zi.define({name:"json",parser:Nx.configure({props:[Vs.add({Object:Va({except:/^\s*\}/}),Array:Va({except:/^\s*\]/})}),nl.add({"Object Array":i0})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function Fx(){return new wf($x)}const Mo=1,Vx=2,Wx=3,zx=4,qx=5,Hx=36,_x=37,jx=38,Ux=11,Kx=13;function Gx(n){return n==45||n==46||n==58||n>=65&&n<=90||n==95||n>=97&&n<=122||n>=161}function Qx(n){return n==9||n==10||n==13||n==32}let Ch=null,Ah=null,Th=0;function Po(n,e){let t=n.pos+e;if(Ah==n&&Th==t)return Ch;for(;Qx(n.peek(e));)e++;let i="";for(;;){let s=n.peek(e);if(!Gx(s))break;i+=String.fromCharCode(s),e++}return Ah=n,Th=t,Ch=i||null}function Mh(n,e){this.name=n,this.parent=e}const Xx=new Bx({start:null,shift(n,e,t,i){return e==Mo?new Mh(Po(i,1)||"",n):n},reduce(n,e){return e==Ux&&n?n.parent:n},reuse(n,e,t,i){let s=e.type.id;return s==Mo||s==Kx?new Mh(Po(i,1)||"",n):n},strict:!1}),Yx=new td((n,e)=>{if(n.next==60){if(n.advance(),n.next==47){n.advance();let t=Po(n,0);if(!t)return n.acceptToken(qx);if(e.context&&t==e.context.name)return n.acceptToken(Vx);for(let i=e.context;i;i=i.parent)if(i.name==t)return n.acceptToken(Wx,-2);n.acceptToken(zx)}else if(n.next!=33&&n.next!=63)return n.acceptToken(Mo)}},{contextual:!0});function bl(n,e){return new td(t=>{let i=0,s=e.charCodeAt(0);e:for(;!(t.next<0);t.advance(),i++)if(t.next==s){for(let r=1;r"),Zx=bl(_x,"?>"),e1=bl(jx,"]]>"),t1=el({Text:S.content,"StartTag StartCloseTag EndTag SelfCloseEndTag":S.angleBracket,TagName:S.tagName,"MismatchedCloseTag/TagName":[S.tagName,S.invalid],AttributeName:S.attributeName,AttributeValue:S.attributeValue,Is:S.definitionOperator,"EntityReference CharacterReference":S.character,Comment:S.blockComment,ProcessingInst:S.processingInstruction,DoctypeDecl:S.documentMeta,Cdata:S.special(S.string)}),i1=ln.deserialize({version:14,states:",lOQOaOOOrOxO'#CfOzOpO'#CiO!tOaO'#CgOOOP'#Cg'#CgO!{OrO'#CrO#TOtO'#CsO#]OpO'#CtOOOP'#DT'#DTOOOP'#Cv'#CvQQOaOOOOOW'#Cw'#CwO#eOxO,59QOOOP,59Q,59QOOOO'#Cx'#CxO#mOpO,59TO#uO!bO,59TOOOP'#C|'#C|O$TOaO,59RO$[OpO'#CoOOOP,59R,59ROOOQ'#C}'#C}O$dOrO,59^OOOP,59^,59^OOOS'#DO'#DOO$lOtO,59_OOOP,59_,59_O$tOpO,59`O$|OpO,59`OOOP-E6t-E6tOOOW-E6u-E6uOOOP1G.l1G.lOOOO-E6v-E6vO%UO!bO1G.oO%UO!bO1G.oO%dOpO'#CkO%lO!bO'#CyO%zO!bO1G.oOOOP1G.o1G.oOOOP1G.w1G.wOOOP-E6z-E6zOOOP1G.m1G.mO&VOpO,59ZO&_OpO,59ZOOOQ-E6{-E6{OOOP1G.x1G.xOOOS-E6|-E6|OOOP1G.y1G.yO&gOpO1G.zO&gOpO1G.zOOOP1G.z1G.zO&oO!bO7+$ZO&}O!bO7+$ZOOOP7+$Z7+$ZOOOP7+$c7+$cO'YOpO,59VO'bOpO,59VO'mO!bO,59eOOOO-E6w-E6wO'{OpO1G.uO'{OpO1G.uOOOP1G.u1G.uO(TOpO7+$fOOOP7+$f7+$fO(]O!bO<c!|;'S(o;'S;=`)]<%lO(oi>jX|W!O`Or(ors&osv(owx'}x!r(o!r!s?V!s;'S(o;'S;=`)]<%lO(oi?^X|W!O`Or(ors&osv(owx'}x!g(o!g!h?y!h;'S(o;'S;=`)]<%lO(oi@QY|W!O`Or?yrs@psv?yvwA[wxBdx!`?y!`!aCr!a;'S?y;'S;=`Db<%lO?ya@uV!O`Ov@pvxA[x!`@p!`!aAy!a;'S@p;'S;=`B^<%lO@pPA_TO!`A[!`!aAn!a;'SA[;'S;=`As<%lOA[PAsOiPPAvP;=`<%lA[aBQSiP!O`Ov&ox;'S&o;'S;=`'Q<%lO&oaBaP;=`<%l@pXBiX|WOrBdrsA[svBdvwA[w!`Bd!`!aCU!a;'SBd;'S;=`Cl<%lOBdXC]TiP|WOr'}sv'}w;'S'};'S;=`(c<%lO'}XCoP;=`<%lBdiC{ViP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiDeP;=`<%l?yiDoZ|W!O`Or(ors&osv(owx'}x!e(o!e!fEb!f#V(o#V#WIr#W;'S(o;'S;=`)]<%lO(oiEiX|W!O`Or(ors&osv(owx'}x!f(o!f!gFU!g;'S(o;'S;=`)]<%lO(oiF]X|W!O`Or(ors&osv(owx'}x!c(o!c!dFx!d;'S(o;'S;=`)]<%lO(oiGPX|W!O`Or(ors&osv(owx'}x!v(o!v!wGl!w;'S(o;'S;=`)]<%lO(oiGsX|W!O`Or(ors&osv(owx'}x!c(o!c!dH`!d;'S(o;'S;=`)]<%lO(oiHgX|W!O`Or(ors&osv(owx'}x!}(o!}#OIS#O;'S(o;'S;=`)]<%lO(oiI]V|W!O`yPOr(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(oiIyX|W!O`Or(ors&osv(owx'}x#W(o#W#XJf#X;'S(o;'S;=`)]<%lO(oiJmX|W!O`Or(ors&osv(owx'}x#T(o#T#UKY#U;'S(o;'S;=`)]<%lO(oiKaX|W!O`Or(ors&osv(owx'}x#h(o#h#iK|#i;'S(o;'S;=`)]<%lO(oiLTX|W!O`Or(ors&osv(owx'}x#T(o#T#UH`#U;'S(o;'S;=`)]<%lO(oiLwX|W!O`Or(ors&osv(owx'}x#c(o#c#dMd#d;'S(o;'S;=`)]<%lO(oiMkX|W!O`Or(ors&osv(owx'}x#V(o#V#WNW#W;'S(o;'S;=`)]<%lO(oiN_X|W!O`Or(ors&osv(owx'}x#h(o#h#iNz#i;'S(o;'S;=`)]<%lO(oi! RX|W!O`Or(ors&osv(owx'}x#m(o#m#n! n#n;'S(o;'S;=`)]<%lO(oi! uX|W!O`Or(ors&osv(owx'}x#d(o#d#e!!b#e;'S(o;'S;=`)]<%lO(oi!!iX|W!O`Or(ors&osv(owx'}x#X(o#X#Y?y#Y;'S(o;'S;=`)]<%lO(oi!#_V!SP|W!O`Or(ors&osv(owx'}x;'S(o;'S;=`)]<%lO(ok!$PXaQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qo!$wX[UVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!%mZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!&`!a;'S$q;'S;=`)c<%lO$qk!&kX!RQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$qk!'aZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_#P$q#P#Q!(S#Q;'S$q;'S;=`)c<%lO$qk!(]ZVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_!`$q!`!a!)O!a;'S$q;'S;=`)c<%lO$qk!)ZXxQVP|W!O`Or$qrs%gsv$qwx'^x!^$q!^!_(o!_;'S$q;'S;=`)c<%lO$q",tokenizers:[Yx,Jx,Zx,e1,0,1,2,3,4],topRules:{Document:[0,6]},tokenPrec:0});function os(n,e){let t=e&&e.getChild("TagName");return t?n.sliceString(t.from,t.to):""}function Ar(n,e){let t=e&&e.firstChild;return!t||t.name!="OpenTag"?"":os(n,t)}function n1(n,e,t){let i=e&&e.getChildren("Attribute").find(r=>r.from<=t&&r.to>=t),s=i&&i.getChild("AttributeName");return s?n.sliceString(s.from,s.to):""}function Tr(n){for(let e=n&&n.parent;e;e=e.parent)if(e.name=="Element")return e;return null}function s1(n,e){var t;let i=ae(n).resolveInner(e,-1),s=null;for(let r=i;!s&&r.parent;r=r.parent)(r.name=="OpenTag"||r.name=="CloseTag"||r.name=="SelfClosingTag"||r.name=="MismatchedCloseTag")&&(s=r);if(s&&(s.to>e||s.lastChild.type.isError)){let r=s.parent;if(i.name=="TagName")return s.name=="CloseTag"||s.name=="MismatchedCloseTag"?{type:"closeTag",from:i.from,context:r}:{type:"openTag",from:i.from,context:Tr(r)};if(i.name=="AttributeName")return{type:"attrName",from:i.from,context:s};if(i.name=="AttributeValue")return{type:"attrValue",from:i.from,context:s};let o=i==s||i.name=="Attribute"?i.childBefore(e):i;return o?.name=="StartTag"?{type:"openTag",from:e,context:Tr(r)}:o?.name=="StartCloseTag"&&o.to<=e?{type:"closeTag",from:e,context:r}:o?.name=="Is"?{type:"attrValue",from:e,context:s}:o?{type:"attrName",from:e,context:s}:null}else if(i.name=="StartCloseTag")return{type:"closeTag",from:e,context:i.parent};for(;i.parent&&i.to==e&&!(!((t=i.lastChild)===null||t===void 0)&&t.type.isError);)i=i.parent;return i.name=="Element"||i.name=="Text"||i.name=="Document"?{type:"tag",from:e,context:i.name=="Element"?i:Tr(i)}:null}class r1{constructor(e,t,i){this.attrs=t,this.attrValues=i,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map(s=>({label:s,type:"text"})):[]}}const Mr=/^[:\-\.\w\u00b7-\uffff]*$/;function Ph(n){return Object.assign(Object.assign({type:"property"},n.completion||{}),{label:n.name})}function Dh(n){return typeof n=="string"?{label:`"${n}"`,type:"constant"}:/^"/.test(n.label)?n:Object.assign(Object.assign({},n),{label:`"${n.label}"`})}function o1(n,e){let t=[],i=[],s=Object.create(null);for(let a of e){let h=Ph(a);t.push(h),a.global&&i.push(h),a.values&&(s[a.name]=a.values.map(Dh))}let r=[],o=[],l=Object.create(null);for(let a of n){let h=i,c=s;a.attributes&&(h=h.concat(a.attributes.map(u=>typeof u=="string"?t.find(d=>d.label==u)||{label:u,type:"property"}:(u.values&&(c==s&&(c=Object.create(c)),c[u.name]=u.values.map(Dh)),Ph(u)))));let f=new r1(a,h,c);l[f.name]=f,r.push(f),a.top&&o.push(f)}o.length||(o=r);for(let a=0;a{var h;let{doc:c}=a.state,f=s1(a.state,a.pos);if(!f||f.type=="tag"&&!a.explicit)return null;let{type:u,from:d,context:p}=f;if(u=="openTag"){let m=o,g=Ar(c,p);if(g){let y=l[g];m=y?.children||r}return{from:d,options:m.map(y=>y.completion),validFor:Mr}}else if(u=="closeTag"){let m=Ar(c,p);return m?{from:d,to:a.pos+(c.sliceString(a.pos,a.pos+1)==">"?1:0),options:[((h=l[m])===null||h===void 0?void 0:h.closeNameCompletion)||{label:m+">",type:"type"}],validFor:Mr}:null}else if(u=="attrName"){let m=l[os(c,p)];return{from:d,options:m?.attrs||i,validFor:Mr}}else if(u=="attrValue"){let m=n1(c,p,d);if(!m)return null;let g=l[os(c,p)],y=(g?.attrValues||s)[m];return!y||!y.length?null:{from:d,to:a.pos+(c.sliceString(a.pos,a.pos+1)=='"'?1:0),options:y,validFor:/^"[^"]*"?$/}}else if(u=="tag"){let m=Ar(c,p),g=l[m],y=[],k=p&&p.lastChild;m&&(!k||k.name!="CloseTag"||os(c,k)!=m)&&y.push(g?g.closeCompletion:{label:"",type:"type",boost:2});let O=y.concat((g?.children||(p?r:o)).map(w=>w.openCompletion));if(p&&g?.text.length){let w=p.firstChild;w.to>a.pos-20&&!/\S/.test(a.state.sliceDoc(w.to,a.pos))&&(O=O.concat(g.text))}return{from:d,options:O,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}else return null}}const Do=Zi.define({name:"xml",parser:i1.configure({props:[Vs.add({Element(n){let e=/^\s*<\//.test(n.textAfter);return n.lineIndent(n.node.from)+(e?0:n.unit)},"OpenTag CloseTag SelfClosingTag"(n){return n.column(n.node.from)+n.unit}}),nl.add({Element(n){let e=n.firstChild,t=n.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:n.to}}}),$f.add({"OpenTag CloseTag":n=>n.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:""}},indentOnInput:/^\s*<\/$/}});function l1(n={}){let e=[Do.data.of({autocomplete:o1(n.elements||[],n.attributes||[])})];return n.autoCloseTags!==!1&&e.push(a1),new wf(Do,e)}function Rh(n,e,t=n.length){if(!e)return"";let i=e.firstChild,s=i&&i.getChild("TagName");return s?n.sliceString(s.from,Math.min(s.to,t)):""}const a1=E.inputHandler.of((n,e,t,i,s)=>{if(n.composing||n.state.readOnly||e!=t||i!=">"&&i!="/"||!Do.isActiveAt(n.state,e,-1))return!1;let r=s(),{state:o}=r,l=o.changeByRange(a=>{var h,c,f;let{head:u}=a,d=o.doc.sliceString(u-1,u)==i,p=ae(o).resolveInner(u,-1),m;if(d&&i==">"&&p.name=="EndTag"){let g=p.parent;if(((c=(h=g.parent)===null||h===void 0?void 0:h.lastChild)===null||c===void 0?void 0:c.name)!="CloseTag"&&(m=Rh(o.doc,g.parent,u))){let y=u+(o.doc.sliceString(u,u+1)===">"?1:0),k=``;return{range:a,changes:{from:u,to:y,insert:k}}}}else if(d&&i=="/"&&p.name=="StartCloseTag"){let g=p.parent;if(p.from==u-2&&((f=g.lastChild)===null||f===void 0?void 0:f.name)!="CloseTag"&&(m=Rh(o.doc,g,u))){let y=u+(o.doc.sliceString(u,u+1)===">"?1:0),k=`${m}>`;return{range:x.cursor(u+k.length,-1),changes:{from:u,to:y,insert:k}}}}return{range:a}});return l.changes.empty?!1:(n.dispatch([r,o.update(l,{userEvent:"input.complete",scrollIntoView:!0})]),!0)});function Oi(n,e){e=e||{};for(var t=e.prefix!==void 0?e.prefix:"^",i=e.suffix!==void 0?e.suffix:"\\b",s=0;s/,d1=Oi([f1,u1],{suffix:""}),p1=/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,m1=/^[A-Za-z\_][A-Za-z\-\_\d]*\b/,g1=/[A-Z]:|%|\?/i,y1=Oi([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),b1=Oi([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),x1=Oi([g1,y1,b1],{suffix:id}),Eh={keyword:h1,number:p1,operator:d1,builtin:x1,punctuation:c1,variable:m1};function pt(n,e){var t=e.returnStack[e.returnStack.length-1];if(t&&t.shouldReturnFrom(e))return e.tokenize=t.tokenize,e.returnStack.pop(),e.tokenize(n,e);if(n.eatSpace())return null;if(n.eat("("))return e.bracketNesting+=1,"punctuation";if(n.eat(")"))return e.bracketNesting-=1,"punctuation";for(var i in Eh)if(n.match(Eh[i]))return i;var s=n.next();if(s==="'")return k1(n,e);if(s==="$")return Eo(n,e);if(s==='"')return nd(n,e);if(s==="<"&&n.eat("#"))return e.tokenize=Bh,Bh(n,e);if(s==="#")return n.skipToEnd(),"comment";if(s==="@"){var r=n.eat(/["']/);if(r&&n.eol())return e.tokenize=Rs,e.startQuote=r[0],Rs(n,e);if(n.eol())return"error";if(n.peek().match(/[({]/))return"punctuation";if(n.peek().match(Ro))return Eo(n,e)}return"error"}function k1(n,e){for(var t;(t=n.peek())!=null;)if(n.next(),t==="'"&&!n.eat("'"))return e.tokenize=pt,"string";return"error"}function nd(n,e){for(var t;(t=n.peek())!=null;){if(t==="$")return e.tokenize=v1,"string";if(n.next(),t==="`"){n.next();continue}if(t==='"'&&!n.eat('"'))return e.tokenize=pt,"string"}return"error"}function v1(n,e){return sd(n,e,nd)}function w1(n,e){return e.tokenize=Rs,e.startQuote='"',Rs(n,e)}function S1(n,e){return sd(n,e,w1)}function sd(n,e,t){if(n.match("$(")){var i=e.bracketNesting;return e.returnStack.push({shouldReturnFrom:function(s){return s.bracketNesting===i},tokenize:t}),e.tokenize=pt,e.bracketNesting+=1,"punctuation"}else return n.next(),e.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:t}),e.tokenize=Eo,e.tokenize(n,e)}function Bh(n,e){for(var t=!1,i;(i=n.next())!=null;){if(t&&i==">"){e.tokenize=pt;break}t=i==="#"}return"comment"}function Eo(n,e){var t=n.peek();return n.eat("{")?(e.tokenize=Lh,Lh(n,e)):t!=null&&t.match(Ro)?(n.eatWhile(Ro),e.tokenize=pt,"variable"):(e.tokenize=pt,"error")}function Lh(n,e){for(var t;(t=n.next())!=null;)if(t==="}"){e.tokenize=pt;break}return"variable"}function Rs(n,e){var t=e.startQuote;if(n.sol()&&n.match(new RegExp(t+"@")))e.tokenize=pt;else if(t==='"')for(;!n.eol();){var i=n.peek();if(i==="$")return e.tokenize=S1,"string";n.next(),i==="`"&&n.next()}else n.skipToEnd();return"string"}const O1={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:pt}},token:function(n,e){return e.tokenize(n,e)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}};var Bo={};function xl(n,e){for(var t=0;t1&&n.eat("$");var t=n.next();return/['"({]/.test(t)?(e.tokens[0]=Qs(t,t=="("?"quote":t=="{"?"def":"string"),ki(n,e)):(/\d/.test(t)||n.eatWhile(/\w/),e.tokens.shift(),"def")};function T1(n){return function(e,t){return e.sol()&&e.string==n&&t.tokens.shift(),e.skipToEnd(),"string.special"}}function ki(n,e){return(e.tokens[0]||C1)(n,e)}const M1={name:"shell",startState:function(){return{tokens:[]}},token:function(n,e){return ki(n,e)},languageData:{autocomplete:rd.concat(od,ld),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}};function kl(n,e,t,i,s,r){this.indented=n,this.column=e,this.type=t,this.info=i,this.align=s,this.prev=r}function jn(n,e,t,i){var s=n.indented;return n.context&&n.context.type=="statement"&&t!="statement"&&(s=n.context.indented),n.context=new kl(s,e,t,i,null,n.context)}function Ri(n){var e=n.context.type;return(e==")"||e=="]"||e=="}")&&(n.indented=n.context.indented),n.context=n.context.prev}function Ih(n,e,t){if(e.prevToken=="variable"||e.prevToken=="type"||/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(n.string.slice(0,t))||e.typeAtEndOfLine&&n.column()==n.indentation())return!0}function Pr(n){for(;;){if(!n||n.type=="top")return!0;if(n.type=="}"&&n.prev.info!="namespace")return!1;n=n.prev}}function De(n){var e=n.statementIndentUnit,t=n.dontAlignCalls,i=n.keywords||{},s=n.types||{},r=n.builtin||{},o=n.blockKeywords||{},l=n.defKeywords||{},a=n.atoms||{},h=n.hooks||{},c=n.multiLineStrings,f=n.indentStatements!==!1,u=n.indentSwitch!==!1,d=n.namespaceSeparator,p=n.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,m=n.numberStart||/[\d\.]/,g=n.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,y=n.isOperatorChar||/[+\-*&%=<>!?|\/]/,k=n.isIdentifierChar||/[\w\$_\xa1-\uffff]/,O=n.isReservedIdentifier||!1,w,v;function A(P,T){var C=P.next();if(h[C]){var b=h[C](P,T);if(b!==!1)return b}if(C=='"'||C=="'")return T.tokenize=M(C),T.tokenize(P,T);if(m.test(C)){if(P.backUp(1),P.match(g))return"number";P.next()}if(p.test(C))return w=C,null;if(C=="/"){if(P.eat("*"))return T.tokenize=$,$(P,T);if(P.eat("/"))return P.skipToEnd(),"comment"}if(y.test(C)){for(;!P.match(/^\/[\/*]/,!1)&&P.eat(y););return"operator"}if(P.eatWhile(k),d)for(;P.match(d);)P.eatWhile(k);var R=P.current();return at(i,R)?(at(o,R)&&(w="newstatement"),at(l,R)&&(v=!0),"keyword"):at(s,R)?"type":at(r,R)||O&&O(R)?(at(o,R)&&(w="newstatement"),"builtin"):at(a,R)?"atom":"variable"}function M(P){return function(T,C){for(var b=!1,R,V=!1;(R=T.next())!=null;){if(R==P&&!b){V=!0;break}b=!b&&R=="\\"}return(V||!(b||c))&&(C.tokenize=null),"string"}}function $(P,T){for(var C=!1,b;b=P.next();){if(b=="/"&&C){T.tokenize=null;break}C=b=="*"}return"comment"}function W(P,T){n.typeFirstDefinitions&&P.eol()&&Pr(T.context)&&(T.typeAtEndOfLine=Ih(P,T,P.pos))}return{name:n.name,startState:function(P){return{tokenize:null,context:new kl(-P,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(P,T){var C=T.context;if(P.sol()&&(C.align==null&&(C.align=!1),T.indented=P.indentation(),T.startOfLine=!0),P.eatSpace())return W(P,T),null;w=v=null;var b=(T.tokenize||A)(P,T);if(b=="comment"||b=="meta")return b;if(C.align==null&&(C.align=!0),w==";"||w==":"||w==","&&P.match(/^\s*(?:\/\/.*)?$/,!1))for(;T.context.type=="statement";)Ri(T);else if(w=="{")jn(T,P.column(),"}");else if(w=="[")jn(T,P.column(),"]");else if(w=="(")jn(T,P.column(),")");else if(w=="}"){for(;C.type=="statement";)C=Ri(T);for(C.type=="}"&&(C=Ri(T));C.type=="statement";)C=Ri(T)}else w==C.type?Ri(T):f&&((C.type=="}"||C.type=="top")&&w!=";"||C.type=="statement"&&w=="newstatement")&&jn(T,P.column(),"statement",P.current());if(b=="variable"&&(T.prevToken=="def"||n.typeFirstDefinitions&&Ih(P,T,P.start)&&Pr(T.context)&&P.match(/^\s*\(/,!1))&&(b="def"),h.token){var R=h.token(P,T,b);R!==void 0&&(b=R)}return b=="def"&&n.styleDefs===!1&&(b="variable"),T.startOfLine=!1,T.prevToken=v?"def":b||w,W(P,T),b},indent:function(P,T,C){if(P.tokenize!=A&&P.tokenize!=null||P.typeAtEndOfLine&&Pr(P.context))return null;var b=P.context,R=T&&T.charAt(0),V=R==b.type;if(b.type=="statement"&&R=="}"&&(b=b.prev),n.dontIndentStatements)for(;b.type=="statement"&&n.dontIndentStatements.test(b.info);)b=b.prev;if(h.indent){var Y=h.indent(P,b,T,C.unit);if(typeof Y=="number")return Y}var ge=b.prev&&b.prev.info=="switch";if(n.allmanIndentation&&/[{(]/.test(R)){for(;b.type!="top"&&b.type!="}";)b=b.prev;return b.indented}return b.type=="statement"?b.indented+(R=="{"?0:e||C.unit):b.align&&(!t||b.type!=")")?b.column+(V?0:1):b.type==")"&&!V?b.indented+(e||C.unit):b.indented+(V?0:C.unit)+(!V&&ge&&!/^(?:case|default)\b/.test(T)?C.unit:0)},languageData:{indentOnInput:u?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(i).concat(Object.keys(s)).concat(Object.keys(r)).concat(Object.keys(a)),...n.languageData}}}function I(n){for(var e={},t=n.split(" "),i=0;i!?|\/#:@]/,hooks:{"@":function(n){return n.eatWhile(/[\w\$_]/),"meta"},'"':function(n,e){return n.match('""')?(e.tokenize=pd,e.tokenize(n,e)):!1},"'":function(n){return n.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(n.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(n,e){var t=e.context;return t.type=="}"&&t.align&&n.eat(">")?(e.context=new kl(t.indented,t.column,t.type,t.info,null,t.prev),"operator"):!1},"/":function(n,e){return n.eat("*")?(e.tokenize=an(1),e.tokenize(n,e)):!1}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function E1(n){return function(e,t){for(var i=!1,s,r=!1;!e.eol();){if(!n&&!i&&e.match('"')){r=!0;break}if(n&&e.match('"""')){r=!0;break}s=e.next(),!i&&s=="$"&&e.match("{")&&e.skipTo("}"),i=!i&&s=="\\"&&!n}return(r||!n)&&(t.tokenize=null),"string"}}De({name:"kotlin",keywords:I("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:I("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(ul?|l|f)?/i,blockKeywords:I("catch class do else finally for if where try while enum"),defKeywords:I("class val var object interface fun"),atoms:I("true false null this"),hooks:{"@":function(n){return n.eatWhile(/[\w\$_]/),"meta"},"*":function(n,e){return e.prevToken=="."?"variable":"operator"},'"':function(n,e){return e.tokenize=E1(n.match('""')),e.tokenize(n,e)},"/":function(n,e){return n.eat("*")?(e.tokenize=an(1),e.tokenize(n,e)):!1},indent:function(n,e,t,i){var s=t&&t.charAt(0);if((n.prevToken=="}"||n.prevToken==")")&&t=="")return n.indented;if(n.prevToken=="operator"&&t!="}"&&n.context.type!="}"||n.prevToken=="variable"&&s=="."||(n.prevToken=="}"||n.prevToken==")")&&s==".")return i*2+e.indented;if(e.align&&e.type=="}")return e.indented+(n.context.type==(t||"").charAt(0)?0:i)}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});De({name:"shader",keywords:I("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:I("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:I("for while do if else struct"),builtin:I("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:I("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":Et}});De({name:"nesc",keywords:I(yn+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:bn,blockKeywords:I(xn),atoms:I("null true false"),hooks:{"#":Et}});De({name:"objectivec",keywords:I(yn+" "+cd),types:ud,builtin:I(fd),blockKeywords:I(xn+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:I(Xs+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:I("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Js,hooks:{"#":Et,"*":Ys}});De({name:"objectivecpp",keywords:I(yn+" "+cd+" "+hd),types:ud,builtin:I(fd),blockKeywords:I(xn+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:I(Xs+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:I("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:Js,hooks:{"#":Et,"*":Ys,u:Ot,U:Ot,L:Ot,R:Ot,0:ie,1:ie,2:ie,3:ie,4:ie,5:ie,6:ie,7:ie,8:ie,9:ie,token:function(n,e,t){if(t=="variable"&&n.peek()=="("&&(e.prevToken==";"||e.prevToken==null||e.prevToken=="}")&&dd(n.current()))return"def"}},namespaceSeparator:"::"});De({name:"squirrel",keywords:I("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:bn,blockKeywords:I("case catch class else for foreach if switch try while"),defKeywords:I("function local class"),typeFirstDefinitions:!0,atoms:I("true false null"),hooks:{"#":Et}});var ls=null;function md(n){return function(e,t){for(var i=!1,s,r=!1;!e.eol();){if(!i&&e.match('"')&&(n=="single"||e.match('""'))){r=!0;break}if(!i&&e.match("``")){ls=md(n),r=!0;break}s=e.next(),i=n=="single"&&!i&&s=="\\"}return r&&(t.tokenize=null),"string"}}De({name:"ceylon",keywords:I("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(n){var e=n.charAt(0);return e===e.toUpperCase()&&e!==e.toLowerCase()},blockKeywords:I("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:I("class dynamic function interface module object package value"),builtin:I("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:I("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(n){return n.eatWhile(/[\w\$_]/),"meta"},'"':function(n,e){return e.tokenize=md(n.match('""')?"triple":"single"),e.tokenize(n,e)},"`":function(n,e){return!ls||!n.match("`")?!1:(e.tokenize=ls,ls=null,e.tokenize(n,e))},"'":function(n){return n.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(n.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(n,e,t){if((t=="variable"||t=="type")&&e.prevToken==".")return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function B1(n){(n.interpolationStack||(n.interpolationStack=[])).push(n.tokenize)}function gd(n){return(n.interpolationStack||(n.interpolationStack=[])).pop()}function L1(n){return n.interpolationStack?n.interpolationStack.length:0}function Dr(n,e,t,i){var s=!1;if(e.eat(n))if(e.eat(n))s=!0;else return"string";function r(o,l){for(var a=!1;!o.eol();){if(!i&&!a&&o.peek()=="$")return B1(l),l.tokenize=I1,"string";var h=o.next();if(h==n&&!a&&(!s||o.match(n+n))){l.tokenize=null;break}a=!i&&!a&&h=="\\"}return"string"}return t.tokenize=r,r(e,t)}function I1(n,e){return n.eat("$"),n.eat("{")?e.tokenize=null:e.tokenize=N1,null}function N1(n,e){return n.eatWhile(/[\w_]/),e.tokenize=gd(e),"variable"}De({name:"dart",keywords:I("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:I("try catch finally do else for if switch while"),builtin:I("void bool num int double dynamic var String Null Never"),atoms:I("true false null"),number:/^(?:0x[a-f\d_]+|(?:[\d_]+\.?[\d_]*|\.[\d_]+)(?:e[-+]?[\d_]+)?)/i,hooks:{"@":function(n){return n.eatWhile(/[\w\$_\.]/),"meta"},"'":function(n,e){return Dr("'",n,e,!1)},'"':function(n,e){return Dr('"',n,e,!1)},r:function(n,e){var t=n.peek();return t=="'"||t=='"'?Dr(n.next(),n,e,!0):!1},"}":function(n,e){return L1(e)>0?(e.tokenize=gd(e),null):!1},"/":function(n,e){return n.eat("*")?(e.tokenize=an(1),e.tokenize(n,e)):!1},token:function(n,e,t){if(t=="variable"){var i=RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g");if(i.test(n.current()))return"type"}}}});const $1=Lo({__name:"CopyToClipboard",props:{value:{},isIconOnly:{type:Boolean,default:!1}},setup(n){const e=n,t=wd("tippyRef"),i=Ei();async function s(){await navigator.clipboard.writeText(e.value),t.value?.show(),i.value=setTimeout(()=>t.value?.hide(),3e3)}return Rr(i,(r,o)=>clearTimeout(o)),(r,o)=>(ni(),Un(Kn(Sd),{content:"Copied",ref_key:"tippyRef",ref:t,trigger:"manual"},{default:wl(()=>[e.isIconOnly?(ni(),Un(Sl,{key:1,variant:"secondary",size:"sm",icon:Kn(Ol),tooltip:"Copy to clipboard",onClick:s},null,8,["icon"])):(ni(),Un(Sl,{key:0,variant:"secondary",size:"sm",icon:Kn(Ol),onClick:s},{default:wl(()=>[...o[0]||(o[0]=[Od("Copy to clipboard",-1)])]),_:1},8,["icon"]))]),_:1},512))}}),F1=["aria-label"],V1={key:0,class:"toolbar"},W1=Lo({__name:"CodeEditor",props:Cd({language:{},readOnly:{type:Boolean,default:!0},showGutter:{type:Boolean,default:!0},showCopyToClipboard:{type:Boolean,default:!0},ariaLabel:{},extensions:{default:()=>[]}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=Ad(n,"modelValue"),t=n,i=Yt(()=>{const s=[...t.extensions||[]];switch(t.language){case"json":s.push(Fx());break;case"xml":s.push(l1());break;case"shell":s.push(qi.define(M1));break;case"powershell":s.push(qi.define(O1));break;case"csharp":s.push(qi.define(R1));break}return s});return(s,r)=>(ni(),Cl("div",{class:"wrapper","aria-label":n.ariaLabel},[t.showCopyToClipboard||s.$slots.toolbarLeft||s.$slots.toolbarRight?(ni(),Cl("div",V1,[Tl("div",null,[Ml(s.$slots,"toolbarLeft",{},void 0,!0)]),Tl("div",null,[Ml(s.$slots,"toolbarRight",{},void 0,!0),t.showCopyToClipboard?(ni(),Un($1,{key:0,class:"clipboard",value:e.value},null,8,["value"])):Al("",!0)])])):Al("",!0),Td(Kn(Ox),{modelValue:e.value,"onUpdate:modelValue":r[0]||(r[0]=o=>e.value=o),extensions:i.value,basic:t.showGutter,minimal:!t.showGutter,readonly:t.readOnly,gutter:!t.readOnly,wrap:!0},null,8,["modelValue","extensions","basic","minimal","readonly","gutter"])],8,F1))}}),j1=Md(W1,[["__scopeId","data-v-f7dae91f"]]);export{j1 as C,E,$1 as _}; +//# sourceMappingURL=CodeEditor-tk58yQKj.js.map diff --git a/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js.map b/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js.map new file mode 100644 index 0000000000..ff5c0fd2f1 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/CodeEditor-tk58yQKj.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CodeEditor-tk58yQKj.js","sources":["../../../../frontend/node_modules/@marijn/find-cluster-break/src/index.js","../../../../frontend/node_modules/@codemirror/state/dist/index.js","../../../../frontend/node_modules/style-mod/src/style-mod.js","../../../../frontend/node_modules/w3c-keyname/index.js","../../../../frontend/node_modules/crelt/index.js","../../../../frontend/node_modules/@codemirror/view/dist/index.js","../../../../frontend/node_modules/@lezer/common/dist/index.js","../../../../frontend/node_modules/@lezer/highlight/dist/index.js","../../../../frontend/node_modules/@codemirror/language/dist/index.js","../../../../frontend/node_modules/@codemirror/commands/dist/index.js","../../../../frontend/node_modules/@codemirror/lint/dist/index.js","../../../../frontend/node_modules/@codemirror/search/dist/index.js","../../../../frontend/node_modules/@codemirror/autocomplete/dist/index.js","../../../../frontend/node_modules/codemirror/dist/index.js","../../../../frontend/node_modules/vue-codemirror6/dist/index.es.js","../../../../frontend/node_modules/@lezer/lr/dist/index.js","../../../../frontend/node_modules/@lezer/json/dist/index.js","../../../../frontend/node_modules/@codemirror/lang-json/dist/index.js","../../../../frontend/node_modules/@lezer/xml/dist/index.js","../../../../frontend/node_modules/@codemirror/lang-xml/dist/index.js","../../../../frontend/node_modules/@codemirror/legacy-modes/mode/powershell.js","../../../../frontend/node_modules/@codemirror/legacy-modes/mode/shell.js","../../../../frontend/node_modules/@codemirror/legacy-modes/mode/clike.js","../../../../frontend/src/components/CopyToClipboard.vue","../../../../frontend/src/components/CodeEditor.vue"],"sourcesContent":["// These are filled with ranges (rangeFrom[i] up to but not including\n// rangeTo[i]) of code points that count as extending characters.\nlet rangeFrom = [], rangeTo = []\n\n;(() => {\n // Compressed representation of the Grapheme_Cluster_Break=Extend\n // information from\n // http://www.unicode.org/Public/16.0.0/ucd/auxiliary/GraphemeBreakProperty.txt.\n // Each pair of elements represents a range, as an offet from the\n // previous range and a length. Numbers are in base-36, with the empty\n // string being a shorthand for 1.\n let numbers = \"lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o\".split(\",\").map(s => s ? parseInt(s, 36) : 1)\n for (let i = 0, n = 0; i < numbers.length; i++)\n (i % 2 ? rangeTo : rangeFrom).push(n = n + numbers[i])\n})()\n\nexport function isExtendingChar(code) {\n if (code < 768) return false\n for (let from = 0, to = rangeFrom.length;;) {\n let mid = (from + to) >> 1\n if (code < rangeFrom[mid]) to = mid\n else if (code >= rangeTo[mid]) from = mid + 1\n else return true\n if (from == to) return false\n }\n}\n\nfunction isRegionalIndicator(code) {\n return code >= 0x1F1E6 && code <= 0x1F1FF\n}\n\nfunction check(code) {\n for (let i = 0; i < rangeFrom.length; i++) {\n if (rangeTo[i] > code) return rangeFrom[i] <= code\n }\n return false\n}\n\nconst ZWJ = 0x200d\n\nexport function findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return (forward ? nextClusterBreak : prevClusterBreak)(str, pos, includeExtending)\n}\n\nfunction nextClusterBreak(str, pos, includeExtending) {\n if (pos == str.length) return pos\n // If pos is in the middle of a surrogate pair, move to its start\n if (pos && surrogateLow(str.charCodeAt(pos)) && surrogateHigh(str.charCodeAt(pos - 1))) pos--\n let prev = codePointAt(str, pos)\n pos += codePointSize(prev)\n while (pos < str.length) {\n let next = codePointAt(str, pos)\n if (prev == ZWJ || next == ZWJ || includeExtending && isExtendingChar(next)) {\n pos += codePointSize(next)\n prev = next\n } else if (isRegionalIndicator(next)) {\n let countBefore = 0, i = pos - 2\n while (i >= 0 && isRegionalIndicator(codePointAt(str, i))) { countBefore++; i -= 2 }\n if (countBefore % 2 == 0) break\n else pos += 2\n } else {\n break\n }\n }\n return pos\n}\n\nfunction prevClusterBreak(str, pos, includeExtending) {\n while (pos > 0) {\n let found = nextClusterBreak(str, pos - 2, includeExtending)\n if (found < pos) return found\n pos--\n }\n return 0\n}\n\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos)\n if (!surrogateHigh(code0) || pos + 1 == str.length) return code0\n let code1 = str.charCodeAt(pos + 1)\n if (!surrogateLow(code1)) return code0\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000\n}\n\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000 }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00 }\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2 }\n","import { findClusterBreak as findClusterBreak$1 } from '@marijn/find-cluster-break';\n\n/**\nThe data structure for documents. @nonabstract\n*/\nclass Text {\n /**\n Get the line description around the given position.\n */\n lineAt(pos) {\n if (pos < 0 || pos > this.length)\n throw new RangeError(`Invalid position ${pos} in document of length ${this.length}`);\n return this.lineInner(pos, false, 1, 0);\n }\n /**\n Get the description for the given (1-based) line number.\n */\n line(n) {\n if (n < 1 || n > this.lines)\n throw new RangeError(`Invalid line number ${n} in ${this.lines}-line document`);\n return this.lineInner(n, true, 1, 0);\n }\n /**\n Replace a range of the text with the given content.\n */\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(0, from, parts, 2 /* Open.To */);\n if (text.length)\n text.decompose(0, text.length, parts, 1 /* Open.From */ | 2 /* Open.To */);\n this.decompose(to, this.length, parts, 1 /* Open.From */);\n return TextNode.from(parts, this.length - (to - from) + text.length);\n }\n /**\n Append another document to this one.\n */\n append(other) {\n return this.replace(this.length, this.length, other);\n }\n /**\n Retrieve the text between the given points.\n */\n slice(from, to = this.length) {\n [from, to] = clip(this, from, to);\n let parts = [];\n this.decompose(from, to, parts, 0);\n return TextNode.from(parts, to - from);\n }\n /**\n Test whether this text is equal to another instance.\n */\n eq(other) {\n if (other == this)\n return true;\n if (other.length != this.length || other.lines != this.lines)\n return false;\n let start = this.scanIdentical(other, 1), end = this.length - this.scanIdentical(other, -1);\n let a = new RawTextCursor(this), b = new RawTextCursor(other);\n for (let skip = start, pos = start;;) {\n a.next(skip);\n b.next(skip);\n skip = 0;\n if (a.lineBreak != b.lineBreak || a.done != b.done || a.value != b.value)\n return false;\n pos += a.value.length;\n if (a.done || pos >= end)\n return true;\n }\n }\n /**\n Iterate over the text. When `dir` is `-1`, iteration happens\n from end to start. This will return lines and the breaks between\n them as separate strings.\n */\n iter(dir = 1) { return new RawTextCursor(this, dir); }\n /**\n Iterate over a range of the text. When `from` > `to`, the\n iterator will run in reverse.\n */\n iterRange(from, to = this.length) { return new PartialTextCursor(this, from, to); }\n /**\n Return a cursor that iterates over the given range of lines,\n _without_ returning the line breaks between, and yielding empty\n strings for empty lines.\n \n When `from` and `to` are given, they should be 1-based line numbers.\n */\n iterLines(from, to) {\n let inner;\n if (from == null) {\n inner = this.iter();\n }\n else {\n if (to == null)\n to = this.lines + 1;\n let start = this.line(from).from;\n inner = this.iterRange(start, Math.max(start, to == this.lines + 1 ? this.length : to <= 1 ? 0 : this.line(to - 1).to));\n }\n return new LineCursor(inner);\n }\n /**\n Return the document as a string, using newline characters to\n separate lines.\n */\n toString() { return this.sliceString(0); }\n /**\n Convert the document to an array of lines (which can be\n deserialized again via [`Text.of`](https://codemirror.net/6/docs/ref/#state.Text^of)).\n */\n toJSON() {\n let lines = [];\n this.flatten(lines);\n return lines;\n }\n /**\n @internal\n */\n constructor() { }\n /**\n Create a `Text` instance for the given array of lines.\n */\n static of(text) {\n if (text.length == 0)\n throw new RangeError(\"A document must have at least one line\");\n if (text.length == 1 && !text[0])\n return Text.empty;\n return text.length <= 32 /* Tree.Branch */ ? new TextLeaf(text) : TextNode.from(TextLeaf.split(text, []));\n }\n}\n// Leaves store an array of line strings. There are always line breaks\n// between these strings. Leaves are limited in size and have to be\n// contained in TextNode instances for bigger documents.\nclass TextLeaf extends Text {\n constructor(text, length = textLength(text)) {\n super();\n this.text = text;\n this.length = length;\n }\n get lines() { return this.text.length; }\n get children() { return null; }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let string = this.text[i], end = offset + string.length;\n if ((isLine ? line : end) >= target)\n return new Line(offset, end, line, string);\n offset = end + 1;\n line++;\n }\n }\n decompose(from, to, target, open) {\n let text = from <= 0 && to >= this.length ? this\n : new TextLeaf(sliceText(this.text, from, to), Math.min(to, this.length) - Math.max(0, from));\n if (open & 1 /* Open.From */) {\n let prev = target.pop();\n let joined = appendText(text.text, prev.text.slice(), 0, text.length);\n if (joined.length <= 32 /* Tree.Branch */) {\n target.push(new TextLeaf(joined, prev.length + text.length));\n }\n else {\n let mid = joined.length >> 1;\n target.push(new TextLeaf(joined.slice(0, mid)), new TextLeaf(joined.slice(mid)));\n }\n }\n else {\n target.push(text);\n }\n }\n replace(from, to, text) {\n if (!(text instanceof TextLeaf))\n return super.replace(from, to, text);\n [from, to] = clip(this, from, to);\n let lines = appendText(this.text, appendText(text.text, sliceText(this.text, 0, from)), to);\n let newLen = this.length + text.length - (to - from);\n if (lines.length <= 32 /* Tree.Branch */)\n return new TextLeaf(lines, newLen);\n return TextNode.from(TextLeaf.split(lines, []), newLen);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let pos = 0, i = 0; pos <= to && i < this.text.length; i++) {\n let line = this.text[i], end = pos + line.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += line.slice(Math.max(0, from - pos), to - pos);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let line of this.text)\n target.push(line);\n }\n scanIdentical() { return 0; }\n static split(text, target) {\n let part = [], len = -1;\n for (let line of text) {\n part.push(line);\n len += line.length + 1;\n if (part.length == 32 /* Tree.Branch */) {\n target.push(new TextLeaf(part, len));\n part = [];\n len = -1;\n }\n }\n if (len > -1)\n target.push(new TextLeaf(part, len));\n return target;\n }\n}\n// Nodes provide the tree structure of the `Text` type. They store a\n// number of other nodes or leaves, taking care to balance themselves\n// on changes. There are implied line breaks _between_ the children of\n// a node (but not before the first or after the last child).\nclass TextNode extends Text {\n constructor(children, length) {\n super();\n this.children = children;\n this.length = length;\n this.lines = 0;\n for (let child of children)\n this.lines += child.lines;\n }\n lineInner(target, isLine, line, offset) {\n for (let i = 0;; i++) {\n let child = this.children[i], end = offset + child.length, endLine = line + child.lines - 1;\n if ((isLine ? endLine : end) >= target)\n return child.lineInner(target, isLine, line, offset);\n offset = end + 1;\n line = endLine + 1;\n }\n }\n decompose(from, to, target, open) {\n for (let i = 0, pos = 0; pos <= to && i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n if (from <= end && to >= pos) {\n let childOpen = open & ((pos <= from ? 1 /* Open.From */ : 0) | (end >= to ? 2 /* Open.To */ : 0));\n if (pos >= from && end <= to && !childOpen)\n target.push(child);\n else\n child.decompose(from - pos, to - pos, target, childOpen);\n }\n pos = end + 1;\n }\n }\n replace(from, to, text) {\n [from, to] = clip(this, from, to);\n if (text.lines < this.lines)\n for (let i = 0, pos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = pos + child.length;\n // Fast path: if the change only affects one child and the\n // child's size remains in the acceptable range, only update\n // that child\n if (from >= pos && to <= end) {\n let updated = child.replace(from - pos, to - pos, text);\n let totalLines = this.lines - child.lines + updated.lines;\n if (updated.lines < (totalLines >> (5 /* Tree.BranchShift */ - 1)) &&\n updated.lines > (totalLines >> (5 /* Tree.BranchShift */ + 1))) {\n let copy = this.children.slice();\n copy[i] = updated;\n return new TextNode(copy, this.length - (to - from) + text.length);\n }\n return super.replace(pos, end, updated);\n }\n pos = end + 1;\n }\n return super.replace(from, to, text);\n }\n sliceString(from, to = this.length, lineSep = \"\\n\") {\n [from, to] = clip(this, from, to);\n let result = \"\";\n for (let i = 0, pos = 0; i < this.children.length && pos <= to; i++) {\n let child = this.children[i], end = pos + child.length;\n if (pos > from && i)\n result += lineSep;\n if (from < end && to > pos)\n result += child.sliceString(from - pos, to - pos, lineSep);\n pos = end + 1;\n }\n return result;\n }\n flatten(target) {\n for (let child of this.children)\n child.flatten(target);\n }\n scanIdentical(other, dir) {\n if (!(other instanceof TextNode))\n return 0;\n let length = 0;\n let [iA, iB, eA, eB] = dir > 0 ? [0, 0, this.children.length, other.children.length]\n : [this.children.length - 1, other.children.length - 1, -1, -1];\n for (;; iA += dir, iB += dir) {\n if (iA == eA || iB == eB)\n return length;\n let chA = this.children[iA], chB = other.children[iB];\n if (chA != chB)\n return length + chA.scanIdentical(chB, dir);\n length += chA.length + 1;\n }\n }\n static from(children, length = children.reduce((l, ch) => l + ch.length + 1, -1)) {\n let lines = 0;\n for (let ch of children)\n lines += ch.lines;\n if (lines < 32 /* Tree.Branch */) {\n let flat = [];\n for (let ch of children)\n ch.flatten(flat);\n return new TextLeaf(flat, length);\n }\n let chunk = Math.max(32 /* Tree.Branch */, lines >> 5 /* Tree.BranchShift */), maxChunk = chunk << 1, minChunk = chunk >> 1;\n let chunked = [], currentLines = 0, currentLen = -1, currentChunk = [];\n function add(child) {\n let last;\n if (child.lines > maxChunk && child instanceof TextNode) {\n for (let node of child.children)\n add(node);\n }\n else if (child.lines > minChunk && (currentLines > minChunk || !currentLines)) {\n flush();\n chunked.push(child);\n }\n else if (child instanceof TextLeaf && currentLines &&\n (last = currentChunk[currentChunk.length - 1]) instanceof TextLeaf &&\n child.lines + last.lines <= 32 /* Tree.Branch */) {\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk[currentChunk.length - 1] = new TextLeaf(last.text.concat(child.text), last.length + 1 + child.length);\n }\n else {\n if (currentLines + child.lines > chunk)\n flush();\n currentLines += child.lines;\n currentLen += child.length + 1;\n currentChunk.push(child);\n }\n }\n function flush() {\n if (currentLines == 0)\n return;\n chunked.push(currentChunk.length == 1 ? currentChunk[0] : TextNode.from(currentChunk, currentLen));\n currentLen = -1;\n currentLines = currentChunk.length = 0;\n }\n for (let child of children)\n add(child);\n flush();\n return chunked.length == 1 ? chunked[0] : new TextNode(chunked, length);\n }\n}\nText.empty = /*@__PURE__*/new TextLeaf([\"\"], 0);\nfunction textLength(text) {\n let length = -1;\n for (let line of text)\n length += line.length + 1;\n return length;\n}\nfunction appendText(text, target, from = 0, to = 1e9) {\n for (let pos = 0, i = 0, first = true; i < text.length && pos <= to; i++) {\n let line = text[i], end = pos + line.length;\n if (end >= from) {\n if (end > to)\n line = line.slice(0, to - pos);\n if (pos < from)\n line = line.slice(from - pos);\n if (first) {\n target[target.length - 1] += line;\n first = false;\n }\n else\n target.push(line);\n }\n pos = end + 1;\n }\n return target;\n}\nfunction sliceText(text, from, to) {\n return appendText(text, [\"\"], from, to);\n}\nclass RawTextCursor {\n constructor(text, dir = 1) {\n this.dir = dir;\n this.done = false;\n this.lineBreak = false;\n this.value = \"\";\n this.nodes = [text];\n this.offsets = [dir > 0 ? 1 : (text instanceof TextLeaf ? text.text.length : text.children.length) << 1];\n }\n nextInner(skip, dir) {\n this.done = this.lineBreak = false;\n for (;;) {\n let last = this.nodes.length - 1;\n let top = this.nodes[last], offsetValue = this.offsets[last], offset = offsetValue >> 1;\n let size = top instanceof TextLeaf ? top.text.length : top.children.length;\n if (offset == (dir > 0 ? size : 0)) {\n if (last == 0) {\n this.done = true;\n this.value = \"\";\n return this;\n }\n if (dir > 0)\n this.offsets[last - 1]++;\n this.nodes.pop();\n this.offsets.pop();\n }\n else if ((offsetValue & 1) == (dir > 0 ? 0 : 1)) {\n this.offsets[last] += dir;\n if (skip == 0) {\n this.lineBreak = true;\n this.value = \"\\n\";\n return this;\n }\n skip--;\n }\n else if (top instanceof TextLeaf) {\n // Move to the next string\n let next = top.text[offset + (dir < 0 ? -1 : 0)];\n this.offsets[last] += dir;\n if (next.length > Math.max(0, skip)) {\n this.value = skip == 0 ? next : dir > 0 ? next.slice(skip) : next.slice(0, next.length - skip);\n return this;\n }\n skip -= next.length;\n }\n else {\n let next = top.children[offset + (dir < 0 ? -1 : 0)];\n if (skip > next.length) {\n skip -= next.length;\n this.offsets[last] += dir;\n }\n else {\n if (dir < 0)\n this.offsets[last]--;\n this.nodes.push(next);\n this.offsets.push(dir > 0 ? 1 : (next instanceof TextLeaf ? next.text.length : next.children.length) << 1);\n }\n }\n }\n }\n next(skip = 0) {\n if (skip < 0) {\n this.nextInner(-skip, (-this.dir));\n skip = this.value.length;\n }\n return this.nextInner(skip, this.dir);\n }\n}\nclass PartialTextCursor {\n constructor(text, start, end) {\n this.value = \"\";\n this.done = false;\n this.cursor = new RawTextCursor(text, start > end ? -1 : 1);\n this.pos = start > end ? text.length : 0;\n this.from = Math.min(start, end);\n this.to = Math.max(start, end);\n }\n nextInner(skip, dir) {\n if (dir < 0 ? this.pos <= this.from : this.pos >= this.to) {\n this.value = \"\";\n this.done = true;\n return this;\n }\n skip += Math.max(0, dir < 0 ? this.pos - this.to : this.from - this.pos);\n let limit = dir < 0 ? this.pos - this.from : this.to - this.pos;\n if (skip > limit)\n skip = limit;\n limit -= skip;\n let { value } = this.cursor.next(skip);\n this.pos += (value.length + skip) * dir;\n this.value = value.length <= limit ? value : dir < 0 ? value.slice(value.length - limit) : value.slice(0, limit);\n this.done = !this.value;\n return this;\n }\n next(skip = 0) {\n if (skip < 0)\n skip = Math.max(skip, this.from - this.pos);\n else if (skip > 0)\n skip = Math.min(skip, this.to - this.pos);\n return this.nextInner(skip, this.cursor.dir);\n }\n get lineBreak() { return this.cursor.lineBreak && this.value != \"\"; }\n}\nclass LineCursor {\n constructor(inner) {\n this.inner = inner;\n this.afterBreak = true;\n this.value = \"\";\n this.done = false;\n }\n next(skip = 0) {\n let { done, lineBreak, value } = this.inner.next(skip);\n if (done && this.afterBreak) {\n this.value = \"\";\n this.afterBreak = false;\n }\n else if (done) {\n this.done = true;\n this.value = \"\";\n }\n else if (lineBreak) {\n if (this.afterBreak) {\n this.value = \"\";\n }\n else {\n this.afterBreak = true;\n this.next();\n }\n }\n else {\n this.value = value;\n this.afterBreak = false;\n }\n return this;\n }\n get lineBreak() { return false; }\n}\nif (typeof Symbol != \"undefined\") {\n Text.prototype[Symbol.iterator] = function () { return this.iter(); };\n RawTextCursor.prototype[Symbol.iterator] = PartialTextCursor.prototype[Symbol.iterator] =\n LineCursor.prototype[Symbol.iterator] = function () { return this; };\n}\n/**\nThis type describes a line in the document. It is created\non-demand when lines are [queried](https://codemirror.net/6/docs/ref/#state.Text.lineAt).\n*/\nclass Line {\n /**\n @internal\n */\n constructor(\n /**\n The position of the start of the line.\n */\n from, \n /**\n The position at the end of the line (_before_ the line break,\n or at the end of document for the last line).\n */\n to, \n /**\n This line's line number (1-based).\n */\n number, \n /**\n The line's content.\n */\n text) {\n this.from = from;\n this.to = to;\n this.number = number;\n this.text = text;\n }\n /**\n The length of the line (not including any line break after it).\n */\n get length() { return this.to - this.from; }\n}\nfunction clip(text, from, to) {\n from = Math.max(0, Math.min(text.length, from));\n return [from, Math.max(from, Math.min(text.length, to))];\n}\n\n/**\nReturns a next grapheme cluster break _after_ (not equal to)\n`pos`, if `forward` is true, or before otherwise. Returns `pos`\nitself if no further cluster break is available in the string.\nMoves across surrogate pairs, extending characters (when\n`includeExtending` is true), characters joined with zero-width\njoiners, and flag emoji.\n*/\nfunction findClusterBreak(str, pos, forward = true, includeExtending = true) {\n return findClusterBreak$1(str, pos, forward, includeExtending);\n}\nfunction surrogateLow(ch) { return ch >= 0xDC00 && ch < 0xE000; }\nfunction surrogateHigh(ch) { return ch >= 0xD800 && ch < 0xDC00; }\n/**\nFind the code point at the given position in a string (like the\n[`codePointAt`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt)\nstring method).\n*/\nfunction codePointAt(str, pos) {\n let code0 = str.charCodeAt(pos);\n if (!surrogateHigh(code0) || pos + 1 == str.length)\n return code0;\n let code1 = str.charCodeAt(pos + 1);\n if (!surrogateLow(code1))\n return code0;\n return ((code0 - 0xd800) << 10) + (code1 - 0xdc00) + 0x10000;\n}\n/**\nGiven a Unicode codepoint, return the JavaScript string that\nrespresents it (like\n[`String.fromCodePoint`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint)).\n*/\nfunction fromCodePoint(code) {\n if (code <= 0xffff)\n return String.fromCharCode(code);\n code -= 0x10000;\n return String.fromCharCode((code >> 10) + 0xd800, (code & 1023) + 0xdc00);\n}\n/**\nThe amount of positions a character takes up in a JavaScript string.\n*/\nfunction codePointSize(code) { return code < 0x10000 ? 1 : 2; }\n\nconst DefaultSplit = /\\r\\n?|\\n/;\n/**\nDistinguishes different ways in which positions can be mapped.\n*/\nvar MapMode = /*@__PURE__*/(function (MapMode) {\n /**\n Map a position to a valid new position, even when its context\n was deleted.\n */\n MapMode[MapMode[\"Simple\"] = 0] = \"Simple\";\n /**\n Return null if deletion happens across the position.\n */\n MapMode[MapMode[\"TrackDel\"] = 1] = \"TrackDel\";\n /**\n Return null if the character _before_ the position is deleted.\n */\n MapMode[MapMode[\"TrackBefore\"] = 2] = \"TrackBefore\";\n /**\n Return null if the character _after_ the position is deleted.\n */\n MapMode[MapMode[\"TrackAfter\"] = 3] = \"TrackAfter\";\nreturn MapMode})(MapMode || (MapMode = {}));\n/**\nA change description is a variant of [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet)\nthat doesn't store the inserted text. As such, it can't be\napplied, but is cheaper to store and manipulate.\n*/\nclass ChangeDesc {\n // Sections are encoded as pairs of integers. The first is the\n // length in the current document, and the second is -1 for\n // unaffected sections, and the length of the replacement content\n // otherwise. So an insertion would be (0, n>0), a deletion (n>0,\n // 0), and a replacement two positive numbers.\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n sections) {\n this.sections = sections;\n }\n /**\n The length of the document before the change.\n */\n get length() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2)\n result += this.sections[i];\n return result;\n }\n /**\n The length of the document after the change.\n */\n get newLength() {\n let result = 0;\n for (let i = 0; i < this.sections.length; i += 2) {\n let ins = this.sections[i + 1];\n result += ins < 0 ? this.sections[i] : ins;\n }\n return result;\n }\n /**\n False when there are actual changes in this set.\n */\n get empty() { return this.sections.length == 0 || this.sections.length == 2 && this.sections[1] < 0; }\n /**\n Iterate over the unchanged parts left by these changes. `posA`\n provides the position of the range in the old document, `posB`\n the new position in the changed document.\n */\n iterGaps(f) {\n for (let i = 0, posA = 0, posB = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0) {\n f(posA, posB, len);\n posB += len;\n }\n else {\n posB += ins;\n }\n posA += len;\n }\n }\n /**\n Iterate over the ranges changed by these changes. (See\n [`ChangeSet.iterChanges`](https://codemirror.net/6/docs/ref/#state.ChangeSet.iterChanges) for a\n variant that also provides you with the inserted text.)\n `fromA`/`toA` provides the extent of the change in the starting\n document, `fromB`/`toB` the extent of the replacement in the\n changed document.\n \n When `individual` is true, adjacent changes (which are kept\n separate for [position mapping](https://codemirror.net/6/docs/ref/#state.ChangeDesc.mapPos)) are\n reported separately.\n */\n iterChangedRanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a description of the inverted form of these changes.\n */\n get invertedDesc() {\n let sections = [];\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n if (ins < 0)\n sections.push(len, ins);\n else\n sections.push(ins, len);\n }\n return new ChangeDesc(sections);\n }\n /**\n Compute the combined effect of applying another set of changes\n after this one. The length of the document after this set should\n match the length before `other`.\n */\n composeDesc(other) { return this.empty ? other : other.empty ? this : composeSets(this, other); }\n /**\n Map this description, which should start with the same document\n as `other`, over another set of changes, so that it can be\n applied after it. When `before` is true, map as if the changes\n in `this` happened before the ones in `other`.\n */\n mapDesc(other, before = false) { return other.empty ? this : mapSet(this, other, before); }\n mapPos(pos, assoc = -1, mode = MapMode.Simple) {\n let posA = 0, posB = 0;\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++], endA = posA + len;\n if (ins < 0) {\n if (endA > pos)\n return posB + (pos - posA);\n posB += len;\n }\n else {\n if (mode != MapMode.Simple && endA >= pos &&\n (mode == MapMode.TrackDel && posA < pos && endA > pos ||\n mode == MapMode.TrackBefore && posA < pos ||\n mode == MapMode.TrackAfter && endA > pos))\n return null;\n if (endA > pos || endA == pos && assoc < 0 && !len)\n return pos == posA || assoc < 0 ? posB : posB + ins;\n posB += ins;\n }\n posA = endA;\n }\n if (pos > posA)\n throw new RangeError(`Position ${pos} is out of range for changeset of length ${posA}`);\n return posB;\n }\n /**\n Check whether these changes touch a given range. When one of the\n changes entirely covers the range, the string `\"cover\"` is\n returned.\n */\n touchesRange(from, to = from) {\n for (let i = 0, pos = 0; i < this.sections.length && pos <= to;) {\n let len = this.sections[i++], ins = this.sections[i++], end = pos + len;\n if (ins >= 0 && pos <= to && end >= from)\n return pos < from && end > to ? \"cover\" : true;\n pos = end;\n }\n return false;\n }\n /**\n @internal\n */\n toString() {\n let result = \"\";\n for (let i = 0; i < this.sections.length;) {\n let len = this.sections[i++], ins = this.sections[i++];\n result += (result ? \" \" : \"\") + len + (ins >= 0 ? \":\" + ins : \"\");\n }\n return result;\n }\n /**\n Serialize this change desc to a JSON-representable value.\n */\n toJSON() { return this.sections; }\n /**\n Create a change desc from its JSON representation (as produced\n by [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeDesc.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json) || json.length % 2 || json.some(a => typeof a != \"number\"))\n throw new RangeError(\"Invalid JSON representation of ChangeDesc\");\n return new ChangeDesc(json);\n }\n /**\n @internal\n */\n static create(sections) { return new ChangeDesc(sections); }\n}\n/**\nA change set represents a group of modifications to a document. It\nstores the document length, and can only be applied to documents\nwith exactly that length.\n*/\nclass ChangeSet extends ChangeDesc {\n constructor(sections, \n /**\n @internal\n */\n inserted) {\n super(sections);\n this.inserted = inserted;\n }\n /**\n Apply the changes to a document, returning the modified\n document.\n */\n apply(doc) {\n if (this.length != doc.length)\n throw new RangeError(\"Applying change set to a document with the wrong length\");\n iterChanges(this, (fromA, toA, fromB, _toB, text) => doc = doc.replace(fromB, fromB + (toA - fromA), text), false);\n return doc;\n }\n mapDesc(other, before = false) { return mapSet(this, other, before, true); }\n /**\n Given the document as it existed _before_ the changes, return a\n change set that represents the inverse of this set, which could\n be used to go from the document created by the changes back to\n the document as it existed before the changes.\n */\n invert(doc) {\n let sections = this.sections.slice(), inserted = [];\n for (let i = 0, pos = 0; i < sections.length; i += 2) {\n let len = sections[i], ins = sections[i + 1];\n if (ins >= 0) {\n sections[i] = ins;\n sections[i + 1] = len;\n let index = i >> 1;\n while (inserted.length < index)\n inserted.push(Text.empty);\n inserted.push(len ? doc.slice(pos, pos + len) : Text.empty);\n }\n pos += len;\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n Combine two subsequent change sets into a single set. `other`\n must start in the document produced by `this`. If `this` goes\n `docA` → `docB` and `other` represents `docB` → `docC`, the\n returned value will represent the change `docA` → `docC`.\n */\n compose(other) { return this.empty ? other : other.empty ? this : composeSets(this, other, true); }\n /**\n Given another change set starting in the same document, maps this\n change set over the other, producing a new change set that can be\n applied to the document produced by applying `other`. When\n `before` is `true`, order changes as if `this` comes before\n `other`, otherwise (the default) treat `other` as coming first.\n \n Given two changes `A` and `B`, `A.compose(B.map(A))` and\n `B.compose(A.map(B, true))` will produce the same document. This\n provides a basic form of [operational\n transformation](https://en.wikipedia.org/wiki/Operational_transformation),\n and can be used for collaborative editing.\n */\n map(other, before = false) { return other.empty ? this : mapSet(this, other, before, true); }\n /**\n Iterate over the changed ranges in the document, calling `f` for\n each, with the range in the original document (`fromA`-`toA`)\n and the range that replaces it in the new document\n (`fromB`-`toB`).\n \n When `individual` is true, adjacent changes are reported\n separately.\n */\n iterChanges(f, individual = false) {\n iterChanges(this, f, individual);\n }\n /**\n Get a [change description](https://codemirror.net/6/docs/ref/#state.ChangeDesc) for this change\n set.\n */\n get desc() { return ChangeDesc.create(this.sections); }\n /**\n @internal\n */\n filter(ranges) {\n let resultSections = [], resultInserted = [], filteredSections = [];\n let iter = new SectionIter(this);\n done: for (let i = 0, pos = 0;;) {\n let next = i == ranges.length ? 1e9 : ranges[i++];\n while (pos < next || pos == next && iter.len == 0) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, next - pos);\n addSection(filteredSections, len, -1);\n let ins = iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0;\n addSection(resultSections, len, ins);\n if (ins > 0)\n addInsert(resultInserted, resultSections, iter.text);\n iter.forward(len);\n pos += len;\n }\n let end = ranges[i++];\n while (pos < end) {\n if (iter.done)\n break done;\n let len = Math.min(iter.len, end - pos);\n addSection(resultSections, len, -1);\n addSection(filteredSections, len, iter.ins == -1 ? -1 : iter.off == 0 ? iter.ins : 0);\n iter.forward(len);\n pos += len;\n }\n }\n return { changes: new ChangeSet(resultSections, resultInserted),\n filtered: ChangeDesc.create(filteredSections) };\n }\n /**\n Serialize this change set to a JSON-representable value.\n */\n toJSON() {\n let parts = [];\n for (let i = 0; i < this.sections.length; i += 2) {\n let len = this.sections[i], ins = this.sections[i + 1];\n if (ins < 0)\n parts.push(len);\n else if (ins == 0)\n parts.push([len]);\n else\n parts.push([len].concat(this.inserted[i >> 1].toJSON()));\n }\n return parts;\n }\n /**\n Create a change set for the given changes, for a document of the\n given length, using `lineSep` as line separator.\n */\n static of(changes, length, lineSep) {\n let sections = [], inserted = [], pos = 0;\n let total = null;\n function flush(force = false) {\n if (!force && !sections.length)\n return;\n if (pos < length)\n addSection(sections, length - pos, -1);\n let set = new ChangeSet(sections, inserted);\n total = total ? total.compose(set.map(total)) : set;\n sections = [];\n inserted = [];\n pos = 0;\n }\n function process(spec) {\n if (Array.isArray(spec)) {\n for (let sub of spec)\n process(sub);\n }\n else if (spec instanceof ChangeSet) {\n if (spec.length != length)\n throw new RangeError(`Mismatched change set length (got ${spec.length}, expected ${length})`);\n flush();\n total = total ? total.compose(spec.map(total)) : spec;\n }\n else {\n let { from, to = from, insert } = spec;\n if (from > to || from < 0 || to > length)\n throw new RangeError(`Invalid change range ${from} to ${to} (in doc of length ${length})`);\n let insText = !insert ? Text.empty : typeof insert == \"string\" ? Text.of(insert.split(lineSep || DefaultSplit)) : insert;\n let insLen = insText.length;\n if (from == to && insLen == 0)\n return;\n if (from < pos)\n flush();\n if (from > pos)\n addSection(sections, from - pos, -1);\n addSection(sections, to - from, insLen);\n addInsert(inserted, sections, insText);\n pos = to;\n }\n }\n process(changes);\n flush(!total);\n return total;\n }\n /**\n Create an empty changeset of the given length.\n */\n static empty(length) {\n return new ChangeSet(length ? [length, -1] : [], []);\n }\n /**\n Create a changeset from its JSON representation (as produced by\n [`toJSON`](https://codemirror.net/6/docs/ref/#state.ChangeSet.toJSON).\n */\n static fromJSON(json) {\n if (!Array.isArray(json))\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n let sections = [], inserted = [];\n for (let i = 0; i < json.length; i++) {\n let part = json[i];\n if (typeof part == \"number\") {\n sections.push(part, -1);\n }\n else if (!Array.isArray(part) || typeof part[0] != \"number\" || part.some((e, i) => i && typeof e != \"string\")) {\n throw new RangeError(\"Invalid JSON representation of ChangeSet\");\n }\n else if (part.length == 1) {\n sections.push(part[0], 0);\n }\n else {\n while (inserted.length < i)\n inserted.push(Text.empty);\n inserted[i] = Text.of(part.slice(1));\n sections.push(part[0], inserted[i].length);\n }\n }\n return new ChangeSet(sections, inserted);\n }\n /**\n @internal\n */\n static createSet(sections, inserted) {\n return new ChangeSet(sections, inserted);\n }\n}\nfunction addSection(sections, len, ins, forceJoin = false) {\n if (len == 0 && ins <= 0)\n return;\n let last = sections.length - 2;\n if (last >= 0 && ins <= 0 && ins == sections[last + 1])\n sections[last] += len;\n else if (last >= 0 && len == 0 && sections[last] == 0)\n sections[last + 1] += ins;\n else if (forceJoin) {\n sections[last] += len;\n sections[last + 1] += ins;\n }\n else\n sections.push(len, ins);\n}\nfunction addInsert(values, sections, value) {\n if (value.length == 0)\n return;\n let index = (sections.length - 2) >> 1;\n if (index < values.length) {\n values[values.length - 1] = values[values.length - 1].append(value);\n }\n else {\n while (values.length < index)\n values.push(Text.empty);\n values.push(value);\n }\n}\nfunction iterChanges(desc, f, individual) {\n let inserted = desc.inserted;\n for (let posA = 0, posB = 0, i = 0; i < desc.sections.length;) {\n let len = desc.sections[i++], ins = desc.sections[i++];\n if (ins < 0) {\n posA += len;\n posB += len;\n }\n else {\n let endA = posA, endB = posB, text = Text.empty;\n for (;;) {\n endA += len;\n endB += ins;\n if (ins && inserted)\n text = text.append(inserted[(i - 2) >> 1]);\n if (individual || i == desc.sections.length || desc.sections[i + 1] < 0)\n break;\n len = desc.sections[i++];\n ins = desc.sections[i++];\n }\n f(posA, endA, posB, endB, text);\n posA = endA;\n posB = endB;\n }\n }\n}\nfunction mapSet(setA, setB, before, mkSet = false) {\n // Produce a copy of setA that applies to the document after setB\n // has been applied (assuming both start at the same document).\n let sections = [], insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n // Iterate over both sets in parallel. inserted tracks, for changes\n // in A that have to be processed piece-by-piece, whether their\n // content has been inserted already, and refers to the section\n // index.\n for (let inserted = -1;;) {\n if (a.done && b.len || b.done && a.len) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else if (a.ins == -1 && b.ins == -1) {\n // Move across ranges skipped by both sets.\n let len = Math.min(a.len, b.len);\n addSection(sections, len, -1);\n a.forward(len);\n b.forward(len);\n }\n else if (b.ins >= 0 && (a.ins < 0 || inserted == a.i || a.off == 0 && (b.len < a.len || b.len == a.len && !before))) {\n // If there's a change in B that comes before the next change in\n // A (ordered by start pos, then len, then before flag), skip\n // that (and process any changes in A it covers).\n let len = b.len;\n addSection(sections, b.ins, -1);\n while (len) {\n let piece = Math.min(a.len, len);\n if (a.ins >= 0 && inserted < a.i && a.len <= piece) {\n addSection(sections, 0, a.ins);\n if (insert)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n }\n a.forward(piece);\n len -= piece;\n }\n b.next();\n }\n else if (a.ins >= 0) {\n // Process the part of a change in A up to the start of the next\n // non-deletion change in B (if overlapping).\n let len = 0, left = a.len;\n while (left) {\n if (b.ins == -1) {\n let piece = Math.min(left, b.len);\n len += piece;\n left -= piece;\n b.forward(piece);\n }\n else if (b.ins == 0 && b.len < left) {\n left -= b.len;\n b.next();\n }\n else {\n break;\n }\n }\n addSection(sections, len, inserted < a.i ? a.ins : 0);\n if (insert && inserted < a.i)\n addInsert(insert, sections, a.text);\n inserted = a.i;\n a.forward(a.len - left);\n }\n else if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else {\n throw new Error(\"Mismatched change set lengths\");\n }\n }\n}\nfunction composeSets(setA, setB, mkSet = false) {\n let sections = [];\n let insert = mkSet ? [] : null;\n let a = new SectionIter(setA), b = new SectionIter(setB);\n for (let open = false;;) {\n if (a.done && b.done) {\n return insert ? ChangeSet.createSet(sections, insert) : ChangeDesc.create(sections);\n }\n else if (a.ins == 0) { // Deletion in A\n addSection(sections, a.len, 0, open);\n a.next();\n }\n else if (b.len == 0 && !b.done) { // Insertion in B\n addSection(sections, 0, b.ins, open);\n if (insert)\n addInsert(insert, sections, b.text);\n b.next();\n }\n else if (a.done || b.done) {\n throw new Error(\"Mismatched change set lengths\");\n }\n else {\n let len = Math.min(a.len2, b.len), sectionLen = sections.length;\n if (a.ins == -1) {\n let insB = b.ins == -1 ? -1 : b.off ? 0 : b.ins;\n addSection(sections, len, insB, open);\n if (insert && insB)\n addInsert(insert, sections, b.text);\n }\n else if (b.ins == -1) {\n addSection(sections, a.off ? 0 : a.len, len, open);\n if (insert)\n addInsert(insert, sections, a.textBit(len));\n }\n else {\n addSection(sections, a.off ? 0 : a.len, b.off ? 0 : b.ins, open);\n if (insert && !b.off)\n addInsert(insert, sections, b.text);\n }\n open = (a.ins > len || b.ins >= 0 && b.len > len) && (open || sections.length > sectionLen);\n a.forward2(len);\n b.forward(len);\n }\n }\n}\nclass SectionIter {\n constructor(set) {\n this.set = set;\n this.i = 0;\n this.next();\n }\n next() {\n let { sections } = this.set;\n if (this.i < sections.length) {\n this.len = sections[this.i++];\n this.ins = sections[this.i++];\n }\n else {\n this.len = 0;\n this.ins = -2;\n }\n this.off = 0;\n }\n get done() { return this.ins == -2; }\n get len2() { return this.ins < 0 ? this.len : this.ins; }\n get text() {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length ? Text.empty : inserted[index];\n }\n textBit(len) {\n let { inserted } = this.set, index = (this.i - 2) >> 1;\n return index >= inserted.length && !len ? Text.empty\n : inserted[index].slice(this.off, len == null ? undefined : this.off + len);\n }\n forward(len) {\n if (len == this.len)\n this.next();\n else {\n this.len -= len;\n this.off += len;\n }\n }\n forward2(len) {\n if (this.ins == -1)\n this.forward(len);\n else if (len == this.ins)\n this.next();\n else {\n this.ins -= len;\n this.off += len;\n }\n }\n}\n\n/**\nA single selection range. When\n[`allowMultipleSelections`](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\nis enabled, a [selection](https://codemirror.net/6/docs/ref/#state.EditorSelection) may hold\nmultiple ranges. By default, selections hold exactly one range.\n*/\nclass SelectionRange {\n constructor(\n /**\n The lower boundary of the range.\n */\n from, \n /**\n The upper boundary of the range.\n */\n to, flags) {\n this.from = from;\n this.to = to;\n this.flags = flags;\n }\n /**\n The anchor of the range—the side that doesn't move when you\n extend it.\n */\n get anchor() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.to : this.from; }\n /**\n The head of the range, which is moved when the range is\n [extended](https://codemirror.net/6/docs/ref/#state.SelectionRange.extend).\n */\n get head() { return this.flags & 32 /* RangeFlag.Inverted */ ? this.from : this.to; }\n /**\n True when `anchor` and `head` are at the same position.\n */\n get empty() { return this.from == this.to; }\n /**\n If this is a cursor that is explicitly associated with the\n character on one of its sides, this returns the side. -1 means\n the character before its position, 1 the character after, and 0\n means no association.\n */\n get assoc() { return this.flags & 8 /* RangeFlag.AssocBefore */ ? -1 : this.flags & 16 /* RangeFlag.AssocAfter */ ? 1 : 0; }\n /**\n The bidirectional text level associated with this cursor, if\n any.\n */\n get bidiLevel() {\n let level = this.flags & 7 /* RangeFlag.BidiLevelMask */;\n return level == 7 ? null : level;\n }\n /**\n The goal column (stored vertical offset) associated with a\n cursor. This is used to preserve the vertical position when\n [moving](https://codemirror.net/6/docs/ref/#view.EditorView.moveVertically) across\n lines of different length.\n */\n get goalColumn() {\n let value = this.flags >> 6 /* RangeFlag.GoalColumnOffset */;\n return value == 16777215 /* RangeFlag.NoGoalColumn */ ? undefined : value;\n }\n /**\n Map this range through a change, producing a valid range in the\n updated document.\n */\n map(change, assoc = -1) {\n let from, to;\n if (this.empty) {\n from = to = change.mapPos(this.from, assoc);\n }\n else {\n from = change.mapPos(this.from, 1);\n to = change.mapPos(this.to, -1);\n }\n return from == this.from && to == this.to ? this : new SelectionRange(from, to, this.flags);\n }\n /**\n Extend this range to cover at least `from` to `to`.\n */\n extend(from, to = from) {\n if (from <= this.anchor && to >= this.anchor)\n return EditorSelection.range(from, to);\n let head = Math.abs(from - this.anchor) > Math.abs(to - this.anchor) ? from : to;\n return EditorSelection.range(this.anchor, head);\n }\n /**\n Compare this range to another range.\n */\n eq(other, includeAssoc = false) {\n return this.anchor == other.anchor && this.head == other.head &&\n (!includeAssoc || !this.empty || this.assoc == other.assoc);\n }\n /**\n Return a JSON-serializable object representing the range.\n */\n toJSON() { return { anchor: this.anchor, head: this.head }; }\n /**\n Convert a JSON representation of a range to a `SelectionRange`\n instance.\n */\n static fromJSON(json) {\n if (!json || typeof json.anchor != \"number\" || typeof json.head != \"number\")\n throw new RangeError(\"Invalid JSON representation for SelectionRange\");\n return EditorSelection.range(json.anchor, json.head);\n }\n /**\n @internal\n */\n static create(from, to, flags) {\n return new SelectionRange(from, to, flags);\n }\n}\n/**\nAn editor selection holds one or more selection ranges.\n*/\nclass EditorSelection {\n constructor(\n /**\n The ranges in the selection, sorted by position. Ranges cannot\n overlap (but they may touch, if they aren't empty).\n */\n ranges, \n /**\n The index of the _main_ range in the selection (which is\n usually the range that was added last).\n */\n mainIndex) {\n this.ranges = ranges;\n this.mainIndex = mainIndex;\n }\n /**\n Map a selection through a change. Used to adjust the selection\n position for changes.\n */\n map(change, assoc = -1) {\n if (change.empty)\n return this;\n return EditorSelection.create(this.ranges.map(r => r.map(change, assoc)), this.mainIndex);\n }\n /**\n Compare this selection to another selection. By default, ranges\n are compared only by position. When `includeAssoc` is true,\n cursor ranges must also have the same\n [`assoc`](https://codemirror.net/6/docs/ref/#state.SelectionRange.assoc) value.\n */\n eq(other, includeAssoc = false) {\n if (this.ranges.length != other.ranges.length ||\n this.mainIndex != other.mainIndex)\n return false;\n for (let i = 0; i < this.ranges.length; i++)\n if (!this.ranges[i].eq(other.ranges[i], includeAssoc))\n return false;\n return true;\n }\n /**\n Get the primary selection range. Usually, you should make sure\n your code applies to _all_ ranges, by using methods like\n [`changeByRange`](https://codemirror.net/6/docs/ref/#state.EditorState.changeByRange).\n */\n get main() { return this.ranges[this.mainIndex]; }\n /**\n Make sure the selection only has one range. Returns a selection\n holding only the main range from this selection.\n */\n asSingle() {\n return this.ranges.length == 1 ? this : new EditorSelection([this.main], 0);\n }\n /**\n Extend this selection with an extra range.\n */\n addRange(range, main = true) {\n return EditorSelection.create([range].concat(this.ranges), main ? 0 : this.mainIndex + 1);\n }\n /**\n Replace a given range with another range, and then normalize the\n selection to merge and sort ranges if necessary.\n */\n replaceRange(range, which = this.mainIndex) {\n let ranges = this.ranges.slice();\n ranges[which] = range;\n return EditorSelection.create(ranges, this.mainIndex);\n }\n /**\n Convert this selection to an object that can be serialized to\n JSON.\n */\n toJSON() {\n return { ranges: this.ranges.map(r => r.toJSON()), main: this.mainIndex };\n }\n /**\n Create a selection from a JSON representation.\n */\n static fromJSON(json) {\n if (!json || !Array.isArray(json.ranges) || typeof json.main != \"number\" || json.main >= json.ranges.length)\n throw new RangeError(\"Invalid JSON representation for EditorSelection\");\n return new EditorSelection(json.ranges.map((r) => SelectionRange.fromJSON(r)), json.main);\n }\n /**\n Create a selection holding a single range.\n */\n static single(anchor, head = anchor) {\n return new EditorSelection([EditorSelection.range(anchor, head)], 0);\n }\n /**\n Sort and merge the given set of ranges, creating a valid\n selection.\n */\n static create(ranges, mainIndex = 0) {\n if (ranges.length == 0)\n throw new RangeError(\"A selection needs at least one range\");\n for (let pos = 0, i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n if (range.empty ? range.from <= pos : range.from < pos)\n return EditorSelection.normalized(ranges.slice(), mainIndex);\n pos = range.to;\n }\n return new EditorSelection(ranges, mainIndex);\n }\n /**\n Create a cursor selection range at the given position. You can\n safely ignore the optional arguments in most situations.\n */\n static cursor(pos, assoc = 0, bidiLevel, goalColumn) {\n return SelectionRange.create(pos, pos, (assoc == 0 ? 0 : assoc < 0 ? 8 /* RangeFlag.AssocBefore */ : 16 /* RangeFlag.AssocAfter */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel)) |\n ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */));\n }\n /**\n Create a selection range.\n */\n static range(anchor, head, goalColumn, bidiLevel) {\n let flags = ((goalColumn !== null && goalColumn !== void 0 ? goalColumn : 16777215 /* RangeFlag.NoGoalColumn */) << 6 /* RangeFlag.GoalColumnOffset */) |\n (bidiLevel == null ? 7 : Math.min(6, bidiLevel));\n return head < anchor ? SelectionRange.create(head, anchor, 32 /* RangeFlag.Inverted */ | 16 /* RangeFlag.AssocAfter */ | flags)\n : SelectionRange.create(anchor, head, (head > anchor ? 8 /* RangeFlag.AssocBefore */ : 0) | flags);\n }\n /**\n @internal\n */\n static normalized(ranges, mainIndex = 0) {\n let main = ranges[mainIndex];\n ranges.sort((a, b) => a.from - b.from);\n mainIndex = ranges.indexOf(main);\n for (let i = 1; i < ranges.length; i++) {\n let range = ranges[i], prev = ranges[i - 1];\n if (range.empty ? range.from <= prev.to : range.from < prev.to) {\n let from = prev.from, to = Math.max(range.to, prev.to);\n if (i <= mainIndex)\n mainIndex--;\n ranges.splice(--i, 2, range.anchor > range.head ? EditorSelection.range(to, from) : EditorSelection.range(from, to));\n }\n }\n return new EditorSelection(ranges, mainIndex);\n }\n}\nfunction checkSelection(selection, docLength) {\n for (let range of selection.ranges)\n if (range.to > docLength)\n throw new RangeError(\"Selection points outside of document\");\n}\n\nlet nextID = 0;\n/**\nA facet is a labeled value that is associated with an editor\nstate. It takes inputs from any number of extensions, and combines\nthose into a single output value.\n\nExamples of uses of facets are the [tab\nsize](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize), [editor\nattributes](https://codemirror.net/6/docs/ref/#view.EditorView^editorAttributes), and [update\nlisteners](https://codemirror.net/6/docs/ref/#view.EditorView^updateListener).\n\nNote that `Facet` instances can be used anywhere where\n[`FacetReader`](https://codemirror.net/6/docs/ref/#state.FacetReader) is expected.\n*/\nclass Facet {\n constructor(\n /**\n @internal\n */\n combine, \n /**\n @internal\n */\n compareInput, \n /**\n @internal\n */\n compare, isStatic, enables) {\n this.combine = combine;\n this.compareInput = compareInput;\n this.compare = compare;\n this.isStatic = isStatic;\n /**\n @internal\n */\n this.id = nextID++;\n this.default = combine([]);\n this.extensions = typeof enables == \"function\" ? enables(this) : enables;\n }\n /**\n Returns a facet reader for this facet, which can be used to\n [read](https://codemirror.net/6/docs/ref/#state.EditorState.facet) it but not to define values for it.\n */\n get reader() { return this; }\n /**\n Define a new facet.\n */\n static define(config = {}) {\n return new Facet(config.combine || ((a) => a), config.compareInput || ((a, b) => a === b), config.compare || (!config.combine ? sameArray : (a, b) => a === b), !!config.static, config.enables);\n }\n /**\n Returns an extension that adds the given value to this facet.\n */\n of(value) {\n return new FacetProvider([], this, 0 /* Provider.Static */, value);\n }\n /**\n Create an extension that computes a value for the facet from a\n state. You must take care to declare the parts of the state that\n this value depends on, since your function is only called again\n for a new state when one of those parts changed.\n \n In cases where your value depends only on a single field, you'll\n want to use the [`from`](https://codemirror.net/6/docs/ref/#state.Facet.from) method instead.\n */\n compute(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 1 /* Provider.Single */, get);\n }\n /**\n Create an extension that computes zero or more values for this\n facet from a state.\n */\n computeN(deps, get) {\n if (this.isStatic)\n throw new Error(\"Can't compute a static facet\");\n return new FacetProvider(deps, this, 2 /* Provider.Multi */, get);\n }\n from(field, get) {\n if (!get)\n get = x => x;\n return this.compute([field], state => get(state.field(field)));\n }\n}\nfunction sameArray(a, b) {\n return a == b || a.length == b.length && a.every((e, i) => e === b[i]);\n}\nclass FacetProvider {\n constructor(dependencies, facet, type, value) {\n this.dependencies = dependencies;\n this.facet = facet;\n this.type = type;\n this.value = value;\n this.id = nextID++;\n }\n dynamicSlot(addresses) {\n var _a;\n let getter = this.value;\n let compare = this.facet.compareInput;\n let id = this.id, idx = addresses[id] >> 1, multi = this.type == 2 /* Provider.Multi */;\n let depDoc = false, depSel = false, depAddrs = [];\n for (let dep of this.dependencies) {\n if (dep == \"doc\")\n depDoc = true;\n else if (dep == \"selection\")\n depSel = true;\n else if ((((_a = addresses[dep.id]) !== null && _a !== void 0 ? _a : 1) & 1) == 0)\n depAddrs.push(addresses[dep.id]);\n }\n return {\n create(state) {\n state.values[idx] = getter(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if ((depDoc && tr.docChanged) || (depSel && (tr.docChanged || tr.selection)) || ensureAll(state, depAddrs)) {\n let newVal = getter(state);\n if (multi ? !compareArray(newVal, state.values[idx], compare) : !compare(newVal, state.values[idx])) {\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n }\n return 0;\n },\n reconfigure: (state, oldState) => {\n let newVal, oldAddr = oldState.config.address[id];\n if (oldAddr != null) {\n let oldVal = getAddr(oldState, oldAddr);\n if (this.dependencies.every(dep => {\n return dep instanceof Facet ? oldState.facet(dep) === state.facet(dep) :\n dep instanceof StateField ? oldState.field(dep, false) == state.field(dep, false) : true;\n }) || (multi ? compareArray(newVal = getter(state), oldVal, compare) : compare(newVal = getter(state), oldVal))) {\n state.values[idx] = oldVal;\n return 0;\n }\n }\n else {\n newVal = getter(state);\n }\n state.values[idx] = newVal;\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n}\nfunction compareArray(a, b, compare) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!compare(a[i], b[i]))\n return false;\n return true;\n}\nfunction ensureAll(state, addrs) {\n let changed = false;\n for (let addr of addrs)\n if (ensureAddr(state, addr) & 1 /* SlotStatus.Changed */)\n changed = true;\n return changed;\n}\nfunction dynamicFacetSlot(addresses, facet, providers) {\n let providerAddrs = providers.map(p => addresses[p.id]);\n let providerTypes = providers.map(p => p.type);\n let dynamic = providerAddrs.filter(p => !(p & 1));\n let idx = addresses[facet.id] >> 1;\n function get(state) {\n let values = [];\n for (let i = 0; i < providerAddrs.length; i++) {\n let value = getAddr(state, providerAddrs[i]);\n if (providerTypes[i] == 2 /* Provider.Multi */)\n for (let val of value)\n values.push(val);\n else\n values.push(value);\n }\n return facet.combine(values);\n }\n return {\n create(state) {\n for (let addr of providerAddrs)\n ensureAddr(state, addr);\n state.values[idx] = get(state);\n return 1 /* SlotStatus.Changed */;\n },\n update(state, tr) {\n if (!ensureAll(state, dynamic))\n return 0;\n let value = get(state);\n if (facet.compare(value, state.values[idx]))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure(state, oldState) {\n let depChanged = ensureAll(state, providerAddrs);\n let oldProviders = oldState.config.facets[facet.id], oldValue = oldState.facet(facet);\n if (oldProviders && !depChanged && sameArray(providers, oldProviders)) {\n state.values[idx] = oldValue;\n return 0;\n }\n let value = get(state);\n if (facet.compare(value, oldValue)) {\n state.values[idx] = oldValue;\n return 0;\n }\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n }\n };\n}\nconst initField = /*@__PURE__*/Facet.define({ static: true });\n/**\nFields can store additional information in an editor state, and\nkeep it in sync with the rest of the state.\n*/\nclass StateField {\n constructor(\n /**\n @internal\n */\n id, createF, updateF, compareF, \n /**\n @internal\n */\n spec) {\n this.id = id;\n this.createF = createF;\n this.updateF = updateF;\n this.compareF = compareF;\n this.spec = spec;\n /**\n @internal\n */\n this.provides = undefined;\n }\n /**\n Define a state field.\n */\n static define(config) {\n let field = new StateField(nextID++, config.create, config.update, config.compare || ((a, b) => a === b), config);\n if (config.provide)\n field.provides = config.provide(field);\n return field;\n }\n create(state) {\n let init = state.facet(initField).find(i => i.field == this);\n return ((init === null || init === void 0 ? void 0 : init.create) || this.createF)(state);\n }\n /**\n @internal\n */\n slot(addresses) {\n let idx = addresses[this.id] >> 1;\n return {\n create: (state) => {\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n },\n update: (state, tr) => {\n let oldVal = state.values[idx];\n let value = this.updateF(oldVal, tr);\n if (this.compareF(oldVal, value))\n return 0;\n state.values[idx] = value;\n return 1 /* SlotStatus.Changed */;\n },\n reconfigure: (state, oldState) => {\n let init = state.facet(initField), oldInit = oldState.facet(initField), reInit;\n if ((reInit = init.find(i => i.field == this)) && reInit != oldInit.find(i => i.field == this)) {\n state.values[idx] = reInit.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n if (oldState.config.address[this.id] != null) {\n state.values[idx] = oldState.field(this);\n return 0;\n }\n state.values[idx] = this.create(state);\n return 1 /* SlotStatus.Changed */;\n }\n };\n }\n /**\n Returns an extension that enables this field and overrides the\n way it is initialized. Can be useful when you need to provide a\n non-default starting value for the field.\n */\n init(create) {\n return [this, initField.of({ field: this, create })];\n }\n /**\n State field instances can be used as\n [`Extension`](https://codemirror.net/6/docs/ref/#state.Extension) values to enable the field in a\n given state.\n */\n get extension() { return this; }\n}\nconst Prec_ = { lowest: 4, low: 3, default: 2, high: 1, highest: 0 };\nfunction prec(value) {\n return (ext) => new PrecExtension(ext, value);\n}\n/**\nBy default extensions are registered in the order they are found\nin the flattened form of nested array that was provided.\nIndividual extension values can be assigned a precedence to\noverride this. Extensions that do not have a precedence set get\nthe precedence of the nearest parent with a precedence, or\n[`default`](https://codemirror.net/6/docs/ref/#state.Prec.default) if there is no such parent. The\nfinal ordering of extensions is determined by first sorting by\nprecedence and then by order within each precedence.\n*/\nconst Prec = {\n /**\n The highest precedence level, for extensions that should end up\n near the start of the precedence ordering.\n */\n highest: /*@__PURE__*/prec(Prec_.highest),\n /**\n A higher-than-default precedence, for extensions that should\n come before those with default precedence.\n */\n high: /*@__PURE__*/prec(Prec_.high),\n /**\n The default precedence, which is also used for extensions\n without an explicit precedence.\n */\n default: /*@__PURE__*/prec(Prec_.default),\n /**\n A lower-than-default precedence.\n */\n low: /*@__PURE__*/prec(Prec_.low),\n /**\n The lowest precedence level. Meant for things that should end up\n near the end of the extension order.\n */\n lowest: /*@__PURE__*/prec(Prec_.lowest)\n};\nclass PrecExtension {\n constructor(inner, prec) {\n this.inner = inner;\n this.prec = prec;\n }\n}\n/**\nExtension compartments can be used to make a configuration\ndynamic. By [wrapping](https://codemirror.net/6/docs/ref/#state.Compartment.of) part of your\nconfiguration in a compartment, you can later\n[replace](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure) that part through a\ntransaction.\n*/\nclass Compartment {\n /**\n Create an instance of this compartment to add to your [state\n configuration](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions).\n */\n of(ext) { return new CompartmentInstance(this, ext); }\n /**\n Create an [effect](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) that\n reconfigures this compartment.\n */\n reconfigure(content) {\n return Compartment.reconfigure.of({ compartment: this, extension: content });\n }\n /**\n Get the current content of the compartment in the state, or\n `undefined` if it isn't present.\n */\n get(state) {\n return state.config.compartments.get(this);\n }\n}\nclass CompartmentInstance {\n constructor(compartment, inner) {\n this.compartment = compartment;\n this.inner = inner;\n }\n}\nclass Configuration {\n constructor(base, compartments, dynamicSlots, address, staticValues, facets) {\n this.base = base;\n this.compartments = compartments;\n this.dynamicSlots = dynamicSlots;\n this.address = address;\n this.staticValues = staticValues;\n this.facets = facets;\n this.statusTemplate = [];\n while (this.statusTemplate.length < dynamicSlots.length)\n this.statusTemplate.push(0 /* SlotStatus.Unresolved */);\n }\n staticFacet(facet) {\n let addr = this.address[facet.id];\n return addr == null ? facet.default : this.staticValues[addr >> 1];\n }\n static resolve(base, compartments, oldState) {\n let fields = [];\n let facets = Object.create(null);\n let newCompartments = new Map();\n for (let ext of flatten(base, compartments, newCompartments)) {\n if (ext instanceof StateField)\n fields.push(ext);\n else\n (facets[ext.facet.id] || (facets[ext.facet.id] = [])).push(ext);\n }\n let address = Object.create(null);\n let staticValues = [];\n let dynamicSlots = [];\n for (let field of fields) {\n address[field.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => field.slot(a));\n }\n let oldFacets = oldState === null || oldState === void 0 ? void 0 : oldState.config.facets;\n for (let id in facets) {\n let providers = facets[id], facet = providers[0].facet;\n let oldProviders = oldFacets && oldFacets[id] || [];\n if (providers.every(p => p.type == 0 /* Provider.Static */)) {\n address[facet.id] = (staticValues.length << 1) | 1;\n if (sameArray(oldProviders, providers)) {\n staticValues.push(oldState.facet(facet));\n }\n else {\n let value = facet.combine(providers.map(p => p.value));\n staticValues.push(oldState && facet.compare(value, oldState.facet(facet)) ? oldState.facet(facet) : value);\n }\n }\n else {\n for (let p of providers) {\n if (p.type == 0 /* Provider.Static */) {\n address[p.id] = (staticValues.length << 1) | 1;\n staticValues.push(p.value);\n }\n else {\n address[p.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => p.dynamicSlot(a));\n }\n }\n address[facet.id] = dynamicSlots.length << 1;\n dynamicSlots.push(a => dynamicFacetSlot(a, facet, providers));\n }\n }\n let dynamic = dynamicSlots.map(f => f(address));\n return new Configuration(base, newCompartments, dynamic, address, staticValues, facets);\n }\n}\nfunction flatten(extension, compartments, newCompartments) {\n let result = [[], [], [], [], []];\n let seen = new Map();\n function inner(ext, prec) {\n let known = seen.get(ext);\n if (known != null) {\n if (known <= prec)\n return;\n let found = result[known].indexOf(ext);\n if (found > -1)\n result[known].splice(found, 1);\n if (ext instanceof CompartmentInstance)\n newCompartments.delete(ext.compartment);\n }\n seen.set(ext, prec);\n if (Array.isArray(ext)) {\n for (let e of ext)\n inner(e, prec);\n }\n else if (ext instanceof CompartmentInstance) {\n if (newCompartments.has(ext.compartment))\n throw new RangeError(`Duplicate use of compartment in extensions`);\n let content = compartments.get(ext.compartment) || ext.inner;\n newCompartments.set(ext.compartment, content);\n inner(content, prec);\n }\n else if (ext instanceof PrecExtension) {\n inner(ext.inner, ext.prec);\n }\n else if (ext instanceof StateField) {\n result[prec].push(ext);\n if (ext.provides)\n inner(ext.provides, prec);\n }\n else if (ext instanceof FacetProvider) {\n result[prec].push(ext);\n if (ext.facet.extensions)\n inner(ext.facet.extensions, Prec_.default);\n }\n else {\n let content = ext.extension;\n if (!content)\n throw new Error(`Unrecognized extension value in extension set (${ext}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);\n inner(content, prec);\n }\n }\n inner(extension, Prec_.default);\n return result.reduce((a, b) => a.concat(b));\n}\nfunction ensureAddr(state, addr) {\n if (addr & 1)\n return 2 /* SlotStatus.Computed */;\n let idx = addr >> 1;\n let status = state.status[idx];\n if (status == 4 /* SlotStatus.Computing */)\n throw new Error(\"Cyclic dependency between fields and/or facets\");\n if (status & 2 /* SlotStatus.Computed */)\n return status;\n state.status[idx] = 4 /* SlotStatus.Computing */;\n let changed = state.computeSlot(state, state.config.dynamicSlots[idx]);\n return state.status[idx] = 2 /* SlotStatus.Computed */ | changed;\n}\nfunction getAddr(state, addr) {\n return addr & 1 ? state.config.staticValues[addr >> 1] : state.values[addr >> 1];\n}\n\nconst languageData = /*@__PURE__*/Facet.define();\nconst allowMultipleSelections = /*@__PURE__*/Facet.define({\n combine: values => values.some(v => v),\n static: true\n});\nconst lineSeparator = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : undefined,\n static: true\n});\nconst changeFilter = /*@__PURE__*/Facet.define();\nconst transactionFilter = /*@__PURE__*/Facet.define();\nconst transactionExtender = /*@__PURE__*/Facet.define();\nconst readOnly = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : false\n});\n\n/**\nAnnotations are tagged values that are used to add metadata to\ntransactions in an extensible way. They should be used to model\nthings that effect the entire transaction (such as its [time\nstamp](https://codemirror.net/6/docs/ref/#state.Transaction^time) or information about its\n[origin](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent)). For effects that happen\n_alongside_ the other changes made by the transaction, [state\neffects](https://codemirror.net/6/docs/ref/#state.StateEffect) are more appropriate.\n*/\nclass Annotation {\n /**\n @internal\n */\n constructor(\n /**\n The annotation type.\n */\n type, \n /**\n The value of this annotation.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Define a new type of annotation.\n */\n static define() { return new AnnotationType(); }\n}\n/**\nMarker that identifies a type of [annotation](https://codemirror.net/6/docs/ref/#state.Annotation).\n*/\nclass AnnotationType {\n /**\n Create an instance of this annotation.\n */\n of(value) { return new Annotation(this, value); }\n}\n/**\nRepresentation of a type of state effect. Defined with\n[`StateEffect.define`](https://codemirror.net/6/docs/ref/#state.StateEffect^define).\n*/\nclass StateEffectType {\n /**\n @internal\n */\n constructor(\n // The `any` types in these function types are there to work\n // around TypeScript issue #37631, where the type guard on\n // `StateEffect.is` mysteriously stops working when these properly\n // have type `Value`.\n /**\n @internal\n */\n map) {\n this.map = map;\n }\n /**\n Create a [state effect](https://codemirror.net/6/docs/ref/#state.StateEffect) instance of this\n type.\n */\n of(value) { return new StateEffect(this, value); }\n}\n/**\nState effects can be used to represent additional effects\nassociated with a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction.effects). They\nare often useful to model changes to custom [state\nfields](https://codemirror.net/6/docs/ref/#state.StateField), when those changes aren't implicit in\ndocument or selection changes.\n*/\nclass StateEffect {\n /**\n @internal\n */\n constructor(\n /**\n @internal\n */\n type, \n /**\n The value of this effect.\n */\n value) {\n this.type = type;\n this.value = value;\n }\n /**\n Map this effect through a position mapping. Will return\n `undefined` when that ends up deleting the effect.\n */\n map(mapping) {\n let mapped = this.type.map(this.value, mapping);\n return mapped === undefined ? undefined : mapped == this.value ? this : new StateEffect(this.type, mapped);\n }\n /**\n Tells you whether this effect object is of a given\n [type](https://codemirror.net/6/docs/ref/#state.StateEffectType).\n */\n is(type) { return this.type == type; }\n /**\n Define a new effect type. The type parameter indicates the type\n of values that his effect holds. It should be a type that\n doesn't include `undefined`, since that is used in\n [mapping](https://codemirror.net/6/docs/ref/#state.StateEffect.map) to indicate that an effect is\n removed.\n */\n static define(spec = {}) {\n return new StateEffectType(spec.map || (v => v));\n }\n /**\n Map an array of effects through a change set.\n */\n static mapEffects(effects, mapping) {\n if (!effects.length)\n return effects;\n let result = [];\n for (let effect of effects) {\n let mapped = effect.map(mapping);\n if (mapped)\n result.push(mapped);\n }\n return result;\n }\n}\n/**\nThis effect can be used to reconfigure the root extensions of\nthe editor. Doing this will discard any extensions\n[appended](https://codemirror.net/6/docs/ref/#state.StateEffect^appendConfig), but does not reset\nthe content of [reconfigured](https://codemirror.net/6/docs/ref/#state.Compartment.reconfigure)\ncompartments.\n*/\nStateEffect.reconfigure = /*@__PURE__*/StateEffect.define();\n/**\nAppend extensions to the top-level configuration of the editor.\n*/\nStateEffect.appendConfig = /*@__PURE__*/StateEffect.define();\n/**\nChanges to the editor state are grouped into transactions.\nTypically, a user action creates a single transaction, which may\ncontain any number of document changes, may change the selection,\nor have other effects. Create a transaction by calling\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update), or immediately\ndispatch one by calling\n[`EditorView.dispatch`](https://codemirror.net/6/docs/ref/#view.EditorView.dispatch).\n*/\nclass Transaction {\n constructor(\n /**\n The state from which the transaction starts.\n */\n startState, \n /**\n The document changes made by this transaction.\n */\n changes, \n /**\n The selection set by this transaction, or undefined if it\n doesn't explicitly set a selection.\n */\n selection, \n /**\n The effects added to the transaction.\n */\n effects, \n /**\n @internal\n */\n annotations, \n /**\n Whether the selection should be scrolled into view after this\n transaction is dispatched.\n */\n scrollIntoView) {\n this.startState = startState;\n this.changes = changes;\n this.selection = selection;\n this.effects = effects;\n this.annotations = annotations;\n this.scrollIntoView = scrollIntoView;\n /**\n @internal\n */\n this._doc = null;\n /**\n @internal\n */\n this._state = null;\n if (selection)\n checkSelection(selection, changes.newLength);\n if (!annotations.some((a) => a.type == Transaction.time))\n this.annotations = annotations.concat(Transaction.time.of(Date.now()));\n }\n /**\n @internal\n */\n static create(startState, changes, selection, effects, annotations, scrollIntoView) {\n return new Transaction(startState, changes, selection, effects, annotations, scrollIntoView);\n }\n /**\n The new document produced by the transaction. Contrary to\n [`.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state)`.doc`, accessing this won't\n force the entire new state to be computed right away, so it is\n recommended that [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) use this getter\n when they need to look at the new document.\n */\n get newDoc() {\n return this._doc || (this._doc = this.changes.apply(this.startState.doc));\n }\n /**\n The new selection produced by the transaction. If\n [`this.selection`](https://codemirror.net/6/docs/ref/#state.Transaction.selection) is undefined,\n this will [map](https://codemirror.net/6/docs/ref/#state.EditorSelection.map) the start state's\n current selection through the changes made by the transaction.\n */\n get newSelection() {\n return this.selection || this.startState.selection.map(this.changes);\n }\n /**\n The new state created by the transaction. Computed on demand\n (but retained for subsequent access), so it is recommended not to\n access it in [transaction\n filters](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter) when possible.\n */\n get state() {\n if (!this._state)\n this.startState.applyTransaction(this);\n return this._state;\n }\n /**\n Get the value of the given annotation type, if any.\n */\n annotation(type) {\n for (let ann of this.annotations)\n if (ann.type == type)\n return ann.value;\n return undefined;\n }\n /**\n Indicates whether the transaction changed the document.\n */\n get docChanged() { return !this.changes.empty; }\n /**\n Indicates whether this transaction reconfigures the state\n (through a [configuration compartment](https://codemirror.net/6/docs/ref/#state.Compartment) or\n with a top-level configuration\n [effect](https://codemirror.net/6/docs/ref/#state.StateEffect^reconfigure).\n */\n get reconfigured() { return this.startState.config != this.state.config; }\n /**\n Returns true if the transaction has a [user\n event](https://codemirror.net/6/docs/ref/#state.Transaction^userEvent) annotation that is equal to\n or more specific than `event`. For example, if the transaction\n has `\"select.pointer\"` as user event, `\"select\"` and\n `\"select.pointer\"` will match it.\n */\n isUserEvent(event) {\n let e = this.annotation(Transaction.userEvent);\n return !!(e && (e == event || e.length > event.length && e.slice(0, event.length) == event && e[event.length] == \".\"));\n }\n}\n/**\nAnnotation used to store transaction timestamps. Automatically\nadded to every transaction, holding `Date.now()`.\n*/\nTransaction.time = /*@__PURE__*/Annotation.define();\n/**\nAnnotation used to associate a transaction with a user interface\nevent. Holds a string identifying the event, using a\ndot-separated format to support attaching more specific\ninformation. The events used by the core libraries are:\n\n - `\"input\"` when content is entered\n - `\"input.type\"` for typed input\n - `\"input.type.compose\"` for composition\n - `\"input.paste\"` for pasted input\n - `\"input.drop\"` when adding content with drag-and-drop\n - `\"input.complete\"` when autocompleting\n - `\"delete\"` when the user deletes content\n - `\"delete.selection\"` when deleting the selection\n - `\"delete.forward\"` when deleting forward from the selection\n - `\"delete.backward\"` when deleting backward from the selection\n - `\"delete.cut\"` when cutting to the clipboard\n - `\"move\"` when content is moved\n - `\"move.drop\"` when content is moved within the editor through drag-and-drop\n - `\"select\"` when explicitly changing the selection\n - `\"select.pointer\"` when selecting with a mouse or other pointing device\n - `\"undo\"` and `\"redo\"` for history actions\n\nUse [`isUserEvent`](https://codemirror.net/6/docs/ref/#state.Transaction.isUserEvent) to check\nwhether the annotation matches a given event.\n*/\nTransaction.userEvent = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating whether a transaction should be added to\nthe undo history or not.\n*/\nTransaction.addToHistory = /*@__PURE__*/Annotation.define();\n/**\nAnnotation indicating (when present and true) that a transaction\nrepresents a change made by some other actor, not the user. This\nis used, for example, to tag other people's changes in\ncollaborative editing.\n*/\nTransaction.remote = /*@__PURE__*/Annotation.define();\nfunction joinRanges(a, b) {\n let result = [];\n for (let iA = 0, iB = 0;;) {\n let from, to;\n if (iA < a.length && (iB == b.length || b[iB] >= a[iA])) {\n from = a[iA++];\n to = a[iA++];\n }\n else if (iB < b.length) {\n from = b[iB++];\n to = b[iB++];\n }\n else\n return result;\n if (!result.length || result[result.length - 1] < from)\n result.push(from, to);\n else if (result[result.length - 1] < to)\n result[result.length - 1] = to;\n }\n}\nfunction mergeTransaction(a, b, sequential) {\n var _a;\n let mapForA, mapForB, changes;\n if (sequential) {\n mapForA = b.changes;\n mapForB = ChangeSet.empty(b.changes.length);\n changes = a.changes.compose(b.changes);\n }\n else {\n mapForA = b.changes.map(a.changes);\n mapForB = a.changes.mapDesc(b.changes, true);\n changes = a.changes.compose(mapForA);\n }\n return {\n changes,\n selection: b.selection ? b.selection.map(mapForB) : (_a = a.selection) === null || _a === void 0 ? void 0 : _a.map(mapForA),\n effects: StateEffect.mapEffects(a.effects, mapForA).concat(StateEffect.mapEffects(b.effects, mapForB)),\n annotations: a.annotations.length ? a.annotations.concat(b.annotations) : b.annotations,\n scrollIntoView: a.scrollIntoView || b.scrollIntoView\n };\n}\nfunction resolveTransactionInner(state, spec, docSize) {\n let sel = spec.selection, annotations = asArray(spec.annotations);\n if (spec.userEvent)\n annotations = annotations.concat(Transaction.userEvent.of(spec.userEvent));\n return {\n changes: spec.changes instanceof ChangeSet ? spec.changes\n : ChangeSet.of(spec.changes || [], docSize, state.facet(lineSeparator)),\n selection: sel && (sel instanceof EditorSelection ? sel : EditorSelection.single(sel.anchor, sel.head)),\n effects: asArray(spec.effects),\n annotations,\n scrollIntoView: !!spec.scrollIntoView\n };\n}\nfunction resolveTransaction(state, specs, filter) {\n let s = resolveTransactionInner(state, specs.length ? specs[0] : {}, state.doc.length);\n if (specs.length && specs[0].filter === false)\n filter = false;\n for (let i = 1; i < specs.length; i++) {\n if (specs[i].filter === false)\n filter = false;\n let seq = !!specs[i].sequential;\n s = mergeTransaction(s, resolveTransactionInner(state, specs[i], seq ? s.changes.newLength : state.doc.length), seq);\n }\n let tr = Transaction.create(state, s.changes, s.selection, s.effects, s.annotations, s.scrollIntoView);\n return extendTransaction(filter ? filterTransaction(tr) : tr);\n}\n// Finish a transaction by applying filters if necessary.\nfunction filterTransaction(tr) {\n let state = tr.startState;\n // Change filters\n let result = true;\n for (let filter of state.facet(changeFilter)) {\n let value = filter(tr);\n if (value === false) {\n result = false;\n break;\n }\n if (Array.isArray(value))\n result = result === true ? value : joinRanges(result, value);\n }\n if (result !== true) {\n let changes, back;\n if (result === false) {\n back = tr.changes.invertedDesc;\n changes = ChangeSet.empty(state.doc.length);\n }\n else {\n let filtered = tr.changes.filter(result);\n changes = filtered.changes;\n back = filtered.filtered.mapDesc(filtered.changes).invertedDesc;\n }\n tr = Transaction.create(state, changes, tr.selection && tr.selection.map(back), StateEffect.mapEffects(tr.effects, back), tr.annotations, tr.scrollIntoView);\n }\n // Transaction filters\n let filters = state.facet(transactionFilter);\n for (let i = filters.length - 1; i >= 0; i--) {\n let filtered = filters[i](tr);\n if (filtered instanceof Transaction)\n tr = filtered;\n else if (Array.isArray(filtered) && filtered.length == 1 && filtered[0] instanceof Transaction)\n tr = filtered[0];\n else\n tr = resolveTransaction(state, asArray(filtered), false);\n }\n return tr;\n}\nfunction extendTransaction(tr) {\n let state = tr.startState, extenders = state.facet(transactionExtender), spec = tr;\n for (let i = extenders.length - 1; i >= 0; i--) {\n let extension = extenders[i](tr);\n if (extension && Object.keys(extension).length)\n spec = mergeTransaction(spec, resolveTransactionInner(state, extension, tr.changes.newLength), true);\n }\n return spec == tr ? tr : Transaction.create(state, tr.changes, tr.selection, spec.effects, spec.annotations, spec.scrollIntoView);\n}\nconst none = [];\nfunction asArray(value) {\n return value == null ? none : Array.isArray(value) ? value : [value];\n}\n\n/**\nThe categories produced by a [character\ncategorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer). These are used\ndo things like selecting by word.\n*/\nvar CharCategory = /*@__PURE__*/(function (CharCategory) {\n /**\n Word characters.\n */\n CharCategory[CharCategory[\"Word\"] = 0] = \"Word\";\n /**\n Whitespace.\n */\n CharCategory[CharCategory[\"Space\"] = 1] = \"Space\";\n /**\n Anything else.\n */\n CharCategory[CharCategory[\"Other\"] = 2] = \"Other\";\nreturn CharCategory})(CharCategory || (CharCategory = {}));\nconst nonASCIISingleCaseWordChar = /[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;\nlet wordChar;\ntry {\n wordChar = /*@__PURE__*/new RegExp(\"[\\\\p{Alphabetic}\\\\p{Number}_]\", \"u\");\n}\ncatch (_) { }\nfunction hasWordChar(str) {\n if (wordChar)\n return wordChar.test(str);\n for (let i = 0; i < str.length; i++) {\n let ch = str[i];\n if (/\\w/.test(ch) || ch > \"\\x80\" && (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)))\n return true;\n }\n return false;\n}\nfunction makeCategorizer(wordChars) {\n return (char) => {\n if (!/\\S/.test(char))\n return CharCategory.Space;\n if (hasWordChar(char))\n return CharCategory.Word;\n for (let i = 0; i < wordChars.length; i++)\n if (char.indexOf(wordChars[i]) > -1)\n return CharCategory.Word;\n return CharCategory.Other;\n };\n}\n\n/**\nThe editor state class is a persistent (immutable) data structure.\nTo update a state, you [create](https://codemirror.net/6/docs/ref/#state.EditorState.update) a\n[transaction](https://codemirror.net/6/docs/ref/#state.Transaction), which produces a _new_ state\ninstance, without modifying the original object.\n\nAs such, _never_ mutate properties of a state directly. That'll\njust break things.\n*/\nclass EditorState {\n constructor(\n /**\n @internal\n */\n config, \n /**\n The current document.\n */\n doc, \n /**\n The current selection.\n */\n selection, \n /**\n @internal\n */\n values, computeSlot, tr) {\n this.config = config;\n this.doc = doc;\n this.selection = selection;\n this.values = values;\n this.status = config.statusTemplate.slice();\n this.computeSlot = computeSlot;\n // Fill in the computed state immediately, so that further queries\n // for it made during the update return this state\n if (tr)\n tr._state = this;\n for (let i = 0; i < this.config.dynamicSlots.length; i++)\n ensureAddr(this, i << 1);\n this.computeSlot = null;\n }\n field(field, require = true) {\n let addr = this.config.address[field.id];\n if (addr == null) {\n if (require)\n throw new RangeError(\"Field is not present in this state\");\n return undefined;\n }\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Create a [transaction](https://codemirror.net/6/docs/ref/#state.Transaction) that updates this\n state. Any number of [transaction specs](https://codemirror.net/6/docs/ref/#state.TransactionSpec)\n can be passed. Unless\n [`sequential`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.sequential) is set, the\n [changes](https://codemirror.net/6/docs/ref/#state.TransactionSpec.changes) (if any) of each spec\n are assumed to start in the _current_ document (not the document\n produced by previous specs), and its\n [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection) and\n [effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects) are assumed to refer\n to the document created by its _own_ changes. The resulting\n transaction contains the combined effect of all the different\n specs. For [selection](https://codemirror.net/6/docs/ref/#state.TransactionSpec.selection), later\n specs take precedence over earlier ones.\n */\n update(...specs) {\n return resolveTransaction(this, specs, true);\n }\n /**\n @internal\n */\n applyTransaction(tr) {\n let conf = this.config, { base, compartments } = conf;\n for (let effect of tr.effects) {\n if (effect.is(Compartment.reconfigure)) {\n if (conf) {\n compartments = new Map;\n conf.compartments.forEach((val, key) => compartments.set(key, val));\n conf = null;\n }\n compartments.set(effect.value.compartment, effect.value.extension);\n }\n else if (effect.is(StateEffect.reconfigure)) {\n conf = null;\n base = effect.value;\n }\n else if (effect.is(StateEffect.appendConfig)) {\n conf = null;\n base = asArray(base).concat(effect.value);\n }\n }\n let startValues;\n if (!conf) {\n conf = Configuration.resolve(base, compartments, this);\n let intermediateState = new EditorState(conf, this.doc, this.selection, conf.dynamicSlots.map(() => null), (state, slot) => slot.reconfigure(state, this), null);\n startValues = intermediateState.values;\n }\n else {\n startValues = tr.startState.values.slice();\n }\n let selection = tr.startState.facet(allowMultipleSelections) ? tr.newSelection : tr.newSelection.asSingle();\n new EditorState(conf, tr.newDoc, selection, startValues, (state, slot) => slot.update(state, tr), tr);\n }\n /**\n Create a [transaction spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec) that\n replaces every selection range with the given content.\n */\n replaceSelection(text) {\n if (typeof text == \"string\")\n text = this.toText(text);\n return this.changeByRange(range => ({ changes: { from: range.from, to: range.to, insert: text },\n range: EditorSelection.cursor(range.from + text.length) }));\n }\n /**\n Create a set of changes and a new selection by running the given\n function for each range in the active selection. The function\n can return an optional set of changes (in the coordinate space\n of the start document), plus an updated range (in the coordinate\n space of the document produced by the call's own changes). This\n method will merge all the changes and ranges into a single\n changeset and selection, and return it as a [transaction\n spec](https://codemirror.net/6/docs/ref/#state.TransactionSpec), which can be passed to\n [`update`](https://codemirror.net/6/docs/ref/#state.EditorState.update).\n */\n changeByRange(f) {\n let sel = this.selection;\n let result1 = f(sel.ranges[0]);\n let changes = this.changes(result1.changes), ranges = [result1.range];\n let effects = asArray(result1.effects);\n for (let i = 1; i < sel.ranges.length; i++) {\n let result = f(sel.ranges[i]);\n let newChanges = this.changes(result.changes), newMapped = newChanges.map(changes);\n for (let j = 0; j < i; j++)\n ranges[j] = ranges[j].map(newMapped);\n let mapBy = changes.mapDesc(newChanges, true);\n ranges.push(result.range.map(mapBy));\n changes = changes.compose(newMapped);\n effects = StateEffect.mapEffects(effects, newMapped).concat(StateEffect.mapEffects(asArray(result.effects), mapBy));\n }\n return {\n changes,\n selection: EditorSelection.create(ranges, sel.mainIndex),\n effects\n };\n }\n /**\n Create a [change set](https://codemirror.net/6/docs/ref/#state.ChangeSet) from the given change\n description, taking the state's document length and line\n separator into account.\n */\n changes(spec = []) {\n if (spec instanceof ChangeSet)\n return spec;\n return ChangeSet.of(spec, this.doc.length, this.facet(EditorState.lineSeparator));\n }\n /**\n Using the state's [line\n separator](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator), create a\n [`Text`](https://codemirror.net/6/docs/ref/#state.Text) instance from the given string.\n */\n toText(string) {\n return Text.of(string.split(this.facet(EditorState.lineSeparator) || DefaultSplit));\n }\n /**\n Return the given range of the document as a string.\n */\n sliceDoc(from = 0, to = this.doc.length) {\n return this.doc.sliceString(from, to, this.lineBreak);\n }\n /**\n Get the value of a state [facet](https://codemirror.net/6/docs/ref/#state.Facet).\n */\n facet(facet) {\n let addr = this.config.address[facet.id];\n if (addr == null)\n return facet.default;\n ensureAddr(this, addr);\n return getAddr(this, addr);\n }\n /**\n Convert this state to a JSON-serializable object. When custom\n fields should be serialized, you can pass them in as an object\n mapping property names (in the resulting object, which should\n not use `doc` or `selection`) to fields.\n */\n toJSON(fields) {\n let result = {\n doc: this.sliceDoc(),\n selection: this.selection.toJSON()\n };\n if (fields)\n for (let prop in fields) {\n let value = fields[prop];\n if (value instanceof StateField && this.config.address[value.id] != null)\n result[prop] = value.spec.toJSON(this.field(fields[prop]), this);\n }\n return result;\n }\n /**\n Deserialize a state from its JSON representation. When custom\n fields should be deserialized, pass the same object you passed\n to [`toJSON`](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) when serializing as\n third argument.\n */\n static fromJSON(json, config = {}, fields) {\n if (!json || typeof json.doc != \"string\")\n throw new RangeError(\"Invalid JSON representation for EditorState\");\n let fieldInit = [];\n if (fields)\n for (let prop in fields) {\n if (Object.prototype.hasOwnProperty.call(json, prop)) {\n let field = fields[prop], value = json[prop];\n fieldInit.push(field.init(state => field.spec.fromJSON(value, state)));\n }\n }\n return EditorState.create({\n doc: json.doc,\n selection: EditorSelection.fromJSON(json.selection),\n extensions: config.extensions ? fieldInit.concat([config.extensions]) : fieldInit\n });\n }\n /**\n Create a new state. You'll usually only need this when\n initializing an editor—updated states are created by applying\n transactions.\n */\n static create(config = {}) {\n let configuration = Configuration.resolve(config.extensions || [], new Map);\n let doc = config.doc instanceof Text ? config.doc\n : Text.of((config.doc || \"\").split(configuration.staticFacet(EditorState.lineSeparator) || DefaultSplit));\n let selection = !config.selection ? EditorSelection.single(0)\n : config.selection instanceof EditorSelection ? config.selection\n : EditorSelection.single(config.selection.anchor, config.selection.head);\n checkSelection(selection, doc.length);\n if (!configuration.staticFacet(allowMultipleSelections))\n selection = selection.asSingle();\n return new EditorState(configuration, doc, selection, configuration.dynamicSlots.map(() => null), (state, slot) => slot.create(state), null);\n }\n /**\n The size (in columns) of a tab in the document, determined by\n the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet.\n */\n get tabSize() { return this.facet(EditorState.tabSize); }\n /**\n Get the proper [line-break](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)\n string for this state.\n */\n get lineBreak() { return this.facet(EditorState.lineSeparator) || \"\\n\"; }\n /**\n Returns true when the editor is\n [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only.\n */\n get readOnly() { return this.facet(readOnly); }\n /**\n Look up a translation for the given phrase (via the\n [`phrases`](https://codemirror.net/6/docs/ref/#state.EditorState^phrases) facet), or return the\n original string if no translation is found.\n \n If additional arguments are passed, they will be inserted in\n place of markers like `$1` (for the first value) and `$2`, etc.\n A single `$` is equivalent to `$1`, and `$$` will produce a\n literal dollar sign.\n */\n phrase(phrase, ...insert) {\n for (let map of this.facet(EditorState.phrases))\n if (Object.prototype.hasOwnProperty.call(map, phrase)) {\n phrase = map[phrase];\n break;\n }\n if (insert.length)\n phrase = phrase.replace(/\\$(\\$|\\d*)/g, (m, i) => {\n if (i == \"$\")\n return \"$\";\n let n = +(i || 1);\n return !n || n > insert.length ? m : insert[n - 1];\n });\n return phrase;\n }\n /**\n Find the values for a given language data field, provided by the\n the [`languageData`](https://codemirror.net/6/docs/ref/#state.EditorState^languageData) facet.\n \n Examples of language data fields are...\n \n - [`\"commentTokens\"`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) for specifying\n comment syntax.\n - [`\"autocomplete\"`](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion^config.override)\n for providing language-specific completion sources.\n - [`\"wordChars\"`](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer) for adding\n characters that should be considered part of words in this\n language.\n - [`\"closeBrackets\"`](https://codemirror.net/6/docs/ref/#autocomplete.CloseBracketConfig) controls\n bracket closing behavior.\n */\n languageDataAt(name, pos, side = -1) {\n let values = [];\n for (let provider of this.facet(languageData)) {\n for (let result of provider(this, pos, side)) {\n if (Object.prototype.hasOwnProperty.call(result, name))\n values.push(result[name]);\n }\n }\n return values;\n }\n /**\n Return a function that can categorize strings (expected to\n represent a single [grapheme cluster](https://codemirror.net/6/docs/ref/#state.findClusterBreak))\n into one of:\n \n - Word (contains an alphanumeric character or a character\n explicitly listed in the local language's `\"wordChars\"`\n language data, which should be a string)\n - Space (contains only whitespace)\n - Other (anything else)\n */\n charCategorizer(at) {\n return makeCategorizer(this.languageDataAt(\"wordChars\", at).join(\"\"));\n }\n /**\n Find the word at the given position, meaning the range\n containing all [word](https://codemirror.net/6/docs/ref/#state.CharCategory.Word) characters\n around it. If no word characters are adjacent to the position,\n this returns null.\n */\n wordAt(pos) {\n let { text, from, length } = this.doc.lineAt(pos);\n let cat = this.charCategorizer(pos);\n let start = pos - from, end = pos - from;\n while (start > 0) {\n let prev = findClusterBreak(text, start, false);\n if (cat(text.slice(prev, start)) != CharCategory.Word)\n break;\n start = prev;\n }\n while (end < length) {\n let next = findClusterBreak(text, end);\n if (cat(text.slice(end, next)) != CharCategory.Word)\n break;\n end = next;\n }\n return start == end ? null : EditorSelection.range(start + from, end + from);\n }\n}\n/**\nA facet that, when enabled, causes the editor to allow multiple\nranges to be selected. Be careful though, because by default the\neditor relies on the native DOM selection, which cannot handle\nmultiple selections. An extension like\n[`drawSelection`](https://codemirror.net/6/docs/ref/#view.drawSelection) can be used to make\nsecondary selections visible to the user.\n*/\nEditorState.allowMultipleSelections = allowMultipleSelections;\n/**\nConfigures the tab size to use in this state. The first\n(highest-precedence) value of the facet is used. If no value is\ngiven, this defaults to 4.\n*/\nEditorState.tabSize = /*@__PURE__*/Facet.define({\n combine: values => values.length ? values[0] : 4\n});\n/**\nThe line separator to use. By default, any of `\"\\n\"`, `\"\\r\\n\"`\nand `\"\\r\"` is treated as a separator when splitting lines, and\nlines are joined with `\"\\n\"`.\n\nWhen you configure a value here, only that precise separator\nwill be used, allowing you to round-trip documents through the\neditor without normalizing line separators.\n*/\nEditorState.lineSeparator = lineSeparator;\n/**\nThis facet controls the value of the\n[`readOnly`](https://codemirror.net/6/docs/ref/#state.EditorState.readOnly) getter, which is\nconsulted by commands and extensions that implement editing\nfunctionality to determine whether they should apply. It\ndefaults to false, but when its highest-precedence value is\n`true`, such functionality disables itself.\n\nNot to be confused with\n[`EditorView.editable`](https://codemirror.net/6/docs/ref/#view.EditorView^editable), which\ncontrols whether the editor's DOM is set to be editable (and\nthus focusable).\n*/\nEditorState.readOnly = readOnly;\n/**\nRegisters translation phrases. The\n[`phrase`](https://codemirror.net/6/docs/ref/#state.EditorState.phrase) method will look through\nall objects registered with this facet to find translations for\nits argument.\n*/\nEditorState.phrases = /*@__PURE__*/Facet.define({\n compare(a, b) {\n let kA = Object.keys(a), kB = Object.keys(b);\n return kA.length == kB.length && kA.every(k => a[k] == b[k]);\n }\n});\n/**\nA facet used to register [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt) providers.\n*/\nEditorState.languageData = languageData;\n/**\nFacet used to register change filters, which are called for each\ntransaction (unless explicitly\n[disabled](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter)), and can suppress\npart of the transaction's changes.\n\nSuch a function can return `true` to indicate that it doesn't\nwant to do anything, `false` to completely stop the changes in\nthe transaction, or a set of ranges in which changes should be\nsuppressed. Such ranges are represented as an array of numbers,\nwith each pair of two numbers indicating the start and end of a\nrange. So for example `[10, 20, 100, 110]` suppresses changes\nbetween 10 and 20, and between 100 and 110.\n*/\nEditorState.changeFilter = changeFilter;\n/**\nFacet used to register a hook that gets a chance to update or\nreplace transaction specs before they are applied. This will\nonly be applied for transactions that don't have\n[`filter`](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter) set to `false`. You\ncan either return a single transaction spec (possibly the input\ntransaction), or an array of specs (which will be combined in\nthe same way as the arguments to\n[`EditorState.update`](https://codemirror.net/6/docs/ref/#state.EditorState.update)).\n\nWhen possible, it is recommended to avoid accessing\n[`Transaction.state`](https://codemirror.net/6/docs/ref/#state.Transaction.state) in a filter,\nsince it will force creation of a state that will then be\ndiscarded again, if the transaction is actually filtered.\n\n(This functionality should be used with care. Indiscriminately\nmodifying transaction is likely to break something or degrade\nthe user experience.)\n*/\nEditorState.transactionFilter = transactionFilter;\n/**\nThis is a more limited form of\n[`transactionFilter`](https://codemirror.net/6/docs/ref/#state.EditorState^transactionFilter),\nwhich can only add\n[annotations](https://codemirror.net/6/docs/ref/#state.TransactionSpec.annotations) and\n[effects](https://codemirror.net/6/docs/ref/#state.TransactionSpec.effects). _But_, this type\nof filter runs even if the transaction has disabled regular\n[filtering](https://codemirror.net/6/docs/ref/#state.TransactionSpec.filter), making it suitable\nfor effects that don't need to touch the changes or selection,\nbut do want to process every transaction.\n\nExtenders run _after_ filters, when both are present.\n*/\nEditorState.transactionExtender = transactionExtender;\nCompartment.reconfigure = /*@__PURE__*/StateEffect.define();\n\n/**\nUtility function for combining behaviors to fill in a config\nobject from an array of provided configs. `defaults` should hold\ndefault values for all optional fields in `Config`.\n\nThe function will, by default, error\nwhen a field gets two values that aren't `===`-equal, but you can\nprovide combine functions per field to do something else.\n*/\nfunction combineConfig(configs, defaults, // Should hold only the optional properties of Config, but I haven't managed to express that\ncombine = {}) {\n let result = {};\n for (let config of configs)\n for (let key of Object.keys(config)) {\n let value = config[key], current = result[key];\n if (current === undefined)\n result[key] = value;\n else if (current === value || value === undefined) ; // No conflict\n else if (Object.hasOwnProperty.call(combine, key))\n result[key] = combine[key](current, value);\n else\n throw new Error(\"Config merge conflict for field \" + key);\n }\n for (let key in defaults)\n if (result[key] === undefined)\n result[key] = defaults[key];\n return result;\n}\n\n/**\nEach range is associated with a value, which must inherit from\nthis class.\n*/\nclass RangeValue {\n /**\n Compare this value with another value. Used when comparing\n rangesets. The default implementation compares by identity.\n Unless you are only creating a fixed number of unique instances\n of your value type, it is a good idea to implement this\n properly.\n */\n eq(other) { return this == other; }\n /**\n Create a [range](https://codemirror.net/6/docs/ref/#state.Range) with this value.\n */\n range(from, to = from) { return Range.create(from, to, this); }\n}\nRangeValue.prototype.startSide = RangeValue.prototype.endSide = 0;\nRangeValue.prototype.point = false;\nRangeValue.prototype.mapMode = MapMode.TrackDel;\n/**\nA range associates a value with a range of positions.\n*/\nclass Range {\n constructor(\n /**\n The range's start position.\n */\n from, \n /**\n Its end position.\n */\n to, \n /**\n The value associated with this range.\n */\n value) {\n this.from = from;\n this.to = to;\n this.value = value;\n }\n /**\n @internal\n */\n static create(from, to, value) {\n return new Range(from, to, value);\n }\n}\nfunction cmpRange(a, b) {\n return a.from - b.from || a.value.startSide - b.value.startSide;\n}\nclass Chunk {\n constructor(from, to, value, \n // Chunks are marked with the largest point that occurs\n // in them (or -1 for no points), so that scans that are\n // only interested in points (such as the\n // heightmap-related logic) can skip range-only chunks.\n maxPoint) {\n this.from = from;\n this.to = to;\n this.value = value;\n this.maxPoint = maxPoint;\n }\n get length() { return this.to[this.to.length - 1]; }\n // Find the index of the given position and side. Use the ranges'\n // `from` pos when `end == false`, `to` when `end == true`.\n findIndex(pos, side, end, startAt = 0) {\n let arr = end ? this.to : this.from;\n for (let lo = startAt, hi = arr.length;;) {\n if (lo == hi)\n return lo;\n let mid = (lo + hi) >> 1;\n let diff = arr[mid] - pos || (end ? this.value[mid].endSide : this.value[mid].startSide) - side;\n if (mid == lo)\n return diff >= 0 ? lo : hi;\n if (diff >= 0)\n hi = mid;\n else\n lo = mid + 1;\n }\n }\n between(offset, from, to, f) {\n for (let i = this.findIndex(from, -1000000000 /* C.Far */, true), e = this.findIndex(to, 1000000000 /* C.Far */, false, i); i < e; i++)\n if (f(this.from[i] + offset, this.to[i] + offset, this.value[i]) === false)\n return false;\n }\n map(offset, changes) {\n let value = [], from = [], to = [], newPos = -1, maxPoint = -1;\n for (let i = 0; i < this.value.length; i++) {\n let val = this.value[i], curFrom = this.from[i] + offset, curTo = this.to[i] + offset, newFrom, newTo;\n if (curFrom == curTo) {\n let mapped = changes.mapPos(curFrom, val.startSide, val.mapMode);\n if (mapped == null)\n continue;\n newFrom = newTo = mapped;\n if (val.startSide != val.endSide) {\n newTo = changes.mapPos(curFrom, val.endSide);\n if (newTo < newFrom)\n continue;\n }\n }\n else {\n newFrom = changes.mapPos(curFrom, val.startSide);\n newTo = changes.mapPos(curTo, val.endSide);\n if (newFrom > newTo || newFrom == newTo && val.startSide > 0 && val.endSide <= 0)\n continue;\n }\n if ((newTo - newFrom || val.endSide - val.startSide) < 0)\n continue;\n if (newPos < 0)\n newPos = newFrom;\n if (val.point)\n maxPoint = Math.max(maxPoint, newTo - newFrom);\n value.push(val);\n from.push(newFrom - newPos);\n to.push(newTo - newPos);\n }\n return { mapped: value.length ? new Chunk(from, to, value, maxPoint) : null, pos: newPos };\n }\n}\n/**\nA range set stores a collection of [ranges](https://codemirror.net/6/docs/ref/#state.Range) in a\nway that makes them efficient to [map](https://codemirror.net/6/docs/ref/#state.RangeSet.map) and\n[update](https://codemirror.net/6/docs/ref/#state.RangeSet.update). This is an immutable data\nstructure.\n*/\nclass RangeSet {\n constructor(\n /**\n @internal\n */\n chunkPos, \n /**\n @internal\n */\n chunk, \n /**\n @internal\n */\n nextLayer, \n /**\n @internal\n */\n maxPoint) {\n this.chunkPos = chunkPos;\n this.chunk = chunk;\n this.nextLayer = nextLayer;\n this.maxPoint = maxPoint;\n }\n /**\n @internal\n */\n static create(chunkPos, chunk, nextLayer, maxPoint) {\n return new RangeSet(chunkPos, chunk, nextLayer, maxPoint);\n }\n /**\n @internal\n */\n get length() {\n let last = this.chunk.length - 1;\n return last < 0 ? 0 : Math.max(this.chunkEnd(last), this.nextLayer.length);\n }\n /**\n The number of ranges in the set.\n */\n get size() {\n if (this.isEmpty)\n return 0;\n let size = this.nextLayer.size;\n for (let chunk of this.chunk)\n size += chunk.value.length;\n return size;\n }\n /**\n @internal\n */\n chunkEnd(index) {\n return this.chunkPos[index] + this.chunk[index].length;\n }\n /**\n Update the range set, optionally adding new ranges or filtering\n out existing ones.\n \n (Note: The type parameter is just there as a kludge to work\n around TypeScript variance issues that prevented `RangeSet`\n from being a subtype of `RangeSet` when `X` is a subtype of\n `Y`.)\n */\n update(updateSpec) {\n let { add = [], sort = false, filterFrom = 0, filterTo = this.length } = updateSpec;\n let filter = updateSpec.filter;\n if (add.length == 0 && !filter)\n return this;\n if (sort)\n add = add.slice().sort(cmpRange);\n if (this.isEmpty)\n return add.length ? RangeSet.of(add) : this;\n let cur = new LayerCursor(this, null, -1).goto(0), i = 0, spill = [];\n let builder = new RangeSetBuilder();\n while (cur.value || i < add.length) {\n if (i < add.length && (cur.from - add[i].from || cur.startSide - add[i].value.startSide) >= 0) {\n let range = add[i++];\n if (!builder.addInner(range.from, range.to, range.value))\n spill.push(range);\n }\n else if (cur.rangeIndex == 1 && cur.chunkIndex < this.chunk.length &&\n (i == add.length || this.chunkEnd(cur.chunkIndex) < add[i].from) &&\n (!filter || filterFrom > this.chunkEnd(cur.chunkIndex) || filterTo < this.chunkPos[cur.chunkIndex]) &&\n builder.addChunk(this.chunkPos[cur.chunkIndex], this.chunk[cur.chunkIndex])) {\n cur.nextChunk();\n }\n else {\n if (!filter || filterFrom > cur.to || filterTo < cur.from || filter(cur.from, cur.to, cur.value)) {\n if (!builder.addInner(cur.from, cur.to, cur.value))\n spill.push(Range.create(cur.from, cur.to, cur.value));\n }\n cur.next();\n }\n }\n return builder.finishInner(this.nextLayer.isEmpty && !spill.length ? RangeSet.empty\n : this.nextLayer.update({ add: spill, filter, filterFrom, filterTo }));\n }\n /**\n Map this range set through a set of changes, return the new set.\n */\n map(changes) {\n if (changes.empty || this.isEmpty)\n return this;\n let chunks = [], chunkPos = [], maxPoint = -1;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n let touch = changes.touchesRange(start, start + chunk.length);\n if (touch === false) {\n maxPoint = Math.max(maxPoint, chunk.maxPoint);\n chunks.push(chunk);\n chunkPos.push(changes.mapPos(start));\n }\n else if (touch === true) {\n let { mapped, pos } = chunk.map(start, changes);\n if (mapped) {\n maxPoint = Math.max(maxPoint, mapped.maxPoint);\n chunks.push(mapped);\n chunkPos.push(pos);\n }\n }\n }\n let next = this.nextLayer.map(changes);\n return chunks.length == 0 ? next : new RangeSet(chunkPos, chunks, next || RangeSet.empty, maxPoint);\n }\n /**\n Iterate over the ranges that touch the region `from` to `to`,\n calling `f` for each. There is no guarantee that the ranges will\n be reported in any specific order. When the callback returns\n `false`, iteration stops.\n */\n between(from, to, f) {\n if (this.isEmpty)\n return;\n for (let i = 0; i < this.chunk.length; i++) {\n let start = this.chunkPos[i], chunk = this.chunk[i];\n if (to >= start && from <= start + chunk.length &&\n chunk.between(start, from - start, to - start, f) === false)\n return;\n }\n this.nextLayer.between(from, to, f);\n }\n /**\n Iterate over the ranges in this set, in order, including all\n ranges that end at or after `from`.\n */\n iter(from = 0) {\n return HeapCursor.from([this]).goto(from);\n }\n /**\n @internal\n */\n get isEmpty() { return this.nextLayer == this; }\n /**\n Iterate over the ranges in a collection of sets, in order,\n starting from `from`.\n */\n static iter(sets, from = 0) {\n return HeapCursor.from(sets).goto(from);\n }\n /**\n Iterate over two groups of sets, calling methods on `comparator`\n to notify it of possible differences.\n */\n static compare(oldSets, newSets, \n /**\n This indicates how the underlying data changed between these\n ranges, and is needed to synchronize the iteration.\n */\n textDiff, comparator, \n /**\n Can be used to ignore all non-point ranges, and points below\n the given size. When -1, all ranges are compared.\n */\n minPointSize = -1) {\n let a = oldSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let b = newSets.filter(set => set.maxPoint > 0 || !set.isEmpty && set.maxPoint >= minPointSize);\n let sharedChunks = findSharedChunks(a, b, textDiff);\n let sideA = new SpanCursor(a, sharedChunks, minPointSize);\n let sideB = new SpanCursor(b, sharedChunks, minPointSize);\n textDiff.iterGaps((fromA, fromB, length) => compare(sideA, fromA, sideB, fromB, length, comparator));\n if (textDiff.empty && textDiff.length == 0)\n compare(sideA, 0, sideB, 0, 0, comparator);\n }\n /**\n Compare the contents of two groups of range sets, returning true\n if they are equivalent in the given range.\n */\n static eq(oldSets, newSets, from = 0, to) {\n if (to == null)\n to = 1000000000 /* C.Far */ - 1;\n let a = oldSets.filter(set => !set.isEmpty && newSets.indexOf(set) < 0);\n let b = newSets.filter(set => !set.isEmpty && oldSets.indexOf(set) < 0);\n if (a.length != b.length)\n return false;\n if (!a.length)\n return true;\n let sharedChunks = findSharedChunks(a, b);\n let sideA = new SpanCursor(a, sharedChunks, 0).goto(from), sideB = new SpanCursor(b, sharedChunks, 0).goto(from);\n for (;;) {\n if (sideA.to != sideB.to ||\n !sameValues(sideA.active, sideB.active) ||\n sideA.point && (!sideB.point || !sideA.point.eq(sideB.point)))\n return false;\n if (sideA.to > to)\n return true;\n sideA.next();\n sideB.next();\n }\n }\n /**\n Iterate over a group of range sets at the same time, notifying\n the iterator about the ranges covering every given piece of\n content. Returns the open count (see\n [`SpanIterator.span`](https://codemirror.net/6/docs/ref/#state.SpanIterator.span)) at the end\n of the iteration.\n */\n static spans(sets, from, to, iterator, \n /**\n When given and greater than -1, only points of at least this\n size are taken into account.\n */\n minPointSize = -1) {\n let cursor = new SpanCursor(sets, null, minPointSize).goto(from), pos = from;\n let openRanges = cursor.openStart;\n for (;;) {\n let curTo = Math.min(cursor.to, to);\n if (cursor.point) {\n let active = cursor.activeForPoint(cursor.to);\n let openCount = cursor.pointFrom < from ? active.length + 1\n : cursor.point.startSide < 0 ? active.length\n : Math.min(active.length, openRanges);\n iterator.point(pos, curTo, cursor.point, active, openCount, cursor.pointRank);\n openRanges = Math.min(cursor.openEnd(curTo), active.length);\n }\n else if (curTo > pos) {\n iterator.span(pos, curTo, cursor.active, openRanges);\n openRanges = cursor.openEnd(curTo);\n }\n if (cursor.to > to)\n return openRanges + (cursor.point && cursor.to > to ? 1 : 0);\n pos = cursor.to;\n cursor.next();\n }\n }\n /**\n Create a range set for the given range or array of ranges. By\n default, this expects the ranges to be _sorted_ (by start\n position and, if two start at the same position,\n `value.startSide`). You can pass `true` as second argument to\n cause the method to sort them.\n */\n static of(ranges, sort = false) {\n let build = new RangeSetBuilder();\n for (let range of ranges instanceof Range ? [ranges] : sort ? lazySort(ranges) : ranges)\n build.add(range.from, range.to, range.value);\n return build.finish();\n }\n /**\n Join an array of range sets into a single set.\n */\n static join(sets) {\n if (!sets.length)\n return RangeSet.empty;\n let result = sets[sets.length - 1];\n for (let i = sets.length - 2; i >= 0; i--) {\n for (let layer = sets[i]; layer != RangeSet.empty; layer = layer.nextLayer)\n result = new RangeSet(layer.chunkPos, layer.chunk, result, Math.max(layer.maxPoint, result.maxPoint));\n }\n return result;\n }\n}\n/**\nThe empty set of ranges.\n*/\nRangeSet.empty = /*@__PURE__*/new RangeSet([], [], null, -1);\nfunction lazySort(ranges) {\n if (ranges.length > 1)\n for (let prev = ranges[0], i = 1; i < ranges.length; i++) {\n let cur = ranges[i];\n if (cmpRange(prev, cur) > 0)\n return ranges.slice().sort(cmpRange);\n prev = cur;\n }\n return ranges;\n}\nRangeSet.empty.nextLayer = RangeSet.empty;\n/**\nA range set builder is a data structure that helps build up a\n[range set](https://codemirror.net/6/docs/ref/#state.RangeSet) directly, without first allocating\nan array of [`Range`](https://codemirror.net/6/docs/ref/#state.Range) objects.\n*/\nclass RangeSetBuilder {\n finishChunk(newArrays) {\n this.chunks.push(new Chunk(this.from, this.to, this.value, this.maxPoint));\n this.chunkPos.push(this.chunkStart);\n this.chunkStart = -1;\n this.setMaxPoint = Math.max(this.setMaxPoint, this.maxPoint);\n this.maxPoint = -1;\n if (newArrays) {\n this.from = [];\n this.to = [];\n this.value = [];\n }\n }\n /**\n Create an empty builder.\n */\n constructor() {\n this.chunks = [];\n this.chunkPos = [];\n this.chunkStart = -1;\n this.last = null;\n this.lastFrom = -1000000000 /* C.Far */;\n this.lastTo = -1000000000 /* C.Far */;\n this.from = [];\n this.to = [];\n this.value = [];\n this.maxPoint = -1;\n this.setMaxPoint = -1;\n this.nextLayer = null;\n }\n /**\n Add a range. Ranges should be added in sorted (by `from` and\n `value.startSide`) order.\n */\n add(from, to, value) {\n if (!this.addInner(from, to, value))\n (this.nextLayer || (this.nextLayer = new RangeSetBuilder)).add(from, to, value);\n }\n /**\n @internal\n */\n addInner(from, to, value) {\n let diff = from - this.lastTo || value.startSide - this.last.endSide;\n if (diff <= 0 && (from - this.lastFrom || value.startSide - this.last.startSide) < 0)\n throw new Error(\"Ranges must be added sorted by `from` position and `startSide`\");\n if (diff < 0)\n return false;\n if (this.from.length == 250 /* C.ChunkSize */)\n this.finishChunk(true);\n if (this.chunkStart < 0)\n this.chunkStart = from;\n this.from.push(from - this.chunkStart);\n this.to.push(to - this.chunkStart);\n this.last = value;\n this.lastFrom = from;\n this.lastTo = to;\n this.value.push(value);\n if (value.point)\n this.maxPoint = Math.max(this.maxPoint, to - from);\n return true;\n }\n /**\n @internal\n */\n addChunk(from, chunk) {\n if ((from - this.lastTo || chunk.value[0].startSide - this.last.endSide) < 0)\n return false;\n if (this.from.length)\n this.finishChunk(true);\n this.setMaxPoint = Math.max(this.setMaxPoint, chunk.maxPoint);\n this.chunks.push(chunk);\n this.chunkPos.push(from);\n let last = chunk.value.length - 1;\n this.last = chunk.value[last];\n this.lastFrom = chunk.from[last] + from;\n this.lastTo = chunk.to[last] + from;\n return true;\n }\n /**\n Finish the range set. Returns the new set. The builder can't be\n used anymore after this has been called.\n */\n finish() { return this.finishInner(RangeSet.empty); }\n /**\n @internal\n */\n finishInner(next) {\n if (this.from.length)\n this.finishChunk(false);\n if (this.chunks.length == 0)\n return next;\n let result = RangeSet.create(this.chunkPos, this.chunks, this.nextLayer ? this.nextLayer.finishInner(next) : next, this.setMaxPoint);\n this.from = null; // Make sure further `add` calls produce errors\n return result;\n }\n}\nfunction findSharedChunks(a, b, textDiff) {\n let inA = new Map();\n for (let set of a)\n for (let i = 0; i < set.chunk.length; i++)\n if (set.chunk[i].maxPoint <= 0)\n inA.set(set.chunk[i], set.chunkPos[i]);\n let shared = new Set();\n for (let set of b)\n for (let i = 0; i < set.chunk.length; i++) {\n let known = inA.get(set.chunk[i]);\n if (known != null && (textDiff ? textDiff.mapPos(known) : known) == set.chunkPos[i] &&\n !(textDiff === null || textDiff === void 0 ? void 0 : textDiff.touchesRange(known, known + set.chunk[i].length)))\n shared.add(set.chunk[i]);\n }\n return shared;\n}\nclass LayerCursor {\n constructor(layer, skip, minPoint, rank = 0) {\n this.layer = layer;\n this.skip = skip;\n this.minPoint = minPoint;\n this.rank = rank;\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n get endSide() { return this.value ? this.value.endSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.chunkIndex = this.rangeIndex = 0;\n this.gotoInner(pos, side, false);\n return this;\n }\n gotoInner(pos, side, forward) {\n while (this.chunkIndex < this.layer.chunk.length) {\n let next = this.layer.chunk[this.chunkIndex];\n if (!(this.skip && this.skip.has(next) ||\n this.layer.chunkEnd(this.chunkIndex) < pos ||\n next.maxPoint < this.minPoint))\n break;\n this.chunkIndex++;\n forward = false;\n }\n if (this.chunkIndex < this.layer.chunk.length) {\n let rangeIndex = this.layer.chunk[this.chunkIndex].findIndex(pos - this.layer.chunkPos[this.chunkIndex], side, true);\n if (!forward || this.rangeIndex < rangeIndex)\n this.setRangeIndex(rangeIndex);\n }\n this.next();\n }\n forward(pos, side) {\n if ((this.to - pos || this.endSide - side) < 0)\n this.gotoInner(pos, side, true);\n }\n next() {\n for (;;) {\n if (this.chunkIndex == this.layer.chunk.length) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n break;\n }\n else {\n let chunkPos = this.layer.chunkPos[this.chunkIndex], chunk = this.layer.chunk[this.chunkIndex];\n let from = chunkPos + chunk.from[this.rangeIndex];\n this.from = from;\n this.to = chunkPos + chunk.to[this.rangeIndex];\n this.value = chunk.value[this.rangeIndex];\n this.setRangeIndex(this.rangeIndex + 1);\n if (this.minPoint < 0 || this.value.point && this.to - this.from >= this.minPoint)\n break;\n }\n }\n }\n setRangeIndex(index) {\n if (index == this.layer.chunk[this.chunkIndex].value.length) {\n this.chunkIndex++;\n if (this.skip) {\n while (this.chunkIndex < this.layer.chunk.length && this.skip.has(this.layer.chunk[this.chunkIndex]))\n this.chunkIndex++;\n }\n this.rangeIndex = 0;\n }\n else {\n this.rangeIndex = index;\n }\n }\n nextChunk() {\n this.chunkIndex++;\n this.rangeIndex = 0;\n this.next();\n }\n compare(other) {\n return this.from - other.from || this.startSide - other.startSide || this.rank - other.rank ||\n this.to - other.to || this.endSide - other.endSide;\n }\n}\nclass HeapCursor {\n constructor(heap) {\n this.heap = heap;\n }\n static from(sets, skip = null, minPoint = -1) {\n let heap = [];\n for (let i = 0; i < sets.length; i++) {\n for (let cur = sets[i]; !cur.isEmpty; cur = cur.nextLayer) {\n if (cur.maxPoint >= minPoint)\n heap.push(new LayerCursor(cur, skip, minPoint, i));\n }\n }\n return heap.length == 1 ? heap[0] : new HeapCursor(heap);\n }\n get startSide() { return this.value ? this.value.startSide : 0; }\n goto(pos, side = -1000000000 /* C.Far */) {\n for (let cur of this.heap)\n cur.goto(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n this.next();\n return this;\n }\n forward(pos, side) {\n for (let cur of this.heap)\n cur.forward(pos, side);\n for (let i = this.heap.length >> 1; i >= 0; i--)\n heapBubble(this.heap, i);\n if ((this.to - pos || this.value.endSide - side) < 0)\n this.next();\n }\n next() {\n if (this.heap.length == 0) {\n this.from = this.to = 1000000000 /* C.Far */;\n this.value = null;\n this.rank = -1;\n }\n else {\n let top = this.heap[0];\n this.from = top.from;\n this.to = top.to;\n this.value = top.value;\n this.rank = top.rank;\n if (top.value)\n top.next();\n heapBubble(this.heap, 0);\n }\n }\n}\nfunction heapBubble(heap, index) {\n for (let cur = heap[index];;) {\n let childIndex = (index << 1) + 1;\n if (childIndex >= heap.length)\n break;\n let child = heap[childIndex];\n if (childIndex + 1 < heap.length && child.compare(heap[childIndex + 1]) >= 0) {\n child = heap[childIndex + 1];\n childIndex++;\n }\n if (cur.compare(child) < 0)\n break;\n heap[childIndex] = cur;\n heap[index] = child;\n index = childIndex;\n }\n}\nclass SpanCursor {\n constructor(sets, skip, minPoint) {\n this.minPoint = minPoint;\n this.active = [];\n this.activeTo = [];\n this.activeRank = [];\n this.minActive = -1;\n // A currently active point range, if any\n this.point = null;\n this.pointFrom = 0;\n this.pointRank = 0;\n this.to = -1000000000 /* C.Far */;\n this.endSide = 0;\n // The amount of open active ranges at the start of the iterator.\n // Not including points.\n this.openStart = -1;\n this.cursor = HeapCursor.from(sets, skip, minPoint);\n }\n goto(pos, side = -1000000000 /* C.Far */) {\n this.cursor.goto(pos, side);\n this.active.length = this.activeTo.length = this.activeRank.length = 0;\n this.minActive = -1;\n this.to = pos;\n this.endSide = side;\n this.openStart = -1;\n this.next();\n return this;\n }\n forward(pos, side) {\n while (this.minActive > -1 && (this.activeTo[this.minActive] - pos || this.active[this.minActive].endSide - side) < 0)\n this.removeActive(this.minActive);\n this.cursor.forward(pos, side);\n }\n removeActive(index) {\n remove(this.active, index);\n remove(this.activeTo, index);\n remove(this.activeRank, index);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n addActive(trackOpen) {\n let i = 0, { value, to, rank } = this.cursor;\n // Organize active marks by rank first, then by size\n while (i < this.activeRank.length && (rank - this.activeRank[i] || to - this.activeTo[i]) > 0)\n i++;\n insert(this.active, i, value);\n insert(this.activeTo, i, to);\n insert(this.activeRank, i, rank);\n if (trackOpen)\n insert(trackOpen, i, this.cursor.from);\n this.minActive = findMinIndex(this.active, this.activeTo);\n }\n // After calling this, if `this.point` != null, the next range is a\n // point. Otherwise, it's a regular range, covered by `this.active`.\n next() {\n let from = this.to, wasPoint = this.point;\n this.point = null;\n let trackOpen = this.openStart < 0 ? [] : null;\n for (;;) {\n let a = this.minActive;\n if (a > -1 && (this.activeTo[a] - this.cursor.from || this.active[a].endSide - this.cursor.startSide) < 0) {\n if (this.activeTo[a] > from) {\n this.to = this.activeTo[a];\n this.endSide = this.active[a].endSide;\n break;\n }\n this.removeActive(a);\n if (trackOpen)\n remove(trackOpen, a);\n }\n else if (!this.cursor.value) {\n this.to = this.endSide = 1000000000 /* C.Far */;\n break;\n }\n else if (this.cursor.from > from) {\n this.to = this.cursor.from;\n this.endSide = this.cursor.startSide;\n break;\n }\n else {\n let nextVal = this.cursor.value;\n if (!nextVal.point) { // Opening a range\n this.addActive(trackOpen);\n this.cursor.next();\n }\n else if (wasPoint && this.cursor.to == this.to && this.cursor.from < this.cursor.to) {\n // Ignore any non-empty points that end precisely at the end of the prev point\n this.cursor.next();\n }\n else { // New point\n this.point = nextVal;\n this.pointFrom = this.cursor.from;\n this.pointRank = this.cursor.rank;\n this.to = this.cursor.to;\n this.endSide = nextVal.endSide;\n this.cursor.next();\n this.forward(this.to, this.endSide);\n break;\n }\n }\n }\n if (trackOpen) {\n this.openStart = 0;\n for (let i = trackOpen.length - 1; i >= 0 && trackOpen[i] < from; i--)\n this.openStart++;\n }\n }\n activeForPoint(to) {\n if (!this.active.length)\n return this.active;\n let active = [];\n for (let i = this.active.length - 1; i >= 0; i--) {\n if (this.activeRank[i] < this.pointRank)\n break;\n if (this.activeTo[i] > to || this.activeTo[i] == to && this.active[i].endSide >= this.point.endSide)\n active.push(this.active[i]);\n }\n return active.reverse();\n }\n openEnd(to) {\n let open = 0;\n for (let i = this.activeTo.length - 1; i >= 0 && this.activeTo[i] > to; i--)\n open++;\n return open;\n }\n}\nfunction compare(a, startA, b, startB, length, comparator) {\n a.goto(startA);\n b.goto(startB);\n let endB = startB + length;\n let pos = startB, dPos = startB - startA;\n for (;;) {\n let dEnd = (a.to + dPos) - b.to, diff = dEnd || a.endSide - b.endSide;\n let end = diff < 0 ? a.to + dPos : b.to, clipEnd = Math.min(end, endB);\n if (a.point || b.point) {\n if (!(a.point && b.point && (a.point == b.point || a.point.eq(b.point)) &&\n sameValues(a.activeForPoint(a.to), b.activeForPoint(b.to))))\n comparator.comparePoint(pos, clipEnd, a.point, b.point);\n }\n else {\n if (clipEnd > pos && !sameValues(a.active, b.active))\n comparator.compareRange(pos, clipEnd, a.active, b.active);\n }\n if (end > endB)\n break;\n if ((dEnd || a.openEnd != b.openEnd) && comparator.boundChange)\n comparator.boundChange(end);\n pos = end;\n if (diff <= 0)\n a.next();\n if (diff >= 0)\n b.next();\n }\n}\nfunction sameValues(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (a[i] != b[i] && !a[i].eq(b[i]))\n return false;\n return true;\n}\nfunction remove(array, index) {\n for (let i = index, e = array.length - 1; i < e; i++)\n array[i] = array[i + 1];\n array.pop();\n}\nfunction insert(array, index, value) {\n for (let i = array.length - 1; i >= index; i--)\n array[i + 1] = array[i];\n array[index] = value;\n}\nfunction findMinIndex(value, array) {\n let found = -1, foundPos = 1000000000 /* C.Far */;\n for (let i = 0; i < array.length; i++)\n if ((array[i] - foundPos || value[i].endSide - value[found].endSide) < 0) {\n found = i;\n foundPos = array[i];\n }\n return found;\n}\n\n/**\nCount the column position at the given offset into the string,\ntaking extending characters and tab size into account.\n*/\nfunction countColumn(string, tabSize, to = string.length) {\n let n = 0;\n for (let i = 0; i < to && i < string.length;) {\n if (string.charCodeAt(i) == 9) {\n n += tabSize - (n % tabSize);\n i++;\n }\n else {\n n++;\n i = findClusterBreak(string, i);\n }\n }\n return n;\n}\n/**\nFind the offset that corresponds to the given column position in a\nstring, taking extending characters and tab size into account. By\ndefault, the string length is returned when it is too short to\nreach the column. Pass `strict` true to make it return -1 in that\nsituation.\n*/\nfunction findColumn(string, col, tabSize, strict) {\n for (let i = 0, n = 0;;) {\n if (n >= col)\n return i;\n if (i == string.length)\n break;\n n += string.charCodeAt(i) == 9 ? tabSize - (n % tabSize) : 1;\n i = findClusterBreak(string, i);\n }\n return strict === true ? -1 : string.length;\n}\n\nexport { Annotation, AnnotationType, ChangeDesc, ChangeSet, CharCategory, Compartment, EditorSelection, EditorState, Facet, Line, MapMode, Prec, Range, RangeSet, RangeSetBuilder, RangeValue, SelectionRange, StateEffect, StateEffectType, StateField, Text, Transaction, codePointAt, codePointSize, combineConfig, countColumn, findClusterBreak, findColumn, fromCodePoint };\n","const C = \"\\u037c\"\nconst COUNT = typeof Symbol == \"undefined\" ? \"__\" + C : Symbol.for(C)\nconst SET = typeof Symbol == \"undefined\" ? \"__styleSet\" + Math.floor(Math.random() * 1e8) : Symbol(\"styleSet\")\nconst top = typeof globalThis != \"undefined\" ? globalThis : typeof window != \"undefined\" ? window : {}\n\n// :: - Style modules encapsulate a set of CSS rules defined from\n// JavaScript. Their definitions are only available in a given DOM\n// root after it has been _mounted_ there with `StyleModule.mount`.\n//\n// Style modules should be created once and stored somewhere, as\n// opposed to re-creating them every time you need them. The amount of\n// CSS rules generated for a given DOM root is bounded by the amount\n// of style modules that were used. So to avoid leaking rules, don't\n// create these dynamically, but treat them as one-time allocations.\nexport class StyleModule {\n // :: (Object\n"],"names":["rangeFrom","rangeTo","numbers","s","i","n","isExtendingChar","code","from","to","mid","isRegionalIndicator","ZWJ","findClusterBreak","str","pos","forward","includeExtending","nextClusterBreak","prevClusterBreak","surrogateLow","surrogateHigh","prev","codePointAt","codePointSize","next","countBefore","found","code0","code1","ch","Text","text","clip","parts","TextNode","other","start","end","a","RawTextCursor","b","skip","dir","PartialTextCursor","inner","LineCursor","lines","TextLeaf","length","textLength","target","isLine","line","offset","string","Line","open","sliceText","joined","appendText","newLen","lineSep","result","part","len","children","child","endLine","childOpen","updated","totalLines","copy","iA","iB","eA","eB","chA","chB","l","flat","chunk","maxChunk","minChunk","chunked","currentLines","currentLen","currentChunk","add","last","node","flush","first","top","offsetValue","size","limit","value","done","lineBreak","number","findClusterBreak$1","fromCodePoint","DefaultSplit","MapMode","ChangeDesc","sections","ins","f","posA","posB","individual","iterChanges","composeSets","before","mapSet","assoc","mode","endA","json","ChangeSet","inserted","doc","fromA","toA","fromB","_toB","index","ranges","resultSections","resultInserted","filteredSections","iter","SectionIter","addSection","addInsert","changes","total","force","set","process","spec","sub","insert","insText","insLen","e","forceJoin","values","desc","endB","setA","setB","mkSet","piece","left","sectionLen","insB","SelectionRange","flags","level","change","EditorSelection","head","includeAssoc","mainIndex","r","range","main","which","anchor","bidiLevel","goalColumn","checkSelection","selection","docLength","nextID","Facet","combine","compareInput","compare","isStatic","enables","config","sameArray","FacetProvider","deps","get","field","x","state","dependencies","facet","type","addresses","_a","getter","id","idx","multi","depDoc","depSel","depAddrs","dep","tr","ensureAll","newVal","compareArray","oldState","oldAddr","oldVal","getAddr","StateField","addrs","changed","addr","ensureAddr","dynamicFacetSlot","providers","providerAddrs","p","providerTypes","dynamic","val","depChanged","oldProviders","oldValue","initField","createF","updateF","compareF","init","oldInit","reInit","create","Prec_","prec","ext","PrecExtension","Prec","Compartment","CompartmentInstance","content","compartment","Configuration","base","compartments","dynamicSlots","address","staticValues","facets","fields","newCompartments","flatten","oldFacets","extension","seen","known","status","languageData","allowMultipleSelections","v","lineSeparator","changeFilter","transactionFilter","transactionExtender","readOnly","Annotation","AnnotationType","StateEffectType","map","StateEffect","mapping","mapped","effects","effect","Transaction","startState","annotations","scrollIntoView","ann","event","joinRanges","mergeTransaction","sequential","mapForA","mapForB","resolveTransactionInner","docSize","sel","asArray","resolveTransaction","specs","filter","seq","extendTransaction","filterTransaction","back","filtered","filters","extenders","none","CharCategory","nonASCIISingleCaseWordChar","wordChar","hasWordChar","makeCategorizer","wordChars","char","EditorState","computeSlot","require","conf","key","startValues","slot","result1","newChanges","newMapped","j","mapBy","prop","fieldInit","configuration","phrase","m","name","side","provider","at","cat","kA","kB","k","combineConfig","configs","defaults","current","RangeValue","Range","Range$1","cmpRange","Chunk","maxPoint","startAt","arr","lo","hi","diff","newPos","curFrom","curTo","newFrom","newTo","RangeSet","chunkPos","nextLayer","updateSpec","sort","filterFrom","filterTo","cur","LayerCursor","spill","builder","RangeSetBuilder","chunks","touch","HeapCursor","sets","oldSets","newSets","textDiff","comparator","minPointSize","sharedChunks","findSharedChunks","sideA","SpanCursor","sideB","sameValues","iterator","cursor","openRanges","active","openCount","build","lazySort","layer","newArrays","inA","shared","minPoint","rank","rangeIndex","heap","heapBubble","childIndex","remove","findMinIndex","trackOpen","wasPoint","nextVal","startA","startB","dPos","dEnd","clipEnd","array","foundPos","countColumn","tabSize","findColumn","col","strict","C","COUNT","SET","StyleModule","options","finish","splitSelector","selector","render","selectors","isKeyframes","local","isAt","keyframes","root","modules","nonce","StyleSet","adoptedSet","win","adopted","sheet","mod","shift","mac","ie","keyName","ignoreKey","crelt","elt","getSelection","contains","dom","hasSelection","clientRectsFor","textRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","domIndex","isBlockElement","maxOffset","parent","flattenRect","rect","windowRect","vp","getScale","scaleX","scaleY","scrollRectIntoView","y","xMargin","yMargin","ltr","stop","bounding","moveX","moveY","rectHeight","boundingHeight","movedX","movedY","scrollableParents","DOMSelectionState","domSel","anchorNode","focusNode","anchorOffset","focusOffset","preventScrollSupported","focusPreventScroll","stack","scratchRange","dispatchKey","mods","down","up","getRoot","clearAttributes","atElementStart","isScrolledToBottom","textNodeBefore","startNode","startOffset","textNodeAfter","DOMPos","precise","noChildren","ContentView","view","track","contentView","rm$1","_dom","after","bias","fromI","fromStart","toI","toEnd","prevEnd","andParent","childList","_rec","_event","ChildCursor","source","hasStart","openStart","openEnd","replaceRange","fromOff","toOff","breakAtStart","breakAtEnd","mergeChildrenInto","dLen","nav","ie_edge","ie_upto10","ie_11up","gecko","chrome","webkit","safari","ios","browser","MaxJoinLen","TextView","textDOM","_from","_to","textCoords","MarkView","mark","_hasStart","detachFrom","inlineDOMAtPos","coordsInChildren","rects","WidgetView","widget","custom","fromBack","WidgetBufferView","joinInlineInto","beforePos","afterPos","scan","onSameLine","fallbackRect","combineAttrs","noAttrs","attrsEq","ignore","keysA","keysB","updateAttrs","attrs","getAttrs","attr","WidgetType","BlockType","Decoration","startSide","endSide","MarkDecoration","block","PointDecoration","getInclusive","LineDecoration","of","_b","isReplace","widgetsEq","addRange","margin","LineView","deco","cls","hack","totalWidth","textHeight","heightOracle","height","dist","docView","BlockWidgetView","_takeDeco","BlockGapWidget","ContentBuilder","disallowBlockEffectsFor","wrapMarks","take","NullWidget","cursorBefore","cursorAfter","decorations","dynamicDecorationMap","tag","Direction","LTR","RTL","dec","LowTypes","ArabicTypes","Brackets","BracketStack","charType","BidiRE","BidiSpan","order","maybe","span","isolatesEq","types","computeCharTypes","rFrom","rTo","isolates","outerType","iI","prevType","prevStrong","replace","processBracketPairs","oppositeType","sI","context","br","sJ","embed","processNeutrals","beforeL","afterL","jI","fromJ","emitSpans","baseLevel","ourType","iCh","sameDir","isNum","recurse","localLevel","iScan","run","iso","upto","dirSwap","computeSectionOrder","computeOrder","direction","trivialOrder","movedOver","moveVisually","startIndex","spanI","spanEnd","nextI","nextIndex","nextSpan","autoDirection","clickAddsSelectionRange","dragMovesSelection$1","mouseSelectionStyle","exceptionSink","updateListener","inputHandler","focusChangeEffect","clipboardInputFilter","clipboardOutputFilter","perLineTextDirection","nativeSelectionHidden","scrollHandler","ScrollTarget","isSnapshot","t","setEditContextFormatting","logException","exception","handler","editable","nextPluginID","viewPlugin","plugins","ViewPlugin","domEventHandlers","domEventObservers","buildExtensions","arg","eventHandlers","eventObservers","provide","plugin","pluginInst","PluginInstance","update","editorAttributes","contentAttributes","outerDecorations","atomicRanges","bidiIsolatedRanges","getIsolatedRanges","fromDoc","toDoc","scrollMargins","getScrollMargins","right","bottom","styleModule","ChangedRange","toB","me","dI","rI","ViewUpdate","transactions","changedRanges","DocView","readCompositionAt","touchesComposition","composition","findCompositionRange","prevDeco","decoDiff","findChangedDeco","oldLength","observer","cView","gaps","compLine","fix","c","mustRead","fromPointer","activeElt","focused","selectionNotFocus","betweenUneditable","dummy","inUneditable","rawSel","nextTo","nextToUneditable","lineStart","newRange","domView","best","bestPos","childOff","viewport","contentWidth","isWider","widest","childRect","width","measure","lineHeight","charWidth","vs","allDeco","d","dynamicOuter","outerDeco","ref","margins","targetRect","offsetWidth","offsetHeight","findCompositionNode","headPos","textBefore","textAfter","textNode","descAfter","descBefore","inv","marks","parentView","DecorationComparator$1","comp","inside","touched","groupAt","categorize","linePos","getdx","getdy","yOverlap","upTop","upBot","domPosAtCoords","closest","closestRect","closestX","closestY","closestOverlap","above","below","aboveRect","belowRect","dx","dy","domPosInText","clipX","closestOffset","closestDY","generalSide","posAtCoords","coords","docTop","docHeight","yOffset","halfLine","bounced","posAtCoordsImprecise","element","isSuspiciousSafariCaretResult","isSuspiciousChromeCaretResult","nearest","contentRect","into","blockAt","moveToLineBoundary","includeWrap","editorRect","moveByChar","by","spans","check","byGroup","nextCat","moveVertically","distance","startPos","goal","startY","startCoords","resolvedGoal","extra","curY","charRect","skipAtomicRanges","atoms","moved","skipAtoms","oldPos","LineBreakPlaceholder","DOMReader","points","oldLen","nextView","point","re","nextBreak","breakSize","fromView","isAtEnd","DOMPoint","DOMChange","typeOver","iHead","iAnchor","selPoints","selectionPoints","reader","selectionFromPoints","offFrom","offTo","applyDOMChange","domChange","newSel","lastKey","preferredPos","preferredSide","findDiff","applyDOMChangeInner","userEvent","defaultTr","defaultInsert","applyDefaultInsert","h","mainSel","replaced","compositionRange","rangeChanges","selOff","minLen","adjust","move","InputState","origin","firefoxCopyCutHack","eventBelongsToEditor","handlers","computeHandlers","passive","exists","modifierCodes","pending","PendingKeys","EmacsyPendingKeys","mouseSelection","bindHandler","record","observers","dragScrollMargin","dragScrollSpeed","MouseSelection","startEvent","style","mustSelect","addsSelectionRange","isInPrimarySelection","getClickType","sx","sy","dragMovesSelection","brokenClipboardAPI","capturePaste","doPaste","textFilter","input","byLine","lastLinewiseCopy","lastLine","makeStyle","basicMouseSelection","mustFocus","mouseSel","rangeForClick","visual","findPositionSide","queryPos","BadMouseDetail","lastMouseDown","lastMouseDownCount","lastMouseDownTime","lastTime","startSel","extend","multiple","removed","startRange","removeRangeAround","inputState","dropText","direct","dropPos","draggedContent","del","files","read","finishFile","data","captureCopy","copiedRange","linewise","isFocusChange","focusChangeTransaction","focus","getEffect","updateForFocusChange","startViewHeight","appliedFirefoxHack","wrappingWhiteSpace","heightChangeFlag","clearHeightChangeFlag","HeightOracle","lineWrapping","whiteSpace","lineHeights","newHeight","lineLength","knownHeights","MeasuredHeights","heights","BlockInfo","_content","QueryType","Epsilon","HeightMap","nodes","oldDoc","oracle","NodeBuilder","HeightMapText","split","brk","HeightMapBranch","old","HeightMapBlock","_height","_oracle","_value","_type","_force","measured","HeightMapGap","firstLine","perLine","perChar","totalPerLine","guess","lineTop","linesAbove","singleHeight","rightTop","rightOffset","subQuery","rightStart","mergeGaps","rebalance","around","relevantWidgetHeight","breaks","gap","heightRelevantDecoChanges","DecorationComparator","visiblePixelRange","paddingTop","parentRect","inWindow","fullPixelRange","LineGap","displaySize","gA","gB","viewState","wrapping","LineGapWidget","vertical","ViewState","IdScaler","guessWrapping","viewports","Viewport","scaler","BigScaler","scaleBlock","scrollTarget","contentChanges","heightChanges","prevHeight","scrollAnchor","viewportChange","refresh","domRect","measureContent","paddingBottom","scrollTop","pixelViewport","dTop","dBottom","inView","marginTop","visibleTop","visibleBottom","viewHeight","topPos","mayMeasure","halfMargin","doubleMargin","addGap","structure","avoid","find","checkLine","lineStructure","viewFrom","viewTo","marginHeight","bot","targetFrac","findFraction","spaceFrac","findPosition","marginWidth","horizOffset","pxLeft","pxRight","fraction","nw","stateDeco","ratio","counted","heightMap","vpHeight","domBase","obj","bTop","bBottom","theme","strs","darkTheme","baseThemeID","baseLightID","baseDarkID","lightDarkIDs","buildTheme","scopes","baseTheme$1","observeOptions","useCharData","DOMObserver","mutations","mut","EditContextManager","entries","g","wasChanged","safariSelectionRangeHack","keyCode","records","readSelection","handled","rec","childBefore","findChild","childAfter","_c","curView","buildSelectionRangeFromRange","curAnchor","format","lineStyle","thickness","drifted","abort","_fromB","reverted","contextPos","clipLen","editorPos","EditorView","dispatch","trs","redrawn","attrsChanged","focusFlag","dispatchFocus","pendingKey","CachedOrder","listener","newState","hadFocus","prevSpecs","newPlugins","sDOM","scrollAnchorPos","scrollAnchorHeight","measuring","BadMeasure","editorAttrs","attrsFromFacet","contentAttrs","changedContent","changedEditor","div","request","initial","MaxBidiLine","entry","scrollLeft","prefix","fresh","cache","lastDir","sources","currentPlatform","normalizeKeyName","platform","alt","ctrl","meta","modifiers","handleKeyEvents","runHandlers","getKeymap","keymap","Keymaps","bindings","buildKeymap","runScopeHandlers","scope","storedPrefix","PrefixTimeout","bound","isPrefix","checkPrefix","is","command","preventDefault","stopPropagation","scopeObj","ourObj","full","binding","any","currentKeyEvent","charCode","isChar","prevented","ran","runFor","cmd","baseName","shiftName","RectangleMarker","className","getBase","rectanglesForRange","wrappedLine","lineElt","leftSide","rightSide","startBlock","endBlock","visualStart","visualEnd","pieces","drawForLine","drawForWidget","between","horizontal","addSpan","fromOpen","toOpen","fromCoords","toCoords","endPos","docLine","spanFrom","spanTo","sameMarker","LayerView","layerOrder","markers","oldI","marker","selectionConfig","drawSelection","cursorLayer","selectionLayer","hideNativeSelection","configChanged","cursors","prim","confChange","setBlinkRate","setDropCursorPos","dropCursorPos","drawDropCursor","cursorPos","outer","dropCursor","iterMatches","matchRanges","maxLength","visible","MatchDecorator","regexp","decoration","decorate","boundary","match","_view","changeFrom","changeTo","_f","_t","updateFrom","updateTo","fromLine","toLine","UnicodeRegexpSupport","Specials","Names","_supportsTabSize","supportsTabSize","styles","specialCharConfig","highlightSpecialChars","specialCharPlugin","_plugin","TabWidget","SpecialCharWidget","DefaultPlaceholder","placeholder$1","ph","highlightActiveLine","activeLineHighlighter","lineDeco","lastLineStart","Placeholder","wrap","placeholder","MaxOff","rectangleFor","startLine","startOff","endOff","startCol","endCol","absoluteColumn","getPos","rectangleSelectionStyle","newStart","newLine","_extend","rectangularSelection","keys","showCrosshair","crosshairCursor","isDown","Outside","TooltipViewManager","createTooltipView","removeTooltipView","tooltips","tooltipViews","newAbove","tip","tooltipView","windowSpace","docElt","tooltipConfig","knownHeight","tooltipPlugin","showTooltip","tooltip","shouldMeasure","newConfig","arrow","makeAbsolute","tv","space","others","tView","arrowHeight","noOffset","spaceVert","setLeftStyle","arrowLeft","baseTheme","showHoverTooltip","inputs","HoverTooltipHost","hostedView","given","showHoverTooltipHost","HoverPlugin","setHover","hoverTime","hovered","lastMove","posCoords","bidi","rtl","isInTooltip","isOverRange","watch","tooltipMargin","arrowRect","docBottom","hoverTooltip","hoverState","closeHoverTooltipEffect","getTooltip","panelConfig","topContainer","bottomContainer","getPanel","panel","panelPlugin","showPanel","PanelGroup","panels","mount","container","curDOM","rm","GutterMarker","gutterLineClass","gutterWidgetClass","activeGutters","gutter","gutters","unfixGutters","gutterView","SingleGutterView","vpA","vpB","vpOverlap","min","detach","lineClasses","classSet","contexts","UpdateContext","advanceCursor","cx","collect","newElt","GutterElement","extraMarkers","localMarkers","forLine","prevMarkers","sameMarkers","domPos","iNew","iOld","skipTo","matched","lineNumberMarkers","lineNumberWidgetMarker","lineNumberConfig","NumberMarker","formatNumber","lineNumberGutter","maxLineNumber","spacer","max","lineNumbers","activeLineGutterMarker","activeLineGutterHighlighter","highlightActiveLineGutter","DefaultBufferLength","nextPropID","NodeProp","NodeType","MountedTree","tree","overlay","parser","noProps","props","src","group","groups","NodeSet","newTypes","newProps","CachedNode","CachedInnerNode","IterMode","Tree","positions","mounted","TreeCursor","TreeNode","resolveNode","stackIterator","enter","leave","anon","entered","balanceRange","buildTree","FlatBufferCursor","buffer","TreeBuffer","endIndex","pick","checkSide","startI","endI","overlays","BaseNode","getChildren","matchNodeContext","_tree","_parent","BufferNode","BufferContext","hasChild","rPos","parentStart","iterStack","heads","picked","newHeads","StackIterator","layers","depth","mustLeave","nodeSet","maxBufferLength","reused","minRepeatType","contextHash","lookAhead","takeNode","minPos","inRepeat","lookAheadAtStart","contextAtStart","findBufferSize","copyToBuffer","localChildren","localPositions","localInRepeat","lastGroup","lastEnd","makeRepeatLeaf","takeFlatNode","make","makeBalanced","makeTree","nodeCount","stopAt","lastI","lookAheadProp","pair","maxSize","fork","minStart","nodeSize","localSkipped","nodeStart","bufferStart","nodeSizeCache","balanceType","mkTop","mkTree","maxChild","divide","groupFrom","groupStart","groupSize","nextSize","only","TreeFragment","fragments","partial","minGap","fI","nextF","cI","nextC","nextPos","cut","fFrom","fTo","Parser","StringInput","parse","nextTagID","Tag","modified","nameOrParent","Modifier","nextModifierID","powerSet","styleTags","byName","tags","rest","rule","Rule","ruleNodeProp","tagHighlighter","all","tagClass","highlightTags","highlighters","highlighter","highlightTree","putStyle","HighlightBuilder","inheritedClass","getStyleTags","tagCls","innerHighlighters","comment","typeName","propertyName","literal","heading","keyword","operator","punctuation","bracket","languageDataProp","defineLanguageFacet","baseData","sublanguageProp","Language","extraExtensions","syntaxTree","language","topNodeAt","innerNode","sublang","lang","explore","topLang","LRLanguage","DocInput","stringStart","currentContext","ParseContext","treeLen","skipped","scheduleOn","until","endTime","cutFragments","startLen","frags","LanguageState","newCx","vpTo","parseState","requestIdle","callback","timeout","idle","isInputPending","parseWorker","deadline","now","viewportFirst","err","languages","LanguageSupport","support","indentService","indentUnit","unit","getIndentUnit","indentString","cols","ts","getIndentation","IndentContext","service","syntaxIndentation","simulateBreak","simulateDoubleBreak","override","overriden","indentNodeProp","ast","indentFor","strategy","indentStrategy","TreeIndentContext","ignoreClosed","close","closed","delimitedStrategy","topIndent","atBreak","isParent","bracketedAligned","openToken","sim","openLine","lineEnd","align","units","closing","closedAt","aligned","continuedIndent","except","matchExcept","DontIndentBeyond","indentOnInput","rules","indent","norm","foldService","foldNodeProp","foldInside","syntaxFolding","isUnfinished","foldable","mapRange","foldEffect","unfoldEffect","selectedLines","foldState","folded","clearTouchedFolds","foldExists","preparePlaceholder","foldConfig","PreparedFoldWidget","foldWidget","findFold","maybeEnable","codeFolding","foldCode","announceFold","unfoldCode","fold","lineFrom","lineTo","foldAll","unfoldAll","foldKeymap","defaultConfig","widgetToDOM","prepared","onclick","foldGutterDefaults","FoldMarker","foldGutter","fullConfig","canFold","canUnfold","HighlightStyle","modSpec","def","scopeOpt","highlighterFacet","fallbackHighlighter","getHighlighters","syntaxHighlighting","treeHighlighter","themeType","TreeHighlighter","styleChange","decoratedToMapped","defaultHighlightStyle","DefaultScanDist","DefaultBrackets","bracketMatchingConfig","defaultRenderMatch","matchingMark","nonmatchingMark","bracketMatchingState","matchBrackets","bracketMatchingUnique","bracketMatching","bracketMatchingHandle","matchingNodes","brackets","byProp","findHandle","hasHandle","maxScanDistance","matches","handle","matchMarkedBrackets","matchPlainBrackets","_state","_pos","token","matching","firstToken","endHandle","tokenType","startCh","startToken","basePos","countCol","startValue","StringStream","overrideIndent","ok","pattern","consume","caseInsensitive","cased","substr","fullParser","defaultCopyState","noTokens","IndentedFrom","StreamLanguage","self","impl","Parse","docID","TokenTable","defaultTokenTable","overrideIndentation","findState","statePos","indentation","stream","readToken","cutTree","findStartInFragments","editorState","Parse$1","parseEnd","eol","rangeEnd","rangeStart","offPos","len0","streamParser","typeArray","warned","byTag","defaultTable","legacyName","createTokenType","warnForPart","msg","tagStr","tags$1","toggleComment","getConfig","toggleLineComment","toggleBlockCommentByLine","option","changeLineComment","toggleBlockComment","changeBlockComment","o","selectedLineRanges","SearchMargin","findBlockComment","spaceBefore","spaceAfter","beforeOff","startText","endText","startSpace","endSpace","tokens","comments","prevLine","minIndent","empty","single","changeSet","fromHistory","isolateHistory","invertedEffects","historyConfig","isAdjacent","adj","historyField_","HistoryState","fromHist","item","HistEvent","updateBranch","addSelection","isolate","time","history","undo","redo","historyState","undoSelection","redoSelection","startSelection","selectionsAfter","invert","selections","branch","maxLen","newEvent","newBranch","eqSelectionShape","conc","MaxSelectionsPerEvent","lastEvent","sels","popSelection","addMappingToBranch","mapEvent","extraSelections","mappedChanges","fullMapping","joinableUserEvent","undone","prevTime","prevUserEvent","newGroupDelay","onlySelection","historyKeymap","updateSel","setSel","moveSel","how","cursorByChar","ltrAtCursor","cursorCharLeft","cursorCharRight","cursorByGroup","cursorGroupLeft","cursorGroupRight","interestingNode","bracketProp","moveBySyntax","cursorSyntaxLeft","cursorSyntaxRight","cursorByLine","cursorLineUp","cursorLineDown","pageInfo","selfScroll","marginBottom","cursorByPage","page","scrollRect","scrollBottom","cursorPageUp","cursorPageDown","moveByLineBoundary","cursorLineBoundaryForward","cursorLineBoundaryBackward","cursorLineBoundaryLeft","cursorLineBoundaryRight","cursorLineStart","cursorLineEnd","toMatchingBracket","cursorMatchingBracket","extendSel","selectByChar","selectCharLeft","selectCharRight","selectByGroup","selectGroupLeft","selectGroupRight","selectSyntaxLeft","selectSyntaxRight","selectByLine","selectLineUp","selectLineDown","selectByPage","selectPageUp","selectPageDown","selectLineBoundaryForward","selectLineBoundaryBackward","selectLineBoundaryLeft","selectLineBoundaryRight","selectLineStart","selectLineEnd","cursorDocStart","cursorDocEnd","selectDocStart","selectDocEnd","selectAll","selectLine","selectedLineBlocks","selectParentSyntax","stackBefore","simplifySelection","deleteBy","towards","skipAtomic","deleteByChar","byIndentUnit","targetPos","drop","deleteCharBackward","deleteCharForward","deleteByGroup","nextChar","deleteGroupBackward","deleteGroupForward","deleteToLineEnd","deleteLineBoundaryBackward","deleteLineBoundaryForward","splitLine","transposeChars","blocks","moveLine","nextLine","moveLineUp","moveLineDown","copyLine","copyLineUp","copyLineDown","deleteLine","isBetweenBrackets","closedBy","insertNewlineAndIndent","newlineAndIndent","insertBlankLine","atEof","explode","changeBySelectedLine","atLine","indentSelection","indentMore","indentLess","keep","toggleTabFocusMode","emacsStyleKeymap","standardKeymap","defaultKeymap","indentWithTab","SelectedDiagnostic","diagnostic","LintState","diagnostics","selected","diagnosticFilter","lintConfig","sorted","sev","maxSeverity","DiagnosticWidget","markClass","findDiagnostic","hideTooltip","setDiagnosticsEffect","maybeEnableLint","lintState","lintExtensions","setDiagnostics","togglePanel","movePanelSelection","selPos","LintPanel","diagnosticCount","lint","activeMark","lintTooltip","diagnosticsTooltip","renderDiagnostic","openLintPanel","closeLintPanel","nextDiagnostic","lintKeymap","lintPlugin","delay","batchResults","error","promises","sink","collected","u","linter","forceLinting","assignKeys","actions","assigned","inPanel","action","fired","click","keyIndex","nameElt","PanelItem","onkeydown","needsSync","newSelectedItem","_start","_end","selectedIndex","svg","underline","color","severityWeight","weight","w","LintGutterMarker","diagnosticsFilter","lintGutterConfig","gutterMarkerMouseOver","trackHoverOn","mousemove","lintGutterTooltip","setLintGutterTooltip","hoverTimeout","markersForDiagnostics","lintGutterExtension","lintGutterMarkers","lintGutterTheme","lintGutter","basicNormalize","SearchCursor","query","normalize","test","baseFlags","RegExpCursor","MultilineRegExpCursor","toCharEnd","flattened","FlattenedDoc","cached","cachedFrom","validRegExp","createLineDialog","dialogEffect","go","sign","ln","cl","percent","pc","dialogField","gotoLine","defaultHighlightOptions","highlightConfig","highlightSelectionMatches","defaultTheme","matchHighlighter","matchDeco","mainMatchDeco","insideWordBoundaries","insideWord","word","selectWord","findNextOccurrence","fullWord","cycled","selectNextOccurrence","searchedText","searchConfigFacet","SearchPanel","SearchQuery","_","RegExpQuery","StringQuery","st","regexpCursor","stringCursor","stringWordTest","categorizer","buf","bufPos","charBefore","charAfter","_result","regexpWordTest","setSearchQuery","searchState","SearchState","defaultQuery","createSearchPanel","matchMark","selectedMatchMark","searchHighlighter","searchCommand","openSearchPanel","findNext","announceMatch","selectSearchInput","findPrevious","selectMatches","selectSelectionMatches","replaceNext","replacement","replaceAll","announceText","fallback","_d","_e","selText","getSearchInput","searchInput","searchExtensions","closeSearchPanel","searchKeymap","button","AnnounceMargin","Break","CompletionContext","explicit","expr","ensureAnchor","toSet","chars","words","prefixMatch","label","completeFromList","list","validFor","Option","completion","score","addStart","addEnd","pickedCompletion","insertCompletionText","SourceCache","asSource","startCompletionEffect","closeCompletionEffect","FuzzyMatcher","upper","byWord","firstSize","anyTo","preciseTo","byWordTo","byWordFolded","adjacentTo","adjacentStart","adjacentEnd","hasLower","wordAdjacent","StrictMatcher","completionConfig","defaultPositionInfo","joinClass","info","narrow","maxWidth","spaceLeft","spaceRight","infoWidth","infoHeight","spaceBelow","optionContent","icon","_s","_v","labelElt","detailElt","rangeAroundSelected","CompletionTooltip","stateField","applyCompletion","cState","prevState","disabled","infoResult","destroy","opt","listRect","infoRect","selRect","ul","curSection","section","header","li","completionTooltip","sortOptions","addOption","getMatch","matcher","sectionOrder","cmp","CompletionDialog","timestamp","makeAttrs","didSetActive","selectedValue","createTooltip","CompletionState","ActiveSource","didSet","setActiveEffect","sameResults","setSelectedEffect","baseAttrs","getUpdateType","typing","ActiveResult","checkValid","completionState","apply","moveCompletionSelection","step","acceptCompletion","startCompletion","closeCompletion","RunningQuery","MaxUpdateCount","MinAbortTime","completionPlugin","doesReset","q","dialog","windows","commitCharacters","commitChars","closeBracketEffect","closedBracket","bracketState","closeBrackets","definedClosing","android","insertBracket","deleteBracketPair","dont","prevChar","closeBracketsKeymap","tok","handleSame","handleOpen","closedBracketAt","handleClose","closeBefore","_open","allowTriple","stringPrefixes","canStartStringAt","probablyInString","quoteToken","prefixes","maxPrefix","quotePos","charCat","autocompletion","completionKeymapExt","completionKeymap","basicSetup","minimalSetup","le","M","V","oe","ue","ee","te","W","Q","X","G","P","Z","H","K","B","S","ae","ne","L","N","T","U","$","z","E","R","D","A","F","I","O","J","Stack","reducePos","bufferBase","curContext","StackContext","lookaheadRecord","dPrec","count","baseStateID","term","mustSink","mustMove","nextState","nextStart","nextEnd","isNode","SimulatedStack","nextStates","reduce","backup","rDepth","dialectID","tracker","goto","StackBufferCursor","decodeArray","Type","out","digit","CachedToken","nullToken","InputStream","resolved","endOffset","nextChunk","TokenGroup","ExternalTokenizer","precTable","precOffset","groupMask","dialect","accEnd","overrides","low","high","findOffset","tableData","tableOffset","iPrev","verbose","define_process_env_default","stackIDs","cutAt","FragmentCursor","fr","TokenCache","actionIndex","tokenizers","mask","tokenizer","stacks","newStacks","stopped","stoppedTokens","finished","findFinished","maxRemaining","strictCx","cxHash","defaultReduce","localStack","pushStackDedup","restarted","tokenEnd","forceBase","Dialect","ContextTracker","LRParser","nodeNames","topTerms","nodeProps","setProp","nodeID","propSpec","tokenArray","getSpecializer","loose","table","groupTag","terminal","flag","deflt","jsonHighlighting","jsonLanguage","StartTag","StartCloseTag","MissingCloseTag","mismatchedStartCloseTag","incompleteStartCloseTag","commentContent$1","piContent$1","cdataContent$1","Element","OpenTag","nameChar","isSpace","cachedName","cachedInput","cachedPos","tagNameAfter","ElementContext","elementContext","_stack","startTag","scanTo","commentContent","piContent","cdataContent","xmlHighlighting","tagName","elementName$1","attrName","findParentElement","findLocation","inTag","attrValues","Identifier","attrCompletion","valueCompletion","completeFromSchema","eltSpecs","attrSpecs","allAttrs","globalAttrs","allElements","topElements","attrVals","loc","parentName","openTag","xmlLanguage","subtree","xml","autoCloseTags","elementName","insertTransaction","closeTags","didType","buildRegexp","patterns","suffix","notCharacterOrDash","varNames","keywords","wordOperators","symbolOperators","operators","identifiers","symbolBuiltins","namedBuiltins","variableBuiltins","builtins","grammar","tokenBase","tokenSingleQuoteString","tokenVariable","tokenDoubleQuoteString","tokenComment","quoteMatch","tokenMultiString","tokenStringInterpolation","tokenInterpolation","tokenMultiStringReturn","tokenHereStringInterpolation","parentTokenize","savedBracketNesting","maybeEnd","tokenVariableWithBraces","quote","powerShell","define","dict","commonAtoms","commonKeywords","commonCommands","sol","tokenString","tokenize","tokenDollar","heredoc","tokenHeredoc","escaped","tokenStringStart","delim","shell","Context","indented","column","pushContext","popContext","typeBefore","isTopScope","clike","parserConfig","statementIndentUnit","dontAlignCalls","builtin","blockKeywords","defKeywords","hooks","multiLineStrings","indentStatements","indentSwitch","namespaceSeparator","isPunctuationChar","numberStart","isOperatorChar","isIdentifierChar","isReservedIdentifier","curPunc","isDefKeyword","maybeEOL","ctx","firstChar","hook","switchBlock","cKeywords","cppKeywords","objCKeywords","objCBuiltins","basicCTypes","basicObjCTypes","cTypes","identifier","objCTypes","cBlockKeywords","cDefKeywords","cppHook","pointerHook","_stream","cIsReservedIdentifier","cpp14Literal","cpp11StringHook","tokenRawString","cppLooksLikeConstructor","lastTwo","tokenAtString","tokenTripleString","csharp","tokenNestedComment","tokenKotlinString","tripleString","stringTokenizer","tokenCeylonString","pushInterpolationStack","popInterpolationStack","sizeInterpolationStack","tokenDartString","raw","tripleQuoted","tokenStringHelper","tokenInterpolationIdentifier","peek","isUpper","__props","tippyRef","useTemplateRef","timeoutId","copyToClipboard","previousTimeoutId","_createBlock","_unref","Tippy","ActionButton","faCopy","_cache","_useModel","extensions","computed","allExtensions","_createElementBlock","$slots","_openBlock","_hoisted_2","_createElementVNode","_renderSlot","_ctx","CopyToClipboard","_createVNode","CodeMirror","$event"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/ConnectionSetupView-BPgGivlX.css b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-BPgGivlX.css new file mode 100644 index 0000000000..cc3a0b3abe --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-BPgGivlX.css @@ -0,0 +1 @@ +.configuration[data-v-ee3ccaac]{height:100%}.instructions[data-v-ee3ccaac]{font-size:13px;color:#8c8c8c}.configuration[data-v-d7eac0e4]{margin-bottom:15px}.nogap[data-v-d7eac0e4]{margin-bottom:0} diff --git a/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js new file mode 100644 index 0000000000..f8eb3c8b97 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js @@ -0,0 +1,6 @@ +import{e as I,c as v,r as $,m as l,n as a,K as _,q as t,v as d,Z as k,U as N,bS as F,s as y,u as V,bW as M,o as T,t as m,y as o,B as S,z as u,a3 as B,_ as D,x as g}from"./index-tFZp7u44.js";import{D as P}from"./DropDown-BS-2gDTG.js";import{C as j}from"./CodeEditor-tk58yQKj.js";const q={class:"configuration"},A={class:"instructions"},U=I({__name:"ConfigurationCode",props:{settings:{},configFileName:{default:"ServiceControl.exe.config"}},setup(x){const r=x,b=v(()=>{const n=[];for(const i of r.settings)n.push(``),n.push(``);return n.join(` +`)}),s=v(()=>{const n=[];for(const i of r.settings)n.push(`# ${i.description}`),n.push(`export ${i.name.replaceAll("/","_").toUpperCase()}="enter value here"`);return n.join(` +`)}),C=v(()=>{const n=[];for(const i of r.settings)n.push(`rem ${i.description}`),n.push(`set ${i.name.replaceAll("/","_").toUpperCase()}="enter value here"`);return n.join(` +`)}),p=v(()=>{const n=[];for(const i of r.settings)n.push(`# ${i.description}`),n.push(`$env:${i.name.replaceAll("/","_").toUpperCase()} = "enter value here"`);return n.join(` +`)}),c=$("config"),h=v(()=>{switch(c.value){case"bash":return{code:s.value,lang:"shell"};case"windows":return{code:C.value,lang:"shell"};case"powershell":return{code:p.value,lang:"shell"};default:return{code:b.value,lang:"xml"}}}),f=[{text:r.configFileName,value:"config"},{text:"Bash environment variables",value:"bash"},{text:"Windows environment variables",value:"windows"},{text:"PowerShell environment variables",value:"powershell"}];function e(n){c.value=n.value}return(n,i)=>(a(),l(_,null,[t("div",null,[d(P,{label:"Configuration type","select-item":f.find(E=>E.value===c.value),callback:e,items:f},null,8,["select-item"])]),t("div",q,[d(j,{"model-value":h.value.code,language:h.value.lang,"show-gutter":!1},null,8,["model-value","language"]),t("div",A,[c.value==="config"?k(n.$slots,"configInstructions",{key:0},void 0,!0):k(n.$slots,"environmentVariableInstructions",{key:1},void 0,!0)])])],64))}}),w=N(U,[["__scopeId","data-v-ee3ccaac"]]),L={class:"row"},Q={key:0},R={key:1},W={key:0,class:"row configuration"},z={class:"col-12"},K={class:"nogap"},Z=["href"],G={key:0,class:"row configuration"},H={class:"col-12"},J={key:1,class:"row configuration"},O={class:"col-12"},X=I({__name:"ConnectionSetupView",setup(x){const{store:r}=F(),{isBrokerTransport:b}=y(r),s=$(null),C=V(),{isMonitoringEnabled:p}=y(C),c=M();T(async()=>{s.value=await c.setting()});const h=v(()=>{const f=s.value?.broker_settings?.length??0,e=s.value?.monitoring_settings?.length??0,n=s.value?.service_control_settings?.length??0;return f>0||e>0&&p.value||n>0});return(f,e)=>(a(),l(_,null,[t("div",L,[h.value?(a(),l("p",Q,[o(" In order for ServicePulse to collect usage data from "+S(u(r).transportNameForInstructions())+" you need to configure the below settings.",1),e[0]||(e[0]=t("br",null,null,-1)),e[1]||(e[1]=o(" There are two configuration options, as environment variables or directly in the ",-1)),e[2]||(e[2]=t("a",{href:"https://docs.particular.net/servicecontrol/creating-config-file"},[t("code",null,"ServiceControl.exe.config")],-1)),e[3]||(e[3]=o(" file. ",-1))])):(a(),l("p",R,"No further configuration required."))]),s.value?.broker_settings.length??!1?(a(),l("div",W,[t("div",z,[e[10]||(e[10]=t("h4",null,"Broker Settings",-1)),t("p",K,[e[4]||(e[4]=o(" Settings to ensure that usage data is being collected from ",-1)),t("a",{href:u(r).transportDocsLinkForInstructions()},S(u(r).transportNameForInstructions()),9,Z),e[5]||(e[5]=o(".",-1)),e[6]||(e[6]=t("br",null,null,-1)),e[7]||(e[7]=o(" Some settings can be automatically configured based on the current transport configuration, so if you have a ",-1)),d(D,{icon:u(B),class:"text-success"},null,8,["icon"]),o(" above it means that ServiceControl has successfully connected to "+S(u(r).transportNameForInstructions())+". ",1)]),d(w,{settings:s.value?.broker_settings??[]},{configInstructions:g(()=>[...e[8]||(e[8]=[t("div",null,[o("Paste the settings above into the "),t("code",null,"ServiceControl.exe.config"),o(" file of the ServiceControl Error instance.")],-1)])]),environmentVariableInstructions:g(()=>[...e[9]||(e[9]=[t("div",null,"Execute the above instructions in a terminal to set the environment variables, these variables need to be set for the account under which the ServiceControl Error instance is running.",-1)])]),_:1},8,["settings"])])])):m("",!0),u(b)?m("",!0):(a(),l(_,{key:1},[s.value?.service_control_settings.length??!1?(a(),l("div",G,[t("div",H,[e[13]||(e[13]=t("h4",null,"ServiceControl Settings",-1)),e[14]||(e[14]=t("p",{class:"nogap"},[o(" For more information read the "),t("a",{href:"https://docs.particular.net/servicecontrol/creating-config-file#usage-reporting-when-using-servicecontrol-licensingcomponentservicecontrolthroughputdataqueue"},"LicensingComponent/ServiceControlThroughputDataQueue"),o(" settings documentation. ")],-1)),d(w,{settings:s.value?.service_control_settings??[]},{configInstructions:g(()=>[...e[11]||(e[11]=[t("div",null,[o("Paste the settings above into the "),t("code",null,"ServiceControl.exe.config"),o(" file of the ServiceControl Error instance.")],-1)])]),environmentVariableInstructions:g(()=>[...e[12]||(e[12]=[t("div",null,"Execute the above instructions in a terminal to set the environment variables , these variables need to be set for the account under which the ServiceControl Error instance is running.",-1)])]),_:1},8,["settings"])])])):m("",!0),u(p)&&(s.value?.monitoring_settings.length??!1)?(a(),l("div",J,[t("div",O,[e[17]||(e[17]=t("h4",null,"Monitoring Settings",-1)),e[18]||(e[18]=t("p",{class:"nogap"},[o(" For more information read the "),t("a",{href:"https://docs.particular.net/servicecontrol/monitoring-instances/installation/creating-config-file#usage-reporting-monitoringservicecontrolthroughputdataqueue"},"Monitoring/ServiceControlThroughputDataQueue"),o(" settings documentation. ")],-1)),d(w,{settings:s.value?.monitoring_settings??[],configFileName:"ServiceControl.Monitoring.exe.config"},{configInstructions:g(()=>[...e[15]||(e[15]=[t("div",null,[o("Paste the settings above into the "),t("code",null,"ServiceControl.Monitoring.exe.config"),o(" file of the ServiceControl Monitoring instance.")],-1)])]),environmentVariableInstructions:g(()=>[...e[16]||(e[16]=[t("div",null,"Execute the above instructions in a terminal to set the environment variables, these variables need to be set for the account under which the ServiceControl Monitoring instance is running.",-1)])]),_:1},8,["settings"])])])):m("",!0)],64))],64))}}),ne=N(X,[["__scopeId","data-v-d7eac0e4"]]);export{ne as default}; +//# sourceMappingURL=ConnectionSetupView-D5oAgYeV.js.map diff --git a/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js.map b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js.map new file mode 100644 index 0000000000..6d7f057396 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/ConnectionSetupView-D5oAgYeV.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ConnectionSetupView-D5oAgYeV.js","sources":["../../../../frontend/src/views/throughputreport/setup/ConfigurationCode.vue","../../../../frontend/src/views/throughputreport/setup/ConnectionSetupView.vue"],"sourcesContent":["\n\n\n\n","\n\n\n\n"],"names":["props","__props","config","computed","list","item","bash","windows","powershell","languageSelected","ref","codeSelected","languages","languageChanged","_createElementVNode","_createVNode","DropDown","v","_hoisted_1","CodeEditor","_hoisted_2","_renderSlot","_ctx","store","useThroughputStoreAutoRefresh","isBrokerTransport","storeToRefs","settingsInfo","serviceControlStore","useServiceControlStore","isMonitoringEnabled","throughputClient","createThroughputClient","onMounted","needsConfiguration","broker","monitoring","serviceControl","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_openBlock","_hoisted_4","_hoisted_5","_cache","_hoisted_6","_hoisted_7","FAIcon","faCheck","ConfigurationCode","_Fragment","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js new file mode 100644 index 0000000000..8071a2e43b --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js @@ -0,0 +1,2 @@ +import{e as ce,r as f,f as fe,i as ve,u as _e,ad as me,o as pe,p as w,n,x as u,v as c,aq as we,q as o,y as v,B as k,m as r,K as V,L as P,ai as R,t as i,N as ke,E,z as p,ab as T,ac as F,a6 as M,ag as U,ah as ge,T as he,C as ye,ax as be,ay as K,P as Q,Q as W,k as Ce,U as xe}from"./index-tFZp7u44.js";import{c as Re}from"./messageGroupClient-MAkYdcH-.js";import{M as g}from"./MetadataItem-CGsZJtRl.js";const Me={name:"message_groups"},Ge={class:"row"},Ie={class:"col-6 toolbar-menus no-side-padding"},$e={class:"msg-group-menu dropdown"},De={type:"button",class:"btn btn-default dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},Se={class:"dropdown-menu"},Ee=["onClick"],Te={class:"box-container"},Fe={class:"messagegrouplist"},qe={class:"row"},Le={class:"col-sm-12"},Oe={class:"row"},Ne={class:"col-sm-12 no-mobile-side-padding"},Be={key:0},ze=["disabled","onMouseenter","onMouseleave","onClick"],Ae={class:"col-sm-12 no-mobile-side-padding"},Ve={class:"row"},Pe={class:"col-sm-12 no-side-padding"},Ue={class:"row box-header"},Ke={class:"col-sm-12 no-side-padding"},Qe={key:0,class:"metadata"},We={key:0},Ye={key:1},je={key:0,class:"row"},He={class:"col-sm-12 no-side-padding"},Je={key:1,class:"row"},Xe={class:"col-sm-12 no-side-padding"},Ze={class:"panel panel-default panel-retry"},et={class:"panel-body"},tt={class:"retry-request-progress"},st={key:1},ot=["onClick"],at={class:"op-metadata"},nt=ce({__name:"DeletedMessageGroups",emits:["InitialLoadComplete"],setup(it,{emit:Y}){const q=["restorestarted","restoreprogressing","restorefinalizing","restorecompleted"];let y=!1;const l=f([]),_=f([]),G=f(!0),L=f(!1),j=Y;let h;const H=fe(),J=ve(),b=f(!1),O=f(),N=_e(),B=Re(),I=f(null),$=f(null),D=f([]);async function X(){const[,e]=await N.fetchTypedFromServiceControl("recoverability/classifiers");D.value=e}function Z(e){K().cookies.set("archived_groups_classification",e)}async function ee(e){Z(e),$.value=e,l.value=[],await S(e)}async function te(e){const[,s]=await N.fetchTypedFromServiceControl(`errors/groups/${e}`);s.length===0&&_.value.length>0&&_.value.forEach(a=>{a.need_user_acknowledgement=!0,a.workflow_state.status="restorecompleted"}),_.value.forEach(a=>{s.find(d=>d.id===a.id)||(a.need_user_acknowledgement=!0,a.workflow_state.status="restorecompleted")});const t=s.filter(a=>!_.value.find(d=>d.id===a.id)).map(se).concat(_.value);let m=l.value.reduce((a,d)=>Math.max(a,d.index),0);t.forEach(a=>{const d=l.value.find(ue=>ue.id===a.id);d?a.index=d.index:a.index=++m}),l.value=t.sort((a,d)=>a.index-d.index)}function se(e){return{index:0,workflow_state:oe("none"),...e}}function z(){const s=K().cookies.get("archived_groups_classification");return s||null}async function S(e=null){G.value=!0,(!L.value||!e)&&(e=z()),await te(e??H.query.deletedGroupBy),G.value=!1,L.value=!0,j("InitialLoadComplete")}function oe(e,s,t){return{status:e??"working",total:s??0,failed:t??!1}}function ae(e){I.value=null,O.value=e,b.value=!0}async function ne(){const e=O.value;if(e){x(1e3),_.value.push(e),e.workflow_state={status:"restorestarted",message:"Restore request initiated..."},e.operation_start_time=new Date().toUTCString();const s=await B.restoreGroup(e.id);B.isError(s)?(I.value=!1,Q(W.ERROR,"Error",`Failed to restore the group: ${s.message}`)):(I.value=!0,Q(W.INFO,"Info","Group restore started..."))}}const ie=function(e,s,t){const m=t.indexOf(e),a=t.indexOf(s);return m>a?"left-to-do":m===a?"active":"completed"};function re(e,s){return ie(e,s,q)}const le=function(e){_.value.splice(_.value.findIndex(s=>s.id===e.id),1),l.value.splice(l.value.findIndex(s=>s.id===e.id),1)};function C(e){return q.includes(e)}function de(e){J.push(Ce.failedMessage.deletedGroup.link(e))}function A(){return l.value.some(e=>e.workflow_state.status!=="none"&&e.workflow_state.status!=="restorecompleted")}function x(e){h&&clearInterval(h),h=window.setInterval(()=>{!y&&A()?(x(1e3),y=!0):y&&!A()&&(x(5e3),y=!1),S()},e)}return me(()=>{h&&clearInterval(h)}),pe(async()=>{await X();let e=z();e||(e=D.value[0]),$.value=e,await S(),x(5e3)}),(e,s)=>(n(),w(be,null,{default:u(()=>[c(we,null,{default:u(()=>[o("section",Me,[o("div",Ge,[s[4]||(s[4]=o("div",{class:"col-6 list-section"},[o("h3",null,"Deleted message group")],-1)),o("div",Ie,[o("div",$e,[s[3]||(s[3]=o("label",{class:"control-label"},"Group by:",-1)),o("button",De,[v(k($.value)+" ",1),s[2]||(s[2]=o("span",{class:"caret"},null,-1))]),o("ul",Se,[(n(!0),r(V,null,P(D.value,(t,m)=>(n(),r("li",{key:m},[o("a",{onClick:R(a=>ee(t),["prevent"])},k(t),9,Ee)]))),128))])])])]),o("div",Te,[o("div",Fe,[o("div",null,[o("div",qe,[o("div",Le,[l.value.length===0&&!G.value?(n(),w(ke,{key:0,title:"message groups",message:"There are currently no grouped message failures"})):i("",!0)])]),o("div",Oe,[o("div",Ne,[l.value.length>0?(n(),r("div",Be,[(n(!0),r(V,null,P(l.value,(t,m)=>(n(),r("div",{class:E(`row box box-group wf-${t.workflow_state.status} repeat-modify deleted-message-group`),key:m,disabled:t.count==0,onMouseenter:a=>t.hover2=!0,onMouseleave:a=>t.hover2=!1,onClick:R(a=>de(t.id),["prevent"])},[o("div",Ae,[o("div",Ve,[o("div",Pe,[o("div",Ue,[o("div",Ke,[o("p",{class:E(["lead break",{"msg-type-hover":t.hover2,"msg-type-hover-off":t.hover3}])},k(t.title),3),C(t.workflow_state.status)?i("",!0):(n(),r("p",Qe,[c(g,{icon:p(T)},{default:u(()=>[v(k(t.count)+" message",1),t.count>1?(n(),r("span",We,"s")):i("",!0),t.operation_remaining_count?(n(),r("span",Ye," (currently restoring "+k(t.operation_remaining_count),1)):i("",!0)]),_:2},1032,["icon"]),c(g,{icon:p(F)},{default:u(()=>[s[5]||(s[5]=v(" First failed: ",-1)),c(M,{"date-utc":t.first},null,8,["date-utc"])]),_:2},1032,["icon"]),c(g,{icon:p(F)},{default:u(()=>[s[6]||(s[6]=v(" Last failed: ",-1)),c(M,{"date-utc":t.last},null,8,["date-utc"])]),_:2},1032,["icon"]),c(g,{icon:p(U)},{default:u(()=>[s[7]||(s[7]=v(" Last retried: ",-1)),c(M,{"date-utc":t.last_operation_completion_time},null,8,["date-utc"])]),_:2},1032,["icon"])]))])]),C(t.workflow_state.status)?i("",!0):(n(),r("div",je,[o("div",He,[l.value.length>0?(n(),w(ge,{key:0,variant:"link",size:"sm",icon:p(U),disabled:t.count===0||C(t.workflow_state.status),onMouseenter:a=>t.hover3=!0,onMouseleave:a=>t.hover3=!1,onClick:R(a=>ae(t),["stop"])},{default:u(()=>[...s[8]||(s[8]=[v(" Restore group ",-1)])]),_:1},8,["icon","disabled","onMouseenter","onMouseleave","onClick"])):i("",!0)])])),C(t.workflow_state.status)?(n(),r("div",Je,[o("div",Xe,[o("div",Ze,[o("div",et,[o("ul",tt,[t.workflow_state.status!=="restorecompleted"?(n(),r("li",{key:0,class:E(re("restorestarted",t.workflow_state.status))},[...s[9]||(s[9]=[o("div",{class:"bulk-retry-progress-status"},"Restore request in progress...",-1)])],2)):i("",!0),t.workflow_state.status==="restorecompleted"?(n(),r("li",st,[s[10]||(s[10]=o("div",{class:"retry-completed bulk-retry-progress-status"},"Restore request completed",-1)),t.need_user_acknowledgement==!0?(n(),r("button",{key:0,type:"button",class:"btn btn-default btn-primary btn-xs btn-retry-dismiss",onClick:R(a=>le(t),["stop"])},"Dismiss",8,ot)):i("",!0)])):i("",!0)]),o("div",at,[c(g,{icon:p(F)},{default:u(()=>[s[11]||(s[11]=v(" Restore request started: ",-1)),c(M,{"date-utc":t.operation_start_time},null,8,["date-utc"])]),_:2},1032,["icon"]),t.workflow_state.status==="restorecompleted"?(n(),w(g,{key:0,icon:p(T)},{default:u(()=>[v(" Messages restored: "+k(t.count),1)]),_:2},1032,["icon"])):i("",!0),t.workflow_state.status!=="restorecompleted"?(n(),w(g,{key:1,icon:p(T)},{default:u(()=>[v(" Messages being restored: "+k(t.count),1)]),_:2},1032,["icon"])):i("",!0)])])])])])):i("",!0)])])])],42,ze))),128))])):i("",!0)])])])]),(n(),w(he,{to:"#modalDisplay"},[b.value?(n(),w(ye,{key:0,onCancel:s[0]||(s[0]=t=>b.value=!1),onConfirm:s[1]||(s[1]=t=>{b.value=!1,ne()}),heading:"Are you sure you want to restore this group?",body:"Restored messages will be moved back to the list of failed messages"})):i("",!0)]))])])]),_:1})]),_:1}))}}),ut=xe(nt,[["__scopeId","data-v-7bf81429"]]);export{ut as default}; +//# sourceMappingURL=DeletedMessageGroups-BAQ0AfoJ.js.map diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js.map b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js.map new file mode 100644 index 0000000000..b2d550dbeb --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-BAQ0AfoJ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeletedMessageGroups-BAQ0AfoJ.js","sources":["../../../../frontend/src/components/failedmessages/DeletedMessageGroups.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["statusesForRestoreOperation","pollingFaster","archiveGroups","ref","undismissedRestoreGroups","loadingData","initialLoadComplete","emit","__emit","refreshInterval","route","useRoute","router","useRouter","showRestoreGroupModal","selectedGroup","serviceControlStore","useServiceControlStore","messageGroupClient","createMessageGroupClient","groupRestoreSuccessful","selectedClassifier","classifiers","getGroupingClassifiers","data","saveDefaultGroupingClassifier","classifier","useCookies","classifierChanged","loadArchivedMessageGroups","getArchiveGroups","result","deletedGroup","group","mappedResults","initializeGroupState","maxIndex","currentMax","currentGroup","serverGroup","previousGroup","oldGroup","group1","group2","createWorkflowState","loadDefaultGroupingClassifier","cookieGrouping","groupBy","optionalStatus","optionalTotal","optionalFailed","showRestoreGroupDialog","restoreGroup","changeRefreshInterval","useShowToast","TYPE","getClasses","stepStatus","currentStatus","statusArray","indexOfStep","indexOfCurrent","getClassesForRestoreOperation","acknowledgeGroup","dismissedGroup","isBeingRestored","status","navigateToGroup","groupId","routeLinks","isRestoreInProgress","milliseconds","onUnmounted","onMounted","savedClassifier","_createBlock","ServiceControlAvailable","_createVNode","LicenseNotExpired","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_cache","_hoisted_5","_createTextVNode","_toDisplayString","_hoisted_6","_openBlock","_createElementBlock","_Fragment","_renderList","index","_withModifiers","$event","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","NoData","_hoisted_12","_hoisted_13","_hoisted_14","_normalizeClass","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","MetadataItem","_unref","faEnvelope","_hoisted_23","faClock","TimeSince","faArrowRotateRight","_hoisted_24","_hoisted_25","ActionButton","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_Teleport","ConfirmDialog"],"mappings":"ggDAoBA,MAAMA,EAA8B,CAAC,iBAAkB,qBAAsB,oBAAqB,kBAAkB,EAuBpH,IAAIC,EAAgB,GACpB,MAAMC,EAAgBC,EAAgC,EAAE,EAClDC,EAA2BD,EAAgC,EAAE,EAC7DE,EAAcF,EAAI,EAAI,EACtBG,EAAsBH,EAAI,EAAK,EAC/BI,EAAOC,EAGb,IAAIC,EACJ,MAAMC,EAAQC,GAAA,EACRC,EAASC,GAAA,EACTC,EAAwBX,EAAI,EAAK,EACjCY,EAAgBZ,EAAA,EAEhBa,EAAsBC,GAAA,EACtBC,EAAqBC,GAAA,EAErBC,EAAyBjB,EAAoB,IAAI,EACjDkB,EAAqBlB,EAAmB,IAAI,EAC5CmB,EAAcnB,EAAc,EAAE,EAEpC,eAAeoB,GAAyB,CACtC,KAAM,CAAA,CAAGC,CAAI,EAAI,MAAMR,EAAoB,6BAAuC,4BAA4B,EAC9GM,EAAY,MAAQE,CACtB,CAEA,SAASC,EAA8BC,EAAoB,CACzCC,IAAa,QACrB,IAAI,iCAAkCD,CAAU,CAC1D,CAEA,eAAeE,GAAkBF,EAAoB,CACnDD,EAA8BC,CAAU,EAExCL,EAAmB,MAAQK,EAC3BxB,EAAc,MAAQ,CAAA,EACtB,MAAM2B,EAA0BH,CAAU,CAC5C,CAEA,eAAeI,GAAiBJ,EAAoB,CAElD,KAAM,CAAA,CAAGK,CAAM,EAAI,MAAMf,EAAoB,6BAAiD,iBAAiBU,CAAU,EAAE,EAEvHK,EAAO,SAAW,GAAK3B,EAAyB,MAAM,OAAS,GACjEA,EAAyB,MAAM,QAAS4B,GAAiB,CACvDA,EAAa,0BAA4B,GACzCA,EAAa,eAAe,OAAS,kBACvC,CAAC,EAGH5B,EAAyB,MAAM,QAAS4B,GAAiB,CAClDD,EAAO,KAAME,GAAUA,EAAM,KAAOD,EAAa,EAAE,IACtDA,EAAa,0BAA4B,GACzCA,EAAa,eAAe,OAAS,mBAEzC,CAAC,EAGD,MAAME,EAAgBH,EACnB,OAAQE,GAAU,CAAC7B,EAAyB,MAAM,KAAM4B,GAAiBA,EAAa,KAAOC,EAAM,EAAE,CAAC,EACtG,IAAIE,EAAoB,EACxB,OAAO/B,EAAyB,KAAK,EAExC,IAAIgC,EAAWlC,EAAc,MAAM,OAAO,CAACmC,EAAYC,IAAiB,KAAK,IAAID,EAAYC,EAAa,KAAK,EAAG,CAAC,EAEnHJ,EAAc,QAASK,GAAgB,CACrC,MAAMC,EAAgBtC,EAAc,MAAM,KAAMuC,IAAaA,GAAS,KAAOF,EAAY,EAAE,EAEvFC,EACFD,EAAY,MAAQC,EAAc,MAElCD,EAAY,MAAQ,EAAEH,CAE1B,CAAC,EAEDlC,EAAc,MAAQgC,EAAc,KAAK,CAACQ,EAAQC,IACzCD,EAAO,MAAQC,EAAO,KAC9B,CACH,CAEA,SAASR,GAAqBF,EAAmD,CAC/E,MAAO,CACL,MAAO,EACP,eAAgBW,GAAoB,MAAM,EAC1C,GAAGX,CAAA,CAEP,CAEA,SAASY,GAAgC,CAEvC,MAAMC,EADUnB,IAAa,QACE,IAAI,gCAAgC,EAEnE,OAAImB,GAIG,IACT,CAEA,eAAejB,EAA0BkB,EAAyB,KAAM,CACtE1C,EAAY,MAAQ,IAChB,CAACC,EAAoB,OAAS,CAACyC,KACjCA,EAAUF,EAAA,GAGZ,MAAMf,GAAiBiB,GAAYrC,EAAM,MAAM,cAAyB,EACxEL,EAAY,MAAQ,GACpBC,EAAoB,MAAQ,GAE5BC,EAAK,qBAAqB,CAC5B,CAGA,SAASqC,GAAoBI,EAAyBC,EAAwBC,EAAyC,CAKrH,MAAO,CACL,OAAQF,GAAkB,UAC1B,MAAOC,GAAiB,EACxB,OAAQC,GAAkB,EAAA,CAE9B,CAGA,SAASC,GAAuBlB,EAAiC,CAC/Db,EAAuB,MAAQ,KAC/BL,EAAc,MAAQkB,EACtBnB,EAAsB,MAAQ,EAChC,CAEA,eAAesC,IAAe,CAC5B,MAAMnB,EAAQlB,EAAc,MAC5B,GAAIkB,EAAO,CAEToB,EAAsB,GAAI,EAC1BjD,EAAyB,MAAM,KAAK6B,CAAK,EAEzCA,EAAM,eAAiB,CAAE,OAAQ,iBAAkB,QAAS,8BAAA,EAC5DA,EAAM,qBAAuB,IAAI,KAAA,EAAO,YAAA,EAExC,MAAMF,EAAS,MAAMb,EAAmB,aAAae,EAAM,EAAE,EACzDf,EAAmB,QAAQa,CAAM,GACnCX,EAAuB,MAAQ,GAC/BkC,EAAaC,EAAK,MAAO,QAAS,gCAAgCxB,EAAO,OAAO,EAAE,IAElFX,EAAuB,MAAQ,GAC/BkC,EAAaC,EAAK,KAAM,OAAQ,0BAA0B,EAE9D,CACF,CAGA,MAAMC,GAAa,SAAUC,EAAoBC,EAAuBC,EAAgC,CACtG,MAAMC,EAAcD,EAAY,QAAQF,CAAU,EAC5CI,EAAiBF,EAAY,QAAQD,CAAa,EACxD,OAAIE,EAAcC,EACT,aACED,IAAgBC,EAClB,SAGF,WACT,EAEA,SAASC,GAA8BL,EAAoBC,EAAuB,CAChF,OAAOF,GAAWC,EAAYC,EAAe1D,CAA2B,CAC1E,CAEA,MAAM+D,GAAmB,SAAUC,EAAkC,CACnE5D,EAAyB,MAAM,OAC7BA,EAAyB,MAAM,UAAW6B,GACjCA,EAAM,KAAO+B,EAAe,EACpC,EACD,CAAA,EAGF9D,EAAc,MAAM,OAClBA,EAAc,MAAM,UAAW+B,GAAUA,EAAM,KAAO+B,EAAe,EAAE,EACvE,CAAA,CAEJ,EAEA,SAASC,EAAgBC,EAAgB,CACvC,OAAQlE,EAAkD,SAASkE,CAAM,CAC3E,CAEA,SAASC,GAAgBC,EAAiB,CACxCxD,EAAO,KAAKyD,GAAW,cAAc,aAAa,KAAKD,CAAO,CAAC,CACjE,CAEA,SAASE,GAAsB,CAC7B,OAAOpE,EAAc,MAAM,KAAM+B,GAAUA,EAAM,eAAe,SAAW,QAAUA,EAAM,eAAe,SAAW,kBAAkB,CACzI,CAEA,SAASoB,EAAsBkB,EAAsB,CAC/C9D,GACF,cAAcA,CAAe,EAG/BA,EAAkB,OAAO,YAAY,IAAM,CAErC,CAACR,GAAiBqE,KACpBjB,EAAsB,GAAI,EAC1BpD,EAAgB,IACPA,GAAiB,CAACqE,MAE3BjB,EAAsB,GAAI,EAC1BpD,EAAgB,IAGlB4B,EAAA,CACF,EAAG0C,CAAY,CACjB,CAEA,OAAAC,GAAY,IAAM,CACZ/D,GACF,cAAcA,CAAe,CAEjC,CAAC,EAEDgE,GAAU,SAAY,CACpB,MAAMlD,EAAA,EACN,IAAImD,EAAkB7B,EAAA,EACjB6B,IACHA,EAAkBpD,EAAY,MAAM,CAAC,GAGvCD,EAAmB,MAAQqD,EAC3B,MAAM7C,EAAA,EAENwB,EAAsB,GAAI,CAC5B,CAAC,cAICsB,EAyI0BC,GAAA,KAAA,WAxIxB,IAuIoB,CAvIpBC,EAuIoBC,GAAA,KAAA,WAtIlB,IAqIU,CArIVC,EAqIU,UArIVC,GAqIU,CApIRD,EAmBM,MAnBNE,GAmBM,aAlBJF,EAEM,MAAA,CAFD,MAAM,sBAAoB,CAC7BA,EAA8B,UAA1B,uBAAqB,CAAA,OAG3BA,EAaM,MAbNG,GAaM,CAZJH,EAWM,MAXNI,GAWM,CAVJC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAL,EAA8C,QAAA,CAAvC,MAAM,eAAA,EAAgB,YAAS,EAAA,GACtCA,EAGS,SAHTM,GAGS,CAFJC,EAAAC,EAAAlE,EAAA,KAAkB,EAAG,IACxB,CAAA,cAAA0D,EAA2B,OAAA,CAArB,MAAM,OAAA,EAAO,KAAA,EAAA,EAAA,GAErBA,EAIK,KAJLS,GAIK,EAHHC,EAAA,EAAA,EAAAC,EAEKC,EAAA,KAAAC,EAF6BtE,EAAA,MAAW,CAAjCI,EAAYmE,SAAxBH,EAEK,KAAA,CAF2C,IAAKG,GAAK,CACxDd,EAAsE,IAAA,CAAlE,QAAKe,EAAAC,GAAUnE,GAAkBF,CAAU,EAAA,CAAA,SAAA,CAAA,CAAA,IAAMA,CAAU,EAAA,EAAAsE,EAAA,CAAA,mBAOzEjB,EA8GM,MA9GNkB,GA8GM,CA7GJlB,EA+FM,MA/FNmB,GA+FM,CA9FJnB,EA6FM,MAAA,KAAA,CA5FJA,EAIM,MAJNoB,GAIM,CAHJpB,EAEM,MAFNqB,GAEM,CADWlG,EAAA,MAAc,SAAM,GAAA,CAAWG,EAAA,WAA9CsE,EAAsJ0B,GAAA,OAA3F,MAAM,iBAAiB,QAAQ,iDAAA,iBAI9FtB,EAqFM,MArFNuB,GAqFM,CApFJvB,EAmFM,MAnFNwB,GAmFM,CAlFOrG,EAAA,MAAc,OAAM,OAA/BwF,EAiFM,MAAAc,GAAA,EAhFJf,EAAA,EAAA,EAAAC,EA+EMC,EAAA,KAAAC,EA7EqB1F,EAAA,MAAa,CAA9B+B,EAAO4D,SAFjBH,EA+EM,MAAA,CA9EH,MAAKe,EAAA,wBAA0BxE,EAAM,eAAe,MAAM,sCAAA,EAE1D,IAAK4D,EACL,SAAU5D,EAAM,OAAK,EACrB,aAAU8D,GAAE9D,EAAM,OAAM,GACxB,aAAU8D,GAAE9D,EAAM,OAAM,GACxB,QAAK6D,EAAAC,GAAU5B,GAAgBlC,EAAM,EAAE,EAAA,CAAA,SAAA,CAAA,CAAA,GAExC8C,EAqEM,MArEN2B,GAqEM,CApEJ3B,EAmEM,MAnEN4B,GAmEM,CAlEJ5B,EAiEM,MAjEN6B,GAiEM,CAhEJ7B,EAsBM,MAtBN8B,GAsBM,CArBJ9B,EAoBM,MApBN+B,GAoBM,CAnBJ/B,EAAiI,IAAA,CAA9H,MAAK0B,EAAA,CAAC,aAAY,CAAA,iBAAmCxE,EAAM,OAAM,qBAAwBA,EAAM,OAAM,CAAA,CAAA,EAAOsD,EAAAtD,EAAM,KAAK,EAAA,CAAA,EAC/FgC,EAAgBhC,EAAM,eAAe,MAAM,YAAtEwD,IAAAC,EAiBI,IAjBJqB,GAiBI,CAhBFlC,EAGemC,EAAA,CAHA,KAAMC,EAAAC,CAAA,GAAU,WAC7B,IAAiB,KAAdjF,EAAM,KAAK,EAAG,WAAQ,CAAA,EAAYA,EAAM,MAAK,GAAvBwD,EAAA,EAAAC,EAAqC,UAAR,GAAC,YAC3CzD,EAAM,2BAAlBwD,EAAA,EAAAC,EAAgH,OAAAyB,GAAnE,yBAAsB5B,EAAGtD,EAAM,yBAAyB,EAAA,CAAA,kCAGvG4C,EAGemC,EAAA,CAHA,KAAMC,EAAAG,CAAA,GAAO,WAAE,IAE5B,eAF4B,kBAE5B,EAAA,GAAAvC,EAAiDwC,EAAA,CAApC,WAAUpF,EAAM,KAAA,6CAG/B4C,EAGemC,EAAA,CAHA,KAAMC,EAAAG,CAAA,GAAO,WAAE,IAE5B,eAF4B,iBAE5B,EAAA,GAAAvC,EAAgDwC,EAAA,CAAnC,WAAUpF,EAAM,IAAA,6CAG/B4C,EAAkJmC,EAAA,CAAnI,KAAMC,EAAAK,CAAA,GAAkB,WAAE,IAAe,eAAf,kBAAe,EAAA,GAAAzC,EAA0EwC,EAAA,CAA7D,WAAUpF,EAAM,8BAAA,oDAKnEgC,EAAgBhC,EAAM,eAAe,MAAM,YAAnEwD,IAAAC,EAeM,MAfN6B,GAeM,CAdJxC,EAaM,MAbNyC,GAaM,CALItH,EAAA,MAAc,OAAM,OAP5ByE,EAWe8C,GAAA,OAVb,QAAQ,OACR,KAAK,KACJ,KAAMR,EAAAK,CAAA,EACN,SAAUrF,EAAM,QAAK,GAAUgC,EAAgBhC,EAAM,eAAe,MAAM,EAC1E,aAAU8D,GAAE9D,EAAM,OAAM,GACxB,aAAU8D,GAAE9D,EAAM,OAAM,GAExB,QAAK6D,EAAAC,GAAO5C,GAAuBlB,CAAK,EAAA,CAAA,MAAA,CAAA,CAAA,aAC1C,IAED,CAAA,GAAAmD,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAFC,kBAED,EAAA,CAAA,wFAKmBnB,EAAgBhC,EAAM,eAAe,MAAM,GAAlEwD,IAAAC,EAqBM,MArBNgC,GAqBM,CApBJ3C,EAmBM,MAnBN4C,GAmBM,CAlBJ5C,EAiBM,MAjBN6C,GAiBM,CAhBJ7C,EAeM,MAfN8C,GAeM,CAdJ9C,EAQK,KARL+C,GAQK,CAPO7F,EAAM,eAAe,SAAM,wBAArCyD,EAEK,KAAA,OAF0D,QAAO5B,GAA6B,iBAAmB7B,EAAM,eAAe,MAAM,CAAA,CAAA,mBAC/I8C,EAA4E,MAAA,CAAvE,MAAM,4BAAA,EAA6B,iCAA8B,EAAA,CAAA,iBAE9D9C,EAAM,eAAe,SAAM,wBAArCyD,EAGK,KAAAqC,GAAA,CAFH3C,EAAA,EAAA,IAAAA,EAAA,EAAA,EAAAL,EAAuF,MAAA,CAAlF,MAAM,4CAAA,EAA6C,4BAAyB,EAAA,GACQ9C,EAAM,2BAAyB,QAAxHyD,EAAwL,SAAA,OAAhL,KAAK,SAAS,MAAM,uDAAuG,QAAKI,EAAAC,GAAOhC,GAAiB9B,CAAK,EAAA,CAAA,MAAA,CAAA,CAAA,EAAG,UAAO,EAAA+F,EAAA,0BAGnLjD,EAIM,MAJNkD,GAIM,CAHJpD,EAAwImC,EAAA,CAAzH,KAAMC,EAAAG,CAAA,GAAO,WAAE,IAA0B,iBAA1B,6BAA0B,EAAA,GAAAvC,EAAgEwC,EAAA,CAAnD,WAAUpF,EAAM,oBAAA,6CACjEA,EAAM,eAAe,SAAM,wBAA/C0C,EAAgJqC,EAAA,OAAvE,KAAMC,EAAAC,CAAA,CAAA,aAAY,IAAoB,GAApB,uBAAoB3B,EAAGtD,EAAM,KAAK,EAAA,CAAA,CAAA,iCACzGA,EAAM,eAAe,SAAM,wBAA/C0C,EAAsJqC,EAAA,OAA7E,KAAMC,EAAAC,CAAA,CAAA,aAAY,IAA0B,GAA1B,6BAA0B3B,EAAGtD,EAAM,KAAK,EAAA,CAAA,CAAA,oGAgB/J0C,EAWWuD,GAAA,CAXD,GAAG,iBAAe,CAElBpH,EAAA,WADR6D,EASiBwD,GAAA,OAPd,wBAAQrH,EAAA,MAAqB,IAC7B,UAAOsE,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAW,GAAA,CAAmBjF,EAAA,MAAqB,GAA0BsC,GAAA,IAIzE,QAAS,+CACT,KAAM,qEAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-Db-93Q4_.css b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-Db-93Q4_.css new file mode 100644 index 0000000000..045d650327 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessageGroups-Db-93Q4_.css @@ -0,0 +1 @@ +.lead[data-v-7bf81429],.box p .lead[data-v-7bf81429]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-7bf81429]{cursor:pointer}.panel-retry[data-v-7bf81429]{background-color:#1a1a1a;border:none;color:#fff}.panel-retry p.lead[data-v-7bf81429]{color:#fff}.panel-retry span.metadata[data-v-7bf81429],.panel-retry sp-moment[data-v-7bf81429]{color:#b0b5b5!important}div.retry-completed.bulk-retry-progress-status[data-v-7bf81429]{color:#fff;font-weight:700}.progress.bulk-retry-progress[data-v-7bf81429]{margin-bottom:0;background-color:#333}.retry-completed[data-v-7bf81429],ul.retry-request-progress button[data-v-7bf81429]{display:inline-block}ul.retry-request-progress button[data-v-7bf81429]{background-color:var(--sp-blue)}ul.retry-request-progress li>div[data-v-7bf81429]{margin-bottom:6px}.btn.btn-sm[data-v-7bf81429]{color:var(--sp-blue);font-size:14px;font-weight:700;padding:0 36px 10px 0}.panel[data-v-7bf81429]{margin-bottom:20px;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px #0000000d}.panel-body[data-v-7bf81429]{padding:15px}.panel-body ul[data-v-7bf81429]{list-style:none;padding-left:0}.panel-body ul[data-v-7bf81429]{list-style:none}.op-metadata[data-v-7bf81429]{border-top:1px solid #414242;padding-top:15px}.note[data-v-7bf81429]{margin-bottom:10px;background-color:#fcf8e3;border:1px solid #faebcc;padding:10px 15px}.metadata.danger[data-v-7bf81429],.metadata.danger>.danger[data-v-7bf81429]{font-weight:400!important}.icon[data-v-7bf81429]{color:var(--reduced-emphasis)}button .icon[data-v-7bf81429]{margin-right:2px}.fake-link i[data-v-7bf81429]{padding-right:.2em}.msg-group-menu.dropdown[data-v-7bf81429]{float:right}.dropdown>button[data-v-7bf81429]:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline} diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessages-CsEvcZRt.css b/src/ServiceControl/wwwroot/assets/DeletedMessages-CsEvcZRt.css new file mode 100644 index 0000000000..f97c08ef95 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessages-CsEvcZRt.css @@ -0,0 +1 @@ +.dropdown>button[data-v-24571ba4]:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline}.icon[data-v-24571ba4]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js b/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js new file mode 100644 index 0000000000..59e5356908 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js @@ -0,0 +1,2 @@ +import{e as te,f as se,r as n,ay as oe,w as ae,aD as ne,s as le,u as re,az as ie,ad as de,o as ue,p as M,n as a,x as B,v as D,aq as ce,q as s,m as d,t as u,B as v,y as L,_ as ge,z as fe,ag as ve,K as _e,L as pe,ai as me,a5 as he,T as be,C as we,ax as ye,P as De,Q as Se,h as H,U as ke}from"./index-tFZp7u44.js";import{M as Ce}from"./MessageList-Crzvyqel.js";const Ie={name:"message_groups"},Pe={key:0,class:"row"},$e={class:"col-sm-12"},Ae={key:0,class:"active break group-title"},Me={class:"active group-title group-message-count"},He={class:"row"},Re={class:"col-9"},Te={class:"btn-toolbar"},xe=["disabled"],Ne={class:"col-3"},Ve={class:"msg-group-menu dropdown"},Be={type:"button",class:"btn btn-default dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},Le={class:"dropdown-menu"},Oe=["onClick"],Ee={class:"row"},Fe={class:"col-12"},Ue={key:1,class:"row"},O=50,qe=te({__name:"DeletedMessages",setup(ze){let _=!1,c;const E=se(),R=n(E.params.groupId),i=n(""),p=n(1),S=n(0),T=oe().cookies,k=["All Deleted","Deleted in the last 2 Hours","Deleted in the last 1 Day","Deleted in the last 7 days"],m=n("Deleted in the last 7 days"),h=n(!1),l=n(),r=n([]);ae(p,()=>b());const F=ne(),{configuration:U}=le(F),C=re();function b(){let e=new Date(0);const t=new Date;switch(m.value){case"All Deleted":e=new Date,e.setHours(e.getHours()-24*365);break;case"Deleted in the last 2 Hours":e=new Date,e.setHours(e.getHours()-2);break;case"Deleted in the last 1 Day":e=new Date,e.setHours(e.getHours()-24);break;case"Deleted in the last 7 days":e=new Date,e.setHours(e.getHours()-168);break}return z(R.value,p.value,"","",e.toISOString(),t.toISOString())}async function q(e){const[,t]=await C.fetchTypedFromServiceControl(`archive/groups/id/${e}`);i.value=t.title}function z(e,t=1,o="modified",P="desc",N=new Date(0).toISOString(),W=new Date().toISOString()){const X=N+"..."+W;let $;e&&!i.value&&($=q(e));async function Z(){try{const[A,y]=await C.fetchTypedFromServiceControl(`${e?`recoverability/groups/${e}/`:""}errors?status=archived&page=${t}&per_page=${O}&sort=${o}&direction=${P}&modified=${X}`);S.value=parseInt(A.headers.get("Total-Count")??"0"),r.value.length&&y.length&&r.value.forEach(g=>{const f=y.find(ee=>ee.id===g.id);f&&(g.last_modified===f.last_modified&&(f.retryInProgress=g.retryInProgress,f.deleteInProgress=g.deleteInProgress),f.selected=g.selected)}),r.value=G(y)}catch(A){return console.log(A),{message:"error"}}}const V=Z();return $?Promise.all([$,V]):V}function G(e){return e.forEach(t=>{t.error_retention_period=H.duration(U.value?.data_retention.error_retention_period).asHours();const o=H(t.last_modified).add(t.error_retention_period,"hours");t.delete_soon=ot.restoreInProgress=!0),De(Se.INFO,"Info",`restoring ${e.length} messages...`),await C.patchToServiceControl("errors/unarchive",e.map(t=>t.id)),l.value?.deselectAll()}function J(e){m.value=e,T.set("all_deleted_messages_period",e),b()}function x(){return r.value.some(e=>e.restoreInProgress)}function w(e){c!=null&&window.clearInterval(c),c=window.setInterval(()=>{!_&&x()?(w(1e3),_=!0):_&&!x()&&(w(5e3),_=!1),b()},e)}return ie(()=>{R.value="",i.value=""}),de(()=>{c!=null&&window.clearInterval(c)}),ue(()=>{let e=T.get("all_deleted_messages_period");e||(e=k[k.length-1]),m.value=e,b(),w(5e3)}),(e,t)=>(a(),M(ye,null,{default:B(()=>[D(ce,null,{default:B(()=>[s("section",Ie,[i.value&&r.value.length>0?(a(),d("div",Pe,[s("div",$e,[i.value?(a(),d("h1",Ae,v(i.value),1)):u("",!0),s("h3",Me,v(S.value)+" messages in group",1)])])):u("",!0),s("div",He,[s("div",Re,[s("div",Te,[I()?u("",!0):(a(),d("button",{key:0,type:"button",class:"btn btn-default select-all",onClick:Q},"Select all")),I()?(a(),d("button",{key:1,type:"button",class:"btn btn-default select-all",onClick:Y},"Clear selection")):u("",!0),s("button",{type:"button",class:"btn btn-default",onClick:t[0]||(t[0]=o=>h.value=!0),disabled:!I()},[D(ge,{icon:fe(ve),class:"icon"},null,8,["icon"]),L(" Restore "+v(K())+" selected",1)],8,xe)])]),s("div",Ne,[s("div",Ve,[t[5]||(t[5]=s("label",{class:"control-label"},"Show:",-1)),s("button",Be,[L(v(m.value)+" ",1),t[4]||(t[4]=s("span",{class:"caret"},null,-1))]),s("ul",Le,[(a(),d(_e,null,pe(k,(o,P)=>s("li",{key:P},[s("a",{onClick:me(N=>J(o),["prevent"])},v(o),9,Oe)])),64))])])])]),s("div",Ee,[s("div",Fe,[D(Ce,{messages:r.value,ref_key:"messageList",ref:l},null,8,["messages"])])]),r.value.length>0?(a(),d("div",Ue,[D(he,{modelValue:p.value,"onUpdate:modelValue":t[1]||(t[1]=o=>p.value=o),"total-count":S.value,"items-per-page":O},null,8,["modelValue","total-count"])])):u("",!0),(a(),M(be,{to:"#modalDisplay"},[h.value?(a(),M(we,{key:0,onCancel:t[2]||(t[2]=o=>h.value=!1),onConfirm:t[3]||(t[3]=o=>{h.value=!1,j()}),heading:"Are you sure you want to restore the selected messages?",body:"Restored messages will be moved back to the list of failed messages."})):u("",!0)]))])]),_:1})]),_:1}))}}),Qe=ke(qe,[["__scopeId","data-v-24571ba4"]]);export{Qe as default}; +//# sourceMappingURL=DeletedMessages-DtYZBHSl.js.map diff --git a/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js.map b/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js.map new file mode 100644 index 0000000000..d327e9e9e3 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DeletedMessages-DtYZBHSl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DeletedMessages-DtYZBHSl.js","sources":["../../../../frontend/src/components/failedmessages/DeletedMessages.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["perPage","pollingFaster","refreshInterval","route","useRoute","groupId","ref","groupName","pageNumber","totalCount","cookies","useCookies","periodOptions","selectedPeriod","showConfirmRestore","messageList","messages","watch","loadMessages","configurationStore","useConfigurationStore","configuration","storeToRefs","serviceControlStore","useServiceControlStore","startDate","endDate","loadPagedMessages","loadGroupDetails","data","page","sortBy","direction","dateRange","loadGroupDetailsPromise","loadDelMessages","response","previousMessage","receivedMessage","m","updateMessagesScheduledDeletionDate","err","loadDelMessagesPromise","message","moment","countdown","numberSelected","selectAll","deselectAll","isAnythingSelected","restoreSelectedMessages","changeRefreshInterval","selectedMessages","useShowToast","TYPE","periodChanged","period","isRestoreInProgress","milliseconds","onBeforeRouteLeave","onUnmounted","onMounted","cookiePeriod","_createBlock","ServiceControlAvailable","_createVNode","LicenseNotExpired","_createElementVNode","_hoisted_1","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","FAIcon","_unref","faArrowRotateRight","_hoisted_10","_hoisted_11","_cache","_hoisted_12","_createTextVNode","_hoisted_13","_Fragment","_renderList","index","_withModifiers","$event","_hoisted_14","_hoisted_15","_hoisted_16","MessageList","_hoisted_17","PaginationStrip","_Teleport","ConfirmDialog"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js new file mode 100644 index 0000000000..dba17cede6 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js @@ -0,0 +1,2 @@ +import{D as m,a as f}from"./DetectedListView-xcFbL_bi.js";import{U as o}from"./userIndicatorMapper-CH8_AcCf.js";import{e as g,bS as k,s as v,l as N,m as l,n as d,t as B,v as s,z as e,q as r,y as n,aI as S,_ as x,B as y,x as i,k as p,K as D,U as _}from"./index-tFZp7u44.js";import"./DropDown-BS-2gDTG.js";const w={key:0,class:"errorContainer text-center"},C=g({__name:"DetectedBrokerQueuesView",setup(E){const{store:a}=k(),{testResults:c}=v(a);return(b,t)=>{const u=N("RouterLink");return d(),l(D,null,[e(c)?.broker_connection_result.connection_successful?B("",!0):(d(),l("div",w,[r("h6",null,[s(x,{icon:e(S),class:"text-danger"},null,8,["icon"]),n(" The connection to "+y(e(a).transportNameForInstructions())+" was not successful.",1)]),r("p",null,[t[2]||(t[2]=n(" You may have not setup all the connection settings, have a look at ",-1)),s(u,{to:e(p).throughput.setup.connectionSetup.link},{default:i(()=>[...t[0]||(t[0]=[n("Connection Setup in Configuration",-1)])]),_:1},8,["to"]),t[3]||(t[3]=n(".",-1)),t[4]||(t[4]=r("br",null,null,-1)),t[5]||(t[5]=n(" If you have set all the connection settings but are still having issues, look at the ",-1)),s(u,{to:e(p).throughput.setup.diagnostics.link},{default:i(()=>[...t[1]||(t[1]=[n("Diagnostics in Configuration",-1)])]),_:1},8,["to"]),t[6]||(t[6]=n(" for more information on how to fix them. ",-1))])])),s(f,{ariaLabel:"Detected broker queues","indicator-options":[e(o).NServiceBusEndpoint,e(o).NotNServiceBusEndpoint,e(o).TransactionalSessionProcessorEndpoint,e(o).SendOnlyEndpoint,e(o).NServiceBusEndpointNoLongerInUse,e(o).PlannedToDecommission,e(o).GatewayOrBridgingEndpoint,e(o).ParticularPlatformEndpoint],source:e(m).Broker,"column-title":"Queue Name","show-endpoint-type-placeholder":!0},{nodata:i(()=>[...t[7]||(t[7]=[n(" No usage data available yet ",-1)])]),_:1},8,["indicator-options","source"])],64)}}}),L=_(C,[["__scopeId","data-v-d1acc9d7"]]);export{L as default}; +//# sourceMappingURL=DetectedBrokerQueuesView-56ONzp-e.js.map diff --git a/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js.map b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js.map new file mode 100644 index 0000000000..8e9b32f1d1 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-56ONzp-e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DetectedBrokerQueuesView-56ONzp-e.js","sources":["../../../../frontend/src/views/throughputreport/endpoints/DetectedBrokerQueuesView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["store","useThroughputStoreAutoRefresh","testResults","storeToRefs","_unref","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_createVNode","FAIcon","faTimes","_createTextVNode","_toDisplayString","_component_RouterLink","_cache","DetectedListView","UserIndicator","DataSource"],"mappings":"mZAUA,KAAM,CAAE,MAAAA,CAAA,EAAUC,EAAA,EACZ,CAAE,YAAAC,CAAA,EAAgBC,EAAYH,CAAK,6DAItBI,EAAAF,CAAA,GAAa,yBAAyB,gCACrDG,IAAAC,EAMM,MANNC,EAMM,CALJC,EAAwI,KAAA,KAAA,CAApIC,EAA8CC,EAAA,CAArC,KAAMN,EAAAO,CAAA,EAAS,MAAM,aAAA,mBAAgBC,EAAA,sBAAmBC,EAAGT,EAAAJ,CAAA,EAAM,6BAAA,GAAiC,uBAAoB,CAAA,CAAA,GACnIQ,EAGI,IAAA,KAAA,eAHD,uEACkE,EAAA,GAAAC,EAAiHK,EAAA,CAApG,GAAIV,KAAW,WAAW,MAAM,gBAAgB,IAAA,aAAM,IAAiC,CAAA,GAAAW,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAAjC,oCAAiC,EAAA,CAAA,kCAAa,IAAC,EAAA,eAAAP,EAAM,KAAA,KAAA,KAAA,EAAA,iBAAA,yFACtG,EAAA,GAAAC,EAAwGK,EAAA,CAA3F,GAAIV,KAAW,WAAW,MAAM,YAAY,IAAA,aAAM,IAA4B,CAAA,GAAAW,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAA5B,+BAA4B,EAAA,CAAA,kCAAa,6CAC/L,EAAA,EAAA,MAGJN,EAiBmBO,EAAA,CAhBjB,UAAU,yBACT,oBAAiB,CAAUZ,EAAAa,CAAA,EAAc,oBAA2Bb,EAAAa,CAAA,EAAc,uBAA8Bb,EAAAa,CAAA,EAAc,sCAA6Cb,EAAAa,CAAA,EAAc,iBAAwBb,EAAAa,CAAA,EAAc,iCAAwCb,EAAAa,CAAA,EAAc,sBAA6Bb,EAAAa,CAAA,EAAc,0BAAiCb,EAAAa,CAAA,EAAc,0BAAA,EAU/W,OAAQb,EAAAc,CAAA,EAAW,OACpB,eAAa,aACZ,iCAAgC,EAAA,GAEtB,SAAO,IAA6B,CAAA,GAAAH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAA7B,gCAA6B,EAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-95Iu1-qH.css b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-95Iu1-qH.css new file mode 100644 index 0000000000..470f153753 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedBrokerQueuesView-95Iu1-qH.css @@ -0,0 +1 @@ +.errorContainer[data-v-d1acc9d7]{margin:20px} diff --git a/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js new file mode 100644 index 0000000000..9e7b570dc4 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js @@ -0,0 +1,2 @@ +import{D as k,a as E}from"./DetectedListView-xcFbL_bi.js";import{U as n}from"./userIndicatorMapper-CH8_AcCf.js";import{e as v,bS as w,s as x,l as y,m as r,n as i,t as d,v as s,z as o,K as p,q as a,y as e,aI as N,_ as S,x as l,k as m,U as C}from"./index-tFZp7u44.js";import"./DropDown-BS-2gDTG.js";const D={key:0,class:"errorContainer text-center"},T=v({__name:"DetectedEndpointsView",setup(b){const{store:f}=w(),{isBrokerTransport:c,hasErrors:g}=x(f);return(B,t)=>{const u=y("RouterLink");return i(),r(p,null,[o(c)?d("",!0):(i(),r(p,{key:0},[o(g)?(i(),r("div",D,[a("h6",null,[s(S,{icon:o(N),class:"text-danger"},null,8,["icon"]),t[0]||(t[0]=e(" There were some errors collecting usage data.",-1))]),a("p",null,[t[3]||(t[3]=e(" You may have not setup all the connection settings, have a look at ",-1)),s(u,{to:o(m).throughput.setup.connectionSetup.link},{default:l(()=>[...t[1]||(t[1]=[e("Connection Setup in Configuration",-1)])]),_:1},8,["to"]),t[4]||(t[4]=e(".",-1)),t[5]||(t[5]=a("br",null,null,-1)),t[6]||(t[6]=e(" If you have set all the connection settings but are still having issues, look at the ",-1)),s(u,{to:o(m).throughput.setup.diagnostics.link},{default:l(()=>[...t[2]||(t[2]=[e("Diagnostics in Configuration",-1)])]),_:1},8,["to"]),t[7]||(t[7]=e(" for more information on how to fix them. ",-1))])])):d("",!0)],64)),s(E,{ariaLabel:"Detected endpoints","indicator-options":[o(n).NServiceBusEndpoint,o(n).TransactionalSessionProcessorEndpoint,o(n).SendOnlyEndpoint,o(n).NServiceBusEndpointNoLongerInUse,o(n).PlannedToDecommission,o(n).GatewayOrBridgingEndpoint,o(n).ParticularPlatformEndpoint],source:o(k).WellKnownEndpoint,"column-title":"Endpoint Name","show-endpoint-type-placeholder":!1},{nodata:l(()=>[...t[8]||(t[8]=[e(" No usage data available yet ",-1)])]),_:1},8,["indicator-options","source"])],64)}}}),P=C(T,[["__scopeId","data-v-4b8c1b43"]]);export{P as default}; +//# sourceMappingURL=DetectedEndpointsView-BQXpsrAA.js.map diff --git a/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js.map b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js.map new file mode 100644 index 0000000000..7f0eee30a8 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BQXpsrAA.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DetectedEndpointsView-BQXpsrAA.js","sources":["../../../../frontend/src/views/throughputreport/endpoints/DetectedEndpointsView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["store","useThroughputStoreAutoRefresh","isBrokerTransport","hasErrors","storeToRefs","_unref","_createElementBlock","_Fragment","_openBlock","_hoisted_1","_createElementVNode","_createVNode","FAIcon","faTimes","_component_RouterLink","_cache","DetectedListView","UserIndicator","DataSource"],"mappings":"yYAUA,KAAM,CAAE,MAAAA,CAAA,EAAUC,EAAA,EACZ,CAAE,kBAAAC,EAAmB,UAAAC,GAAcC,EAAYJ,CAAK,6DAIvCK,EAAAH,CAAA,gBAAjBI,EAUWC,EAAA,CAAA,IAAA,GAAA,CATOF,EAAAF,CAAA,GACdK,IAAAF,EAMM,MANNG,EAMM,CALJC,EAAqG,KAAA,KAAA,CAAjGC,EAA8CC,EAAA,CAArC,KAAMP,EAAAQ,CAAA,EAAS,MAAM,aAAA,iCAAgB,iDAA8C,EAAA,EAAA,GAChGH,EAGI,IAAA,KAAA,eAHD,uEACkE,EAAA,GAAAC,EAAiHG,EAAA,CAApG,GAAIT,KAAW,WAAW,MAAM,gBAAgB,IAAA,aAAM,IAAiC,CAAA,GAAAU,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAAjC,oCAAiC,EAAA,CAAA,kCAAa,IAAC,EAAA,eAAAL,EAAM,KAAA,KAAA,KAAA,EAAA,iBAAA,yFACtG,EAAA,GAAAC,EAAwGG,EAAA,CAA3F,GAAIT,KAAW,WAAW,MAAM,YAAY,IAAA,aAAM,IAA4B,CAAA,GAAAU,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAA5B,+BAA4B,EAAA,CAAA,kCAAa,6CAC/L,EAAA,EAAA,qBAINJ,EAgBmBK,EAAA,CAfjB,UAAU,qBACT,oBAAiB,CAAUX,EAAAY,CAAA,EAAc,oBAA2BZ,EAAAY,CAAA,EAAc,sCAA6CZ,EAAAY,CAAA,EAAc,iBAAwBZ,EAAAY,CAAA,EAAc,iCAAwCZ,EAAAY,CAAA,EAAc,sBAA6BZ,EAAAY,CAAA,EAAc,0BAAiCZ,EAAAY,CAAA,EAAc,0BAAA,EASnU,OAAQZ,EAAAa,CAAA,EAAW,kBACpB,eAAa,gBACZ,iCAAgC,EAAA,GAEtB,SAAO,IAA6B,CAAA,GAAAH,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,GAA7B,gCAA6B,EAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BUJX0h-6.css b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BUJX0h-6.css new file mode 100644 index 0000000000..36dc3d6284 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedEndpointsView-BUJX0h-6.css @@ -0,0 +1 @@ +.errorContainer[data-v-4b8c1b43]{margin:20px} diff --git a/src/ServiceControl/wwwroot/assets/DetectedListView-Bu_kDOke.css b/src/ServiceControl/wwwroot/assets/DetectedListView-Bu_kDOke.css new file mode 100644 index 0000000000..1fb7d027cd --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedListView-Bu_kDOke.css @@ -0,0 +1 @@ +.formatThroughputColumn[data-v-71396cbc]{padding-right:20px}.format-text[data-v-71396cbc]{font-weight:unset;font-size:14px;min-width:120px}.text-search-container[data-v-71396cbc]{display:flex;flex-direction:row}.text-search[data-v-71396cbc]{width:130px}.endpointType[data-v-71396cbc]{width:340px}.filters[data-v-71396cbc]{background-color:#f3f3f3;margin-top:5px;border:#8c8c8c 1px solid;border-radius:3px;padding:5px} diff --git a/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js b/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js new file mode 100644 index 0000000000..9b9d4a24a5 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js @@ -0,0 +1,2 @@ +import{bU as $,r as p,e as te,aW as ne,bV as ae,c as O,bW as oe,o as se,w as le,aM as ie,m as l,n as o,K as g,q as n,p as N,L as x,B as d,v,z as c,R as re,ai as ce,t as T,C as ue,T as de,y as E,a7 as D,_ as S,aE as L,Z as pe,P as he,Q as me,U as ye}from"./index-tFZp7u44.js";import{U as P,u as b}from"./userIndicatorMapper-CH8_AcCf.js";import{D as _e}from"./DropDown-BS-2gDTG.js";var A=(i=>(i.WellKnownEndpoint="ServiceControl",i.Broker="Broker",i))(A||{});const C=p([]),V=p(!1),fe=i=>{C.value.push(i.key)};$(i=>{if(C.value.length>0){const h=setTimeout(()=>C.value.splice(0),5e3);i(()=>clearTimeout(h))}});window.document.addEventListener("keydown",fe);function ge(i){return $(()=>{C.value.toString()===i.toString()&&(V.value=!0)}),V}const ve={class:"row filters"},we={class:"col"},xe={class:"text-search-container"},be=["value"],Ce=["value"],ke={class:"col",style:{"align-content":"center"}},Te={class:"col text-end"},Ee={class:"table"},De={class:"col",colspan:"2"},Se={class:"col",style:{width:"350px","padding-left":"0"}},Le={class:"dropdown"},Ue=["disabled"],Be={class:"dropdown-menu"},Ie=["aria-label","onClick"],Fe=["aria-label"],We={scope:"col"},Me={key:0,scope:"col",class:"text-end formatThroughputColumn"},Oe={key:1,scope:"col",class:"text-end formatThroughputColumn"},Ne={scope:"col"},Pe={key:0},Ve={colspan:"3",class:"text-center"},$e={class:"col","aria-label":"name"},Ae={key:0,class:"col text-end formatThroughputColumn",style:{width:"250px"},"aria-label":"maximum usage throughput"},He={key:1,class:"col text-end formatThroughputColumn",style:{width:"250px"},"aria-label":"maximum usage throughput"},Ke={class:"col",style:{width:"350px"},"aria-label":"endpoint type"},Re=["onChange"],qe={key:0,value:""},ze=["value","selected"],Qe=te({__name:"DetectedListView",props:{ariaLabel:{},columnTitle:{},showEndpointTypePlaceholder:{type:Boolean},indicatorOptions:{},source:{}},setup(i){const h=[{text:"name",comparer:(e,t)=>e.name.localeCompare(t.name)},{text:"throughput",comparer:(e,t)=>e.max_daily_throughput-t.max_daily_throughput},{text:"endpoint type",comparer:(e,t)=>e.user_indicator.localeCompare(t.user_indicator)}].flatMap(e=>[{text:e.text,value:e.text,comparer:e.comparer},{text:`${e.text} (Descending)`,value:`${e.text} (Descending)`,comparer:(t,s)=>-e.comparer(t,s)}]),m=i,y=p([]),_=p(new Map),r=ne({name:"",nameFilterType:"Begins with",sort:"name",showUnsetOnly:!1}),H=ae(),{license:K}=H,U=[{text:"Begins with",filter:e=>e.name.toLowerCase().startsWith(r.name.toLowerCase())},{text:"Contains",filter:e=>e.name.toLowerCase().includes(r.name.toLowerCase())},{text:"Ends with",filter:e=>e.name.toLowerCase().endsWith(r.name.toLowerCase())}],f=O(()=>{const e=h.find(t=>t.value===r.sort);return y.value.filter(t=>!t.name||U.find(s=>s.text===r.nameFilterType)?.filter(t)).filter(t=>r.showUnsetOnly?_.value.get(t.name)?.indicator==="":!0).sort(e?.comparer)}),R=ge(["ArrowUp","ArrowUp","ArrowDown","ArrowDown"]),B=O(()=>K.edition==="MonthlyUsage"||R.value),I=oe();se(async()=>{await F()}),le(y,e=>{_.value=new Map(e.map(t=>[t.name,{indicator:t.user_indicator}]))},{deep:!0});const w=p(!1);function q(){w.value=!1}function z(){w.value=!1,J()}async function F(){const e=await I.endpoints();y.value=e.filter(t=>t.is_known_endpoint===(m.source===A.WellKnownEndpoint))}function Q(e){r.name=e.target.value}function Y(e){r.sort=e.value}function Z(e){r.nameFilterType=e.target.value}function j(e,t){const s=e.target.value;W(t,a=>a.indicator=s),M()}function G(e){k.value=e,w.value=!0}function J(){f.value.forEach(e=>{W(e.name,t=>t.indicator=k.value)}),M()}function W(e,t){const s=_.value.get(e);s&&t(s)}function X(e){r.showUnsetOnly=e.target.checked}const k=p(P.NServiceBusEndpoint);function ee(e){if(e.is_known_endpoint)return P.NServiceBusEndpoint.toString()}async function M(){const e=[];_.value.forEach((t,s)=>{e.push({name:s,user_indicator:t.indicator})}),await I.updateIndicators(e),he(me.SUCCESS,"Saved","",!1,{timeout:1e3}),await F()}return(e,t)=>{const s=ie("tippy");return o(),l(g,null,[n("div",null,[n("div",ve,[n("div",we,[n("div",xe,[n("div",null,[n("select",{class:"form-select text-search format-text","aria-label":"Filter name type",onChange:Z},[(o(),l(g,null,x(U,a=>n("option",{value:a.text,key:a.text},d(a.text),9,be)),64))],32)]),n("div",null,[n("input",{type:"search","aria-label":"Filter by name",class:"form-control format-text",value:r.name,onInput:Q,placeholder:"Filter by name..."},null,40,Ce)])])]),n("div",ke,[n("div",null,[n("input",{type:"checkbox","aria-label":"Show only not set Endpoint Types",class:"check-label",id:"showUnsetOnly",onInput:X},null,32),t[0]||(t[0]=n("label",{for:"showUnsetOnly"},"Show only not set Endpoint Types",-1))])]),n("div",Te,[v(_e,{label:"Sort by","select-item":c(h).find(a=>a.value===r.sort),callback:Y,items:c(h)},null,8,["select-item","items"])])])]),n("table",Ee,[n("tbody",null,[n("tr",null,[n("td",De,[v(re,{displayed:f.value.length,total:y.value.length},null,8,["displayed","total"])]),n("td",Se,[n("div",Le,[n("button",{class:"btn btn-secondary dropdown-toggle","aria-label":"Set Endpoint Type for all items below",disabled:f.value.length===0,type:"button","data-bs-toggle":"dropdown","aria-expanded":"false"}," Set Endpoint Type for all items below ",8,Ue),n("ul",Be,[(o(!0),l(g,null,x(m.indicatorOptions,a=>(o(),l("li",{key:a},[n("a",{href:"#","aria-label":c(b).get(a),onClick:ce(u=>G(a),["prevent"])},d(c(b).get(a)),9,Ie)]))),128))])])])])])]),(o(),N(de,{to:"#modalDisplay"},[w.value?(o(),N(ue,{key:0,heading:"Proceed with bulk operation",body:`Are you sure you want to set ${f.value.length} endpoints to '${c(b).get(k.value)}'?`,onCancel:q,onConfirm:z},null,8,["body"])):T("",!0)])),n("table",{class:"table","aria-label":i.ariaLabel},[n("thead",null,[n("tr",null,[n("th",We,d(m.columnTitle),1),B.value?(o(),l("th",Me,[t[1]||(t[1]=E("Highest monthly throughput ",-1)),D(v(S,{icon:c(L),class:"text-primary"},null,8,["icon"]),[[s,"In the last 12 months"]])])):(o(),l("th",Oe,[t[2]||(t[2]=E("Maximum daily throughput ",-1)),D(v(S,{icon:c(L),class:"text-primary"},null,8,["icon"]),[[s,"In the last 12 months"]])])),n("th",Ne,[t[3]||(t[3]=E("Endpoint Type ",-1)),D(v(S,{icon:c(L),class:"text-primary"},null,8,["icon"]),[[s,"Pick the most correct option"]])])])]),n("tbody",null,[y.value.length===0?(o(),l("tr",Pe,[n("td",Ve,[pe(e.$slots,"nodata",{},void 0,!0)])])):T("",!0),(o(!0),l(g,null,x(f.value,a=>(o(),l("tr",{key:a.name},[n("td",$e,d(a.name),1),B.value?(o(),l("td",Ae,d(a.max_monthly_throughput?a.max_monthly_throughput.toLocaleString():"0"),1)):(o(),l("td",He,d(a.max_daily_throughput.toLocaleString()),1)),n("td",Ke,[n("select",{class:"form-select endpointType format-text",onChange:u=>j(u,a.name)},[m.showEndpointTypePlaceholder?(o(),l("option",qe,"Pick the most appropriate option")):T("",!0),(o(!0),l(g,null,x(m.indicatorOptions,u=>(o(),l("option",{key:u,value:u,selected:(_.value.get(a.name)?.indicator??ee(a))===u},d(c(b).get(u)),9,ze))),128))],40,Re)])]))),128))])],8,Fe)],64)}}}),Ge=ye(Qe,[["__scopeId","data-v-71396cbc"]]);export{A as D,Ge as a}; +//# sourceMappingURL=DetectedListView-xcFbL_bi.js.map diff --git a/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js.map b/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js.map new file mode 100644 index 0000000000..2aa0abdced --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DetectedListView-xcFbL_bi.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DetectedListView-xcFbL_bi.js","sources":["../../../../frontend/src/views/throughputreport/endpoints/dataSource.ts","../../../../frontend/src/views/throughputreport/endpoints/useHiddenFeature.ts","../../../../frontend/src/views/throughputreport/endpoints/DetectedListView.vue"],"sourcesContent":["export enum DataSource {\n \"WellKnownEndpoint\" = \"ServiceControl\",\n \"Broker\" = \"Broker\",\n}\n","import { ref, watchEffect } from \"vue\";\n\nconst keys = ref([]);\nconst hiddenFeatureEnabled = ref(false);\nconst keyHandler = (event: KeyboardEvent) => {\n keys.value.push(event.key);\n};\n\nwatchEffect((onCleanup) => {\n if (keys.value.length > 0) {\n const timeout = setTimeout(() => keys.value.splice(0), 5000);\n onCleanup(() => clearTimeout(timeout));\n }\n});\n\nwindow.document.addEventListener(\"keydown\", keyHandler);\n\nexport function useHiddenFeature(keyCombo: string[]) {\n watchEffect(() => {\n if (keys.value.toString() === keyCombo.toString()) {\n hiddenFeatureEnabled.value = true;\n }\n });\n\n return hiddenFeatureEnabled;\n}\n","\n\n\n\n\n"],"names":["DataSource","keys","ref","hiddenFeatureEnabled","keyHandler","event","watchEffect","onCleanup","timeout","useHiddenFeature","keyCombo","sortData","a","b","item","props","__props","data","dataChanges","filterData","reactive","licenseStore","useLicenseStore","license","filterNameOptions","filteredData","computed","sortItem","value","row","v","hiddenFeatureToggle","showMonthly","throughputClient","createThroughputClient","onMounted","loadData","watch","showBulkUpdateWarning","cancelChangesWarning","proceedWithChangesWarning","updateIndicators","results","nameFilterChanged","sortChanged","searchTypeChanged","updateIndicator","name","updateDataChanged","save","showBulkUpdateIndicatorWarning","indicator","bulkOperation","action","showUnsetChanged","UserIndicator","getDefaultEndpointType","updateData","key","useShowToast","TYPE","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_createElementBlock","_Fragment","_renderList","_toDisplayString","_hoisted_4","_hoisted_6","_cache","_hoisted_7","_createVNode","DropDown","_unref","_hoisted_8","_hoisted_9","ResultsCount","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_openBlock","userIndicatorMapper","_withModifiers","$event","_hoisted_14","_createBlock","_Teleport","ConfirmDialog","_hoisted_16","_hoisted_17","FAIcon","faInfoCircle","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_renderSlot","_ctx","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_27","_hoisted_28"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js b/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js new file mode 100644 index 0000000000..964f51b40f --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js @@ -0,0 +1,2 @@ +import{e as k,m as l,n as s,K as _,q as t,p as r,_ as p,z as e,a3 as w,aI as R,B as g,Z as x,U as h,bS as B,s as m,u as S,r as T,t as u,x as v}from"./index-tFZp7u44.js";const V={class:"title"},$={class:"instructions"},D=k({__name:"ConnectionResultView",props:{result:{},title:{}},setup(c){const i=c;return(n,f)=>(s(),l(_,null,[t("div",V,[c.result.connection_successful?(s(),r(p,{key:0,icon:e(w),class:"text-success"},null,8,["icon"])):(s(),r(p,{key:1,icon:e(R),class:"text-danger"},null,8,["icon"])),t("strong",null,g(i.title),1)]),t("div",$,[x(n.$slots,"instructions",{},void 0,!0)]),t("pre",null,g(i.result.diagnostics),1)],64))}}),d=h(D,[["__scopeId","data-v-b4a4142b"]]),I={class:"row"},A={key:0,class:"sp-loader"},E={class:"row"},L={class:"col-6"},M=["disabled"],N=k({__name:"DiagnosticsView",setup(c){const{store:i}=B(),{testResults:n,isBrokerTransport:f}=m(i),b=S(),{isMonitoringEnabled:C}=m(b),a=T(!1);async function y(){a.value=!0,await i.refresh(),a.value=!1}return(q,o)=>(s(),l(_,null,[t("div",I,[o[3]||(o[3]=t("h6",null,"Test Connection Results",-1)),a.value?(s(),l("div",A)):(s(),l(_,{key:1},[e(f)&&e(n)!==null?(s(),r(d,{key:0,title:"Broker",result:e(n).broker_connection_result},null,8,["result"])):u("",!0),e(n)!==null?(s(),r(d,{key:1,title:"Audit",result:e(n).audit_connection_result},{instructions:v(()=>[...o[1]||(o[1]=[t("a",{href:"https://docs.particular.net/servicecontrol/servicecontrol-instances/remotes#configuration",target:"_blank"},"Learn how to configure audit instances",-1)])]),_:1},8,["result"])):u("",!0),e(C)&&e(n)!==null?(s(),r(d,{key:2,title:"Monitoring",result:e(n).monitoring_connection_result},{instructions:v(()=>[...o[2]||(o[2]=[t("a",{href:"https://docs.particular.net/servicecontrol/monitoring-instances/installation/creating-config-file",target:"_blank"},"Learn how to configure monitor instances",-1)])]),_:1},8,["result"])):u("",!0)],64))]),t("div",E,[t("div",L,[t("button",{class:"btn btn-primary actions",type:"button",disabled:a.value,onClick:o[0]||(o[0]=z=>y()),"aria-label":"Refresh Connection Test"},"Refresh Connection Test",8,M)])])],64))}}),K=h(N,[["__scopeId","data-v-f7a6e696"]]);export{K as default}; +//# sourceMappingURL=DiagnosticsView-D55zsMZT.js.map diff --git a/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js.map b/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js.map new file mode 100644 index 0000000000..fee3b0ebe7 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DiagnosticsView-D55zsMZT.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DiagnosticsView-D55zsMZT.js","sources":["../../../../frontend/src/views/throughputreport/setup/ConnectionResultView.vue","../../../../frontend/src/views/throughputreport/setup/DiagnosticsView.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["props","__props","_createElementVNode","_hoisted_1","_createBlock","FAIcon","_unref","faCheck","faTimes","_toDisplayString","_hoisted_2","_renderSlot","_ctx","store","useThroughputStoreAutoRefresh","testResults","isBrokerTransport","storeToRefs","serviceControlStore","useServiceControlStore","isMonitoringEnabled","loading","ref","testConnection","_cache","_openBlock","_createElementBlock","_Fragment","ConnectionResultView","_hoisted_3","_hoisted_4","_hoisted_5"],"mappings":"iSAKA,MAAMA,EAAQC,8BAOZC,EAIM,MAJNC,EAIM,CAHUF,EAAA,OAAO,2BAArBG,EAAmFC,EAAA,OAAtC,KAAMC,EAAAC,CAAA,EAAS,MAAM,cAAA,yBAClEH,EAAqDC,EAAA,OAArC,KAAMC,EAAAE,CAAA,EAAS,MAAM,aAAA,oBACrCN,EAAoC,SAAA,KAAAO,EAAxBT,EAAM,KAAK,EAAA,CAAA,CAAA,GAEzBE,EAAiE,MAAjEQ,EAAiE,CAAvCC,EAAiCC,EAAA,OAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,GAC3DV,EAAyC,MAAA,KAAAO,EAAjCT,EAAM,OAAO,WAAW,EAAA,CAAA,CAAA,uLCXlC,KAAM,CAAE,MAAAa,CAAA,EAAUC,EAAA,EACZ,CAAE,YAAAC,EAAa,kBAAAC,GAAsBC,EAAYJ,CAAK,EACtDK,EAAsBC,EAAA,EACtB,CAAE,oBAAAC,CAAA,EAAwBH,EAAYC,CAAmB,EACzDG,EAAUC,EAAI,EAAK,EAEzB,eAAeC,GAAiB,CAC9BF,EAAQ,MAAQ,GAChB,MAAMR,EAAM,QAAA,EACZQ,EAAQ,MAAQ,EAClB,6BAIEnB,EAkBM,MAlBNC,EAkBM,CAjBJqB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAtB,EAAgC,UAA5B,0BAAuB,EAAA,GACXmB,EAAA,OACdI,EAAA,EAAAC,EAAyB,MAAzBhB,CAAyB,QAE3BgB,EAYWC,EAAA,CAAA,IAAA,GAAA,CAXmBrB,EAAAU,CAAA,GAAqBV,EAAAS,CAAA,IAAW,UAA5DX,EAAuIwB,EAAA,OAAhE,MAAM,SAAU,OAAQtB,EAAAS,CAAA,EAAY,wBAAA,+BAC/ET,EAAAS,CAAA,IAAW,UAAvCX,EAIuBwB,EAAA,OAJ2B,MAAM,QAAS,OAAQtB,EAAAS,CAAA,EAAY,uBAAA,GACxE,eACT,IAA8J,CAAA,GAAAS,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAA9JtB,EAA8J,IAAA,CAA3J,KAAK,4FAA4F,OAAO,QAAA,EAAS,yCAAsC,EAAA,CAAA,kCAGlII,EAAAc,CAAA,GAAuBd,EAAAS,CAAA,IAAW,UAA9DX,EAIuBwB,EAAA,OAJkD,MAAM,aAAc,OAAQtB,EAAAS,CAAA,EAAY,4BAAA,GACpG,eACT,IAAwK,CAAA,GAAAS,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAA,CAAxKtB,EAAwK,IAAA,CAArK,KAAK,oGAAoG,OAAO,QAAA,EAAS,2CAAwC,EAAA,CAAA,0CAK5KA,EAIM,MAJN2B,EAIM,CAHJ3B,EAEM,MAFN4B,EAEM,CADJ5B,EAAyK,SAAA,CAAjK,MAAM,0BAA0B,KAAK,SAAU,SAAUmB,EAAA,MAAU,uBAAOE,KAAkB,aAAW,yBAAA,EAA0B,0BAAuB,EAAAQ,CAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DiagnosticsView-DrEl_R4b.css b/src/ServiceControl/wwwroot/assets/DiagnosticsView-DrEl_R4b.css new file mode 100644 index 0000000000..08358de5eb --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DiagnosticsView-DrEl_R4b.css @@ -0,0 +1 @@ +.title[data-v-b4a4142b]{margin-top:10px}.instructions[data-v-b4a4142b]{margin-bottom:10px}.sp-loader[data-v-f7a6e696]{width:100%;height:90vh;margin-top:-100px;background-image:url(./sp-loader-xerIu_Om.gif);background-size:150px 150px;background-position:center center;background-repeat:no-repeat} diff --git a/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js b/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js new file mode 100644 index 0000000000..aaa4baac5a --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js @@ -0,0 +1,2 @@ +import{e as r,m as a,n as o,t as c,q as s,B as l,K as d,L as i,ai as p,U as b}from"./index-tFZp7u44.js";const u={class:"dropdown"},m={key:0,class:"control-label",style:{float:"inherit"}},_=["aria-label"],h={class:"dropdown-menu"},w=["aria-label","onClick"],f=r({__name:"DropDown",props:{label:{},selectItem:{},items:{},callback:{type:Function}},setup(e){const n=e;return(k,x)=>(o(),a("div",u,[e.label?(o(),a("label",m,l(e.label)+":",1)):c("",!0),s("button",{type:"button","aria-label":e.label??"open dropdown menu",class:"btn btn-dropdown dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},l(n.selectItem?.text??n.items[0].text),9,_),s("ul",h,[(o(!0),a(d,null,i(n.items,t=>(o(),a("li",{key:t.value},[s("a",{href:"#","aria-label":t.text,onClick:p(g=>e.callback(t),["prevent"])},l(t.text),9,w)]))),128))])]))}}),D=b(f,[["__scopeId","data-v-ca06108e"]]);export{D}; +//# sourceMappingURL=DropDown-BS-2gDTG.js.map diff --git a/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js.map b/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js.map new file mode 100644 index 0000000000..2b9e478584 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DropDown-BS-2gDTG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"DropDown-BS-2gDTG.js","sources":["../../../../frontend/src/components/DropDown.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["props","__props","_openBlock","_createElementBlock","_hoisted_1","_hoisted_2","_toDisplayString","_createElementVNode","_hoisted_3","_hoisted_4","_Fragment","_renderList","item","_withModifiers","$event","_hoisted_5"],"mappings":"kWAMA,MAAMA,EAAQC,gBASZC,EAAA,EAAAC,EAUM,MAVNC,EAUM,CATSH,EAAA,OAAbC,EAAA,EAAAC,EAAqF,QAArFE,EAAqFC,EAAjBL,EAAA,KAAK,EAAG,IAAC,CAAA,YAC7EM,EAES,SAAA,CAFD,KAAK,SAAU,aAAYN,EAAA,OAAK,qBAA0B,MAAM,+CAA+C,iBAAe,WAAW,gBAAc,OAAO,gBAAc,OAAA,IAC/KD,EAAM,YAAY,MAAQA,EAAM,MAAK,CAAA,EAAI,IAAI,EAAA,EAAAQ,CAAA,EAElDD,EAIK,KAJLE,EAIK,EAHHP,EAAA,EAAA,EAAAC,EAEKO,EAAA,KAAAC,EAFcX,EAAM,MAAdY,QAAXT,EAEK,KAAA,CAF4B,IAAKS,EAAK,KAAA,GACzCL,EAAuF,IAAA,CAApF,KAAK,IAAK,aAAYK,EAAK,KAAO,QAAKC,EAAAC,GAAUb,EAAA,SAASW,CAAI,EAAA,CAAA,SAAA,CAAA,CAAA,EAAMN,EAAAM,EAAK,IAAI,EAAA,EAAAG,CAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/DropDown-THVkZnRN.css b/src/ServiceControl/wwwroot/assets/DropDown-THVkZnRN.css new file mode 100644 index 0000000000..c1ed0d6e1d --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/DropDown-THVkZnRN.css @@ -0,0 +1 @@ +.dropdown .dropdown-menu[data-v-ca06108e]{top:2.25em;margin-left:4.5em}.btn.btn-dropdown[data-v-ca06108e]{padding:.5em 1em}.btn.dropdown-toggle[data-v-ca06108e]:after{vertical-align:middle}ul.dropdown-menu li a span[data-v-ca06108e]{color:#aaa} diff --git a/src/ServiceControl/wwwroot/assets/EndpointConnection-DTPPrqX8.css b/src/ServiceControl/wwwroot/assets/EndpointConnection-DTPPrqX8.css new file mode 100644 index 0000000000..f7fd012789 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointConnection-DTPPrqX8.css @@ -0,0 +1 @@ +.configuration[data-v-30bc303b] pre{border:none;background-color:#282c34}.box>.row[data-v-30bc303b]{margin-left:0}section[name=platformconnection] ol[data-v-30bc303b]{font-size:16px;padding-left:18px;margin:15px 0 0}section[name=platformconnection] li[data-v-30bc303b]{margin-bottom:15px}[data-v-30bc303b] .code{padding-bottom:20px}.tabs-config-snippets .tabs[data-v-30bc303b]{margin:30px 0 15px}.tabs-config-snippets highlight[data-v-30bc303b]{margin-bottom:20px;display:block}.tabs-config-snippets p[data-v-30bc303b]{font-size:16px;color:#181919}.tabs-config-snippets .alert[data-v-30bc303b]{margin-bottom:15px}.tabs-config-snippets .alert li[data-v-30bc303b]{margin-bottom:0} diff --git a/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js b/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js new file mode 100644 index 0000000000..c60029d1fc --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js @@ -0,0 +1,8 @@ +import{e as j,u as x,s as M,r as u,o as A,m as a,n as l,v,x as S,aq as B,q as o,y as d,a7 as O,t as g,bf as F,a8 as J,E as w,K as $,L as R,B as V,ax as q,U as L}from"./index-tFZp7u44.js";import{C}from"./CodeEditor-tk58yQKj.js";const U={name:"platformconnection"},D={class:"box configuration"},H={class:"row tabs-config-snippets"},Q={class:"col-12"},z={key:0,class:"tabs",role:"tablist"},G={key:1,class:"alert alert-warning",role:"alert"},I={key:2},K={class:"row"},W={class:"col-12 h-100"},X={key:3},Y={class:"row"},Z={class:"col-12 h-100"},ee=j({__name:"EndpointConnection",setup(oe){const f=x(),{serviceControlUrl:y,monitoringUrl:_}=M(f),s=u(!0),c=u(!0),p=u(""),m=u(""),h=u(""),r=u([]);async function b(){s.value=!0;const t=`var servicePlatformConnection = ServicePlatformConnectionConfiguration.Parse(@""); + + endpointConfiguration.ConnectToServicePlatform(servicePlatformConnection); + `;p.value=`var json = File.ReadAllText(".json"); +var servicePlatformConnection = ServicePlatformConnectionConfiguration.Parse(json); +endpointConfiguration.ConnectToServicePlatform(servicePlatformConnection); +`;const e=await P(),n={Heartbeats:e.serviceControl.settings.Heartbeats,CustomChecks:e.serviceControl.settings.CustomChecks,ErrorQueue:e.serviceControl.settings.ErrorQueue,SagaAudit:e.serviceControl.settings.SagaAudit,MessageAudit:e.serviceControl.settings.MessageAudit,Metrics:e.monitoring.settings};let i=JSON.stringify(n,null,4);h.value=i,i=i.replaceAll('"','""'),m.value=t.replace("",i),r.value=[],r.value=r.value.concat(e.serviceControl.errors||[]),r.value=r.value.concat(e.monitoring.errors||[]),s.value=!1}A(async()=>{await b()});function k(){c.value=!0}function E(){c.value=!1}async function P(){const t=T(),e=N(),[n,i]=await Promise.all([t,e]);return{serviceControl:{settings:n?.settings??{},errors:n?.errors??[]},monitoring:{settings:i?.Metrics??{Enabled:!1},errors:i?.errors??[]}}}async function T(){try{const[,t]=await f.fetchTypedFromServiceControl("connection");return t}catch{return{errors:[`Error reaching ServiceControl at ${y.value} connection`]}}}async function N(){try{const[,t]=await f.fetchTypedFromMonitoring("connection");return{...t,errors:[]}}catch{return{Metrics:null,errors:[`Error SC Monitoring instance at ${_.value}connection`]}}}return(t,e)=>(l(),a("section",U,[v(q,null,{default:S(()=>[v(B,null,{default:S(()=>[o("div",D,[e[6]||(e[6]=o("div",{class:"row"},[o("div",{class:"col-12"},[o("h3",null,"Connect an endpoint to ServiceControl")])],-1)),e[7]||(e[7]=o("div",{class:"row"},[o("div",{class:"col-12"},[o("ol",null,[o("li",null,[d("Add the "),o("a",{href:"https://www.nuget.org/packages/NServiceBus.ServicePlatform.Connector/"},"NServiceBus.ServicePlatform.Connector"),d(" NuGet package to the endpoint project.")]),o("li",null,[d("Copy-paste the code from one of the options below. For additional options, refer to the "),o("a",{href:"https://docs.particular.net/platform/connecting"},"documentation")])])])],-1)),o("div",H,[o("div",Q,[O(v(F,null,null,512),[[J,s.value]]),s.value?g("",!0):(l(),a("div",z,[o("h5",{class:w({active:c.value})},[o("a",{onClick:e[0]||(e[0]=n=>k()),class:"ng-binding"},"Endpoint configuration only")],2),o("h5",{class:w({active:!c.value})},[o("a",{onClick:e[1]||(e[1]=n=>E()),class:"ng-binding"},"JSON file")],2)])),r.value.length>0&&!s.value?(l(),a("div",G,[e[2]||(e[2]=d(" There were problems reaching some ServiceControl instances and the configuration does not contain all connectivity information. ",-1)),o("ul",null,[(l(!0),a($,null,R(r.value,n=>(l(),a("li",{key:n},V(n),1))),128))])])):g("",!0),c.value&&!s.value?(l(),a("section",I,[o("div",K,[o("div",W,[v(C,{"model-value":m.value,language:"csharp","show-gutter":!1},null,8,["model-value"])])])])):g("",!0),!c.value&&!s.value?(l(),a("section",X,[o("div",Y,[o("div",Z,[e[3]||(e[3]=o("p",null,"Note that when using JSON for configuration, you also need to change the endpoint configuration as shown below.",-1)),e[4]||(e[4]=o("p",null,[o("strong",null,"Endpoint configuration:")],-1)),v(C,{"model-value":p.value,language:"csharp","show-gutter":!1},null,8,["model-value"]),e[5]||(e[5]=o("p",{style:{"margin-top":"15px"}},[o("strong",null,"JSON configuration file:")],-1)),v(C,{"model-value":h.value,language:"json","show-gutter":!1},null,8,["model-value"])])])])):g("",!0)])])])]),_:1})]),_:1})]))}}),se=L(ee,[["__scopeId","data-v-30bc303b"]]);export{se as default}; +//# sourceMappingURL=EndpointConnection-DyxHhuiM.js.map diff --git a/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js.map b/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js.map new file mode 100644 index 0000000000..1e8a4aecd4 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointConnection-DyxHhuiM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointConnection-DyxHhuiM.js","sources":["../../../../frontend/src/components/configuration/EndpointConnection.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["serviceControlStore","useServiceControlStore","serviceControlUrl","monitoringUrl","storeToRefs","loading","ref","showCodeOnlyTab","jsonSnippet","inlineSnippet","jsonConfig","queryErrors","getCode","snippetTemplate","connections","serviceControlConnections","config","jsonText","onMounted","switchCodeOnlyTab","switchJsonTab","scConnectionResult","getServiceControlConnection","monitoringConnectionResult","getMonitoringConnection","scConnection","mConnection","data","_openBlock","_createElementBlock","_hoisted_1","_createVNode","ServiceControlAvailable","LicenseNotExpired","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","LoadingSpinner","_hoisted_5","_hoisted_6","_Fragment","_renderList","error","_hoisted_7","_hoisted_8","_hoisted_9","CodeEditor","_hoisted_10","_hoisted_11","_hoisted_12","_cache"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js b/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js new file mode 100644 index 0000000000..dd15deb8a6 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js @@ -0,0 +1,3 @@ +import{d as Ne,bx as $e,by as Se,u as oe,r as A,bz as Ve,bA as N,e as z,s as j,l as Ee,m as a,n as i,q as t,bB as Ie,y as r,B as d,z as e,v as y,k as ee,x as V,U as O,c as C,bC as pe,bh as R,bD as ge,E as G,t as o,K as te,L as se,an as ve,br as le,aM as J,p as H,bE as re,a7 as h,bF as me,bG as Y,bH as U,bI as B,bJ as q,bK as F,i as ce,o as xe,I as L,bL as _e,_ as ie,ab as ke,bt as Me,bM as K,bN as W,bO as ae,J as Ae,N as we,f as De,w as Te,bP as Ge,bQ as he,a5 as Pe,ad as Le,aq as Ue,bR as Be,D as ne,ax as qe}from"./index-tFZp7u44.js";import{c as Fe}from"./messageGroupClient-MAkYdcH-.js";function be(m){return m.split(".").pop()??m}function Re(m){if(m.typeName.indexOf(";")>0){const _=m.typeName.split(";").map(p=>{const g=p.split(","),v={typeName:g[0],assemblyName:g[1],assemblyVersion:g[2].substring(g[2].indexOf("=")+1)};return g[4]?.endsWith("=null")||(v.culture=g[3],v.publicKeyToken=g[4]),v});return{...m,messageTypeHierarchy:_,typeName:_.map(p=>p.typeName).join(", "),shortName:_.map(p=>be(p.typeName)).join(", "),containsTypeHierarchy:!0,tooltipText:_.reduce((p,g)=>(p?`${p} + `:"")+`${g.typeName} |${g.assemblyName}-${g.assemblyVersion}`+(g.culture?` |${g.culture}`:"")+(g.publicKeyToken?` |${g.publicKeyToken}`:""),"")}}const s=m.culture&&m.culture!=="null"?` | Culture=${m.culture}`:"",u=m.publicKeyToken&&m.publicKeyToken!=="null"?` | PublicKeyToken=${m.publicKeyToken}`:"";return{...m,shortName:be(m.typeName),tooltipText:`${m.typeName} | ${m.assemblyName}-${m.assemblyVersion}${s}${u}`}}class ye{totalItems;data;constructor(s){this.totalItems=s.length,this.data=s.filter(u=>u.id&&u.typeName).map(u=>Re(u)).sort((u,_)=>u.typeName.localeCompare(_.typeName))}}function Ke(m){return m.error!==void 0}const Z={points:[],average:0},fe={...Z,timeAxisValues:[]},We=()=>({queueLength:Z,throughput:Z,retries:Z,processingTime:fe,criticalTime:fe}),X={},He=()=>({queueLength:X,throughput:X,retries:X,processingTime:X,criticalTime:X}),ze=()=>({instances:[],digest:{metrics:He()},metricDetails:{metrics:We()},isScMonitoringDisconnected:!1,serviceControlId:"",errorCount:0,isStale:!1,messageTypes:[]}),de=Ne("MonitoringEndpointDetailsStore",()=>{const m=$e(),{store:s}=Se(),u=oe(),_=Fe(),p=Ve((S,f=1)=>{const $=A(null);return{data:$,refresh:async()=>{if(u.isMonitoringEnabled)try{const[,x]=await u.fetchTypedFromMonitoring(`monitored-endpoints/${S}?history=${f}`);$.value=x}catch(x){console.error(x),x instanceof Error&&($.value={error:x.message})}}}}),g=A(""),v=A(ze()),M=A(null),D=A(null),w=A(!1),b=A([]),c=A(!1);async function n(S){const{data:f,refresh:$}=p(S,m.historyPeriod.pVal);if(s.monitoringConnectionState.unableToConnect||await $(),f.value==null||Ke(f.value))v.value.instances.forEach(I=>I.isScMonitoringDisconnected=!0),v.value.isScMonitoringDisconnected=!0,M.value=f.value;else{M.value=null;const I=f.value;v.value.isScMonitoringDisconnected=!1;const E=await Promise.all(I.instances.map(async P=>{const{serviceControlId:Q,errorCount:Ce}=await l("Endpoint Instance",P.id);return{...P,serviceControlId:Q,errorCount:Ce,isScMonitoringDisconnected:!1}}));if(E.sort((P,Q)=>P.id.localeCompare(Q.id)),v.value.isStale=E.every(P=>P.isStale),S===g.value&&v.value.messageTypes.length>0&&v.value.messageTypes.length!==I.messageTypes.length){const{messageTypes:P,...Q}=I;v.value={...v.value,...Q,instances:E},w.value=!0,b.value=P}else v.value={...v.value,...f.value,instances:E};g.value=S,D.value=new ye(v.value.messageTypes),c.value=v.value.instances.some(P=>parseInt(N(P.metrics.criticalTime).value)<0)}const{serviceControlId:x,errorCount:k}=await l("Endpoint Name",g.value);v.value.serviceControlId=x,v.value.errorCount=k}async function l(S,f){const x=(await _.getExceptionGroupsForEndpoint(S,f))[0];return{serviceControlId:x?.id??"",errorCount:x?.count??0}}function T(){w.value&&(w.value=!1,v.value.messageTypes=b.value,b.value=[],D.value=new ye(v.value.messageTypes))}return{endpointName:g,endpointDetails:v,endpointError:M,messageTypes:D,messageTypesAvailable:w,messageTypesUpdatedSet:b,negativeCriticalTimeIsPresent:c,updateMessageTypes:T,getEndpointDetails:n}}),Oe={class:"row"},Ye={class:"col-sm-12"},je={class:"row"},Je={class:"col-sm-12"},Qe={class:"row"},Xe={class:"col-sm-12"},Ze={class:"text-center monitoring-no-data"},et={class:"action-toolbar"},tt=z({__name:"MonitoringNotAvailable",setup(m){const s=oe(),{monitoringUrl:u}=j(s);return(_,p)=>{const g=Ee("RouterLink");return i(),a("div",Oe,[t("div",Ye,[t("div",je,[t("div",Je,[t("div",Qe,[t("div",Xe,[t("div",Ze,[p[2]||(p[2]=t("h1",null,"No monitoring connectivity",-1)),t("p",null,[p[0]||(p[0]=r(" Monitoring is not available at ",-1)),t("strong",null,d(e(u)),1)]),p[3]||(p[3]=Ie('

This may be due to one or more of the following causes:

  1. Monitoring has been disabled
  2. Monitoring server is not running.
  3. Monitoring server address is incorrect.
  4. Monitoring server not accessible. You may need to validate the configured hostname in the ServiceControl Management Utility.
',2)),t("div",et,[y(g,{to:e(ee).configuration.connections.link,class:"btn btn-default btn-primary"},{default:V(()=>[...p[1]||(p[1]=[r("View connection details",-1)])]),_:1},8,["to"])])])])])])])])])}}}),st=O(tt,[["__scopeId","data-v-ba14b6d4"]]),it={class:"padding"},at={class:"y-axis"},ot={height:"calc(100% - 10px)",transform:"translate(60, 5)",fill:"none","font-size":"10","font-family":"sans-serif","text-anchor":"end"},nt=["transform"],lt={fill:"#828282",x:"-4",dy:"0.32em"},rt=["viewBox"],ct=["d"],dt=["d"],ut=["d"],pt=["d"],gt=["d"],vt=["d"],mt={class:"value"},_t={class:"value"},ht=z({__name:"LargeGraph",props:{isdurationgraph:{type:Boolean},metricsuffix:{},firstdataseries:{},seconddataseries:{},minimumyaxis:{},avgdecimals:{},firstseriestype:{},secondseriestype:{}},setup(m){const s=m,u=A(!1),_=C(()=>Math.max(s.firstdataseries.points.length,s.seconddataseries?.points?.length??0,10)),p=pe(()=>s.firstdataseries,()=>s.minimumyaxis,()=>_.value),g=pe(()=>s.seconddataseries,()=>s.minimumyaxis,()=>_.value),v=C(()=>D(Math.max(p.maxYaxis.value,g?.maxYaxis.value??0))),M=C(()=>{const S=[0,v.value*1/4,v.value*1/2,v.value*3/4,v.value],f=$=>{const x=R($);return`${x.value} ${x.unit}`};return s.isdurationgraph?S.map($=>f($)):S});function D(S){if(!S)return 10;let $=10;for(;S>$;)$*=10;return $/=10,Math.floor(S/$)*$+$}const w=C(()=>s.isdurationgraph?R(p.average.value).value:ge(p.average.value,2)),b=C(()=>s.isdurationgraph?R(g.average.value).value:ge(g.average.value,2)),c=C(()=>s.isdurationgraph?R(p.average.value).unit.toUpperCase():s.metricsuffix??""),n=C(()=>s.isdurationgraph?R(g.average.value).unit.toUpperCase():s.metricsuffix??""),l=C(()=>`calc(${p.average.value/v.value*190}px - 1em)`),T=C(()=>`calc(${g.average.value/v.value*190}px - 1em)`);return(S,f)=>(i(),a("div",{class:G(["graph large-graph pull-left",{hover:u.value}]),onMouseover:f[0]||(f[0]=$=>u.value=!0),onMouseout:f[1]||(f[1]=$=>u.value=!1)},[t("div",it,[(i(),a("svg",at,[f[3]||(f[3]=t("rect",{height:"calc(100% - 10px)",transform:"translate(60, 5)",fill:"#F2F6F7",width:"100%"},null,-1)),t("g",ot,[(i(!0),a(te,null,se(M.value,($,x)=>(i(),a("g",{class:"tick",opacity:"1",key:$,transform:`translate(0,${(4-x)*(190/4)})`},[f[2]||(f[2]=t("rect",{height:"1.75px",fill:"black",width:"100%",opacity:"0.1"},null,-1)),t("text",lt,d($),1)],8,nt))),128))])])),(i(),a("svg",{class:"data",viewBox:`0 0 100 ${v.value}`,preserveAspectRatio:"none"},[t("g",{class:G(s.firstseriestype)},[t("path",{d:e(p).valuesArea.value,class:"graph-data-fill"},null,8,ct),t("path",{d:e(p).valuesPath.value,"vector-effect":"non-scaling-stroke",class:"graph-data-line"},null,8,dt),t("path",{d:e(p).averageLine.value,"vector-effect":"non-scaling-stroke",class:"graph-avg-line"},null,8,ut)],2),t("g",{class:G(s.secondseriestype)},[t("path",{d:e(g).valuesArea.value,class:"graph-data-fill"},null,8,pt),t("path",{d:e(g).valuesPath.value,"vector-effect":"non-scaling-stroke",class:"graph-data-line"},null,8,gt),t("path",{d:e(g).averageLine.value,"vector-effect":"non-scaling-stroke",class:"graph-avg-line"},null,8,vt)],2)],8,rt))]),t("div",{class:G(["avg-tooltip",m.firstseriestype]),style:ve({bottom:l.value})},[f[4]||(f[4]=t("div",null,"AVG",-1)),t("div",mt,[r(d(w.value)+" ",1),t("span",null,d(c.value),1)])],6),s.seconddataseries?(i(),a("div",{key:0,class:G(["avg-tooltip left",m.secondseriestype]),style:ve({bottom:T.value})},[f[5]||(f[5]=t("div",null,"AVG",-1)),t("div",_t,[r(d(b.value)+" ",1),t("span",null,d(n.value),1)])],6)):o("",!0)],34))}}),ue=O(ht,[["__scopeId","data-v-7c95dbae"]]),bt={role:"gridcell","aria-label":"backlog-data",class:"col-xs-4 no-side-padding list-section graph-area graph-queue-length"},yt={class:"no-side-padding graph-values"},ft={"aria-label":"queue-length-values",class:"queue-length-values"},$t={"aria-label":"metric-header"},St={class:"metric-digest-header"},xt={"aria-label":"metric-current-value",class:"metric-digest-value current"},kt={key:0},Mt={key:0,class:"metric-digest-value-suffix"},wt={key:1},Dt={"aria-label":"metric-average-value",class:"metric-digest-value average"},Tt={key:0,"aria-label":"graph-average"},Ct={key:1},Nt=z({__name:"EndpointBacklog",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(m){const s=le(m,"modelValue");return(u,_)=>{const p=J("tippy");return i(),a("div",bt,[s.value.metricDetails.metrics.queueLength?(i(),H(ue,{key:0,isdurationgraph:!1,firstdataseries:s.value.metricDetails.metrics.queueLength,minimumyaxis:e(re).queueLength,firstseriestype:"queue-length",avgdecimals:0,metricsuffix:"MSGS"},null,8,["firstdataseries","minimumyaxis"])):o("",!0),t("div",yt,[t("div",ft,[t("div",$t,[h((i(),a("span",St,[r(d(e(me).label),1)])),[[p,e(me).tooltip]])]),t("div",xt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",kt,[r(d(e(Y)(s.value.digest.metrics.queueLength?.latest,0))+" ",1),!s.value.isStale||!s.value.isScMonitoringDisconnected?(i(),a("span",Mt,"MSGS")):o("",!0)])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",wt,"?")):o("",!0)]),t("div",Dt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",Tt,[r(d(e(Y)(s.value.digest.metrics.queueLength?.average,0))+" ",1),_[0]||(_[0]=t("span",{class:"metric-digest-value-suffix"},"MSGS AVG",-1))])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",Ct,"?")):o("",!0)])])])])}}}),Vt=O(Nt,[["__scopeId","data-v-501d7e5b"]]),Et={role:"gridcell","aria-label":"workload-data",class:"col-xs-4 no-side-padding list-section graph-area graph-message-retries-throughputs"},It={class:"no-side-padding graph-values"},At={"aria-label":"throughput-values",class:"no-side-padding throughput-values"},Gt={"aria-label":"metric-header"},Pt={class:"metric-digest-header"},Lt={"aria-label":"metric-current-value",class:"metric-digest-value current"},Ut={key:0},Bt={key:1},qt={"aria-label":"metric-average-value",class:"metric-digest-value average"},Ft={key:0},Rt={key:1},Kt={"aria-label":"scheduled-retry-values",class:"no-side-padding scheduled-retries-rate-values"},Wt={"aria-label":"metric-header"},Ht={class:"metric-digest-header"},zt={"aria-label":"metric-current-value",class:"metric-digest-value current"},Ot={key:0},Yt={key:1},jt={"aria-label":"metric-average-value",class:"metric-digest-value average"},Jt={key:0},Qt={key:1},Xt=z({__name:"EndpointWorkload",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(m){const s=le(m,"modelValue");return(u,_)=>{const p=J("tippy");return i(),a("div",Et,[s.value.metricDetails.metrics.throughput?(i(),H(ue,{key:0,isdurationgraph:!1,firstdataseries:s.value.metricDetails.metrics.throughput,seconddataseries:s.value.metricDetails.metrics.retries,minimumyaxis:e(re).throughputRetries,firstseriestype:"throughput",secondseriestype:"retries",avgdecimals:0,metricsuffix:"MSGS/S"},null,8,["firstdataseries","seconddataseries","minimumyaxis"])):o("",!0),t("div",It,[t("div",At,[t("div",Gt,[h((i(),a("span",Pt,[r(d(e(U).label),1)])),[[p,e(U).tooltip]])]),t("div",Lt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",Ut,[r(d(e(Y)(s.value.digest.metrics.throughput?.latest,2))+" ",1),_[0]||(_[0]=t("span",{class:"metric-digest-value-suffix"},"MSGS/S",-1))])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",Bt,"?")):o("",!0)]),t("div",qt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",Ft,[r(d(e(Y)(s.value.digest.metrics.throughput?.average,2))+" ",1),_[1]||(_[1]=t("span",{class:"metric-digest-value-suffix"},"MSGS/S AVG",-1))])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",Rt,"?")):o("",!0)])]),t("div",Kt,[t("div",Wt,[h((i(),a("span",Ht,[r(d(e(B).label),1)])),[[p,e(B).tooltip]])]),t("div",zt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",Ot,[r(d(e(Y)(s.value.digest.metrics.retries?.latest,2))+" ",1),_[2]||(_[2]=t("span",{class:"metric-digest-value-suffix"},"MSGS/S",-1))])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",Yt,"?")):o("",!0)]),t("div",jt,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",Jt,[r(d(e(Y)(s.value.digest.metrics.retries?.average,2))+" ",1),_[3]||(_[3]=t("span",{class:"metric-digest-value-suffix"},"MSGS/S AVG",-1))])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",Qt,"?")):o("",!0)])])])])}}}),Zt=O(Xt,[["__scopeId","data-v-efb8f3c0"]]),es={role:"gridcell","aria-label":"timings-data",class:"col-xs-4 no-side-padding list-section graph-area graph-critical-processing-times"},ts={class:"no-side-padding graph-values"},ss={"aria-label":"processing-time-values",class:"no-side-padding processing-time-values"},is={"aria-label":"metric-header"},as={class:"metric-digest-header"},os={"aria-label":"metric-current-value",class:"metric-digest-value current"},ns={key:0},ls={class:"metric-digest-value-suffix"},rs={key:1},cs={"aria-label":"metric-average-value",class:"metric-digest-value average"},ds={key:0},us={class:"metric-digest-value-suffix"},ps={key:1},gs={"aria-label":"critical-time-values",class:"no-side-padding critical-time-values"},vs={"aria-label":"metric-header"},ms={class:"metric-digest-header"},_s={"aria-label":"metric-current-value",class:"metric-digest-value current"},hs={key:0},bs={class:"metric-digest-value-suffix"},ys={key:1},fs={"aria-label":"metric-average-value",class:"metric-digest-value average"},$s={key:0},Ss={class:"metric-digest-value-suffix"},xs={key:1},ks=z({__name:"EndpointTimings",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(m){const s=le(m,"modelValue"),u=C(()=>R(s.value.digest.metrics.processingTime?.latest)),_=C(()=>R(s.value.digest.metrics.processingTime?.average)),p=C(()=>R(s.value.digest.metrics.criticalTime?.latest)),g=C(()=>R(s.value.digest.metrics.criticalTime?.average));return(v,M)=>{const D=J("tippy");return i(),a("div",es,[s.value.metricDetails.metrics.criticalTime?(i(),H(ue,{key:0,isdurationgraph:!0,firstdataseries:s.value.metricDetails.metrics.criticalTime,seconddataseries:s.value.metricDetails.metrics.processingTime,minimumyaxis:e(re).processingCritical,firstseriestype:"critical-time",secondseriestype:"processing-time",avgdecimals:0},null,8,["firstdataseries","seconddataseries","minimumyaxis"])):o("",!0),t("div",ts,[t("div",ss,[t("div",is,[h((i(),a("span",as,[r(d(e(q).label),1)])),[[D,e(q).tooltip]])]),t("div",os,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",ns,[r(d(u.value.value)+" ",1),t("span",ls,d(u.value.unit),1)])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",rs,"?")):o("",!0)]),t("div",cs,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",ds,[r(d(_.value.value)+" ",1),t("span",us,d(_.value.unit)+" AVG",1)])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",ps,"?")):o("",!0)])]),t("div",gs,[t("div",vs,[h((i(),a("span",ms,[r(d(e(F).label),1)])),[[D,e(F).tooltip]])]),t("div",_s,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",hs,[t("span",{class:G({negative:parseFloat(p.value.value)<0})},d(p.value.value),3),t("span",bs,"  "+d(p.value.unit),1)])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",ys,"?")):o("",!0)]),t("div",fs,[!s.value.isStale&&!s.value.isScMonitoringDisconnected?(i(),a("div",$s,[t("span",{class:G({negative:parseFloat(g.value.value)<0})},d(g.value.value),3),t("span",Ss,"  "+d(g.value.unit)+" AVG ",1)])):o("",!0),s.value.isStale||s.value.isScMonitoringDisconnected?(i(),a("strong",xs,"?")):o("",!0)])])])])}}}),Ms=O(ks,[["__scopeId","data-v-59e2edb8"]]),ws={class:"row"},Ds={role:"table","aria-label":"instances",class:"col-xs-12 no-side-padding"},Ts={role:"row","aria-label":"instances-column-headers",class:"row box box-no-click table-head-row"},Cs={role:"rowgroup",class:"row endpoint-instances"},Ns={class:"col-xs-12 no-side-padding"},Vs={class:"col-xs-12 no-side-padding"},Es=["aria-label"],Is={role:"cell","aria-label":"instance-name",class:"col-xs-4 col-xl-8 endpoint-name"},As={class:"box-header with-status"},Gs={role:"instance-name","aria-label":"instance-name",class:"no-side-padding lead righ-side-ellipsis"},Ps={class:"no-side-padding endpoint-status"},Ls={key:0,role:"status","aria-label":"negative-critical-time-warning",class:"warning"},Us={class:"fa pa-warning"},Bs={key:1,role:"status","aria-label":"disconnected-warning",class:"warning"},qs={class:"fa pa-monitoring-lost endpoint-details"},Fs={key:2,role:"status","aria-label":"stale-warning",class:"warning"},Rs={class:"fa pa-endpoint-lost endpoint-details"},Ks={key:3,role:"status","aria-label":"error-count-warning",class:"warning"},Ws={"aria-label":"error-count",class:"badge badge-important cursorpointer"},Hs={role:"cell","aria-label":"throughput",class:"col-xs-2 col-xl-1 no-side-padding"},zs={class:"row box-header"},Os={class:"no-side-padding"},Ys={class:"no-side-padding sparkline-value"},js={key:0},Js={key:1},Qs={role:"cell","aria-label":"retries",class:"col-xs-2 col-xl-1 no-side-padding"},Xs={class:"row box-header"},Zs={class:"no-side-padding"},ei={class:"no-side-padding sparkline-value"},ti={key:0},si={key:1},ii={role:"cell","aria-label":"processing-time",class:"col-xs-2 col-xl-1 no-side-padding"},ai={class:"row box-header"},oi={class:"no-side-padding"},ni={class:"no-side-padding sparkline-value"},li={key:0},ri={key:1},ci={key:2,class:"unit"},di={role:"cell","aria-label":"critical-time",class:"col-xs-2 col-xl-1 no-side-padding"},ui={class:"row box-header"},pi={class:"no-side-padding"},gi={key:0},vi={key:1},mi={key:2,class:"unit"},_i={class:"col-xs-2 col-xl-1 no-side-padding"},hi=["onClick"],bi=z({__name:"EndpointInstances",setup(m){const s=A(!1),u=ce(),_=de(),{endpointDetails:p,endpointName:g}=j(_),v=oe();async function M(w,b){try{await v.deleteFromMonitoring("monitored-instance/"+w+"/"+b.id),p.value.instances.splice(p.value.instances.indexOf(b),1),p.value.instances.length===0&&u.push(ee.monitoring.root)}catch(c){return console.log(c),!1}}async function D(){try{const w=await v.optionsFromMonitoring();if(w){const c=w.headers.get("Allow");if(c)return c.indexOf("DELETE")>=0}}catch(w){console.log(w)}return!1}return xe(async()=>{s.value=await D()}),(w,b)=>{const c=J("tippy");return i(),a("div",ws,[t("div",Ds,[t("div",Ts,[y(L,{name:e(_e).name,label:e(_e).label,class:"col-xs-4 col-xl-8"},null,8,["name","label"]),y(L,{name:e(U).name,label:e(U).label,unit:e(U).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(U).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(B).name,label:e(B).label,unit:e(B).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(B).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(q).name,label:e(q).label,unit:e(q).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(q).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(F).name,label:e(F).label,unit:e(F).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(F).tooltip),1)]),_:1},8,["name","label","unit"])]),e(p)?.instances?.length?o("",!0):(i(),H(we,{key:0,title:"No messages",message:"No messages processed in this period of time"})),t("div",Cs,[t("div",Ns,[(i(!0),a(te,null,se(e(p).instances,(n,l)=>(i(),a("div",{class:"row box endpoint-row",key:l},[t("div",Vs,[t("div",{role:"row","aria-label":n.name,class:"row"},[t("div",Is,[t("div",As,[h((i(),a("div",Gs,[r(d(n.name),1)])),[[c,n.name]]),t("div",Ps,[parseFloat(e(N)(n.metrics.criticalTime).value)<0?(i(),a("span",Ls,[h(t("i",Us,null,512),[[c,"Warning: instance currently has negative critical time, possibly because of a clock drift."]])])):o("",!0),n.isScMonitoringDisconnected?(i(),a("span",Bs,[h(t("i",qs,null,512),[[c,"Unable to connect to monitoring server"]])])):o("",!0),n.isStale?(i(),a("span",Fs,[h(t("i",Rs,null,512),[[c,"Not receiving metrics from this instance. Instance will be removed automatically."]])])):o("",!0),n.errorCount?h((i(),a("span",Ks,[n.errorCount?(i(),H(e(Me),{key:0,to:e(ee).failedMessage.group.link(n.serviceControlId),class:"warning cursorpointer"},{default:V(()=>[y(ie,{icon:e(ke),class:"endpoint-status-icon"},null,8,["icon"]),t("span",Ws,d(n.errorCount),1)]),_:2},1032,["to"])):o("",!0)])),[[c,`${n.errorCount} failed messages associated with this endpoint. Click to see list.`]]):o("",!0)])])]),t("div",Hs,[t("div",zs,[t("div",Os,[y(K,{type:"throughput",isdurationgraph:!1,plotdata:n.metrics.throughput,minimumyaxis:e(W).throughput,metricsuffix:"MSGS/S"},null,8,["plotdata","minimumyaxis"]),t("span",Ys,[r(d(n.isStale==!0||n.isScMonitoringDisconnected==!0?"":e(ae)(n.metrics.throughput))+" ",1),n.isStale&&!n.isScMonitoringDisconnected?h((i(),a("strong",js,[...b[0]||(b[0]=[r("?",-1)])])),[[c,"No metrics received or instance is not configured to send metrics"]]):o("",!0),n.isScMonitoringDisconnected?h((i(),a("strong",Js,[...b[1]||(b[1]=[r("?",-1)])])),[[c,"Unable to connect to monitoring server"]]):o("",!0)])])])]),t("div",Qs,[t("div",Xs,[t("div",Zs,[y(K,{type:"retries",isdurationgraph:!1,plotdata:n.metrics.retries,minimumyaxis:e(W).retries,metricsuffix:"MSGS/S"},null,8,["plotdata","minimumyaxis"]),t("span",ei,[r(d(n.isStale==!0||n.isScMonitoringDisconnected==!0?"":e(ae)(n.metrics.retries))+" ",1),n.isStale&&!n.isScMonitoringDisconnected?h((i(),a("strong",ti,[...b[2]||(b[2]=[r("?",-1)])])),[[c,"No metrics received or instance is not configured to send metrics"]]):o("",!0),n.isScMonitoringDisconnected?h((i(),a("strong",si,[...b[3]||(b[3]=[r("?",-1)])])),[[c,"Unable to connect to monitoring server"]]):o("",!0)])])])]),t("div",ii,[t("div",ai,[t("div",oi,[y(K,{type:"processing-time",isdurationgraph:!0,plotdata:n.metrics.processingTime,minimumyaxis:e(W).processingTime},null,8,["plotdata","minimumyaxis"]),t("span",ni,[r(d(n.isStale==!0||n.isScMonitoringDisconnected==!0?"":e(N)(n.metrics.processingTime).value)+" ",1),n.isStale&&!n.isScMonitoringDisconnected?h((i(),a("strong",li,[...b[4]||(b[4]=[r("?",-1)])])),[[c,"No metrics received or instance is not configured to send metrics"]]):o("",!0),n.isScMonitoringDisconnected?h((i(),a("strong",ri,[...b[5]||(b[5]=[r("?",-1)])])),[[c,"Unable to connect to monitoring server"]]):o("",!0),!n.isStale&&!n.isScMonitoringDisconnected?(i(),a("span",ci,d(e(N)(n.metrics.processingTime).unit),1)):o("",!0)])])])]),t("div",di,[t("div",ui,[t("div",pi,[y(K,{type:"critical-time",isdurationgraph:!0,plotdata:n.metrics.criticalTime,minimumyaxis:e(W).criticalTime},null,8,["plotdata","minimumyaxis"]),t("span",{class:G(["no-side-padding sparkline-value",{negative:parseFloat(e(N)(n.metrics.criticalTime).value)<0}])},[r(d(n.isStale==!0||n.isScMonitoringDisconnected==!0?"":e(N)(n.metrics.criticalTime).value)+" ",1),n.isStale&&!n.isScMonitoringDisconnected?h((i(),a("strong",gi,[...b[6]||(b[6]=[r("?",-1)])])),[[c,"No metrics received or instance is not configured to send metrics"]]):o("",!0),n.isScMonitoringDisconnected?h((i(),a("strong",vi,[...b[7]||(b[7]=[r("?",-1)])])),[[c,"Unable to connect to monitoring server"]]):o("",!0),!n.isStale&&!n.isScMonitoringDisconnected?(i(),a("span",mi,d(e(N)(n.metrics.criticalTime).unit),1)):o("",!0)],2)])])]),t("div",_i,[s.value&&n.isStale?(i(),a("a",{key:0,class:"remove-endpoint",onClick:T=>M(e(g),n)},[h(y(ie,{icon:e(Ae)},null,8,["icon"]),[[c,"Remove endpoint"]])],8,hi)):o("",!0)])],8,Es)])]))),128))])])])])}}}),yi=O(bi,[["__scopeId","data-v-86c8a7d6"]]),fi={class:"row"},$i={role:"table","aria-label":"message-types",class:"col-xs-12 no-side-padding"},Si={key:0,class:"alert alert-warning endpoint-data-changed"},xi={role:"row","aria-label":"message-type-column-headers",class:"row box box-no-click table-head-row"},ki={role:"rowgroup","aria-label":"message-type-rows",class:"row"},Mi={class:"col-xs-12 no-side-padding"},wi={class:"col-xs-12 no-side-padding"},Di=["aria-label"],Ti=["title"],Ci={class:"box-header with-status"},Ni={role:"message-type-name","aria-label":"message-type-name",class:"col-lg-max-9 no-side-padding lead message-type-label righ-side-ellipsis"},Vi={class:"lead"},Ei={class:"no-side-padding endpoint-status message-type-status"},Ii={key:0,class:"warning"},Ai={class:"fa pa-warning"},Gi={key:1,class:"warning"},Pi={class:"fa pa-monitoring-lost endpoint-details"},Li={"aria-label":"message-type-properties",class:"row message-type-properties"},Ui={key:0,class:"message-type-part"},Bi={key:0},qi={key:1,class:"message-type-part"},Fi={key:2,class:"message-type-part"},Ri={role:"cell","aria-label":"throughput",class:"col-xs-2 col-xl-1 no-side-padding"},Ki={class:"row box-header"},Wi={class:"no-side-padding"},Hi={class:"no-side-padding sparkline-value"},zi={key:0},Oi={key:1},Yi={role:"cell","aria-label":"retries",class:"col-xs-2 col-xl-1 no-side-padding"},ji={class:"row box-header"},Ji={class:"no-side-padding"},Qi={class:"no-side-padding sparkline-value"},Xi={key:0},Zi={key:1},ea={role:"cell","aria-label":"processing-time",class:"col-xs-2 col-xl-1 no-side-padding"},ta={class:"row box-header"},sa={class:"no-side-padding"},ia={class:"no-side-padding sparkline-value"},aa={key:0},oa={key:1},na={key:2,class:"unit"},la={role:"cell","aria-label":"critical-time",class:"col-xs-2 col-xl-1 no-side-padding"},ra={class:"row box-header"},ca={class:"no-side-padding"},da={key:0},ua={key:1},pa={key:2,class:"unit"},ga=z({__name:"EndpointMessageTypes",props:{perPage:{type:Number,default:10}},setup(m){const s=de(),{endpointDetails:u,messageTypes:_,messageTypesAvailable:p}=j(s),g=De(),v=ce(),M=A(Number(g?.query?.pageNo??"1"));Te(M,()=>{v.replace({query:{...g.query,pageNo:M.value}})});const D=m,w=C(()=>{const b=(M.value-1)*D.perPage,c=M.value*D.perPage;return _.value?_.value.data.slice(b,c):[]});return(b,c)=>{const n=J("tippy");return i(),a("div",fi,[t("div",$i,[e(p)?(i(),a("div",Si,[y(ie,{icon:e(Ge)},null,8,["icon"]),c[2]||(c[2]=r()),c[3]||(c[3]=t("strong",null,"Warning:",-1)),c[4]||(c[4]=r(" The number of available message types has changed. ",-1)),t("a",{onClick:c[0]||(c[0]=l=>e(s).updateMessageTypes()),class:"alink"},"Click here to reload the view")])):o("",!0),t("div",xi,[y(L,{name:e(he).name,label:e(he).label,class:"col-xs-4 col-xl-8"},null,8,["name","label"]),y(L,{name:e(U).name,label:e(U).label,unit:e(U).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(U).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(B).name,label:e(B).label,unit:e(B).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(B).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(q).name,label:e(q).label,unit:e(q).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(q).tooltip),1)]),_:1},8,["name","label","unit"]),y(L,{name:e(F).name,label:e(F).label,unit:e(F).unit,class:"col-xs-2 col-xl-1 no-side-padding"},{help:V(()=>[r(d(e(F).tooltip),1)]),_:1},8,["name","label","unit"])]),e(u)?.messageTypes?.length?o("",!0):(i(),H(we,{key:1,message:"No messages processed in this period of time."})),t("div",ki,[t("div",Mi,[(i(!0),a(te,null,se(w.value,l=>(i(),a("div",{class:"row box endpoint-row",key:l.id},[t("div",wi,[t("div",{role:"row","aria-label":l.shortName,class:"row"},[t("div",{role:"cell",class:"col-xs-4 col-xl-8 endpoint-name",title:l?.tooltipText},[t("div",Ci,[t("div",Ni,[t("div",Vi,d(l?.shortName||"Unknown"),1)]),t("div",Ei,[l.metrics!=null&&parseFloat(e(N)(l.metrics.criticalTime).value)<0?(i(),a("span",Ii,[h(t("i",Ai,null,512),[[n,"Warning: message type currently has negative critical time, possibly because of a clock drift."]])])):o("",!0),e(u).isScMonitoringDisconnected?(i(),a("span",Gi,[h(t("i",Pi,null,512),[[n,"Unable to connect to monitoring server"]])])):o("",!0)])]),t("div",Li,[l.typeName&&l.typeName!="null"&&!l.containsTypeHierarchy?(i(),a("div",Ui,d(l.assemblyName+"-"+l.assemblyVersion),1)):o("",!0),(i(!0),a(te,null,se(l.messageTypeHierarchy,(T,S)=>(i(),a("div",{class:"message-type-part",key:S},[l.typeName&&l.typeName!="null"&&l.containsTypeHierarchy?(i(),a("span",Bi,d(T.assemblyName+"-"+T.assemblyVersion),1)):o("",!0)]))),128)),l.culture&&l.culture!="null"?(i(),a("div",qi,d("Culture="+l.culture),1)):o("",!0),l.publicKeyToken&&l.publicKeyToken!="null"?(i(),a("div",Fi,d("PublicKeyToken="+l.publicKeyToken),1)):o("",!0)])],8,Ti),t("div",Ri,[t("div",Ki,[t("div",Wi,[y(K,{type:"throughput",isdurationgraph:!1,plotdata:l.metrics.throughput,minimumyaxis:e(W).throughput,metricsuffix:"MSGS/S"},null,8,["plotdata","minimumyaxis"]),t("span",Hi,[r(d(e(u).isStale==!0||e(u).isScMonitoringDisconnected==!0?"":e(ae)(l.metrics.throughput,2))+" ",1),e(u).isStale&&!e(u).isScMonitoringDisconnected?h((i(),a("strong",zi,[...c[5]||(c[5]=[r("?",-1)])])),[[n,"No metrics received or endpoint is not configured to send metrics"]]):o("",!0),e(u).isScMonitoringDisconnected?h((i(),a("strong",Oi,[...c[6]||(c[6]=[r("?",-1)])])),[[n,"Unable to connect to monitoring server"]]):o("",!0)])])])]),t("div",Yi,[t("div",ji,[t("div",Ji,[y(K,{type:"retries",isdurationgraph:!1,plotdata:l.metrics.retries,minimumyaxis:e(W).retries,metricsuffix:"MSGS/S"},null,8,["plotdata","minimumyaxis"]),t("span",Qi,[r(d(e(u).isStale==!0||e(u).isScMonitoringDisconnected==!0?"":e(ae)(l.metrics.retries,2))+" ",1),e(u).isStale&&!e(u).isScMonitoringDisconnected?h((i(),a("strong",Xi,[...c[7]||(c[7]=[r("?",-1)])])),[[n,"No metrics received or endpoint is not configured to send metrics"]]):o("",!0),e(u).isScMonitoringDisconnected?h((i(),a("strong",Zi,[...c[8]||(c[8]=[r("?",-1)])])),[[n,"Unable to connect to monitoring server"]]):o("",!0)])])])]),t("div",ea,[t("div",ta,[t("div",sa,[y(K,{type:"processing-time",isdurationgraph:!0,plotdata:l.metrics.processingTime,minimumyaxis:e(W).processingTime},null,8,["plotdata","minimumyaxis"]),t("span",ia,[r(d(e(u).isStale==!0||e(u).isScMonitoringDisconnected==!0?"":e(N)(l.metrics.processingTime).value)+" ",1),e(u).isStale&&!e(u).isScMonitoringDisconnected?h((i(),a("strong",aa,[...c[9]||(c[9]=[r("?",-1)])])),[[n,"No metrics received or endpoint is not configured to send metrics"]]):o("",!0),e(u).isScMonitoringDisconnected?h((i(),a("strong",oa,[...c[10]||(c[10]=[r("?",-1)])])),[[n,"Unable to connect to monitoring server"]]):o("",!0),!e(u).isStale&&!e(u).isScMonitoringDisconnected?(i(),a("span",na,d(e(N)(l.metrics.processingTime).unit),1)):o("",!0)])])])]),t("div",la,[t("div",ra,[t("div",ca,[y(K,{type:"critical-time",isdurationgraph:!0,plotdata:l.metrics.criticalTime,minimumyaxis:e(W).criticalTime},null,8,["plotdata","minimumyaxis"]),t("span",{class:G(["no-side-padding sparkline-value",{negative:parseFloat(e(N)(l.metrics.criticalTime).value)<0}])},[r(d(e(u).isStale==!0||e(u).isScMonitoringDisconnected==!0?"":e(N)(l.metrics.criticalTime).value)+" ",1),e(u).isStale&&!e(u).isScMonitoringDisconnected?h((i(),a("strong",da,[...c[11]||(c[11]=[r("?",-1)])])),[[n,"No metrics received or endpoint is not configured to send metrics"]]):o("",!0),e(u).isScMonitoringDisconnected?h((i(),a("strong",ua,[...c[12]||(c[12]=[r("?",-1)])])),[[n,"Unable to connect to monitoring server"]]):o("",!0),!e(u).isStale&&!e(u).isScMonitoringDisconnected?(i(),a("span",pa,d(e(N)(l.metrics.criticalTime).unit),1)):o("",!0)],2)])])])],8,Di)])]))),128))])]),y(Pe,{modelValue:M.value,"onUpdate:modelValue":c[1]||(c[1]=l=>M.value=l),itemsPerPage:m.perPage,totalCount:e(_)?.data?.length??0},null,8,["modelValue","itemsPerPage","totalCount"])])])}}}),va=O(ga,[["__scopeId","data-v-89363883"]]),ma={class:"container monitoring-view"},_a={class:"row"},ha={class:"col-sm-12"},ba={class:"monitoring-head"},ya={class:"endpoint-title no-side-padding list-section"},fa={"aria-label":"endpoint-title","aria-level":"1",class:"righ-side-ellipsis"},$a={class:"endpoint-status"},Sa={key:0,role:"status","aria-label":"negative-critical-time-warning",class:"warning"},xa={class:"fa pa-warning"},ka={key:1,role:"status","aria-label":"stale-warning",class:"warning"},Ma={class:"fa pa-endpoint-lost endpoint-details"},wa={key:2,role:"status","aria-label":"disconnected-warning",class:"warning"},Da={class:"fa pa-monitoring-lost endpoint-details"},Ta={key:3,role:"status","aria-label":"error-count-warning",class:"warning"},Ca={"aria-label":"error-count",class:"badge badge-important ng-binding cursorpointer"},Na={class:"no-side-padding toolbar-menus"},Va={class:"filter-monitoring"},Ea={role:"grid","aria-label":"detail-graphs-data",class:"large-graphs"},Ia={class:"container"},Aa={role:"row",class:"row"},Ga={class:"tabs"},Pa={"aria-label":"message-types-count"},La={"aria-label":"instances-count"},Ua={key:0,class:"endpoint-instances"},Ba={key:1,class:"endpoint-message-types"},qa=z({__name:"EndpointDetails",setup(m){const{store:s}=Se(),u=s.monitoringConnectionState,_=De(),p=ce(),g=_.params.endpointName.toString();let v;const M=de(),D=$e(),w=oe(),{isMonitoringDisabled:b}=j(w),{historyPeriod:c}=j(D),{negativeCriticalTimeIsPresent:n,endpointDetails:l}=j(M);Te(c,x=>{$(x.refreshIntervalVal)});const T=Object.freeze({messageTypeBreakdown:"messageTypeBreakdown",instancesBreakdown:"instancesBreakdown"}),S=C({get(){return _?.query?.tab??T.messageTypeBreakdown},set(x){p.replace({query:{..._.query,tab:x}})}});async function f(){await M.getEndpointDetails(g)}function $(x){typeof v<"u"&&clearInterval(v),f(),v=window.setInterval(()=>{f()},x)}return Le(()=>{typeof v<"u"&&clearInterval(v)}),xe(()=>{$(c.value.refreshIntervalVal)}),(x,k)=>{const I=J("tippy");return i(),a("div",ma,[y(qe,null,{default:V(()=>[y(Ue,null,{default:V(()=>[t("div",_a,[t("div",ha,[e(u).unableToConnect||e(b)?(i(),H(st,{key:0})):o("",!0)])]),t("div",ba,[t("div",ya,[h((i(),a("h1",fa,[r(d(e(g)),1)])),[[I,e(g)]]),t("div",$a,[e(n)?(i(),a("span",Sa,[h(t("i",xa,null,512),[[I,"Warning: endpoint currently has negative critical time, possibly because of a clock drift."]])])):o("",!0),e(l).isStale?(i(),a("span",ka,[h(t("i",Ma,null,512),[[I,"Unable to connect to endpoint"]])])):o("",!0),e(l).isScMonitoringDisconnected?(i(),a("span",wa,[h(t("i",Da,null,512),[[I,"Unable to connect to monitoring server"]])])):o("",!0),e(l).errorCount?h((i(),a("span",Ta,[e(l).errorCount?(i(),H(e(Me),{key:0,to:e(ee).failedMessage.group.link(e(l).serviceControlId),class:"warning cursorpointer"},{default:V(()=>[y(ie,{icon:e(ke),class:"endpoint-status-icon"},null,8,["icon"]),t("span",Ca,d(e(l).errorCount),1)]),_:1},8,["to"])):o("",!0)])),[[I,e(l).errorCount+" failed messages associated with this endpoint. Click to see list."]]):o("",!0)])]),t("div",Na,[t("div",Va,[y(Be)])])]),t("div",Ea,[t("div",Ia,[t("div",Aa,[y(Vt,{modelValue:e(l),"onUpdate:modelValue":k[0]||(k[0]=E=>ne(l)?l.value=E:null)},null,8,["modelValue"]),y(Zt,{modelValue:e(l),"onUpdate:modelValue":k[1]||(k[1]=E=>ne(l)?l.value=E:null)},null,8,["modelValue"]),y(Ms,{modelValue:e(l),"onUpdate:modelValue":k[2]||(k[2]=E=>ne(l)?l.value=E:null)},null,8,["modelValue"])])])]),t("div",null,[t("div",Ga,[t("h5",{class:G({active:S.value===e(T).messageTypeBreakdown})},[t("a",{onClick:k[3]||(k[3]=E=>S.value=e(T).messageTypeBreakdown),class:"cursorpointer ng-binding"},[k[5]||(k[5]=r("Message Types (",-1)),t("span",Pa,d(e(l).messageTypes.length),1),k[6]||(k[6]=r(")",-1))])],2),t("h5",{class:G({active:S.value===e(T).instancesBreakdown})},[t("a",{onClick:k[4]||(k[4]=E=>S.value=e(T).instancesBreakdown),class:"cursorpointer ng-binding"},[k[7]||(k[7]=r("Instances (",-1)),t("span",La,d(e(l).instances.length),1),k[8]||(k[8]=r(")",-1))])],2)]),S.value===e(T).instancesBreakdown?(i(),a("section",Ua,[y(yi)])):o("",!0),S.value===e(T).messageTypeBreakdown?(i(),a("section",Ba,[y(va)])):o("",!0)])]),_:1})]),_:1})])}}}),Ka=O(qa,[["__scopeId","data-v-1ea9666e"]]);export{Ka as default}; +//# sourceMappingURL=EndpointDetails-Dtkn0G1f.js.map diff --git a/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js.map b/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js.map new file mode 100644 index 0000000000..8739336235 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointDetails-Dtkn0G1f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointDetails-Dtkn0G1f.js","sources":["../../../../frontend/src/components/monitoring/messageTypes.ts","../../../../frontend/src/resources/MonitoringEndpoint.ts","../../../../frontend/src/components/monitoring/endpoints.ts","../../../../frontend/src/stores/MonitoringEndpointDetailsStore.ts","../../../../frontend/src/components/monitoring/MonitoringNotAvailable.vue","../../../../frontend/src/components/monitoring/LargeGraph.vue","../../../../frontend/src/components/monitoring/EndpointBacklog.vue","../../../../frontend/src/components/monitoring/EndpointWorkload.vue","../../../../frontend/src/components/monitoring/EndpointTimings.vue","../../../../frontend/src/components/monitoring/EndpointInstances.vue","../../../../frontend/src/components/monitoring/EndpointMessageTypes.vue","../../../../frontend/src/components/monitoring/EndpointDetails.vue"],"sourcesContent":["import type { ExtendedMessageType, MessageType, MessageTypeDetails } from \"@/resources/MonitoringEndpoint\";\n\nfunction shortenTypeName(typeName: string): string {\n return typeName.split(\".\").pop() ?? typeName;\n}\n\nfunction parseTheMessageTypeData(messageType: MessageType): ExtendedMessageType {\n if (messageType.typeName.indexOf(\";\") > 0) {\n const messageTypeHierarchy = messageType.typeName.split(\";\").map((item) => {\n const segments = item.split(\",\");\n const messageTypeDetails: MessageTypeDetails = {\n typeName: segments[0],\n assemblyName: segments[1],\n assemblyVersion: segments[2].substring(segments[2].indexOf(\"=\") + 1),\n };\n\n if (!segments[4]?.endsWith(\"=null\")) {\n //SC monitoring fills culture only if PublicKeyToken is filled\n messageTypeDetails.culture = segments[3];\n messageTypeDetails.publicKeyToken = segments[4];\n }\n return messageTypeDetails;\n });\n return {\n ...messageType,\n messageTypeHierarchy,\n typeName: messageTypeHierarchy.map((item) => item.typeName).join(\", \"),\n shortName: messageTypeHierarchy.map((item) => shortenTypeName(item.typeName)).join(\", \"),\n containsTypeHierarchy: true,\n tooltipText: messageTypeHierarchy.reduce(\n (sum, item) => (sum ? `${sum}\\n ` : \"\") + `${item.typeName} |${item.assemblyName}-${item.assemblyVersion}` + (item.culture ? ` |${item.culture}` : \"\") + (item.publicKeyToken ? ` |${item.publicKeyToken}` : \"\"),\n \"\"\n ),\n };\n }\n const cultureSuffix = messageType.culture && messageType.culture !== \"null\" ? ` | Culture=${messageType.culture}` : \"\";\n const publicKeyTokenSuffix = messageType.publicKeyToken && messageType.publicKeyToken !== \"null\" ? ` | PublicKeyToken=${messageType.publicKeyToken}` : \"\";\n\n return {\n ...messageType,\n shortName: shortenTypeName(messageType.typeName),\n tooltipText: `${messageType.typeName} | ${messageType.assemblyName}-${messageType.assemblyVersion}${cultureSuffix}${publicKeyTokenSuffix}`,\n };\n}\n\nexport default class MessageTypes {\n totalItems: number;\n data: ExtendedMessageType[];\n\n constructor(rawMessageTypes: MessageType[]) {\n this.totalItems = rawMessageTypes.length;\n this.data = rawMessageTypes\n // filter out system message types\n .filter((mt) => mt.id && mt.typeName)\n .map((mt) => parseTheMessageTypeData(mt))\n .sort((a, b) => a.typeName.localeCompare(b.typeName));\n }\n}\n","export interface Endpoint {\n name: string;\n errorCount: number;\n serviceControlId: string;\n isScMonitoringDisconnected: boolean;\n metrics: EndpointMetrics;\n isStale: boolean;\n endpointInstanceIds: string[];\n disconnectedCount: number;\n connectedCount: number;\n}\n\nexport interface DigestValues {\n latest?: number;\n average?: number;\n}\n\nexport interface EndpointDigest {\n [index: string]: DigestValues | undefined;\n queueLength?: DigestValues;\n throughput?: DigestValues;\n retries?: DigestValues;\n processingTime?: DigestValues;\n criticalTime?: DigestValues;\n}\n\nexport interface EndpointValues {\n points: number[];\n average: number;\n}\n\nexport interface EndpointValuesWithTime extends EndpointValues {\n timeAxisValues: string[]; //dates\n}\n\nexport interface EndpointMetrics {\n [index: string]: EndpointValues;\n queueLength: EndpointValues;\n throughput: EndpointValues;\n retries: EndpointValues;\n processingTime: EndpointValuesWithTime;\n criticalTime: EndpointValuesWithTime;\n}\n\nexport interface EndpointInstance {\n name: string;\n id: string;\n isStale: boolean;\n metrics: EndpointMetrics;\n}\n\nexport interface ExtendedEndpointInstance extends EndpointInstance {\n isScMonitoringDisconnected: boolean;\n serviceControlId: string;\n errorCount: number;\n isStale: boolean;\n}\n\nexport interface MessageType {\n id: string;\n typeName: string;\n assemblyName: string;\n assemblyVersion: string;\n culture: string;\n publicKeyToken: string;\n metrics: EndpointMetrics;\n}\n\nexport interface MessageTypeDetails {\n typeName: string;\n assemblyName: string;\n assemblyVersion: string;\n culture?: string;\n publicKeyToken?: string;\n}\n\nexport interface ExtendedMessageType extends MessageType {\n shortName: string;\n messageTypeHierarchy?: MessageTypeDetails[];\n containsTypeHierarchy?: boolean;\n tooltipText: string;\n}\n\nexport interface EndpointDetails {\n instances: EndpointInstance[];\n digest: { metrics: EndpointDigest };\n metricDetails: {\n metrics: EndpointMetrics;\n };\n messageTypes: MessageType[];\n}\n\nexport interface ExtendedEndpointDetails extends EndpointDetails {\n instances: ExtendedEndpointInstance[];\n isScMonitoringDisconnected: boolean;\n serviceControlId: string;\n errorCount: number;\n isStale: boolean;\n}\n\nexport interface GroupedEndpoint {\n groupName: string;\n shortName: string;\n endpoint: Endpoint;\n}\n\nexport interface EndpointGroup {\n group: string;\n endpoints: GroupedEndpoint[];\n}\n\nexport interface EndpointDetailsError {\n error?: string;\n}\n\nexport function isError(obj: EndpointDetails | EndpointDetailsError): obj is EndpointDetailsError {\n return (obj as EndpointDetailsError).error !== undefined;\n}\n","import type { DigestValues, EndpointDigest, EndpointMetrics, EndpointValues, EndpointValuesWithTime, ExtendedEndpointDetails } from \"@/resources/MonitoringEndpoint\";\n\nconst defaultMetricData: EndpointValues = {\n points: [],\n average: 0,\n};\n\nconst defaultTimeMetricData: EndpointValuesWithTime = {\n ...defaultMetricData,\n timeAxisValues: [],\n};\n\nexport const emptyEndpointMetrics = (): EndpointMetrics => ({\n queueLength: defaultMetricData,\n throughput: defaultMetricData,\n retries: defaultMetricData,\n processingTime: defaultTimeMetricData,\n criticalTime: defaultTimeMetricData,\n});\n\nconst defaultDigestValuesData: DigestValues = {};\n\nexport const emptyEndpointDigest = (): EndpointDigest => ({\n queueLength: defaultDigestValuesData,\n throughput: defaultDigestValuesData,\n retries: defaultDigestValuesData,\n processingTime: defaultDigestValuesData,\n criticalTime: defaultDigestValuesData,\n});\n\nexport const emptyEndpointDetails = (): ExtendedEndpointDetails => ({\n instances: [],\n digest: { metrics: emptyEndpointDigest() },\n metricDetails: { metrics: emptyEndpointMetrics() },\n isScMonitoringDisconnected: false,\n serviceControlId: \"\",\n errorCount: 0,\n isStale: false,\n messageTypes: [],\n});\n","import { defineStore, acceptHMRUpdate } from \"pinia\";\nimport { ref } from \"vue\";\nimport MessageTypes from \"@/components/monitoring/messageTypes\";\nimport { formatGraphDuration } from \"../components/monitoring/formatGraph\";\nimport { type ExtendedEndpointDetails, type ExtendedEndpointInstance, type MessageType, type EndpointDetails, type EndpointDetailsError, isError } from \"@/resources/MonitoringEndpoint\";\nimport { useMonitoringHistoryPeriodStore } from \"./MonitoringHistoryPeriodStore\";\nimport createMessageGroupClient from \"../components/failedmessages/messageGroupClient\";\nimport type GroupOperation from \"@/resources/GroupOperation\";\nimport { emptyEndpointDetails } from \"@/components/monitoring/endpoints\";\nimport { useMemoize } from \"@vueuse/core\";\nimport useConnectionsAndStatsAutoRefresh from \"@/composables/useConnectionsAndStatsAutoRefresh\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\n\nexport const useMonitoringEndpointDetailsStore = defineStore(\"MonitoringEndpointDetailsStore\", () => {\n const historyPeriodStore = useMonitoringHistoryPeriodStore();\n const { store: connectionStore } = useConnectionsAndStatsAutoRefresh();\n const serviceControlStore = useServiceControlStore();\n const messageGroupClient = createMessageGroupClient();\n\n const getMemoisedEndpointDetails = useMemoize((endpointName: string, historyPeriod = 1) => {\n const data = ref(null);\n return {\n data,\n refresh: async () => {\n if (serviceControlStore.isMonitoringEnabled) {\n try {\n const [, details] = await serviceControlStore.fetchTypedFromMonitoring(`${`monitored-endpoints`}/${endpointName}?history=${historyPeriod}`);\n data.value = details!;\n } catch (error) {\n console.error(error);\n if (error instanceof Error) {\n data.value = { error: error.message } as EndpointDetailsError;\n }\n }\n }\n },\n };\n });\n\n const endpointName = ref(\"\");\n const endpointDetails = ref(emptyEndpointDetails());\n const endpointError = ref(null);\n const messageTypes = ref(null);\n const messageTypesAvailable = ref(false);\n const messageTypesUpdatedSet = ref([]);\n const negativeCriticalTimeIsPresent = ref(false);\n\n async function getEndpointDetails(name: string) {\n const { data, refresh } = getMemoisedEndpointDetails(name, historyPeriodStore.historyPeriod.pVal);\n if (!connectionStore.monitoringConnectionState.unableToConnect) await refresh();\n\n if (data.value == null || isError(data.value)) {\n endpointDetails.value.instances.forEach((item) => (item.isScMonitoringDisconnected = true));\n endpointDetails.value.isScMonitoringDisconnected = true;\n endpointError.value = data.value;\n } else {\n endpointError.value = null;\n const returnedEndpointDetails = data.value as EndpointDetails;\n endpointDetails.value.isScMonitoringDisconnected = false;\n\n const instances = await Promise.all(\n returnedEndpointDetails.instances.map(async (instance): Promise => {\n //get error count by instance id\n const { serviceControlId, errorCount } = await getFailureDetails(\"Endpoint Instance\", instance.id);\n return { ...instance, serviceControlId, errorCount, isScMonitoringDisconnected: false };\n })\n );\n instances.sort((a, b) => a.id.localeCompare(b.id));\n\n endpointDetails.value.isStale = instances.every((instance) => instance.isStale);\n\n if (name === endpointName.value && endpointDetails.value.messageTypes.length > 0 && endpointDetails.value.messageTypes.length !== returnedEndpointDetails.messageTypes.length) {\n const { messageTypes: returnedMessageTypes, ...dataWithoutMessageTypes } = returnedEndpointDetails;\n endpointDetails.value = { ...endpointDetails.value, ...dataWithoutMessageTypes, instances };\n\n messageTypesAvailable.value = true;\n messageTypesUpdatedSet.value = returnedMessageTypes;\n } else {\n endpointDetails.value = { ...endpointDetails.value, ...data.value, instances };\n }\n\n endpointName.value = name;\n\n messageTypes.value = new MessageTypes(endpointDetails.value.messageTypes);\n negativeCriticalTimeIsPresent.value = endpointDetails.value.instances.some((instance) => parseInt(formatGraphDuration(instance.metrics.criticalTime).value) < 0);\n }\n\n //get error count by endpoint name\n const { serviceControlId, errorCount } = await getFailureDetails(\"Endpoint Name\", endpointName.value);\n endpointDetails.value.serviceControlId = serviceControlId;\n endpointDetails.value.errorCount = errorCount;\n }\n\n async function getFailureDetails(classifier: string, classifierFilter: string) {\n const failedMessages: GroupOperation[] = await messageGroupClient.getExceptionGroupsForEndpoint(classifier, classifierFilter);\n const groupOperation: GroupOperation | undefined = failedMessages[0];\n return {\n serviceControlId: groupOperation?.id ?? \"\",\n errorCount: groupOperation?.count ?? 0,\n };\n }\n\n function updateMessageTypes() {\n if (messageTypesAvailable.value) {\n messageTypesAvailable.value = false;\n endpointDetails.value.messageTypes = messageTypesUpdatedSet.value;\n messageTypesUpdatedSet.value = [];\n messageTypes.value = new MessageTypes(endpointDetails.value.messageTypes);\n }\n }\n\n return {\n endpointName,\n endpointDetails,\n endpointError,\n messageTypes,\n messageTypesAvailable,\n messageTypesUpdatedSet,\n negativeCriticalTimeIsPresent,\n updateMessageTypes,\n getEndpointDetails,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useMonitoringEndpointDetailsStore, import.meta.hot));\n}\n\nexport type MonitoringEndpointDetailsStore = ReturnType;\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n"],"names":["shortenTypeName","typeName","parseTheMessageTypeData","messageType","messageTypeHierarchy","item","segments","messageTypeDetails","sum","cultureSuffix","publicKeyTokenSuffix","MessageTypes","rawMessageTypes","mt","a","b","isError","obj","defaultMetricData","defaultTimeMetricData","emptyEndpointMetrics","defaultDigestValuesData","emptyEndpointDigest","emptyEndpointDetails","useMonitoringEndpointDetailsStore","defineStore","historyPeriodStore","useMonitoringHistoryPeriodStore","connectionStore","useConnectionsAndStatsAutoRefresh","serviceControlStore","useServiceControlStore","messageGroupClient","createMessageGroupClient","getMemoisedEndpointDetails","useMemoize","endpointName","historyPeriod","data","ref","details","error","endpointDetails","endpointError","messageTypes","messageTypesAvailable","messageTypesUpdatedSet","negativeCriticalTimeIsPresent","getEndpointDetails","name","refresh","returnedEndpointDetails","instances","instance","serviceControlId","errorCount","getFailureDetails","returnedMessageTypes","dataWithoutMessageTypes","formatGraphDuration","classifier","classifierFilter","groupOperation","updateMessageTypes","store","monitoringUrl","storeToRefs","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_cache","_unref","_hoisted_8","_createVNode","_component_RouterLink","routeLinks","props","__props","hover","minPoints","computed","series1","useGraph","series2","maxYaxis","padToWholeValue","tickValues","ticks","durationTick","tick","formattedTime","useFormatTime","value","upperBound","series1AverageLabelValue","useFormatLargeNumber","series2AverageLabelValue","series1AverageLabelSuffix","series2AverageLabelSuffix","series1AverageLabelPosition","series2AverageLabelPosition","_normalizeClass","_Fragment","_renderList","tickValue","i","_toDisplayString","_hoisted_13","_createTextVNode","_hoisted_14","endpoint","_useModel","_createBlock","LargeGraph","largeGraphsMinimumYAxis","_withDirectives","QueueLength","_directive_tippy","formatGraphDecimalFromNumber","_hoisted_10","_hoisted_11","Throughput","_hoisted_9","_hoisted_12","ScheduledRetries","_hoisted_15","_hoisted_16","_hoisted_18","_hoisted_19","latestProcessingTime","averageProcessingTime","latestCriticalTime","averageCriticalTime","ProcessingTime","CriticalTime","_hoisted_17","_hoisted_21","_hoisted_22","_hoisted_23","isRemovingEndpointEnabled","router","useRouter","monitoringStore","removeEndpoint","err","getIsRemovingEndpointEnabled","response","allow","onMounted","ColumnHeader","InstanceName","NoData","id","RouterLink","FAIcon","faEnvelope","_hoisted_20","SmallGraph","smallGraphsMinimumYAxis","formatGraphDecimal","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","$event","faTrash","route","useRoute","messageTypesPage","watch","paginatedMessageTypes","pageStart","pageEnd","faWarning","MessageType","type","_hoisted_46","_hoisted_47","PaginationStrip","monitoringConnectionState","refreshInterval","monitoringHistoryPeriodStore","isMonitoringDisabled","newValue","changeRefreshInterval","tabs","activeTab","milliseconds","onUnmounted","ServiceControlAvailable","LicenseNotExpired","MonitoringNotAvailable","PeriodSelector","EndpointBacklog","EndpointWorkload","EndpointTimings","EndpointInstances","EndpointMessageTypes"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/EndpointDetails-K56jytJD.css b/src/ServiceControl/wwwroot/assets/EndpointDetails-K56jytJD.css new file mode 100644 index 0000000000..2ea7131f98 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointDetails-K56jytJD.css @@ -0,0 +1 @@ +.endpoint-status[data-v-ba14b6d4]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-ba14b6d4]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-ba14b6d4]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-ba14b6d4]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-ba14b6d4]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-ba14b6d4]:hover{color:#23527c}.endpoint-status .badge[data-v-ba14b6d4]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-ba14b6d4]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-ba14b6d4]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-ba14b6d4]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-ba14b6d4]{top:-11px}.endpoint-status .badge[data-v-ba14b6d4]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-ba14b6d4],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-ba14b6d4],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-ba14b6d4],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-ba14b6d4]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-ba14b6d4],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-ba14b6d4]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-ba14b6d4]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-ba14b6d4]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-ba14b6d4]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-ba14b6d4]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-ba14b6d4]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-ba14b6d4]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-ba14b6d4]{margin-top:-8px}.endpoint-name>div>div>a[data-v-ba14b6d4]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-ba14b6d4]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-ba14b6d4]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-ba14b6d4],.endpoint-name>div[data-v-ba14b6d4]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-ba14b6d4]{gap:.25em}.endpoint-name .box-header.with-status[data-v-ba14b6d4]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-ba14b6d4]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-ba14b6d4]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-ba14b6d4],.sort-menu[data-v-ba14b6d4]{float:left!important}.sort-menu[data-v-ba14b6d4]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-ba14b6d4]{margin-bottom:6px}.msg-group-menu[data-v-ba14b6d4]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-ba14b6d4]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-ba14b6d4]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-ba14b6d4]{margin-right:0}.no-mobile-side-padding[data-v-ba14b6d4]{padding-right:0;padding-left:0}.tabs h5[data-v-ba14b6d4]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-ba14b6d4]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-ba14b6d4]{margin:3px 0 14px}.btn-toolbar .btn[data-v-ba14b6d4],.btn-toolbar .btn-group[data-v-ba14b6d4],.btn-toolbar .input-group[data-v-ba14b6d4]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-ba14b6d4]{margin-right:4px!important}div.btn-toolbar[data-v-ba14b6d4],div.form-inliner[data-v-ba14b6d4]{margin-bottom:12px}.filter-toolbar[data-v-ba14b6d4],.action-toolbar[data-v-ba14b6d4]{margin-top:2px}div.sp-pull-right[data-v-ba14b6d4]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-ba14b6d4]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-ba14b6d4],div.form-inliner[data-v-ba14b6d4]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-ba14b6d4],.endpoint-row .col-xl-7[data-v-ba14b6d4]{width:20%}.table-head-row .col-xl-8[data-v-ba14b6d4],.endpoint-row .col-xl-8[data-v-ba14b6d4]{width:36%}.table-head-row .col-xl-1[data-v-ba14b6d4],.endpoint-row .col-xl-1[data-v-ba14b6d4]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-ba14b6d4],.endpoint-row .col-xl-7[data-v-ba14b6d4]{width:30%}.table-head-row .col-xl-8[data-v-ba14b6d4],.endpoint-row .col-xl-8[data-v-ba14b6d4]{width:44%}.table-head-row .col-xl-1[data-v-ba14b6d4],.endpoint-row .col-xl-1[data-v-ba14b6d4]{width:14%}}.sparkline-value[data-v-ba14b6d4]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-ba14b6d4]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-ba14b6d4]{color:#00f}.sparkline-value.sec span[data-v-ba14b6d4]{color:#007aff}.sparkline-value.min[data-v-ba14b6d4]{color:#8b00d0}.sparkline-value.min span[data-v-ba14b6d4]{color:#b14ae4}.sparkline-value.hr[data-v-ba14b6d4]{color:#d601da}.sparkline-value.hr span[data-v-ba14b6d4]{color:#d764d9}.sparkline-value.d[data-v-ba14b6d4]{color:#ad0017}.sparkline-value.d span[data-v-ba14b6d4]{color:#ff0004}.graph-message-retries-throughputs[data-v-ba14b6d4],.graph-critical-processing-times[data-v-ba14b6d4]{margin-left:.5%}.monitoring-no-data[data-v-ba14b6d4]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-ba14b6d4]{font-size:30px}.monitoring-no-data-content[data-v-ba14b6d4]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-ba14b6d4]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-ba14b6d4]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-ba14b6d4]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-ba14b6d4]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-ba14b6d4]{margin-left:10px}[data-v-ba14b6d4] span.table-header-unit{color:#777f7f}.box-header[data-v-ba14b6d4]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-ba14b6d4]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-ba14b6d4]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-ba14b6d4]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-ba14b6d4]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-ba14b6d4],i.fa.pa-monitoring-lost.endpoints-overview[data-v-ba14b6d4],i.fa.pa-endpoint-lost.endpoint-details[data-v-ba14b6d4],i.fa.pa-monitoring-lost.endpoint-details[data-v-ba14b6d4]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-ba14b6d4]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-ba14b6d4]{top:4px}div[content="Unable to connect to instance"][data-v-ba14b6d4],div[content="Unable to connect to monitoring server"][data-v-ba14b6d4]{z-index:99999}.pull-left[data-v-ba14b6d4]{float:left}div.avg-tooltip[data-v-7c95dbae]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-7c95dbae]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-7c95dbae]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-7c95dbae]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-7c95dbae]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-7c95dbae]{font-size:11px;font-weight:400}.queue-length[data-v-7c95dbae]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-7c95dbae]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-7c95dbae]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-7c95dbae]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-7c95dbae]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-7c95dbae]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-7c95dbae]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-7c95dbae]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-7c95dbae]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-7c95dbae]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-7c95dbae]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-7c95dbae]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-7c95dbae]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-7c95dbae]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-7c95dbae]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-7c95dbae]{color:#fff}.large-graph[data-v-7c95dbae]{position:relative;width:100%}.large-graph svg[data-v-7c95dbae]{position:absolute;width:100%;height:100%;top:0;left:0}svg.data[data-v-7c95dbae]{transform:scaleY(-1);left:60px;top:5px;width:calc(100% - 60px);height:calc(100% - 10px)}.large-graph .graph-data-line[data-v-7c95dbae]{stroke-width:2.75;fill:none}.large-graph * .graph-data-fill[data-v-7c95dbae]{opacity:.8}.large-graph .graph-avg-line[data-v-7c95dbae]{stroke-width:1.5;opacity:.5;stroke-dasharray:10,10}.padding[data-v-7c95dbae]{height:200px;display:flex;flex-direction:column;position:relative}.large-graph .avg-tooltip[data-v-7c95dbae]{position:absolute;z-index:10;right:calc(100% - 60px + 1.3em);width:fit-content;display:none}.large-graph .avg-tooltip.left[data-v-7c95dbae]{left:calc(100% + 1.3em)}.large-graph.hover .avg-tooltip[data-v-7c95dbae]{display:block}div.avg-tooltip[data-v-501d7e5b]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-501d7e5b]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-501d7e5b]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-501d7e5b]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-501d7e5b]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-501d7e5b]{font-size:11px;font-weight:400}.queue-length[data-v-501d7e5b]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-501d7e5b]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-501d7e5b]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-501d7e5b]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-501d7e5b]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-501d7e5b]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-501d7e5b]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-501d7e5b]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-501d7e5b]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-501d7e5b]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-501d7e5b]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-501d7e5b]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-501d7e5b]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-501d7e5b]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-501d7e5b]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-501d7e5b]{color:#fff}.graph-values[data-v-501d7e5b]{margin-left:60px;padding-top:10px;border-top:3px solid #fff;margin-top:-8.5px;width:calc(100% - 60px);display:flex;justify-content:space-between}.metric-digest-value[data-v-501d7e5b]{font-weight:700;font-size:22px}.metric-digest-value div[data-v-501d7e5b]{display:inline-block}.metric-digest-value-suffix[data-v-501d7e5b]{font-weight:400;font-size:14px;display:inline-block;text-transform:uppercase;text-wrap:nowrap}.metric-digest[data-v-501d7e5b]{padding:1em}.metric-digest-header[data-v-501d7e5b]{text-transform:uppercase;display:inline-block;font-size:14px;font-weight:700}.current[data-v-501d7e5b],.average[data-v-501d7e5b]{margin-top:4px;margin-bottom:8px;padding-left:4px;line-height:20px;height:19px}.current[data-v-501d7e5b]{border-left:2.5px solid}.average[data-v-501d7e5b]{border-left:1px dashed;padding-left:6px}.graph-area[data-v-501d7e5b]{width:33%;box-sizing:border-box}@media (max-width: 1300px){.graph-area[data-v-501d7e5b]{width:95%}}.graph-queue-length .metric-digest-value[data-v-501d7e5b]{flex-basis:100%}.queue-length-values[data-v-501d7e5b]{display:inline-block}.queue-length-values .metric-digest-header[data-v-501d7e5b]{color:var(--monitoring-queue-length)}.graph-queue-length .current[data-v-501d7e5b],.graph-queue-length .average[data-v-501d7e5b]{border-color:var(--monitoring-queue-length)}div.avg-tooltip[data-v-efb8f3c0]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-efb8f3c0]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-efb8f3c0]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-efb8f3c0]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-efb8f3c0]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-efb8f3c0]{font-size:11px;font-weight:400}.queue-length[data-v-efb8f3c0]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-efb8f3c0]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-efb8f3c0]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-efb8f3c0]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-efb8f3c0]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-efb8f3c0]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-efb8f3c0]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-efb8f3c0]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-efb8f3c0]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-efb8f3c0]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-efb8f3c0]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-efb8f3c0]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-efb8f3c0]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-efb8f3c0]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-efb8f3c0]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-efb8f3c0]{color:#fff}.graph-values[data-v-efb8f3c0]{margin-left:60px;padding-top:10px;border-top:3px solid #fff;margin-top:-8.5px;width:calc(100% - 60px);display:flex;justify-content:space-between}.metric-digest-value[data-v-efb8f3c0]{font-weight:700;font-size:22px}.metric-digest-value div[data-v-efb8f3c0]{display:inline-block}.metric-digest-value-suffix[data-v-efb8f3c0]{font-weight:400;font-size:14px;display:inline-block;text-transform:uppercase;text-wrap:nowrap}.metric-digest[data-v-efb8f3c0]{padding:1em}.metric-digest-header[data-v-efb8f3c0]{text-transform:uppercase;display:inline-block;font-size:14px;font-weight:700}.current[data-v-efb8f3c0],.average[data-v-efb8f3c0]{margin-top:4px;margin-bottom:8px;padding-left:4px;line-height:20px;height:19px}.current[data-v-efb8f3c0]{border-left:2.5px solid}.average[data-v-efb8f3c0]{border-left:1px dashed;padding-left:6px}.graph-area[data-v-efb8f3c0]{width:33%;box-sizing:border-box}@media (max-width: 1300px){.graph-area[data-v-efb8f3c0]{width:95%}}.throughput-values span.metric-digest-header[data-v-efb8f3c0]{color:var(--monitoring-throughput)}.throughput-values .current[data-v-efb8f3c0],.throughput-values .average[data-v-efb8f3c0]{border-color:var(--monitoring-throughput)}.scheduled-retries-rate-values span.metric-digest-header[data-v-efb8f3c0]{color:var(--monitoring-retries)}.scheduled-retries-rate-values .current[data-v-efb8f3c0],.scheduled-retries-rate-values .average[data-v-efb8f3c0]{border-color:var(--monitoring-retries)}div.avg-tooltip[data-v-59e2edb8]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-59e2edb8]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-59e2edb8]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-59e2edb8]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-59e2edb8]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-59e2edb8]{font-size:11px;font-weight:400}.queue-length[data-v-59e2edb8]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-59e2edb8]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-59e2edb8]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-59e2edb8]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-59e2edb8]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-59e2edb8]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-59e2edb8]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-59e2edb8]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-59e2edb8]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-59e2edb8]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-59e2edb8]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-59e2edb8]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-59e2edb8]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-59e2edb8]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-59e2edb8]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-59e2edb8]{color:#fff}.graph-values[data-v-59e2edb8]{margin-left:60px;padding-top:10px;border-top:3px solid #fff;margin-top:-8.5px;width:calc(100% - 60px);display:flex;justify-content:space-between}.metric-digest-value[data-v-59e2edb8]{font-weight:700;font-size:22px}.metric-digest-value div[data-v-59e2edb8]{display:inline-block}.metric-digest-value-suffix[data-v-59e2edb8]{font-weight:400;font-size:14px;display:inline-block;text-transform:uppercase;text-wrap:nowrap}.metric-digest[data-v-59e2edb8]{padding:1em}.metric-digest-header[data-v-59e2edb8]{text-transform:uppercase;display:inline-block;font-size:14px;font-weight:700}.current[data-v-59e2edb8],.average[data-v-59e2edb8]{margin-top:4px;margin-bottom:8px;padding-left:4px;line-height:20px;height:19px}.current[data-v-59e2edb8]{border-left:2.5px solid}.average[data-v-59e2edb8]{border-left:1px dashed;padding-left:6px}.graph-area[data-v-59e2edb8]{width:33%;box-sizing:border-box}@media (max-width: 1300px){.graph-area[data-v-59e2edb8]{width:95%}}.critical-time-values span.metric-digest-header[data-v-59e2edb8]{color:var(--monitoring-critical-time)}.critical-time-values .current[data-v-59e2edb8],.critical-time-values .average[data-v-59e2edb8]{border-color:var(--monitoring-critical-time)}.processing-time-values span.metric-digest-header[data-v-59e2edb8]{color:var(--monitoring-processing-time)}.processing-time-values .current[data-v-59e2edb8],.processing-time-values .average[data-v-59e2edb8]{border-color:var(--monitoring-processing-time)}.lead[data-v-86c8a7d6],.box p .lead[data-v-86c8a7d6]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-86c8a7d6]{cursor:pointer}.endpoint-status[data-v-86c8a7d6]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-86c8a7d6]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-86c8a7d6]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-86c8a7d6]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-86c8a7d6]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-86c8a7d6]:hover{color:#23527c}.endpoint-status .badge[data-v-86c8a7d6]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-86c8a7d6]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-86c8a7d6]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-86c8a7d6]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-86c8a7d6]{top:-11px}.endpoint-status .badge[data-v-86c8a7d6]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-86c8a7d6],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-86c8a7d6],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-86c8a7d6],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-86c8a7d6]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-86c8a7d6],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-86c8a7d6]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-86c8a7d6]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-86c8a7d6]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-86c8a7d6]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-86c8a7d6]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-86c8a7d6]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-86c8a7d6]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-86c8a7d6]{margin-top:-8px}.endpoint-name>div>div>a[data-v-86c8a7d6]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-86c8a7d6]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-86c8a7d6]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-86c8a7d6],.endpoint-name>div[data-v-86c8a7d6]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-86c8a7d6]{gap:.25em}.endpoint-name .box-header.with-status[data-v-86c8a7d6]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-86c8a7d6]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-86c8a7d6]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-86c8a7d6],.sort-menu[data-v-86c8a7d6]{float:left!important}.sort-menu[data-v-86c8a7d6]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-86c8a7d6]{margin-bottom:6px}.msg-group-menu[data-v-86c8a7d6]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-86c8a7d6]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-86c8a7d6]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-86c8a7d6]{margin-right:0}.no-mobile-side-padding[data-v-86c8a7d6]{padding-right:0;padding-left:0}.tabs h5[data-v-86c8a7d6]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-86c8a7d6]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-86c8a7d6]{margin:3px 0 14px}.btn-toolbar .btn[data-v-86c8a7d6],.btn-toolbar .btn-group[data-v-86c8a7d6],.btn-toolbar .input-group[data-v-86c8a7d6]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-86c8a7d6]{margin-right:4px!important}div.btn-toolbar[data-v-86c8a7d6],div.form-inliner[data-v-86c8a7d6]{margin-bottom:12px}.filter-toolbar[data-v-86c8a7d6],.action-toolbar[data-v-86c8a7d6]{margin-top:2px}div.sp-pull-right[data-v-86c8a7d6]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-86c8a7d6]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-86c8a7d6],div.form-inliner[data-v-86c8a7d6]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-86c8a7d6],.endpoint-row .col-xl-7[data-v-86c8a7d6]{width:20%}.table-head-row .col-xl-8[data-v-86c8a7d6],.endpoint-row .col-xl-8[data-v-86c8a7d6]{width:36%}.table-head-row .col-xl-1[data-v-86c8a7d6],.endpoint-row .col-xl-1[data-v-86c8a7d6]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-86c8a7d6],.endpoint-row .col-xl-7[data-v-86c8a7d6]{width:30%}.table-head-row .col-xl-8[data-v-86c8a7d6],.endpoint-row .col-xl-8[data-v-86c8a7d6]{width:44%}.table-head-row .col-xl-1[data-v-86c8a7d6],.endpoint-row .col-xl-1[data-v-86c8a7d6]{width:14%}}.sparkline-value[data-v-86c8a7d6]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-86c8a7d6]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-86c8a7d6]{color:#00f}.sparkline-value.sec span[data-v-86c8a7d6]{color:#007aff}.sparkline-value.min[data-v-86c8a7d6]{color:#8b00d0}.sparkline-value.min span[data-v-86c8a7d6]{color:#b14ae4}.sparkline-value.hr[data-v-86c8a7d6]{color:#d601da}.sparkline-value.hr span[data-v-86c8a7d6]{color:#d764d9}.sparkline-value.d[data-v-86c8a7d6]{color:#ad0017}.sparkline-value.d span[data-v-86c8a7d6]{color:#ff0004}.graph-message-retries-throughputs[data-v-86c8a7d6],.graph-critical-processing-times[data-v-86c8a7d6]{margin-left:.5%}.monitoring-no-data[data-v-86c8a7d6]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-86c8a7d6]{font-size:30px}.monitoring-no-data-content[data-v-86c8a7d6]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-86c8a7d6]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-86c8a7d6]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-86c8a7d6]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-86c8a7d6]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-86c8a7d6]{margin-left:10px}[data-v-86c8a7d6] span.table-header-unit{color:#777f7f}.box-header[data-v-86c8a7d6]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-86c8a7d6]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-86c8a7d6]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-86c8a7d6]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-86c8a7d6]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-86c8a7d6],i.fa.pa-monitoring-lost.endpoints-overview[data-v-86c8a7d6],i.fa.pa-endpoint-lost.endpoint-details[data-v-86c8a7d6],i.fa.pa-monitoring-lost.endpoint-details[data-v-86c8a7d6]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-86c8a7d6]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-86c8a7d6]{top:4px}div[content="Unable to connect to instance"][data-v-86c8a7d6],div[content="Unable to connect to monitoring server"][data-v-86c8a7d6]{z-index:99999}.pull-left[data-v-86c8a7d6]{float:left}.endpoint-row[data-v-86c8a7d6]{padding:.5em 1.5em;margin:0}.box[data-v-86c8a7d6]{box-shadow:none;margin:0}.box-no-click[data-v-86c8a7d6]{background:none;border-bottom:1px solid #ced6d3;border-left:none;border-right:none;cursor:default}.box-no-click[data-v-86c8a7d6]:first-child{border-top:1px solid #ced6d3}.box-no-click[data-v-86c8a7d6]{padding-left:0;padding-right:0}.box-no-click[data-v-86c8a7d6]:hover{background:none!important;border-bottom:1px solid #ced6d3!important;border-left:none;border-right:none;border-top:none;cursor:default;padding-top:21px}.box-no-click[data-v-86c8a7d6]:first-child:hover{border-top:1px solid #ced6d3!important;padding-top:20px}.box-no-click>div>div[data-v-86c8a7d6]{padding-left:0;padding-right:0}.box-no-click>div>div>div[data-v-86c8a7d6]{padding-left:0;padding-right:0}.endpoint-row a.remove-endpoint[data-v-86c8a7d6],.endpoint-row:hover a.remove-endpoint[data-v-86c8a7d6]{display:block;position:absolute;top:17px;right:22px}a.remove-endpoint[data-v-86c8a7d6]{margin-left:7px}a.remove-endpoint[data-v-86c8a7d6]:hover{cursor:pointer}a.remove-endpoint i[data-v-86c8a7d6]{color:var(--sp-blue)}a.remove-endpoint:hover i[data-v-86c8a7d6]{color:#00729c}.pa-warning[data-v-86c8a7d6]{padding-top:25px}.lead[data-v-89363883],.box p .lead[data-v-89363883]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-89363883]{cursor:pointer}.endpoint-status[data-v-89363883]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-89363883]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-89363883]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-89363883]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-89363883]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-89363883]:hover{color:#23527c}.endpoint-status .badge[data-v-89363883]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-89363883]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-89363883]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-89363883]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-89363883]{top:-11px}.endpoint-status .badge[data-v-89363883]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-89363883],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-89363883],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-89363883],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-89363883]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-89363883],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-89363883]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-89363883]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-89363883]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-89363883]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-89363883]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-89363883]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-89363883]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-89363883]{margin-top:-8px}.endpoint-name>div>div>a[data-v-89363883]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-89363883]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-89363883]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-89363883],.endpoint-name>div[data-v-89363883]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-89363883]{gap:.25em}.endpoint-name .box-header.with-status[data-v-89363883]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-89363883]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-89363883]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-89363883],.sort-menu[data-v-89363883]{float:left!important}.sort-menu[data-v-89363883]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-89363883]{margin-bottom:6px}.msg-group-menu[data-v-89363883]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-89363883]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-89363883]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-89363883]{margin-right:0}.no-mobile-side-padding[data-v-89363883]{padding-right:0;padding-left:0}.tabs h5[data-v-89363883]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-89363883]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-89363883]{margin:3px 0 14px}.btn-toolbar .btn[data-v-89363883],.btn-toolbar .btn-group[data-v-89363883],.btn-toolbar .input-group[data-v-89363883]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-89363883]{margin-right:4px!important}div.btn-toolbar[data-v-89363883],div.form-inliner[data-v-89363883]{margin-bottom:12px}.filter-toolbar[data-v-89363883],.action-toolbar[data-v-89363883]{margin-top:2px}div.sp-pull-right[data-v-89363883]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-89363883]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-89363883],div.form-inliner[data-v-89363883]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-89363883],.endpoint-row .col-xl-7[data-v-89363883]{width:20%}.table-head-row .col-xl-8[data-v-89363883],.endpoint-row .col-xl-8[data-v-89363883]{width:36%}.table-head-row .col-xl-1[data-v-89363883],.endpoint-row .col-xl-1[data-v-89363883]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-89363883],.endpoint-row .col-xl-7[data-v-89363883]{width:30%}.table-head-row .col-xl-8[data-v-89363883],.endpoint-row .col-xl-8[data-v-89363883]{width:44%}.table-head-row .col-xl-1[data-v-89363883],.endpoint-row .col-xl-1[data-v-89363883]{width:14%}}.sparkline-value[data-v-89363883]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-89363883]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-89363883]{color:#00f}.sparkline-value.sec span[data-v-89363883]{color:#007aff}.sparkline-value.min[data-v-89363883]{color:#8b00d0}.sparkline-value.min span[data-v-89363883]{color:#b14ae4}.sparkline-value.hr[data-v-89363883]{color:#d601da}.sparkline-value.hr span[data-v-89363883]{color:#d764d9}.sparkline-value.d[data-v-89363883]{color:#ad0017}.sparkline-value.d span[data-v-89363883]{color:#ff0004}.graph-message-retries-throughputs[data-v-89363883],.graph-critical-processing-times[data-v-89363883]{margin-left:.5%}.monitoring-no-data[data-v-89363883]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-89363883]{font-size:30px}.monitoring-no-data-content[data-v-89363883]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-89363883]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-89363883]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-89363883]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-89363883]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-89363883]{margin-left:10px}[data-v-89363883] span.table-header-unit{color:#777f7f}.box-header[data-v-89363883]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-89363883]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-89363883]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-89363883]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-89363883]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-89363883],i.fa.pa-monitoring-lost.endpoints-overview[data-v-89363883],i.fa.pa-endpoint-lost.endpoint-details[data-v-89363883],i.fa.pa-monitoring-lost.endpoint-details[data-v-89363883]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-89363883]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-89363883]{top:4px}div[content="Unable to connect to instance"][data-v-89363883],div[content="Unable to connect to monitoring server"][data-v-89363883]{z-index:99999}.pull-left[data-v-89363883]{float:left}.endpoint-row[data-v-89363883]{padding:.5em 1.5em;margin:0}.box[data-v-89363883]{box-shadow:none;margin:0}.box-no-click[data-v-89363883]{background:none;border-bottom:1px solid #ced6d3;border-left:none;border-right:none;cursor:default}.box-no-click[data-v-89363883]:first-child{border-top:1px solid #ced6d3}.box-no-click[data-v-89363883]{padding-left:0;padding-right:0}.box-no-click[data-v-89363883]:hover{background:none!important;border-bottom:1px solid #ced6d3!important;border-left:none;border-right:none;border-top:none;cursor:default;padding-top:21px}.box-no-click[data-v-89363883]:first-child:hover{border-top:1px solid #ced6d3!important;padding-top:20px}.box-no-click>div>div[data-v-89363883]{padding-left:0;padding-right:0}.box-no-click>div>div>div[data-v-89363883]{padding-left:0;padding-right:0}.message-type-part[data-v-89363883]{margin-right:24px;color:#8c8c8c;font-weight:400;font-size:12px;display:inline-block}.row.message-type-properties[data-v-89363883]{position:relative;top:-5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.endpoint-data-changed[data-v-89363883]{text-align:center;margin:26px 0 0}.endpoint-data-changed a[data-v-89363883]{text-decoration:underline}.endpoint-data-changed a[data-v-89363883]:hover{cursor:pointer}.endpoint-data-changed.sticky[data-v-89363883]{position:fixed;top:50px;width:92%;z-index:999999;box-shadow:0 3px 20px #00000026;transition-duration:.5s}.pa-warning[data-v-89363883]{padding-top:25px}.lead[data-v-1ea9666e],.box p .lead[data-v-1ea9666e]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-1ea9666e]{cursor:pointer}div.avg-tooltip[data-v-1ea9666e]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-1ea9666e]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-1ea9666e]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-1ea9666e]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-1ea9666e]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-1ea9666e]{font-size:11px;font-weight:400}.queue-length[data-v-1ea9666e]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-1ea9666e]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-1ea9666e]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-1ea9666e]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-1ea9666e]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-1ea9666e]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-1ea9666e]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-1ea9666e]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-1ea9666e]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-1ea9666e]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-1ea9666e]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-1ea9666e]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-1ea9666e]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-1ea9666e]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-1ea9666e]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-1ea9666e]{color:#fff}.endpoint-status[data-v-1ea9666e]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-1ea9666e]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-1ea9666e]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-1ea9666e]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-1ea9666e]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-1ea9666e]:hover{color:#23527c}.endpoint-status .badge[data-v-1ea9666e]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-1ea9666e]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-1ea9666e]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-1ea9666e]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-1ea9666e]{top:-11px}.endpoint-status .badge[data-v-1ea9666e]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-1ea9666e],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-1ea9666e],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-1ea9666e],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-1ea9666e]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-1ea9666e],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-1ea9666e]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-1ea9666e]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-1ea9666e]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-1ea9666e]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-1ea9666e]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-1ea9666e]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-1ea9666e]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-1ea9666e]{margin-top:-8px}.endpoint-name>div>div>a[data-v-1ea9666e]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-1ea9666e]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-1ea9666e]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-1ea9666e],.endpoint-name>div[data-v-1ea9666e]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-1ea9666e]{gap:.25em}.endpoint-name .box-header.with-status[data-v-1ea9666e]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-1ea9666e]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-1ea9666e]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-1ea9666e],.sort-menu[data-v-1ea9666e]{float:left!important}.sort-menu[data-v-1ea9666e]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-1ea9666e]{margin-bottom:6px}.msg-group-menu[data-v-1ea9666e]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-1ea9666e]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-1ea9666e]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-1ea9666e]{margin-right:0}.no-mobile-side-padding[data-v-1ea9666e]{padding-right:0;padding-left:0}.tabs h5[data-v-1ea9666e]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-1ea9666e]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-1ea9666e]{margin:3px 0 14px}.btn-toolbar .btn[data-v-1ea9666e],.btn-toolbar .btn-group[data-v-1ea9666e],.btn-toolbar .input-group[data-v-1ea9666e]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-1ea9666e]{margin-right:4px!important}div.btn-toolbar[data-v-1ea9666e],div.form-inliner[data-v-1ea9666e]{margin-bottom:12px}.filter-toolbar[data-v-1ea9666e],.action-toolbar[data-v-1ea9666e]{margin-top:2px}div.sp-pull-right[data-v-1ea9666e]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-1ea9666e]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-1ea9666e],div.form-inliner[data-v-1ea9666e]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-1ea9666e],.endpoint-row .col-xl-7[data-v-1ea9666e]{width:20%}.table-head-row .col-xl-8[data-v-1ea9666e],.endpoint-row .col-xl-8[data-v-1ea9666e]{width:36%}.table-head-row .col-xl-1[data-v-1ea9666e],.endpoint-row .col-xl-1[data-v-1ea9666e]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-1ea9666e],.endpoint-row .col-xl-7[data-v-1ea9666e]{width:30%}.table-head-row .col-xl-8[data-v-1ea9666e],.endpoint-row .col-xl-8[data-v-1ea9666e]{width:44%}.table-head-row .col-xl-1[data-v-1ea9666e],.endpoint-row .col-xl-1[data-v-1ea9666e]{width:14%}}.sparkline-value[data-v-1ea9666e]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-1ea9666e]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-1ea9666e]{color:#00f}.sparkline-value.sec span[data-v-1ea9666e]{color:#007aff}.sparkline-value.min[data-v-1ea9666e]{color:#8b00d0}.sparkline-value.min span[data-v-1ea9666e]{color:#b14ae4}.sparkline-value.hr[data-v-1ea9666e]{color:#d601da}.sparkline-value.hr span[data-v-1ea9666e]{color:#d764d9}.sparkline-value.d[data-v-1ea9666e]{color:#ad0017}.sparkline-value.d span[data-v-1ea9666e]{color:#ff0004}.graph-message-retries-throughputs[data-v-1ea9666e],.graph-critical-processing-times[data-v-1ea9666e]{margin-left:.5%}.monitoring-no-data[data-v-1ea9666e]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-1ea9666e]{font-size:30px}.monitoring-no-data-content[data-v-1ea9666e]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-1ea9666e]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-1ea9666e]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-1ea9666e]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-1ea9666e]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-1ea9666e]{margin-left:10px}[data-v-1ea9666e] span.table-header-unit{color:#777f7f}.box-header[data-v-1ea9666e]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-1ea9666e]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-1ea9666e]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-1ea9666e]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-1ea9666e]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-1ea9666e],i.fa.pa-monitoring-lost.endpoints-overview[data-v-1ea9666e],i.fa.pa-endpoint-lost.endpoint-details[data-v-1ea9666e],i.fa.pa-monitoring-lost.endpoint-details[data-v-1ea9666e]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-1ea9666e]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-1ea9666e]{top:4px}div[content="Unable to connect to instance"][data-v-1ea9666e],div[content="Unable to connect to monitoring server"][data-v-1ea9666e]{z-index:99999}.pull-left[data-v-1ea9666e]{float:left}.monitoring-head[data-v-1ea9666e]{display:flex;justify-content:space-between}.monitoring-head h1[data-v-1ea9666e]{margin-bottom:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.monitoring-head .msg-group-menu[data-v-1ea9666e]{margin:6px 0 0 6px;padding-right:0}.monitoring-head .endpoint-status[data-v-1ea9666e]{top:4px}.monitoring-head .endpoint-status-icon[data-v-1ea9666e]{font-size:26px;position:relative;left:1px}.monitoring-head .endpoint-status .badge[data-v-1ea9666e]{position:absolute;font-size:10px;right:-10px;left:unset;top:unset;bottom:-2px}.monitoring-head .endpoint-status .pa-endpoint-lost.endpoint-details[data-v-1ea9666e],.monitoring-head .endpoint-status .pa-monitoring-lost.endpoint-details[data-v-1ea9666e]{width:32px;height:30px}.endpoint-title[data-v-1ea9666e]{flex:0;display:flex;align-items:center}.large-graphs[data-v-1ea9666e]{width:100%;background-color:#fff;margin-bottom:34px;padding:30px 0} diff --git a/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js b/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js new file mode 100644 index 0000000000..2f86065bf6 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js @@ -0,0 +1,2 @@ +import{d as te,u as ne,r as h,a as ae,s as j,c as H,g as se,S as F,w as oe,h as le,b as ie,e as re,f as ce,i as U,j as de,k as ue,o as me,l as pe,m as T,n as u,p as I,q as t,t as M,C as be,T as fe,v as s,x as E,y as g,_ as p,z as a,A as ve,B as W,D as B,F as ge,E as P,G as _e,H as he,R as ye,I as x,J as L,N as Se,K as z,L as we,M as q,O as Y,P as b,Q as f,U as ke}from"./index-tFZp7u44.js";import{_ as Ce,a as Ie}from"./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js";import{O as Ee}from"./OnOffSwitch-CICGC8TS.js";var $=(o=>(o.InstanceName="name",o.LastHeartbeat="latestHeartbeat",o.MuteToggle="toggleMuteAlerts",o))($||{});const Re=new Map([["name",o=>o.host_display_name],["latestHeartbeat",o=>le.utc(o.heartbeat_information?.last_report_at??"1975-01-01T00:00:00")],["toggleMuteAlerts",o=>!o.monitor_heartbeat]]),Ae=te("HeartbeatInstancesStore",()=>{const o=ne(),v=h(""),_=ae(),{endpointInstances:y}=j(_),c=h({property:"name",isAscending:!0}),R=H(()=>y.value.sort(se(Re.get(c.value.property),c.value.isAscending?F.Ascending:F.Descending))),A=H(()=>R.value.filter(i=>!v.value||i.host_display_name.toLowerCase().includes(v.value.toLowerCase()))),S=()=>_.refresh();oe(v,i=>{m(i)});function m(i){v.value=i}async function D(i){await o.deleteFromServiceControl(`endpoints/${i.id}`),await _.refresh()}async function w(i){await Promise.all(i.map(k=>o.patchToServiceControl(`endpoints/${k.id}`,{monitor_heartbeat:!k.monitor_heartbeat}))),await _.refresh()}return{refresh:S,sortedInstances:R,filteredInstances:A,instanceFilterString:v,deleteEndpointInstance:D,toggleEndpointMonitor:w,sortByInstances:c}}),De=ie("heartbeatInstances",Ae,5e3),Ve={class:"container"},Te={class:"row"},xe={class:"col-8 instances-heading"},$e={style:{overflowWrap:"break-word"}},He={class:"col-4 align-content-center"},Me={class:"searchContainer"},Be={class:"row filters"},Le={class:"col-sm-12"},Ne={class:"buttonsContainer"},Oe=["disabled"],Fe=["disabled"],Ue={class:"row"},We={role:"table","aria-label":"endpoint-instances"},Pe={role:"row","aria-label":"column-headers",class:"row table-head-row",style:{borderTop:0}},ze={class:"d-flex align-items-center p-1"},qe={type:"button",class:"btn btn-danger btn-ms text-nowrap me-3"},Ye={class:"delete-all"},je={role:"rowgroup","aria-label":"endpoints"},Ge=["aria-label"],Je={role:"cell",class:"col-6 host-name"},Ke={role:"status",class:"status-icon"},Qe={class:"lead","aria-label":"instance-name"},Xe={role:"cell","aria-label":"last-heartbeat",class:"col-2 last-heartbeat"},Ze={role:"cell","aria-label":"mute toggle",class:"col-2 centre"},et={class:"switch"},tt={role:"cell","aria-label":"actions",class:"col-1 actions"},nt=["onClick"],at=re({__name:"EndpointInstances",setup(o){const v=ce(),_=U(),y=v.params.endpointName.toString(),{store:c}=De(),{filteredInstances:R,sortedInstances:A,instanceFilterString:S,sortByInstances:m}=j(c),D=de(),w=h([D.defaultEndpointSettingsValue]),i=h(ue.heartbeats.root),k=n=>n.filter(e=>e.name===y).filter(e=>!(!(w.value.find(l=>l.name===e.name)??w.value.find(l=>l.name==="")).track_instances&&!e.is_sending_heartbeats)),d=H(()=>k(R.value)),G=H(()=>k(A.value)),V=h(!1),C=h("mute");me(async()=>{const n=U().currentRoute.value.query.back;n&&(i.value=n),w.value=await D.getEndpointSettings()});function N(n){C.value=n,V.value=!0}function J(){V.value=!1}async function K(){V.value=!1;try{await c.toggleEndpointMonitor(d.value.filter(n=>C.value==="unmute"&&!n.monitor_heartbeat||C.value==="mute"&&n.monitor_heartbeat)),b(f.SUCCESS,`All endpoint instances ${C.value}`,"",!1,{timeout:1e3})}catch{b(f.ERROR,"Save failed","",!1,{timeout:3e3})}}async function Q(n){try{await c.deleteEndpointInstance(n),b(f.SUCCESS,"Endpoint instance deleted","",!1,{timeout:1e3})}catch{b(f.ERROR,"Delete failed","",!1,{timeout:3e3})}}async function X(){try{await Promise.all(A.value.filter(n=>n.name===y).map(n=>c.deleteEndpointInstance(n))),b(f.SUCCESS,"Endpoint deleted","",!1,{timeout:1e3}),await _.replace(i.value)}catch{b(f.ERROR,"Delete failed","",!1,{timeout:3e3})}}async function Z(n){try{await c.toggleEndpointMonitor([n]),b(f.SUCCESS,`Endpoint instance ${n.monitor_heartbeat?"unmuted":"muted"}`,"",!1,{timeout:1e3})}catch{b(f.ERROR,"Save failed","",!1,{timeout:3e3})}}return(n,e)=>{const O=pe("RouterLink");return u(),T(z,null,[(u(),I(fe,{to:"#modalDisplay"},[V.value?(u(),I(be,{key:0,heading:"Proceed with bulk operation",body:`Are you sure you want to ${C.value} ${d.value.length} endpoint instance(s)?`,onCancel:J,onConfirm:K},null,8,["body"])):M("",!0)])),t("div",Ve,[t("div",Te,[t("div",xe,[s(O,{to:i.value},{default:E(()=>[s(p,{icon:a(ve),size:"sm"},null,8,["icon"]),e[6]||(e[6]=g(" Back",-1))]),_:1},8,["to"]),t("h1",$e,W(a(y))+" Instances",1)]),t("div",He,[t("div",Me,[s(ge,{modelValue:a(S),"onUpdate:modelValue":e[0]||(e[0]=l=>B(S)?S.value=l:null)},null,8,["modelValue"])])])]),t("div",Be,[t("div",Le,[t("span",Ne,[t("button",{type:"button",class:"btn btn-warning btn-sm",disabled:d.value.length===0,onClick:e[1]||(e[1]=l=>N("mute"))},[s(p,{icon:a(_e),class:P(["icon",{"text-black":d.value.length>0}])},null,8,["icon","class"]),e[7]||(e[7]=g(" Mute Alerts on All ",-1))],8,Oe),t("button",{type:"button",class:"btn btn-default btn-sm",disabled:d.value.length===0,onClick:e[2]||(e[2]=l=>N("unmute"))},[s(p,{icon:a(he),class:P(["icon",{"text-black":d.value.length>0}])},null,8,["icon","class"]),e[8]||(e[8]=g(" Unmute Alerts on All ",-1))],8,Fe)])])]),t("div",Ue,[s(ye,{displayed:d.value.length,total:G.value.length},null,8,["displayed","total"])]),t("section",We,[t("div",Pe,[s(x,{name:a($).InstanceName,label:"Host Name",class:"col-6",modelValue:a(m),"onUpdate:modelValue":e[3]||(e[3]=l=>B(m)?m.value=l:null),sortable:"","default-ascending":""},null,8,["name","modelValue"]),s(x,{name:a($).LastHeartbeat,label:"Last Heartbeat",class:"col-2",modelValue:a(m),"onUpdate:modelValue":e[4]||(e[4]=l=>B(m)?m.value=l:null),sortable:""},null,8,["name","modelValue"]),s(x,{name:a($).MuteToggle,label:"Mute Alerts",class:"col-2 centre"},{help:E(()=>[...e[9]||(e[9]=[g("Mute an instance when you are planning to take the instance offline to do maintenance or some other reason. This will prevent alerts on the dashboard.",-1)])]),_:1},8,["name"]),s(x,{name:"actions",label:"Actions",class:"col-1"},{help:E(()=>[t("div",ze,[t("button",qe,[s(p,{icon:a(L),class:"icon text-white"},null,8,["icon"]),e[10]||(e[10]=g(" Delete",-1))]),e[11]||(e[11]=t("span",null,"Delete an instance when that instance has been decommissioned.",-1))])]),_:1})]),d.value.length===0?(u(),I(Se,{key:0,message:"No endpoint instances found. For untracked endpoints, disconnected instances are automatically pruned."},{default:E(()=>[t("div",Ye,[e[13]||(e[13]=t("span",null,"You may",-1)),t("button",{type:"button",onClick:e[5]||(e[5]=l=>X()),class:"btn btn-danger btn-sm"},[s(p,{icon:a(L),class:"icon text-white"},null,8,["icon"]),e[12]||(e[12]=g(" Delete",-1))]),e[14]||(e[14]=t("span",null,"this endpoint",-1))])]),_:1})):M("",!0),s(Ie,{data:d.value,"show-items-per-page":!0,"items-per-page":20},{data:E(({pageData:l})=>[t("div",je,[(u(!0),T(z,null,we(l,r=>(u(),T("div",{role:"row","aria-label":r.name,class:"row grid-row",key:r.id},[t("div",Je,[t("span",Ke,[r.heartbeat_information?.reported_status!==a(q).Alive?(u(),I(p,{key:0,"aria-label":"instance dead",icon:a(Y),class:"text-danger"},null,8,["icon"])):(u(),I(p,{key:1,"aria-label":"instance alive",icon:a(Y),class:"text-success"},null,8,["icon"]))]),t("span",Qe,W(r.host_display_name),1)]),t("div",Xe,[s(Ce,{date:r.heartbeat_information?.last_report_at,"tooltip-target":"instance"},null,8,["date"])]),t("div",Ze,[t("div",et,[s(Ee,{id:r.host_display_name,onToggle:ee=>Z(r),value:!r.monitor_heartbeat},null,8,["id","onToggle","value"])])]),t("div",tt,[r.heartbeat_information?.reported_status!==a(q).Alive?(u(),T("button",{key:0,type:"button",onClick:ee=>Q(r),class:"btn btn-danger btn-sm"},[s(p,{icon:a(L),class:"icon text-white"},null,8,["icon"]),e[15]||(e[15]=g(" Delete",-1))],8,nt)):M("",!0)])],8,Ge))),128))])]),_:1},8,["data"])])])],64)}}}),it=ke(at,[["__scopeId","data-v-fcde6857"]]);export{it as default}; +//# sourceMappingURL=EndpointInstances-CHxxJzJ9.js.map diff --git a/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js.map b/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js.map new file mode 100644 index 0000000000..ec7400cd78 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointInstances-CHxxJzJ9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointInstances-CHxxJzJ9.js","sources":["../../../../frontend/src/stores/HeartbeatInstancesStore.ts","../../../../frontend/src/composables/useHeartbeatInstancesStoreAutoRefresh.ts","../../../../frontend/src/components/heartbeats/EndpointInstances.vue"],"sourcesContent":["import { acceptHMRUpdate, defineStore, storeToRefs } from \"pinia\";\nimport { computed, ref, watch } from \"vue\";\nimport moment from \"moment\";\nimport type { SortInfo } from \"@/components/SortInfo\";\nimport { type GroupPropertyType, SortDirection } from \"@/resources/SortOptions\";\nimport getSortFunction from \"@/components/getSortFunction\";\nimport { useHeartbeatsStore } from \"@/stores/HeartbeatsStore\";\nimport { EndpointsView } from \"@/resources/EndpointView\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\n\nexport enum ColumnNames {\n InstanceName = \"name\",\n LastHeartbeat = \"latestHeartbeat\",\n MuteToggle = \"toggleMuteAlerts\",\n}\n\nconst columnSortings = new Map GroupPropertyType>([\n [ColumnNames.InstanceName, (endpoint) => endpoint.host_display_name],\n [ColumnNames.LastHeartbeat, (endpoint) => moment.utc(endpoint.heartbeat_information?.last_report_at ?? \"1975-01-01T00:00:00\")],\n [ColumnNames.MuteToggle, (endpoint) => !endpoint.monitor_heartbeat],\n]);\n\nexport const useHeartbeatInstancesStore = defineStore(\"HeartbeatInstancesStore\", () => {\n const serviceControlStore = useServiceControlStore();\n\n const instanceFilterString = ref(\"\");\n const store = useHeartbeatsStore();\n const { endpointInstances } = storeToRefs(store);\n const sortByInstances = ref({\n property: ColumnNames.InstanceName,\n isAscending: true,\n });\n\n const sortedInstances = computed(() => endpointInstances.value.sort(getSortFunction(columnSortings.get(sortByInstances.value.property), sortByInstances.value.isAscending ? SortDirection.Ascending : SortDirection.Descending)));\n const filteredInstances = computed(() => sortedInstances.value.filter((instance) => !instanceFilterString.value || instance.host_display_name.toLowerCase().includes(instanceFilterString.value.toLowerCase())));\n\n const refresh = () => store.refresh();\n\n watch(instanceFilterString, (newValue) => {\n setInstanceFilterString(newValue);\n });\n\n function setInstanceFilterString(filter: string) {\n instanceFilterString.value = filter;\n }\n\n async function deleteEndpointInstance(endpoint: EndpointsView) {\n await serviceControlStore.deleteFromServiceControl(`endpoints/${endpoint.id}`);\n await store.refresh();\n }\n\n async function toggleEndpointMonitor(endpoints: EndpointsView[]) {\n await Promise.all(endpoints.map((endpoint) => serviceControlStore.patchToServiceControl(`endpoints/${endpoint.id}`, { monitor_heartbeat: !endpoint.monitor_heartbeat })));\n await store.refresh();\n }\n\n return {\n refresh,\n sortedInstances,\n filteredInstances,\n instanceFilterString,\n deleteEndpointInstance,\n toggleEndpointMonitor,\n sortByInstances,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useHeartbeatInstancesStore, import.meta.hot));\n}\n\nexport type HeartbeatInstancesStore = ReturnType;\n","import { useHeartbeatInstancesStore } from \"@/stores/HeartbeatInstancesStore\";\nimport { useStoreAutoRefresh } from \"./useAutoRefresh\";\n\nexport default useStoreAutoRefresh(\"heartbeatInstances\", useHeartbeatInstancesStore, 5000);\n","\n\n\n\n\n"],"names":["ColumnNames","columnSortings","endpoint","moment","useHeartbeatInstancesStore","defineStore","serviceControlStore","useServiceControlStore","instanceFilterString","ref","store","useHeartbeatsStore","endpointInstances","storeToRefs","sortByInstances","sortedInstances","computed","getSortFunction","SortDirection","filteredInstances","instance","refresh","watch","newValue","setInstanceFilterString","filter","deleteEndpointInstance","toggleEndpointMonitor","endpoints","useHeartbeatInstancesStoreAutoRefresh","useStoreAutoRefresh","route","useRoute","router","useRouter","endpointName","endpointSettingsStore","useEndpointSettingsStore","endpointSettings","backLink","routeLinks","filterToValidInstances","data","value","filteredValidInstances","totalValidInstances","showBulkWarningDialog","dialogWarningOperation","onMounted","back","showBulkOperationWarningDialog","operation","cancelWarningDialog","proceedWarningDialog","useShowToast","TYPE","deleteInstance","deleteAllInstances","toggleAlerts","_createBlock","_Teleport","ConfirmDialog","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_createVNode","_component_RouterLink","FAIcon","_unref","faChevronLeft","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","FilterInput","$event","_hoisted_7","_hoisted_8","_hoisted_9","_cache","faBellSlash","_normalizeClass","faBell","_hoisted_12","ResultsCount","_hoisted_13","_hoisted_14","ColumnHeader","_hoisted_15","_hoisted_16","faTrash","NoData","_hoisted_17","DataView","_withCtx","pageData","_hoisted_18","_createElementBlock","_Fragment","_renderList","_hoisted_20","_hoisted_21","EndpointStatus","faHeartbeat","_hoisted_22","_hoisted_23","LastHeartbeat","_hoisted_24","_hoisted_25","OnOffSwitch","_hoisted_26"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/EndpointInstances-DsDaoxL9.css b/src/ServiceControl/wwwroot/assets/EndpointInstances-DsDaoxL9.css new file mode 100644 index 0000000000..f179bb51bd --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointInstances-DsDaoxL9.css @@ -0,0 +1 @@ +.lead[data-v-fcde6857],.box p .lead[data-v-fcde6857]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-fcde6857]{cursor:pointer}.lead.endpoint-details-link.righ-side-ellipsis a[data-v-fcde6857]{color:#00729c;margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;border-bottom:1px dotted lightgrey}.lead.endpoint-details-link.righ-side-ellipsis a[data-v-fcde6857]:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.righ-side-ellipsis[data-v-fcde6857]{direction:rtl;text-align:left}.box-header[data-v-fcde6857]{display:flex;gap:.5em;max-width:100%}.endpoint-name>div>div>a[data-v-fcde6857]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name[data-v-fcde6857],.endpoint-name>div[data-v-fcde6857]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-fcde6857]{gap:.25em}.endpoint-name .box-header[data-v-fcde6857]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header[data-v-fcde6857]>*:not(:first-child){margin-left:.25em}.endpoint-count[data-v-fcde6857]{font-weight:700}p[data-v-fcde6857]:not(.lead){margin:0 0 5px}div[role=columnheader][data-v-fcde6857]{display:flex}div[role=cell][data-v-fcde6857]{padding:10px;align-items:center;display:flex;gap:.25em}div[role=cell].centre[data-v-fcde6857],div[role=columnheader].centre[data-v-fcde6857]{justify-content:center}.grid-row[data-v-fcde6857]{display:flex;position:relative;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.searchContainer[data-v-fcde6857]{display:flex;justify-content:flex-end}.instances-heading h1[data-v-fcde6857]{margin-bottom:10px}.status-icon[data-v-fcde6857]{width:16px;margin-right:4px}.actions[data-v-fcde6857]{display:flex}.filters[data-v-fcde6857]{margin-top:.25em;margin-bottom:.25em}.buttonsContainer[data-v-fcde6857]{background-color:#f3f3f3;display:flex;gap:.5em;border:#8c8c8c 1px solid;border-radius:3px;padding:.4em}.delete-all[data-v-fcde6857]{display:flex;align-items:center;gap:.4em}.icon[data-v-fcde6857]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js b/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js new file mode 100644 index 0000000000..d2d10480ec --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js @@ -0,0 +1,2 @@ +import{U as l,m as r,n as o,y as s,q as e,e as w,bS as N,s as L,r as $,l as _,a7 as x,v as c,x as m,z as i,k as p,ai as T,B as h,a8 as P,K as C,L as V,p as D,b9 as R,t as I,E as v,bT as k}from"./index-tFZp7u44.js";import{U as d,u as O}from"./userIndicatorMapper-CH8_AcCf.js";const U={};function q(a,t){return o(),r("span",null,[...t[0]||(t[0]=[s(" Known NServiceBus ",-1),e("a",{href:"https://particular.net/endpoints",target:"_blank"},"Endpoint",-1)])])}const M=l(U,[["render",q]]),z={};function A(a,t){return o(),r("span",null,"NServiceBus Endpoint that is no longer in use, usually this would have zero throughput")}const G=l(z,[["render",A]]),Q={};function H(a,t){return o(),r("span",null,[...t[0]||(t[0]=[s(" An ",-1),e("a",{href:"https://particular.net/transactional-session-design",target:"_blank"},"endpoint that is only processing transactional session control messages",-1)])])}const K=l(Q,[["render",H]]),F={};function j(a,t){return o(),r("span",null,[...t[0]||(t[0]=[s("An endpoint that ",-1),e("a",{href:"https://particular.net/send-only-hosting",target:"_blank"},"only sends",-1),s(" messages and does not process any messages",-1)])])}const J=l(F,[["render",j]]),W={};function X(a,t){return o(),r("span",null,"If the endpoint is planned to no longer be used in the next 30 days")}const Y=l(W,[["render",X]]),Z={};function nn(a,t){return o(),r("span",null,"Not an NServiceBus Endpoint")}const en=l(Z,[["render",nn]]),tn={};function sn(a,t){return o(),r("span",null,[...t[0]||(t[0]=[s(" This is either part of the ",-1),e("a",{href:"https://docs.particular.net/nservicebus/gateway",target:"_blank"},"Gateway",-1),s(" infrastructure or part of the ",-1),e("a",{href:"https://docs.particular.net/nservicebus/bridge",target:"_blank"},"Messaging Bridge",-1),s(" infrastructure. ",-1)])])}const on=l(tn,[["render",sn]]),rn={};function an(a,t){return o(),r("span",null,"This is an infrastructure endpoint used by the Particular Platform")}const dn=l(rn,[["render",an]]),ln={class:"box"},un={class:"row"},pn=["aria-label"],cn={class:"alert alert-info"},fn={class:"row"},gn={class:"col-sm-12"},mn={class:"nav tabs"},_n={class:"intro"},En=w({__name:"EndpointsView",setup(a){const{store:t}=N(),{isBrokerTransport:E}=L(t),u=$(!1),b=new Map([[d.NServiceBusEndpoint,M],[d.NServiceBusEndpointNoLongerInUse,G],[d.TransactionalSessionProcessorEndpoint,K],[d.SendOnlyEndpoint,J],[d.PlannedToDecommission,Y],[d.NotNServiceBusEndpoint,en],[d.GatewayOrBridgingEndpoint,on],[d.ParticularPlatformEndpoint,dn]]);function y(){u.value=!u.value}return(hn,n)=>{const f=_("RouterLink"),S=_("RouterView");return o(),r("div",ln,[e("div",un,[e("p",null,[n[2]||(n[2]=s(" Set an Endpoint Type for all detected endpoints and broker queues with the most appropriate option.",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=s(" Use the filters to bulk set the Endpoint Types on similar named endpoints/queues.",-1)),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=s(" If the names of the endpoints/queues contain confidential or proprietary information, make sure you set up ",-1)),c(f,{to:i(p).throughput.setup.mask.link},{default:m(()=>[...n[1]||(n[1]=[s("masking in Configuration",-1)])]),_:1},8,["to"]),n[7]||(n[7]=s(".",-1)),n[8]||(n[8]=e("br",null,null,-1)),e("a",{href:"#","aria-label":`${u.value?"Hide":"Show"} Endpoint Types meaning`,onClick:n[0]||(n[0]=T(g=>y(),["prevent"]))},h(u.value?"Hide":"Show")+" Endpoint Types meaning.",9,pn)]),x(e("div",cn,[(o(!0),r(C,null,V(i(b),([g,B])=>(o(),r("div",{key:g},[e("strong",null,h(i(O).get(g)),1),n[9]||(n[9]=s(" - ",-1)),(o(),D(R(B))),n[10]||(n[10]=s(". ",-1))]))),128)),n[11]||(n[11]=e("p",{class:"mt-2"},[e("small",null,[e("a",{href:"https://particular.net/usage-user-indicators",target:"_blank"},"See documentation for more details about endpoint type indicators"),s(".")])],-1))],512),[[P,u.value]])]),e("div",fn,[e("div",gn,[e("div",mn,[e("h5",{class:v(["nav-item",{active:i(k)(i(p).throughput.endpoints.detectedEndpoints.link)}])},[c(f,{to:i(p).throughput.endpoints.detectedEndpoints.link},{default:m(()=>[...n[12]||(n[12]=[s("Detected Endpoints",-1)])]),_:1},8,["to"])],2),i(E)?(o(),r("h5",{key:0,class:v(["nav-item",{active:i(k)(i(p).throughput.endpoints.detectedBrokerQueues.link)}]),role:"tab"},[c(f,{to:i(p).throughput.endpoints.detectedBrokerQueues.link},{default:m(()=>[...n[13]||(n[13]=[s("Detected Broker Queues",-1)])]),_:1},8,["to"])],2)):I("",!0)])])]),e("div",_n,[c(S)])])}}});export{En as default}; +//# sourceMappingURL=EndpointsView-FDgb5e07.js.map diff --git a/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js.map b/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js.map new file mode 100644 index 0000000000..addc942a1d --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/EndpointsView-FDgb5e07.js.map @@ -0,0 +1 @@ +{"version":3,"file":"EndpointsView-FDgb5e07.js","sources":["../../../../frontend/src/views/throughputreport/LegendNServiceBusEndpoint.vue","../../../../frontend/src/views/throughputreport/LegendNServiceBusEndpointNoLongerInUse.vue","../../../../frontend/src/views/throughputreport/LegendTransactionalSessionProcessorEndpoint.vue","../../../../frontend/src/views/throughputreport/LegendSendOnlyEndpoint.vue","../../../../frontend/src/views/throughputreport/LegendPlannedToDecommission.vue","../../../../frontend/src/views/throughputreport/LegendNotNServiceBusEndpoint.vue","../../../../frontend/src/views/throughputreport/LegendGatewayOrBridgeEndpoint.vue","../../../../frontend/src/views/throughputreport/LegendParticularPlatformEndpoint.vue","../../../../frontend/src/views/throughputreport/EndpointsView.vue"],"sourcesContent":["\n","\n","\n","\n","\n","\n","\n","\n","\n\n\n\n\n"],"names":["_createElementBlock","_cache","_createElementVNode","_openBlock","store","useThroughputStoreAutoRefresh","isBrokerTransport","storeToRefs","showLegend","ref","legendOptions","UserIndicator","LegendNServiceBusEndpoint","LegendNServiceBusEndpointNoLongerInUse","LegendTransactionalSessionProcessorEndpoint","LegendSendOnlyEndpoint","LegendPlannedToDecommission","LegendNotNServiceBusEndpoint","LegendGatewayOrBridgeEndpoint","LegendParticularPlatformEndpoint","toggleOptionsLegendVisible","_hoisted_1","_hoisted_2","_createVNode","_component_RouterLink","_unref","_toDisplayString","_hoisted_3","_withDirectives","_hoisted_4","_Fragment","_renderList","key","LegendComponent","userIndicatorMapper","_createBlock","_resolveDynamicComponent","_hoisted_5","_hoisted_6","_hoisted_7","_normalizeClass","isRouteSelected","routeLinks","_hoisted_8","_component_RouterView"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js new file mode 100644 index 0000000000..a1bf0293f7 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js @@ -0,0 +1,2 @@ +import{e as J,r as y,u as he,o as se,m as i,n as a,q as t,a7 as L,a8 as U,v as r,z as d,a9 as Le,_ as f,aa as Te,p as u,t as n,N as be,K as te,L as me,B as k,y as c,ab as j,ac as T,a6 as O,U as K,ad as $e,ae as ze,E as V,af as Be,a3 as Pe,Z as Ue,i as Ve,ag as ye,ah as Y,ai as I,x as G,J as We,aj as He,ak as Ze,al as Qe,am as X,an as re,ao as Ye,T as ke,C as de,P as M,Q as R,k as je,ap as Je,aq as Ke,ar as Xe,as as et,at as tt,au as st,av as ce,aw as ue,ax as ot,g as at,S as nt,ay as ge}from"./index-tFZp7u44.js";import{c as it}from"./messageGroupClient-MAkYdcH-.js";import{O as lt}from"./OrderBy-Bnnuz_3H.js";const rt={class:"lasttenoperations"},dt={class:"row"},ct={class:"col-sm-12 list-section"},ut={class:"no-link-underline","aria-hidden":"true"},mt={class:"fake-link","aria-hidden":"true"},vt={class:"row"},ft={class:"col-sm-12 no-mobile-side-padding"},_t={class:"col-sm-12 no-mobile-side-padding"},pt={class:"row"},wt={class:"col-sm-12 no-side-padding"},yt={class:"row box-header"},kt={class:"col-sm-12 no-side-padding"},gt={class:"lead break"},ht={class:"row"},bt={class:"col-sm-12 no-side-padding"},$t={class:"metadata"},Ct={class:"metadata"},Nt={class:"metadata"},xt={class:"metadata"},Gt=J({__name:"LastTenOperations",setup(E){const _=y([]),p=y(!1),g=he();async function v(){const[,h]=await g.fetchTypedFromServiceControl("recoverability/history");_.value=h.historic_operations}return se(()=>{v()}),(h,$)=>(a(),i("div",rt,[t("div",dt,[t("div",ct,[t("h6",null,[L(t("span",ut,[r(f,{icon:d(Le),size:"xs",class:"icon"},null,8,["icon"])],512),[[U,p.value]]),L(t("span",mt,[r(f,{icon:d(Te),size:"xs",class:"icon"},null,8,["icon"])],512),[[U,!p.value]]),t("a",{class:"lastTenHeading",onClick:$[0]||($[0]=N=>p.value=!p.value)}," Last 10 completed retry requests")])])]),t("div",vt,[L(t("div",ft,[_.value.length===0?(a(),u(be,{key:0,title:"message group retries",message:"No group retry requests have ever been completed"})):n("",!0),(a(!0),i(te,null,me(_.value,(N,b)=>L((a(),i("div",{class:"row box extra-box-padding repeat-modify",key:b},[t("div",_t,[t("div",pt,[t("div",wt,[t("div",yt,[t("div",kt,[t("p",gt,k(N.originator||"Selection of individual message(s)"),1)])]),t("div",ht,[t("div",bt,[t("p",$t,[t("span",Ct,[r(f,{icon:d(j),class:"icon"},null,8,["icon"]),c(" Messages sent: "+k(N.number_of_messages_processed),1)]),t("span",Nt,[r(f,{icon:d(T),class:"icon"},null,8,["icon"]),$[1]||($[1]=c(" Retry request started: ",-1)),r(O,{"date-utc":N.start_time},null,8,["date-utc"])]),t("span",xt,[r(f,{icon:d(T),class:"icon"},null,8,["icon"]),$[2]||($[2]=c(" Retry request completed: ",-1)),r(O,{"date-utc":N.completion_time},null,8,["date-utc"])])])])])])])])])),[[U,_.value.length]])),128)),L(t("span",{class:"short-group-history"},"There is only "+k(_.value.length)+" completed group retry",513),[[U,_.value.length===1]]),L(t("span",{class:"short-group-history"},"There are only "+k(_.value.length)+" completed group retries",513),[[U,_.value.length<10&&_.value.length>1]])],512),[[U,p.value]])])]))}}),Mt=K(Gt,[["__scopeId","data-v-1a921240"]]),Rt={class:"modal-mask"},Et={class:"modal-wrapper"},Ft={class:"modal-container"},Dt={class:"modal-header"},At={key:0,class:"modal-title"},St={key:1,class:"modal-title"},It={name:"commentNoteForm",novalidate:""},Ot={class:"modal-body"},qt={class:"row"},Lt={class:"form-group"},Tt={class:"modal-footer"},zt=["disabled"],Bt=["disabled"],Pt=J({__name:"FailedMessageGroupNoteEdit",props:{groupid:{},comment:{}},emits:["createNoteConfirmed","editNoteConfirmed","cancelEditNote"],setup(E,{emit:_}){const p=_,g=E,v=y(g.comment);function h(){const b={groupid:g.groupid,comment:v.value};p("createNoteConfirmed",b)}function $(){const b={groupid:g.groupid,comment:v.value};p("editNoteConfirmed",b)}function N(){p("cancelEditNote")}return $e(()=>{document.getElementsByTagName("body")[0].className=""}),se(()=>{document.getElementsByTagName("body")[0].className="modal-open"}),(b,F)=>(a(),i("div",Rt,[t("div",Et,[t("div",Ft,[t("div",Dt,[g.comment?(a(),i("h3",At,"Modify Note")):n("",!0),g.comment?n("",!0):(a(),i("h3",St,"Create Note"))]),t("form",It,[t("div",Ot,[t("div",qt,[t("div",Lt,[F[1]||(F[1]=t("label",{for:"comment"},"Note",-1)),L(t("textarea",{type:"text",id:"txtcomment",name:"txtcomment","onUpdate:modelValue":F[0]||(F[0]=w=>v.value=w),placeholder:"Comment",minInputLength:1,class:"form-control",required:""},null,512),[[ze,v.value,void 0,{trim:!0}]])])])]),t("div",Tt,[g.comment?(a(),i("button",{key:0,disabled:!v.value,class:"btn btn-primary",onClick:$},"Modify",8,zt)):n("",!0),g.comment?n("",!0):(a(),i("button",{key:1,disabled:!v.value,class:"btn btn-primary",onClick:h},"Create",8,Bt)),t("button",{class:"btn btn-default",onClick:N},"Cancel")])])])])]))}}),Ut=K(Pt,[["__scopeId","data-v-7bcf9b0c"]]),Vt={class:"slot"},Wt=J({__name:"ProgressMessage",props:{"left-to-do":{type:Boolean},active:{type:Boolean},completed:{type:Boolean}},setup(E){const _=E;return(p,g)=>(a(),i("li",{class:V(["progress-status",_])},[E.active?(a(),u(f,{key:0,icon:d(Be),class:"icon"},null,8,["icon"])):n("",!0),E.completed?(a(),u(f,{key:1,icon:d(Pe),class:"icon"},null,8,["icon"])):n("",!0),t("div",Vt,[Ue(p.$slots,"default",{},void 0,!0)])],2))}}),ee=K(Wt,[["__scopeId","data-v-e98dcd30"]]),Ht={class:"messagegrouplist"},Zt={class:"row"},Qt={class:"col-sm-12"},Yt={class:"row"},jt={class:"col-sm-12 no-mobile-side-padding"},Jt={key:0},Kt=["disabled","onMouseenter","onMouseleave","onClick"],Xt={class:"col-sm-12 no-mobile-side-padding"},es={class:"row"},ts={class:"col-sm-12 no-side-padding"},ss={class:"row box-header"},os={class:"col-sm-12 no-side-padding"},as={key:0,class:"metadata"},ns={class:"metadata"},is={key:0},ls={key:1},rs={class:"metadata"},ds={class:"metadata"},cs={class:"metadata"},us={key:0,class:"row"},ms={class:"col-sm-12 no-side-padding"},vs={key:0,class:"note"},fs={key:1,class:"row"},_s={class:"col-sm-12 no-side-padding"},ps={key:2,class:"row"},ws={class:"col-sm-12 no-side-padding"},ys={class:"panel panel-default panel-retry"},ks={class:"panel-body"},gs={class:"retry-request-progress"},hs={class:"row"},bs={class:"col-xs-12 col-sm-6"},$s={key:0,class:"progress bulk-retry-progress"},Cs={class:"row"},Ns={key:0,class:"col-xs-3 col-sm-3 retry-op-queued"},xs={class:"col-xs-12 col-sm-6"},Gs={key:0,class:"progress bulk-retry-progress"},Ms=["onClick"],Rs={key:1,class:"danger sc-restart-warning"},Es={class:"op-metadata"},Fs={class:"metadata"},Ds={class:"metadata"},As={key:0,class:"metadata"},Ss={key:3,class:"row"},Is={class:"col-sm-12 no-side-padding"},Os={class:"panel panel-default panel-retry"},qs={class:"panel-body"},Ls={class:"retry-request-progress"},Ts={class:"row"},zs={class:"col-xs-12 col-sm-6"},Bs={key:0,class:"progress bulk-retry-progress"},Ps={key:3},Us=["onClick"],Vs={class:"op-metadata"},Ws={class:"metadata"},Hs={class:"metadata"},Zs={class:"metadata"},Qs=J({__name:"MessageGroupList",props:{sortFunction:{type:Function}},emits:["InitialLoadComplete","ExceptionGroupCountUpdated"],setup(E,{expose:_,emit:p}){const g=p;let v=!1,h;const $=E,N=Ve();let b=[],F;const w=y(),D=y([]),l=y(!0),C=y(!1),S=y(!1),z=y(!1),B=y(!1),W=y(!1),q=y(null),oe=y(null),ae=y(null),x=it();async function Ce(o){const s=await x.getExceptionGroups(o);$.sortFunction&&s.sort($.sortFunction),b.forEach(e=>{const A=s.find(m=>m.id===e.groupId);A&&!A.comment?A.comment=e.comment:e.alreadySaved=!0}),D.value=s.map(Ne),b=b.filter(e=>!e.alreadySaved)}function Ne(o,s){let e=(o.operation_status?o.operation_status.toLowerCase():null)||"none";return e==="preparing"&&o.operation_progress===1&&(e="queued"),{...o,workflow_state:De(e,o.operation_progress,o.operation_failed),index:s}}async function H(o){l.value=!0,o&&(F=o),await Ce(F),l.value=!1,C.value=!0,g("InitialLoadComplete")}function xe(o){q.value=null,w.value=o,S.value=!0}async function ne(o,s){if(S.value=!1,o){const e=await x.deleteNote(o.id);x.isError(e)?(q.value=!1,s||M(R.ERROR,"Error",`Failed to delete a Note: ${e.message}`)):(q.value=!0,s||M(R.INFO,"Info","Note deleted successfully"),H())}}async function ve(o,s){q.value=null,z.value=!1,b.push({groupId:o.id,comment:s});const e=await x.editOrCreateNote(o.id,s);x.isError(e)?(q.value=!1,M(R.ERROR,"Error",`Failed to update Note: ${e.message}`)):(q.value=!0,M(R.INFO,"Info","Note updated successfully"),H())}function Ge(o,s){ve(o,s)}function Me(o,s){ve(o,s)}function fe(o){q.value=null,w.value=o,z.value=!0}const Re=["archivestarted","archiveprogressing","archivefinalizing","archivecompleted"];function Ee(o){oe.value=null,w.value=o,B.value=!0}async function Fe(o){if(B.value=!1,o){o.workflow_state={status:"archivestarted",message:"Delete request initiated..."},Q(1e3),ne(o,!0);const s=await x.archiveExceptionGroup(o.id);x.isError(s)?(oe.value=!1,M(R.ERROR,"Error",`Failed to delete the group: ${s.message}`)):(oe.value=!0,M(R.INFO,"info","Group delete started..."))}}function De(o,s,e){return s&&s<=1&&(s=s*100),{status:o||"working",total:Math.round(s||0),failed:e||!1}}const _e=function(o,s,e){const A=e.indexOf(o),m=e.indexOf(s);return{"left-to-do":A>m,active:A===m,completed:Ao.operation_status!=="None"&&o.operation_status!=="ArchiveCompleted"&&o.operation_status!=="Completed")}function Q(o){h&&clearInterval(h),h=window.setInterval(()=>{!v&&we()?(Q(1e3),v=!0):v&&!we()&&(Q(5e3),v=!1),H()},o)}return $e(()=>{h&&clearInterval(h)}),se(()=>{Q(5e3)}),_({loadFailedMessageGroups:H,clearInMemoryData:Oe}),(o,s)=>(a(),i(te,null,[t("div",Ht,[t("div",Zt,[t("div",Qt,[D.value.length===0&&!l.value?(a(),u(be,{key:0,title:"message groups",message:"There are currently no grouped message failures"})):n("",!0)])]),t("div",Yt,[t("div",jt,[D.value.length>0?(a(),i("div",Jt,[(a(!0),i(te,null,me(D.value,(e,A)=>(a(),i("div",{class:V(`row box box-group wf-${e.workflow_state.status} failed-message-group repeat-modify`),key:A,disabled:e.count==0,onMouseenter:m=>e.hover2=!0,onMouseleave:m=>e.hover2=!1,onClick:m=>qe(e.id)},[t("div",Xt,[t("div",es,[t("div",ts,[t("div",ss,[t("div",os,[t("p",{class:V(["lead break",{"msg-type-hover":e.hover2,"msg-type-hover-off":e.hover3}])},k(e.title),3),!P(e)&&!Z(e.workflow_state.status)?(a(),i("p",as,[t("span",ns,[r(f,{class:"icon",icon:d(j)},null,8,["icon"]),c(" "+k(e.count)+" message",1),e.count>1?(a(),i("span",is,"s")):n("",!0),e.operation_remaining_count?(a(),i("span",ls," (currently retrying "+k(e.operation_remaining_count),1)):n("",!0)]),t("span",rs,[r(f,{class:"icon",icon:d(T)},null,8,["icon"]),s[9]||(s[9]=c(" First failed: ",-1)),r(O,{"date-utc":e.first},null,8,["date-utc"])]),t("span",ds,[r(f,{class:"icon",icon:d(T)},null,8,["icon"]),s[10]||(s[10]=c(" Last failed: ",-1)),r(O,{"date-utc":e.last},null,8,["date-utc"])]),t("span",cs,[r(f,{class:"icon",icon:d(ye)},null,8,["icon"]),s[11]||(s[11]=c(" Last retried: ",-1)),r(O,{"date-utc":e.operation_completion_time},null,8,["date-utc"])])])):n("",!0)])]),!P(e)&&!Z(e.workflow_state.status)?(a(),i("div",us,[t("div",ms,[e.comment?(a(),i("div",vs,[t("span",null,[s[12]||(s[12]=t("strong",null,"NOTE:",-1)),c(" "+k(e.comment),1)])])):n("",!0)])])):n("",!0),!P(e)&&!Z(e.workflow_state.status)?(a(),i("div",fs,[t("div",_s,[D.value.length>0?(a(),u(Y,{key:0,variant:"link",size:"sm",icon:d(ye),disabled:e.count==0||P(e),onMouseenter:m=>e.hover3=!0,onMouseleave:m=>e.hover3=!1,onClick:I(m=>Ae(e),["stop"])},{default:G(()=>[...s[13]||(s[13]=[t("span",null,"Request retry",-1)])]),_:1},8,["icon","disabled","onMouseenter","onMouseleave","onClick"])):n("",!0),D.value.length>0?(a(),u(Y,{key:1,variant:"link",size:"sm",icon:d(We),disabled:e.count==0||P(e),onMouseenter:m=>e.hover3=!0,onMouseleave:m=>e.hover3=!1,onClick:I(m=>Ee(e),["stop"])},{default:G(()=>[...s[14]||(s[14]=[t("span",null,"Delete group",-1)])]),_:1},8,["icon","disabled","onMouseenter","onMouseleave","onClick"])):n("",!0),e.comment?n("",!0):(a(),u(Y,{key:2,variant:"link",size:"sm",icon:d(He),onClick:I(m=>fe(e),["stop"])},{default:G(()=>[...s[15]||(s[15]=[c("Add note",-1)])]),_:1},8,["icon","onClick"])),e.comment?(a(),u(Y,{key:3,variant:"link",size:"sm",icon:d(Ze),onClick:I(m=>fe(e),["stop"])},{default:G(()=>[...s[16]||(s[16]=[c("Edit note",-1)])]),_:1},8,["icon","onClick"])):n("",!0),e.comment?(a(),u(Y,{key:4,variant:"link",size:"sm",icon:d(Qe),onClick:I(m=>xe(e),["stop"])},{default:G(()=>[...s[17]||(s[17]=[c("Remove note",-1)])]),_:1},8,["icon","onClick"])):n("",!0)])])):n("",!0),P(e)?(a(),i("div",ps,[t("div",ws,[t("div",ys,[t("div",ks,[t("ul",gs,[e.workflow_state.status!=="completed"?(a(),u(ee,X({key:0,ref_for:!0},le("waiting",e.workflow_state.status)),{default:G(()=>[...s[18]||(s[18]=[c("Initialize retry request...",-1)])]),_:1},16)):n("",!0),e.workflow_state.status!=="completed"?(a(),u(ee,X({key:1,ref_for:!0},le("preparing",e.workflow_state.status),{class:"inset"}),{default:G(()=>[t("div",hs,[s[19]||(s[19]=t("div",{class:"col-xs-12 col-sm-4 col-md-3 no-side-padding"},[t("span",{class:"bulk-retry-progress-status"},"Prepare messages...")],-1)),t("div",bs,[e.workflow_state.status==="preparing"?(a(),i("div",$s,[t("div",{class:"progress-bar progress-bar-striped active",role:"progressbar","aria-valuenow":"{{group.workflow_state.total}}","aria-valuemin":"0","aria-valuemax":"100",style:re({"min-width":"2em",width:e.workflow_state.total+"%"})},k(e.workflow_state.total)+"% ",5)])):n("",!0)])])]),_:2},1040)):n("",!0),e.workflow_state.status!=="completed"?(a(),u(ee,X({key:2,ref_for:!0},le("forwarding",e.workflow_state.status),{class:"inset"}),{default:G(()=>[t("div",Cs,[s[20]||(s[20]=t("div",{class:"col-xs-9 col-sm-4 col-md-3 no-side-padding"},[t("div",{class:"bulk-retry-progress-status"},"Send messages to retry...")],-1)),e.workflow_state.status==="queued"?(a(),i("div",Ns,"(Queued)")):n("",!0),t("div",xs,[e.workflow_state.status==="forwarding"?(a(),i("div",Gs,[t("div",{class:"progress-bar progress-bar-striped active",role:"progressbar","aria-valuenow":"{{group.workflow_state.total}}","aria-valuemin":"0","aria-valuemax":"100",style:re({"min-width":"2em",width:e.workflow_state.total+"%"})},k(e.workflow_state.total)+"% ",5)])):n("",!0)])])]),_:2},1040)):n("",!0),e.workflow_state.status==="completed"?(a(),u(ee,X({key:3,ref_for:!0},{"left-to-do":!1,active:!1,completed:!1}),{default:G(()=>[s[24]||(s[24]=t("div",{class:"retry-completed bulk-retry-progress-status"},"Retry request completed",-1)),e.need_user_acknowledgement==!0?(a(),i("button",{key:0,type:"button",class:"btn btn-default btn-primary btn-xs btn-retry-dismiss",onClick:I(m=>pe(e),["stop"])},"Dismiss",8,Ms)):n("",!0),e.workflow_state.failed?(a(),i("div",Rs,[r(f,{icon:d(Ye),class:"icon danger"},null,8,["icon"]),s[21]||(s[21]=c()),s[22]||(s[22]=t("strong",null,"WARNING: ",-1)),s[23]||(s[23]=c("Not all messages will be retried because ServiceControl had to restart. You need to request retrying the remaining messages. ",-1))])):n("",!0)]),_:2},1040)):n("",!0)]),t("div",Es,[t("span",Fs,[r(f,{icon:d(j),class:"icon"},null,8,["icon"]),c(" "+k(e.workflow_state.status==="completed"?"Messages sent:":"Messages to send:")+" "+k(e.operation_remaining_count||e.count),1)]),t("span",Ds,[r(f,{icon:d(T),class:"icon"},null,8,["icon"]),s[25]||(s[25]=c(" Retry request started: ",-1)),r(O,{"date-utc":e.operation_start_time},null,8,["date-utc"])]),e.workflow_state.status==="completed"?(a(),i("span",As,[r(f,{icon:d(T),class:"icon"},null,8,["icon"]),s[26]||(s[26]=c(" Retry request completed: ",-1)),r(O,{"date-utc":e.operation_completion_time},null,8,["date-utc"])])):n("",!0)])])])])])):n("",!0),Z(e.workflow_state.status)?(a(),i("div",Ss,[t("div",Is,[t("div",Os,[t("div",qs,[t("ul",Ls,[e.workflow_state.status!=="archivecompleted"?(a(),i("li",{key:0,class:V(ie("archivestarted",e.workflow_state.status))},[...s[27]||(s[27]=[t("div",{class:"bulk-retry-progress-status"},"Initialize delete request...",-1)])],2)):n("",!0),e.workflow_state.status!=="archivecompleted"?(a(),i("li",{key:1,class:V(ie("archiveprogressing",e.workflow_state.status))},[t("div",Ts,[s[28]||(s[28]=t("div",{class:"col-xs-12 col-sm-4 col-md-3 no-side-padding"},[t("div",{class:"bulk-retry-progress-status"},"Delete request in progress...")],-1)),t("div",zs,[e.workflow_state.status==="archiveprogressing"?(a(),i("div",Bs,[t("div",{class:"progress-bar progress-bar-striped active",role:"progressbar","aria-valuenow":"{{group.workflow_state.total}}","aria-valuemin":"0","aria-valuemax":"100",style:re({"min-width":"2em",width:e.workflow_state.total+"%"})},k(e.workflow_state.total)+" % ",5)])):n("",!0)])])],2)):n("",!0),e.workflow_state.status!=="archivecompleted"?(a(),i("li",{key:2,class:V(ie("archivefinalizing",e.workflow_state.status))},[...s[29]||(s[29]=[t("div",{class:"row"},[t("div",{class:"col-xs-12 col-sm-4 col-md-3 no-side-padding"},[t("div",{class:"bulk-retry-progress-status"},"Cleaning up...")])],-1)])],2)):n("",!0),e.workflow_state.status==="archivecompleted"?(a(),i("li",Ps,[s[30]||(s[30]=t("div",{class:"retry-completed bulk-retry-progress-status"},"Delete request completed",-1)),e.need_user_acknowledgement==!0?(a(),i("button",{key:0,type:"button",class:"btn btn-default btn-primary btn-xs btn-retry-dismiss",onClick:I(m=>pe(e),["stop"])},"Dismiss",8,Us)):n("",!0)])):n("",!0)]),t("div",Vs,[t("span",Ws,[r(f,{icon:d(T),class:"icon"},null,8,["icon"]),s[31]||(s[31]=c(" Delete request started: ",-1)),r(O,{"date-utc":e.operation_start_time},null,8,["date-utc"])]),t("span",Hs,[r(f,{icon:d(j),class:"icon"},null,8,["icon"]),c(" Messages left to delete: "+k(e.operation_remaining_count||0),1)]),t("span",Zs,[r(f,{icon:d(j),class:"icon"},null,8,["icon"]),c(" Messages deleted: "+k(e.operation_messages_completed_count||0),1)])])])])])])):n("",!0)])])])],42,Kt))),128))])):n("",!0)])])]),(a(),u(ke,{to:"#modalDisplay"},[z.value===!0&&w.value?(a(),u(Ut,{key:0,groupid:w.value.id,comment:w.value.comment,onCancelEditNote:s[0]||(s[0]=e=>z.value=!1),onCreateNoteConfirmed:s[1]||(s[1]=e=>Ge(w.value,e.comment)),onEditNoteConfirmed:s[2]||(s[2]=e=>Me(w.value,e.comment))},null,8,["groupid","comment"])):n("",!0)])),(a(),u(ke,{to:"#modalDisplay"},[B.value?(a(),u(de,{key:0,onCancel:s[3]||(s[3]=e=>B.value=!1),onConfirm:s[4]||(s[4]=e=>{B.value=!1,Fe(w.value)}),heading:"Are you sure you want to delete this group?",body:"Messages that are deleted will be cleaned up according to the ServiceControl retention policy, and aren't available for retrying unless they're restored."})):n("",!0),W.value?(a(),u(de,{key:1,onCancel:s[5]||(s[5]=e=>W.value=!1),onConfirm:s[6]||(s[6]=e=>{W.value=!1,Se(w.value)}),heading:"Are you sure you want to retry this group?",body:`Retrying a whole group can take some time and put extra load on your system. Are you sure you want to retry this group of ${w.value?.count??0} messages?`},null,8,["body"])):n("",!0),S.value?(a(),u(de,{key:2,onCancel:s[7]||(s[7]=e=>S.value=!1),onConfirm:s[8]||(s[8]=e=>{S.value=!1,ne(w.value)}),heading:"Are you sure you want to delete this note?",body:"Deleted note will not be available."})):n("",!0)]))],64))}}),Ys=K(Qs,[["__scopeId","data-v-c4db5aee"]]),js={name:"message_groups"},Js={class:"row"},Ks={class:"col-6 toolbar-menus no-side-padding"},Xs={class:"msg-group-menu dropdown"},eo={type:"button",class:"btn btn-default dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},to={class:"dropdown-menu"},so=["onClick"],oo={key:0,class:"box-container"},ao={class:"row"},no={class:"col-12"},io={class:"list-section"},lo={class:"col-12 form-group"},ro=J({__name:"FailedMessageGroups",setup(E){const _=he(),p=y(""),g=y([]),v=Je("messageGroupList"),h=y();function $(l){h.value=l.sort??at(l.selector,nt.Ascending),v.value?.loadFailedMessageGroups()}const N=[{description:"Name",selector:l=>l.title,iconAsc:et,iconDesc:Xe},{description:"Number of messages",selector:l=>l.count,iconAsc:st,iconDesc:tt},{description:"First Failed Time",selector:l=>l.first,iconAsc:ue,iconDesc:ce},{description:"Last Failed Time",selector:l=>l.last,iconAsc:ue,iconDesc:ce},{description:"Last Retried Time",selector:l=>l.last_operation_completion_time,iconAsc:ue,iconDesc:ce}];async function b(){const[,l]=await _.fetchTypedFromServiceControl("recoverability/classifiers");g.value=l}function F(l){ge().cookies.set("failed_groups_classification",l)}function w(l){p.value=l,F(l),v.value?.loadFailedMessageGroups(l)}function D(){const C=ge().cookies.get("failed_groups_classification");return C||null}return se(async()=>{await b();let l=D();l||(l=g.value[0]),p.value=l,v.value?.loadFailedMessageGroups(l)}),(l,C)=>(a(),u(ot,null,{default:G(()=>[r(Ke,null,{default:G(()=>[t("section",js,[r(Mt),t("div",Js,[C[2]||(C[2]=t("div",{class:"col-6 list-section"},[t("h3",null,"Failed message group")],-1)),t("div",Ks,[t("div",Xs,[C[1]||(C[1]=t("label",{class:"control-label"},"Group by:",-1)),t("button",eo,[c(k(p.value)+" ",1),C[0]||(C[0]=t("span",{class:"caret"},null,-1))]),t("ul",to,[(a(!0),i(te,null,me(g.value,(S,z)=>(a(),i("li",{key:z},[t("a",{onClick:I(B=>w(S),["prevent"])},k(S),9,so)]))),128))])]),r(lt,{onSortUpdated:$,sortOptions:N})])]),h.value?(a(),i("div",oo,[t("div",ao,[t("div",no,[t("div",io,[t("div",lo,[r(Ys,{sortFunction:h.value,ref_key:"messageGroupList",ref:v},null,8,["sortFunction"])])])])])])):n("",!0)])]),_:1})]),_:1}))}}),vo=K(ro,[["__scopeId","data-v-a6c4c394"]]);export{vo as default}; +//# sourceMappingURL=FailedMessageGroups-Bhk9iJUQ.js.map diff --git a/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js.map b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js.map new file mode 100644 index 0000000000..fe1a22446f --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-Bhk9iJUQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FailedMessageGroups-Bhk9iJUQ.js","sources":["../../../../frontend/src/components/failedmessages/LastTenOperations.vue","../../../../frontend/src/components/failedmessages/FailedMessageGroupNoteEdit.vue","../../../../frontend/src/components/failedmessages/ProgressMessage.vue","../../../../frontend/src/components/failedmessages/MessageGroupList.vue","../../../../frontend/src/components/failedmessages/FailedMessageGroups.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n"],"names":["historicOperations","ref","showHistoricRetries","serviceControlStore","useServiceControlStore","getHistoricOperations","data","onMounted","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_withDirectives","_hoisted_4","_createVNode","FAIcon","_unref","faAngleDown","_hoisted_5","faAngleRight","_cache","$event","_hoisted_6","_hoisted_7","_createBlock","NoData","_Fragment","_renderList","group","index","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_toDisplayString","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","faEnvelope","_hoisted_18","faClock","TimeSince","_hoisted_19","_vShow","emit","__emit","settings","__props","grpcomment","createNote","updatedGroup","editNote","close","onUnmounted","props","_normalizeClass","faArrowRight","faCheck","_renderSlot","_ctx","pollingFaster","refreshInterval","router","useRouter","groupsWithNotesAdded","savedGroupBy","selectedGroup","exceptionGroups","loadingData","initialLoadComplete","showDeleteNoteModal","showEditNoteModal","showDeleteGroupModal","showRetryGroupModal","noteSaveSuccessful","groupDeleteSuccessful","groupRetrySuccessful","messageGroupClient","createMessageGroupClient","getExceptionGroups","classifier","result","note","groupFromSC","initializeGroupState","operationStatus","createWorkflowState","loadFailedMessageGroups","groupBy","deleteNote","saveDeleteNote","hideToastMessage","useShowToast","TYPE","saveNote","comment","saveCreatedNote","saveEditedNote","statusesForArchiveOperation","deleteGroup","saveDeleteGroup","changeRefreshInterval","optionalStatus","optionalTotal","optionalFailed","getClasses","stepStatus","currentStatus","statusArray","indexOfStep","indexOfCurrent","getClassesForArchiveOperation","retryGroup","saveRetryGroup","statusesForRetryOperation","getClassesForRetryOperation","acknowledgeGroup","isBeingArchived","status","isBeingRetried","clearInMemoryData","navigateToGroup","groupId","routeLinks","isRetryOrDeleteOperationInProgress","milliseconds","__expose","_createTextVNode","faArrowRotateRight","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","ActionButton","_withModifiers","faTrash","faStickyNote","faPencil","faEraser","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","ProgressMessage","_mergeProps","_hoisted_30","_hoisted_31","_hoisted_32","_normalizeStyle","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","faExclamationTriangle","_hoisted_39","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_46","_hoisted_47","_hoisted_48","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_hoisted_53","_hoisted_54","_hoisted_55","_hoisted_56","_Teleport","FailedMessageGroupNoteEdit","ConfirmDialog","selectedClassifier","classifiers","messageGroupList","useTemplateRef","sortMethod","sortGroups","sort","getSortFunction","SortDirection","sortOptions","faArrowDownAZ","faArrowDownZA","faArrowDown19","faArrowDown91","faArrowDownShortWide","faArrowDownWideShort","getGroupingClassifiers","saveDefaultGroupingClassifier","useCookies","classifierChanged","loadDefaultGroupingClassifier","cookieGrouping","savedClassifier","ServiceControlAvailable","LicenseNotExpired","LastTenOperations","OrderBy","MessageGroupList"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/FailedMessageGroups-DUpcj7S6.css b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-DUpcj7S6.css new file mode 100644 index 0000000000..7d66caec8e --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/FailedMessageGroups-DUpcj7S6.css @@ -0,0 +1 @@ +.fake-link i[data-v-1a921240]{padding-right:.2em}.lasttenoperations[data-v-1a921240]{padding-bottom:2em}.lasttenoperations>div>div>h6[data-v-1a921240]{margin-top:10px;margin-bottom:10px}.lastTenHeading[data-v-1a921240]{color:var(--sp-blue)}.icon[data-v-1a921240]{color:var(--reduced-emphasis)}.modal-mask[data-v-7bcf9b0c]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-7bcf9b0c]{display:table-cell;vertical-align:middle}.modal-container[data-v-7bcf9b0c]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-7bcf9b0c]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-7bcf9b0c]{margin:0;line-height:1.42857143}.modal-body[data-v-7bcf9b0c]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-7bcf9b0c]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-7bcf9b0c]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-7bcf9b0c]{padding:0;border-radius:5px}.modal-container .btn[data-v-7bcf9b0c]{font-size:14px}.modal-content[data-v-7bcf9b0c]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-7bcf9b0c]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-7bcf9b0c],.modal-open[data-v-7bcf9b0c]{overflow-y:hidden}.modal .btn.btn-primary[data-v-7bcf9b0c]{padding:8px 20px}.progress-status[data-v-e98dcd30]{display:flex;align-items:center;margin-bottom:6px}.slot[data-v-e98dcd30]{flex:1}.progress-status.active[data-v-e98dcd30]{color:#fff}.progress-status.leftToDo[data-v-e98dcd30],.progress-status.completed[data-v-e98dcd30]{color:#b0b5b5}.progress-status.leftToDo[data-v-e98dcd30]{margin-left:15px}.icon[data-v-e98dcd30]{margin-right:3px}.lead[data-v-c4db5aee],.box p .lead[data-v-c4db5aee]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-c4db5aee]{cursor:pointer}.panel-retry[data-v-c4db5aee]{background-color:#1a1a1a;border:none;color:#fff}.panel-retry p.lead[data-v-c4db5aee]{color:#fff}.panel-retry span.metadata[data-v-c4db5aee],.panel-retry sp-moment[data-v-c4db5aee]{color:#b0b5b5!important}div.retry-completed.bulk-retry-progress-status[data-v-c4db5aee]{color:#fff;font-weight:700}.progress.bulk-retry-progress[data-v-c4db5aee]{margin-bottom:0;background-color:#333}.retry-completed[data-v-c4db5aee],ul.retry-request-progress button[data-v-c4db5aee]{display:inline-block}ul.retry-request-progress button[data-v-c4db5aee]{background-color:var(--sp-blue)}ul.retry-request-progress li>div[data-v-c4db5aee]{margin-bottom:6px}.btn.btn-sm[data-v-c4db5aee]{color:var(--sp-blue);font-size:14px;font-weight:700;padding:0 36px 10px 0}.panel[data-v-c4db5aee]{margin-bottom:20px;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px #0000000d}.panel-body[data-v-c4db5aee]{padding:15px}.panel-body ul[data-v-c4db5aee]{list-style:none;padding-left:0}.panel-body ul[data-v-c4db5aee]{list-style:none}.op-metadata[data-v-c4db5aee]{border-top:1px solid #414242;padding-top:15px}.note[data-v-c4db5aee]{margin-bottom:10px;background-color:#fcf8e3;border:1px solid #faebcc;padding:10px 15px}.metadata.danger[data-v-c4db5aee],.metadata.danger>.danger[data-v-c4db5aee]{font-weight:400!important}.icon[data-v-c4db5aee]{color:var(--reduced-emphasis)}button .icon[data-v-c4db5aee]{margin-right:2px}div.col-xs-3.col-sm-3.retry-op-queued[data-v-c4db5aee]{color:#b0b5b5!important}div.progress-bar.progress-bar-striped.active[data-v-c4db5aee]{color:#fff!important}.fake-link i[data-v-c4db5aee]{padding-right:.2em}.toolbar-menus>.msg-group-menu[data-v-c4db5aee]{margin:0}.inset[data-v-c4db5aee]{padding-left:13px}.dropdown>button[data-v-a6c4c394]:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline} diff --git a/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js b/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js new file mode 100644 index 0000000000..46d6c635ec --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js @@ -0,0 +1,4 @@ +import{e as de,u as ce,f as fe,r as p,ap as ge,w as ve,az as me,ad as ye,o as pe,p as f,n,x as g,v as w,aq as we,q as u,m as Z,t as v,B as $,ah as h,y as C,z as D,ag as J,J as K,aA as he,av as Ce,aw as Se,ar as Ie,as as Ae,a5 as be,T as ke,C as U,ax as Me,S as $e,P,Q as _,aB as De,aC as Pe}from"./index-tFZp7u44.js";import{c as _e}from"./messageGroupClient-MAkYdcH-.js";import{O as Re}from"./OrderBy-Bnnuz_3H.js";import{M as xe}from"./MessageList-Crzvyqel.js";import{u as Fe}from"./MessageStore-TKRBN2N2.js";const Oe={name:"message_groups"},Ee={key:0,class:"row"},Ne={class:"col-sm-12"},Te={key:0,class:"active break group-title"},Ge={class:"active group-title group-message-count"},Be={class:"row"},Ve={class:"col-9"},qe={class:"btn-toolbar"},Le={class:"col-3"},Ue={class:"row"},je={class:"col-12"},ze={class:"row"},Q=50,He=de({__name:"FailedMessages",setup(We){const B=ce(),j=Fe(),z=_e();let R=!1,k,x;const Y=fe(),S=p(Y.params.groupId),I=p(""),F=p(1),V=p(0),O=p(!1),E=p(!1),N=p(!1),i=ge("messageList"),d=p([]),H=[{description:"Time of failure",iconAsc:Se,iconDesc:Ce},{description:"Message Type",iconAsc:Ae,iconDesc:Ie}];ve(F,()=>T());function X(t){x=t,T()}function T(){te(S.value,F.value,x&&x.description.replaceAll(" ","_").toLowerCase(),x?.dir)}async function ee(t){const s=await(await B.fetchFromServiceControl(`recoverability/groups/id/${t}`)).json();I.value=s.title}function te(t,e,s,G){s??="time_of_failure",G??=$e.Descending;let b;t&&!I.value&&(b=ee(t));async function L(){try{const[m,l]=await B.fetchTypedFromServiceControl(`${t?`recoverability/groups/${t}/`:""}errors?status=${Pe.Unresolved}&page=${e}&per_page=${Q}&sort=${s}&direction=${G}`);V.value=parseInt(m.headers.get("Total-Count")??""),d.value.length&&l.length&&d.value.forEach(r=>{const a=l.find(c=>c.id===r.id);a&&(r.last_modified===a.last_modified&&(a.retryInProgress=r.retryInProgress,a.deleteInProgress=r.deleteInProgress),a.selected=r.selected)}),d.value=l}catch(m){return console.log(m),{message:"error"}}}const o=L();return b?Promise.all([b,o]):o}async function se(t){A(1e3),P(_.INFO,"Info","Message retry requested..."),await j.retryMessages([t]);const e=d.value.find(s=>s.id===t);e&&(e.retryInProgress=!0,e.selected=!1)}async function oe(){A(1e3);const t=i.value?.getSelectedMessages()??[];P(_.INFO,"Info","Retrying "+t.length+" messages..."),await j.retryMessages(t.map(e=>e.id)),i.value?.deselectAll(),t.forEach(e=>e.retryInProgress=!0)}function ae(){function t(o){const l=Object.keys(o[0]);let r=l.join(",")+` +`;return o.forEach(a=>{r+=l.map(c=>{let y=String(a[c]);return y=y.replaceAll('"','""'),y.search(/([",\n])/g)>=0&&(y=`"${y}"`),y}).join(",")+` +`}),r}function e(o,m,l=""){const r=typeof o;let a={};if(o!=null&&r==="object"){for(const c in o){const y=e(o[c],m,l+c+".");a=Object.assign(a,y)}return a}else if(r==="number"||r==="string"||r==="boolean"||o==null){const c=l.substr(0,l.length-1);return m&&m.includes(c)||(a[c]=o),a}return a}const s=i.value?.getSelectedMessages()??[],G=["hover","selected","hover2","$$hashKey","panel","edit_of","edited"],b=[];for(let o=0;oe.id)),i.value?.deselectAll(),t.forEach(e=>e.deleteInProgress=!0)}async function ie(){P(_.INFO,"Info","Retrying all messages..."),await z.retryExceptionGroup(S.value),d.value.forEach(t=>t.retryInProgress=!0)}async function ue(){P(_.INFO,"Info","Deleting all messages..."),await z.archiveExceptionGroup(S.value),d.value.forEach(t=>t.deleteInProgress=!0)}function W(){return d.value.some(t=>t.retryInProgress||t.deleteInProgress)}function A(t){k!=null&&window.clearInterval(k),k=window.setInterval(()=>{!R&&W()?(A(1e3),R=!0):R&&!W()&&(A(5e3),R=!1),T()},t)}return me(()=>{S.value="",I.value=""}),ye(()=>{k!=null&&window.clearInterval(k)}),pe(()=>{T(),A(5e3)}),(t,e)=>(n(),f(Me,null,{default:g(()=>[w(we,null,{default:g(()=>[u("section",Oe,[I.value&&d.value.length>0?(n(),Z("div",Ee,[u("div",Ne,[I.value?(n(),Z("h1",Te,$(I.value),1)):v("",!0),u("h3",Ge,$(V.value)+" messages in group",1)])])):v("",!0),u("div",Be,[u("div",Ve,[u("div",qe,[M()?v("",!0):(n(),f(h,{key:0,onClick:re},{default:g(()=>[...e[12]||(e[12]=[C("Select all",-1)])]),_:1})),M()?(n(),f(h,{key:1,onClick:le},{default:g(()=>[...e[13]||(e[13]=[C("Clear selection",-1)])]),_:1})):v("",!0),w(h,{icon:D(J),onClick:e[0]||(e[0]=s=>oe()),disabled:!M()},{default:g(()=>[C("Retry "+$(q())+" selected",1)]),_:1},8,["icon","disabled"]),w(h,{icon:D(K),onClick:e[1]||(e[1]=s=>O.value=!0),disabled:!M()},{default:g(()=>[C("Delete "+$(q())+" selected",1)]),_:1},8,["icon","disabled"]),w(h,{icon:D(he),onClick:e[2]||(e[2]=s=>ae()),disabled:!M()},{default:g(()=>[C("Export "+$(q())+" selected",1)]),_:1},8,["icon","disabled"]),S.value?(n(),f(h,{key:2,icon:D(J),onClick:e[3]||(e[3]=s=>E.value=!0)},{default:g(()=>[...e[14]||(e[14]=[C("Retry all",-1)])]),_:1},8,["icon"])):v("",!0),S.value?(n(),f(h,{key:3,icon:D(K),onClick:e[4]||(e[4]=s=>N.value=!0)},{default:g(()=>[...e[15]||(e[15]=[C("Delete all",-1)])]),_:1},8,["icon"])):v("",!0)])]),u("div",Le,[w(Re,{onSortUpdated:X,sortOptions:H,sortSavePrefix:"all_failed_"})])]),u("div",Ue,[u("div",je,[w(xe,{messages:d.value,"show-request-retry":!0,onRetryRequested:se,ref_key:"messageList",ref:i},null,8,["messages"])])]),u("div",ze,[w(be,{modelValue:F.value,"onUpdate:modelValue":e[5]||(e[5]=s=>F.value=s),"total-count":V.value,"items-per-page":Q},null,8,["modelValue","total-count"])]),(n(),f(ke,{to:"#modalDisplay"},[O.value?(n(),f(U,{key:0,onCancel:e[6]||(e[6]=s=>O.value=!1),onConfirm:e[7]||(e[7]=s=>{O.value=!1,ne()}),heading:"Are you sure you want to delete the selected messages?",body:"If you delete, these messages won't be available for retrying unless they're later restored."})):v("",!0),E.value?(n(),f(U,{key:1,onCancel:e[8]||(e[8]=s=>E.value=!1),onConfirm:e[9]||(e[9]=s=>{E.value=!1,ie()}),heading:"Are you sure you want to retry the whole group?",body:"Retrying a whole group can take some time and put extra load on your system. Are you sure you want to retry all these messages?"})):v("",!0),N.value?(n(),f(U,{key:2,onCancel:e[10]||(e[10]=s=>N.value=!1),onConfirm:e[11]||(e[11]=s=>{N.value=!1,ue()}),heading:"Are you sure you want to delete this group?",body:"If you delete, the messages in the group won't be available for retrying unless they're later restored."})):v("",!0)]))])]),_:1})]),_:1}))}});export{He as default}; +//# sourceMappingURL=FailedMessages-CjUU1kVn.js.map diff --git a/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js.map b/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js.map new file mode 100644 index 0000000000..7e9d7df2dd --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/FailedMessages-CjUU1kVn.js.map @@ -0,0 +1 @@ +{"version":3,"file":"FailedMessages-CjUU1kVn.js","sources":["../../../../frontend/src/components/failedmessages/FailedMessages.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["perPage","serviceControlStore","useServiceControlStore","messageStore","useMessageStore","messageGroupClient","createMessageGroupClient","pollingFaster","refreshInterval","sortMethod","route","useRoute","groupId","ref","groupName","pageNumber","totalCount","showDelete","showConfirmRetryAll","showConfirmDeleteAll","messageList","useTemplateRef","messages","sortOptions","faArrowDownShortWide","faArrowDownWideShort","faArrowDownAZ","faArrowDownZA","watch","loadMessages","sortGroups","sort","loadPagedMessages","loadGroupDetails","data","page","sortBy","direction","SortDirection","loadGroupDetailsPromise","response","FailedMessageStatus","previousMessage","receivedMessage","m","err","loadMessagesPromise","retryRequested","id","changeRefreshInterval","useShowToast","TYPE","message","retrySelected","selectedMessages","exportSelected","toCSV","array","keys","result","obj","k","v","parseObject","propertiesToSkip","path","type","d","i","newD","endPath","preparedMessagesForExport","csvStr","downloadFileFromString","numberSelected","selectAll","deselectAll","isAnythingSelected","deleteSelectedMessages","retryGroup","deleteGroup","isRetryOrDeleteOperationInProgress","milliseconds","onBeforeRouteLeave","onUnmounted","onMounted","_createBlock","ServiceControlAvailable","_createVNode","LicenseNotExpired","_createElementVNode","_hoisted_1","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","ActionButton","_cache","_unref","faArrowRotateRight","faTrash","faDownload","_hoisted_9","OrderBy","_hoisted_10","_hoisted_11","MessageList","_hoisted_12","PaginationStrip","$event","_Teleport","ConfirmDialog"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-CdYq7EGf.css b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-CdYq7EGf.css new file mode 100644 index 0000000000..3837e09794 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-CdYq7EGf.css @@ -0,0 +1 @@ +.modal-mask[data-v-405734be]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-405734be]{display:table-cell;vertical-align:middle}.modal-container[data-v-405734be]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-405734be]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-405734be]{margin:0;line-height:1.42857143}.modal-body[data-v-405734be]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-405734be]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-405734be]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-405734be]{padding:0;border-radius:5px}.modal-container .btn[data-v-405734be]{font-size:14px}.modal-content[data-v-405734be]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-405734be]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-405734be],.modal-open[data-v-405734be]{overflow-y:hidden}.modal .btn.btn-primary[data-v-405734be]{padding:8px 20px}.modal-container[data-v-405734be]{width:800px;display:flex;flex-direction:column}.notificationsForm[data-v-405734be]{display:flex;flex-direction:column;flex:1;min-height:0}.lead[data-v-6e4d26dc],.box p .lead[data-v-6e4d26dc]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-6e4d26dc]{cursor:pointer}.screen-intro[data-v-6e4d26dc]{margin:30px 0}.box-header[data-v-6e4d26dc]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-6e4d26dc]{list-style-type:none;margin:0;padding:0}p.endpoint-metadata[data-v-6e4d26dc]{display:inline-block;margin-top:4px;padding-right:30px}.endpoint-metadata button i[data-v-6e4d26dc]{color:var(--sp-blue);margin-right:4px}.btn-sm[data-v-6e4d26dc]{color:var(--sp-blue);font-size:14px;font-weight:700;padding:0 36px 10px 0;text-decoration:none}.notifications .btn-sm[data-v-6e4d26dc]{padding:0}.notifications .connection-test[data-v-6e4d26dc]{top:2px} diff --git a/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js new file mode 100644 index 0000000000..06efd385ea --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js @@ -0,0 +1,2 @@ +import{e as M,r,c as x,m as S,n as p,q as t,ai as G,E as $,a7 as y,ae as T,aN as K,y as _,U as q,d as Q,u as X,b$ as Y,s as j,o as J,v as f,x as U,p as A,aq as W,z as g,t as h,K as k,_ as N,ao as P,ah as R,c0 as tt,ab as et,a3 as B,T as st,am as ot,ax as at,P as F,Q as H}from"./index-tFZp7u44.js";import{O as nt}from"./OnOffSwitch-CICGC8TS.js";const lt={class:"modal-mask"},it={class:"modal-wrapper"},rt={class:"modal-container modal-content"},ut={class:"modal-body"},ct={class:"row"},dt={class:"form-group"},mt={class:"form-group"},vt={class:"form-group"},ft={class:"modal-footer"},pt=["disabled"],_t=M({__name:"HealthCheckNotifications_ConfigureEmail",props:{enabled:{type:[Boolean,null]},enable_tls:{type:[Boolean,null]},smtp_server:{},smtp_port:{},authentication_account:{},authentication_password:{},from:{},to:{}},emits:["save","cancel"],setup(m,{emit:u}){const C=u,n=m,c=r(n.smtp_server),d=r(n.smtp_port),i=r(n.authentication_account),v=r(n.authentication_password),b=r(n.enable_tls),s=r(n.from),a=r(n.to),E=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,w=x(()=>!!c.value),o=x(()=>!!(d.value??!1)),I=x(()=>!!(s.value&&E.test(s.value))),z=x(()=>!!(a.value&&D(a.value))),O=x(()=>w.value&&o.value&&I.value&&z.value);function D(V){return V.split(",").every(l=>E.test(l))}function L(){const V={smtp_server:c.value,smtp_port:d.value??0,authorization_account:i.value,authorization_password:v.value,enable_tls:b.value??!1,from:s.value,to:a.value};C("save",V)}function Z(){C("cancel")}return(V,e)=>(p(),S("div",lt,[t("div",it,[t("div",rt,[e[20]||(e[20]=t("div",{class:"modal-header"},[t("h3",{class:"modal-title"},"Email configuration")],-1)),t("form",{name:"notificationsForm",class:"notificationsForm",novalidate:"",onSubmit:G(L,["prevent"])},[t("div",ut,[t("div",ct,[t("div",{class:$(["form-group",{"has-error":!w.value}])},[e[7]||(e[7]=t("label",{for:"smtpServerAddress"},"SMTP server address",-1)),y(t("input",{type:"text",id:"smtpServerAddress",name:"smtpServerAddress","onUpdate:modelValue":e[0]||(e[0]=l=>c.value=l),class:"form-control",required:""},null,512),[[T,c.value]])],2),e[14]||(e[14]=t("div",{class:"row"},null,-1)),t("div",{class:$(["form-group",{"has-error":!o.value}])},[e[8]||(e[8]=t("label",{for:"smtpServerPort"},"SMTP server port",-1)),y(t("input",{type:"number",id:"smtpServerPort",name:"smtpServerPort","onUpdate:modelValue":e[1]||(e[1]=l=>d.value=l),class:"form-control",required:""},null,512),[[T,d.value]])],2),e[15]||(e[15]=t("div",{class:"row"},null,-1)),t("div",dt,[e[9]||(e[9]=t("label",{for:"account"},"Authentication account",-1)),y(t("input",{type:"text",id:"account",name:"account","onUpdate:modelValue":e[2]||(e[2]=l=>i.value=l),class:"form-control"},null,512),[[T,i.value]])]),e[16]||(e[16]=t("div",{class:"row"},null,-1)),t("div",mt,[e[10]||(e[10]=t("label",{for:"password"},"Authentication password",-1)),y(t("input",{type:"password",id:"password",name:"password","onUpdate:modelValue":e[3]||(e[3]=l=>v.value=l),class:"form-control"},null,512),[[T,v.value]])]),e[17]||(e[17]=t("div",{class:"row"},null,-1)),t("div",vt,[y(t("input",{type:"checkbox",id:"enableTLS",name:"enableTLS","onUpdate:modelValue":e[4]||(e[4]=l=>b.value=l),class:"check-label"},null,512),[[K,b.value]]),e[11]||(e[11]=t("label",{for:"enableTLS"},"Use TLS",-1))]),e[18]||(e[18]=t("div",{class:"row"},null,-1)),t("div",{class:$(["form-group",{"has-error":!I.value}])},[e[12]||(e[12]=t("label",{for:"from"},"From address",-1)),y(t("input",{type:"email",id:"from",name:"from","onUpdate:modelValue":e[5]||(e[5]=l=>s.value=l),class:"form-control",required:""},null,512),[[T,s.value]])],2),e[19]||(e[19]=t("div",{class:"row"},null,-1)),t("div",{class:$(["form-group",{"has-error":!z.value}])},[e[13]||(e[13]=t("label",{for:"to"},[_("To address "),t("br"),_("(Separate multiple email address with a comma. E.g. testing@test.com,testing2@test.com)")],-1)),y(t("input",{type:"email",id:"to",name:"to","onUpdate:modelValue":e[6]||(e[6]=l=>a.value=l),class:"form-control",required:""},null,512),[[T,a.value]])],2)])]),t("div",ft,[t("button",{class:"btn btn-primary",type:"submit",disabled:!O.value},"Save",8,pt),t("button",{type:"button",class:"btn btn-default",onClick:Z},"Cancel")])],32)])])]))}}),bt=q(_t,[["__scopeId","data-v-405734be"]]),gt=Q("HealthChecksStore",()=>{const m=r({enabled:null,enable_tls:null,smtp_server:"",smtp_port:null,authentication_account:"",authentication_password:"",from:"",to:""}),u=X(),n=Y().serviceControlIsGreaterThan("5.2");async function c(){let s=null;try{const[,a]=await u.fetchTypedFromServiceControl("notifications/email");s=a}catch(a){console.error(a),s={enabled:!1,enable_tls:!1}}m.value={enabled:s.enabled,enable_tls:s.enable_tls,smtp_server:s.smtp_server?s.smtp_server:"",smtp_port:s.smtp_port?s.smtp_port:null,authentication_account:s.authentication_account?s.authentication_account:"",authentication_password:s.authentication_password?s.authentication_password:"",from:s.from?s.from:"",to:s.to?s.to:""}}async function d(){const s=await b(()=>u.postToServiceControl("notifications/email/toggle",{enabled:!(m.value.enabled??!0)}));return s.message==="success"?!0:(console.error(s.message),m.value.enabled=!m.value.enabled,!1)}async function i(){const s=await b(()=>u.postToServiceControl("notifications/email/test"),a=>n.value?a.headers.get("X-Particular-Reason")??a.statusText:a.statusText);return s.message==="success"?!0:(console.error(s.message),!1)}async function v(s){const a=await b(()=>u.postToServiceControl("notifications/email",s));return a.message==="success"?(m.value={enabled:m.value.enabled,enable_tls:s.enable_tls,smtp_server:s.smtp_server,smtp_port:s.smtp_port,authentication_account:s.authorization_account,authentication_password:s.authorization_password,from:s.from,to:s.to},!0):(console.error(a.message),!1)}async function b(s,a){const w=a??(o=>o.statusText);try{const o=await s();return{message:o.ok?"success":`error:${w(o)}`}}catch(o){return{message:o.message??o}}}return{refresh:c,emailNotifications:m,toggleEmailNotifications:d,saveEmailNotifications:v,testEmailNotifications:i}}),St={name:"notifications"},wt={class:"notifications row"},yt={class:"col-12"},ht={class:"row box box-no-click"},Ct={class:"col-12 no-side-padding"},Tt={class:"row"},kt={class:"col-auto"},Et={class:"connection-test connection-failed"},xt={class:"col-xs-9 col-sm-10 col-lg-11"},Nt={class:"row box-header"},Vt={class:"col-12"},$t={class:"endpoint-metadata"},Ut={class:"endpoint-metadata"},It={class:"connection-test connection-testing"},Pt={class:"connection-test connection-successful"},zt={class:"connection-test connection-failed"},At={class:"connection-test connection-successful"},Rt={class:"connection-test connection-failed"},Bt=M({__name:"HealthCheckNotifications",setup(m){const u=gt(),{emailNotifications:C}=j(u),n=r(null),c=r(null),d=r(null),i=r(null),v=r(!1);async function b(){n.value=null,i.value=null,d.value=await u.toggleEmailNotifications()}function s(){d.value=null,n.value=null,i.value=null,v.value=!0}async function a(w){i.value=null,v.value=!1,await u.saveEmailNotifications(w)?(i.value=!0,F(H.INFO,"Info","Email settings updated.")):(i.value=!1,F(H.ERROR,"Error","Failed to update the email settings."))}async function E(){c.value=!0,d.value=null,i.value=null,n.value=await u.testEmailNotifications(),c.value=!1}return J(async()=>{await u.refresh()}),(w,o)=>(p(),S("section",St,[f(at,null,{default:U(()=>[f(W,null,{default:U(()=>[t("section",null,[o[11]||(o[11]=t("div",{class:"row"},[t("div",{class:"col-12"},[t("p",{class:"screen-intro"},"Configure notifications for health checks built into ServiceControl (low disk space, stale database indexes, audit ingestion, etc.).")])],-1)),t("div",wt,[t("div",yt,[t("div",ht,[t("div",Ct,[t("div",Tt,[t("div",kt,[f(nt,{id:"emailNotifications",onToggle:b,value:g(C).enabled},null,8,["value"]),t("div",null,[t("span",Et,[d.value===!1?(p(),S(k,{key:0},[f(N,{icon:g(P)},null,8,["icon"]),o[1]||(o[1]=_(" Update failed ",-1))],64)):h("",!0)])])]),t("div",xt,[t("div",Nt,[t("div",Vt,[o[10]||(o[10]=t("p",{class:"lead"},"Email notifications",-1)),t("p",$t,[f(R,{variant:"link",size:"sm",icon:g(tt),onClick:s},{default:U(()=>[...o[2]||(o[2]=[_("Configure",-1)])]),_:1},8,["icon"])]),t("p",Ut,[f(R,{variant:"link",size:"sm",icon:g(et),onClick:E,disabled:!!c.value},{default:U(()=>[...o[3]||(o[3]=[_("Send test notification",-1)])]),_:1},8,["icon","disabled"]),t("span",It,[c.value?(p(),S(k,{key:0},[o[4]||(o[4]=t("i",{class:"glyphicon glyphicon-refresh rotate"},null,-1)),o[5]||(o[5]=_(" Testing ",-1))],64)):h("",!0)]),t("span",Pt,[n.value===!0?(p(),S(k,{key:0},[f(N,{icon:g(B)},null,8,["icon"]),o[6]||(o[6]=_(" Test email sent successfully ",-1))],64)):h("",!0)]),t("span",zt,[n.value===!1?(p(),S(k,{key:0},[f(N,{icon:g(P)},null,8,["icon"]),o[7]||(o[7]=_(" Test failed ",-1))],64)):h("",!0)]),t("span",At,[i.value===!0?(p(),S(k,{key:0},[f(N,{icon:g(B)},null,8,["icon"]),o[8]||(o[8]=_(" Update successful ",-1))],64)):h("",!0)]),t("span",Rt,[i.value===!1?(p(),S(k,{key:0},[f(N,{icon:g(P)},null,8,["icon"]),o[9]||(o[9]=_(" Update failed ",-1))],64)):h("",!0)])])])])])])])])])])])]),_:1}),(p(),A(st,{to:"#modalDisplay"},[v.value?(p(),A(bt,ot({key:0},g(C),{onCancel:o[0]||(o[0]=I=>v.value=!1),onSave:a}),null,16)):h("",!0)]))]),_:1})]))}}),Mt=q(Bt,[["__scopeId","data-v-6e4d26dc"]]);export{Mt as default}; +//# sourceMappingURL=HealthCheckNotifications-DxnGQy31.js.map diff --git a/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js.map b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js.map new file mode 100644 index 0000000000..11e4ddfc71 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HealthCheckNotifications-DxnGQy31.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HealthCheckNotifications-DxnGQy31.js","sources":["../../../../frontend/src/components/configuration/HealthCheckNotifications_ConfigureEmail.vue","../../../../frontend/src/stores/HealthChecksStore.ts","../../../../frontend/src/components/configuration/HealthCheckNotifications.vue"],"sourcesContent":["\n\n\n\n\n","import EmailSettings from \"@/components/configuration/EmailSettings\";\nimport { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { ref } from \"vue\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport EmailNotifications from \"@/resources/EmailNotifications\";\nimport UpdateEmailNotificationsSettingsRequest from \"@/resources/UpdateEmailNotificationsSettingsRequest\";\nimport { useEnvironmentAndVersionsStore } from \"./EnvironmentAndVersionsStore\";\n\nexport const useHealthChecksStore = defineStore(\"HealthChecksStore\", () => {\n const emailNotifications = ref({\n enabled: null,\n enable_tls: null,\n smtp_server: \"\",\n smtp_port: null,\n authentication_account: \"\",\n authentication_password: \"\",\n from: \"\",\n to: \"\",\n });\n\n const serviceControlStore = useServiceControlStore();\n const environmentStore = useEnvironmentAndVersionsStore();\n const hasResponseStatusInHeaders = environmentStore.serviceControlIsGreaterThan(\"5.2\");\n\n async function refresh() {\n let result: EmailNotifications | null = null;\n try {\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(\"notifications/email\");\n result = data;\n } catch (err) {\n console.error(err);\n result = {\n enabled: false,\n enable_tls: false,\n };\n }\n\n emailNotifications.value = {\n enabled: result.enabled,\n enable_tls: result.enable_tls,\n smtp_server: result.smtp_server ? result.smtp_server : \"\",\n smtp_port: result.smtp_port ? result.smtp_port : null,\n authentication_account: result.authentication_account ? result.authentication_account : \"\",\n authentication_password: result.authentication_password ? result.authentication_password : \"\",\n from: result.from ? result.from : \"\",\n to: result.to ? result.to : \"\",\n };\n }\n\n async function toggleEmailNotifications() {\n const result = await getResponseOrError(() =>\n serviceControlStore.postToServiceControl(\"notifications/email/toggle\", {\n enabled: !(emailNotifications.value.enabled ?? true),\n })\n );\n if (result.message === \"success\") return true;\n else {\n console.error(result.message);\n //set it back to what it was\n emailNotifications.value.enabled = !emailNotifications.value.enabled;\n return false;\n }\n }\n\n async function testEmailNotifications() {\n const result = await getResponseOrError(\n () => serviceControlStore.postToServiceControl(\"notifications/email/test\"),\n (response) => (hasResponseStatusInHeaders.value ? (response.headers.get(\"X-Particular-Reason\") ?? response.statusText) : response.statusText)\n );\n if (result.message === \"success\") return true;\n else {\n console.error(result.message);\n return false;\n }\n }\n\n async function saveEmailNotifications(newSettings: UpdateEmailNotificationsSettingsRequest) {\n const result = await getResponseOrError(() => serviceControlStore.postToServiceControl(\"notifications/email\", newSettings));\n if (result.message === \"success\") {\n emailNotifications.value = {\n enabled: emailNotifications.value.enabled,\n enable_tls: newSettings.enable_tls,\n smtp_server: newSettings.smtp_server,\n smtp_port: newSettings.smtp_port,\n authentication_account: newSettings.authorization_account,\n authentication_password: newSettings.authorization_password,\n from: newSettings.from,\n to: newSettings.to,\n };\n return true;\n } else {\n console.error(result.message);\n return false;\n }\n }\n\n async function getResponseOrError(action: () => Promise, responseStatusTextOverride?: (response: Response) => string) {\n const responseStatusTextDefault = (response: Response) => response.statusText;\n const responseStatusText = responseStatusTextOverride ?? responseStatusTextDefault;\n try {\n const response = await action();\n return {\n message: response.ok ? \"success\" : `error:${responseStatusText(response)}`,\n };\n } catch (err) {\n return {\n message: (err as Error).message ?? err,\n };\n }\n }\n\n return {\n refresh,\n emailNotifications,\n toggleEmailNotifications,\n saveEmailNotifications,\n testEmailNotifications,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useHealthChecksStore, import.meta.hot));\n}\n\nexport type HealthChecksStore = ReturnType;\n","\n\n\n\n\n"],"names":["emit","__emit","settings","__props","smtp_server","ref","smtp_port","authentication_account","authentication_password","enable_tls","from","to","emailRe","smtpServerIsValid","computed","smtpPortIsValid","fromIsValid","toIsValid","validateMultipleEmailsCommaSeparated","formIsValid","value","address","save","updatedSettings","close","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_normalizeClass","_cache","$event","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","useHealthChecksStore","defineStore","emailNotifications","serviceControlStore","useServiceControlStore","hasResponseStatusInHeaders","useEnvironmentAndVersionsStore","refresh","result","data","err","toggleEmailNotifications","getResponseOrError","testEmailNotifications","response","saveEmailNotifications","newSettings","action","responseStatusTextOverride","responseStatusText","healthChecksStore","storeToRefs","emailTestSuccessful","emailTestInProgress","emailToggleSuccessful","emailUpdateSuccessful","showEmailConfiguration","editEmailNotifications","saveEditedEmailNotifications","useShowToast","TYPE","onMounted","_createVNode","ServiceControlAvailable","LicenseNotExpired","OnOffSwitch","_unref","_Fragment","FAIcon","faExclamationTriangle","_hoisted_11","_hoisted_12","ActionButton","faEdit","_hoisted_13","faEnvelope","_hoisted_14","_hoisted_15","faCheck","_hoisted_16","_hoisted_17","_hoisted_18","_createBlock","_Teleport","HealthCheckNotifications_EmailConfiguration","_mergeProps"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js b/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js new file mode 100644 index 0000000000..0190541ac2 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js @@ -0,0 +1,2 @@ +import{e as i,V as m,s as p,m as l,n as a,q as o,v as r,z as e,R as h,p as u,t as d,W as t,K as _,N as y}from"./index-tFZp7u44.js";import{H as f}from"./HeartbeatsList-BQfOAc76.js";import"./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js";import"./OnOffSwitch-CICGC8TS.js";const N={class:"row"},g={name:"healthy_endpoints","aria-label":"Healthy Endpoints"},H={key:1,class:"row"},k={class:"col-sm-12 no-side-padding"},T=i({__name:"HealthyEndpoints",setup(E){const{store:c}=m(),{healthyEndpoints:s,filteredHealthyEndpoints:n}=p(c);return(b,v)=>(a(),l(_,null,[o("div",N,[r(h,{displayed:e(n).length,total:e(s).length},null,8,["displayed","total"])]),o("section",g,[e(s).length===0?(a(),u(y,{key:0,message:"No healthy endpoints"})):d("",!0),e(s).length>0?(a(),l("div",H,[o("div",k,[r(f,{data:e(n),columns:[e(t).Name,e(t).InstancesTotal,e(t).LastHeartbeat,e(t).Tracked,e(t).Muted]},null,8,["data","columns"])])])):d("",!0)])],64))}});export{T as default}; +//# sourceMappingURL=HealthyEndpoints-DOFa-eMD.js.map diff --git a/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js.map b/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js.map new file mode 100644 index 0000000000..14bfb40de2 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HealthyEndpoints-DOFa-eMD.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HealthyEndpoints-DOFa-eMD.js","sources":["../../../../frontend/src/components/heartbeats/HealthyEndpoints.vue"],"sourcesContent":["\n\n\n"],"names":["store","useHeartbeatsStoreAutoRefresh","healthyEndpoints","filteredHealthyEndpoints","storeToRefs","_createElementVNode","_hoisted_1","_createVNode","ResultsCount","_unref","_hoisted_2","_createBlock","NoData","_openBlock","_createElementBlock","_hoisted_3","_hoisted_4","HeartbeatsList","ColumnNames"],"mappings":"sdAQA,KAAM,CAAE,MAAAA,CAAA,EAAUC,EAAA,EACZ,CAAE,iBAAAC,EAAkB,yBAAAC,GAA6BC,EAAYJ,CAAK,8BAItEK,EAEM,MAFNC,EAEM,CADJC,EAA8FC,EAAA,CAA/E,UAAWC,EAAAN,CAAA,EAAyB,OAAS,MAAOM,EAAAP,CAAA,EAAiB,MAAA,kCAEtFG,EAOU,UAPVK,EAOU,CANOD,EAAAP,CAAA,EAAiB,SAAM,OAAtCS,EAAuFC,EAAA,OAAzC,QAAQ,sBAAA,aAC3CH,EAAAP,CAAA,EAAiB,OAAM,GAAlCW,IAAAC,EAIM,MAJNC,EAIM,CAHJV,EAEM,MAFNW,EAEM,CADJT,EAAgLU,EAAA,CAA/J,KAAMR,EAAAN,CAAA,EAA2B,SAAUM,EAAAS,CAAA,EAAY,KAAMT,EAAAS,CAAA,EAAY,eAAgBT,KAAY,cAAeA,EAAAS,CAAA,EAAY,QAAST,EAAAS,CAAA,EAAY,KAAK,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js new file mode 100644 index 0000000000..9373f35e08 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js @@ -0,0 +1,2 @@ +import{e as E,X as N,p as u,n as a,Y as R,z as e,x as h,Z as A,q as t,y as o,B as V,$ as B,U as w,V as O,s as W,r as k,T as H,t as U,C as z,v as d,_ as S,E as y,a0 as F,a1 as P,R as q,m as v,N as K,W as f,K as C,P as g,Q as m}from"./index-tFZp7u44.js";import{O as L}from"./OnOffSwitch-CICGC8TS.js";import{H as Y}from"./HeartbeatsList-BQfOAc76.js";import"./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js";const Q={class:"container not-supported"},X={class:"row"},Z={class:"col-sm-12"},j={class:"text-center message"},G=E({__name:"EndpointSettingsSupported",setup(T){const i=N();return(c,s)=>(a(),u(R,{supported:e(i)},{unsupported:h(()=>[t("div",Q,[t("div",X,[t("div",Z,[t("div",j,[t("p",null,[s[0]||(s[0]=o(" The minimum version of ServiceControl required to enable configuring tracking of endpoints is ",-1)),t("span",null,V(e(B)),1),s[1]||(s[1]=o(". ",-1))]),s[2]||(s[2]=t("div",null,[t("a",{class:"btn btn-default btn-primary",href:"https://particular.net/downloads",target:"_blank"},"Update ServiceControl to latest version")],-1))])])])])]),default:h(()=>[A(c.$slots,"default",{},void 0,!0)]),_:3},8,["supported"]))}}),J=w(G,[["__scopeId","data-v-20766df1"]]),M={class:"row filters"},tt={class:"col-sm-12"},et={class:"buttonsContainer"},st=["disabled"],nt=["disabled"],at={class:"row"},ot={name:"endpoint_configuration","aria-label":"Endpoint Configuration"},it={class:"row"},lt={class:"col-9 no-side-padding"},rt={key:1,class:"row no-side-padding"},dt={class:"col-3 instructions"},ut={class:"defaultSetting"},ct={class:"switch"},pt=E({__name:"HeartbeatConfiguration",setup(T){const{store:i}=O(),{sortedEndpoints:c,filteredEndpoints:s,defaultTrackingInstancesValue:_}=W(i),p=k(!1),l=k("track");function b(r){l.value=r,p.value=!0}function $(){p.value=!1}async function I(){p.value=!1;try{await i.updateEndpointSettings(s.value.filter(r=>l.value==="track"&&!r.track_instances||l.value==="do not track"&&r.track_instances)),g(m.SUCCESS,`All endpoints set to '${l.value}'`,"",!1,{timeout:1e3})}catch{g(m.ERROR,"Save failed","",!1,{timeout:3e3})}}async function D(){try{await i.updateEndpointSettings([{name:"",track_instances:_.value}]),g(m.SUCCESS,"Default setting updated","",!1,{timeout:3e3})}catch{g(m.ERROR,"Failed to update default setting","",!1,{timeout:3e3})}}return(r,n)=>(a(),u(J,null,{default:h(()=>[(a(),u(H,{to:"#modalDisplay"},[p.value?(a(),u(z,{key:0,heading:"Proceed with bulk operation",body:`Are you sure you want to set ${e(s).length} endpoint(s) to be '${l.value}'?`,onCancel:$,onConfirm:I},null,8,["body"])):U("",!0)])),t("div",M,[t("div",tt,[t("span",et,[t("button",{type:"button",class:"btn btn-default btn-sm",disabled:e(s).length===0,onClick:n[0]||(n[0]=x=>b("track"))},[d(S,{icon:e(F),class:y(["icon",{"text-black":e(s).length>0}])},null,8,["icon","class"]),n[2]||(n[2]=o(" Track Instances on All Endpoints ",-1))],8,st),t("button",{type:"button",class:"btn btn-default btn-sm",disabled:e(s).length===0,onClick:n[1]||(n[1]=x=>b("do not track"))},[d(S,{icon:e(P),class:y(["icon",{"text-black":e(s).length>0}])},null,8,["icon","class"]),n[3]||(n[3]=o(" Do Not Track Instances on All Endpoints ",-1))],8,nt)])])]),t("div",at,[d(q,{displayed:e(s).length,total:e(c).length},null,8,["displayed","total"])]),t("section",ot,[t("div",it,[t("div",lt,[e(c).length===0?(a(),u(K,{key:0,message:"Nothing to configure"})):(a(),v("div",rt,[d(Y,{data:e(s),columns:[e(f).Name,e(f).InstancesTotal,e(f).LastHeartbeat,e(f).TrackToggle]},null,8,["data","columns"])]))]),t("div",dt,[t("div",ut,[n[4]||(n[4]=t("label",null,"Track Instances by default on new endpoints",-1)),t("div",ct,[d(L,{id:"defaultTIV",onToggle:D,value:e(_)},null,8,["value"])])]),t("p",null,[e(_)?(a(),v(C,{key:0},[o("If most of your endpoints are auto-scaled, consider changing this setting.")],64)):(a(),v(C,{key:1},[o("If most of your endpoint are hosted in physical infrastructure, consider changing this setting.")],64))]),n[5]||(n[5]=t("p",null,[t("code",null,"Track Instances"),o(" is the best setting for endpoints where all instances are hosted in physical infrastructure that is not auto-scaled. Example, physical or virtual servers.")],-1)),n[6]||(n[6]=t("p",null,[t("code",null,"Do Not Track Instances"),o(" is the best setting for endpoints that are hosted in infrastructure with autoscalers. Example, Kubernetes, Azure Container Apps and AWS Elastic Container Service.")],-1))])])])]),_:1}))}}),vt=w(pt,[["__scopeId","data-v-30a3cd88"]]);export{vt as default}; +//# sourceMappingURL=HeartbeatConfiguration-CC5Ux6W_.js.map diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js.map b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js.map new file mode 100644 index 0000000000..629343bfcf --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-CC5Ux6W_.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HeartbeatConfiguration-CC5Ux6W_.js","sources":["../../../../frontend/src/components/heartbeats/EndpointSettingsSupported.vue","../../../../frontend/src/components/heartbeats/HeartbeatConfiguration.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["isEndpointSettingsSupported","useIsEndpointSettingsSupported","_createBlock","ConditionalRender","_unref","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","minimumSCVersionForEndpointSettings","_renderSlot","_ctx","store","useHeartbeatsStoreAutoRefresh","sortedEndpoints","filteredEndpoints","defaultTrackingInstancesValue","storeToRefs","showBulkWarningDialog","ref","dialogWarningOperation","showBulkOperationWarningDialog","operation","cancelWarningDialog","proceedWarningDialog","endpoint","useShowToast","TYPE","toggleDefaultSetting","EndpointSettingsSupported","_Teleport","ConfirmDialog","_cache","$event","_createVNode","FAIcon","faServer","_normalizeClass","faCloud","_hoisted_6","ResultsCount","_hoisted_7","_hoisted_8","_hoisted_9","NoData","_openBlock","_createElementBlock","_hoisted_10","HeartbeatsList","ColumnNames","_hoisted_11","_hoisted_12","_hoisted_13","OnOffSwitch","_Fragment"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-SfJKQ15w.css b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-SfJKQ15w.css new file mode 100644 index 0000000000..45ddaeb79d --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatConfiguration-SfJKQ15w.css @@ -0,0 +1 @@ +.not-supported[data-v-20766df1]{font-size:1rem}.not-supported div[data-v-20766df1]:has(>.message){display:flex;align-items:center;justify-content:center}.not-supported .message[data-v-20766df1]{margin-top:2em;max-width:30em;line-height:1.6em}.not-supported .message h1[data-v-20766df1]{font-size:1.9em}.not-supported .message ul[data-v-20766df1]{padding-left:0;text-align:left;margin-bottom:1.9rem}.not-supported .message .btn[data-v-20766df1]{font-size:1rem}.instructions[data-v-30a3cd88]{padding:10px}.instructions p[data-v-30a3cd88]{color:unset}.defaultSetting[data-v-30a3cd88]{display:flex;flex-wrap:wrap;align-items:center;gap:1em;line-height:1em}.defaultSetting .switch[data-v-30a3cd88]{margin-top:-8px}.instructions>div[data-v-30a3cd88]{margin-bottom:5px}.filters[data-v-30a3cd88]{margin-top:.25em;margin-bottom:.25em}.buttonsContainer[data-v-30a3cd88]{background-color:#f3f3f3;display:flex;gap:.5em;border:#8c8c8c 1px solid;border-radius:3px;padding:.4em}.icon[data-v-30a3cd88]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatsList-B2qXJyQY.css b/src/ServiceControl/wwwroot/assets/HeartbeatsList-B2qXJyQY.css new file mode 100644 index 0000000000..ae4e757250 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatsList-B2qXJyQY.css @@ -0,0 +1 @@ +.lead[data-v-0699db3c],.box p .lead[data-v-0699db3c]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-0699db3c]{cursor:pointer}.lead.endpoint-details-link.righ-side-ellipsis a[data-v-0699db3c]{color:#00729c;margin:0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;border-bottom:1px dotted lightgrey}.lead.endpoint-details-link.righ-side-ellipsis a[data-v-0699db3c]:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.righ-side-ellipsis[data-v-0699db3c]{direction:rtl;text-align:left}.box-header[data-v-0699db3c]{display:flex;gap:.5em;max-width:100%}.endpoint-name>div>div>a[data-v-0699db3c]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name[data-v-0699db3c],.endpoint-name>div[data-v-0699db3c]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-0699db3c]{gap:.25em}.endpoint-name .box-header[data-v-0699db3c]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header[data-v-0699db3c]>*:not(:first-child){margin-left:.25em}.endpoint-count[data-v-0699db3c]{font-weight:700}p[data-v-0699db3c]:not(.lead){margin:0 0 5px}div[role=columnheader][data-v-0699db3c]{display:flex}div[role=cell][data-v-0699db3c]{padding:10px;align-items:center;display:flex;gap:.25em}div[role=cell].centre[data-v-0699db3c],div[role=columnheader].centre[data-v-0699db3c]{justify-content:center}.grid-row[data-v-0699db3c]{display:flex;position:relative;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.hackToPreventSafariFromShowingTooltip[data-v-0699db3c]:after{content:"";display:block}.instances-muted[data-v-0699db3c]{font-weight:700}.icon[data-v-0699db3c]{padding-right:6px} diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js b/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js new file mode 100644 index 0000000000..e25e296939 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js @@ -0,0 +1,2 @@ +import{e as H,V as N,s as R,f as U,l as B,m as r,n as t,q as i,v as d,p as k,t as u,z as e,W as s,D as g,I as f,x as m,K as y,L as D,a2 as _,k as E,y as p,B as b,_ as T,E as M,a0 as $,a1 as O,a3 as q,G as V,P as w,Q as I,U as z}from"./index-tFZp7u44.js";import{a as A,_ as F}from"./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js";import{O as W}from"./OnOffSwitch-CICGC8TS.js";const G={role:"table","aria-label":"endpoint-instances"},K={role:"row","aria-label":"column-headers",class:"row table-head-row",style:{borderTop:0}},Q={role:"rowgroup","aria-label":"endpoints"},Y=["aria-label"],j={key:0,role:"cell","aria-label":"instance-name",class:"col-6 host-name"},J={class:"box-header"},X={style:{overflowWrap:"break-word"}},Z={key:1,role:"cell",class:"col-2"},ee={class:"endpoint-count","aria-label":"instance-count"},ae={key:2,role:"cell","aria-label":"last-heartbeat",class:"col-2 last-heartbeat"},le={key:3,role:"cell","aria-label":"tracked-instances",class:"col-1 centre"},te={key:4,role:"cell","aria-label":"tracked-instances",class:"col-2 centre"},se={class:"switch"},ne={key:5,role:"cell","aria-label":"muted",class:"col-1 centre"},oe={class:"instances-muted","aria-label":"Muted instance count"},ce={class:"instances-muted"},ue=H({__name:"HeartbeatsList",props:{data:{},columns:{}},setup(o){const{store:h}=N(),{sortByInstances:l,itemsPerPage:x}=R(h),S=U();async function C(v){try{await h.updateEndpointSettings([v]),w(I.SUCCESS,"Saved","",!1,{timeout:3e3})}catch{w(I.ERROR,"Save failed","",!1,{timeout:3e3})}}function L(v){return v.alive_count===0?"text-danger":v.track_instances&&v.down_count>0?"text-warning":"text-success"}return(v,n)=>{const P=B("RouterLink");return t(),r("section",G,[i("div",K,[o.columns.includes(e(s).Name)?(t(),k(f,{key:0,name:e(s).Name,label:"Name",class:"col-6",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[0]||(n[0]=c=>g(l)?l.value=c:null),"default-ascending":""},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).InstancesDown)?(t(),k(f,{key:1,name:e(s).InstancesDown,label:"Instances Down",class:"col-2",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[1]||(n[1]=c=>g(l)?l.value=c:null),"default-ascending":""},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).InstancesTotal)?(t(),k(f,{key:2,name:e(s).InstancesTotal,label:"Instances",class:"col-2",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[2]||(n[2]=c=>g(l)?l.value=c:null),"default-ascending":""},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).LastHeartbeat)?(t(),k(f,{key:3,name:e(s).LastHeartbeat,label:"Last Heartbeat",class:"col-2",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[3]||(n[3]=c=>g(l)?l.value=c:null)},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).Tracked)?(t(),k(f,{key:4,name:e(s).Tracked,label:"Track Instances",class:"col-1 centre",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[4]||(n[4]=c=>g(l)?l.value=c:null)},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).TrackToggle)?(t(),k(f,{key:5,name:e(s).TrackToggle,label:"Track Instances",class:"col-2 centre",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[5]||(n[5]=c=>g(l)?l.value=c:null)},null,8,["name","modelValue"])):u("",!0),o.columns.includes(e(s).Muted)?(t(),k(f,{key:6,name:e(s).Muted,label:"Instances Muted",class:"col-1 centre",sortable:"",modelValue:e(l),"onUpdate:modelValue":n[6]||(n[6]=c=>g(l)?l.value=c:null)},null,8,["name","modelValue"])):u("",!0)]),d(A,{data:o.data,"show-items-per-page":!0,"items-per-page":e(x),onItemsPerPageChanged:e(h).setItemsPerPage},{data:m(({pageData:c})=>[i("div",Q,[(t(!0),r(y,null,D(c,a=>(t(),r("div",{role:"row","aria-label":a.name,class:"row grid-row",key:a.name},[o.columns.includes(e(s).Name)?(t(),r("div",j,[i("div",J,[d(e(_),{"aria-label":a.name,delay:[700,0],class:"no-side-padding lead righ-side-ellipsis endpoint-details-link"},{content:m(()=>[i("p",X,b(a.name),1)]),default:m(()=>[d(P,{class:"hackToPreventSafariFromShowingTooltip","aria-label":"details-link",to:{path:e(E).heartbeats.instances.link(a.name),query:{back:e(S).path}}},{default:m(()=>[p(b(a.name),1)]),_:2},1032,["to"])]),_:2},1032,["aria-label"])])])):u("",!0),o.columns.includes(e(s).InstancesTotal)||o.columns.includes(e(s).InstancesDown)?(t(),r("div",Z,[d(e(_),{delay:[300,0]},{content:m(()=>[a.track_instances?(t(),r(y,{key:0},[n[7]||(n[7]=i("p",null,"Tracking all instances",-1)),i("p",null,b(a.alive_count)+" alive",1),i("p",null,b(a.down_count)+" no heartbeat",1)],64)):(t(),r(y,{key:1},[n[8]||(n[8]=i("p",null,"Not tracking instances",-1)),i("p",null,b(a.alive_count)+" alive",1)],64))]),default:m(()=>[d(T,{icon:a.track_instances?e($):e(O),class:M(["icon",L(a)])},null,8,["icon","class"]),i("span",ee,b(e(h).instanceDisplayText(a)),1)]),_:2},1024)])):u("",!0),o.columns.includes(e(s).LastHeartbeat)?(t(),r("div",ae,[d(F,{date:a.heartbeat_information?.last_report_at,"tooltip-target":"endpoint"},null,8,["date"])])):u("",!0),o.columns.includes(e(s).Tracked)?(t(),r("div",le,[a.track_instances?(t(),k(e(_),{key:0,id:"tracked-instance-desc",content:"Instances are being tracked",delay:[1e3,0]},{default:m(()=>[d(T,{icon:e(q),class:"text-success","aria-title":"Instances are being tracked"},null,8,["icon"])]),_:1})):u("",!0)])):u("",!0),o.columns.includes(e(s).TrackToggle)?(t(),r("div",te,[i("div",se,[d(W,{id:a.name,onToggle:re=>C(a),value:a.track_instances},null,8,["id","onToggle","value"])])])):u("",!0),o.columns.includes(e(s).Muted)?(t(),r("div",ne,[a.muted_count===a.alive_count+a.down_count?(t(),r(y,{key:0},[d(e(_),{content:"All instances have alerts muted",delay:[300,0]},{default:m(()=>[d(T,{icon:e(V),class:"text-danger"},null,8,["icon"])]),_:1}),i("span",oe,b(a.muted_count),1)],64)):a.muted_count>0?(t(),r(y,{key:1},[d(e(_),{content:`${a.muted_count} instance(s) have alerts muted`,delay:[300,0]},{default:m(()=>[d(T,{icon:e(V),class:"text-warning"},null,8,["icon"])]),_:1},8,["content"]),i("span",ce,b(a.muted_count),1)],64)):u("",!0)])):u("",!0)],8,Y))),128))])]),_:1},8,["data","items-per-page","onItemsPerPageChanged"])])}}}),ke=z(ue,[["__scopeId","data-v-0699db3c"]]);export{ke as H}; +//# sourceMappingURL=HeartbeatsList-BQfOAc76.js.map diff --git a/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js.map b/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js.map new file mode 100644 index 0000000000..f87e98c8e1 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/HeartbeatsList-BQfOAc76.js.map @@ -0,0 +1 @@ +{"version":3,"file":"HeartbeatsList-BQfOAc76.js","sources":["../../../../frontend/src/components/heartbeats/HeartbeatsList.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["store","useHeartbeatsStoreAutoRefresh","sortByInstances","itemsPerPage","storeToRefs","route","useRoute","changeEndpointSettings","endpoint","useShowToast","TYPE","endpointHealth","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","__props","_unref","ColumnNames","_createBlock","ColumnHeader","$event","_createVNode","DataView","_withCtx","pageData","_hoisted_3","_Fragment","_renderList","_hoisted_5","_hoisted_6","Tippy","_hoisted_7","_toDisplayString","_component_RouterLink","routeLinks","_createTextVNode","_hoisted_8","_cache","FAIcon","faServer","faCloud","_normalizeClass","_hoisted_9","_hoisted_10","LastHeartbeat","_hoisted_11","faCheck","_hoisted_12","_hoisted_13","OnOffSwitch","_hoisted_14","faBellSlash","_hoisted_15","_hoisted_16"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js b/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js new file mode 100644 index 0000000000..190594f8b8 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js @@ -0,0 +1,2 @@ +import{e as v,r as d,c as w,w as k,m as r,n as o,K as b,Z as C,q as n,p as m,t as g,a4 as B,a5 as N,v as p,a6 as x,z as T,a2 as D,x as P,B as c,y as f}from"./index-tFZp7u44.js";const $={class:"row"},L=v({__name:"DataView",props:{data:{},itemsPerPageOptions:{default:()=>[20,35,50,75]},itemsPerPage:{default:50},showPagination:{type:Boolean,default:!0},showItemsPerPage:{type:Boolean,default:!1}},emits:["itemsPerPageChanged"],setup(e,{emit:u}){const t=e,l=d(1),a=d(t.itemsPerPage),h=w(()=>t.data.slice((l.value-1)*a.value,Math.min(l.value*a.value,t.data.length))),y=u;return k(a,()=>y("itemsPerPageChanged",a.value)),(V,s)=>(o(),r(b,null,[C(V.$slots,"data",{pageData:h.value}),n("div",$,[e.showItemsPerPage?(o(),m(B,{key:0,modelValue:a.value,"onUpdate:modelValue":s[0]||(s[0]=i=>a.value=i),options:e.itemsPerPageOptions},null,8,["modelValue","options"])):g("",!0),e.showPagination?(o(),m(N,{key:1,modelValue:l.value,"onUpdate:modelValue":s[1]||(s[1]=i=>l.value=i),totalCount:e.data.length,itemsPerPage:a.value},null,8,["modelValue","totalCount","itemsPerPage"])):g("",!0)])],64))}}),H={key:0},I={key:1},O=v({__name:"LastHeartbeat",props:{date:{},tooltipTarget:{}},setup(e){return(u,t)=>e.date?(o(),r("p",H,[p(x,{"date-utc":e.date,"default-text-on-failure":"unknown","title-value":"Last Heartbeat"},null,8,["date-utc"])])):(o(),r("p",I,[p(T(D),{delay:[1e3,300],interactive:!0},{content:P(()=>[n("p",null,"No heartbeat data received for this "+c(e.tooltipTarget)+".",1),n("p",null,[t[0]||(t[0]=f("Have you installed and configured the ",-1)),t[1]||(t[1]=n("a",{target:"_blank",href:"https://docs.particular.net/monitoring/heartbeats/install-plugin"},"heartbeats plugin",-1)),f(" for this "+c(e.tooltipTarget)+"?",1)])]),default:P(()=>[t[2]||(t[2]=n("span",null,"No data available",-1))]),_:1})]))}});export{O as _,L as a}; +//# sourceMappingURL=LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js.map diff --git a/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js.map b/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js.map new file mode 100644 index 0000000000..d09046d069 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js.map @@ -0,0 +1 @@ +{"version":3,"file":"LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js","sources":["../../../../frontend/src/components/DataView.vue","../../../../frontend/src/components/heartbeats/LastHeartbeat.vue"],"sourcesContent":["\n\n\n","\n\n\n"],"names":["props","__props","pageNumber","ref","itemsPerPage","pageData","computed","emit","__emit","watch","_renderSlot","_ctx","_createElementVNode","_hoisted_1","_createBlock","ItemsPerPage","$event","PaginationStrip","_createElementBlock","_createVNode","TimeSince","_hoisted_2","_unref","Tippy","_toDisplayString","_cache"],"mappings":"4bAKA,MAAMA,EAAQC,EAWRC,EAAaC,EAAI,CAAC,EAClBC,EAAeD,EAAIH,EAAM,YAAY,EACrCK,EAAWC,EAAS,IAAMN,EAAM,KAAK,OAAOE,EAAW,MAAQ,GAAKE,EAAa,MAAO,KAAK,IAAIF,EAAW,MAAQE,EAAa,MAAOJ,EAAM,KAAK,MAAM,CAAC,CAAC,EAE3JO,EAAOC,EAEb,OAAAC,EAAML,EAAc,IAAMG,EAAK,sBAAuBH,EAAa,KAAK,CAAC,wBAIvEM,EAAyCC,EAAA,OAAA,OAAA,CAAtB,SAAUN,EAAA,MAAQ,EACrCO,EAGM,MAHNC,EAGM,CAFgBZ,EAAA,sBAApBa,EAA8FC,EAAA,kBAA/CX,EAAA,2CAAAA,EAAY,MAAAY,GAAG,QAASf,EAAA,mBAAA,6CAChDA,EAAA,oBAAvBa,EAAqHG,EAAA,kBAArEf,EAAA,2CAAAA,EAAU,MAAAc,GAAG,WAAYf,EAAA,KAAK,OAAS,aAAcG,EAAA,KAAA,iLCrB9FH,EAAA,UAATiB,EAAiH,IAAAL,EAAA,CAAlGM,EAA8FC,EAAA,CAAjF,WAAUnB,EAAA,KAAM,0BAAwB,UAAU,cAAY,gBAAA,+BAC1FiB,EAQI,IAAAG,EAAA,CAPFF,EAMQG,EAAAC,CAAA,EAAA,CANA,MAAO,CAAA,IAAA,GAAA,EAAc,YAAa,EAAA,GAC7B,UACT,IAA+D,CAA/DX,EAA+D,IAAA,KAA5D,uCAAoCY,EAAGvB,EAAA,aAAa,EAAG,IAAC,CAAA,EAC3DW,EAA2L,IAAA,KAAA,eAAxL,yCAAsC,EAAA,eAAAA,EAAgH,IAAA,CAA7G,OAAO,SAAS,KAAK,kEAAA,EAAmE,oBAAiB,EAAA,KAAI,aAAUY,EAAGvB,EAAA,aAAa,EAAG,IAAC,CAAA,CAAA,eAEzL,IAA8B,CAA9BwB,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAb,EAA8B,YAAxB,oBAAiB,EAAA,EAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js b/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js new file mode 100644 index 0000000000..537fe3a7a3 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js @@ -0,0 +1,3 @@ +import{e as d,r as p,b$ as m,c4 as v,bW as f,o as h,m as k,n as b,q as s,y as r,K as w,P as g,Q as S}from"./index-tFZp7u44.js";const y={class:"row"},C={class:"col-6"},T=["value"],l=` +`,x=d({__name:"MasksView",setup(_){const a=p(""),n=m(),i=v(),o=f();h(async()=>{if(n.environment.sc_version===""&&await n.refresh(),!i.value)return;const t=await o.getMasks();a.value=t.join(l)});function u(t){a.value=t.target.value}async function c(){const t=a.value.split(l).filter(e=>e.length>0);await o.updateMasks(t),g(S.SUCCESS,"Masks Saved","")}return(t,e)=>(b(),k(w,null,[e[3]||(e[3]=s("div",{class:"row"},[s("div",{class:"col-6"},[s("div",null,[s("p",null,[r(" The report that is generated will contain the names of endpoints/queues."),s("br"),r(" If the names themselves contain confidential or proprietary information, certain strings can be masked in the report file. ")])])])],-1)),s("div",y,[s("div",C,[e[0]||(e[0]=s("label",{class:"form-label"},"List of words to mask",-1)),s("textarea",{class:"form-control","aria-label":"List of words to mask",rows:"3",value:a.value,onInput:u},null,40,T),e[1]||(e[1]=s("div",{class:"form-text"},"One word per line.",-1))])]),s("div",{class:"row"},[s("div",{class:"col-6"},[e[2]||(e[2]=s("br",null,null,-1)),s("button",{class:"btn btn-primary",type:"button",onClick:c,"aria-label":"Save"},"Save")])])],64))}});export{x as default}; +//# sourceMappingURL=MasksView-B1NFdsuZ.js.map diff --git a/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js.map b/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js.map new file mode 100644 index 0000000000..9448ad8491 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MasksView-B1NFdsuZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MasksView-B1NFdsuZ.js","sources":["../../../../frontend/src/views/throughputreport/setup/MasksView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["separator","masks","ref","environmentStore","useEnvironmentAndVersionsStore","isThroughputSupported","useIsThroughputSupported","throughputClient","createThroughputClient","onMounted","maskArray","masksChanged","event","updateMasks","values","value","useShowToast","TYPE","_createElementVNode","_hoisted_1","_hoisted_2","_cache"],"mappings":"mLASMA,EAAY;AAAA,mCADlB,MAAMC,EAAQC,EAAY,EAAE,EAGtBC,EAAmBC,EAAA,EACnBC,EAAwBC,EAAA,EAExBC,EAAmBC,EAAA,EAEzBC,EAAU,SAAY,CAGpB,GAFIN,EAAiB,YAAY,aAAe,IAAI,MAAMA,EAAiB,QAAA,EAEvE,CAACE,EAAsB,MAAO,OAClC,MAAMK,EAAY,MAAMH,EAAiB,SAAA,EACzCN,EAAM,MAAQS,EAAU,KAAKV,CAAS,CACxC,CAAC,EAED,SAASW,EAAaC,EAAc,CAClCX,EAAM,MAASW,EAAM,OAA4B,KACnD,CAEA,eAAeC,GAAc,CAC3B,MAAMC,EAASb,EAAM,MAAM,MAAMD,CAAS,EAAE,OAAQe,GAAUA,EAAM,OAAS,CAAC,EAE9E,MAAMR,EAAiB,YAAYO,CAAM,EAEzCE,EAAaC,EAAK,QAAS,cAAe,EAAE,CAC9C,yCAIEC,EASM,MAAA,CATD,MAAM,OAAK,CACdA,EAOM,MAAA,CAPD,MAAM,SAAO,CAChBA,EAKM,MAAA,KAAA,CAJJA,EAGI,IAAA,KAAA,GAHD,2EACuE,EAAAA,EAAM,IAAA,IAAA,8HAEhF,CAAA,aAINA,EAMM,MANNC,EAMM,CALJD,EAIM,MAJNE,EAIM,CAHJC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAH,EAAuD,QAAA,CAAhD,MAAM,YAAA,EAAa,wBAAqB,EAAA,GAC/CA,EAA2H,WAAA,CAAjH,MAAM,eAAe,aAAW,wBAAwB,KAAK,IAAK,MAAOjB,EAAA,MAAQ,QAAOU,CAAA,aAClGU,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAH,EAA+C,MAAA,CAA1C,MAAM,aAAY,qBAAkB,EAAA,EAAA,KAG7CA,EAKM,MAAA,CALD,MAAM,OAAK,CACdA,EAGM,MAAA,CAHD,MAAM,SAAO,aAChBA,EAAM,KAAA,KAAA,KAAA,EAAA,GACNA,EAAkG,SAAA,CAA1F,MAAM,kBAAkB,KAAK,SAAU,QAAOL,EAAa,aAAW,MAAA,EAAO,MAAI,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js b/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js new file mode 100644 index 0000000000..e7fbdab335 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js @@ -0,0 +1,2 @@ +import{e as _,aE as C,ao as p,aI as w,a3 as x,m as a,n,E as d,z as o,v as h,t as M,_ as k,B as l,U as v,aD as y,s as b,q as s,y as T,K as m,L as f,b_ as I}from"./index-tFZp7u44.js";const S={key:0,class:"status-message"},z=_({__name:"StatusIcon",props:{status:{},message:{default:""},icon:{},size:{default:"1x"},showMessage:{type:Boolean,default:!0},customClass:{default:""}},setup(r){const i=r,u={success:{icon:x,class:"text-success",defaultMessage:"Success"},error:{icon:w,class:"text-danger",defaultMessage:"Error"},warning:{icon:p,class:"text-warning",defaultMessage:"Warning"},info:{icon:C,class:"text-info",defaultMessage:"Info"}}[i.status],g=i.icon||u.icon,t=i.message||u.defaultMessage,e=i.customClass||u.class;return(W,j)=>(n(),a("span",{class:d(["status-icon",o(e)])},[h(k,{icon:o(g),size:r.size,title:r.showMessage?o(t):void 0},null,8,["icon","size","title"]),r.showMessage&&r.message?(n(),a("span",S,l(o(t)),1)):M("",!0)],2))}}),L=v(z,[["__scopeId","data-v-72329086"]]),N={key:0,class:"box"},B={class:"row margin-bottom-10"},E={class:"version-format"},V={class:"row margin-bottom-10"},$={class:"queues-container"},D={class:"row"},q={class:"logs-container"},F={key:0},K={class:"col-2"},R={key:1,class:"box"},U=_({__name:"MassTransitConnector",setup(r){const i=y(),{configuration:c}=b(i),{formatDate:u}=I();return(g,t)=>o(c)?.mass_transit_connector!==void 0?(n(),a("div",N,[s("div",B,[s("h4",null,[t[0]||(t[0]=T(" Connector Version: ",-1)),s("span",E,l(o(c).mass_transit_connector.version),1)])]),s("div",V,[t[1]||(t[1]=s("h4",null,"List of error queues configured in the connector.",-1)),s("div",$,[(n(!0),a(m,null,f(o(c).mass_transit_connector.error_queues,e=>(n(),a("div",{class:"margin-gap hover-highlight",key:e.name},[h(L,{status:e.ingesting?"success":"error",message:e.ingesting?"":"Not ingesting from this queue. Check the logs below for more information.","show-message":!1},null,8,["status","message"]),s("span",null,l(e.name),1)]))),128))])]),s("div",D,[t[2]||(t[2]=s("h4",null,"The entries below are the most recent warning and error-level events recorded on the ServiceControl Connector.",-1)),s("div",q,[o(c).mass_transit_connector.logs.length===0?(n(),a("div",F,"No warning or error logs")):(n(!0),a(m,{key:1},f([...o(c).mass_transit_connector.logs].reverse(),e=>(n(),a("div",{class:"row margin-gap hover-highlight",key:e.date},[s("div",K,l(o(u)(e.date)),1),s("div",{class:d(["col-1",`${e.level.toLowerCase()}-color`])},l(e.level),3),s("div",{class:d(["col-9",`${e.level.toLowerCase()}-color`])},[s("pre",null,l(e.message),1)],2)]))),128))])])])):(n(),a("div",R,[...t[3]||(t[3]=[s("p",null,"MassTransit Connector for ServiceControl is not configured.",-1),s("p",null,[s("a",{target:"_blank",href:"https://particular.net/learn-more-about-masstransit-connector"},"Learn more about the MassTransit Connector.")],-1)])]))}}),G=v(U,[["__scopeId","data-v-71ef1c74"]]);export{G as default}; +//# sourceMappingURL=MassTransitConnector-DTmCIuZW.js.map diff --git a/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js.map b/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js.map new file mode 100644 index 0000000000..66697f99f9 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MassTransitConnector-DTmCIuZW.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MassTransitConnector-DTmCIuZW.js","sources":["../../../../frontend/src/components/StatusIcon.vue","../../../../frontend/src/components/configuration/MassTransitConnector.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["props","__props","currentConfig","faCheck","faTimes","faExclamationTriangle","faInfoCircle","displayIcon","displayMessage","cssClass","_createElementBlock","_unref","_createVNode","FAIcon","_hoisted_1","_toDisplayString","configurationStore","useConfigurationStore","configuration","storeToRefs","formatDate","useDateFormatter","_openBlock","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_cache","_hoisted_5","_Fragment","queue","StatusIcon","_hoisted_6","_hoisted_7","_renderList","log","_hoisted_9","_hoisted_10"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MassTransitConnector-MVnKaG5d.css b/src/ServiceControl/wwwroot/assets/MassTransitConnector-MVnKaG5d.css new file mode 100644 index 0000000000..6c4af223eb --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MassTransitConnector-MVnKaG5d.css @@ -0,0 +1 @@ +.status-icon[data-v-72329086]{display:inline-flex;align-items:center;gap:.25rem}.text-success[data-v-72329086]{color:#28a745}.text-danger[data-v-72329086]{color:#dc3545}.text-warning[data-v-72329086]{color:#ffc107}.text-info[data-v-72329086],.info-color[data-v-72329086]{color:#17a2b8}.error-color[data-v-72329086]{color:#dc3545}.status-message[data-v-72329086]{margin-left:.25rem}.hover-highlight[data-v-71ef1c74]:hover{background-color:#ededed}.margin-gap[data-v-71ef1c74]{margin-bottom:3px}.queues-container[data-v-71ef1c74]{padding:.75rem}.queues-container>div[data-v-71ef1c74]{display:flex;align-items:center;gap:.5em}.queues-container>div div[data-v-71ef1c74]{overflow-wrap:anywhere}.logs-container[data-v-71ef1c74]{padding:.75rem}.version-format[data-v-71ef1c74]{font-weight:700}.box>.row[data-v-71ef1c74]:not(:last-child){padding-bottom:.5rem;border-bottom:1px solid #ccc;margin-bottom:.5rem}.logs-container pre[data-v-71ef1c74]{all:revert;margin:0;font-size:.9rem;overflow-wrap:break-word;text-wrap:auto}.warning-color[data-v-71ef1c74]{color:var(--bs-warning)}.error-color[data-v-71ef1c74]{color:var(--bs-danger)}.info-color[data-v-71ef1c74]{color:var(--bs-success)} diff --git a/src/ServiceControl/wwwroot/assets/MessageList-BVa8WCK7.css b/src/ServiceControl/wwwroot/assets/MessageList-BVa8WCK7.css new file mode 100644 index 0000000000..3168ab44f8 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageList-BVa8WCK7.css @@ -0,0 +1 @@ +.lead[data-v-e5cb2875],.box p .lead[data-v-e5cb2875]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-e5cb2875]{cursor:pointer}.stacktrace-preview[data-v-e5cb2875]{height:38px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}pre[data-v-e5cb2875]{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.failed-message[data-v-e5cb2875]:hover{border:1px solid var(--sp-blue);background-color:#edf6f7}.repeat-item[data-v-e5cb2875]{padding:0!important}.check[data-v-e5cb2875],div.failed-message-data[data-v-e5cb2875]{padding-top:15px;padding-left:25px;padding-bottom:0}.pa-endpoint[data-v-e5cb2875]{position:relative;display:inline-block;top:3px;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2013'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(-1,0,0,-1,15,13)'%3e%3cg%20id='endpoint'%20transform='matrix(-0.777778,2.50152e-16,-2.50152e-16,-0.777778,332.889,66.8889)'%3e%3cpath%20d='M424.129,84.652L424.11,80.864L417.632,80.88L417.728,73.087L424.079,73.103L424.091,69.328L410,69.27L409.945,84.711L424.129,84.652Z'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3cg%20transform='matrix(1,-8.74748e-18,-1.16633e-17,1.28571,1.68478e-13,-22)'%3e%3crect%20x='419'%20y='75'%20width='9'%20height='4'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.checkbox[data-v-e5cb2875]{margin-top:1px;margin-left:1px;width:16px;height:16px;border:1px solid var(--reduced-emphasis);background-color:#fff}.checkbox[data-v-e5cb2875]:hover,.check-hover[data-v-e5cb2875]{margin-top:0;margin-left:0;width:18px;height:18px;border:2px solid var(--sp-blue)}label:after .checkbox[data-v-e5cb2875]{opacity:0;content:"";position:absolute;width:11px;height:7px;background:transparent;top:2px;left:2px;border:3px solid #333;border-top:none;border-right:none;transform:rotate(-45deg)}.checkbox input[type=checkbox]:checked+label[data-v-e5cb2875]:after{opacity:1}p.metadata[data-v-e5cb2875]{margin-bottom:6px;position:relative}p.metadata button[data-v-e5cb2875]{position:absolute;right:0;top:0}.failed-message .btn-link[data-v-e5cb2875],.failed-message-group .btn-link[data-v-e5cb2875],.deleted-message-group .btn-link[data-v-e5cb2875]{color:var(--sp-blue);font-size:14px;font-weight:700;padding:0 36px 10px 0;text-decoration:none}.failed-message .metadata>.btn-link[data-v-e5cb2875]{display:none}.failed-message:hover .metadata>.btn-link[data-v-e5cb2875]{display:block}.failed-message .btn-link[data-v-e5cb2875]:hover,.failed-message-group .btn-link[data-v-e5cb2875]:hover,.deleted-message-group .btn-link[data-v-e5cb2875]:hover{color:#23527c;text-decoration:underline}.label-info[data-v-e5cb2875]{background-color:#1b809e}.metadata-label[data-v-e5cb2875]{margin-right:24px;position:relative;top:-1px}.sidebar-label[data-v-e5cb2875],.sidebar-label.label-important[data-v-e5cb2875]{box-shadow:none;color:#fff;display:inline-block;font-size:12px;margin-top:3px;max-width:100%;padding:6px 10px}.label[data-v-e5cb2875]{display:inline;padding:4px .6em .3em;font-size:13px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.failed-message-data[data-v-e5cb2875],.failed-message-group[data-v-e5cb2875],.deleted-message-group[data-v-e5cb2875]{cursor:pointer}.failed-message-data:hover .lead.break[data-v-e5cb2875],.failed-message-group:hover .lead.break[data-v-e5cb2875],.deleted-message-group:hover .lead.break[data-v-e5cb2875]{text-decoration:underline}.pa-redirect-source[data-v-e5cb2875]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(1,0,0,1,-1,-0)'%3e%3cg%20id='redirect-source'%20transform='matrix(-1,0,-0,1,15,0)'%3e%3cg%20transform='matrix(1.5,0,-1.11796e-32,0.69633,2,1.10453)'%3e%3cpath%20d='M1.333,8.466L0,8.466L0,18.519L1.333,15.63L1.333,8.466Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3cg%20transform='matrix(-1,0,0,1,16,0)'%3e%3cpath%20d='M4,6L2,6L5,0L8,6L6,6L6,8.586L11.414,14L8.586,14L4.293,9.707C4.254,9.666%204.254,9.666%204.218,9.623C4.184,9.578%204.152,9.533%204.125,9.484C4.042,9.334%204.005,9.17%204,9L4,6Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-redirect-small[data-v-e5cb2875]{position:relative;top:1px;height:14px;width:14px}.btn.btn-sm[data-v-e5cb2875]{color:var(--sp-blue);font-size:14px;font-weight:700;padding:0 36px 10px 0}.icon[data-v-e5cb2875]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js b/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js new file mode 100644 index 0000000000..e214e472b9 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js @@ -0,0 +1,2 @@ +import{e as U,i as V,aL as z,aM as K,m as a,n as s,q as l,p as J,t as n,N as O,K as R,L as Q,a7 as C,aN as j,B as _,v as r,y as d,z as o,aO as g,_ as u,J as m,aP as G,ac as w,a6 as k,an as H,aQ as W,aC as v,ai as X,k as Y,U as Z}from"./index-tFZp7u44.js";const ee={class:"row"},te={class:"col-sm-12"},se=["for","onClick"],ae=["disabled","onUpdate:modelValue","value","id"],le={class:"col-11 failed-message-data"},ne={class:"row"},oe={class:"col-12"},ie={class:"row box-header"},re=["onClick"],de={class:"lead break"},ce={class:"metadata"},ue={key:0,title:"Message was submitted for retrying",class:"label sidebar-label label-info metadata-label"},pe={key:1,title:"Message is being retried",class:"label sidebar-label label-info metadata-label metadata in-progress"},be={key:2,title:"Message is being retried",class:"label sidebar-label label-info metadata-label metadata in-progress"},_e={key:3,class:"label sidebar-label label-info metadata-label"},fe={key:4,title:"Message is being deleted",class:"label sidebar-label label-info metadata-label metadata in-progress"},ye={key:5,title:"Message is being deleted",class:"label sidebar-label label-info metadata-label metadata in-progress"},me=["title"],he={key:7,class:"label sidebar-label label-warning metadata-label metadata in-progress"},ge={key:8,title:"Message was edited",class:"label sidebar-label label-info metadata-label"},ke={class:"metadata"},ve={class:"metadata"},Me={class:"metadata"},Re={key:9,class:"metadata"},Ce={key:10,class:"metadata"},we={key:11,class:"metadata danger"},xe={key:12,class:"metadata danger"},Se=["onClick"],Ee={class:"stacktrace-preview"},Ie=U({__name:"MessageList",props:{messages:{},showRequestRetry:{type:Boolean,default:!1}},emits:["retryRequested"],setup(x,{expose:S,emit:E}){let b;const M=V(),I=E,c=x;function P(){return c.messages.filter(i=>i.selected)}function T(){c.messages.forEach(i=>i.selected=!0)}function A(){c.messages.forEach(i=>i.selected=!1)}function D(){c.messages.forEach(i=>i.resolved=!0)}function L(){return c.messages.find(i=>i.selected)}function q(){return c.messages.length>0}function F(){return c.messages.length}function N(i,t){if(i.shiftKey&&b!=null){const h=(t{const h=K("tippy");return s(),a(R,null,[l("div",ee,[l("div",te,[c.messages.length===0?(s(),J(O,{key:0,title:"message",message:"There are currently no messages"})):n("",!0)])]),(s(!0),a(R,null,Q(c.messages,(e,f)=>(s(),a("div",{class:"row box repeat-item failed-message",key:e.id},[l("label",{class:"check col-auto",for:`checkbox${e.id}`,onClick:p=>N(p,f)},[C(l("input",{type:"checkbox",disabled:e.retryInProgress||e.submittedForRetrial||e.deleteInProgress||e.restoreInProgress,class:"checkbox","onUpdate:modelValue":p=>e.selected=p,value:e.id,id:`checkbox${e.id}`},null,8,ae),[[j,e.selected]])],8,se),l("div",le,[l("div",ne,[l("div",oe,[l("div",ie,[l("div",{class:"col-12 no-side-padding",onClick:p=>$(e.id)},[l("p",de,_(e.message_type||"Message Type Unknown - missing metadata EnclosedMessageTypes"),1),l("p",ce,[e.submittedForRetrial?(s(),a("span",ue,"To retry")):n("",!0),e.retryInProgress?(s(),a("span",pe,[r(u,{icon:o(g)},null,8,["icon"]),t[0]||(t[0]=d(" Retry in progress",-1))])):n("",!0),e.retried?(s(),a("span",be,[r(u,{icon:o(g)},null,8,["icon"]),t[1]||(t[1]=d(" Retried",-1))])):n("",!0),e.resolved?(s(),a("span",_e,"Resolved")):n("",!0),e.deleteInProgress?(s(),a("span",fe,[r(u,{icon:o(m),class:"icon"},null,8,["icon"]),t[2]||(t[2]=d(" Scheduled for deletion",-1))])):n("",!0),e.archived?(s(),a("span",ye,[r(u,{icon:o(m),class:"icon"},null,8,["icon"]),t[3]||(t[3]=d(" Deleted",-1))])):n("",!0),e.number_of_processing_attempts>1?(s(),a("span",{key:6,title:`This message has already failed ${e.number_of_processing_attempts} times`,class:"label sidebar-label label-important metadata-label"},_(e.number_of_processing_attempts===10?"9+":e.number_of_processing_attempts-1)+" Retry Failures",9,me)):n("",!0),e.restoreInProgress?C((s(),a("span",he,[r(u,{icon:o(G),class:"icon"},null,8,["icon"]),t[4]||(t[4]=d(" Restore in progress",-1))])),[[h,"Message is being restored"]]):n("",!0),e.edited?(s(),a("span",ge,"Edited")):n("",!0),l("span",ke,[r(u,{icon:o(w),class:"icon"},null,8,["icon"]),t[5]||(t[5]=d(" Failed: ",-1)),r(k,{dateUtc:e.time_of_failure},null,8,["dateUtc"])]),l("span",ve,[l("i",{class:"fa pa-endpoint",style:H({filter:o(B)})},null,4),d(" Endpoint: "+_(e.receiving_endpoint.name),1)]),l("span",Me,[r(u,{icon:o(W),class:"icon"},null,8,["icon"]),d(" Machine: "+_(e.receiving_endpoint.host),1)]),e.redirect?(s(),a("span",Re,[t[6]||(t[6]=l("i",{class:"fa pa-redirect-source pa-redirect-small"},null,-1)),d(" Redirect: "+_(e.redirect),1)])):n("",!0),e.status===o(v).Archived?(s(),a("span",Ce,[r(u,{icon:o(w),class:"icon"},null,8,["icon"]),t[7]||(t[7]=d(" Deleted: ",-1)),r(k,{"date-utc":e.last_modified},null,8,["date-utc"])])):n("",!0),e.status===o(v).Archived&&e.delete_soon?(s(),a("span",we,[r(u,{icon:o(m),class:"danger"},null,8,["icon"]),t[8]||(t[8]=d(" Scheduled for deletion: immediately",-1))])):n("",!0),e.status===o(v).Archived&&!e.delete_soon?(s(),a("span",xe,[r(u,{icon:o(m),class:"danger"},null,8,["icon"]),t[9]||(t[9]=d(" Scheduled for deletion: ",-1)),r(k,{class:"danger","date-utc":e.deleted_in},null,8,["date-utc"])])):n("",!0),!e.retryInProgress&&c.showRequestRetry?(s(),a("button",{key:13,type:"button",name:"retryMessage",class:"btn btn-link btn-sm",onClick:X(p=>I("retryRequested",e.id),["stop"])},[r(u,{icon:o(g),class:"no-link-underline"},null,8,["icon"]),t[10]||(t[10]=d(" Request retry ",-1))],8,Se)):n("",!0)]),l("pre",Ee,_(e.exception.message),1)],8,re)])])])])]))),128))],64)}}}),Te=Z(Ie,[["__scopeId","data-v-e5cb2875"]]);export{Te as M}; +//# sourceMappingURL=MessageList-Crzvyqel.js.map diff --git a/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js.map b/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js.map new file mode 100644 index 0000000000..a6b657c363 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageList-Crzvyqel.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MessageList-Crzvyqel.js","sources":["../../../../frontend/src/components/failedmessages/MessageList.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["lastLabelClickedIndex","router","useRouter","emit","__emit","props","__props","getSelectedMessages","m","selectAll","deselectAll","resolveAll","isAnythingSelected","isAnythingDisplayed","numberDisplayed","labelClicked","$event","index","start","end","messages","x","selection","navigateToMessage","messageId","routeLinks","__expose","endpointColor","hexToCSSFilter","_createElementVNode","_hoisted_1","_hoisted_2","_createBlock","NoData","_openBlock","_createElementBlock","_Fragment","message","_vModelCheckbox","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_10","_toDisplayString","_hoisted_11","_hoisted_12","_hoisted_13","_createVNode","FAIcon","_unref","faRotateRight","_hoisted_14","_hoisted_15","_hoisted_16","faTrash","_hoisted_17","_hoisted_18","_withDirectives","_hoisted_19","faRecycle","_hoisted_20","_hoisted_21","faClock","TimeSince","_hoisted_22","_createTextVNode","_hoisted_23","faLaptop","_hoisted_24","FailedMessageStatus","_hoisted_25","_hoisted_26","_hoisted_27","_withModifiers","_hoisted_29"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MessageStore-TKRBN2N2.js b/src/ServiceControl/wwwroot/assets/MessageStore-TKRBN2N2.js new file mode 100644 index 0000000000..8019b5f606 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageStore-TKRBN2N2.js @@ -0,0 +1,22 @@ +import{d as en,r as qe,u as tn,aW as to,aD as ro,bw as no,s as Vr,c as so,aC as $t}from"./index-tFZp7u44.js";const ao=en("EditRetryStore",()=>{const i=qe({enabled:!1,locked_headers:[],sensitive_headers:[]}),m=tn();async function u(){const[,o]=await m.fetchTypedFromServiceControl("edit/config");i.value=o}return{config:i,loadConfig:u}});function rn(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}function io(i){throw new Error('Could not dynamically require "'+i+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var wt={exports:{}},oo=wt.exports,$r;function lo(){return $r||($r=1,(function(i,m){(function(u,o){i.exports=o()})(oo,(function(){var u;function o(){return u.apply(null,arguments)}function N(e){u=e}function L(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function f(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function S(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function re(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(S(e,t))return!1;return!0}function R(e){return e===void 0}function p(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function A(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function H(e,t){var r=[],n,s=e.length;for(n=0;n>>0,n;for(n=0;n0)for(r=0;r=0;return(a?r?"+":"":"-")+Math.pow(10,Math.max(0,s)).toString().substr(1)+n}var ve=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Oe=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,St={},Ce={};function w(e,t,r,n){var s=n;typeof n=="string"&&(s=function(){return this[n]()}),e&&(Ce[e]=s),t&&(Ce[t[0]]=function(){return K(s.apply(this,arguments),t[1],t[2])}),r&&(Ce[r]=function(){return this.localeData().ordinal(s.apply(this,arguments),e)})}function an(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function on(e){var t=e.match(ve),r,n;for(r=0,n=t.length;r=0&&Oe.test(e);)e=e.replace(Oe,n),Oe.lastIndex=0,r-=1;return e}var ln={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function un(e){var t=this._longDateFormat[e],r=this._longDateFormat[e.toUpperCase()];return t||!r?t:(this._longDateFormat[e]=r.match(ve).map(function(n){return n==="MMMM"||n==="MM"||n==="DD"||n==="dddd"?n.slice(1):n}).join(""),this._longDateFormat[e])}var dn="Invalid date";function fn(){return this._invalidDate}var cn="%d",hn=/\d{1,2}/;function mn(e){return this._ordinal.replace("%d",e)}var _n={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function yn(e,t,r,n){var s=this._relativeTime[r];return Z(s)?s(e,t,r,n):s.replace(/%d/i,e)}function gn(e,t){var r=this._relativeTime[e>0?"future":"past"];return Z(r)?r(t):r.replace(/%s/i,t)}var Kt={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function oe(e){return typeof e=="string"?Kt[e]||Kt[e.toLowerCase()]:void 0}function vt(e){var t={},r,n;for(n in e)S(e,n)&&(r=oe(n),r&&(t[r]=e[n]));return t}var pn={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function wn(e){var t=[],r;for(r in e)S(e,r)&&t.push({unit:r,priority:pn[r]});return t.sort(function(n,s){return n.priority-s.priority}),t}var er=/\d/,ie=/\d\d/,tr=/\d{3}/,kt=/\d{4}/,Xe=/[+-]?\d{6}/,j=/\d\d?/,rr=/\d\d\d\d?/,nr=/\d\d\d\d\d\d?/,Ke=/\d{1,3}/,Mt=/\d{1,4}/,et=/[+-]?\d{1,6}/,Ne=/\d+/,tt=/[+-]?\d+/,Sn=/Z|[+-]\d\d:?\d\d/gi,rt=/Z|[+-]\d\d(?::?\d\d)?/gi,vn=/[+-]?\d+(\.\d{1,3})?/,Le=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Pe=/^[1-9]\d?/,Dt=/^([1-9]\d|\d)/,nt;nt={};function g(e,t,r){nt[e]=Z(t)?t:function(n,s){return n&&r?r:t}}function kn(e,t){return S(nt,e)?nt[e](t._strict,t._locale):new RegExp(Mn(e))}function Mn(e){return ce(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,r,n,s,a){return r||n||s||a}))}function ce(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function le(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function b(e){var t=+e,r=0;return t!==0&&isFinite(t)&&(r=le(t)),r}var Ot={};function I(e,t){var r,n=t,s;for(typeof e=="string"&&(e=[e]),p(t)&&(n=function(a,l){l[t]=b(a)}),s=e.length,r=0;r68?1900:2e3)};var sr=Ee("FullYear",!0);function xn(){return st(this.year())}function Ee(e,t){return function(r){return r!=null?(ar(this,e,r),o.updateOffset(this,t),this):je(this,e)}}function je(e,t){if(!e.isValid())return NaN;var r=e._d,n=e._isUTC;switch(t){case"Milliseconds":return n?r.getUTCMilliseconds():r.getMilliseconds();case"Seconds":return n?r.getUTCSeconds():r.getSeconds();case"Minutes":return n?r.getUTCMinutes():r.getMinutes();case"Hours":return n?r.getUTCHours():r.getHours();case"Date":return n?r.getUTCDate():r.getDate();case"Day":return n?r.getUTCDay():r.getDay();case"Month":return n?r.getUTCMonth():r.getMonth();case"FullYear":return n?r.getUTCFullYear():r.getFullYear();default:return NaN}}function ar(e,t,r){var n,s,a,l,y;if(!(!e.isValid()||isNaN(r))){switch(n=e._d,s=e._isUTC,t){case"Milliseconds":return void(s?n.setUTCMilliseconds(r):n.setMilliseconds(r));case"Seconds":return void(s?n.setUTCSeconds(r):n.setSeconds(r));case"Minutes":return void(s?n.setUTCMinutes(r):n.setMinutes(r));case"Hours":return void(s?n.setUTCHours(r):n.setHours(r));case"Date":return void(s?n.setUTCDate(r):n.setDate(r));case"FullYear":break;default:return}a=r,l=e.month(),y=e.date(),y=y===29&&l===1&&!st(a)?28:y,s?n.setUTCFullYear(a,l,y):n.setFullYear(a,l,y)}}function bn(e){return e=oe(e),Z(this[e])?this[e]():this}function Tn(e,t){if(typeof e=="object"){e=vt(e);var r=wn(e),n,s=r.length;for(n=0;n=0?(y=new Date(e+400,t,r,n,s,a,l),isFinite(y.getFullYear())&&y.setFullYear(e)):y=new Date(e,t,r,n,s,a,l),y}function Ve(e){var t,r;return e<100&&e>=0?(r=Array.prototype.slice.call(arguments),r[0]=e+400,t=new Date(Date.UTC.apply(null,r)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function at(e,t,r){var n=7+t-r,s=(7+Ve(e,0,n).getUTCDay()-t)%7;return-s+n-1}function fr(e,t,r,n,s){var a=(7+r-n)%7,l=at(e,n,s),y=1+7*(t-1)+a+l,D,C;return y<=0?(D=e-1,C=He(D)+y):y>He(e)?(D=e+1,C=y-He(e)):(D=e,C=y),{year:D,dayOfYear:C}}function $e(e,t,r){var n=at(e.year(),t,r),s=Math.floor((e.dayOfYear()-n-1)/7)+1,a,l;return s<1?(l=e.year()-1,a=s+_e(l,t,r)):s>_e(e.year(),t,r)?(a=s-_e(e.year(),t,r),l=e.year()+1):(l=e.year(),a=s),{week:a,year:l}}function _e(e,t,r){var n=at(e,t,r),s=at(e+1,t,r);return(He(e)-n+s)/7}w("w",["ww",2],"wo","week"),w("W",["WW",2],"Wo","isoWeek"),g("w",j,Pe),g("ww",j,ie),g("W",j,Pe),g("WW",j,ie),Ue(["w","ww","W","WW"],function(e,t,r,n){t[n.substr(0,1)]=b(e)});function jn(e){return $e(e,this._week.dow,this._week.doy).week}var Vn={dow:0,doy:6};function $n(){return this._week.dow}function Gn(){return this._week.doy}function zn(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function Zn(e){var t=$e(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}w("d",0,"do","day"),w("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),w("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),w("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),w("e",0,0,"weekday"),w("E",0,0,"isoWeekday"),g("d",j),g("e",j),g("E",j),g("dd",function(e,t){return t.weekdaysMinRegex(e)}),g("ddd",function(e,t){return t.weekdaysShortRegex(e)}),g("dddd",function(e,t){return t.weekdaysRegex(e)}),Ue(["dd","ddd","dddd"],function(e,t,r,n){var s=r._locale.weekdaysParse(e,n,r._strict);s!=null?t.d=s:_(r).invalidWeekday=e}),Ue(["d","e","E"],function(e,t,r,n){t[n]=b(e)});function qn(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function Bn(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function xt(e,t){return e.slice(t,7).concat(e.slice(0,t))}var Jn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),cr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Qn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Xn=Le,Kn=Le,es=Le;function ts(e,t){var r=L(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?xt(r,this._week.dow):e?r[e.day()]:r}function rs(e){return e===!0?xt(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function ns(e){return e===!0?xt(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function ss(e,t,r){var n,s,a,l=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],n=0;n<7;++n)a=h([2e3,1]).day(n),this._minWeekdaysParse[n]=this.weekdaysMin(a,"").toLocaleLowerCase(),this._shortWeekdaysParse[n]=this.weekdaysShort(a,"").toLocaleLowerCase(),this._weekdaysParse[n]=this.weekdays(a,"").toLocaleLowerCase();return r?t==="dddd"?(s=B.call(this._weekdaysParse,l),s!==-1?s:null):t==="ddd"?(s=B.call(this._shortWeekdaysParse,l),s!==-1?s:null):(s=B.call(this._minWeekdaysParse,l),s!==-1?s:null):t==="dddd"?(s=B.call(this._weekdaysParse,l),s!==-1||(s=B.call(this._shortWeekdaysParse,l),s!==-1)?s:(s=B.call(this._minWeekdaysParse,l),s!==-1?s:null)):t==="ddd"?(s=B.call(this._shortWeekdaysParse,l),s!==-1||(s=B.call(this._weekdaysParse,l),s!==-1)?s:(s=B.call(this._minWeekdaysParse,l),s!==-1?s:null)):(s=B.call(this._minWeekdaysParse,l),s!==-1||(s=B.call(this._weekdaysParse,l),s!==-1)?s:(s=B.call(this._shortWeekdaysParse,l),s!==-1?s:null))}function as(e,t,r){var n,s,a;if(this._weekdaysParseExact)return ss.call(this,e,t,r);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),n=0;n<7;n++){if(s=h([2e3,1]).day(n),r&&!this._fullWeekdaysParse[n]&&(this._fullWeekdaysParse[n]=new RegExp("^"+this.weekdays(s,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[n]=new RegExp("^"+this.weekdaysShort(s,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[n]=new RegExp("^"+this.weekdaysMin(s,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[n]||(a="^"+this.weekdays(s,"")+"|^"+this.weekdaysShort(s,"")+"|^"+this.weekdaysMin(s,""),this._weekdaysParse[n]=new RegExp(a.replace(".",""),"i")),r&&t==="dddd"&&this._fullWeekdaysParse[n].test(e))return n;if(r&&t==="ddd"&&this._shortWeekdaysParse[n].test(e))return n;if(r&&t==="dd"&&this._minWeekdaysParse[n].test(e))return n;if(!r&&this._weekdaysParse[n].test(e))return n}}function is(e){if(!this.isValid())return e!=null?this:NaN;var t=je(this,"Day");return e!=null?(e=qn(e,this.localeData()),this.add(e-t,"d")):t}function os(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function ls(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=Bn(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function us(e){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||bt.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(S(this,"_weekdaysRegex")||(this._weekdaysRegex=Xn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function ds(e){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||bt.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(S(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Kn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function fs(e){return this._weekdaysParseExact?(S(this,"_weekdaysRegex")||bt.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(S(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=es),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function bt(){function e(ne,Se){return Se.length-ne.length}var t=[],r=[],n=[],s=[],a,l,y,D,C;for(a=0;a<7;a++)l=h([2e3,1]).day(a),y=ce(this.weekdaysMin(l,"")),D=ce(this.weekdaysShort(l,"")),C=ce(this.weekdays(l,"")),t.push(y),r.push(D),n.push(C),s.push(y),s.push(D),s.push(C);t.sort(e),r.sort(e),n.sort(e),s.sort(e),this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function Tt(){return this.hours()%12||12}function cs(){return this.hours()||24}w("H",["HH",2],0,"hour"),w("h",["hh",2],0,Tt),w("k",["kk",2],0,cs),w("hmm",0,0,function(){return""+Tt.apply(this)+K(this.minutes(),2)}),w("hmmss",0,0,function(){return""+Tt.apply(this)+K(this.minutes(),2)+K(this.seconds(),2)}),w("Hmm",0,0,function(){return""+this.hours()+K(this.minutes(),2)}),w("Hmmss",0,0,function(){return""+this.hours()+K(this.minutes(),2)+K(this.seconds(),2)});function hr(e,t){w(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}hr("a",!0),hr("A",!1);function mr(e,t){return t._meridiemParse}g("a",mr),g("A",mr),g("H",j,Dt),g("h",j,Pe),g("k",j,Pe),g("HH",j,ie),g("hh",j,ie),g("kk",j,ie),g("hmm",rr),g("hmmss",nr),g("Hmm",rr),g("Hmmss",nr),I(["H","HH"],X),I(["k","kk"],function(e,t,r){var n=b(e);t[X]=n===24?0:n}),I(["a","A"],function(e,t,r){r._isPm=r._locale.isPM(e),r._meridiem=e}),I(["h","hh"],function(e,t,r){t[X]=b(e),_(r).bigHour=!0}),I("hmm",function(e,t,r){var n=e.length-2;t[X]=b(e.substr(0,n)),t[ue]=b(e.substr(n)),_(r).bigHour=!0}),I("hmmss",function(e,t,r){var n=e.length-4,s=e.length-2;t[X]=b(e.substr(0,n)),t[ue]=b(e.substr(n,2)),t[me]=b(e.substr(s)),_(r).bigHour=!0}),I("Hmm",function(e,t,r){var n=e.length-2;t[X]=b(e.substr(0,n)),t[ue]=b(e.substr(n))}),I("Hmmss",function(e,t,r){var n=e.length-4,s=e.length-2;t[X]=b(e.substr(0,n)),t[ue]=b(e.substr(n,2)),t[me]=b(e.substr(s))});function hs(e){return(e+"").toLowerCase().charAt(0)==="p"}var ms=/[ap]\.?m?\.?/i,_s=Ee("Hours",!0);function ys(e,t,r){return e>11?r?"pm":"PM":r?"am":"AM"}var _r={calendar:q,longDateFormat:ln,invalidDate:dn,ordinal:cn,dayOfMonthOrdinalParse:hn,relativeTime:_n,months:Nn,monthsShort:ir,week:Vn,weekdays:Jn,weekdaysMin:Qn,weekdaysShort:cr,meridiemParse:ms},G={},Ge={},ze;function gs(e,t){var r,n=Math.min(e.length,t.length);for(r=0;r0;){if(s=it(a.slice(0,r).join("-")),s)return s;if(n&&n.length>=r&&gs(a,n)>=r-1)break;r--}t++}return ze}function ws(e){return!!(e&&e.match("^[^/\\\\]*$"))}function it(e){var t=null,r;if(G[e]===void 0&&i&&i.exports&&ws(e))try{t=ze._abbr,r=io,r("./locale/"+e),ke(t)}catch{G[e]=null}return G[e]}function ke(e,t){var r;return e&&(R(t)?r=ye(e):r=Ct(e,t),r?ze=r:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),ze._abbr}function Ct(e,t){if(t!==null){var r,n=_r;if(t.abbr=e,G[e]!=null)W("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=G[e]._config;else if(t.parentLocale!=null)if(G[t.parentLocale]!=null)n=G[t.parentLocale]._config;else if(r=it(t.parentLocale),r!=null)n=r._config;else return Ge[t.parentLocale]||(Ge[t.parentLocale]=[]),Ge[t.parentLocale].push({name:e,config:t}),null;return G[e]=new Q(se(n,t)),Ge[e]&&Ge[e].forEach(function(s){Ct(s.name,s.config)}),ke(e),G[e]}else return delete G[e],null}function Ss(e,t){if(t!=null){var r,n,s=_r;G[e]!=null&&G[e].parentLocale!=null?G[e].set(se(G[e]._config,t)):(n=it(e),n!=null&&(s=n._config),t=se(s,t),n==null&&(t.abbr=e),r=new Q(t),r.parentLocale=G[e],G[e]=r),ke(e)}else G[e]!=null&&(G[e].parentLocale!=null?(G[e]=G[e].parentLocale,e===ke()&&ke(e)):G[e]!=null&&delete G[e]);return G[e]}function ye(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return ze;if(!L(e)){if(t=it(e),t)return t;e=[e]}return ps(e)}function vs(){return k(G)}function Nt(e){var t,r=e._a;return r&&_(e).overflow===-2&&(t=r[he]<0||r[he]>11?he:r[fe]<1||r[fe]>Yt(r[te],r[he])?fe:r[X]<0||r[X]>24||r[X]===24&&(r[ue]!==0||r[me]!==0||r[Ye]!==0)?X:r[ue]<0||r[ue]>59?ue:r[me]<0||r[me]>59?me:r[Ye]<0||r[Ye]>999?Ye:-1,_(e)._overflowDayOfYear&&(tfe)&&(t=fe),_(e)._overflowWeeks&&t===-1&&(t=On),_(e)._overflowWeekday&&t===-1&&(t=Yn),_(e).overflow=t),e}var ks=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ms=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ds=/Z|[+-]\d\d(?::?\d\d)?/,ot=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Pt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Os=/^\/?Date\((-?\d+)/i,Ys=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,xs={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function gr(e){var t,r,n=e._i,s=ks.exec(n)||Ms.exec(n),a,l,y,D,C=ot.length,ne=Pt.length;if(s){for(_(e).iso=!0,t=0,r=C;tHe(l)||e._dayOfYear===0)&&(_(e)._overflowDayOfYear=!0),r=Ve(l,0,e._dayOfYear),e._a[he]=r.getUTCMonth(),e._a[fe]=r.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=n[t]=s[t];for(;t<7;t++)e._a[t]=n[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[X]===24&&e._a[ue]===0&&e._a[me]===0&&e._a[Ye]===0&&(e._nextDay=!0,e._a[X]=0),e._d=(e._useUTC?Ve:Hn).apply(null,n),a=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[X]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==a&&(_(e).weekdayMismatch=!0)}}function Fs(e){var t,r,n,s,a,l,y,D,C;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(a=1,l=4,r=Re(t.GG,e._a[te],$e(V(),1,4).year),n=Re(t.W,1),s=Re(t.E,1),(s<1||s>7)&&(D=!0)):(a=e._locale._week.dow,l=e._locale._week.doy,C=$e(V(),a,l),r=Re(t.gg,e._a[te],C.year),n=Re(t.w,C.week),t.d!=null?(s=t.d,(s<0||s>6)&&(D=!0)):t.e!=null?(s=t.e+a,(t.e<0||t.e>6)&&(D=!0)):s=a),n<1||n>_e(r,a,l)?_(e)._overflowWeeks=!0:D!=null?_(e)._overflowWeekday=!0:(y=fr(r,n,s,a,l),e._a[te]=y.year,e._dayOfYear=y.dayOfYear)}o.ISO_8601=function(){},o.RFC_2822=function(){};function Rt(e){if(e._f===o.ISO_8601){gr(e);return}if(e._f===o.RFC_2822){pr(e);return}e._a=[],_(e).empty=!0;var t=""+e._i,r,n,s,a,l,y=t.length,D=0,C,ne;for(s=Xt(e._f,e._locale).match(ve)||[],ne=s.length,r=0;r0&&_(e).unusedInput.push(l),t=t.slice(t.indexOf(n)+n.length),D+=n.length),Ce[a]?(n?_(e).empty=!1:_(e).unusedTokens.push(a),Dn(a,n,e)):e._strict&&!n&&_(e).unusedTokens.push(a);_(e).charsLeftOver=y-D,t.length>0&&_(e).unusedInput.push(t),e._a[X]<=12&&_(e).bigHour===!0&&e._a[X]>0&&(_(e).bigHour=void 0),_(e).parsedDateParts=e._a.slice(0),_(e).meridiem=e._meridiem,e._a[X]=Ws(e._locale,e._a[X],e._meridiem),C=_(e).era,C!==null&&(e._a[te]=e._locale.erasConvertYear(C,e._a[te])),Et(e),Nt(e)}function Ws(e,t,r){var n;return r==null?t:e.meridiemHour!=null?e.meridiemHour(t,r):(e.isPM!=null&&(n=e.isPM(r),n&&t<12&&(t+=12),!n&&t===12&&(t=0)),t)}function As(e){var t,r,n,s,a,l,y=!1,D=e._f.length;if(D===0){_(e).invalidFormat=!0,e._d=new Date(NaN);return}for(s=0;sthis?this:e:v()});function vr(e,t){var r,n;if(t.length===1&&L(t[0])&&(t=t[0]),!t.length)return V();for(r=t[0],n=1;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function sa(){if(!R(this._isDSTShifted))return this._isDSTShifted;var e={},t;return J(e,this),e=wr(e),e._a?(t=e._isUTC?h(e._a):V(e._a),this._isDSTShifted=this.isValid()&&Bs(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function aa(){return this.isValid()?!this._isUTC:!1}function ia(){return this.isValid()?this._isUTC:!1}function Mr(){return this.isValid()?this._isUTC&&this._offset===0:!1}var oa=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,la=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function de(e,t){var r=e,n=null,s,a,l;return ut(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:p(e)||!isNaN(+e)?(r={},t?r[t]=+e:r.milliseconds=+e):(n=oa.exec(e))?(s=n[1]==="-"?-1:1,r={y:0,d:b(n[fe])*s,h:b(n[X])*s,m:b(n[ue])*s,s:b(n[me])*s,ms:b(Ft(n[Ye]*1e3))*s}):(n=la.exec(e))?(s=n[1]==="-"?-1:1,r={y:xe(n[2],s),M:xe(n[3],s),w:xe(n[4],s),d:xe(n[5],s),h:xe(n[6],s),m:xe(n[7],s),s:xe(n[8],s)}):r==null?r={}:typeof r=="object"&&("from"in r||"to"in r)&&(l=ua(V(r.from),V(r.to)),r={},r.ms=l.milliseconds,r.M=l.months),a=new lt(r),ut(e)&&S(e,"_locale")&&(a._locale=e._locale),ut(e)&&S(e,"_isValid")&&(a._isValid=e._isValid),a}de.fn=lt.prototype,de.invalid=qs;function xe(e,t){var r=e&&parseFloat(e.replace(",","."));return(isNaN(r)?0:r)*t}function Dr(e,t){var r={};return r.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(r.months,"M").isAfter(t)&&--r.months,r.milliseconds=+t-+e.clone().add(r.months,"M"),r}function ua(e,t){var r;return e.isValid()&&t.isValid()?(t=At(t,e),e.isBefore(t)?r=Dr(e,t):(r=Dr(t,e),r.milliseconds=-r.milliseconds,r.months=-r.months),r):{milliseconds:0,months:0}}function Or(e,t){return function(r,n){var s,a;return n!==null&&!isNaN(+n)&&(W(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),a=r,r=n,n=a),s=de(r,n),Yr(this,s,e),this}}function Yr(e,t,r,n){var s=t._milliseconds,a=Ft(t._days),l=Ft(t._months);e.isValid()&&(n=n??!0,l&&lr(e,je(e,"Month")+l*r),a&&ar(e,"Date",je(e,"Date")+a*r),s&&e._d.setTime(e._d.valueOf()+s*r),n&&o.updateOffset(e,a||l))}var da=Or(1,"add"),fa=Or(-1,"subtract");function xr(e){return typeof e=="string"||e instanceof String}function ca(e){return U(e)||A(e)||xr(e)||p(e)||ma(e)||ha(e)||e===null||e===void 0}function ha(e){var t=f(e)&&!re(e),r=!1,n=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],s,a,l=n.length;for(s=0;sr.valueOf():r.valueOf()9999?Qe(r,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Z(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",Qe(r,"Z")):Qe(r,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function ba(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",r,n,s,a;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),r="["+e+'("]',n=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",s="-MM-DD[T]HH:mm:ss.SSS",a=t+'[")]',this.format(r+n+s+a)}function Ta(e){e||(e=this.isUtc()?o.defaultFormatUtc:o.defaultFormat);var t=Qe(this,e);return this.localeData().postformat(t)}function Ca(e,t){return this.isValid()&&(U(e)&&e.isValid()||V(e).isValid())?de({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Na(e){return this.from(V(),e)}function Pa(e,t){return this.isValid()&&(U(e)&&e.isValid()||V(e).isValid())?de({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Ea(e){return this.to(V(),e)}function br(e){var t;return e===void 0?this._locale._abbr:(t=ye(e),t!=null&&(this._locale=t),this)}var Tr=ee("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Cr(){return this._locale}var ft=1e3,Fe=60*ft,ct=60*Fe,Nr=(365*400+97)*24*ct;function We(e,t){return(e%t+t)%t}function Pr(e,t,r){return e<100&&e>=0?new Date(e+400,t,r)-Nr:new Date(e,t,r).valueOf()}function Er(e,t,r){return e<100&&e>=0?Date.UTC(e+400,t,r)-Nr:Date.UTC(e,t,r)}function Ra(e){var t,r;if(e=oe(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(r=this._isUTC?Er:Pr,e){case"year":t=r(this.year(),0,1);break;case"quarter":t=r(this.year(),this.month()-this.month()%3,1);break;case"month":t=r(this.year(),this.month(),1);break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=r(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=We(t+(this._isUTC?0:this.utcOffset()*Fe),ct);break;case"minute":t=this._d.valueOf(),t-=We(t,Fe);break;case"second":t=this._d.valueOf(),t-=We(t,ft);break}return this._d.setTime(t),o.updateOffset(this,!0),this}function Fa(e){var t,r;if(e=oe(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(r=this._isUTC?Er:Pr,e){case"year":t=r(this.year()+1,0,1)-1;break;case"quarter":t=r(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=r(this.year(),this.month()+1,1)-1;break;case"week":t=r(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=r(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=r(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=ct-We(t+(this._isUTC?0:this.utcOffset()*Fe),ct)-1;break;case"minute":t=this._d.valueOf(),t+=Fe-We(t,Fe)-1;break;case"second":t=this._d.valueOf(),t+=ft-We(t,ft)-1;break}return this._d.setTime(t),o.updateOffset(this,!0),this}function Wa(){return this._d.valueOf()-(this._offset||0)*6e4}function Aa(){return Math.floor(this.valueOf()/1e3)}function Ia(){return new Date(this.valueOf())}function La(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Ua(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Ha(){return this.isValid()?this.toISOString():null}function ja(){return z(this)}function Va(){return x({},_(this))}function $a(){return _(this).overflow}function Ga(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}w("N",0,0,"eraAbbr"),w("NN",0,0,"eraAbbr"),w("NNN",0,0,"eraAbbr"),w("NNNN",0,0,"eraName"),w("NNNNN",0,0,"eraNarrow"),w("y",["y",1],"yo","eraYear"),w("y",["yy",2],0,"eraYear"),w("y",["yyy",3],0,"eraYear"),w("y",["yyyy",4],0,"eraYear"),g("N",Lt),g("NN",Lt),g("NNN",Lt),g("NNNN",ri),g("NNNNN",ni),I(["N","NN","NNN","NNNN","NNNNN"],function(e,t,r,n){var s=r._locale.erasParse(e,n,r._strict);s?_(r).era=s:_(r).invalidEra=e}),g("y",Ne),g("yy",Ne),g("yyy",Ne),g("yyyy",Ne),g("yo",si),I(["y","yy","yyy","yyyy"],te),I(["yo"],function(e,t,r,n){var s;r._locale._eraYearOrdinalRegex&&(s=e.match(r._locale._eraYearOrdinalRegex)),r._locale.eraYearOrdinalParse?t[te]=r._locale.eraYearOrdinalParse(e,s):t[te]=parseInt(e,10)});function za(e,t){var r,n,s,a=this._eras||ye("en")._eras;for(r=0,n=a.length;r=0)return a[n]}function qa(e,t){var r=e.since<=e.until?1:-1;return t===void 0?o(e.since).year():o(e.since).year()+(t-e.offset)*r}function Ba(){var e,t,r,n=this.localeData().eras();for(e=0,t=n.length;ea&&(t=a),fi.call(this,e,t,r,n,s))}function fi(e,t,r,n,s){var a=fr(e,t,r,n,s),l=Ve(a.year,0,a.dayOfYear);return this.year(l.getUTCFullYear()),this.month(l.getUTCMonth()),this.date(l.getUTCDate()),this}w("Q",0,"Qo","quarter"),g("Q",er),I("Q",function(e,t){t[he]=(b(e)-1)*3});function ci(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}w("D",["DD",2],"Do","date"),g("D",j,Pe),g("DD",j,ie),g("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),I(["D","DD"],fe),I("Do",function(e,t){t[fe]=b(e.match(j)[0])});var Fr=Ee("Date",!0);w("DDD",["DDDD",3],"DDDo","dayOfYear"),g("DDD",Ke),g("DDDD",tr),I(["DDD","DDDD"],function(e,t,r){r._dayOfYear=b(e)});function hi(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}w("m",["mm",2],0,"minute"),g("m",j,Dt),g("mm",j,ie),I(["m","mm"],ue);var mi=Ee("Minutes",!1);w("s",["ss",2],0,"second"),g("s",j,Dt),g("ss",j,ie),I(["s","ss"],me);var _i=Ee("Seconds",!1);w("S",0,0,function(){return~~(this.millisecond()/100)}),w(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),w(0,["SSS",3],0,"millisecond"),w(0,["SSSS",4],0,function(){return this.millisecond()*10}),w(0,["SSSSS",5],0,function(){return this.millisecond()*100}),w(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3}),w(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4}),w(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5}),w(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6}),g("S",Ke,er),g("SS",Ke,ie),g("SSS",Ke,tr);var Me,Wr;for(Me="SSSS";Me.length<=9;Me+="S")g(Me,Ne);function yi(e,t){t[Ye]=b(("0."+e)*1e3)}for(Me="S";Me.length<=9;Me+="S")I(Me,yi);Wr=Ee("Milliseconds",!1),w("z",0,0,"zoneAbbr"),w("zz",0,0,"zoneName");function gi(){return this._isUTC?"UTC":""}function pi(){return this._isUTC?"Coordinated Universal Time":""}var c=$.prototype;c.add=da,c.calendar=ga,c.clone=pa,c.diff=Oa,c.endOf=Fa,c.format=Ta,c.from=Ca,c.fromNow=Na,c.to=Pa,c.toNow=Ea,c.get=bn,c.invalidAt=$a,c.isAfter=wa,c.isBefore=Sa,c.isBetween=va,c.isSame=ka,c.isSameOrAfter=Ma,c.isSameOrBefore=Da,c.isValid=ja,c.lang=Tr,c.locale=br,c.localeData=Cr,c.max=js,c.min=Hs,c.parsingFlags=Va,c.set=Tn,c.startOf=Ra,c.subtract=fa,c.toArray=La,c.toObject=Ua,c.toDate=Ia,c.toISOString=xa,c.inspect=ba,typeof Symbol<"u"&&Symbol.for!=null&&(c[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"}),c.toJSON=Ha,c.toString=Ya,c.unix=Aa,c.valueOf=Wa,c.creationData=Ga,c.eraName=Ba,c.eraNarrow=Ja,c.eraAbbr=Qa,c.eraYear=Xa,c.year=sr,c.isLeapYear=xn,c.weekYear=ai,c.isoWeekYear=ii,c.quarter=c.quarters=ci,c.month=ur,c.daysInMonth=In,c.week=c.weeks=zn,c.isoWeek=c.isoWeeks=Zn,c.weeksInYear=ui,c.weeksInWeekYear=di,c.isoWeeksInYear=oi,c.isoWeeksInISOWeekYear=li,c.date=Fr,c.day=c.days=is,c.weekday=os,c.isoWeekday=ls,c.dayOfYear=hi,c.hour=c.hours=_s,c.minute=c.minutes=mi,c.second=c.seconds=_i,c.millisecond=c.milliseconds=Wr,c.utcOffset=Qs,c.utc=Ks,c.local=ea,c.parseZone=ta,c.hasAlignedHourOffset=ra,c.isDST=na,c.isLocal=aa,c.isUtcOffset=ia,c.isUtc=Mr,c.isUTC=Mr,c.zoneAbbr=gi,c.zoneName=pi,c.dates=ee("dates accessor is deprecated. Use date instead.",Fr),c.months=ee("months accessor is deprecated. Use month instead",ur),c.years=ee("years accessor is deprecated. Use year instead",sr),c.zone=ee("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Xs),c.isDSTShifted=ee("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",sa);function wi(e){return V(e*1e3)}function Si(){return V.apply(null,arguments).parseZone()}function Ar(e){return e}var F=Q.prototype;F.calendar=ae,F.longDateFormat=un,F.invalidDate=fn,F.ordinal=mn,F.preparse=Ar,F.postformat=Ar,F.relativeTime=yn,F.pastFuture=gn,F.set=O,F.eras=za,F.erasParse=Za,F.erasConvertYear=qa,F.erasAbbrRegex=ei,F.erasNameRegex=Ka,F.erasNarrowRegex=ti,F.months=Rn,F.monthsShort=Fn,F.monthsParse=An,F.monthsRegex=Un,F.monthsShortRegex=Ln,F.week=jn,F.firstDayOfYear=Gn,F.firstDayOfWeek=$n,F.weekdays=ts,F.weekdaysMin=ns,F.weekdaysShort=rs,F.weekdaysParse=as,F.weekdaysRegex=us,F.weekdaysShortRegex=ds,F.weekdaysMinRegex=fs,F.isPM=hs,F.meridiem=ys;function mt(e,t,r,n){var s=ye(),a=h().set(n,t);return s[r](a,e)}function Ir(e,t,r){if(p(e)&&(t=e,e=void 0),e=e||"",t!=null)return mt(e,t,r,"month");var n,s=[];for(n=0;n<12;n++)s[n]=mt(e,n,r,"month");return s}function Ht(e,t,r,n){typeof e=="boolean"?(p(t)&&(r=t,t=void 0),t=t||""):(t=e,r=t,e=!1,p(t)&&(r=t,t=void 0),t=t||"");var s=ye(),a=e?s._week.dow:0,l,y=[];if(r!=null)return mt(t,(r+a)%7,n,"day");for(l=0;l<7;l++)y[l]=mt(t,(l+a)%7,n,"day");return y}function vi(e,t){return Ir(e,t,"months")}function ki(e,t){return Ir(e,t,"monthsShort")}function Mi(e,t,r){return Ht(e,t,r,"weekdays")}function Di(e,t,r){return Ht(e,t,r,"weekdaysShort")}function Oi(e,t,r){return Ht(e,t,r,"weekdaysMin")}ke("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,r=b(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+r}}),o.lang=ee("moment.lang is deprecated. Use moment.locale instead.",ke),o.langData=ee("moment.langData is deprecated. Use moment.localeData instead.",ye);var ge=Math.abs;function Yi(){var e=this._data;return this._milliseconds=ge(this._milliseconds),this._days=ge(this._days),this._months=ge(this._months),e.milliseconds=ge(e.milliseconds),e.seconds=ge(e.seconds),e.minutes=ge(e.minutes),e.hours=ge(e.hours),e.months=ge(e.months),e.years=ge(e.years),this}function Lr(e,t,r,n){var s=de(t,r);return e._milliseconds+=n*s._milliseconds,e._days+=n*s._days,e._months+=n*s._months,e._bubble()}function xi(e,t){return Lr(this,e,t,1)}function bi(e,t){return Lr(this,e,t,-1)}function Ur(e){return e<0?Math.floor(e):Math.ceil(e)}function Ti(){var e=this._milliseconds,t=this._days,r=this._months,n=this._data,s,a,l,y,D;return e>=0&&t>=0&&r>=0||e<=0&&t<=0&&r<=0||(e+=Ur(jt(r)+t)*864e5,t=0,r=0),n.milliseconds=e%1e3,s=le(e/1e3),n.seconds=s%60,a=le(s/60),n.minutes=a%60,l=le(a/60),n.hours=l%24,t+=le(l/24),D=le(Hr(t)),r+=D,t-=Ur(jt(D)),y=le(r/12),r%=12,n.days=t,n.months=r,n.years=y,this}function Hr(e){return e*4800/146097}function jt(e){return e*146097/4800}function Ci(e){if(!this.isValid())return NaN;var t,r,n=this._milliseconds;if(e=oe(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+n/864e5,r=this._months+Hr(t),e){case"month":return r;case"quarter":return r/3;case"year":return r/12}else switch(t=this._days+Math.round(jt(this._months)),e){case"week":return t/7+n/6048e5;case"day":return t+n/864e5;case"hour":return t*24+n/36e5;case"minute":return t*1440+n/6e4;case"second":return t*86400+n/1e3;case"millisecond":return Math.floor(t*864e5)+n;default:throw new Error("Unknown unit "+e)}}function pe(e){return function(){return this.as(e)}}var jr=pe("ms"),Ni=pe("s"),Pi=pe("m"),Ei=pe("h"),Ri=pe("d"),Fi=pe("w"),Wi=pe("M"),Ai=pe("Q"),Ii=pe("y"),Li=jr;function Ui(){return de(this)}function Hi(e){return e=oe(e),this.isValid()?this[e+"s"]():NaN}function be(e){return function(){return this.isValid()?this._data[e]:NaN}}var ji=be("milliseconds"),Vi=be("seconds"),$i=be("minutes"),Gi=be("hours"),zi=be("days"),Zi=be("months"),qi=be("years");function Bi(){return le(this.days()/7)}var we=Math.round,Ae={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function Ji(e,t,r,n,s){return s.relativeTime(t||1,!!r,e,n)}function Qi(e,t,r,n){var s=de(e).abs(),a=we(s.as("s")),l=we(s.as("m")),y=we(s.as("h")),D=we(s.as("d")),C=we(s.as("M")),ne=we(s.as("w")),Se=we(s.as("y")),De=a<=r.ss&&["s",a]||a0,De[4]=n,Ji.apply(null,De)}function Xi(e){return e===void 0?we:typeof e=="function"?(we=e,!0):!1}function Ki(e,t){return Ae[e]===void 0?!1:t===void 0?Ae[e]:(Ae[e]=t,e==="s"&&(Ae.ss=t-1),!0)}function eo(e,t){if(!this.isValid())return this.localeData().invalidDate();var r=!1,n=Ae,s,a;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(r=e),typeof t=="object"&&(n=Object.assign({},Ae,t),t.s!=null&&t.ss==null&&(n.ss=t.s-1)),s=this.localeData(),a=Qi(this,!r,n,s),r&&(a=s.pastFuture(+this,a)),s.postformat(a)}var Vt=Math.abs;function Ie(e){return(e>0)-(e<0)||+e}function _t(){if(!this.isValid())return this.localeData().invalidDate();var e=Vt(this._milliseconds)/1e3,t=Vt(this._days),r=Vt(this._months),n,s,a,l,y=this.asSeconds(),D,C,ne,Se;return y?(n=le(e/60),s=le(n/60),e%=60,n%=60,a=le(r/12),r%=12,l=e?e.toFixed(3).replace(/\.?0+$/,""):"",D=y<0?"-":"",C=Ie(this._months)!==Ie(y)?"-":"",ne=Ie(this._days)!==Ie(y)?"-":"",Se=Ie(this._milliseconds)!==Ie(y)?"-":"",D+"P"+(a?C+a+"Y":"")+(r?C+r+"M":"")+(t?ne+t+"D":"")+(s||n||e?"T":"")+(s?Se+s+"H":"")+(n?Se+n+"M":"")+(e?Se+l+"S":"")):"P0D"}var E=lt.prototype;E.isValid=Zs,E.abs=Yi,E.add=xi,E.subtract=bi,E.as=Ci,E.asMilliseconds=jr,E.asSeconds=Ni,E.asMinutes=Pi,E.asHours=Ei,E.asDays=Ri,E.asWeeks=Fi,E.asMonths=Wi,E.asQuarters=Ai,E.asYears=Ii,E.valueOf=Li,E._bubble=Ti,E.clone=Ui,E.get=Hi,E.milliseconds=ji,E.seconds=Vi,E.minutes=$i,E.hours=Gi,E.days=zi,E.weeks=Bi,E.months=Zi,E.years=qi,E.humanize=eo,E.toISOString=_t,E.toString=_t,E.toJSON=_t,E.locale=br,E.localeData=Cr,E.toIsoString=ee("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",_t),E.lang=Tr,w("X",0,0,"unix"),w("x",0,0,"valueOf"),g("x",tt),g("X",vn),I("X",function(e,t,r){r._d=new Date(parseFloat(e)*1e3)}),I("x",function(e,t,r){r._d=new Date(b(e))});return o.version="2.30.1",N(V),o.fn=c,o.min=Vs,o.max=$s,o.now=Gs,o.utc=h,o.unix=wi,o.months=vi,o.isDate=A,o.locale=ke,o.invalid=v,o.duration=de,o.isMoment=U,o.weekdays=Mi,o.parseZone=Si,o.localeData=ye,o.isDuration=ut,o.monthsShort=ki,o.weekdaysMin=Oi,o.defineLocale=Ct,o.updateLocale=Ss,o.locales=vs,o.weekdaysShort=Di,o.normalizeUnits=oe,o.relativeTimeRounding=Xi,o.relativeTimeThreshold=Ki,o.calendarFormat=ya,o.prototype=c,o.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},o}))})(wt)),wt.exports}var uo=lo();const Gt=rn(uo);function qt(i){return fo.test(i)}const fo=/^-?[0-9]+$/;function nn(i){return co.test(i)}const co=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?$/;function ho(i,m){if(qt(i))return Number.isSafeInteger(Number.parseInt(i,10));const u=Number.parseFloat(i),o=String(u);if(i===o)return!0;const N=Gr(i),L=Gr(o);return N===L}let Be=(function(i){return i.underflow="underflow",i.overflow="overflow",i.truncate_integer="truncate_integer",i.truncate_float="truncate_float",i})({});function mo(i){if(ho(i))return;if(qt(i))return Be.truncate_integer;const m=Number.parseFloat(i);return Number.isFinite(m)?m===0?Be.underflow:Be.truncate_float:Be.overflow}function Gr(i){const{start:m,end:u}=_o(i),o=i.substring(m,u),N=o.indexOf(".");return N===-1?o:o.substring(0,N)+o.substring(N+1)}function _o(i){let m=0;for(i[0]==="-"&&m++;i[m]==="0"||i[m]===".";)m++;let u=i.lastIndexOf("e");for(u===-1&&(u=i.lastIndexOf("E")),u===-1&&(u=i.length);(i[u-1]==="0"||i[u-1]===".")&&u>m;)u--;return{start:m,end:u}}class yo{isLosslessNumber=!0;constructor(m){if(!nn(m))throw new Error(`Invalid number (value: "${m}")`);this.value=m}valueOf(){const m=mo(this.value);if(m===void 0||m===Be.truncate_float)return Number.parseFloat(this.value);if(qt(this.value))return BigInt(this.value);throw new Error(`Cannot safely convert to number: the value '${this.value}' would ${m} and become ${Number.parseFloat(this.value)}`)}toString(){return this.value}}function go(i){return i&&typeof i=="object"&&i.isLosslessNumber||!1}function po(i){return new yo(i)}function wo(i,m){return Bt({"":i},"",i,m)}function Bt(i,m,u,o){return Array.isArray(u)?o.call(i,m,vo(u,o)):u&&typeof u=="object"&&!go(u)?o.call(i,m,So(u,o)):o.call(i,m,u)}function So(i,m){for(const u of Object.keys(i)){const o=Bt(i,u,i[u],m);o!==void 0?i[u]=o:delete i[u]}return i}function vo(i,m){for(let u=0;uk)return N(i.slice(k,f))}function d(){if(i.charCodeAt(f)!==Fo)throw new SyntaxError(`Comma ',' expected after value ${Q()}`);f++}function _(){if(i.charCodeAt(f)!==Ao)throw new SyntaxError(`Colon ':' expected after property name ${Q()}`);f++}function T(k){if(k===void 0)throw new SyntaxError(`JSON value expected ${Q()}`)}function z(k){if(k===void 0)throw new SyntaxError(`Array item expected ${Q()}`)}function v(){if(f=Jt&&i<=Qt||i>=Io&&i<=jo||i>=Lo&&i<=Vo}function gt(i){return i>=Jt&&i<=Qt}function Mo(i){return i>=Ro&&i<=Qt}function Do(i){return i>=32&&i<=1114111}function Zt(i,m){return i===m?!0:Array.isArray(i)&&Array.isArray(m)?i.length===m.length&&i.every((u,o)=>Zt(u,m[o])):Zr(i)&&Zr(m)?[...new Set([...Object.keys(i),...Object.keys(m)])].every(o=>Zt(i[o],m[o])):!1}function Zr(i){return typeof i=="object"&&i!==null}const Oo={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` +`,r:"\r",t:" "},Yo=92,xo=123,qr=125,bo=91,Br=93,To=32,Co=10,No=9,Po=13,zt=34,Eo=43,Jr=45,Jt=48,Ro=49,Qt=57,Fo=44,Wo=46,Ao=58,Io=65,Lo=97,Uo=69,Ho=101,jo=70,Vo=102;function sn(i,m,u,o){const N=$o(u),L=typeof m=="function"?m.call({"":i},"",i):i;return f(L,"");function f(p,A){if(Array.isArray(o)){const H=o.find(x=>x.test(p));if(H){const x=H.stringify(p);if(typeof x!="string"||!nn(x))throw new Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${x})`);return x}}if(typeof p=="boolean"||typeof p=="number"||typeof p=="string"||p===null||p instanceof Date||p instanceof Boolean||p instanceof Number||p instanceof String)return JSON.stringify(p);if(p?.isLosslessNumber||typeof p=="bigint")return p.toString();if(Array.isArray(p))return S(p,A);if(p&&typeof p=="object")return re(p,A)}function S(p,A){if(p.length===0)return"[]";const H=N?A+N:void 0;let x=N?`[ +`:"[";for(let h=0;h");if(P>-1)M.content=o.xml.substring(0,P).trim(),o.xml=o.xml.slice(P);else throw new u("Failed to parse XML","ProcessingInstruction closing tag not found");return d(/\?>/),{excluded:o.options.filter(M)===!1,node:M}}function re(v){const M=d(/^<([^?!\s]+)\s*/);if(!M)return;const P={type:"Element",name:M[1],attributes:{},children:[]},J=v?!1:o.options.filter(P)===!1;for(;!(_()||T(">")||T("?>")||T("/>"));){const U=x();if(U)P.attributes[U.name]=U.value;else return}if(d(/^\s*\/>/))return P.children=null,{excluded:J,node:P};d(/\??>/);let $=N();for(;$;)$.excluded||P.children.push($.node),$=N();if(o.options.strictMode){const U=``;if(o.xml.startsWith(U))o.xml=o.xml.slice(U.length);else throw new u("Failed to parse XML",`Closing tag not matching "${U}"`)}else d(/^<\/[\w-:.\u00C0-\u00FF]+\s*>/);return{excluded:J,node:P}}function R(){const v=d(/^]*>/)||d(/^]*>/)||d(/^/)||d(/^/);if(v){const M={type:"DocumentType",content:v[0]};return{excluded:o.options.filter(M)===!1,node:M}}}function p(){if(o.xml.startsWith("");if(v>-1){const M=v+3,P={type:"CDATA",content:o.xml.substring(0,M)};return o.xml=o.xml.slice(M),{excluded:o.options.filter(P)===!1,node:P}}}}function A(){const v=d(/^/);if(v){const M={type:"Comment",content:v[0]};return{excluded:o.options.filter(M)===!1,node:M}}}function H(){const v=d(/^([^<]+)/);if(v){const M={type:"Text",content:v[1]};return{excluded:o.options.filter(M)===!1,node:M}}}function x(){const v=d(/([^=]+)\s*=\s*("[^"]*"|'[^']*'|[^>\s]+)\s*/);if(v)return{name:v[1].trim(),value:h(v[2].trim())}}function h(v){return v.replace(/^['"]|['"]$/g,"")}function d(v){const M=o.xml.match(v);if(M)return o.xml=o.xml.slice(M[0].length),M}function _(){return o.xml.length===0}function T(v){return o.xml.indexOf(v)===0}function z(v,M={}){v=v.trim();const P=M.filter||(()=>!0);return o={xml:v,options:Object.assign(Object.assign({},M),{filter:P,strictMode:M.strictMode===!0})},f()}i.exports=z,m.default=z})(pt,pt.exports)),pt.exports}var Xr=Je.exports,Kr;function zo(){return Kr||(Kr=1,(function(i,m){var u=Xr&&Xr.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(m,"__esModule",{value:!0});const o=u(Go());function N(h){if(!h.options.indentation&&!h.options.lineSeparator)return;h.content+=h.options.lineSeparator;let d;for(d=0;d0&&(!_&&d.content.length>0&&N(d),f(d,h))}function R(h,d){const _="/"+h.join("/"),T=h[h.length-1];return d.includes(T)||d.includes(_)}function p(h,d,_){if(d.path.push(h.name),!_&&d.content.length>0&&N(d),f(d,"<"+h.name),A(d,h.attributes),h.children===null||d.options.forceSelfClosingEmptyTag&&h.children.length===0){const T=d.options.whiteSpaceAtEndOfSelfclosingTag?" />":"/>";f(d,T)}else if(h.children.length===0)f(d,">");else{const T=h.children;f(d,">"),d.level++;let z=h.attributes["xml:space"]==="preserve"||_,v=!1;if(!z&&d.options.ignoredPaths&&(v=R(d.path,d.options.ignoredPaths),z=v),!z&&d.options.collapseContent){let M=!1,P=!1,J=!1;T.forEach(function($,U){$.type==="Text"?($.content.includes(` +`)?(P=!0,$.content=$.content.trim()):(U===0||U===T.length-1)&&!_&&$.content.trim().length===0&&($.content=""),($.content.trim().length>0||T.length===1)&&(M=!0)):$.type==="CDATA"?M=!0:J=!0}),M&&(!J||!P)&&(z=!0)}T.forEach(function(M){S(M,d,_||z)}),d.level--,!_&&!z&&N(d),v&&L(d),f(d,"")}d.path.pop()}function A(h,d){Object.keys(d).forEach(function(_){const T=d[_].replace(/"/g,""");f(h," "+_+'="'+T+'"')})}function H(h,d){d.content.length>0&&N(d),f(d,"")}function x(h,d={}){d.indentation="indentation"in d?d.indentation:" ",d.collapseContent=d.collapseContent===!0,d.lineSeparator="lineSeparator"in d?d.lineSeparator:`\r +`,d.whiteSpaceAtEndOfSelfclosingTag=d.whiteSpaceAtEndOfSelfclosingTag===!0,d.throwOnFailure=d.throwOnFailure!==!1;try{const _=(0,o.default)(h,{filter:d.filter,strictMode:d.strictMode}),T={content:"",level:0,options:d,path:[]};return _.declaration&&H(_.declaration,T),_.children.forEach(function(z){S(z,T,!1)}),d.lineSeparator?T.content.replace(/\r\n/g,` +`).replace(/\n/g,d.lineSeparator):T.content}catch(_){if(d.throwOnFailure)throw _;return h}}x.minify=(h,d={})=>x(h,Object.assign(Object.assign({},d),{indentation:"",lineSeparator:""})),i.exports=x,m.default=x})(Je,Je.exports)),Je.exports}var Zo=zo();const qo=rn(Zo),Jo=en("MessageStore",()=>{const i=qe({data:[]}),m=qe({data:{}}),u=to({data:{failure_metadata:{},failure_status:{},dialog_status:{},invoked_saga:{}}}),o=qe(null);let N="",L="";const f=qe({data:[]}),S=ao(),re=ro(),R=tn(),{store:p}=no(),A=p.serviceControlIsGreaterThan("5.2.0"),{config:H}=Vr(S),{configuration:x}=Vr(re),h=so(()=>Gt.duration(x.value?.data_retention?.error_retention_period).asHours());Promise.all([S.loadConfig(),re.refresh()]).then();function d(){u.data={failure_metadata:{},failure_status:{},dialog_status:{},invoked_saga:{}},i.value.data=[],m.value.data={value:"",content_type:""},N="",L="",f.value.data=[],o.value=null}async function _(Y){u.loading=!0,u.failed_to_load=!1,u.not_found=!1;try{const Z=await R.fetchFromServiceControl(`errors/last/${Y}`);if(Z.status===404){u.not_found=!0;return}else if(!Z.ok){u.failed_to_load=!0;return}const O=await Z.json();u.data.message_id=O.message_id,u.data.message_type=O.message_type,u.data.sending_endpoint=O.sending_endpoint,u.data.receiving_endpoint=O.receiving_endpoint,u.data.failure_status.archived=O.status===$t.Archived,u.data.failure_status.resolved=O.status===$t.Resolved,u.data.failure_status.retried=O.status===$t.RetryIssued,u.data.failure_metadata.last_modified=O.last_modified,u.data.failure_metadata.exception=O.exception,u.data.failure_metadata.time_of_failure=O.time_of_failure,u.data.failure_metadata.edited=O.edited,u.data.failure_metadata.edit_of=O.edit_of,u.data.failure_metadata.number_of_processing_attempts=O.number_of_processing_attempts,u.data.failure_metadata.status=O.status,await T(u.data.message_id,Y)}catch{u.failed_to_load=!0;return}finally{u.loading=!1}const W=Gt(u.data.failure_metadata.last_modified).add(h.value,"hours");u.data.failure_status.delete_soon=WQ.id===W);if(!O){u.not_found=i.value.not_found=!0;return}const se=O?.invoked_sagas?.[0];u.data.message_id=O.message_id,u.data.conversation_id=O.conversation_id,u.data.body_url=O.body_url,u.data.message_type=O.message_type,u.data.sending_endpoint=O.sending_endpoint,u.data.receiving_endpoint=O.receiving_endpoint,u.data.status=O.status,u.data.processed_at=O.processed_at,se&&(u.data.invoked_saga.has_saga=!0,u.data.invoked_saga.saga_id=se.saga_id,u.data.invoked_saga.saga_type=se.saga_type),i.value.data=O.headers}catch{u.failed_to_load=i.value.failed_to_load=!0}finally{u.loading=i.value.loading=!1}}async function z(Y){if(Y!==L){L=Y,f.value.loading=!0;try{const[,W]=await R.fetchTypedFromServiceControl(`conversations/${Y}`);f.value.data=W}catch{f.value.failed_to_load=!0}finally{f.value.loading=!1}}}async function v(){if(u.data.body_url&&u.data.id!==N){N=u.data.id??"",m.value.loading=!0,m.value.failed_to_load=!1;try{const Y=await R.fetchFromServiceControl(u.data.body_url.substring(1));if(Y.status===404){m.value.not_found=!0;return}if(Y.status===204){m.value.data.no_content=!0;return}const W=Y.headers.get("content-type");m.value.data.content_type=W??"text/plain",m.value.data.value=await Y.text(),W==="application/json"&&(m.value.data.value=sn(zr(m.value.data.value),null,2)??m.value.data.value),W==="text/xml"&&(m.value.data.value=qo(m.value.data.value,{indentation:" ",collapseContent:!0}))}catch{m.value.failed_to_load=!0}finally{m.value.loading=!1}}}async function M(){if(u.data.id){const Y=await R.patchToServiceControl("errors/archive/",[u.data.id]);if(!Y.ok)throw new Error(Y.statusText);u.data.failure_status.archiving=!0}}async function P(){if(u.data.id){const Y=await R.patchToServiceControl("errors/unarchive/",[u.data.id]);if(!Y.ok)throw new Error(Y.statusText);u.data.failure_status.restoring=!0}}async function J(){u.data.id&&(await $([u.data.id]),u.data.failure_status.retry_in_progress=!0)}async function $(Y){const W=await R.postToServiceControl("errors/retry",Y);if(!W.ok)throw new Error(W.statusText)}async function U(Y,W){const Z={message_body:W.value.messageBody,message_headers:A.value?W.value.headers.reduce((Q,k)=>{const{key:q,value:ae}=k;return Q[q]=ae,Q},{}):W.value.headers},O=await R.postToServiceControl(`edit/${Y}`,Z);if(!O.ok)throw new Error(O.statusText);const se=await O.text();se===""?o.value={edit_ignored:!1}:o.value=zr(se)}async function Te(Y){if(!u.data.id)return;let W=60;do{await new Promise(se=>setTimeout(se,1e3));const[,O]=await R.fetchTypedFromServiceControl(`errors/last/${u.data.id}`);if(Y===O.status)break}while(W-- >0);if(W===0)return;const Z=u.data.id;d(),await _(Z)}async function ee(){if(u.failed_to_load||u.not_found)return"";let Y="";u.data.failure_metadata.exception?.stack_trace!==void 0&&(Y+=`STACKTRACE +`,Y+=u.data.failure_metadata.exception.stack_trace,Y+=` + +`),Y+="HEADERS";for(let W=0;W {\n const config = ref({ enabled: false, locked_headers: [], sensitive_headers: [] });\n const serviceControlStore = useServiceControlStore();\n\n async function loadConfig() {\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(\"edit/config\");\n config.value = data;\n }\n\n return {\n config,\n loadConfig,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useEditRetryStore, import.meta.hot));\n}\n\nexport type EditRetryStore = ReturnType;\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * Test whether a string contains an integer number\n */\nexport function isInteger(value) {\n return INTEGER_REGEX.test(value);\n}\nconst INTEGER_REGEX = /^-?[0-9]+$/;\n\n/**\n * Test whether a string contains a number\n * http://stackoverflow.com/questions/13340717/json-numbers-regular-expression\n */\nexport function isNumber(value) {\n return NUMBER_REGEX.test(value);\n}\nconst NUMBER_REGEX = /^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?$/;\n\n/**\n * Test whether a string can be safely represented with a number\n * without information loss.\n *\n * When approx is true, floating point numbers that lose a few digits but\n * are still approximately equal in value are considered safe too.\n * Integer numbers must still be exactly equal.\n */\nexport function isSafeNumber(value, config) {\n if (isInteger(value)) {\n return Number.isSafeInteger(Number.parseInt(value, 10));\n }\n const num = Number.parseFloat(value);\n const parsed = String(num);\n if (value === parsed) {\n return true;\n }\n const valueDigits = extractSignificantDigits(value);\n const parsedDigits = extractSignificantDigits(parsed);\n if (valueDigits === parsedDigits) {\n return true;\n }\n if (config?.approx === true) {\n // A value is approximately equal when:\n // 1. it is a floating point number, not an integer\n // 2. it has at least 14 digits\n // 3. the first 14 digits are equal\n const requiredDigits = 14;\n if (!isInteger(value) && parsedDigits.length >= requiredDigits && valueDigits.startsWith(parsedDigits.substring(0, requiredDigits))) {\n return true;\n }\n }\n return false;\n}\nexport let UnsafeNumberReason = /*#__PURE__*/function (UnsafeNumberReason) {\n UnsafeNumberReason[\"underflow\"] = \"underflow\";\n UnsafeNumberReason[\"overflow\"] = \"overflow\";\n UnsafeNumberReason[\"truncate_integer\"] = \"truncate_integer\";\n UnsafeNumberReason[\"truncate_float\"] = \"truncate_float\";\n return UnsafeNumberReason;\n}({});\n\n/**\n * When the provided value is an unsafe number, describe what the reason is:\n * overflow, underflow, truncate_integer, or truncate_float.\n * Returns undefined when the value is safe.\n */\nexport function getUnsafeNumberReason(value) {\n if (isSafeNumber(value, {\n approx: false\n })) {\n return undefined;\n }\n if (isInteger(value)) {\n return UnsafeNumberReason.truncate_integer;\n }\n const num = Number.parseFloat(value);\n if (!Number.isFinite(num)) {\n return UnsafeNumberReason.overflow;\n }\n if (num === 0) {\n return UnsafeNumberReason.underflow;\n }\n return UnsafeNumberReason.truncate_float;\n}\n\n/**\n * Convert a string into a number when it is safe to do so.\n * Throws an error otherwise, explaining the reason.\n */\nexport function toSafeNumberOrThrow(value, config) {\n const number = Number.parseFloat(value);\n const unsafeReason = getUnsafeNumberReason(value);\n if (config?.approx === true ? unsafeReason && unsafeReason !== UnsafeNumberReason.truncate_float : unsafeReason) {\n const unsafeReasonText = unsafeReason?.replace(/_\\w+$/, '');\n throw new Error(`Cannot safely convert to number: the value '${value}' would ${unsafeReasonText} and become ${number}`);\n }\n return number;\n}\n\n/**\n * Split a number into sign, digits, and exponent.\n * The value can be constructed again from a split number by inserting a dot\n * at the second character of the digits if there is more than one digit,\n * prepending it with the sign, and appending the exponent like `e${exponent}`\n */\nexport function splitNumber(value) {\n const match = value.match(/^(-?)(\\d+\\.?\\d*)([eE]([+-]?\\d+))?$/);\n if (!match) {\n throw new SyntaxError(`Invalid number: ${value}`);\n }\n const sign = match[1];\n const digitsStr = match[2];\n let exponent = match[4] !== undefined ? Number.parseInt(match[4], 10) : 0;\n const dot = digitsStr.indexOf('.');\n exponent += dot !== -1 ? dot - 1 : digitsStr.length - 1;\n const digits = digitsStr.replace('.', '') // remove the dot (must be removed before removing leading zeros)\n .replace(/^0*/, zeros => {\n // remove leading zeros, add their count to the exponent\n exponent -= zeros.length;\n return '';\n }).replace(/0*$/, ''); // remove trailing zeros\n\n return digits.length > 0 ? {\n sign,\n digits,\n exponent\n } : {\n sign,\n digits: '0',\n exponent: exponent + 1\n };\n}\n\n/**\n * Compare two strings containing a numeric value\n * Returns 1 when a is larger than b, 0 when they are equal,\n * and -1 when a is smaller than b.\n */\nexport function compareNumber(a, b) {\n if (a === b) {\n return 0;\n }\n const aa = splitNumber(a);\n const bb = splitNumber(b);\n const sign = aa.sign === '-' ? -1 : 1;\n if (aa.sign !== bb.sign) {\n if (aa.digits === '0' && bb.digits === '0') {\n return 0;\n }\n return sign;\n }\n if (aa.exponent !== bb.exponent) {\n return aa.exponent > bb.exponent ? sign : aa.exponent < bb.exponent ? -sign : 0;\n }\n return aa.digits > bb.digits ? sign : aa.digits < bb.digits ? -sign : 0;\n}\n\n/**\n * Count the significant digits of a number.\n *\n * For example:\n * '2.34' returns 3\n * '-77' returns 2\n * '0.003400' returns 2\n * '120.5e+30' returns 4\n **/\nexport function countSignificantDigits(value) {\n const {\n start,\n end\n } = getSignificantDigitRange(value);\n const dot = value.indexOf('.');\n if (dot === -1 || dot < start || dot > end) {\n return end - start;\n }\n return end - start - 1;\n}\n\n/**\n * Get the significant digits of a number.\n *\n * For example:\n * '2.34' returns '234'\n * '-77' returns '77'\n * '0.003400' returns '34'\n * '120.5e+30' returns '1205'\n **/\nexport function extractSignificantDigits(value) {\n const {\n start,\n end\n } = getSignificantDigitRange(value);\n const digits = value.substring(start, end);\n const dot = digits.indexOf('.');\n if (dot === -1) {\n return digits;\n }\n return digits.substring(0, dot) + digits.substring(dot + 1);\n}\n\n/**\n * Returns the range (start to end) of the significant digits of a value.\n * Note that this range _may_ contain the decimal dot.\n *\n * For example:\n *\n * getSignificantDigitRange('0.0325900') // { start: 3, end: 7 }\n * getSignificantDigitRange('2.0300') // { start: 0, end: 3 }\n * getSignificantDigitRange('0.0') // { start: 3, end: 3 }\n *\n */\nfunction getSignificantDigitRange(value) {\n let start = 0;\n if (value[0] === '-') {\n start++;\n }\n while (value[start] === '0' || value[start] === '.') {\n start++;\n }\n let end = value.lastIndexOf('e');\n if (end === -1) {\n end = value.lastIndexOf('E');\n }\n if (end === -1) {\n end = value.length;\n }\n while ((value[end - 1] === '0' || value[end - 1] === '.') && end > start) {\n end--;\n }\n return {\n start,\n end\n };\n}\n//# sourceMappingURL=utils.js.map","import { compareNumber, countSignificantDigits, getUnsafeNumberReason, isInteger, isNumber, UnsafeNumberReason } from './utils.js';\n\n/**\n * A lossless number. Stores its numeric value as string\n */\nexport class LosslessNumber {\n // numeric value as string\n\n // type information\n isLosslessNumber = true;\n constructor(value) {\n if (!isNumber(value)) {\n throw new Error(`Invalid number (value: \"${value}\")`);\n }\n this.value = value;\n }\n\n /**\n * Get the value of the LosslessNumber as number or bigint.\n *\n * - a number is returned for safe numbers and decimal values that only lose some insignificant digits\n * - a bigint is returned for big integer numbers\n * - an Error is thrown for values that will overflow or underflow\n *\n * Note that you can implement your own strategy for conversion by just getting the value as string\n * via .toString(), and using util functions like isInteger, isSafeNumber, getUnsafeNumberReason,\n * and toSafeNumberOrThrow to convert it to a numeric value.\n */\n valueOf() {\n const unsafeReason = getUnsafeNumberReason(this.value);\n\n // safe or truncate_float\n if (unsafeReason === undefined || unsafeReason === UnsafeNumberReason.truncate_float) {\n return Number.parseFloat(this.value);\n }\n\n // truncate_integer\n if (isInteger(this.value)) {\n return BigInt(this.value);\n }\n\n // overflow or underflow\n throw new Error(`Cannot safely convert to number: the value '${this.value}' would ${unsafeReason} and become ${Number.parseFloat(this.value)}`);\n }\n\n /**\n * Get the value of the LosslessNumber as string.\n */\n toString() {\n return this.value;\n }\n\n // Note: we do NOT implement a .toJSON() method, and you should not implement\n // or use that, it cannot safely turn the numeric value in the string into\n // stringified JSON since it has to be parsed into a number first.\n}\n\n/**\n * Test whether a value is a LosslessNumber\n */\nexport function isLosslessNumber(value) {\n // @ts-expect-error\n return value && typeof value === 'object' && value.isLosslessNumber || false;\n}\n\n/**\n * Convert a number into a LosslessNumber if this is possible in a safe way\n * If the value has too many digits, or is NaN or Infinity, an error will be thrown\n */\nexport function toLosslessNumber(value) {\n const maxDigits = 15;\n if (countSignificantDigits(String(value)) > maxDigits) {\n throw new Error(`Invalid number: contains more than 15 digits and is most likely truncated and unsafe by itself (value: ${value})`);\n }\n if (Number.isNaN(value)) {\n throw new Error('Invalid number: NaN');\n }\n if (!Number.isFinite(value)) {\n throw new Error(`Invalid number: ${value}`);\n }\n return new LosslessNumber(String(value));\n}\n\n/**\n * Compare two lossless numbers.\n * Returns 1 when a is larger than b, 0 when they are equal,\n * and -1 when a is smaller than b.\n */\nexport function compareLosslessNumber(a, b) {\n return compareNumber(a.value, b.value);\n}\n//# sourceMappingURL=LosslessNumber.js.map","import { LosslessNumber } from './LosslessNumber.js';\nimport { isInteger } from './utils.js';\nexport function parseLosslessNumber(value) {\n return new LosslessNumber(value);\n}\nexport function parseNumberAndBigInt(value) {\n return isInteger(value) ? BigInt(value) : Number.parseFloat(value);\n}\n//# sourceMappingURL=numberParsers.js.map","import { isLosslessNumber } from './LosslessNumber.js';\n/**\n * Revive a json object.\n * Applies the reviver function recursively on all values in the JSON object.\n * @param json A JSON Object, Array, or value\n * @param reviver\n * A reviver function invoked with arguments `key` and `value`,\n * which must return a replacement value. The function context\n * (`this`) is the Object or Array that contains the currently\n * handled value.\n */\nexport function revive(json, reviver) {\n return reviveValue({\n '': json\n }, '', json, reviver);\n}\n\n/**\n * Revive a value\n */\nfunction reviveValue(context, key, value, reviver) {\n if (Array.isArray(value)) {\n return reviver.call(context, key, reviveArray(value, reviver));\n }\n if (value && typeof value === 'object' && !isLosslessNumber(value)) {\n // note the special case for LosslessNumber,\n // we don't want to iterate over the internals of a LosslessNumber\n return reviver.call(context, key, reviveObject(value, reviver));\n }\n return reviver.call(context, key, value);\n}\n\n/**\n * Revive the properties of an object\n */\nfunction reviveObject(object, reviver) {\n for (const key of Object.keys(object)) {\n const value = reviveValue(object, key, object[key], reviver);\n if (value !== undefined) {\n object[key] = value;\n } else {\n delete object[key];\n }\n }\n return object;\n}\n\n/**\n * Revive the properties of an Array\n */\nfunction reviveArray(array, reviver) {\n for (let i = 0; i < array.length; i++) {\n array[i] = reviveValue(array, String(i), array[i], reviver);\n }\n return array;\n}\n//# sourceMappingURL=revive.js.map","import { parseLosslessNumber } from './numberParsers.js';\nimport { revive } from './revive.js';\n/**\n * The LosslessJSON.parse() method parses a string as JSON, optionally transforming\n * the value produced by parsing.\n *\n * The parser is based on the parser of Tan Li Hou shared in\n * https://lihautan.com/json-parser-with-javascript/\n *\n * @param text\n * The string to parse as JSON. See the JSON object for a description of JSON syntax.\n *\n * @param [reviver]\n * If a function, prescribes how the value originally produced by parsing is\n * transformed, before being returned.\n *\n * @param [options=ParseOptions | NumberParserArgument]\n * Pass a custom number parser. Input is a string, and the output can be unknown\n * numeric value: number, bigint, LosslessNumber, or a custom BigNumber library.\n *\n * @returns Returns the Object corresponding to the given JSON text.\n *\n * @throws Throws a SyntaxError exception if the string to parse is not valid JSON.\n */\nexport function parse(text, reviver, options) {\n const optionsObj = typeof options === 'function' ? {\n parseNumber: options\n } : options;\n const parseNumber = optionsObj?.parseNumber ?? parseLosslessNumber;\n const onDuplicateKey = optionsObj?.onDuplicateKey ?? throwDuplicateKey;\n let i = 0;\n const value = parseValue();\n expectValue(value);\n expectEndOfInput();\n return reviver ? revive(value, reviver) : value;\n function parseObject() {\n if (text.charCodeAt(i) === codeOpeningBrace) {\n i++;\n skipWhitespace();\n const object = {};\n let initial = true;\n while (i < text.length && text.charCodeAt(i) !== codeClosingBrace) {\n if (!initial) {\n eatComma();\n skipWhitespace();\n } else {\n initial = false;\n }\n const start = i;\n const key = parseString();\n if (key === undefined) {\n throwObjectKeyExpected();\n return; // To make TS happy\n }\n skipWhitespace();\n eatColon();\n const value = parseValue();\n if (value === undefined) {\n throwObjectValueExpected();\n return; // To make TS happy\n }\n\n // handle duplicate keys\n // biome-ignore lint/suspicious/noPrototypeBuiltins: TODO: replace with hasOwn one day, when browser support is high enough\n if (Object.prototype.hasOwnProperty.call(object, key) && !isDeepEqual(value, object[key])) {\n // Note that we could also test `if(key in object) {...}`\n // or `if (object[key] !== 'undefined') {...}`, but that is slower.\n const returnedValue = onDuplicateKey({\n key,\n position: start + 1,\n oldValue: object[key],\n newValue: value\n });\n if (returnedValue !== undefined) {\n object[key] = returnedValue;\n }\n } else {\n object[key] = value;\n }\n }\n if (text.charCodeAt(i) !== codeClosingBrace) {\n throwObjectKeyOrEndExpected();\n }\n i++;\n return object;\n }\n }\n function parseArray() {\n if (text.charCodeAt(i) === codeOpeningBracket) {\n i++;\n skipWhitespace();\n const array = [];\n let initial = true;\n while (i < text.length && text.charCodeAt(i) !== codeClosingBracket) {\n if (!initial) {\n eatComma();\n } else {\n initial = false;\n }\n const value = parseValue();\n expectArrayItem(value);\n array.push(value);\n }\n if (text.charCodeAt(i) !== codeClosingBracket) {\n throwArrayItemOrEndExpected();\n }\n i++;\n return array;\n }\n }\n function parseValue() {\n skipWhitespace();\n const value = parseString() ?? parseNumeric() ?? parseObject() ?? parseArray() ?? parseKeyword('true', true) ?? parseKeyword('false', false) ?? parseKeyword('null', null);\n skipWhitespace();\n return value;\n }\n function parseKeyword(name, value) {\n if (text.slice(i, i + name.length) === name) {\n i += name.length;\n return value;\n }\n }\n function skipWhitespace() {\n while (isWhitespace(text.charCodeAt(i))) {\n i++;\n }\n }\n function parseString() {\n if (text.charCodeAt(i) === codeDoubleQuote) {\n i++;\n let result = '';\n while (i < text.length && text.charCodeAt(i) !== codeDoubleQuote) {\n if (text.charCodeAt(i) === codeBackslash) {\n const char = text[i + 1];\n const escapeChar = escapeCharacters[char];\n if (escapeChar !== undefined) {\n result += escapeChar;\n i++;\n } else if (char === 'u') {\n if (isHex(text.charCodeAt(i + 2)) && isHex(text.charCodeAt(i + 3)) && isHex(text.charCodeAt(i + 4)) && isHex(text.charCodeAt(i + 5))) {\n result += String.fromCharCode(Number.parseInt(text.slice(i + 2, i + 6), 16));\n i += 5;\n } else {\n throwInvalidUnicodeCharacter(i);\n }\n } else {\n throwInvalidEscapeCharacter(i);\n }\n } else {\n if (isValidStringCharacter(text.charCodeAt(i))) {\n result += text[i];\n } else {\n throwInvalidCharacter(text[i]);\n }\n }\n i++;\n }\n expectEndOfString();\n i++;\n return result;\n }\n }\n function parseNumeric() {\n const start = i;\n if (text.charCodeAt(i) === codeMinus) {\n i++;\n expectDigit(start);\n }\n if (text.charCodeAt(i) === codeZero) {\n i++;\n } else if (isNonZeroDigit(text.charCodeAt(i))) {\n i++;\n while (isDigit(text.charCodeAt(i))) {\n i++;\n }\n }\n if (text.charCodeAt(i) === codeDot) {\n i++;\n expectDigit(start);\n while (isDigit(text.charCodeAt(i))) {\n i++;\n }\n }\n if (text.charCodeAt(i) === codeLowercaseE || text.charCodeAt(i) === codeUppercaseE) {\n i++;\n if (text.charCodeAt(i) === codeMinus || text.charCodeAt(i) === codePlus) {\n i++;\n }\n expectDigit(start);\n while (isDigit(text.charCodeAt(i))) {\n i++;\n }\n }\n if (i > start) {\n return parseNumber(text.slice(start, i));\n }\n }\n function eatComma() {\n if (text.charCodeAt(i) !== codeComma) {\n throw new SyntaxError(`Comma ',' expected after value ${gotAt()}`);\n }\n i++;\n }\n function eatColon() {\n if (text.charCodeAt(i) !== codeColon) {\n throw new SyntaxError(`Colon ':' expected after property name ${gotAt()}`);\n }\n i++;\n }\n function expectValue(value) {\n if (value === undefined) {\n throw new SyntaxError(`JSON value expected ${gotAt()}`);\n }\n }\n function expectArrayItem(value) {\n if (value === undefined) {\n throw new SyntaxError(`Array item expected ${gotAt()}`);\n }\n }\n function expectEndOfInput() {\n if (i < text.length) {\n throw new SyntaxError(`Expected end of input ${gotAt()}`);\n }\n }\n function expectDigit(start) {\n if (!isDigit(text.charCodeAt(i))) {\n const numSoFar = text.slice(start, i);\n throw new SyntaxError(`Invalid number '${numSoFar}', expecting a digit ${gotAt()}`);\n }\n }\n function expectEndOfString() {\n if (text.charCodeAt(i) !== codeDoubleQuote) {\n throw new SyntaxError(`End of string '\"' expected ${gotAt()}`);\n }\n }\n function throwObjectKeyExpected() {\n throw new SyntaxError(`Quoted object key expected ${gotAt()}`);\n }\n function throwDuplicateKey(_ref) {\n let {\n key,\n position\n } = _ref;\n throw new SyntaxError(`Duplicate key '${key}' encountered at position ${position}`);\n }\n function throwObjectKeyOrEndExpected() {\n throw new SyntaxError(`Quoted object key or end of object '}' expected ${gotAt()}`);\n }\n function throwArrayItemOrEndExpected() {\n throw new SyntaxError(`Array item or end of array ']' expected ${gotAt()}`);\n }\n function throwInvalidCharacter(char) {\n throw new SyntaxError(`Invalid character '${char}' ${pos()}`);\n }\n function throwInvalidEscapeCharacter(start) {\n const chars = text.slice(start, start + 2);\n throw new SyntaxError(`Invalid escape character '${chars}' ${pos()}`);\n }\n function throwObjectValueExpected() {\n throw new SyntaxError(`Object value expected after ':' ${pos()}`);\n }\n function throwInvalidUnicodeCharacter(start) {\n const chars = text.slice(start, start + 6);\n throw new SyntaxError(`Invalid unicode character '${chars}' ${pos()}`);\n }\n\n // zero based character position\n function pos() {\n return `at position ${i}`;\n }\n function got() {\n return i < text.length ? `but got '${text[i]}'` : 'but reached end of input';\n }\n function gotAt() {\n return `${got()} ${pos()}`;\n }\n}\nfunction isWhitespace(code) {\n return code === codeSpace || code === codeNewline || code === codeTab || code === codeReturn;\n}\nfunction isHex(code) {\n return code >= codeZero && code <= codeNine || code >= codeUppercaseA && code <= codeUppercaseF || code >= codeLowercaseA && code <= codeLowercaseF;\n}\nfunction isDigit(code) {\n return code >= codeZero && code <= codeNine;\n}\nfunction isNonZeroDigit(code) {\n return code >= codeOne && code <= codeNine;\n}\nexport function isValidStringCharacter(code) {\n return code >= 0x20 && code <= 0x10ffff;\n}\nexport function isDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.length === b.length && a.every((item, index) => isDeepEqual(item, b[index]));\n }\n if (isObject(a) && isObject(b)) {\n const keys = [...new Set([...Object.keys(a), ...Object.keys(b)])];\n return keys.every(key => isDeepEqual(a[key], b[key]));\n }\n return false;\n}\nfunction isObject(value) {\n return typeof value === 'object' && value !== null;\n}\n\n// map with all escape characters\nconst escapeCharacters = {\n '\"': '\"',\n '\\\\': '\\\\',\n '/': '/',\n b: '\\b',\n f: '\\f',\n n: '\\n',\n r: '\\r',\n t: '\\t'\n // note that \\u is handled separately in parseString()\n};\nconst codeBackslash = 0x5c; // \"\\\"\nconst codeOpeningBrace = 0x7b; // \"{\"\nconst codeClosingBrace = 0x7d; // \"}\"\nconst codeOpeningBracket = 0x5b; // \"[\"\nconst codeClosingBracket = 0x5d; // \"]\"\nconst codeSpace = 0x20; // \" \"\nconst codeNewline = 0xa; // \"\\n\"\nconst codeTab = 0x9; // \"\\t\"\nconst codeReturn = 0xd; // \"\\r\"\nconst codeDoubleQuote = 0x0022; // \"\nconst codePlus = 0x2b; // \"+\"\nconst codeMinus = 0x2d; // \"-\"\nconst codeZero = 0x30;\nconst codeOne = 0x31;\nconst codeNine = 0x39;\nconst codeComma = 0x2c; // \",\"\nconst codeDot = 0x2e; // \".\" (dot, period)\nconst codeColon = 0x3a; // \":\"\nexport const codeUppercaseA = 0x41; // \"A\"\nexport const codeLowercaseA = 0x61; // \"a\"\nexport const codeUppercaseE = 0x45; // \"E\"\nexport const codeLowercaseE = 0x65; // \"e\"\nexport const codeUppercaseF = 0x46; // \"F\"\nexport const codeLowercaseF = 0x66; // \"f\"\n//# sourceMappingURL=parse.js.map","import { isNumber } from './utils.js';\n\n/**\n * The LosslessJSON.stringify() method converts a JavaScript value to a JSON string,\n * optionally replacing values if a replacer function is specified, or\n * optionally including only the specified properties if a replacer array is specified.\n *\n * @param value\n * The value to convert to a JSON string.\n *\n * @param [replacer]\n * A function that alters the behavior of the stringification process,\n * or an array of String and Number objects that serve as a whitelist for\n * selecting the properties of the value object to be included in the JSON string.\n * If this value is null or not provided, all properties of the object are\n * included in the resulting JSON string.\n *\n * @param [space]\n * A String or Number object that's used to insert white space into the output\n * JSON string for readability purposes. If this is a Number, it indicates the\n * number of space characters to use as white space; this number is capped at 10\n * if it's larger than that. Values less than 1 indicate that no space should be\n * used. If this is a String, the string (or the first 10 characters of the string,\n * if it's longer than that) is used as white space. If this parameter is not\n * provided (or is null), no white space is used.\n *\n * @param [numberStringifiers]\n * An optional list with additional number stringifiers, for example to serialize\n * a BigNumber. The output of the function must be valid stringified JSON.\n * When `undefined` is returned, the property will be deleted from the object.\n * The difference with using a `replacer` is that the output of a `replacer`\n * must be JSON and will be stringified afterwards, whereas the output of the\n * `numberStringifiers` is already stringified JSON.\n *\n * @returns Returns the string representation of the JSON object.\n */\nexport function stringify(value, replacer, space, numberStringifiers) {\n const resolvedSpace = resolveSpace(space);\n const replacedValue = typeof replacer === 'function' ? replacer.call({\n '': value\n }, '', value) : value;\n return stringifyValue(replacedValue, '');\n\n /**\n * Stringify a value\n */\n function stringifyValue(value, indent) {\n if (Array.isArray(numberStringifiers)) {\n const stringifier = numberStringifiers.find(item => item.test(value));\n if (stringifier) {\n const str = stringifier.stringify(value);\n if (typeof str !== 'string' || !isNumber(str)) {\n throw new Error(`Invalid JSON number: output of a number stringifier must be a string containing a JSON number (output: ${str})`);\n }\n return str;\n }\n }\n\n // boolean, null, number, string, or date\n if (typeof value === 'boolean' || typeof value === 'number' || typeof value === 'string' || value === null || value instanceof Date || value instanceof Boolean || value instanceof Number || value instanceof String) {\n return JSON.stringify(value);\n }\n\n // lossless number, the secret ingredient :)\n // @ts-expect-error\n if (value?.isLosslessNumber) {\n return value.toString();\n }\n\n // BigInt\n if (typeof value === 'bigint') {\n return value.toString();\n }\n\n // Array\n if (Array.isArray(value)) {\n return stringifyArray(value, indent);\n }\n\n // Object (test lastly!)\n if (value && typeof value === 'object') {\n return stringifyObject(value, indent);\n }\n return undefined;\n }\n\n /**\n * Stringify an array\n */\n function stringifyArray(array, indent) {\n if (array.length === 0) {\n return '[]';\n }\n const childIndent = resolvedSpace ? indent + resolvedSpace : undefined;\n let str = resolvedSpace ? '[\\n' : '[';\n for (let i = 0; i < array.length; i++) {\n const item = typeof replacer === 'function' ? replacer.call(array, String(i), array[i]) : array[i];\n if (resolvedSpace) {\n str += childIndent;\n }\n if (typeof item !== 'undefined' && typeof item !== 'function') {\n str += stringifyValue(item, childIndent);\n } else {\n str += 'null';\n }\n if (i < array.length - 1) {\n str += resolvedSpace ? ',\\n' : ',';\n }\n }\n str += resolvedSpace ? `\\n${indent}]` : ']';\n return str;\n }\n\n /**\n * Stringify an object\n */\n function stringifyObject(object, indent) {\n if (typeof object.toJSON === 'function') {\n return stringify(object.toJSON(), replacer, space, undefined);\n }\n const keys = Array.isArray(replacer) ? replacer.map(String) : Object.keys(object);\n if (keys.length === 0) {\n return '{}';\n }\n const childIndent = resolvedSpace ? indent + resolvedSpace : undefined;\n let first = true;\n let str = resolvedSpace ? '{\\n' : '{';\n for (const key of keys) {\n const value = typeof replacer === 'function' ? replacer.call(object, key, object[key]) : object[key];\n if (includeProperty(key, value)) {\n if (first) {\n first = false;\n } else {\n str += resolvedSpace ? ',\\n' : ',';\n }\n const keyStr = JSON.stringify(key);\n str += resolvedSpace ? `${childIndent + keyStr}: ` : `${keyStr}:`;\n str += stringifyValue(value, childIndent);\n }\n }\n str += resolvedSpace ? `\\n${indent}}` : '}';\n return str;\n }\n\n /**\n * Test whether to include a property in a stringified object or not.\n */\n function includeProperty(_key, value) {\n return typeof value !== 'undefined' && typeof value !== 'function' && typeof value !== 'symbol';\n }\n}\n\n/**\n * Resolve a JSON stringify space:\n * replace a number with a string containing that number of spaces\n */\nfunction resolveSpace(space) {\n if (typeof space === 'number') {\n return ' '.repeat(space);\n }\n if (typeof space === 'string' && space !== '') {\n return space;\n }\n return undefined;\n}\n//# sourceMappingURL=stringify.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParsingError = void 0;\nclass ParsingError extends Error {\n constructor(message, cause) {\n super(message);\n this.cause = cause;\n }\n}\nexports.ParsingError = ParsingError;\nlet parsingState;\nfunction nextChild() {\n return element(false) || text() || comment() || cdata() || processingInstruction();\n}\nfunction nextRootChild() {\n match(/\\s*/);\n return element(true) || comment() || doctype() || processingInstruction();\n}\nfunction parseDocument() {\n const declaration = processingInstruction();\n const children = [];\n let documentRootNode;\n let child = nextRootChild();\n while (child) {\n if (child.node.type === 'Element') {\n if (documentRootNode) {\n throw new Error('Found multiple root nodes');\n }\n documentRootNode = child.node;\n }\n if (!child.excluded) {\n children.push(child.node);\n }\n child = nextRootChild();\n }\n if (!documentRootNode) {\n throw new ParsingError('Failed to parse XML', 'Root Element not found');\n }\n if (parsingState.xml.length !== 0) {\n throw new ParsingError('Failed to parse XML', 'Not Well-Formed XML');\n }\n return {\n declaration: declaration ? declaration.node : null,\n root: documentRootNode,\n children\n };\n}\nfunction processingInstruction() {\n const m = match(/^<\\?([\\w-:.]+)\\s*/);\n if (!m)\n return;\n // tag\n const node = {\n name: m[1],\n type: 'ProcessingInstruction',\n content: ''\n };\n const endMarkerIndex = parsingState.xml.indexOf('?>');\n if (endMarkerIndex > -1) {\n node.content = parsingState.xml.substring(0, endMarkerIndex).trim();\n parsingState.xml = parsingState.xml.slice(endMarkerIndex);\n }\n else {\n throw new ParsingError('Failed to parse XML', 'ProcessingInstruction closing tag not found');\n }\n match(/\\?>/);\n return {\n excluded: parsingState.options.filter(node) === false,\n node\n };\n}\nfunction element(matchRoot) {\n const m = match(/^<([^?!\\s]+)\\s*/);\n if (!m)\n return;\n // name\n const node = {\n type: 'Element',\n name: m[1],\n attributes: {},\n children: []\n };\n const excluded = matchRoot ? false : parsingState.options.filter(node) === false;\n // attributes\n while (!(eos() || is('>') || is('?>') || is('/>'))) {\n const attr = attribute();\n if (attr) {\n node.attributes[attr.name] = attr.value;\n }\n else {\n return;\n }\n }\n // self closing tag\n if (match(/^\\s*\\/>/)) {\n node.children = null;\n return {\n excluded,\n node\n };\n }\n match(/\\??>/);\n // children\n let child = nextChild();\n while (child) {\n if (!child.excluded) {\n node.children.push(child.node);\n }\n child = nextChild();\n }\n // closing\n if (parsingState.options.strictMode) {\n const closingTag = ``;\n if (parsingState.xml.startsWith(closingTag)) {\n parsingState.xml = parsingState.xml.slice(closingTag.length);\n }\n else {\n throw new ParsingError('Failed to parse XML', `Closing tag not matching \"${closingTag}\"`);\n }\n }\n else {\n match(/^<\\/[\\w-:.\\u00C0-\\u00FF]+\\s*>/);\n }\n return {\n excluded,\n node\n };\n}\nfunction doctype() {\n const m = match(/^]*>/) ||\n match(/^]*>/) ||\n match(/^/) ||\n match(/^/);\n if (m) {\n const node = {\n type: 'DocumentType',\n content: m[0]\n };\n return {\n excluded: parsingState.options.filter(node) === false,\n node\n };\n }\n}\nfunction cdata() {\n if (parsingState.xml.startsWith('');\n if (endPositionStart > -1) {\n const endPositionFinish = endPositionStart + 3;\n const node = {\n type: 'CDATA',\n content: parsingState.xml.substring(0, endPositionFinish)\n };\n parsingState.xml = parsingState.xml.slice(endPositionFinish);\n return {\n excluded: parsingState.options.filter(node) === false,\n node\n };\n }\n }\n}\nfunction comment() {\n const m = match(/^/);\n if (m) {\n const node = {\n type: 'Comment',\n content: m[0]\n };\n return {\n excluded: parsingState.options.filter(node) === false,\n node\n };\n }\n}\nfunction text() {\n const m = match(/^([^<]+)/);\n if (m) {\n const node = {\n type: 'Text',\n content: m[1]\n };\n return {\n excluded: parsingState.options.filter(node) === false,\n node\n };\n }\n}\nfunction attribute() {\n const m = match(/([^=]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|[^>\\s]+)\\s*/);\n if (m) {\n return {\n name: m[1].trim(),\n value: stripQuotes(m[2].trim())\n };\n }\n}\nfunction stripQuotes(val) {\n return val.replace(/^['\"]|['\"]$/g, '');\n}\n/**\n * Match `re` and advance the string.\n */\nfunction match(re) {\n const m = parsingState.xml.match(re);\n if (m) {\n parsingState.xml = parsingState.xml.slice(m[0].length);\n return m;\n }\n}\n/**\n * End-of-source.\n */\nfunction eos() {\n return 0 === parsingState.xml.length;\n}\n/**\n * Check for `prefix`.\n */\nfunction is(prefix) {\n return 0 === parsingState.xml.indexOf(prefix);\n}\n/**\n * Parse the given XML string into an object.\n */\nfunction parseXml(xml, options = {}) {\n xml = xml.trim();\n const filter = options.filter || (() => true);\n parsingState = {\n xml,\n options: Object.assign(Object.assign({}, options), { filter, strictMode: options.strictMode === true })\n };\n return parseDocument();\n}\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = parseXml;\n}\nexports.default = parseXml;\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst xml_parser_xo_1 = __importDefault(require(\"xml-parser-xo\"));\nfunction newLine(state) {\n if (!state.options.indentation && !state.options.lineSeparator)\n return;\n state.content += state.options.lineSeparator;\n let i;\n for (i = 0; i < state.level; i++) {\n state.content += state.options.indentation;\n }\n}\nfunction indent(state) {\n state.content = state.content.replace(/ +$/, '');\n let i;\n for (i = 0; i < state.level; i++) {\n state.content += state.options.indentation;\n }\n}\nfunction appendContent(state, content) {\n state.content += content;\n}\nfunction processNode(node, state, preserveSpace) {\n if (node.type === 'Element') {\n processElementNode(node, state, preserveSpace);\n }\n else if (node.type === 'ProcessingInstruction') {\n processProcessingIntruction(node, state);\n }\n else if (typeof node.content === 'string') {\n processContent(node.content, state, preserveSpace);\n }\n else {\n throw new Error('Unknown node type: ' + node.type);\n }\n}\nfunction processContent(content, state, preserveSpace) {\n if (!preserveSpace) {\n const trimmedContent = content.trim();\n if (state.options.lineSeparator) {\n content = trimmedContent;\n }\n else if (trimmedContent.length === 0) {\n content = trimmedContent;\n }\n }\n if (content.length > 0) {\n if (!preserveSpace && state.content.length > 0) {\n newLine(state);\n }\n appendContent(state, content);\n }\n}\nfunction isPathMatchingIgnoredPaths(path, ignoredPaths) {\n const fullPath = '/' + path.join('/');\n const pathLastPart = path[path.length - 1];\n return ignoredPaths.includes(pathLastPart) || ignoredPaths.includes(fullPath);\n}\nfunction processElementNode(node, state, preserveSpace) {\n state.path.push(node.name);\n if (!preserveSpace && state.content.length > 0) {\n newLine(state);\n }\n appendContent(state, '<' + node.name);\n processAttributes(state, node.attributes);\n if (node.children === null || (state.options.forceSelfClosingEmptyTag && node.children.length === 0)) {\n const selfClosingNodeClosingTag = state.options.whiteSpaceAtEndOfSelfclosingTag ? ' />' : '/>';\n // self-closing node\n appendContent(state, selfClosingNodeClosingTag);\n }\n else if (node.children.length === 0) {\n // empty node\n appendContent(state, '>');\n }\n else {\n const nodeChildren = node.children;\n appendContent(state, '>');\n state.level++;\n let nodePreserveSpace = node.attributes['xml:space'] === 'preserve' || preserveSpace;\n let ignoredPath = false;\n if (!nodePreserveSpace && state.options.ignoredPaths) {\n ignoredPath = isPathMatchingIgnoredPaths(state.path, state.options.ignoredPaths);\n nodePreserveSpace = ignoredPath;\n }\n if (!nodePreserveSpace && state.options.collapseContent) {\n let containsTextNodes = false;\n let containsTextNodesWithLineBreaks = false;\n let containsNonTextNodes = false;\n nodeChildren.forEach(function (child, index) {\n if (child.type === 'Text') {\n if (child.content.includes('\\n')) {\n containsTextNodesWithLineBreaks = true;\n child.content = child.content.trim();\n }\n else if ((index === 0 || index === nodeChildren.length - 1) && !preserveSpace) {\n if (child.content.trim().length === 0) {\n // If the text node is at the start or end and is empty, it should be ignored when formatting\n child.content = '';\n }\n }\n // If there is some content or whitespaces have been removed and there is no other siblings\n if (child.content.trim().length > 0 || nodeChildren.length === 1) {\n containsTextNodes = true;\n }\n }\n else if (child.type === 'CDATA') {\n containsTextNodes = true;\n }\n else {\n containsNonTextNodes = true;\n }\n });\n if (containsTextNodes && (!containsNonTextNodes || !containsTextNodesWithLineBreaks)) {\n nodePreserveSpace = true;\n }\n }\n nodeChildren.forEach(function (child) {\n processNode(child, state, preserveSpace || nodePreserveSpace);\n });\n state.level--;\n if (!preserveSpace && !nodePreserveSpace) {\n newLine(state);\n }\n if (ignoredPath) {\n indent(state);\n }\n appendContent(state, '');\n }\n state.path.pop();\n}\nfunction processAttributes(state, attributes) {\n Object.keys(attributes).forEach(function (attr) {\n const escaped = attributes[attr].replace(/\"/g, '"');\n appendContent(state, ' ' + attr + '=\"' + escaped + '\"');\n });\n}\nfunction processProcessingIntruction(node, state) {\n if (state.content.length > 0) {\n newLine(state);\n }\n appendContent(state, '');\n}\n/**\n * Converts the given XML into human readable format.\n */\nfunction formatXml(xml, options = {}) {\n options.indentation = 'indentation' in options ? options.indentation : ' ';\n options.collapseContent = options.collapseContent === true;\n options.lineSeparator = 'lineSeparator' in options ? options.lineSeparator : '\\r\\n';\n options.whiteSpaceAtEndOfSelfclosingTag = options.whiteSpaceAtEndOfSelfclosingTag === true;\n options.throwOnFailure = options.throwOnFailure !== false;\n try {\n const parsedXml = (0, xml_parser_xo_1.default)(xml, { filter: options.filter, strictMode: options.strictMode });\n const state = { content: '', level: 0, options: options, path: [] };\n if (parsedXml.declaration) {\n processProcessingIntruction(parsedXml.declaration, state);\n }\n parsedXml.children.forEach(function (child) {\n processNode(child, state, false);\n });\n if (!options.lineSeparator) {\n return state.content;\n }\n return state.content\n .replace(/\\r\\n/g, '\\n')\n .replace(/\\n/g, options.lineSeparator);\n }\n catch (err) {\n if (options.throwOnFailure) {\n throw err;\n }\n return xml;\n }\n}\nformatXml.minify = (xml, options = {}) => {\n return formatXml(xml, Object.assign(Object.assign({}, options), { indentation: '', lineSeparator: '' }));\n};\nif (typeof module !== 'undefined' && typeof exports === 'object') {\n module.exports = formatXml;\n}\nexports.default = formatXml;\n//# sourceMappingURL=index.js.map","import { acceptHMRUpdate, defineStore, storeToRefs } from \"pinia\";\nimport { computed, reactive, Ref, ref } from \"vue\";\nimport Header from \"@/resources/Header\";\nimport type EndpointDetails from \"@/resources/EndpointDetails\";\nimport { FailedMessage, ExceptionDetails, FailedMessageStatus } from \"@/resources/FailedMessage\";\nimport { useEditRetryStore } from \"@/stores/EditRetryStore\";\nimport { useConfigurationStore } from \"@/stores/ConfigurationStore\";\nimport Message, { MessageStatus } from \"@/resources/Message\";\nimport moment from \"moment/moment\";\nimport { parse, stringify } from \"lossless-json\";\nimport xmlFormat from \"xml-formatter\";\nimport { DataContainer } from \"./DataContainer\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport EditRetryResponse from \"@/resources/EditRetryResponse\";\nimport { EditedMessage } from \"@/resources/EditMessage\";\nimport useEnvironmentAndVersionsAutoRefresh from \"@/composables/useEnvironmentAndVersionsAutoRefresh\";\n\ninterface Model {\n id?: string;\n message_id?: string;\n conversation_id?: string;\n message_type?: string;\n sending_endpoint?: EndpointDetails;\n receiving_endpoint?: EndpointDetails;\n body_url?: string;\n status?: MessageStatus;\n processed_at?: string;\n failure_status: Partial<{\n retried: boolean;\n archiving: boolean;\n restoring: boolean;\n archived: boolean;\n resolved: boolean;\n delete_soon: boolean;\n retry_in_progress: boolean;\n delete_in_progress: boolean;\n restore_in_progress: boolean;\n submitted_for_retrial: boolean;\n }>;\n failure_metadata: Partial<{\n exception: ExceptionDetails;\n number_of_processing_attempts: number;\n status: FailedMessageStatus;\n time_of_failure: string;\n last_modified: string;\n edited: boolean;\n edit_of: string;\n deleted_in: string;\n redirect: boolean;\n }>;\n dialog_status: Partial<{\n show_delete_confirm: boolean;\n show_restore_confirm: boolean;\n show_retry_confirm: boolean;\n show_edit_retry_modal: boolean;\n }>;\n invoked_saga: Partial<{\n has_saga: boolean;\n saga_id: string;\n saga_type: string;\n }>;\n}\n\nexport const useMessageStore = defineStore(\"MessageStore\", () => {\n const headers = ref>({ data: [] });\n const body = ref>({ data: {} });\n const state = reactive>({ data: { failure_metadata: {}, failure_status: {}, dialog_status: {}, invoked_saga: {} } });\n const editRetryResponse = ref(null);\n let bodyLoadedId = \"\";\n let conversationLoadedId = \"\";\n const conversationData = ref>({ data: [] });\n const editRetryStore = useEditRetryStore();\n const configStore = useConfigurationStore();\n const serviceControlStore = useServiceControlStore();\n const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh();\n const areSimpleHeadersSupported = environmentStore.serviceControlIsGreaterThan(\"5.2.0\");\n\n const { config: edit_and_retry_config } = storeToRefs(editRetryStore);\n const { configuration } = storeToRefs(configStore);\n const error_retention_period = computed(() => moment.duration(configuration.value?.data_retention?.error_retention_period).asHours());\n\n // eslint-disable-next-line promise/catch-or-return,promise/prefer-await-to-then,promise/valid-params\n Promise.all([editRetryStore.loadConfig(), configStore.refresh()]).then();\n\n function reset() {\n state.data = { failure_metadata: {}, failure_status: {}, dialog_status: {}, invoked_saga: {} };\n headers.value.data = [];\n body.value.data = { value: \"\", content_type: \"\" };\n bodyLoadedId = \"\";\n conversationLoadedId = \"\";\n conversationData.value.data = [];\n editRetryResponse.value = null;\n }\n\n async function loadFailedMessage(id: string) {\n state.loading = true;\n state.failed_to_load = false;\n state.not_found = false;\n\n try {\n const response = await serviceControlStore.fetchFromServiceControl(`errors/last/${id}`);\n if (response.status === 404) {\n state.not_found = true;\n return;\n } else if (!response.ok) {\n state.failed_to_load = true;\n return;\n }\n\n const message = (await response.json()) as FailedMessage;\n state.data.message_id = message.message_id;\n state.data.message_type = message.message_type;\n state.data.sending_endpoint = message.sending_endpoint;\n state.data.receiving_endpoint = message.receiving_endpoint;\n state.data.failure_status.archived = message.status === FailedMessageStatus.Archived;\n state.data.failure_status.resolved = message.status === FailedMessageStatus.Resolved;\n state.data.failure_status.retried = message.status === FailedMessageStatus.RetryIssued;\n state.data.failure_metadata.last_modified = message.last_modified;\n state.data.failure_metadata.exception = message.exception;\n state.data.failure_metadata.time_of_failure = message.time_of_failure;\n state.data.failure_metadata.edited = message.edited;\n state.data.failure_metadata.edit_of = message.edit_of;\n state.data.failure_metadata.number_of_processing_attempts = message.number_of_processing_attempts;\n state.data.failure_metadata.status = message.status;\n\n await loadMessage(state.data.message_id, id);\n } catch {\n state.failed_to_load = true;\n return;\n } finally {\n state.loading = false;\n }\n\n const countdown = moment(state.data.failure_metadata.last_modified).add(error_retention_period.value, \"hours\");\n state.data.failure_status.delete_soon = countdown < moment();\n state.data.failure_metadata.deleted_in = countdown.format();\n }\n\n async function loadMessage(messageId: string, id: string) {\n state.data.id = id;\n state.loading = headers.value.loading = true;\n state.failed_to_load = headers.value.failed_to_load = false;\n state.not_found = headers.value.not_found = false;\n\n try {\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`messages/search/${messageId}`);\n\n const message = data.find((value) => value.id === id);\n\n if (!message) {\n state.not_found = headers.value.not_found = true;\n return;\n }\n const invokedSaga = message?.invoked_sagas?.[0];\n state.data.message_id = message.message_id;\n state.data.conversation_id = message.conversation_id;\n state.data.body_url = message.body_url;\n state.data.message_type = message.message_type;\n state.data.sending_endpoint = message.sending_endpoint;\n state.data.receiving_endpoint = message.receiving_endpoint;\n state.data.status = message.status;\n state.data.processed_at = message.processed_at;\n if (invokedSaga) {\n state.data.invoked_saga.has_saga = true;\n state.data.invoked_saga.saga_id = invokedSaga.saga_id;\n state.data.invoked_saga.saga_type = invokedSaga.saga_type;\n }\n headers.value.data = message.headers;\n } catch {\n state.failed_to_load = headers.value.failed_to_load = true;\n } finally {\n state.loading = headers.value.loading = false;\n }\n }\n\n async function loadConversation(conversationId: string) {\n if (conversationId === conversationLoadedId) {\n return;\n }\n\n conversationLoadedId = conversationId;\n conversationData.value.loading = true;\n try {\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`conversations/${conversationId}`);\n\n conversationData.value.data = data;\n } catch {\n conversationData.value.failed_to_load = true;\n } finally {\n conversationData.value.loading = false;\n }\n }\n\n async function downloadBody() {\n if (!state.data.body_url) {\n return;\n }\n if (state.data.id === bodyLoadedId) {\n return;\n }\n\n bodyLoadedId = state.data.id ?? \"\";\n body.value.loading = true;\n body.value.failed_to_load = false;\n\n try {\n const response = await serviceControlStore.fetchFromServiceControl(state.data.body_url.substring(1));\n if (response.status === 404) {\n body.value.not_found = true;\n\n return;\n }\n\n if (response.status === 204) {\n body.value.data.no_content = true;\n\n return;\n }\n\n const contentType = response.headers.get(\"content-type\");\n body.value.data.content_type = contentType ?? \"text/plain\";\n body.value.data.value = await response.text();\n\n if (contentType === \"application/json\") {\n body.value.data.value = stringify(parse(body.value.data.value), null, 2) ?? body.value.data.value;\n }\n if (contentType === \"text/xml\") {\n body.value.data.value = xmlFormat(body.value.data.value, { indentation: \" \", collapseContent: true });\n }\n } catch {\n body.value.failed_to_load = true;\n } finally {\n body.value.loading = false;\n }\n }\n\n async function archiveMessage() {\n if (state.data.id) {\n const response = await serviceControlStore.patchToServiceControl(\"errors/archive/\", [state.data.id]);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n state.data.failure_status.archiving = true;\n }\n }\n\n async function restoreMessage() {\n if (state.data.id) {\n const response = await serviceControlStore.patchToServiceControl(\"errors/unarchive/\", [state.data.id]);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n state.data.failure_status.restoring = true;\n }\n }\n\n async function retryMessage() {\n if (state.data.id) {\n await retryMessages([state.data.id]);\n state.data.failure_status.retry_in_progress = true;\n }\n }\n\n async function retryMessages(ids: string[]) {\n const response = await serviceControlStore.postToServiceControl(\"errors/retry\", ids);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n }\n\n async function retryEditedMessage(id: string, editedMessage: Ref) {\n const payload = {\n message_body: editedMessage.value.messageBody,\n message_headers: areSimpleHeadersSupported.value\n ? editedMessage.value.headers.reduce(\n (result, header) => {\n const { key, value } = header as { key: string; value: string };\n result[key] = value;\n return result;\n },\n {} as { [key: string]: string }\n )\n : editedMessage.value.headers,\n };\n const response = await serviceControlStore.postToServiceControl(`edit/${id}`, payload);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n //older versions of SC return no payload about the edit result\n const bodyText = await response.text();\n if (bodyText === \"\") {\n editRetryResponse.value = {\n edit_ignored: false,\n };\n } else {\n editRetryResponse.value = parse(bodyText) as EditRetryResponse;\n }\n }\n\n async function pollForNextUpdate(status: FailedMessageStatus) {\n if (!state.data.id) {\n return;\n }\n\n let maxRetries = 60; // We try for 60 seconds\n\n do {\n // eslint-disable-next-line no-await-in-loop\n await new Promise((resolve) => setTimeout(resolve, 1000));\n // eslint-disable-next-line no-await-in-loop\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`errors/last/${state.data.id}`);\n if (status === data.status) {\n break;\n }\n } while (maxRetries-- > 0);\n\n if (maxRetries === 0) {\n // It never changed so no need to refresh UI\n return;\n }\n\n const id = state.data.id;\n reset();\n await loadFailedMessage(id);\n }\n\n async function exportMessage() {\n if (state.failed_to_load || state.not_found) {\n return \"\";\n }\n\n let exportString = \"\";\n if (state.data.failure_metadata.exception?.stack_trace !== undefined) {\n exportString += \"STACKTRACE\\n\";\n exportString += state.data.failure_metadata.exception.stack_trace;\n exportString += \"\\n\\n\";\n }\n\n exportString += \"HEADERS\";\n for (let i = 0; i < headers.value.data.length; i++) {\n exportString += `\\n${headers.value.data[i].key}: ${headers.value.data[i].value}`;\n }\n\n await downloadBody();\n\n if (!(body.value.not_found || body.value.failed_to_load || body.value.data.no_content)) {\n exportString += \"\\n\\nMESSAGE BODY\\n\";\n exportString += body.value.data.value;\n }\n\n return exportString;\n }\n\n return {\n headers,\n body,\n state,\n edit_and_retry_config,\n editRetryResponse,\n reset,\n loadMessage,\n loadFailedMessage,\n loadConversation,\n downloadBody,\n exportMessage,\n archiveMessage,\n restoreMessage,\n retryMessage,\n retryMessages,\n conversationData,\n pollForNextUpdate,\n retryEditedMessage,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useMessageStore, import.meta.hot));\n}\n\nexport type MessageStore = ReturnType;\n"],"names":["useEditRetryStore","defineStore","config","ref","serviceControlStore","useServiceControlStore","loadConfig","data","global","factory","module","this","hookCallback","hooks","setHookCallback","callback","isArray","input","isObject","hasOwnProp","a","b","isObjectEmpty","obj","k","isUndefined","isNumber","isDate","map","arr","fn","res","i","arrLen","extend","createUTC","format","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","m","some","fun","len","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","to","from","prop","val","momentPropertiesLen","Moment","isMoment","warn","msg","deprecate","firstTime","args","arg","key","argLen","deprecations","deprecateSimple","name","isFunction","set","mergeConfigs","parentConfig","childConfig","Locale","keys","defaultCalendar","calendar","mom","now","output","zeroFill","number","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","array","length","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","string","isFuture","pastFuture","diff","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","u","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","s","regexEscape","matched","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","value","tokens","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","get","d","isUTC","month","date","stringGet","stringSet","prioritized","prioritizedLen","mod","n","x","indexOf","o","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","h","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","j","next","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","require","getSetGlobalLocale","values","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","l","match","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","result","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","defaults","c","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","max","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offset","separator","offsetFromString","chunkOffset","matcher","matches","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","ret","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","subtract","isString","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","item","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","clone","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","anchor","anchor2","adjust","toString","toISOString","keepOffset","utc","inspect","zone","prefix","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","dir","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","alias","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","isInteger","INTEGER_REGEX","NUMBER_REGEX","isSafeNumber","num","parsed","valueDigits","extractSignificantDigits","parsedDigits","UnsafeNumberReason","getUnsafeNumberReason","start","end","getSignificantDigitRange","digits","dot","LosslessNumber","unsafeReason","isLosslessNumber","parseLosslessNumber","revive","json","reviver","reviveValue","context","reviveArray","reviveObject","object","parse","text","options","optionsObj","parseNumber","onDuplicateKey","throwDuplicateKey","parseValue","expectValue","expectEndOfInput","parseObject","codeOpeningBrace","skipWhitespace","initial","codeClosingBrace","eatComma","parseString","throwObjectKeyExpected","eatColon","throwObjectValueExpected","isDeepEqual","returnedValue","throwObjectKeyOrEndExpected","parseArray","codeOpeningBracket","codeClosingBracket","expectArrayItem","throwArrayItemOrEndExpected","parseNumeric","parseKeyword","isWhitespace","codeDoubleQuote","codeBackslash","char","escapeChar","escapeCharacters","isHex","throwInvalidUnicodeCharacter","throwInvalidEscapeCharacter","isValidStringCharacter","throwInvalidCharacter","expectEndOfString","codeMinus","expectDigit","codeZero","isNonZeroDigit","isDigit","codeDot","codeLowercaseE","codeUppercaseE","codePlus","codeComma","gotAt","codeColon","numSoFar","_ref","position","chars","got","code","codeSpace","codeNewline","codeTab","codeReturn","codeNine","codeUppercaseA","codeUppercaseF","codeLowercaseA","codeLowercaseF","codeOne","stringify","replacer","space","numberStringifiers","resolvedSpace","resolveSpace","replacedValue","stringifyValue","indent","stringifier","str","stringifyArray","stringifyObject","childIndent","first","includeProperty","keyStr","_key","exports","ParsingError","message","cause","parsingState","nextChild","element","comment","cdata","processingInstruction","nextRootChild","doctype","parseDocument","declaration","children","documentRootNode","child","node","endMarkerIndex","matchRoot","excluded","eos","is","attr","attribute","closingTag","endPositionStart","endPositionFinish","stripQuotes","re","parseXml","xml","filter","__importDefault","xml_parser_xo_1","newLine","state","appendContent","content","processNode","preserveSpace","processElementNode","processProcessingIntruction","processContent","trimmedContent","isPathMatchingIgnoredPaths","path","ignoredPaths","fullPath","pathLastPart","processAttributes","selfClosingNodeClosingTag","nodeChildren","nodePreserveSpace","ignoredPath","containsTextNodes","containsTextNodesWithLineBreaks","containsNonTextNodes","attributes","escaped","formatXml","parsedXml","err","useMessageStore","headers","body","reactive","editRetryResponse","bodyLoadedId","conversationLoadedId","conversationData","editRetryStore","configStore","useConfigurationStore","environmentStore","useEnvironmentAndVersionsAutoRefresh","areSimpleHeadersSupported","edit_and_retry_config","storeToRefs","configuration","error_retention_period","computed","moment","reset","loadFailedMessage","id","response","FailedMessageStatus","loadMessage","countdown","messageId","invokedSaga","loadConversation","conversationId","downloadBody","contentType","xmlFormat","archiveMessage","restoreMessage","retryMessage","retryMessages","ids","retryEditedMessage","editedMessage","payload","header","bodyText","pollForNextUpdate","status","maxRetries","resolve","exportMessage","exportString"],"mappings":"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","x_google_ignoreList":[1,2,3,4,5,6,7,8,9]} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MessageView-D2wqOVrV.css b/src/ServiceControl/wwwroot/assets/MessageView-D2wqOVrV.css new file mode 100644 index 0000000000..dfecc18b33 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageView-D2wqOVrV.css @@ -0,0 +1 @@ +.hackToPreventSafariFromShowingTooltip[data-v-bf0d93c4]:after{content:"";display:block}.left-side-ellipsis[data-v-bf0d93c4]{direction:rtl;text-align:left}.text-container[data-v-bf0d93c4]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-block}.type-name-display[data-v-009ff060]{display:inline-block;max-width:100%}.sagaName[data-v-a50b1584]{color:#e6e6e6}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{background:#fefefe;border:none;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:hover{background:#f4f4f4}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.lead[data-v-21a8bbe8],.box p .lead[data-v-21a8bbe8]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-21a8bbe8]{cursor:pointer}.gap[data-v-21a8bbe8]{margin-top:5px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff}.controls[data-v-21a8bbe8]{display:flex;flex-wrap:wrap;justify-content:center}#tree-container[data-v-21a8bbe8]{width:inherit;height:70vh}.sagas[data-v-21a8bbe8]{background-color:#333}.saga[data-v-21a8bbe8]{display:flex}.node[data-v-21a8bbe8]{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b);border-radius:3px;font-size:12px;border-width:1px;border-style:solid;color:var(--vf-node-text);text-align:left}.node[data-v-21a8bbe8]{background-color:#fff;border-color:#cccbcc;border-width:3px}.node .error[data-v-21a8bbe8]{border-color:#be514a}.node text[data-v-21a8bbe8]{font:12px sans-serif}.node .time-sent .time-since[data-v-21a8bbe8]{margin-left:20px;padding-top:0;color:#262727;text-transform:capitalize}.node-text[data-v-21a8bbe8]{padding:3px 8px 1px}.node-text i[data-v-21a8bbe8]{display:inline-block;position:relative;margin-right:5px}.node-text .typeName[data-v-21a8bbe8]{display:inline-block;position:relative;font-weight:700}.node-text a[data-v-21a8bbe8]{color:#777f7f}.address[data-v-21a8bbe8]{color:#777f7f;font-size:.8em;width:264px}.current-message[data-v-21a8bbe8]{border-color:#cccbcc;background-color:#cccbcc!important}.current-message.error[data-v-21a8bbe8]{border-color:#be514a;background-color:#be514a!important}.current-message.error .node-text .typeName a[data-v-21a8bbe8]{color:#e8e6e8;font-weight:900}.current-message.error .node-text .time-since[data-v-21a8bbe8]{color:#e8e6e8}.error[data-v-21a8bbe8]{border-color:#be514a}.current-message.error .node-text a[data-v-21a8bbe8]:hover{cursor:text;text-decoration:none}.node-text a[data-v-21a8bbe8]{color:#000}.error .node-text a[data-v-21a8bbe8]:hover{text-decoration:underline}.pa-flow-failed[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2012'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,6L9,11.196L3,11.196L0,6L3,0.804L9,0.804L12,6ZM6,5.293L4.232,3.525L3.525,4.232L5.293,6L3.525,7.768L4.232,8.475L6,6.707L7.768,8.475L8.475,7.768L6.707,6L8.475,4.232L7.768,3.525L6,5.293Z'/%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-saga-completed[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3crect%20width='15'%20height='15'%20style='fill:%23333333;fill-rule:nonzero;'/%3e%3crect%20x='4'%20y='4'%20width='7'%20height='7'%20style='fill:%23E6E6E6;fill-rule:nonzero;'/%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-saga-initiated[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3crect%20width='15'%20height='15'%20style='fill:%23333333;fill-rule:nonzero;'/%3e%3cpolygon%20points='4.986,4%2011.048,7.5%204.986,11'%20style='fill:%23E6E6E6;fill-rule:nonzero;'/%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-saga-trigger[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3crect%20width='15'%20height='15'%20style='fill:%23333333'/%3e%3cline%20x1='2.986'%20x2='9.051'%20y1='12'%20y2='5.935'%20stroke-width='2'%20stroke-miterlimit='10'%20style='stroke:%23E6E6E6;fill-rule:nonzero;'/%3e%3cpolygon%20points='10.493,8.571%2011.986,3%206.415,4.492'%20style='fill:%23E6E6E6;fill-rule:nonzero;'/%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-timeout[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-581,-742)'%3e%3cg%20id='timeout'%20transform='matrix(1,0,0,1,596.565,753.212)'%3e%3cpath%20d='M0,-6.402C0.276,-6.875%200.435,-7.425%200.435,-8.013C0.435,-9.78%20-0.997,-11.212%20-2.764,-11.212C-3.361,-11.212%20-3.919,-11.048%20-4.397,-10.764C-2.425,-9.938%20-0.841,-8.366%200,-6.402M-10.728,-10.764C-11.206,-11.048%20-11.764,-11.212%20-12.36,-11.212C-14.127,-11.212%20-15.56,-9.78%20-15.56,-8.013C-15.56,-7.425%20-15.401,-6.875%20-15.125,-6.402C-14.284,-8.366%20-12.699,-9.938%20-10.728,-10.764M-7.562,2.12C-10.489,2.12%20-12.858,-0.248%20-12.858,-3.176C-12.858,-6.103%20-10.49,-8.472%20-7.562,-8.472C-4.636,-8.472%20-2.266,-6.103%20-2.266,-3.176C-2.266,-0.249%20-4.635,2.12%20-7.562,2.12M-2.357,1.581C-1.211,0.327%20-0.511,-1.342%20-0.511,-3.176C-0.511,-7.07%20-3.668,-10.227%20-7.562,-10.227C-11.457,-10.227%20-14.614,-7.07%20-14.614,-3.176C-14.614,-1.342%20-13.914,0.327%20-12.767,1.581C-13.12,2.46%20-13.583,3.612%20-13.896,4.391C-13.944,4.508%20-13.909,4.643%20-13.81,4.723C-13.712,4.803%20-13.573,4.809%20-13.468,4.739C-12.75,4.259%20-11.683,3.545%20-10.913,3.03C-9.917,3.569%20-8.775,3.876%20-7.562,3.876C-6.349,3.876%20-5.208,3.569%20-4.211,3.03L-1.657,4.739C-1.552,4.81%20-1.413,4.803%20-1.314,4.723C-1.216,4.643%20-1.181,4.509%20-1.228,4.391L-2.357,1.581ZM-4.27,-1.802L-8.687,-1.802L-8.687,-6.655L-7.282,-6.655L-7.282,-3.206L-4.27,-3.206L-4.27,-1.802Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-event[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-1268,-330)'%3e%3cg%20id='event'%3e%3cg%20transform='matrix(0,1,-1,0,1271.05,341)'%3e%3cpath%20d='M-3,-3C-1.374,-3%200,-1.657%200,0C0,1.657%20-1.374,3%20-3,3C-4.626,3%20-6,1.657%20-6,0C-6,-1.657%20-4.626,-3%20-3,-3'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1283.05,338)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,335.879)'%3e%3cpath%20d='M0,5.879L-4,5.879L-3.05,4.243L-5.878,1.415L-4.464,0L-1.323,3.016L0,1.879L0,5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,340.121)'%3e%3cpath%20d='M0,-5.879L0,-1.879L-1.636,-2.829L-4.465,0L-5.879,-1.414L-3.05,-4.243L-4,-5.879L0,-5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.pa-flow-command[data-v-21a8bbe8]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%206'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-540,-191)'%3e%3cg%20id='command'%3e%3cg%20transform='matrix(0,1,-1,0,542.944,197)'%3e%3cpath%20d='M-2.944,-3.056C-1.318,-3.056%20-0,-1.713%20-0,-0.056C-0,1.601%20-1.318,2.944%20-2.944,2.944C-4.57,2.944%20-6,1.601%20-6,-0.056C-6,-1.713%20-4.57,-3.056%20-2.944,-3.056'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,555,194)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.endpoint-surround[data-v-633c7d74]{width:100%;display:flex;background:var(--gray90);border-radius:5px;padding:.5em;align-items:center;justify-content:center;gap:.5em;pointer-events:all}.endpoint-icon[data-v-633c7d74]{flex-shrink:0;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2013'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(-1,0,0,-1,15,13)'%3e%3cg%20id='endpoint'%20transform='matrix(-0.777778,2.50152e-16,-2.50152e-16,-0.777778,332.889,66.8889)'%3e%3cpath%20d='M424.129,84.652L424.11,80.864L417.632,80.88L417.728,73.087L424.079,73.103L424.091,69.328L410,69.27L409.945,84.711L424.129,84.652Z'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3cg%20transform='matrix(1,-8.74748e-18,-1.16633e-17,1.28571,1.68478e-13,-22)'%3e%3crect%20x='419'%20y='75'%20width='9'%20height='4'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:18px;width:18px}.endpoint-name[data-v-633c7d74]{overflow-wrap:anywhere}.clickable[data-v-ca20b396]{cursor:pointer}.activation-box[data-v-ca20b396]:focus{outline:none}.message-type[data-v-ca20b396]{fill:var(--gray40)}.message-type.highlight[data-v-ca20b396]{fill:var(--highlight)}.clickable[data-v-a6abb6dc]{cursor:pointer}.message-type[data-v-a6abb6dc]{fill:#000;outline:none}.message-type.selected[data-v-a6abb6dc]{fill:#fff}.message-type .border[data-v-a6abb6dc]{fill:var(--highlight-background)}.message-type.selected .border[data-v-a6abb6dc]{fill:var(--highlight)}.message-type:not(.selected).highlight[data-v-a6abb6dc]{fill:var(--highlight)}.message-type text[data-v-a6abb6dc]::selection{fill:#fff}.message-type.selected text[data-v-a6abb6dc]::selection{background-color:#000}.endpoint-tooltip{display:grid;grid-template-columns:auto auto;column-gap:.5em}.endpoint-tooltip label{grid-column:1;justify-self:end;font-weight:700;color:#b3b3b3}.endpoint-tooltip span{word-break:break-all}.handler-tooltip{display:flex;flex-direction:column}.handler-tooltip .title{font-weight:700}.handler-tooltip .details{display:grid;grid-template-columns:auto auto;column-gap:.5em}.handler-tooltip label{grid-column:1;justify-self:end;font-weight:700;color:#b3b3b3}.handler-tooltip span{word-break:break-all}.route-tooltip{display:flex;flex-direction:column}.route-tooltip .title{font-weight:700}.route-tooltip .details{display:grid;grid-template-columns:auto auto;column-gap:.5em}.route-tooltip label{grid-column:1;justify-self:end;font-weight:700;color:#b3b3b3}.route-tooltip span{word-break:break-all}.wrapper[data-v-08fe5d80]{margin-top:5px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff;display:flex;flex-direction:column}.toolbar[data-v-08fe5d80]{background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:5px;margin-bottom:.5rem;display:flex;flex-direction:row;justify-content:end;min-height:40px}.outer[data-v-08fe5d80]{max-width:100%;max-height:calc(100vh - 27rem);overflow:auto}.sequence-diagram[data-v-08fe5d80]{--error: red;--gray20: #333333;--gray30: #444444;--gray40: #666666;--gray60: #999999;--gray80: #cccccc;--gray90: #e6e6e6;--gray95: #b3b3b3;--highlight: #0b6eef;--highlight-background: #c5dee9;background:#fff}.help-link[data-v-08fe5d80]{display:flex;align-items:center;justify-content:end;gap:.15rem}.gap[data-v-56356db9]{margin-top:5px}.wrapper[data-v-32199ab1]{margin-top:5px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff}.removeBootStrap[data-v-32199ab1]{background:initial;border:none;margin:0;padding:0}.alert-warning[data-v-32199ab1]{margin-top:10px;color:#856404;background-color:#fff3cd;border-color:#ffeeba;padding:10px;border-radius:5px}.text-search-container[data-v-32199ab1]{display:flex;flex-direction:row}.text-search[data-v-32199ab1]{width:100%;max-width:40rem}.filters[data-v-32199ab1]{top:-2.5rem;position:sticky;z-index:100;background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:5px}.header-list[data-v-32199ab1]{margin-bottom:1rem;margin-top:.5rem;display:grid;grid-template-columns:20rem 1fr;align-items:flex-start;justify-content:center;row-gap:2px;background-color:#f3f3f3}.header-value[data-v-32199ab1],.header-key[data-v-32199ab1]{padding:1rem;display:flex;height:100%;min-height:2rem;position:relative;background:#fff}.header-value[data-v-32199ab1]{padding-left:2.7rem}.clippy-button[data-v-32199ab1]{position:absolute;left:0;top:.3rem}.stack-trace-container[data-v-6c9404a0]{font-family:monospace;white-space:pre-wrap}.st-frame[data-v-6c9404a0]{color:#00729c}.st-type[data-v-6c9404a0]{color:#a11}.st-method[data-v-6c9404a0]{color:#164}.st-file[data-v-6c9404a0]{color:#c67b3d}.st-line[data-v-6c9404a0]{color:#6c757d}.st-param-type[data-v-6c9404a0]{font-style:italic;color:#6b82ce}.st-param-name[data-v-6c9404a0]{font-weight:700;color:#343a40}.st-frame-params[data-v-6c9404a0]{color:#495057}.toolbar[data-v-02973870]{background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:5px;margin-bottom:.5rem;display:flex;flex-direction:row;justify-content:flex-end;align-items:center}.wrapper[data-v-02973870]{margin-top:5px;margin-bottom:15px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff}span.header-removed[data-v-666f7d52]{text-decoration:line-through 2px solid #ce4844}input.header-removed[data-v-666f7d52]{opacity:.3;pointer-events:none}td[nowrap=nowrap][data-v-666f7d52]{font-weight:700}td[data-v-666f7d52]:first-child{padding-top:15px;padding-left:0;width:30%}td:first-child .warning[data-v-666f7d52]{color:#ff9000}td:first-child .edit[data-v-666f7d52]{color:#8543e9;font-size:1.1em}td[data-v-666f7d52]:nth-child(3){width:60px;padding:12px 0 0 10px}td:nth-child(3) a[data-v-666f7d52]{font-size:18px}td:nth-child(3) a[data-v-666f7d52]:hover{cursor:pointer}td:nth-child(3) .remove[data-v-666f7d52]{color:#555}td:nth-child(3) .undo[data-v-666f7d52]{color:var(--sp-blue)}td:nth-child(3) i.fa[data-v-666f7d52]:hover{opacity:.8}.actions[data-v-666f7d52]{display:flex;gap:10px}.icon[data-v-666f7d52]{color:var(--reduced-emphasis);margin-left:6px}.modal-mask[data-v-8abe1e84]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-8abe1e84]{display:table-cell;vertical-align:middle}.modal-container[data-v-8abe1e84]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-8abe1e84]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-8abe1e84]{margin:0;line-height:1.42857143}.modal-body[data-v-8abe1e84]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-8abe1e84]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-8abe1e84]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-8abe1e84]{padding:0;border-radius:5px}.modal-container .btn[data-v-8abe1e84]{font-size:14px}.modal-content[data-v-8abe1e84]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-8abe1e84]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-8abe1e84],.modal-open[data-v-8abe1e84]{overflow-y:hidden}.modal .btn.btn-primary[data-v-8abe1e84]{padding:8px 20px}.cancel-confirmation[data-v-8abe1e84],.edit-retry-confirmation[data-v-8abe1e84]{background:#181919;color:#fff;border-bottom-right-radius:6px;border-bottom-left-radius:6px}.cancel-confirmation div[data-v-8abe1e84],.edit-retry-confirmation div[data-v-8abe1e84]{display:inline-block;font-weight:700;font-size:14px;position:relative;top:1px;margin-right:20px}.modal-msg-editor .reset-body a[data-v-8abe1e84]:hover{cursor:pointer}.modal-msg-editor .empty-error[data-v-8abe1e84]{color:#ce4844;font-weight:700}.modal-msg-editor .empty-error .error[data-v-8abe1e84],.modal-msg-editor .row.alert.alert-danger .error[data-v-8abe1e84]{color:#ce4844}.modal-msg-editor .modal-dialog[data-v-8abe1e84]{width:70%}.modal-msg-editor .modal-body[data-v-8abe1e84]{overflow-y:auto;height:80vh}.modal-msg-editor .msg-tabs[data-v-8abe1e84]{margin-top:20px}.modal-msg-editor .row.msg-editor-tabs[data-v-8abe1e84]{height:52px;position:relative;box-shadow:-10px 20px 20px #fff;z-index:10}.modal-msg-editor .row.msg-editor-content table[data-v-8abe1e84]{margin-top:20px}.modal-msg-editor .row[data-v-8abe1e84],.modal-msg-editor .col-sm-12[data-v-8abe1e84]{height:100%}.modal-msg-editor .row.msg-editor-content[data-v-8abe1e84]{height:calc(100% - 37px);overflow-y:auto;padding-right:15px}.modal-mask[data-v-a672f00a]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-a672f00a]{display:table-cell;vertical-align:middle}.modal-container[data-v-a672f00a]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-a672f00a]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-a672f00a]{margin:0;line-height:1.42857143}.modal-body[data-v-a672f00a]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-a672f00a]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-a672f00a]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-a672f00a]{padding:0;border-radius:5px}.modal-container .btn[data-v-a672f00a]{font-size:14px}.modal-content[data-v-a672f00a]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-a672f00a]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-a672f00a],.modal-open[data-v-a672f00a]{overflow-y:hidden}.modal .btn.btn-primary[data-v-a672f00a]{padding:8px 20px}.body[data-v-0ed3d8f7]{display:flex;flex:1;justify-content:center}.saga-message[data-v-0ed3d8f7]{display:flex;align-items:center}.saga-message-image[data-v-0ed3d8f7]{display:block;margin:auto}.saga-message-title[data-v-0ed3d8f7]{text-align:center;margin:.2rem 0 0;font-size:1.5rem;color:#ccc}.body[data-v-34c42948]{display:flex;flex:1;justify-content:center}.saga-message[data-v-34c42948]{display:flex;align-items:center}.saga-message-image[data-v-34c42948]{display:block;margin:auto}.saga-message-title[data-v-34c42948]{text-align:center;margin:.2rem 0 0;font-size:1.5rem;color:#ccc}.saga-message-box[data-v-34c42948]{margin-top:1rem;padding:1.5rem 2rem;color:#535353;font-size:1rem;font-weight:900;text-align:center;background-color:#e4e4e4}.saga-message-text[data-v-34c42948]{margin:0}.saga-message-link[data-v-34c42948]{font-family:Courier New,Courier,monospace;color:#aaa}.clippy-button[data-v-34c42948]{white-space:pre}.clippy-button[data-v-34c42948]:before{content:" "}.row[data-v-61fa72c6]{display:flex}.row--center[data-v-61fa72c6]{justify-content:center}.cell--center[data-v-61fa72c6]{width:50%;background-color:#f2f2f2;border:0}.cell-inner-center[data-v-61fa72c6]{padding:.5rem}.main-title[data-v-61fa72c6]{margin:.3rem 0;padding-bottom:.5rem;border-bottom:solid 2px var(--sp-blue);font-size:1.5rem}.code-editor-wrapper[data-v-1bfbcffa]{position:relative;width:100%}.maximize-button[data-v-1bfbcffa]{position:absolute;right:.375rem;top:.375rem;z-index:10;background-color:#ffffffb3;border:1px solid #ddd;border-radius:3px;padding:.25rem;cursor:pointer;opacity:.6;transition:opacity .2s ease}.maximize-button[data-v-1bfbcffa]:hover{opacity:1}.maximize-modal[data-v-1bfbcffa]{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:center}.maximize-modal-content[data-v-1bfbcffa]{background-color:#fff;width:95vw;height:90vh;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 8px #0000001a}.maximize-modal-toolbar[data-v-1bfbcffa]{display:flex;justify-content:space-between;align-items:center;padding:.625rem .9375rem;background-color:#f8f8f8;border-bottom:1px solid #ddd}.maximize-modal-title[data-v-1bfbcffa]{font-weight:700;font-size:1rem}.maximize-modal-close[data-v-1bfbcffa]{background:none;border:none;cursor:pointer;padding:.3125rem;display:flex;align-items:center;justify-content:center}.maximize-modal-body[data-v-1bfbcffa]{flex:1;overflow:auto;padding:0}.maximize-modal-body[data-v-1bfbcffa] .wrapper{height:100%;border-radius:0}.maximize-modal-body[data-v-1bfbcffa] .cm-editor,.maximize-modal-body[data-v-1bfbcffa] .cm-scroller{height:100%}.message-data-box[data-v-6bd93047]{display:flex}.message-data-box-content[data-v-6bd93047]{display:block}.message-data-box-text[data-v-6bd93047]{display:inline-block;margin-right:.25rem}.message-data-box-text--ellipsis[data-v-6bd93047]{display:inline-block;overflow:hidden;max-width:100%;padding:0%;white-space:nowrap;text-overflow:ellipsis}.message-data-box-text--empty[data-v-6bd93047]{display:inline-block;width:100%;text-align:center;color:#666;font-style:italic}.message-data-box-text--error[data-v-6bd93047]{display:inline-block;width:100%;text-align:center;color:#a94442;font-style:italic}.message-data-box-text--unsupported[data-v-6bd93047]{display:inline-block;width:100%;text-align:center;color:#8a6d3b;font-style:italic}.message-data-loading[data-v-6bd93047]{display:flex;justify-content:center;align-items:center}.message-data-box-error[data-v-6bd93047]{padding:1rem;justify-content:center}.message-data-box-content[data-v-6bd93047] .wrapper.maximazable-code-editor--inline-instance{border:none;border-radius:0;margin-top:0;font-size:.75rem}.message-data-box-content[data-v-6bd93047] .wrapper.maximazable-code-editor--inline-instance .toolbar{border:none;border-radius:0;background-color:transparent;padding:0;margin-bottom:0}.message-data-box-content[data-v-6bd93047] .wrapper.maximazable-code-editor--inline-instance .cm-editor{border:none}.row[data-v-05d3dc12]{display:flex}.row--right[data-v-05d3dc12]{justify-content:right}.cell[data-v-05d3dc12]{padding:0}.cell--center[data-v-05d3dc12]{width:50%;background-color:#f2f2f2;border:0}.cell--side[data-v-05d3dc12]{align-self:flex-end;width:25%;padding:0}.cell--top-border[data-v-05d3dc12]{display:flex;flex-direction:column}.cell-inner-top[data-v-05d3dc12]{border-top:solid 2px #000000;margin-left:1rem}.cell-inner-line[data-v-05d3dc12]{flex-grow:1;padding:.25rem .5rem;border-left:solid 2px #000000;margin-left:1rem}.cell-inner-side[data-v-05d3dc12]{padding:.25rem .25rem 0;border:solid 2px #cccccc;background-color:#ccc}.cell-inner-side--active[data-v-05d3dc12]{border:solid 5px #0b6eef;animation:blink-border-05d3dc12 1.8s ease-in-out}.cell-inner-right[data-v-05d3dc12]{position:relative;min-height:2.5rem;border:solid 2px #000000;border-left:0;border-bottom:0;margin-right:50%}.cell-inner-right[data-v-05d3dc12]:after{position:absolute;display:block;content:"";border:solid 6px #000000;border-top-width:10px;border-left-color:transparent;border-right-color:transparent;border-bottom:0;bottom:0;margin-left:100%;left:-5px}.message-title[data-v-05d3dc12]{margin:0;font-size:.9rem;font-weight:900;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.timestamp[data-v-05d3dc12]{font-size:.9rem}.message-data[data-v-05d3dc12]{display:none;padding:.2rem;background-color:#fff;border:solid 1px #cccccc;font-size:.75rem}.message-data--active[data-v-05d3dc12]{display:block}.timeout-status[data-v-05d3dc12]{display:inline-block;font-size:1rem;font-weight:900}.saga-icon[data-v-05d3dc12]{display:block;float:left;margin-right:.35rem}.saga-icon--side-cell[data-v-05d3dc12]{width:2rem;height:2rem;padding:.23rem}.saga-icon--center-cell[data-v-05d3dc12]{float:none;display:inline;width:1rem;height:1rem;margin-top:-.3rem}.saga-icon--overlap[data-v-05d3dc12]{margin-left:-1rem}@keyframes blink-border-05d3dc12{0%,to{border-color:#0b6eef}20%,60%{border-color:#ccc}40%,80%{border-color:#0b6eef}}.row[data-v-5488ea1a]{display:flex}.row--right[data-v-5488ea1a]{justify-content:right}.cell[data-v-5488ea1a]{padding:0}.cell--center[data-v-5488ea1a]{width:50%;background-color:#f2f2f2;border:0}.cell--side[data-v-5488ea1a]{align-self:flex-end;width:25%;padding:0}.cell--top-border[data-v-5488ea1a]{display:flex;flex-direction:column}.cell-inner-top[data-v-5488ea1a]{border-top:solid 2px #000000;margin-left:1rem}.cell-inner-line[data-v-5488ea1a]{flex-grow:1;padding:.25rem .5rem;border-left:solid 2px #000000;margin-left:1rem}.cell-inner-right[data-v-5488ea1a]{position:relative;min-height:2.5rem;border:solid 2px #000000;border-left:0;border-bottom:0;margin-right:50%}.cell-inner-right[data-v-5488ea1a]:after{position:absolute;display:block;content:"";border:solid 6px #000000;border-top-width:10px;border-left-color:transparent;border-right-color:transparent;border-bottom:0;bottom:0;margin-left:100%;left:-5px}.message-title[data-v-5488ea1a]{margin:0;font-size:.9rem;font-weight:900;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.timestamp[data-v-5488ea1a]{font-size:.9rem}.message-data[data-v-5488ea1a]{display:none;padding:.2rem;background-color:#fff;border:solid 1px #cccccc;font-size:.75rem}.message-data--active[data-v-5488ea1a]{display:block}.timeout-status[data-v-5488ea1a]{display:inline-block;font-size:1rem;font-weight:900}.saga-icon--center-cell[data-v-5488ea1a]{float:none;display:inline;width:1rem;height:1rem;margin-top:-.3rem}.saga-icon--overlap[data-v-5488ea1a]{margin-left:-1rem}.cell-inner-side[data-v-5488ea1a]:nth-child(-n+2){margin-top:0}.cell-inner-side[data-v-5488ea1a]{margin-top:1rem;padding:.25rem .25rem 0;border:solid 2px #cccccc;background-color:#ccc}.cell-inner-side--active[data-v-5488ea1a]{border:solid 5px #0b6eef;animation:blink-border-5488ea1a 1.8s ease-in-out}.saga-icon[data-v-5488ea1a]{display:block;float:left;margin-right:.35rem}.saga-icon--side-cell[data-v-5488ea1a]{width:2rem;height:2rem;padding:.23rem}@keyframes blink-border-5488ea1a{0%,to{border-color:#0b6eef}20%,60%{border-color:#ccc}40%,80%{border-color:#0b6eef}}.diff-container[data-v-3ad2f991]{width:100%}.diff-headers[data-v-3ad2f991]{display:flex;border-bottom:1px solid #ddd;background-color:#f1f1f1}.diff-header[data-v-3ad2f991]{flex:1;padding:6px 10px;font-weight:700;font-size:.8rem;text-align:center}.diff-content[data-v-3ad2f991]{display:flex}.diff-column[data-v-3ad2f991]{flex:1;overflow:visible}.split-view .diff-column[data-v-3ad2f991]:first-child{border-right:1px solid #ddd}.diff-lines[data-v-3ad2f991]{padding:5px 0}.diff-line[data-v-3ad2f991]{padding:0 5px;white-space:pre-wrap;word-break:break-all;display:flex}.diff-line-number[data-v-3ad2f991]{min-width:40px;color:#999;text-align:right;padding-right:10px;-webkit-user-select:none;user-select:none}.diff-line-content[data-v-3ad2f991]{flex:1}.diff-line-added[data-v-3ad2f991]{background-color:#e6ffed;color:#28a745}.diff-line-removed[data-v-3ad2f991]{background-color:#ffeef0;color:#d73a49}.diff-fold[data-v-3ad2f991]{text-align:center;padding:2px 0}.diff-fold-button[data-v-3ad2f991]{background:none;border:none;color:#0366d6;padding:2px 8px;font-size:.7rem;cursor:pointer;font-family:monospace}.diff-fold-button[data-v-3ad2f991]:hover{text-decoration:underline}.diff-viewer[data-v-e25c6c52]{width:100%;overflow:hidden;font-family:monospace;font-size:.75rem;position:relative}.diff-wrapper[data-v-e25c6c52]{width:100%;position:relative}.maximize-button[data-v-e25c6c52]{position:absolute;right:6px;z-index:10;background-color:#ffffffb3;border:1px solid #ddd;border-radius:3px;padding:4px;cursor:pointer;opacity:.6;transition:opacity .2s ease}.maximize-button[data-v-e25c6c52]:hover{opacity:1}.maximize-modal[data-v-e25c6c52]{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:center}.maximize-modal-content[data-v-e25c6c52]{background-color:#fff;width:95vw;height:90vh;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 8px #0000001a}.maximize-modal-toolbar[data-v-e25c6c52]{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;background-color:#f8f8f8;border-bottom:1px solid #ddd}.maximize-modal-title[data-v-e25c6c52]{font-weight:700;font-size:1rem}.maximize-modal-close[data-v-e25c6c52]{background:none;border:none;cursor:pointer;padding:5px;display:flex;align-items:center;justify-content:center;color:#666}.maximize-modal-close[data-v-e25c6c52]:hover{color:#000}.maximize-modal-body[data-v-e25c6c52]{flex:1;overflow:auto;padding:0}.maximize-modal-body[data-v-e25c6c52] .diff-container{height:100%}.maximize-modal-body[data-v-e25c6c52] .diff-content{max-height:calc(100% - 35px);overflow:auto}.row[data-v-cf0ddcb3]{display:flex}.row--right[data-v-cf0ddcb3]{justify-content:right}.cell[data-v-cf0ddcb3]{padding:0}.cell-flex[data-v-cf0ddcb3]{display:flex}.cell--side[data-v-cf0ddcb3]{align-self:flex-end;width:25%;padding:0}.cell--aling-top[data-v-cf0ddcb3]{align-self:flex-start}.cell--left-border[data-v-cf0ddcb3]{border-top:solid 2px #000000}.cell--center[data-v-cf0ddcb3]{width:50%;background-color:#f2f2f2;border:0}.cell--center--border[data-v-cf0ddcb3]{display:flex;flex-direction:column;border-top:solid 2px #000000}.cell-inner-center[data-v-cf0ddcb3]{padding:.5rem}.cell-inner-center[data-v-cf0ddcb3]:first-child{flex-grow:1}.cell-inner-line[data-v-cf0ddcb3]{flex-grow:1;padding:.25rem .5rem;border-left:solid 2px #000000;margin-left:1rem}.cell-inner-line[data-v-cf0ddcb3]:first-child{flex-grow:1}.cell-inner-side[data-v-cf0ddcb3]{margin-top:1rem;padding:.25rem .25rem 0;border:solid 2px #cccccc;background-color:#ccc}.cell-inner-side[data-v-cf0ddcb3]:nth-child(-n+2){margin-top:0}.cell-inner-side--active[data-v-cf0ddcb3]{border:solid 5px #0b6eef;animation:blink-border-cf0ddcb3 1.8s ease-in-out}.cell-inner-right[data-v-cf0ddcb3]{position:relative;min-height:2.5rem;border:solid 2px #000000;border-left:0;border-bottom:0;margin-right:50%}.cell-inner-right[data-v-cf0ddcb3]:after{position:absolute;display:block;content:"";border:solid 6px #000000;border-top-width:10px;border-left-color:transparent;border-right-color:transparent;border-bottom:0;bottom:0;margin-left:100%;left:-5px}.cell-inner--align-bottom[data-v-cf0ddcb3]{align-self:flex-end}.message-title[data-v-cf0ddcb3]{margin:0;font-size:.9rem;font-weight:900;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.saga-status-title[data-v-cf0ddcb3]{margin:0;font-size:1rem;font-weight:900}.saga-status-title--inline[data-v-cf0ddcb3]{display:inline-block}.timestamp[data-v-cf0ddcb3]{font-size:.9rem}.timestamp--inline[data-v-cf0ddcb3]{display:inline-block;margin-left:.5rem;font-size:.8rem}.message-data[data-v-cf0ddcb3]{display:none;padding:.2rem;background-color:#fff;border:solid 1px #cccccc}.message-data--active[data-v-cf0ddcb3]{display:block}.saga-icon[data-v-cf0ddcb3]{display:block;float:left;margin-right:.35rem}.saga-icon--side-cell[data-v-cf0ddcb3]{width:2rem;height:2rem;padding:.23rem}.saga-icon--center-cell[data-v-cf0ddcb3]{float:none;display:inline;width:1rem;height:1rem;margin-top:-.3rem}.timeout-status[data-v-cf0ddcb3]{display:inline-block;font-size:1rem;font-weight:900}.saga-state-container[data-v-cf0ddcb3]{padding:.5rem}.saga-state-title[data-v-cf0ddcb3]{margin:0 0 .5rem;font-size:.9rem;font-weight:700}.json-container[data-v-cf0ddcb3]{background-color:transparent}.json-container--first-node[data-v-cf0ddcb3]{max-height:300px;overflow:auto}.json-container[data-v-cf0ddcb3] .wrapper.maximazable-code-editor--inline-instance{border-radius:0;border:none;background-color:#f2f2f2;margin-top:0;font-size:.75rem}.json-container[data-v-cf0ddcb3] .wrapper.maximazable-code-editor--inline-instance .toolbar{border:none;border-radius:0;background-color:transparent;padding:0;margin-bottom:0}.no-changes-message[data-v-cf0ddcb3]{padding:1rem;text-align:center;font-style:italic;color:#666}.parsing-error-message[data-v-cf0ddcb3]{padding:1rem;text-align:center;font-style:italic;color:#a94442}@keyframes blink-border-cf0ddcb3{0%,to{border-color:#0b6eef}20%,60%{border-color:#ccc}40%,80%{border-color:#0b6eef}}.row[data-v-e59a0d99]{display:flex}.row--center[data-v-e59a0d99]{justify-content:center}.cell--center[data-v-e59a0d99]{width:50%;background-color:#f2f2f2;border:0}.cell--inverted[data-v-e59a0d99]{background-color:#333;color:#fff;margin-bottom:2rem}.cell-inner-center[data-v-e59a0d99]{padding:.5rem}.saga-status-title[data-v-e59a0d99]{margin:0;font-size:1rem;font-weight:900}.saga-status-title--inline[data-v-e59a0d99]{display:inline-block}.cell--inverted .saga-status-title[data-v-e59a0d99],.timestamp[data-v-e59a0d99]{font-size:.9rem}.cell--inverted .timestamp[data-v-e59a0d99]{margin-left:1.2rem}.saga-icon[data-v-e59a0d99]{display:block;float:left;margin-right:.35rem}.saga-icon--center-cell[data-v-e59a0d99]{float:none;display:inline;width:1rem;height:1rem;margin-top:-.3rem}.saga-container[data-v-8800f933]{display:flex;flex-direction:column;margin-top:5px;border-radius:.5rem;padding:.5rem;border:1px solid #ccc;background:#fff}.toolbar[data-v-8800f933]{background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:5px;margin-bottom:.5rem;display:flex;flex-direction:row;min-height:40px}.body[data-v-8800f933]{display:flex;flex:1;justify-content:center}.container[data-v-8800f933]{min-width:50rem;max-width:100rem}.loading-container[data-v-8800f933]{display:flex;flex:1;justify-content:center;align-items:center;min-height:200px}.lead[data-v-384d40d9],.box p .lead[data-v-384d40d9]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-384d40d9]{cursor:pointer}h1.message-type-title[data-v-384d40d9]{margin:0 0 8px;font-size:24px}.message-metadata[data-v-384d40d9]{display:flex}div.btn-toolbar.message-toolbar[data-v-384d40d9]{margin-bottom:20px}button img[data-v-384d40d9]{position:relative;top:-1px;width:17px}.pa-redirect-source[data-v-384d40d9]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(1,0,0,1,-1,-0)'%3e%3cg%20id='redirect-source'%20transform='matrix(-1,0,-0,1,15,0)'%3e%3cg%20transform='matrix(1.5,0,-1.11796e-32,0.69633,2,1.10453)'%3e%3cpath%20d='M1.333,8.466L0,8.466L0,18.519L1.333,15.63L1.333,8.466Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3cg%20transform='matrix(-1,0,0,1,16,0)'%3e%3cpath%20d='M4,6L2,6L5,0L8,6L6,6L6,8.586L11.414,14L8.586,14L4.293,9.707C4.254,9.666%204.254,9.666%204.218,9.623C4.184,9.578%204.152,9.533%204.125,9.484C4.042,9.334%204.005,9.17%204,9L4,6Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-redirect-small[data-v-384d40d9]{position:relative;top:1px;height:14px;width:14px}.pa-endpoint[data-v-384d40d9]{position:relative;top:3px;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2013'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(-1,0,0,-1,15,13)'%3e%3cg%20id='endpoint'%20transform='matrix(-0.777778,2.50152e-16,-2.50152e-16,-0.777778,332.889,66.8889)'%3e%3cpath%20d='M424.129,84.652L424.11,80.864L417.632,80.88L417.728,73.087L424.079,73.103L424.091,69.328L410,69.27L409.945,84.711L424.129,84.652Z'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3cg%20transform='matrix(1,-8.74748e-18,-1.16633e-17,1.28571,1.68478e-13,-22)'%3e%3crect%20x='419'%20y='75'%20width='9'%20height='4'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;height:15px;width:15px} diff --git a/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js b/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js new file mode 100644 index 0000000000..d3a98f6fa4 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js @@ -0,0 +1,35 @@ +import{e as ue,aR as gr,aS as Gt,aT as mr,w as ve,aU as jl,ad as vr,m as D,n as S,v as ee,Z as De,x as ke,q as M,z as R,aV as qt,aW as Xl,c as Z,aX as An,an as Fe,E as Ee,r as X,aY as Zl,o as Ve,K as pe,L as ze,aZ as nt,a_ as ro,t as U,a$ as Kl,p as de,b0 as rn,b1 as Te,B as ne,D as Qi,b2 as Jl,b3 as Ql,b4 as zt,l as es,b5 as Ce,b6 as be,b7 as eu,am as pr,b8 as tu,b9 as mt,y as ye,ba as zn,bb as nu,aM as ut,a7 as Ne,U as $e,bc as Ii,s as Le,k as kt,i as yr,aL as Ti,a6 as Jt,bd as Di,be as je,bf as Tt,d as _r,bg as ou,bh as iu,bi as xo,aE as su,_ as Ge,F as au,ah as yn,J as Yn,C as ts,T as lo,bj as uo,Q as _n,aC as ln,bk as ns,bl as ru,bm as lu,ao as Oi,ak as wr,ae as uu,ai as un,bn as _s,bo as cu,P as du,aA as fu,aB as hu,bp as gu,u as mu,bq as vu,br as pu,bs as yu,f as _u,aD as wu,A as bu,bt as ws,bu as xu,bv as Eo,aQ as Eu,N as bs}from"./index-tFZp7u44.js";import{g as Su,u as He,s as Vn,p as br,x as ku}from"./MessageStore-TKRBN2N2.js";import{C as Wn,_ as os,E as Cu}from"./CodeEditor-tk58yQKj.js";import{M as _t}from"./MetadataItem-CGsZJtRl.js";function cn(e){return gr()?(An(e),!0):!1}function at(e){return typeof e=="function"?e():R(e)}const Mu=typeof window<"u"&&typeof document<"u",Nu=e=>typeof e<"u",$u=Object.prototype.toString,Iu=e=>$u.call(e)==="[object Object]",Tu=()=>{};function Du(e,t){function n(...i){return new Promise((o,s)=>{Promise.resolve(e(()=>t.apply(this,i),{fn:t,thisArg:this,args:i})).then(o).catch(s)})}return n}const xr=e=>e();function Ou(e=xr){const t=X(!0);function n(){t.value=!1}function i(){t.value=!0}const o=(...s)=>{t.value&&e(...s)};return{isActive:nu(t),pause:n,resume:i,eventFilter:o}}function xs(e,t=!1,n="Timeout"){return new Promise((i,o)=>{setTimeout(t?()=>o(n):i,e)})}function Pu(e,t,n={}){const{eventFilter:i=xr,...o}=n;return ve(e,Du(i,t),o)}function Dt(e,t,n={}){const{eventFilter:i,...o}=n,{eventFilter:s,pause:a,resume:l,isActive:r}=Ou(i);return{stop:Pu(e,t,{...o,eventFilter:s}),pause:a,resume:l,isActive:r}}function Ru(e,t={}){if(!Qi(e))return Jl(e);const n=Array.isArray(e.value)?Array.from({length:e.value.length}):{};for(const i in e.value)n[i]=Ql(()=>({get(){return e.value[i]},set(o){var s;if((s=at(t.replaceRef))!=null?s:!0)if(Array.isArray(e.value)){const l=[...e.value];l[i]=o,e.value=l}else{const l={...e.value,[i]:o};Object.setPrototypeOf(l,Object.getPrototypeOf(e.value)),e.value=l}else e.value[i]=o}}));return n}function Pi(e,t=!1){function n(d,{flush:f="sync",deep:h=!1,timeout:g,throwOnTimeout:p}={}){let m=null;const y=[new Promise(v=>{m=ve(e,w=>{d(w)!==t&&(m?.(),v(w))},{flush:f,deep:h,immediate:!0})})];return g!=null&&y.push(xs(g,p).then(()=>at(e)).finally(()=>m?.())),Promise.race(y)}function i(d,f){if(!Qi(d))return n(w=>w===d,f);const{flush:h="sync",deep:g=!1,timeout:p,throwOnTimeout:m}=f??{};let b=null;const v=[new Promise(w=>{b=ve([e,d],([O,L])=>{t!==(O===L)&&(b?.(),w(O))},{flush:h,deep:g,immediate:!0})})];return p!=null&&v.push(xs(p,m).then(()=>at(e)).finally(()=>(b?.(),at(e)))),Promise.race(v)}function o(d){return n(f=>!!f,d)}function s(d){return i(null,d)}function a(d){return i(void 0,d)}function l(d){return n(Number.isNaN,d)}function r(d,f){return n(h=>{const g=Array.from(h);return g.includes(d)||g.includes(at(d))},f)}function u(d){return c(1,d)}function c(d=1,f){let h=-1;return n(()=>(h+=1,h>=d),f)}return Array.isArray(at(e))?{toMatch:n,toContains:r,changed:u,changedTimes:c,get not(){return Pi(e,!t)}}:{toMatch:n,toBe:i,toBeTruthy:o,toBeNull:s,toBeNaN:l,toBeUndefined:a,changed:u,changedTimes:c,get not(){return Pi(e,!t)}}}function Ri(e){return Pi(e)}function Lu(e){var t;const n=at(e);return(t=n?.$el)!=null?t:n}const Er=Mu?window:void 0;function Sr(...e){let t,n,i,o;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,i,o]=e,t=Er):[t,n,i,o]=e,!t)return Tu;Array.isArray(n)||(n=[n]),Array.isArray(i)||(i=[i]);const s=[],a=()=>{s.forEach(c=>c()),s.length=0},l=(c,d,f,h)=>(c.addEventListener(d,f,h),()=>c.removeEventListener(d,f,h)),r=ve(()=>[Lu(t),at(o)],([c,d])=>{if(a(),!c)return;const f=Iu(d)?{...d}:d;s.push(...n.flatMap(h=>i.map(g=>l(c,h,g,f))))},{immediate:!0,flush:"post"}),u=()=>{r(),a()};return cn(u),u}function Au(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function Es(...e){let t,n,i={};e.length===3?(t=e[0],n=e[1],i=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],i=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:o=Er,eventName:s="keydown",passive:a=!1,dedupe:l=!1}=i,r=Au(t);return Sr(o,s,c=>{c.repeat&&at(l)||r(c)&&n(c)},a)}function zu(e){return JSON.parse(JSON.stringify(e))}function So(e,t,n,i={}){var o,s,a;const{clone:l=!1,passive:r=!1,eventName:u,deep:c=!1,defaultValue:d,shouldEmit:f}=i,h=qt(),g=n||h?.emit||((o=h?.$emit)==null?void 0:o.bind(h))||((a=(s=h?.proxy)==null?void 0:s.$emit)==null?void 0:a.bind(h?.proxy));let p=u;t||(t="modelValue"),p=p||`update:${t.toString()}`;const m=v=>l?typeof l=="function"?l(v):zu(v):v,b=()=>Nu(e[t])?m(e[t]):d,y=v=>{f?f(v)&&g(p,v):g(p,v)};if(r){const v=b(),w=X(v);let O=!1;return ve(()=>e[t],L=>{O||(O=!0,w.value=m(L),nt(()=>O=!1))}),ve(w,L=>{!O&&(L!==e[t]||c)&&y(L)},{deep:c}),w}else return Z({get(){return b()},set(v){y(v)}})}var Vu={value:()=>{}};function co(){for(var e=0,t=arguments.length,n={},i;e=0&&(i=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:i}})}Bn.prototype=co.prototype={constructor:Bn,on:function(e,t){var n=this._,i=Bu(e+"",n),o,s=-1,a=i.length;if(arguments.length<2){for(;++s0)for(var n=new Array(o),i=0,o,s;i=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),ks.hasOwnProperty(t)?{space:ks[t],local:e}:e}function Hu(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===Li&&t.documentElement.namespaceURI===Li?t.createElement(e):t.createElementNS(n,e)}}function Gu(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function kr(e){var t=fo(e);return(t.local?Gu:Hu)(t)}function qu(){}function is(e){return e==null?qu:function(){return this.querySelector(e)}}function Yu(e){typeof e!="function"&&(e=is(e));for(var t=this._groups,n=t.length,i=new Array(n),o=0;o=v&&(v=y+1);!(O=m[v])&&++v=0;)(a=i[o])&&(s&&a.compareDocumentPosition(s)^4&&s.parentNode.insertBefore(a,s),s=a);return this}function vc(e){e||(e=pc);function t(d,f){return d&&f?e(d.__data__,f.__data__):!d-!f}for(var n=this._groups,i=n.length,o=new Array(i),s=0;st?1:e>=t?0:NaN}function yc(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function _c(){return Array.from(this)}function wc(){for(var e=this._groups,t=0,n=e.length;t1?this.each((t==null?Tc:typeof t=="function"?Oc:Dc)(e,t,n??"")):Vt(this.node(),e)}function Vt(e,t){return e.style.getPropertyValue(t)||Ir(e).getComputedStyle(e,null).getPropertyValue(t)}function Rc(e){return function(){delete this[e]}}function Lc(e,t){return function(){this[e]=t}}function Ac(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function zc(e,t){return arguments.length>1?this.each((t==null?Rc:typeof t=="function"?Ac:Lc)(e,t)):this.node()[e]}function Tr(e){return e.trim().split(/^|\s+/)}function ss(e){return e.classList||new Dr(e)}function Dr(e){this._node=e,this._names=Tr(e.getAttribute("class")||"")}Dr.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function Or(e,t){for(var n=ss(e),i=-1,o=t.length;++i=0&&(n=t.slice(i+1),t=t.slice(0,i)),{type:t,name:n}})}function fd(e){return function(){var t=this.__on;if(t){for(var n=0,i=-1,o=t.length,s;n()=>e;function Ai(e,{sourceEvent:t,subject:n,target:i,identifier:o,active:s,x:a,y:l,dx:r,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:i,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:s,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:r,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}Ai.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function xd(e){return!e.ctrlKey&&!e.button}function Ed(){return this.parentNode}function Sd(e,t){return t??{x:e.x,y:e.y}}function kd(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cd(){var e=xd,t=Ed,n=Sd,i=kd,o={},s=co("start","drag","end"),a=0,l,r,u,c,d=0;function f(w){w.on("mousedown.drag",h).filter(i).on("touchstart.drag",m).on("touchmove.drag",b,bd).on("touchend.drag touchcancel.drag",y).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(w,O){if(!(c||!e.call(this,w,O))){var L=v(this,t.call(this,w,O),w,O,"mouse");L&&(We(w.view).on("mousemove.drag",g,dn).on("mouseup.drag",p,dn),Ar(w.view),ko(w),u=!1,l=w.clientX,r=w.clientY,L("start",w))}}function g(w){if(Pt(w),!u){var O=w.clientX-l,L=w.clientY-r;u=O*O+L*L>d}o.mouse("drag",w)}function p(w){We(w.view).on("mousemove.drag mouseup.drag",null),zr(w.view,u),Pt(w),o.mouse("end",w)}function m(w,O){if(e.call(this,w,O)){var L=w.changedTouches,A=t.call(this,w,O),_=L.length,k,x;for(k=0;k<_;++k)(x=v(this,A,w,O,L[k].identifier,L[k]))&&(ko(w),x("start",w,L[k]))}}function b(w){var O=w.changedTouches,L=O.length,A,_;for(A=0;A>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?kn(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?kn(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Nd.exec(e))?new Be(t[1],t[2],t[3],1):(t=$d.exec(e))?new Be(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Id.exec(e))?kn(t[1],t[2],t[3],t[4]):(t=Td.exec(e))?kn(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Dd.exec(e))?Ds(t[1],t[2]/100,t[3]/100,1):(t=Od.exec(e))?Ds(t[1],t[2]/100,t[3]/100,t[4]):Cs.hasOwnProperty(e)?$s(Cs[e]):e==="transparent"?new Be(NaN,NaN,NaN,0):null}function $s(e){return new Be(e>>16&255,e>>8&255,e&255,1)}function kn(e,t,n,i){return i<=0&&(e=t=n=NaN),new Be(e,t,n,i)}function Ld(e){return e instanceof bn||(e=Nt(e)),e?(e=e.rgb(),new Be(e.r,e.g,e.b,e.opacity)):new Be}function zi(e,t,n,i){return arguments.length===1?Ld(e):new Be(e,t,n,i??1)}function Be(e,t,n,i){this.r=+e,this.g=+t,this.b=+n,this.opacity=+i}as(Be,zi,Vr(bn,{brighter(e){return e=e==null?jn:Math.pow(jn,e),new Be(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?fn:Math.pow(fn,e),new Be(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new Be(Ct(this.r),Ct(this.g),Ct(this.b),Xn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Is,formatHex:Is,formatHex8:Ad,formatRgb:Ts,toString:Ts}));function Is(){return`#${Et(this.r)}${Et(this.g)}${Et(this.b)}`}function Ad(){return`#${Et(this.r)}${Et(this.g)}${Et(this.b)}${Et((isNaN(this.opacity)?1:this.opacity)*255)}`}function Ts(){const e=Xn(this.opacity);return`${e===1?"rgb(":"rgba("}${Ct(this.r)}, ${Ct(this.g)}, ${Ct(this.b)}${e===1?")":`, ${e})`}`}function Xn(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Ct(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Et(e){return e=Ct(e),(e<16?"0":"")+e.toString(16)}function Ds(e,t,n,i){return i<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new Ue(e,t,n,i)}function Br(e){if(e instanceof Ue)return new Ue(e.h,e.s,e.l,e.opacity);if(e instanceof bn||(e=Nt(e)),!e)return new Ue;if(e instanceof Ue)return e;e=e.rgb();var t=e.r/255,n=e.g/255,i=e.b/255,o=Math.min(t,n,i),s=Math.max(t,n,i),a=NaN,l=s-o,r=(s+o)/2;return l?(t===s?a=(n-i)/l+(n0&&r<1?0:a,new Ue(a,l,r,e.opacity)}function zd(e,t,n,i){return arguments.length===1?Br(e):new Ue(e,t,n,i??1)}function Ue(e,t,n,i){this.h=+e,this.s=+t,this.l=+n,this.opacity=+i}as(Ue,zd,Vr(bn,{brighter(e){return e=e==null?jn:Math.pow(jn,e),new Ue(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?fn:Math.pow(fn,e),new Ue(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,i=n+(n<.5?n:1-n)*t,o=2*n-i;return new Be(Co(e>=240?e-240:e+120,o,i),Co(e,o,i),Co(e<120?e+240:e-120,o,i),this.opacity)},clamp(){return new Ue(Os(this.h),Cn(this.s),Cn(this.l),Xn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Xn(this.opacity);return`${e===1?"hsl(":"hsla("}${Os(this.h)}, ${Cn(this.s)*100}%, ${Cn(this.l)*100}%${e===1?")":`, ${e})`}`}}));function Os(e){return e=(e||0)%360,e<0?e+360:e}function Cn(e){return Math.max(0,Math.min(1,e||0))}function Co(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const rs=e=>()=>e;function Vd(e,t){return function(n){return e+n*t}}function Bd(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(i){return Math.pow(e+i*t,n)}}function Fd(e){return(e=+e)==1?Fr:function(t,n){return n-t?Bd(t,n,e):rs(isNaN(t)?n:t)}}function Fr(e,t){var n=t-e;return n?Vd(e,n):rs(isNaN(e)?t:e)}const Zn=(function e(t){var n=Fd(t);function i(o,s){var a=n((o=zi(o)).r,(s=zi(s)).r),l=n(o.g,s.g),r=n(o.b,s.b),u=Fr(o.opacity,s.opacity);return function(c){return o.r=a(c),o.g=l(c),o.b=r(c),o.opacity=u(c),o+""}}return i.gamma=e,i})(1);function Hd(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,i=t.slice(),o;return function(s){for(o=0;on&&(s=t.slice(n,s),l[a]?l[a]+=s:l[++a]=s),(i=i[0])===(o=o[0])?l[a]?l[a]+=o:l[++a]=o:(l[++a]=null,r.push({i:a,x:Qe(i,o)})),n=Mo.lastIndex;return n180?c+=360:c-u>180&&(u+=360),f.push({i:d.push(o(d)+"rotate(",null,i)-2,x:Qe(u,c)})):c&&d.push(o(d)+"rotate("+c+i)}function l(u,c,d,f){u!==c?f.push({i:d.push(o(d)+"skewX(",null,i)-2,x:Qe(u,c)}):c&&d.push(o(d)+"skewX("+c+i)}function r(u,c,d,f,h,g){if(u!==d||c!==f){var p=h.push(o(h)+"scale(",null,",",null,")");g.push({i:p-4,x:Qe(u,d)},{i:p-2,x:Qe(c,f)})}else(d!==1||f!==1)&&h.push(o(h)+"scale("+d+","+f+")")}return function(u,c){var d=[],f=[];return u=e(u),c=e(c),s(u.translateX,u.translateY,c.translateX,c.translateY,d,f),a(u.rotate,c.rotate,d,f),l(u.skewX,c.skewX,d,f),r(u.scaleX,u.scaleY,c.scaleX,c.scaleY,d,f),u=c=null,function(h){for(var g=-1,p=f.length,m;++g=0&&e._call.call(void 0,t),e=e._next;--Bt}function Ls(){$t=(Jn=gn.now())+ho,Bt=Qt=0;try{of()}finally{Bt=0,af(),$t=0}}function sf(){var e=gn.now(),t=e-Jn;t>Yr&&(ho-=t,Jn=e)}function af(){for(var e,t=Kn,n,i=1/0;t;)t._call?(i>t._time&&(i=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Kn=n);en=e,Fi(i)}function Fi(e){if(!Bt){Qt&&(Qt=clearTimeout(Qt));var t=e-$t;t>24?(e<1/0&&(Qt=setTimeout(Ls,e-gn.now()-ho)),jt&&(jt=clearInterval(jt))):(jt||(Jn=gn.now(),jt=setInterval(sf,Yr)),Bt=1,Wr(Ls))}}function As(e,t,n){var i=new Qn;return t=t==null?0:+t,i.restart(o=>{i.stop(),e(o+t)},t,n),i}var rf=co("start","end","cancel","interrupt"),lf=[],jr=0,zs=1,Hi=2,Hn=3,Vs=4,Gi=5,Gn=6;function go(e,t,n,i,o,s){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;uf(e,n,{name:t,index:i,group:o,on:rf,tween:lf,time:s.time,delay:s.delay,duration:s.duration,ease:s.ease,timer:null,state:jr})}function us(e,t){var n=Ze(e,t);if(n.state>jr)throw new Error("too late; already scheduled");return n}function it(e,t){var n=Ze(e,t);if(n.state>Hn)throw new Error("too late; already running");return n}function Ze(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function uf(e,t,n){var i=e.__transition,o;i[t]=n,n.timer=Ur(s,0,n.time);function s(u){n.state=zs,n.timer.restart(a,n.delay,n.time),n.delay<=u&&a(u-n.delay)}function a(u){var c,d,f,h;if(n.state!==zs)return r();for(c in i)if(h=i[c],h.name===n.name){if(h.state===Hn)return As(a);h.state===Vs?(h.state=Gn,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete i[c]):+cHi&&i.state=0&&(t=t.slice(0,n)),!t||t==="start"})}function Vf(e,t,n){var i,o,s=zf(t)?us:it;return function(){var a=s(this,e),l=a.on;l!==i&&(o=(i=l).copy()).on(t,n),a.on=o}}function Bf(e,t){var n=this._id;return arguments.length<2?Ze(this.node(),n).on.on(e):this.each(Vf(n,e,t))}function Ff(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Hf(){return this.on("end.remove",Ff(this._id))}function Gf(e){var t=this._name,n=this._id;typeof e!="function"&&(e=is(e));for(var i=this._groups,o=i.length,s=new Array(o),a=0;a()=>e;function gh(e,{sourceEvent:t,target:n,transform:i,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function rt(e,t,n){this.k=e,this.x=t,this.y=n}rt.prototype={constructor:rt,scale:function(e){return e===1?this:new rt(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new rt(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ft=new rt(1,0,0);rt.prototype;function No(e){e.stopImmediatePropagation()}function Xt(e){e.preventDefault(),e.stopImmediatePropagation()}function mh(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function vh(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Bs(){return this.__zoom||Ft}function ph(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function yh(){return navigator.maxTouchPoints||"ontouchstart"in this}function _h(e,t,n){var i=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],s=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o),a>s?(s+a)/2:Math.min(0,s)||Math.max(0,a))}function wh(){var e=mh,t=vh,n=_h,i=ph,o=yh,s=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],l=250,r=Fn,u=co("start","zoom","end"),c,d,f,h=500,g=150,p=0,m=10;function b(C){C.property("__zoom",Bs).on("wheel.zoom",_,{passive:!1}).on("mousedown.zoom",k).on("dblclick.zoom",x).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",E).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(C,H,V,W){var j=C.selection?C.selection():C;j.property("__zoom",Bs),C!==j?O(C,H,V,W):j.interrupt().each(function(){L(this,arguments).event(W).start().zoom(null,typeof H=="function"?H.apply(this,arguments):H).end()})},b.scaleBy=function(C,H,V,W){b.scaleTo(C,function(){var j=this.__zoom.k,K=typeof H=="function"?H.apply(this,arguments):H;return j*K},V,W)},b.scaleTo=function(C,H,V,W){b.transform(C,function(){var j=t.apply(this,arguments),K=this.__zoom,J=V==null?w(j):typeof V=="function"?V.apply(this,arguments):V,oe=K.invert(J),ge=typeof H=="function"?H.apply(this,arguments):H;return n(v(y(K,ge),J,oe),j,a)},V,W)},b.translateBy=function(C,H,V,W){b.transform(C,function(){return n(this.__zoom.translate(typeof H=="function"?H.apply(this,arguments):H,typeof V=="function"?V.apply(this,arguments):V),t.apply(this,arguments),a)},null,W)},b.translateTo=function(C,H,V,W,j){b.transform(C,function(){var K=t.apply(this,arguments),J=this.__zoom,oe=W==null?w(K):typeof W=="function"?W.apply(this,arguments):W;return n(Ft.translate(oe[0],oe[1]).scale(J.k).translate(typeof H=="function"?-H.apply(this,arguments):-H,typeof V=="function"?-V.apply(this,arguments):-V),K,a)},W,j)};function y(C,H){return H=Math.max(s[0],Math.min(s[1],H)),H===C.k?C:new rt(H,C.x,C.y)}function v(C,H,V){var W=H[0]-V[0]*C.k,j=H[1]-V[1]*C.k;return W===C.x&&j===C.y?C:new rt(C.k,W,j)}function w(C){return[(+C[0][0]+ +C[1][0])/2,(+C[0][1]+ +C[1][1])/2]}function O(C,H,V,W){C.on("start.zoom",function(){L(this,arguments).event(W).start()}).on("interrupt.zoom end.zoom",function(){L(this,arguments).event(W).end()}).tween("zoom",function(){var j=this,K=arguments,J=L(j,K).event(W),oe=t.apply(j,K),ge=V==null?w(oe):typeof V=="function"?V.apply(j,K):V,B=Math.max(oe[1][0]-oe[0][0],oe[1][1]-oe[0][1]),z=j.__zoom,F=typeof H=="function"?H.apply(j,K):H,q=r(z.invert(ge).concat(B/z.k),F.invert(ge).concat(B/F.k));return function(Q){if(Q===1)Q=F;else{var re=q(Q),le=B/re[2];Q=new rt(le,ge[0]-re[0]*le,ge[1]-re[1]*le)}J.zoom(null,Q)}})}function L(C,H,V){return!V&&C.__zooming||new A(C,H)}function A(C,H){this.that=C,this.args=H,this.active=0,this.sourceEvent=null,this.extent=t.apply(C,H),this.taps=0}A.prototype={event:function(C){return C&&(this.sourceEvent=C),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(C,H){return this.mouse&&C!=="mouse"&&(this.mouse[1]=H.invert(this.mouse[0])),this.touch0&&C!=="touch"&&(this.touch0[1]=H.invert(this.touch0[0])),this.touch1&&C!=="touch"&&(this.touch1[1]=H.invert(this.touch1[0])),this.that.__zoom=H,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(C){var H=We(this.that).datum();u.call(C,this.that,new gh(C,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:u}),H)}};function _(C,...H){if(!e.apply(this,arguments))return;var V=L(this,H).event(C),W=this.__zoom,j=Math.max(s[0],Math.min(s[1],W.k*Math.pow(2,i.apply(this,arguments)))),K=Je(C);if(V.wheel)(V.mouse[0][0]!==K[0]||V.mouse[0][1]!==K[1])&&(V.mouse[1]=W.invert(V.mouse[0]=K)),clearTimeout(V.wheel);else{if(W.k===j)return;V.mouse=[K,W.invert(K)],qn(this),V.start()}Xt(C),V.wheel=setTimeout(J,g),V.zoom("mouse",n(v(y(W,j),V.mouse[0],V.mouse[1]),V.extent,a));function J(){V.wheel=null,V.end()}}function k(C,...H){if(f||!e.apply(this,arguments))return;var V=C.currentTarget,W=L(this,H,!0).event(C),j=We(C.view).on("mousemove.zoom",ge,!0).on("mouseup.zoom",B,!0),K=Je(C,V),J=C.clientX,oe=C.clientY;Ar(C.view),No(C),W.mouse=[K,this.__zoom.invert(K)],qn(this),W.start();function ge(z){if(Xt(z),!W.moved){var F=z.clientX-J,q=z.clientY-oe;W.moved=F*F+q*q>p}W.event(z).zoom("mouse",n(v(W.that.__zoom,W.mouse[0]=Je(z,V),W.mouse[1]),W.extent,a))}function B(z){j.on("mousemove.zoom mouseup.zoom",null),zr(z.view,W.moved),Xt(z),W.event(z).end()}}function x(C,...H){if(e.apply(this,arguments)){var V=this.__zoom,W=Je(C.changedTouches?C.changedTouches[0]:C,this),j=V.invert(W),K=V.k*(C.shiftKey?.5:2),J=n(v(y(V,K),W,j),t.apply(this,H),a);Xt(C),l>0?We(this).transition().duration(l).call(O,J,W,C):We(this).call(b.transform,J,W,C)}}function I(C,...H){if(e.apply(this,arguments)){var V=C.touches,W=V.length,j=L(this,H,C.changedTouches.length===W).event(C),K,J,oe,ge;for(No(C),J=0;J(e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom",e))(ce||{}),ds=(e=>(e.Partial="partial",e.Full="full",e))(ds||{}),wt=(e=>(e.Bezier="default",e.SimpleBezier="simple-bezier",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e))(wt||{}),pt=(e=>(e.Strict="strict",e.Loose="loose",e))(pt||{}),eo=(e=>(e.Arrow="arrow",e.ArrowClosed="arrowclosed",e))(eo||{}),sn=(e=>(e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal",e))(sn||{}),Jr=(e=>(e.TopLeft="top-left",e.TopCenter="top-center",e.TopRight="top-right",e.BottomLeft="bottom-left",e.BottomCenter="bottom-center",e.BottomRight="bottom-right",e))(Jr||{});const bh=["INPUT","SELECT","TEXTAREA"],xh=typeof document<"u"?document:null;function qi(e){var t,n;const i=((n=(t=e.composedPath)==null?void 0:t.call(e))==null?void 0:n[0])||e.target,o=typeof i?.hasAttribute=="function"?i.hasAttribute("contenteditable"):!1,s=typeof i?.closest=="function"?i.closest(".nokey"):null;return bh.includes(i?.nodeName)||o||!!s}function Eh(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey}function Fs(e,t,n,i){const o=t.replace("+",` +`).replace(` + +`,` ++`).split(` +`).map(a=>a.trim().toLowerCase());if(o.length===1)return e.toLowerCase()===t.toLowerCase();i||n.add(e.toLowerCase());const s=o.every((a,l)=>n.has(a)&&Array.from(n.values())[l]===o[l]);return i&&n.delete(e.toLowerCase()),s}function Sh(e,t){return n=>{if(!n.code&&!n.key)return!1;const i=kh(n.code,e);return Array.isArray(e)?e.some(o=>Fs(n[i],o,t,n.type==="keyup")):Fs(n[i],e,t,n.type==="keyup")}}function kh(e,t){return t.includes(e)?"code":"key"}function an(e,t){const n=Z(()=>be(t?.target)??xh),i=rn(be(e)===!0);let o=!1;const s=new Set;let a=r(be(e));ve(()=>be(e),(u,c)=>{typeof c=="boolean"&&typeof u!="boolean"&&l(),a=r(u)},{immediate:!0}),Sr(["blur","contextmenu"],l),Es((...u)=>a(...u),u=>{var c,d;const f=be(t?.actInsideInputWithModifier)??!0,h=be(t?.preventDefault)??!1;if(o=Eh(u),(!o||o&&!f)&&qi(u))return;const p=((d=(c=u.composedPath)==null?void 0:c.call(u))==null?void 0:d[0])||u.target,m=p?.nodeName==="BUTTON"||p?.nodeName==="A";!h&&(o||!m)&&u.preventDefault(),i.value=!0},{eventName:"keydown",target:n}),Es((...u)=>a(...u),u=>{const c=be(t?.actInsideInputWithModifier)??!0;if(i.value){if((!o||o&&!c)&&qi(u))return;o=!1,i.value=!1}},{eventName:"keyup",target:n});function l(){o=!1,s.clear(),i.value=be(e)===!0}function r(u){return u===null?(l(),()=>!1):typeof u=="boolean"?(l(),i.value=u,()=>!1):Array.isArray(u)||typeof u=="string"?Sh(u,s):u}return i}const Qr="vue-flow__node-desc",el="vue-flow__edge-desc",Ch="vue-flow__aria-live",tl=["Enter"," ","Escape"],Lt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};function to(e){return{...e.computedPosition||{x:0,y:0},width:e.dimensions.width||0,height:e.dimensions.height||0}}function no(e,t){const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),i=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*i)}function mo(e){return{width:e.offsetWidth,height:e.offsetHeight}}function It(e,t=0,n=1){return Math.min(Math.max(e,t),n)}function nl(e,t){return{x:It(e.x,t[0][0],t[1][0]),y:It(e.y,t[0][1],t[1][1])}}function Hs(e){const t=e.getRootNode();return"elementFromPoint"in t?t:window.document}function yt(e){return e&&typeof e=="object"&&"id"in e&&"source"in e&&"target"in e}function Mt(e){return e&&typeof e=="object"&&"id"in e&&"position"in e&&!yt(e)}function tn(e){return Mt(e)&&"computedPosition"in e}function $n(e){return!Number.isNaN(e)&&Number.isFinite(e)}function Mh(e){return $n(e.width)&&$n(e.height)&&$n(e.x)&&$n(e.y)}function Nh(e,t,n){const i={id:e.id.toString(),type:e.type??"default",dimensions:zn({width:0,height:0}),computedPosition:zn({z:0,...e.position}),handleBounds:{source:[],target:[]},draggable:void 0,selectable:void 0,connectable:void 0,focusable:void 0,selected:!1,dragging:!1,resizing:!1,initialized:!1,isParent:!1,position:{x:0,y:0},data:Oe(e.data)?e.data:{},events:zn(Oe(e.events)?e.events:{})};return Object.assign(t??i,e,{id:e.id.toString(),parentNode:n})}function ol(e,t,n){var i,o;const s={id:e.id.toString(),type:e.type??t?.type??"default",source:e.source.toString(),target:e.target.toString(),sourceHandle:(i=e.sourceHandle)==null?void 0:i.toString(),targetHandle:(o=e.targetHandle)==null?void 0:o.toString(),updatable:e.updatable??n?.updatable,selectable:e.selectable??n?.selectable,focusable:e.focusable??n?.focusable,data:Oe(e.data)?e.data:{},events:zn(Oe(e.events)?e.events:{}),label:e.label??"",interactionWidth:e.interactionWidth??n?.interactionWidth,...n??{}};return Object.assign(t??s,e,{id:e.id.toString()})}function il(e,t,n,i){const o=typeof e=="string"?e:e.id,s=new Set,a=i==="source"?"target":"source";for(const l of n)l[a]===o&&s.add(l[i]);return t.filter(l=>s.has(l.id))}function $h(...e){if(e.length===3){const[s,a,l]=e;return il(s,a,l,"target")}const[t,n]=e,i=typeof t=="string"?t:t.id;return n.filter(s=>yt(s)&&s.source===i).map(s=>n.find(a=>Mt(a)&&a.id===s.target))}function Ih(...e){if(e.length===3){const[s,a,l]=e;return il(s,a,l,"source")}const[t,n]=e,i=typeof t=="string"?t:t.id;return n.filter(s=>yt(s)&&s.target===i).map(s=>n.find(a=>Mt(a)&&a.id===s.source))}function sl({source:e,sourceHandle:t,target:n,targetHandle:i}){return`vueflow__edge-${e}${t??""}-${n}${i??""}`}function Th(e,t){return t.some(n=>yt(n)&&n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle))}function mn({x:e,y:t},{x:n,y:i,zoom:o}){return{x:e*o+n,y:t*o+i}}function vn({x:e,y:t},{x:n,y:i,zoom:o},s=!1,a=[1,1]){const l={x:(e-n)/o,y:(t-i)/o};return s?vo(l,a):l}function Dh(e,t){return{x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}}function al({x:e,y:t,width:n,height:i}){return{x:e,y:t,x2:e+n,y2:t+i}}function Oh({x:e,y:t,x2:n,y2:i}){return{x:e,y:t,width:n-e,height:i-t}}function rl(e){let t={x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY,x2:Number.NEGATIVE_INFINITY,y2:Number.NEGATIVE_INFINITY};for(let n=0;n0,m=(d??0)*(f??0);(g||p||h>=m||l.dragging)&&a.push(l)}return a}function ul(e,t){const n=new Set;if(typeof e=="string")n.add(e);else if(e.length>=1)for(const i of e)n.add(i.id);return t.filter(i=>n.has(i.source)||n.has(i.target))}function Ot(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=Number.parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=Number.parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return xn(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Ph(e,t,n){if(typeof e=="string"||typeof e=="number"){const i=Ot(e,n),o=Ot(e,t);return{top:i,right:o,bottom:i,left:o,x:o*2,y:i*2}}if(typeof e=="object"){const i=Ot(e.top??e.y??0,n),o=Ot(e.bottom??e.y??0,n),s=Ot(e.left??e.x??0,t),a=Ot(e.right??e.x??0,t);return{top:i,right:a,bottom:o,left:s,x:s+a,y:i+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Rh(e,t,n,i,o,s){const{x:a,y:l}=mn(e,{x:t,y:n,zoom:i}),{x:r,y:u}=mn({x:e.x+e.width,y:e.y+e.height},{x:t,y:n,zoom:i}),c=o-r,d=s-u;return{left:Math.floor(a),top:Math.floor(l),right:Math.floor(c),bottom:Math.floor(d)}}function Gs(e,t,n,i,o,s=.1){const a=Ph(s,t,n),l=(t-a.x)/e.width,r=(n-a.y)/e.height,u=Math.min(l,r),c=It(u,i,o),d=e.x+e.width/2,f=e.y+e.height/2,h=t/2-d*c,g=n/2-f*c,p=Rh(e,h,g,c,t,n),m={left:Math.min(p.left-a.left,0),top:Math.min(p.top-a.top,0),right:Math.min(p.right-a.right,0),bottom:Math.min(p.bottom-a.bottom,0)};return{x:h-m.left+m.right,y:g-m.top+m.bottom,zoom:c}}function Lh(e,t){return{x:t.x+e.x,y:t.y+e.y,z:(e.z>t.z?e.z:t.z)+1}}function cl(e,t){if(!e.parentNode)return!1;const n=t.get(e.parentNode);return n?n.selected?!0:cl(n,t):!1}function pn(e,t){return typeof e>"u"?"":typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(i=>`${i}=${e[i]}`).join("&")}`}function qs(e){const t=e.ctrlKey&&oo()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t}function Ys(e,t,n){return en?-It(Math.abs(e-n),1,t)/t:0}function dl(e,t,n=15,i=40){const o=Ys(e.x,i,t.width-i)*n,s=Ys(e.y,i,t.height-i)*n;return[o,s]}function $o(e,t){if(t){const n=e.position.x+e.dimensions.width-t.dimensions.width,i=e.position.y+e.dimensions.height-t.dimensions.height;if(n>0||i>0||e.position.x<0||e.position.y<0){let o={};if(typeof t.style=="function"?o={...t.style(t)}:t.style&&(o={...t.style}),o.width=o.width??`${t.dimensions.width}px`,o.height=o.height??`${t.dimensions.height}px`,n>0)if(typeof o.width=="string"){const s=Number(o.width.replace("px",""));o.width=`${s+n}px`}else o.width+=n;if(i>0)if(typeof o.height=="string"){const s=Number(o.height.replace("px",""));o.height=`${s+i}px`}else o.height+=i;if(e.position.x<0){const s=Math.abs(e.position.x);if(t.position.x=t.position.x-s,typeof o.width=="string"){const a=Number(o.width.replace("px",""));o.width=`${a+s}px`}else o.width+=s;e.position.x=0}if(e.position.y<0){const s=Math.abs(e.position.y);if(t.position.y=t.position.y-s,typeof o.height=="string"){const a=Number(o.height.replace("px",""));o.height=`${a+s}px`}else o.height+=s;e.position.y=0}t.dimensions.width=Number(o.width.toString().replace("px","")),t.dimensions.height=Number(o.height.toString().replace("px","")),typeof t.style=="function"?t.style=s=>{const a=t.style;return{...a(s),...o}}:t.style={...t.style,...o}}}}function Ws(e,t){var n,i;const o=e.filter(a=>a.type==="add"||a.type==="remove");for(const a of o)if(a.type==="add")t.findIndex(r=>r.id===a.item.id)===-1&&t.push(a.item);else if(a.type==="remove"){const l=t.findIndex(r=>r.id===a.id);l!==-1&&t.splice(l,1)}const s=t.map(a=>a.id);for(const a of t)for(const l of e)if(l.id===a.id)switch(l.type){case"select":a.selected=l.selected;break;case"position":if(tn(a)&&(typeof l.position<"u"&&(a.position=l.position),typeof l.dragging<"u"&&(a.dragging=l.dragging),a.expandParent&&a.parentNode)){const r=t[s.indexOf(a.parentNode)];r&&tn(r)&&$o(a,r)}break;case"dimensions":if(tn(a)&&(typeof l.dimensions<"u"&&(a.dimensions=l.dimensions),typeof l.updateStyle<"u"&&l.updateStyle&&(a.style={...a.style||{},width:`${(n=l.dimensions)==null?void 0:n.width}px`,height:`${(i=l.dimensions)==null?void 0:i.height}px`}),typeof l.resizing<"u"&&(a.resizing=l.resizing),a.expandParent&&a.parentNode)){const r=t[s.indexOf(a.parentNode)];r&&tn(r)&&(!!r.dimensions.width&&!!r.dimensions.height?$o(a,r):nt(()=>{$o(a,r)}))}break}return t}function ht(e,t){return{id:e,type:"select",selected:t}}function Us(e){return{item:e,type:"add"}}function js(e){return{id:e,type:"remove"}}function Xs(e,t,n,i,o){return{id:e,source:t,target:n,sourceHandle:i||null,targetHandle:o||null,type:"remove"}}function gt(e,t=new Set,n=!1){const i=[];for(const[o,s]of e){const a=t.has(o);!(s.selected===void 0&&!a)&&s.selected!==a&&(n&&(s.selected=a),i.push(ht(s.id,a)))}return i}const Zs=()=>{};function te(e){const t=new Set;let n=Zs,i=()=>!1;const o=()=>t.size>0||i(),s=f=>{n=f},a=()=>{n=Zs},l=f=>{i=f},r=()=>{i=()=>!1},u=f=>{t.delete(f)};return{on:f=>{t.add(f);const h=()=>u(f);return cn(h),{off:h}},off:u,trigger:f=>{const h=[n];return o()?h.push(...t):e&&h.push(e),Promise.allSettled(h.map(g=>g(f)))},hasListeners:o,listeners:t,setEmitter:s,removeEmitter:a,setHasEmitListeners:l,removeHasEmitListeners:r}}function Ks(e,t,n){let i=e;do{if(i&&i.matches(t))return!0;if(i===n)return!1;i=i.parentElement}while(i);return!1}function Ah(e,t,n,i){var o,s;const a=new Map;for(const[l,r]of e)(r.selected||r.id===i)&&(!r.parentNode||!cl(r,e))&&(r.draggable||t&&typeof r.draggable>"u")&&e.get(l)&&a.set(l,{id:r.id,position:r.position||{x:0,y:0},distance:{x:n.x-((o=r.computedPosition)==null?void 0:o.x)||0,y:n.y-((s=r.computedPosition)==null?void 0:s.y)||0},from:{x:r.computedPosition.x,y:r.computedPosition.y},extent:r.extent,parentNode:r.parentNode,dimensions:{...r.dimensions},expandParent:r.expandParent});return Array.from(a.values())}function Io({id:e,dragItems:t,findNode:n}){const i=[];for(const o of t){const s=n(o.id);s&&i.push(s)}return[e?i.find(o=>o.id===e):i[0],i]}function fl(e){if(Array.isArray(e))switch(e.length){case 1:return[e[0],e[0],e[0],e[0]];case 2:return[e[0],e[1],e[0],e[1]];case 3:return[e[0],e[1],e[2],e[1]];case 4:return e;default:return[0,0,0,0]}return[e,e,e,e]}function zh(e,t,n){const[i,o,s,a]=typeof e!="string"?fl(e.padding):[0,0,0,0];return n&&typeof n.computedPosition.x<"u"&&typeof n.computedPosition.y<"u"&&typeof n.dimensions.width<"u"&&typeof n.dimensions.height<"u"?[[n.computedPosition.x+a,n.computedPosition.y+i],[n.computedPosition.x+n.dimensions.width-o,n.computedPosition.y+n.dimensions.height-s]]:!1}function Vh(e,t,n,i){let o=e.extent||n;if((o==="parent"||!Array.isArray(o)&&o?.range==="parent")&&!e.expandParent)if(e.parentNode&&i&&e.dimensions.width&&e.dimensions.height){const s=zh(o,e,i);s&&(o=s)}else t(new Ae(Pe.NODE_EXTENT_INVALID,e.id)),o=n;else if(Array.isArray(o)){const s=i?.computedPosition.x||0,a=i?.computedPosition.y||0;o=[[o[0][0]+s,o[0][1]+a],[o[1][0]+s,o[1][1]+a]]}else if(o!=="parent"&&o?.range&&Array.isArray(o.range)){const[s,a,l,r]=fl(o.padding),u=i?.computedPosition.x||0,c=i?.computedPosition.y||0;o=[[o.range[0][0]+u+r,o.range[0][1]+c+s],[o.range[1][0]+u-a,o.range[1][1]+c-l]]}return o==="parent"?[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]]:o}function Bh({width:e,height:t},n){return[n[0],[n[1][0]-(e||0),n[1][1]-(t||0)]]}function fs(e,t,n,i,o){const s=Bh(e.dimensions,Vh(e,n,i,o)),a=nl(t,s);return{position:{x:a.x-(o?.computedPosition.x||0),y:a.y-(o?.computedPosition.y||0)},computedPosition:a}}function Ht(e,t,n=ce.Left,i=!1){const o=(t?.x??0)+e.computedPosition.x,s=(t?.y??0)+e.computedPosition.y,{width:a,height:l}=t??qh(e);if(i)return{x:o+a/2,y:s+l/2};switch(t?.position??n){case ce.Top:return{x:o+a/2,y:s};case ce.Right:return{x:o+a,y:s+l/2};case ce.Bottom:return{x:o+a/2,y:s+l};case ce.Left:return{x:o,y:s+l/2}}}function Js(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Fh({sourcePos:e,targetPos:t,sourceWidth:n,sourceHeight:i,targetWidth:o,targetHeight:s,width:a,height:l,viewport:r}){const u={x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x+n,t.x+o),y2:Math.max(e.y+i,t.y+s)};u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);const c=al({x:(0-r.x)/r.zoom,y:(0-r.y)/r.zoom,width:a/r.zoom,height:l/r.zoom}),d=Math.max(0,Math.min(c.x2,u.x2)-Math.max(c.x,u.x)),f=Math.max(0,Math.min(c.y2,u.y2)-Math.max(c.y,u.y));return Math.ceil(d*f)>0}function Hh(e,t,n=!1){const i=typeof e.zIndex=="number";let o=i?e.zIndex:0;const s=t(e.source),a=t(e.target);return!s||!a?0:(n&&(o=i?e.zIndex:Math.max(s.computedPosition.z||0,a.computedPosition.z||0)),o)}var Pe=(e=>(e.MISSING_STYLES="MISSING_STYLES",e.MISSING_VIEWPORT_DIMENSIONS="MISSING_VIEWPORT_DIMENSIONS",e.NODE_INVALID="NODE_INVALID",e.NODE_NOT_FOUND="NODE_NOT_FOUND",e.NODE_MISSING_PARENT="NODE_MISSING_PARENT",e.NODE_TYPE_MISSING="NODE_TYPE_MISSING",e.NODE_EXTENT_INVALID="NODE_EXTENT_INVALID",e.EDGE_INVALID="EDGE_INVALID",e.EDGE_NOT_FOUND="EDGE_NOT_FOUND",e.EDGE_SOURCE_MISSING="EDGE_SOURCE_MISSING",e.EDGE_TARGET_MISSING="EDGE_TARGET_MISSING",e.EDGE_TYPE_MISSING="EDGE_TYPE_MISSING",e.EDGE_SOURCE_TARGET_SAME="EDGE_SOURCE_TARGET_SAME",e.EDGE_SOURCE_TARGET_MISSING="EDGE_SOURCE_TARGET_MISSING",e.EDGE_ORPHANED="EDGE_ORPHANED",e.USEVUEFLOW_OPTIONS="USEVUEFLOW_OPTIONS",e))(Pe||{});const Qs={MISSING_STYLES:()=>"It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly",MISSING_VIEWPORT_DIMENSIONS:()=>"The Vue Flow parent container needs a width and a height to render the graph",NODE_INVALID:e=>`Node is invalid +Node: ${e}`,NODE_NOT_FOUND:e=>`Node not found +Node: ${e}`,NODE_MISSING_PARENT:(e,t)=>`Node is missing a parent +Node: ${e} +Parent: ${t}`,NODE_TYPE_MISSING:e=>`Node type is missing +Type: ${e}`,NODE_EXTENT_INVALID:e=>`Only child nodes can use a parent extent +Node: ${e}`,EDGE_INVALID:e=>`An edge needs a source and a target +Edge: ${e}`,EDGE_SOURCE_MISSING:(e,t)=>`Edge source is missing +Edge: ${e} +Source: ${t}`,EDGE_TARGET_MISSING:(e,t)=>`Edge target is missing +Edge: ${e} +Target: ${t}`,EDGE_TYPE_MISSING:e=>`Edge type is missing +Type: ${e}`,EDGE_SOURCE_TARGET_SAME:(e,t,n)=>`Edge source and target are the same +Edge: ${e} +Source: ${t} +Target: ${n}`,EDGE_SOURCE_TARGET_MISSING:(e,t,n)=>`Edge source or target is missing +Edge: ${e} +Source: ${t} +Target: ${n}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed +Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found +Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Ae extends Error{constructor(t,...n){var i;super((i=Qs[t])==null?void 0:i.call(Qs,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function hs(e){return"clientX"in e}function Gh(e){return"sourceEvent"in e}function et(e,t){const n=hs(e);let i,o;return n?(i=e.clientX,o=e.clientY):"touches"in e&&e.touches.length>0?(i=e.touches[0].clientX,o=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(i=e.changedTouches[0].clientX,o=e.changedTouches[0].clientY):(i=0,o=0),{x:i-(t?.left??0),y:o-(t?.top??0)}}const oo=()=>{var e;return typeof navigator<"u"&&((e=navigator?.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function qh(e){var t,n;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((n=e.dimensions)==null?void 0:n.height)??e.height??0}}function vo(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const Yh=()=>!0;function To(e){e?.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function Wh(e,t,n){const i=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const s of t.values())no(o,to(s))>0&&i.push(s);return i}const Uh=250;function jh(e,t,n,i){var o,s;let a=[],l=Number.POSITIVE_INFINITY;const r=Wh(e,n,t+Uh);for(const u of r){const c=[...((o=u.handleBounds)==null?void 0:o.source)??[],...((s=u.handleBounds)==null?void 0:s.target)??[]];for(const d of c){if(i.nodeId===d.nodeId&&i.type===d.type&&i.id===d.id)continue;const{x:f,y:h}=Ht(u,d,d.position,!0),g=Math.sqrt((f-e.x)**2+(h-e.y)**2);g>t||(g1){const u=i.type==="source"?"target":"source";return a.find(c=>c.type===u)??a[0]}return a[0]}function ea(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:o,fromType:s,doc:a,lib:l,flowId:r,isValidConnection:u=Yh},c,d,f,h){const g=s==="target",p=t?a.querySelector(`.${l}-flow__handle[data-id="${r}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:m,y:b}=et(e),y=a.elementFromPoint(m,b),v=y?.classList.contains(`${l}-flow__handle`)?y:p,w={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const O=hl(void 0,v),L=v.getAttribute("data-nodeid"),A=v.getAttribute("data-handleid"),_=v.classList.contains("connectable"),k=v.classList.contains("connectableend");if(!L||!O)return w;const x={source:g?L:i,sourceHandle:g?A:o,target:g?i:L,targetHandle:g?o:A};w.connection=x;const E=_&&k&&(n===pt.Strict?g&&O==="source"||!g&&O==="target":L!==i||A!==o);w.isValid=E&&u(x,{nodes:d,edges:c,sourceNode:f(x.source),targetNode:f(x.target)}),w.toHandle=gl(L,O,A,h,n,!0)}return w}function hl(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Xh(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function Zh(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}function gl(e,t,n,i,o,s=!1){var a,l,r;const u=i.get(e);if(!u)return null;const c=o===pt.Strict?(a=u.handleBounds)==null?void 0:a[t]:[...((l=u.handleBounds)==null?void 0:l.source)??[],...((r=u.handleBounds)==null?void 0:r.target)??[]],d=(n?c?.find(f=>f.id===n):c?.[0])??null;return d&&s?{...d,...Ht(u,d,d.position,!0)}:d}const Yi={[ce.Left]:ce.Right,[ce.Right]:ce.Left,[ce.Top]:ce.Bottom,[ce.Bottom]:ce.Top},Kh=["production","prod"];function xn(e,...t){ml()&&console.warn(`[Vue Flow]: ${e}`,...t)}function ml(){return!Kh.includes("production")}function ta(e,t,n,i,o){const s=t.querySelectorAll(`.vue-flow__handle.${e}`);return s?.length?Array.from(s).map(a=>{const l=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:o,position:a.getAttribute("data-handlepos"),x:(l.left-n.left)/i,y:(l.top-n.top)/i,...mo(a)}}):null}function Wi(e,t,n,i,o,s=!1,a){o.value=!1,e.selected?(s||e.selected&&t)&&(i([e]),nt(()=>{a.blur()})):n([e])}function Oe(e){return typeof R(e)<"u"}function Jh(e,t,n,i){if(!e||!e.source||!e.target)return n(new Ae(Pe.EDGE_INVALID,e?.id??"[ID UNKNOWN]")),!1;let o;return yt(e)?o=e:o={...e,id:sl(e)},o=ol(o,void 0,i),Th(o,t)?!1:o}function Qh(e,t,n,i,o){if(!t.source||!t.target)return o(new Ae(Pe.EDGE_INVALID,e.id)),!1;if(!n)return o(new Ae(Pe.EDGE_NOT_FOUND,e.id)),!1;const{id:s,...a}=e;return{...a,id:i?sl(t):s,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function na(e,t,n){const i={},o=[];for(let s=0;sl.id===s.parentNode);s.parentNode&&!a&&n(new Ae(Pe.NODE_MISSING_PARENT,s.id,s.parentNode)),(s.parentNode||i[s.id])&&(i[s.id]&&(s.isParent=!0),a&&(a.isParent=!0))}return o}function oa(e,t,n,i,o,s){let a=o;const l=i.get(a)||new Map;i.set(a,l.set(n,t)),a=`${o}-${e}`;const r=i.get(a)||new Map;if(i.set(a,r.set(n,t)),s){a=`${o}-${e}-${s}`;const u=i.get(a)||new Map;i.set(a,u.set(n,t))}}function Do(e,t,n){e.clear();for(const i of n){const{source:o,target:s,sourceHandle:a=null,targetHandle:l=null}=i,r={edgeId:i.id,source:o,target:s,sourceHandle:a,targetHandle:l},u=`${o}-${a}--${s}-${l}`,c=`${s}-${l}--${o}-${a}`;oa("source",r,c,e,o,a),oa("target",r,u,e,s,l)}}function ia(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Oo(e,t,n,i,o,s,a,l){const r=[];for(const u of e){const c=yt(u)?u:Jh(u,l,o,s);if(!c)continue;const d=n(c.source),f=n(c.target);if(!d||!f){o(new Ae(Pe.EDGE_SOURCE_TARGET_MISSING,c.id,c.source,c.target));continue}if(!d){o(new Ae(Pe.EDGE_SOURCE_MISSING,c.id,c.source));continue}if(!f){o(new Ae(Pe.EDGE_TARGET_MISSING,c.id,c.target));continue}if(t&&!t(c,{edges:l,nodes:a,sourceNode:d,targetNode:f})){o(new Ae(Pe.EDGE_INVALID,c.id));continue}const h=i(c.id);r.push({...ol(c,h,s),sourceNode:d,targetNode:f})}return r}const sa=Symbol("vueFlow"),vl=Symbol("nodeId"),pl=Symbol("nodeRef"),eg=Symbol("edgeId"),tg=Symbol("edgeRef"),po=Symbol("slots");function yl(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:i,noDragClassName:o,nodeLookup:s,nodeExtent:a,nodeDragThreshold:l,viewport:r,autoPanOnNodeDrag:u,autoPanSpeed:c,nodesDraggable:d,panBy:f,findNode:h,multiSelectionActive:g,nodesSelectionActive:p,selectNodesOnDrag:m,removeSelectedElements:b,addSelectedNodes:y,updateNodePositions:v,emits:w}=Ie(),{onStart:O,onDrag:L,onStop:A,onClick:_,el:k,disabled:x,id:I,selectable:E,dragHandle:G}=e,C=rn(!1);let H=[],V,W=null,j={x:void 0,y:void 0},K={x:0,y:0},J=null,oe=!1,ge=!1,B=0,z=!1;const F=ig(),q=({x:fe,y:me})=>{j={x:fe,y:me};let $=!1;if(H=H.map(N=>{const P={x:fe-N.distance.x,y:me-N.distance.y},{computedPosition:T}=fs(N,n.value?vo(P,i.value):P,w.error,a.value,N.parentNode?h(N.parentNode):void 0);return $=$||N.position.x!==T.x||N.position.y!==T.y,N.position=T,N}),ge=ge||$,!!$&&(v(H,!0,!0),C.value=!0,J)){const[N,P]=Io({id:I,dragItems:H,findNode:h});L({event:J,node:N,nodes:P})}},Q=()=>{if(!W)return;const[fe,me]=dl(K,W,c.value);if(fe!==0||me!==0){const $={x:(j.x??0)-fe/r.value.zoom,y:(j.y??0)-me/r.value.zoom};f({x:fe,y:me})&&q($)}B=requestAnimationFrame(Q)},re=(fe,me)=>{oe=!0;const $=h(I);!m.value&&!g.value&&$&&($.selected||b()),$&&be(E)&&m.value&&Wi($,g.value,y,b,p,!1,me);const N=F(fe.sourceEvent);if(j=N,H=Ah(s.value,d.value,N,I),H.length){const[P,T]=Io({id:I,dragItems:H,findNode:h});O({event:fe.sourceEvent,node:P,nodes:T})}},le=(fe,me)=>{var $;fe.sourceEvent.type==="touchmove"&&fe.sourceEvent.touches.length>1||(ge=!1,l.value===0&&re(fe,me),j=F(fe.sourceEvent),W=(($=t.value)==null?void 0:$.getBoundingClientRect())||null,K=et(fe.sourceEvent,W))},_e=(fe,me)=>{const $=F(fe.sourceEvent);if(!z&&oe&&u.value&&(z=!0,Q()),!oe){const N=$.xSnapped-(j.x??0),P=$.ySnapped-(j.y??0);Math.sqrt(N*N+P*P)>l.value&&re(fe,me)}(j.x!==$.xSnapped||j.y!==$.ySnapped)&&H.length&&oe&&(J=fe.sourceEvent,K=et(fe.sourceEvent,W),q($))},Se=fe=>{let me=!1;if(!oe&&!C.value&&!g.value){const $=fe.sourceEvent,N=F($),P=N.xSnapped-(j.x??0),T=N.ySnapped-(j.y??0),Y=Math.sqrt(P*P+T*T);Y!==0&&Y<=l.value&&(_?.($),me=!0)}if(H.length&&!me){ge&&(v(H,!1,!1),ge=!1);const[$,N]=Io({id:I,dragItems:H,findNode:h});A({event:fe.sourceEvent,node:$,nodes:N})}H=[],C.value=!1,z=!1,oe=!1,j={x:void 0,y:void 0},cancelAnimationFrame(B)};return ve([()=>be(x),k],([fe,me],$,N)=>{if(me){const P=We(me);fe||(V=Cd().on("start",T=>le(T,me)).on("drag",T=>_e(T,me)).on("end",T=>Se(T)).filter(T=>{const Y=T.target,ie=be(G);return!T.button&&(!o.value||!Ks(Y,`.${o.value}`,me)&&(!ie||Ks(Y,ie,me)))}),P.call(V)),N(()=>{P.on(".drag",null),V&&(V.on("start",null),V.on("drag",null),V.on("end",null))})}}),C}function ng(){return{doubleClick:te(),click:te(),mouseEnter:te(),mouseMove:te(),mouseLeave:te(),contextMenu:te(),updateStart:te(),update:te(),updateEnd:te()}}function og(e,t){const n=ng();return n.doubleClick.on(i=>{var o,s;t.edgeDoubleClick(i),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,i)}),n.click.on(i=>{var o,s;t.edgeClick(i),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,i)}),n.mouseEnter.on(i=>{var o,s;t.edgeMouseEnter(i),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,i)}),n.mouseMove.on(i=>{var o,s;t.edgeMouseMove(i),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,i)}),n.mouseLeave.on(i=>{var o,s;t.edgeMouseLeave(i),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,i)}),n.contextMenu.on(i=>{var o,s;t.edgeContextMenu(i),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,i)}),n.updateStart.on(i=>{var o,s;t.edgeUpdateStart(i),(s=(o=e.events)==null?void 0:o.updateStart)==null||s.call(o,i)}),n.update.on(i=>{var o,s;t.edgeUpdate(i),(s=(o=e.events)==null?void 0:o.update)==null||s.call(o,i)}),n.updateEnd.on(i=>{var o,s;t.edgeUpdateEnd(i),(s=(o=e.events)==null?void 0:o.updateEnd)==null||s.call(o,i)}),Object.entries(n).reduce((i,[o,s])=>(i.emit[o]=s.trigger,i.on[o]=s.on,i),{emit:{},on:{}})}function ig(){const{viewport:e,snapGrid:t,snapToGrid:n,vueFlowRef:i}=Ie();return o=>{var s;const a=((s=i.value)==null?void 0:s.getBoundingClientRect())??{left:0,top:0},l=Gh(o)?o.sourceEvent:o,{x:r,y:u}=et(l,a),c=vn({x:r,y:u},e.value),{x:d,y:f}=n.value?vo(c,t.value):c;return{xSnapped:d,ySnapped:f,...c}}}function In(){return!0}function _l({handleId:e,nodeId:t,type:n,isValidConnection:i,edgeUpdaterType:o,onEdgeUpdate:s,onEdgeUpdateEnd:a}){const{id:l,vueFlowRef:r,connectionMode:u,connectionRadius:c,connectOnClick:d,connectionClickStartHandle:f,nodesConnectable:h,autoPanOnConnect:g,autoPanSpeed:p,findNode:m,panBy:b,startConnection:y,updateConnection:v,endConnection:w,emits:O,viewport:L,edges:A,nodes:_,isValidConnection:k,nodeLookup:x}=Ie();let I=null,E=!1,G=null;function C(V){var W;const j=be(n)==="target",K=hs(V),J=Hs(V.target),oe=V.currentTarget;if(oe&&(K&&V.button===0||!K)){let ge=function(he){$=et(he,Se),q=jh(vn($,L.value,!1,[1,1]),c.value,x.value,T),N||(P(),N=!0);const we=ea(he,{handle:q,connectionMode:u.value,fromNodeId:be(t),fromHandleId:be(e),fromType:j?"target":"source",isValidConnection:F,doc:J,lib:"vue",flowId:l,nodeLookup:x.value},A.value,_.value,m,x.value);G=we.handleDomNode,I=we.connection,E=Zh(!!q,we.isValid);const xe={...ae,isValid:E,to:we.toHandle&&E?mn({x:we.toHandle.x,y:we.toHandle.y},L.value):$,toHandle:we.toHandle,toPosition:E&&we.toHandle?we.toHandle.position:Yi[T.position],toNode:we.toHandle?x.value.get(we.toHandle.nodeId):null};if(E&&q&&ae?.toHandle&&xe.toHandle&&ae.toHandle.type===xe.toHandle.type&&ae.toHandle.nodeId===xe.toHandle.nodeId&&ae.toHandle.id===xe.toHandle.id&&ae.to.x===xe.to.x&&ae.to.y===xe.to.y)return;const Me=q??we.toHandle;if(v(Me&&E?mn({x:Me.x,y:Me.y},L.value):$,we.toHandle,Xh(!!Me,E)),ae=xe,!q&&!E&&!G)return To(me);I&&I.source!==I.target&&G&&(To(me),me=G,G.classList.add("connecting","vue-flow__handle-connecting"),G.classList.toggle("valid",!!E),G.classList.toggle("vue-flow__handle-valid",!!E))},B=function(he){"touches"in he&&he.touches.length>0||((q||G)&&I&&E&&(s?s(he,I):O.connect(I)),O.connectEnd(he),o&&a?.(he),To(me),cancelAnimationFrame(Q),w(he),N=!1,E=!1,I=null,G=null,J.removeEventListener("mousemove",ge),J.removeEventListener("mouseup",B),J.removeEventListener("touchmove",ge),J.removeEventListener("touchend",B))};const z=m(be(t));let F=be(i)||k.value||In;!F&&z&&(F=(j?z.isValidSourcePos:z.isValidTargetPos)||In);let q,Q=0;const{x:re,y:le}=et(V),_e=hl(be(o),oe),Se=(W=r.value)==null?void 0:W.getBoundingClientRect();if(!Se||!_e)return;const fe=gl(be(t),_e,be(e),x.value,u.value);if(!fe)return;let me,$=et(V,Se),N=!1;const P=()=>{if(!g.value)return;const[he,we]=dl($,Se,p.value);b({x:he,y:we}),Q=requestAnimationFrame(P)},T={...fe,nodeId:be(t),type:_e,position:fe.position},Y=x.value.get(be(t)),se={inProgress:!0,isValid:null,from:Ht(Y,T,ce.Left,!0),fromHandle:T,fromPosition:T.position,fromNode:Y,to:$,toHandle:null,toPosition:Yi[T.position],toNode:null};y({nodeId:be(t),id:be(e),type:_e,position:oe?.getAttribute("data-handlepos")||ce.Top,...$},{x:re-Se.left,y:le-Se.top}),O.connectStart({event:V,nodeId:be(t),handleId:be(e),handleType:_e});let ae=se;J.addEventListener("mousemove",ge),J.addEventListener("mouseup",B),J.addEventListener("touchmove",ge),J.addEventListener("touchend",B)}}function H(V){var W,j;if(!d.value)return;const K=be(n)==="target";if(!f.value){O.clickConnectStart({event:V,nodeId:be(t),handleId:be(e)}),y({nodeId:be(t),type:be(n),id:be(e),position:ce.Top,...et(V)},void 0,!0);return}let J=be(i)||k.value||In;const oe=m(be(t));if(!J&&oe&&(J=(K?oe.isValidSourcePos:oe.isValidTargetPos)||In),oe&&(typeof oe.connectable>"u"?h.value:oe.connectable)===!1)return;const ge=Hs(V.target),B=ea(V,{handle:{nodeId:be(t),id:be(e),type:be(n),position:ce.Top,...et(V)},connectionMode:u.value,fromNodeId:f.value.nodeId,fromHandleId:f.value.id??null,fromType:f.value.type,isValidConnection:J,doc:ge,lib:"vue",flowId:l,nodeLookup:x.value},A.value,_.value,m,x.value),z=((W=B.connection)==null?void 0:W.source)===((j=B.connection)==null?void 0:j.target);B.isValid&&B.connection&&!z&&O.connect(B.connection),O.clickConnectEnd(V),w(V,!0)}return{handlePointerDown:C,handleClick:H}}function sg(){return Gt(vl,"")}function wl(e){const t=e??sg()??"",n=Gt(pl,X(null)),{findNode:i,edges:o,emits:s}=Ie(),a=i(t);return a||s.error(new Ae(Pe.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:a,parentNode:Z(()=>i(a.parentNode)),connectedEdges:Z(()=>ul([a],o.value))}}function ag(){return{doubleClick:te(),click:te(),mouseEnter:te(),mouseMove:te(),mouseLeave:te(),contextMenu:te(),dragStart:te(),drag:te(),dragStop:te()}}function rg(e,t){const n=ag();return n.doubleClick.on(i=>{var o,s;t.nodeDoubleClick(i),(s=(o=e.events)==null?void 0:o.doubleClick)==null||s.call(o,i)}),n.click.on(i=>{var o,s;t.nodeClick(i),(s=(o=e.events)==null?void 0:o.click)==null||s.call(o,i)}),n.mouseEnter.on(i=>{var o,s;t.nodeMouseEnter(i),(s=(o=e.events)==null?void 0:o.mouseEnter)==null||s.call(o,i)}),n.mouseMove.on(i=>{var o,s;t.nodeMouseMove(i),(s=(o=e.events)==null?void 0:o.mouseMove)==null||s.call(o,i)}),n.mouseLeave.on(i=>{var o,s;t.nodeMouseLeave(i),(s=(o=e.events)==null?void 0:o.mouseLeave)==null||s.call(o,i)}),n.contextMenu.on(i=>{var o,s;t.nodeContextMenu(i),(s=(o=e.events)==null?void 0:o.contextMenu)==null||s.call(o,i)}),n.dragStart.on(i=>{var o,s;t.nodeDragStart(i),(s=(o=e.events)==null?void 0:o.dragStart)==null||s.call(o,i)}),n.drag.on(i=>{var o,s;t.nodeDrag(i),(s=(o=e.events)==null?void 0:o.drag)==null||s.call(o,i)}),n.dragStop.on(i=>{var o,s;t.nodeDragStop(i),(s=(o=e.events)==null?void 0:o.dragStop)==null||s.call(o,i)}),Object.entries(n).reduce((i,[o,s])=>(i.emit[o]=s.trigger,i.on[o]=s.on,i),{emit:{},on:{}})}function bl(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:i,snapGrid:o,snapToGrid:s,nodesDraggable:a,emits:l}=Ie();return(r,u=!1)=>{const c=s.value?o.value[0]:5,d=s.value?o.value[1]:5,f=u?4:1,h=r.x*c*f,g=r.y*d*f,p=[];for(const m of e.value)if(m.draggable||a&&typeof m.draggable>"u"){const b={x:m.computedPosition.x+h,y:m.computedPosition.y+g},{computedPosition:y}=fs(m,b,l.error,t.value,m.parentNode?i(m.parentNode):void 0);p.push({id:m.id,position:y,from:m.position,distance:{x:r.x,y:r.y},dimensions:m.dimensions})}n(p,!0,!1)}}const Tn=.1,lg=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function ct(){return xn("Viewport not initialized yet."),Promise.resolve(!1)}const ug={zoomIn:ct,zoomOut:ct,zoomTo:ct,fitView:ct,setCenter:ct,fitBounds:ct,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:ct,setTransform:ct,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function cg(e){function t(i,o){return new Promise(s=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(o?.interpolate==="linear"?on:Fn).scaleBy(Po(e.d3Selection,o?.duration,o?.ease,()=>{s(!0)}),i):s(!1)})}function n(i,o,s,a){return new Promise(l=>{var r;const{x:u,y:c}=nl({x:-i,y:-o},e.translateExtent),d=Ft.translate(-u,-c).scale(s);e.d3Selection&&e.d3Zoom?(r=e.d3Zoom)==null||r.interpolate(a?.interpolate==="linear"?on:Fn).transform(Po(e.d3Selection,a?.duration,a?.ease,()=>{l(!0)}),d):l(!1)})}return Z(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:o=>t(1.2,o),zoomOut:o=>t(1/1.2,o),zoomTo:(o,s)=>new Promise(a=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(s?.interpolate==="linear"?on:Fn).scaleTo(Po(e.d3Selection,s?.duration,s?.ease,()=>{a(!0)}),o):a(!1)}),setViewport:(o,s)=>n(o.x,o.y,o.zoom,s),setTransform:(o,s)=>n(o.x,o.y,o.zoom,s),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(o={padding:Tn,includeHiddenNodes:!1,duration:0})=>{var s,a;const l=[];for(const f of e.nodes)f.dimensions.width&&f.dimensions.height&&(o?.includeHiddenNodes||!f.hidden)&&(!((s=o.nodes)!=null&&s.length)||(a=o.nodes)!=null&&a.length&&o.nodes.includes(f.id))&&l.push(f);if(!l.length)return Promise.resolve(!1);const r=rl(l),{x:u,y:c,zoom:d}=Gs(r,e.dimensions.width,e.dimensions.height,o.minZoom??e.minZoom,o.maxZoom??e.maxZoom,o.padding??Tn);return n(u,c,d,o)},setCenter:(o,s,a)=>{const l=typeof a?.zoom<"u"?a.zoom:e.maxZoom,r=e.dimensions.width/2-o*l,u=e.dimensions.height/2-s*l;return n(r,u,l,a)},fitBounds:(o,s={padding:Tn})=>{const{x:a,y:l,zoom:r}=Gs(o,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,s.padding??Tn);return n(a,l,r,s)},project:o=>vn(o,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x-s,y:o.y-a};return vn(l,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:o=>{if(e.vueFlowRef){const{x:s,y:a}=e.vueFlowRef.getBoundingClientRect(),l={x:o.x+s,y:o.y+a};return mn(l,e.viewport)}return{x:0,y:0}}}:ug)}function Po(e,t=0,n=lg,i=()=>{}){const o=typeof t=="number"&&t>0;return o||i(),o?e.transition().duration(t).ease(n).on("end",i):e}function dg(e,t,n){const i=mr(!0);return i.run(()=>{const o=()=>{i.run(()=>{let p,m,b=!!(n.nodes.value.length||n.edges.value.length);p=Dt([e.modelValue,()=>{var y,v;return(v=(y=e.modelValue)==null?void 0:y.value)==null?void 0:v.length}],([y])=>{y&&Array.isArray(y)&&(m?.pause(),n.setElements(y),!m&&!b&&y.length?b=!0:m?.resume())}),m=Dt([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([y,v])=>{var w;(w=e.modelValue)!=null&&w.value&&Array.isArray(e.modelValue.value)&&(p?.pause(),e.modelValue.value=[...y,...v],nt(()=>{p?.resume()}))},{immediate:b}),An(()=>{p?.stop(),m?.stop()})})},s=()=>{i.run(()=>{let p,m,b=!!n.nodes.value.length;p=Dt([e.nodes,()=>{var y,v;return(v=(y=e.nodes)==null?void 0:y.value)==null?void 0:v.length}],([y])=>{y&&Array.isArray(y)&&(m?.pause(),n.setNodes(y),!m&&!b&&y.length?b=!0:m?.resume())}),m=Dt([n.nodes,()=>n.nodes.value.length],([y])=>{var v;(v=e.nodes)!=null&&v.value&&Array.isArray(e.nodes.value)&&(p?.pause(),e.nodes.value=[...y],nt(()=>{p?.resume()}))},{immediate:b}),An(()=>{p?.stop(),m?.stop()})})},a=()=>{i.run(()=>{let p,m,b=!!n.edges.value.length;p=Dt([e.edges,()=>{var y,v;return(v=(y=e.edges)==null?void 0:y.value)==null?void 0:v.length}],([y])=>{y&&Array.isArray(y)&&(m?.pause(),n.setEdges(y),!m&&!b&&y.length?b=!0:m?.resume())}),m=Dt([n.edges,()=>n.edges.value.length],([y])=>{var v;(v=e.edges)!=null&&v.value&&Array.isArray(e.edges.value)&&(p?.pause(),e.edges.value=[...y],nt(()=>{p?.resume()}))},{immediate:b}),An(()=>{p?.stop(),m?.stop()})})},l=()=>{i.run(()=>{ve(()=>t.maxZoom,()=>{t.maxZoom&&Oe(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},r=()=>{i.run(()=>{ve(()=>t.minZoom,()=>{t.minZoom&&Oe(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},u=()=>{i.run(()=>{ve(()=>t.translateExtent,()=>{t.translateExtent&&Oe(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},c=()=>{i.run(()=>{ve(()=>t.nodeExtent,()=>{t.nodeExtent&&Oe(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},d=()=>{i.run(()=>{ve(()=>t.applyDefault,()=>{Oe(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},f=()=>{i.run(()=>{const p=async m=>{let b=m;typeof t.autoConnect=="function"&&(b=await t.autoConnect(m)),b!==!1&&n.addEdges([b])};ve(()=>t.autoConnect,()=>{Oe(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),ve(n.autoConnect,(m,b,y)=>{m?n.onConnect(p):n.hooks.value.connect.off(p),y(()=>{n.hooks.value.connect.off(p)})},{immediate:!0})})},h=()=>{const p=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const m of Object.keys(t)){const b=m;if(!p.includes(b)){const y=Te(()=>t[b]),v=n[b];Qi(v)&&i.run(()=>{ve(y,w=>{Oe(w)&&(v.value=w)},{immediate:!0})})}}};(()=>{o(),s(),a(),r(),l(),u(),c(),d(),f(),h()})()}),()=>i.stop()}function fg(){return{edgesChange:te(),nodesChange:te(),nodeDoubleClick:te(),nodeClick:te(),nodeMouseEnter:te(),nodeMouseMove:te(),nodeMouseLeave:te(),nodeContextMenu:te(),nodeDragStart:te(),nodeDrag:te(),nodeDragStop:te(),nodesInitialized:te(),miniMapNodeClick:te(),miniMapNodeDoubleClick:te(),miniMapNodeMouseEnter:te(),miniMapNodeMouseMove:te(),miniMapNodeMouseLeave:te(),connect:te(),connectStart:te(),connectEnd:te(),clickConnectStart:te(),clickConnectEnd:te(),paneReady:te(),init:te(),move:te(),moveStart:te(),moveEnd:te(),selectionDragStart:te(),selectionDrag:te(),selectionDragStop:te(),selectionContextMenu:te(),selectionStart:te(),selectionEnd:te(),viewportChangeStart:te(),viewportChange:te(),viewportChangeEnd:te(),paneScroll:te(),paneClick:te(),paneContextMenu:te(),paneMouseEnter:te(),paneMouseMove:te(),paneMouseLeave:te(),edgeContextMenu:te(),edgeMouseEnter:te(),edgeMouseMove:te(),edgeMouseLeave:te(),edgeDoubleClick:te(),edgeClick:te(),edgeUpdateStart:te(),edgeUpdate:te(),edgeUpdateEnd:te(),updateNodeInternals:te(),error:te(e=>xn(e.message))}}function hg(e,t){const n=qt();Zl(()=>{for(const[o,s]of Object.entries(t.value)){const a=l=>{e(o,l)};s.setEmitter(a),cn(s.removeEmitter),s.setHasEmitListeners(()=>i(o)),cn(s.removeHasEmitListeners)}});function i(o){var s;const a=gg(o);return!!((s=n?.vnode.props)==null?void 0:s[a])}}function gg(e){const[t,...n]=e.split(":");return`on${t.replace(/(?:^|-)(\w)/g,(o,s)=>s.toUpperCase())}${n.length?`:${n.join(":")}`:""}`}function xl(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:ds.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:sn.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:wt.Bezier,style:{}},connectionMode:pt.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:oo()?"Meta":"Control",zoomActivationKeyCode:oo()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:fg(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const mg=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function vg(e,t,n){const i=cg(e),o=$=>{const N=$??[];e.hooks.updateNodeInternals.trigger(N)},s=$=>Ih($,e.nodes,e.edges),a=$=>$h($,e.nodes,e.edges),l=$=>ul($,e.edges),r=({id:$,type:N,nodeId:P})=>{var T;const Y=$?`-${N}-${$}`:`-${N}`;return Array.from(((T=e.connectionLookup.get(`${P}${Y}`))==null?void 0:T.values())??[])},u=$=>{if($)return t.value.get($)},c=$=>{if($)return n.value.get($)},d=($,N,P)=>{var T,Y;const ie=[];for(const se of $){const ae={id:se.id,type:"position",dragging:P,from:se.from};if(N&&(ae.position=se.position,se.parentNode)){const he=u(se.parentNode);ae.position={x:ae.position.x-(((T=he?.computedPosition)==null?void 0:T.x)??0),y:ae.position.y-(((Y=he?.computedPosition)==null?void 0:Y.y)??0)}}ie.push(ae)}ie?.length&&e.hooks.nodesChange.trigger(ie)},f=$=>{if(!e.vueFlowRef)return;const N=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!N)return;const P=window.getComputedStyle(N),{m22:T}=new window.DOMMatrixReadOnly(P.transform),Y=[];for(const ie of $){const se=ie,ae=u(se.id);if(ae){const he=mo(se.nodeElement);if(!!(he.width&&he.height&&(ae.dimensions.width!==he.width||ae.dimensions.height!==he.height||se.forceUpdate))){const xe=se.nodeElement.getBoundingClientRect();ae.dimensions=he,ae.handleBounds.source=ta("source",se.nodeElement,xe,T,ae.id),ae.handleBounds.target=ta("target",se.nodeElement,xe,T,ae.id),Y.push({id:ae.id,type:"dimensions",dimensions:he})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&i.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),Y.length&&e.hooks.nodesChange.trigger(Y)},h=($,N)=>{const P=new Set,T=new Set;for(const se of $)Mt(se)?P.add(se.id):yt(se)&&T.add(se.id);const Y=gt(t.value,P,!0),ie=gt(n.value,T);if(e.multiSelectionActive){for(const se of P)Y.push(ht(se,N));for(const se of T)ie.push(ht(se,N))}Y.length&&e.hooks.nodesChange.trigger(Y),ie.length&&e.hooks.edgesChange.trigger(ie)},g=$=>{if(e.multiSelectionActive){const N=$.map(P=>ht(P.id,!0));e.hooks.nodesChange.trigger(N);return}e.hooks.nodesChange.trigger(gt(t.value,new Set($.map(N=>N.id)),!0)),e.hooks.edgesChange.trigger(gt(n.value))},p=$=>{if(e.multiSelectionActive){const N=$.map(P=>ht(P.id,!0));e.hooks.edgesChange.trigger(N);return}e.hooks.edgesChange.trigger(gt(n.value,new Set($.map(N=>N.id)))),e.hooks.nodesChange.trigger(gt(t.value,new Set,!0))},m=$=>{h($,!0)},b=$=>{const P=($||e.nodes).map(T=>(T.selected=!1,ht(T.id,!1)));e.hooks.nodesChange.trigger(P)},y=$=>{const P=($||e.edges).map(T=>(T.selected=!1,ht(T.id,!1)));e.hooks.edgesChange.trigger(P)},v=$=>{if(!$||!$.length)return h([],!1);const N=$.reduce((P,T)=>{const Y=ht(T.id,!1);return Mt(T)?P.nodes.push(Y):P.edges.push(Y),P},{nodes:[],edges:[]});N.nodes.length&&e.hooks.nodesChange.trigger(N.nodes),N.edges.length&&e.hooks.edgesChange.trigger(N.edges)},w=$=>{var N;(N=e.d3Zoom)==null||N.scaleExtent([$,e.maxZoom]),e.minZoom=$},O=$=>{var N;(N=e.d3Zoom)==null||N.scaleExtent([e.minZoom,$]),e.maxZoom=$},L=$=>{var N;(N=e.d3Zoom)==null||N.translateExtent($),e.translateExtent=$},A=$=>{e.nodeExtent=$,o()},_=$=>{var N;(N=e.d3Zoom)==null||N.clickDistance($)},k=$=>{e.nodesDraggable=$,e.nodesConnectable=$,e.elementsSelectable=$},x=$=>{const N=$ instanceof Function?$(e.nodes):$;!e.initialized&&!N.length||(e.nodes=na(N,u,e.hooks.error.trigger))},I=$=>{const N=$ instanceof Function?$(e.edges):$;if(!e.initialized&&!N.length)return;const P=Oo(N,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);Do(e.connectionLookup,n.value,P),e.edges=P},E=$=>{const N=$ instanceof Function?$([...e.nodes,...e.edges]):$;!e.initialized&&!N.length||(x(N.filter(Mt)),I(N.filter(yt)))},G=$=>{let N=$ instanceof Function?$(e.nodes):$;N=Array.isArray(N)?N:[N];const P=na(N,u,e.hooks.error.trigger),T=[];for(const Y of P)T.push(Us(Y));T.length&&e.hooks.nodesChange.trigger(T)},C=$=>{let N=$ instanceof Function?$(e.edges):$;N=Array.isArray(N)?N:[N];const P=Oo(N,e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),T=[];for(const Y of P)T.push(Us(Y));T.length&&e.hooks.edgesChange.trigger(T)},H=($,N=!0,P=!1)=>{const T=$ instanceof Function?$(e.nodes):$,Y=Array.isArray(T)?T:[T],ie=[],se=[];function ae(we){const xe=l(we);for(const Me of xe)(!Oe(Me.deletable)||Me.deletable)&&se.push(Xs(Me.id,Me.source,Me.target,Me.sourceHandle,Me.targetHandle))}function he(we){const xe=[];for(const Me of e.nodes)Me.parentNode===we&&xe.push(Me);if(xe.length){for(const Me of xe)ie.push(js(Me.id));N&&ae(xe);for(const Me of xe)he(Me.id)}}for(const we of Y){const xe=typeof we=="string"?u(we):we;xe&&(Oe(xe.deletable)&&!xe.deletable||(ie.push(js(xe.id)),N&&ae([xe]),P&&he(xe.id)))}se.length&&e.hooks.edgesChange.trigger(se),ie.length&&e.hooks.nodesChange.trigger(ie)},V=$=>{const N=$ instanceof Function?$(e.edges):$,P=Array.isArray(N)?N:[N],T=[];for(const Y of P){const ie=typeof Y=="string"?c(Y):Y;ie&&(Oe(ie.deletable)&&!ie.deletable||T.push(Xs(typeof Y=="string"?Y:Y.id,ie.source,ie.target,ie.sourceHandle,ie.targetHandle)))}e.hooks.edgesChange.trigger(T)},W=($,N,P=!0)=>{const T=c($.id);if(!T)return!1;const Y=e.edges.indexOf(T),ie=Qh($,N,T,P,e.hooks.error.trigger);if(ie){const[se]=Oo([ie],e.isValidConnection,u,c,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((ae,he)=>he===Y?se:ae),Do(e.connectionLookup,n.value,[se]),se}return!1},j=($,N,P={replace:!1})=>{const T=c($);if(!T)return;const Y=typeof N=="function"?N(T):N;T.data=P.replace?Y:{...T.data,...Y}},K=$=>Ws($,e.nodes),J=$=>{const N=Ws($,e.edges);return Do(e.connectionLookup,n.value,N),N},oe=($,N,P={replace:!1})=>{const T=u($);if(!T)return;const Y=typeof N=="function"?N(T):N;P.replace?e.nodes.splice(e.nodes.indexOf(T),1,Y):Object.assign(T,Y)},ge=($,N,P={replace:!1})=>{const T=u($);if(!T)return;const Y=typeof N=="function"?N(T):N;T.data=P.replace?Y:{...T.data,...Y}},B=($,N,P=!1)=>{P?e.connectionClickStartHandle=$:e.connectionStartHandle=$,e.connectionEndHandle=null,e.connectionStatus=null,N&&(e.connectionPosition=N)},z=($,N=null,P=null)=>{e.connectionStartHandle&&(e.connectionPosition=$,e.connectionEndHandle=N,e.connectionStatus=P)},F=($,N)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,N?e.connectionClickStartHandle=null:e.connectionStartHandle=null},q=$=>{const N=Mh($),P=N?null:tn($)?$:u($.id);return!N&&!P?[null,null,N]:[N?$:to(P),P,N]},Q=($,N=!0,P=e.nodes)=>{const[T,Y,ie]=q($);if(!T)return[];const se=[];for(const ae of P||e.nodes){if(!ie&&(ae.id===Y.id||!ae.computedPosition))continue;const he=to(ae),we=no(he,T);(N&&we>0||we>=he.width*he.height||we>=Number(T.width)*Number(T.height))&&se.push(ae)}return se},re=($,N,P=!0)=>{const[T]=q($);if(!T)return!1;const Y=no(T,N);return P&&Y>0||Y>=Number(T.width)*Number(T.height)},le=$=>{const{viewport:N,dimensions:P,d3Zoom:T,d3Selection:Y,translateExtent:ie}=e;if(!T||!Y||!$.x&&!$.y)return!1;const se=Ft.translate(N.x+$.x,N.y+$.y).scale(N.zoom),ae=[[0,0],[P.width,P.height]],he=T.constrain()(se,ae,ie),we=e.viewport.x!==he.x||e.viewport.y!==he.y||e.viewport.zoom!==he.k;return T.transform(Y,he),we},_e=$=>{const N=$ instanceof Function?$(e):$,P=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Oe(N.defaultEdgeOptions)&&(e.defaultEdgeOptions=N.defaultEdgeOptions);const T=N.modelValue||N.nodes||N.edges?[]:void 0;T&&(N.modelValue&&T.push(...N.modelValue),N.nodes&&T.push(...N.nodes),N.edges&&T.push(...N.edges),E(T));const Y=()=>{Oe(N.maxZoom)&&O(N.maxZoom),Oe(N.minZoom)&&w(N.minZoom),Oe(N.translateExtent)&&L(N.translateExtent)};for(const ie of Object.keys(N)){const se=ie,ae=N[se];![...mg,...P].includes(se)&&Oe(ae)&&(e[se]=ae)}Ri(()=>e.d3Zoom).not.toBeNull().then(Y),e.initialized||(e.initialized=!0)};return{updateNodePositions:d,updateNodeDimensions:f,setElements:E,setNodes:x,setEdges:I,addNodes:G,addEdges:C,removeNodes:H,removeEdges:V,findNode:u,findEdge:c,updateEdge:W,updateEdgeData:j,updateNode:oe,updateNodeData:ge,applyEdgeChanges:J,applyNodeChanges:K,addSelectedElements:m,addSelectedNodes:g,addSelectedEdges:p,setMinZoom:w,setMaxZoom:O,setTranslateExtent:L,setNodeExtent:A,setPaneClickDistance:_,removeSelectedElements:v,removeSelectedNodes:b,removeSelectedEdges:y,startConnection:B,updateConnection:z,endConnection:F,setInteractive:k,setState:_e,getIntersectingNodes:Q,getIncomers:s,getOutgoers:a,getConnectedEdges:l,getHandleConnections:r,isNodeIntersecting:re,panBy:le,fitView:$=>i.value.fitView($),zoomIn:$=>i.value.zoomIn($),zoomOut:$=>i.value.zoomOut($),zoomTo:($,N)=>i.value.zoomTo($,N),setViewport:($,N)=>i.value.setViewport($,N),setTransform:($,N)=>i.value.setTransform($,N),getViewport:()=>i.value.getViewport(),getTransform:()=>i.value.getTransform(),setCenter:($,N,P)=>i.value.setCenter($,N,P),fitBounds:($,N)=>i.value.fitBounds($,N),project:$=>i.value.project($),screenToFlowCoordinate:$=>i.value.screenToFlowCoordinate($),flowToScreenCoordinate:$=>i.value.flowToScreenCoordinate($),toObject:()=>{const $=[],N=[];for(const P of e.nodes){const{computedPosition:T,handleBounds:Y,selected:ie,dimensions:se,isParent:ae,resizing:he,dragging:we,events:xe,...Me}=P;$.push(Me)}for(const P of e.edges){const{selected:T,sourceNode:Y,targetNode:ie,events:se,...ae}=P;N.push(ae)}return JSON.parse(JSON.stringify({nodes:$,edges:N,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:$=>new Promise(N=>{const{nodes:P,edges:T,position:Y,zoom:ie,viewport:se}=$;if(P&&x(P),T&&I(T),se?.x&&se?.y||Y){const ae=se?.x||Y[0],he=se?.y||Y[1],we=se?.zoom||ie||e.viewport.zoom;return Ri(()=>i.value.viewportInitialized).toBe(!0).then(()=>{i.value.setViewport({x:ae,y:he,zoom:we}).then(()=>{N(!0)})})}else N(!0)}),updateNodeInternals:o,viewportHelper:i,$reset:()=>{const $=xl();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const N=Ft.translate($.defaultViewport.x??0,$.defaultViewport.y??0).scale(It($.defaultViewport.zoom??1,$.minZoom,$.maxZoom)),P=e.viewportRef.getBoundingClientRect(),T=[[0,0],[P.width,P.height]],Y=e.d3Zoom.constrain()(N,T,$.translateExtent);e.d3Zoom.transform(e.d3Selection,Y)}_e($)},$destroy:()=>{}}}const pg=["data-id","data-handleid","data-nodeid","data-handlepos"],yg={name:"Handle",compatConfig:{MODE:3}},io=ue({...yg,props:{id:{default:null},type:{},position:{default:()=>ce.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=tu(e,["position","connectable","connectableStart","connectableEnd","id"]),i=Te(()=>n.type??"source"),o=Te(()=>n.isValidConnection??null),{id:s,connectionStartHandle:a,connectionClickStartHandle:l,connectionEndHandle:r,vueFlowRef:u,nodesConnectable:c,noDragClassName:d,noPanClassName:f}=Ie(),{id:h,node:g,nodeEl:p,connectedEdges:m}=wl(),b=X(),y=Te(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),v=Te(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),w=Te(()=>{var I,E,G,C,H,V;return((I=a.value)==null?void 0:I.nodeId)===h&&((E=a.value)==null?void 0:E.id)===e.id&&((G=a.value)==null?void 0:G.type)===i.value||((C=r.value)==null?void 0:C.nodeId)===h&&((H=r.value)==null?void 0:H.id)===e.id&&((V=r.value)==null?void 0:V.type)===i.value}),O=Te(()=>{var I,E,G;return((I=l.value)==null?void 0:I.nodeId)===h&&((E=l.value)==null?void 0:E.id)===e.id&&((G=l.value)==null?void 0:G.type)===i.value}),{handlePointerDown:L,handleClick:A}=_l({nodeId:h,handleId:e.id,isValidConnection:o,type:i}),_=Z(()=>typeof e.connectable=="string"&&e.connectable==="single"?!m.value.some(I=>{const E=I[`${i.value}Handle`];return I[i.value]!==h?!1:E?E===e.id:!0}):typeof e.connectable=="number"?m.value.filter(I=>{const E=I[`${i.value}Handle`];return I[i.value]!==h?!1:E?E===e.id:!0}).length{var I;if(!g.dimensions.width||!g.dimensions.height)return;const E=(I=g.handleBounds[i.value])==null?void 0:I.find(K=>K.id===e.id);if(!u.value||E)return;const G=u.value.querySelector(".vue-flow__transformationpane");if(!p.value||!b.value||!G||!e.id)return;const C=p.value.getBoundingClientRect(),H=b.value.getBoundingClientRect(),V=window.getComputedStyle(G),{m22:W}=new window.DOMMatrixReadOnly(V.transform),j={id:e.id,position:e.position,x:(H.left-C.left)/W,y:(H.top-C.top)/W,type:i.value,nodeId:h,...mo(b.value)};g.handleBounds[i.value]=[...g.handleBounds[i.value]??[],j]});function k(I){const E=hs(I);_.value&&y.value&&(E&&I.button===0||!E)&&L(I)}function x(I){!h||!l.value&&!y.value||_.value&&A(I)}return t({handleClick:A,handlePointerDown:L,onClick:x,onPointerDown:k}),(I,E)=>(S(),D("div",{ref_key:"handle",ref:b,"data-id":`${R(s)}-${R(h)}-${e.id}-${i.value}`,"data-handleid":e.id,"data-nodeid":R(h),"data-handlepos":I.position,class:Ee(["vue-flow__handle",[`vue-flow__handle-${I.position}`,`vue-flow__handle-${e.id}`,R(d),R(f),i.value,{connectable:_.value,connecting:O.value,connectablestart:y.value,connectableend:v.value,connectionindicator:_.value&&(y.value&&!w.value||v.value&&w.value)}]]),onMousedown:k,onTouchstartPassive:k,onClick:x},[De(I.$slots,"default",{id:I.id})],42,pg))}}),yo=function({sourcePosition:e=ce.Bottom,targetPosition:t=ce.Top,label:n,connectable:i=!0,isValidTargetPos:o,isValidSourcePos:s,data:a}){const l=a.label??n;return[Ce(io,{type:"target",position:t,connectable:i,isValidConnection:o}),typeof l!="string"&&l?Ce(l):Ce(pe,[l]),Ce(io,{type:"source",position:e,connectable:i,isValidConnection:s})]};yo.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"];yo.inheritAttrs=!1;yo.compatConfig={MODE:3};const _g=yo,_o=function({targetPosition:e=ce.Top,label:t,connectable:n=!0,isValidTargetPos:i,data:o}){const s=o.label??t;return[Ce(io,{type:"target",position:e,connectable:n,isValidConnection:i}),typeof s!="string"&&s?Ce(s):Ce(pe,[s])]};_o.props=["targetPosition","label","isValidTargetPos","connectable","data"];_o.inheritAttrs=!1;_o.compatConfig={MODE:3};const wg=_o,wo=function({sourcePosition:e=ce.Bottom,label:t,connectable:n=!0,isValidSourcePos:i,data:o}){const s=o.label??t;return[typeof s!="string"&&s?Ce(s):Ce(pe,[s]),Ce(io,{type:"source",position:e,connectable:n,isValidConnection:i})]};wo.props=["sourcePosition","label","isValidSourcePos","connectable","data"];wo.inheritAttrs=!1;wo.compatConfig={MODE:3};const bg=wo,xg=["transform"],Eg=["width","height","x","y","rx","ry"],Sg=["y"],kg={name:"EdgeText",compatConfig:{MODE:3}},Cg=ue({...kg,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=X({x:0,y:0,width:0,height:0}),n=X(null),i=Z(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);Ve(o),ve([()=>e.x,()=>e.y,n,()=>e.label],o);function o(){if(!n.value)return;const s=n.value.getBBox();(s.width!==t.value.width||s.height!==t.value.height)&&(t.value=s)}return(s,a)=>(S(),D("g",{transform:i.value,class:"vue-flow__edge-textwrapper"},[s.labelShowBg?(S(),D("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*s.labelBgPadding[0]}px`,height:`${t.value.height+2*s.labelBgPadding[1]}px`,x:-s.labelBgPadding[0],y:-s.labelBgPadding[1],style:Fe(s.labelBgStyle),rx:s.labelBgBorderRadius,ry:s.labelBgBorderRadius},null,12,Eg)):U("",!0),M("text",pr(s.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:s.labelStyle}),[De(s.$slots,"default",{},()=>[typeof s.label!="string"?(S(),de(mt(s.label),{key:0})):(S(),D(pe,{key:1},[ye(ne(s.label),1)],64))])],16,Sg)],8,xg))}}),Mg=["id","d","marker-end","marker-start"],Ng=["d","stroke-width"],$g={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},bo=ue({...$g,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=X(null),i=X(null),o=X(null),s=eu();return t({pathEl:n,interactionEl:i,labelEl:o}),(a,l)=>(S(),D(pe,null,[M("path",pr(R(s),{id:a.id,ref_key:"pathEl",ref:n,d:a.path,class:"vue-flow__edge-path","marker-end":a.markerEnd,"marker-start":a.markerStart}),null,16,Mg),a.interactionWidth?(S(),D("path",{key:0,ref_key:"interactionEl",ref:i,fill:"none",d:a.path,"stroke-width":a.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,Ng)):U("",!0),a.label&&a.labelX&&a.labelY?(S(),de(Cg,{key:1,ref_key:"labelEl",ref:o,x:a.labelX,y:a.labelY,label:a.label,"label-show-bg":a.labelShowBg,"label-bg-style":a.labelBgStyle,"label-bg-padding":a.labelBgPadding,"label-bg-border-radius":a.labelBgBorderRadius,"label-style":a.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):U("",!0)],64))}});function El({sourceX:e,sourceY:t,targetX:n,targetY:i}){const o=Math.abs(n-e)/2,s=n=0?.5*e:t*25*Math.sqrt(-e)}function aa({pos:e,x1:t,y1:n,x2:i,y2:o,c:s}){let a,l;switch(e){case ce.Left:a=t-Dn(t-i,s),l=n;break;case ce.Right:a=t+Dn(i-t,s),l=n;break;case ce.Top:a=t,l=n-Dn(n-o,s);break;case ce.Bottom:a=t,l=n+Dn(o-n,s);break}return[a,l]}function kl(e){const{sourceX:t,sourceY:n,sourcePosition:i=ce.Bottom,targetX:o,targetY:s,targetPosition:a=ce.Top,curvature:l=.25}=e,[r,u]=aa({pos:i,x1:t,y1:n,x2:o,y2:s,c:l}),[c,d]=aa({pos:a,x1:o,y1:s,x2:t,y2:n,c:l}),[f,h,g,p]=Sl({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:r,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${t},${n} C${r},${u} ${c},${d} ${o},${s}`,f,h,g,p]}function ra({pos:e,x1:t,y1:n,x2:i,y2:o}){let s,a;switch(e){case ce.Left:case ce.Right:s=.5*(t+i),a=n;break;case ce.Top:case ce.Bottom:s=t,a=.5*(n+o);break}return[s,a]}function Cl(e){const{sourceX:t,sourceY:n,sourcePosition:i=ce.Bottom,targetX:o,targetY:s,targetPosition:a=ce.Top}=e,[l,r]=ra({pos:i,x1:t,y1:n,x2:o,y2:s}),[u,c]=ra({pos:a,x1:o,y1:s,x2:t,y2:n}),[d,f,h,g]=Sl({sourceX:t,sourceY:n,targetX:o,targetY:s,sourceControlX:l,sourceControlY:r,targetControlX:u,targetControlY:c});return[`M${t},${n} C${l},${r} ${u},${c} ${o},${s}`,d,f,h,g]}const la={[ce.Left]:{x:-1,y:0},[ce.Right]:{x:1,y:0},[ce.Top]:{x:0,y:-1},[ce.Bottom]:{x:0,y:1}};function Ig({source:e,sourcePosition:t=ce.Bottom,target:n}){return t===ce.Left||t===ce.Right?e.xe[d]?-1:1)*C:b[d]=(u[d]>n[d]?-1:1)*C}}if(t!==i){const G=d==="x"?"y":"x",C=a[d]===l[G],H=r[G]>u[G],V=r[G]=E?(g=(k.x+x.x)/2,p=h[0].y):(g=h[0].x,p=(k.y+x.y)/2)}return[[e,{x:r.x+m.x,y:r.y+m.y},...h,{x:u.x+b.x,y:u.y+b.y},n],g,p,w,O]}function Dg(e,t,n,i){const o=Math.min(ua(e,t)/2,ua(t,n)/2,i),{x:s,y:a}=t;if(e.x===s&&s===n.x||e.y===a&&a===n.y)return`L${s} ${a}`;if(e.y===a){const u=e.x{let w;return v>0&&v{const[n,i,o]=Og(e);return Ce(bo,{path:n,labelX:i,labelY:o,...t,...e})}}}),Rg=Pg,Lg=ue({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,i,o]=Ui({...e,sourcePosition:e.sourcePosition??ce.Bottom,targetPosition:e.targetPosition??ce.Top});return Ce(bo,{path:n,labelX:i,labelY:o,...t,...e})}}}),Ml=Lg,Ag=ue({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>Ce(Ml,{...e,...t,borderRadius:0})}}),zg=Ag,Vg=ue({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,i,o]=kl({...e,sourcePosition:e.sourcePosition??ce.Bottom,targetPosition:e.targetPosition??ce.Top});return Ce(bo,{path:n,labelX:i,labelY:o,...t,...e})}}}),Bg=Vg,Fg=ue({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,i,o]=Cl({...e,sourcePosition:e.sourcePosition??ce.Bottom,targetPosition:e.targetPosition??ce.Top});return Ce(bo,{path:n,labelX:i,labelY:o,...t,...e})}}}),Hg=Fg,Gg={input:bg,default:_g,output:wg},qg={default:Bg,straight:Rg,step:zg,smoothstep:Ml,simplebezier:Hg};function Yg(e,t,n){const i=Z(()=>p=>t.value.get(p)),o=Z(()=>p=>n.value.get(p)),s=Z(()=>{const p={...qg,...e.edgeTypes},m=Object.keys(p);for(const b of e.edges)b.type&&!m.includes(b.type)&&(p[b.type]=b.type);return p}),a=Z(()=>{const p={...Gg,...e.nodeTypes},m=Object.keys(p);for(const b of e.nodes)b.type&&!m.includes(b.type)&&(p[b.type]=b.type);return p}),l=Z(()=>e.onlyRenderVisibleElements?ll(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),r=Z(()=>{if(e.onlyRenderVisibleElements){const p=[];for(const m of e.edges){const b=t.value.get(m.source),y=t.value.get(m.target);Fh({sourcePos:b.computedPosition||{x:0,y:0},targetPos:y.computedPosition||{x:0,y:0},sourceWidth:b.dimensions.width,sourceHeight:b.dimensions.height,targetWidth:y.dimensions.width,targetHeight:y.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&p.push(m)}return p}return e.edges}),u=Z(()=>[...l.value,...r.value]),c=Z(()=>{const p=[];for(const m of e.nodes)m.selected&&p.push(m);return p}),d=Z(()=>{const p=[];for(const m of e.edges)m.selected&&p.push(m);return p}),f=Z(()=>[...c.value,...d.value]),h=Z(()=>{const p=[];for(const m of e.nodes)m.dimensions.width&&m.dimensions.height&&m.handleBounds!==void 0&&p.push(m);return p}),g=Z(()=>l.value.length>0&&h.value.length===l.value.length);return{getNode:i,getEdge:o,getElements:u,getEdgeTypes:s,getNodeTypes:a,getEdges:r,getNodes:l,getSelectedElements:f,getSelectedNodes:c,getSelectedEdges:d,getNodesInitialized:h,areNodesInitialized:g}}class bt{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=qt())==null?void 0:t.appContext.app,i=n?.config.globalProperties.$vueFlowStorage??bt.instance;return bt.instance=i??new bt,n&&(n.config.globalProperties.$vueFlowStorage=bt.instance),bt.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const i=xl(),o=Xl(i),s={};for(const[f,h]of Object.entries(o.hooks)){const g=`on${f.charAt(0).toUpperCase()+f.slice(1)}`;s[g]=h.on}const a={};for(const[f,h]of Object.entries(o.hooks))a[f]=h.trigger;const l=Z(()=>{const f=new Map;for(const h of o.nodes)f.set(h.id,h);return f}),r=Z(()=>{const f=new Map;for(const h of o.edges)f.set(h.id,h);return f}),u=Yg(o,l,r),c=vg(o,l,r);c.setState({...o,...n});const d={...s,...u,...c,...Ru(o),nodeLookup:l,edgeLookup:r,emits:a,id:t,vueFlowVersion:"1.47.0",$destroy:()=>{this.remove(t)}};return this.set(t,d),d}getId(){return`vue-flow-${this.currentId++}`}}function Ie(e){const t=bt.getInstance(),n=gr(),i=typeof e=="object",o=i?e:{id:e},s=o.id,a=s??n?.vueFlowId;let l;if(n){const r=Gt(sa,null);typeof r<"u"&&r!==null&&(!a||r.id===a)&&(l=r)}if(l||a&&(l=t.get(a)),!l||a&&l.id!==a){const r=s??t.getId(),u=t.create(r,o);l=u,(n??mr(!0)).run(()=>{ve(u.applyDefault,(d,f,h)=>{const g=m=>{u.applyNodeChanges(m)},p=m=>{u.applyEdgeChanges(m)};d?(u.onNodesChange(g),u.onEdgesChange(p)):(u.hooks.value.nodesChange.off(g),u.hooks.value.edgesChange.off(p)),h(()=>{u.hooks.value.nodesChange.off(g),u.hooks.value.edgesChange.off(p)})},{immediate:!0}),cn(()=>{if(l){const d=t.get(l.id);d?d.$destroy():xn(`No store instance found for id ${l.id} in storage.`)}})})}else i&&l.setState(o);if(n&&(zt(sa,l),n.vueFlowId=l.id),i){const r=qt();r?.type.name!=="VueFlow"&&l.emits.error(new Ae(Pe.USEVUEFLOW_OPTIONS))}return l}function Wg(e){const{emits:t,dimensions:n}=Ie();let i;Ve(()=>{const o=()=>{var s,a;if(!e.value||!(((a=(s=e.value).checkVisibility)==null?void 0:a.call(s))??!0))return;const l=mo(e.value);(l.width===0||l.height===0)&&t.error(new Ae(Pe.MISSING_VIEWPORT_DIMENSIONS)),n.value={width:l.width||500,height:l.height||500}};o(),window.addEventListener("resize",o),e.value&&(i=new ResizeObserver(()=>o()),i.observe(e.value)),ro(()=>{window.removeEventListener("resize",o),i&&e.value&&i.unobserve(e.value)})})}const Ug={name:"UserSelection",compatConfig:{MODE:3}},jg=ue({...Ug,props:{userSelectionRect:{}},setup(e){return(t,n)=>(S(),D("div",{class:"vue-flow__selection vue-flow__container",style:Fe({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),Xg=["tabIndex"],Zg={name:"NodesSelection",compatConfig:{MODE:3}},Kg=ue({...Zg,setup(e){const{emits:t,viewport:n,getSelectedNodes:i,noPanClassName:o,disableKeyboardA11y:s,userSelectionActive:a}=Ie(),l=bl(),r=X(null),u=yl({el:r,onStart(g){t.selectionDragStart(g),t.nodeDragStart(g)},onDrag(g){t.selectionDrag(g),t.nodeDrag(g)},onStop(g){t.selectionDragStop(g),t.nodeDragStop(g)}});Ve(()=>{var g;s.value||(g=r.value)==null||g.focus({preventScroll:!0})});const c=Z(()=>rl(i.value)),d=Z(()=>({width:`${c.value.width}px`,height:`${c.value.height}px`,top:`${c.value.y}px`,left:`${c.value.x}px`}));function f(g){t.selectionContextMenu({event:g,nodes:i.value})}function h(g){s||Lt[g.key]&&(g.preventDefault(),l({x:Lt[g.key].x,y:Lt[g.key].y},g.shiftKey))}return(g,p)=>!R(a)&&c.value.width&&c.value.height?(S(),D("div",{key:0,class:Ee(["vue-flow__nodesselection vue-flow__container",R(o)]),style:Fe({transform:`translate(${R(n).x}px,${R(n).y}px) scale(${R(n).zoom})`})},[M("div",{ref_key:"el",ref:r,class:Ee([{dragging:R(u)},"vue-flow__nodesselection-rect"]),style:Fe(d.value),tabIndex:R(s)?void 0:-1,onContextmenu:f,onKeydown:h},null,46,Xg)],6)):U("",!0)}});function Jg(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const Qg={name:"Pane",compatConfig:{MODE:3}},em=ue({...Qg,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:n,viewport:i,emits:o,userSelectionActive:s,removeSelectedElements:a,userSelectionRect:l,elementsSelectable:r,nodesSelectionActive:u,getSelectedEdges:c,getSelectedNodes:d,removeNodes:f,removeEdges:h,selectionMode:g,deleteKeyCode:p,multiSelectionKeyCode:m,multiSelectionActive:b,edgeLookup:y,nodeLookup:v,connectionLookup:w,defaultEdgeOptions:O,connectionStartHandle:L}=Ie(),A=X(null),_=X(new Set),k=X(new Set),x=X(),I=Te(()=>r.value&&(e.isSelecting||s.value)),E=Te(()=>L.value!==null);let G=!1,C=!1;const H=an(p,{actInsideInputWithModifier:!1}),V=an(m);ve(H,z=>{z&&(f(d.value),h(c.value),u.value=!1)}),ve(V,z=>{b.value=z});function W(z,F){return q=>{q.target===F&&z?.(q)}}function j(z){if(G||E.value){G=!1;return}o.paneClick(z),a(),u.value=!1}function K(z){z.preventDefault(),z.stopPropagation(),o.paneContextMenu(z)}function J(z){o.paneScroll(z)}function oe(z){var F,q,Q;if(x.value=(F=t.value)==null?void 0:F.getBoundingClientRect(),!r.value||!e.isSelecting||z.button!==0||z.target!==A.value||!x.value)return;(Q=(q=z.target)==null?void 0:q.setPointerCapture)==null||Q.call(q,z.pointerId);const{x:re,y:le}=Jg(z,x.value);C=!0,G=!1,a(),l.value={width:0,height:0,startX:re,startY:le,x:re,y:le},o.selectionStart(z)}function ge(z){var F;if(!x.value||!l.value)return;G=!0;const{x:q,y:Q}=et(z,x.value),{startX:re=0,startY:le=0}=l.value,_e={startX:re,startY:le,x:q$.id)),k.value=new Set;const me=((F=O.value)==null?void 0:F.selectable)??!0;for(const $ of _.value){const N=w.value.get($);if(N)for(const{edgeId:P}of N.values()){const T=y.value.get(P);T&&(T.selectable??me)&&k.value.add(P)}}if(!ia(Se,_.value)){const $=gt(v.value,_.value,!0);o.nodesChange($)}if(!ia(fe,k.value)){const $=gt(y.value,k.value);o.edgesChange($)}l.value=_e,s.value=!0,u.value=!1}function B(z){var F;z.button!==0||!C||((F=z.target)==null||F.releasePointerCapture(z.pointerId),!s.value&&l.value&&z.target===A.value&&j(z),s.value=!1,l.value=null,u.value=_.value.size>0,o.selectionEnd(z),e.selectionKeyPressed&&(G=!1),C=!1)}return(z,F)=>(S(),D("div",{ref_key:"container",ref:A,class:Ee(["vue-flow__pane vue-flow__container",{selection:z.isSelecting}]),onClick:F[0]||(F[0]=q=>I.value?void 0:W(j,A.value)(q)),onContextmenu:F[1]||(F[1]=q=>W(K,A.value)(q)),onWheelPassive:F[2]||(F[2]=q=>W(J,A.value)(q)),onPointerenter:F[3]||(F[3]=q=>I.value?void 0:R(o).paneMouseEnter(q)),onPointerdown:F[4]||(F[4]=q=>I.value?oe(q):R(o).paneMouseMove(q)),onPointermove:F[5]||(F[5]=q=>I.value?ge(q):R(o).paneMouseMove(q)),onPointerup:F[6]||(F[6]=q=>I.value?B(q):void 0),onPointerleave:F[7]||(F[7]=q=>R(o).paneMouseLeave(q))},[De(z.$slots,"default"),R(s)&&R(l)?(S(),de(jg,{key:0,"user-selection-rect":R(l)},null,8,["user-selection-rect"])):U("",!0),R(u)&&R(d).length?(S(),de(Kg,{key:1})):U("",!0)],34))}}),tm={name:"Transform",compatConfig:{MODE:3}},nm=ue({...tm,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:i}=Ie(),o=Z(()=>n.value?!i.value:!1),s=Z(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(a,l)=>(S(),D("div",{class:"vue-flow__transformationpane vue-flow__container",style:Fe({transform:s.value,opacity:o.value?0:void 0})},[De(a.$slots,"default")],4))}}),om={name:"Viewport",compatConfig:{MODE:3}},im=ue({...om,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:i,translateExtent:o,zoomActivationKeyCode:s,selectionKeyCode:a,panActivationKeyCode:l,panOnScroll:r,panOnScrollMode:u,panOnScrollSpeed:c,panOnDrag:d,zoomOnDoubleClick:f,zoomOnPinch:h,zoomOnScroll:g,preventScrolling:p,noWheelClassName:m,noPanClassName:b,emits:y,connectionStartHandle:v,userSelectionActive:w,paneDragging:O,d3Zoom:L,d3Selection:A,d3ZoomHandler:_,viewport:k,viewportRef:x,paneClickDistance:I}=Ie();Wg(x);const E=rn(!1),G=rn(!1);let C=null,H=!1,V=0,W={x:0,y:0,zoom:0};const j=an(l),K=an(a),J=an(s),oe=Te(()=>(!K.value||K.value&&a.value===!0)&&(j.value||d.value)),ge=Te(()=>j.value||r.value),B=Te(()=>K.value||a.value===!0&&oe.value!==!0),z=Te(()=>v.value!==null);Ve(()=>{if(!x.value){xn("Viewport element is missing");return}const le=x.value,_e=le.getBoundingClientRect(),Se=wh().clickDistance(I.value).scaleExtent([t.value,n.value]).translateExtent(o.value),fe=We(le).call(Se),me=fe.on("wheel.zoom"),$=Ft.translate(i.value.x??0,i.value.y??0).scale(It(i.value.zoom??1,t.value,n.value)),N=[[0,0],[_e.width,_e.height]],P=Se.constrain()($,N,o.value);Se.transform(fe,P),Se.wheelDelta(qs),L.value=Se,A.value=fe,_.value=me,k.value={x:P.x,y:P.y,zoom:P.k},Se.on("start",T=>{var Y;if(!T.sourceEvent)return null;V=T.sourceEvent.button,E.value=!0;const ie=Q(T.transform);((Y=T.sourceEvent)==null?void 0:Y.type)==="mousedown"&&(O.value=!0),W=ie,y.viewportChangeStart(ie),y.moveStart({event:T,flowTransform:ie})}),Se.on("end",T=>{if(!T.sourceEvent)return null;if(E.value=!1,O.value=!1,F(oe.value,V??0)&&!H&&y.paneContextMenu(T.sourceEvent),H=!1,q(W,T.transform)){const Y=Q(T.transform);W=Y,y.viewportChangeEnd(Y),y.moveEnd({event:T,flowTransform:Y})}}),Se.filter(T=>{var Y;const ie=J.value||g.value,se=h.value&&T.ctrlKey,ae=T.button,he=T.type==="wheel";if(ae===1&&T.type==="mousedown"&&(re(T,"vue-flow__node")||re(T,"vue-flow__edge")))return!0;if(!oe.value&&!ie&&!ge.value&&!f.value&&!h.value||w.value||z.value&&!he||!f.value&&T.type==="dblclick"||re(T,m.value)&&he||re(T,b.value)&&(!he||ge.value&&he&&!J.value)||!h.value&&T.ctrlKey&&he||!ie&&!ge.value&&!se&&he)return!1;if(!h&&T.type==="touchstart"&&((Y=T.touches)==null?void 0:Y.length)>1)return T.preventDefault(),!1;if(!oe.value&&(T.type==="mousedown"||T.type==="touchstart")||a.value===!0&&Array.isArray(d.value)&&d.value.includes(0)&&ae===0||Array.isArray(d.value)&&!d.value.includes(ae)&&(T.type==="mousedown"||T.type==="touchstart"))return!1;const we=Array.isArray(d.value)&&d.value.includes(ae)||a.value===!0&&Array.isArray(d.value)&&!d.value.includes(0)||!ae||ae<=1;return(!T.ctrlKey||j.value||he)&&we}),ve([w,oe],()=>{w.value&&!E.value?Se.on("zoom",null):w.value||Se.on("zoom",T=>{k.value={x:T.transform.x,y:T.transform.y,zoom:T.transform.k};const Y=Q(T.transform);H=F(oe.value,V??0),y.viewportChange(Y),y.move({event:T,flowTransform:Y})})},{immediate:!0}),ve([w,ge,u,J,h,p,m],()=>{ge.value&&!J.value&&!w.value?fe.on("wheel.zoom",T=>{if(re(T,m.value))return!1;const Y=J.value||g.value,ie=h.value&&T.ctrlKey;if(!(!p.value||ge.value||Y||ie))return!1;T.preventDefault(),T.stopImmediatePropagation();const ae=fe.property("__zoom").k||1,he=oo();if(!j.value&&T.ctrlKey&&h.value&&he){const Ut=Je(T),Wl=qs(T),Ul=ae*2**Wl;Se.scaleTo(fe,Ul,Ut,T);return}const we=T.deltaMode===1?20:1;let xe=u.value===sn.Vertical?0:T.deltaX*we,Me=u.value===sn.Horizontal?0:T.deltaY*we;!he&&T.shiftKey&&u.value!==sn.Vertical&&!xe&&Me&&(xe=Me,Me=0),Se.translateBy(fe,-(xe/ae)*c.value,-(Me/ae)*c.value);const Ke=Q(fe.property("__zoom"));C&&clearTimeout(C),G.value?(y.move({event:T,flowTransform:Ke}),y.viewportChange(Ke),C=setTimeout(()=>{y.moveEnd({event:T,flowTransform:Ke}),y.viewportChangeEnd(Ke),G.value=!1},150)):(G.value=!0,y.moveStart({event:T,flowTransform:Ke}),y.viewportChangeStart(Ke))},{passive:!1}):typeof me<"u"&&fe.on("wheel.zoom",function(T,Y){const ie=!p.value&&T.type==="wheel"&&!T.ctrlKey,se=J.value||g.value,ae=h.value&&T.ctrlKey;if(!se&&!r.value&&!ae&&T.type==="wheel"||ie||re(T,m.value))return null;T.preventDefault(),me.call(this,T,Y)},{passive:!1})},{immediate:!0})});function F(le,_e){return _e===2&&Array.isArray(le)&&le.includes(2)}function q(le,_e){return le.x!==_e.x&&!Number.isNaN(_e.x)||le.y!==_e.y&&!Number.isNaN(_e.y)||le.zoom!==_e.k&&!Number.isNaN(_e.k)}function Q(le){return{x:le.x,y:le.y,zoom:le.k}}function re(le,_e){return le.target.closest(`.${_e}`)}return(le,_e)=>(S(),D("div",{ref_key:"viewportRef",ref:x,class:"vue-flow__viewport vue-flow__container"},[ee(em,{"is-selecting":B.value,"selection-key-pressed":R(K),class:Ee({connecting:z.value,dragging:R(O),draggable:R(d)===!0||Array.isArray(R(d))&&R(d).includes(0)})},{default:ke(()=>[ee(nm,null,{default:ke(()=>[De(le.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),sm=["id"],am=["id"],rm=["id"],lm={name:"A11yDescriptions",compatConfig:{MODE:3}},um=ue({...lm,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:i}=Ie();return(o,s)=>(S(),D(pe,null,[M("div",{id:`${R(Qr)}-${R(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+ne(R(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,sm),M("div",{id:`${R(el)}-${R(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,am),R(n)?U("",!0):(S(),D("div",{key:0,id:`${R(Ch)}-${R(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},ne(R(i)),9,rm))],64))}});function cm(){const e=Ie();ve(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function dm(e,t,n){return n===ce.Left?e-t:n===ce.Right?e+t:e}function fm(e,t,n){return n===ce.Top?e-t:n===ce.Bottom?e+t:e}const gs=function({radius:e=10,centerX:t=0,centerY:n=0,position:i=ce.Top,type:o}){return Ce("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${o}`,cx:dm(t,e,i),cy:fm(n,e,i),r:e,stroke:"transparent",fill:"transparent"})};gs.props=["radius","centerX","centerY","position","type"];gs.compatConfig={MODE:3};const ca=gs,hm=ue({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:i,edgeUpdaterRadius:o,emits:s,nodesSelectionActive:a,noPanClassName:l,getEdgeTypes:r,removeSelectedEdges:u,findEdge:c,findNode:d,isValidConnection:f,multiSelectionActive:h,disableKeyboardA11y:g,elementsSelectable:p,edgesUpdatable:m,edgesFocusable:b,hooks:y}=Ie(),v=Z(()=>c(e.id)),{emit:w,on:O}=og(v.value,s),L=Gt(po),A=qt(),_=X(!1),k=X(!1),x=X(""),I=X(null),E=X("source"),G=X(null),C=Te(()=>typeof v.value.selectable>"u"?p.value:v.value.selectable),H=Te(()=>typeof v.value.updatable>"u"?m.value:v.value.updatable),V=Te(()=>typeof v.value.focusable>"u"?b.value:v.value.focusable);zt(eg,e.id),zt(tg,G);const W=Z(()=>v.value.class instanceof Function?v.value.class(v.value):v.value.class),j=Z(()=>v.value.style instanceof Function?v.value.style(v.value):v.value.style),K=Z(()=>{const N=v.value.type||"default",P=L?.[`edge-${N}`];if(P)return P;let T=v.value.template??r.value[N];if(typeof T=="string"&&A){const Y=Object.keys(A.appContext.components);Y&&Y.includes(N)&&(T=es(N,!1))}return T&&typeof T!="string"?T:(s.error(new Ae(Pe.EDGE_TYPE_MISSING,T)),!1)}),{handlePointerDown:J}=_l({nodeId:x,handleId:I,type:E,isValidConnection:f,edgeUpdaterType:E,onEdgeUpdate:B,onEdgeUpdateEnd:z});return()=>{const N=d(v.value.source),P=d(v.value.target),T="pathOptions"in v.value?v.value.pathOptions:{};if(!N&&!P)return s.error(new Ae(Pe.EDGE_SOURCE_TARGET_MISSING,v.value.id,v.value.source,v.value.target)),null;if(!N)return s.error(new Ae(Pe.EDGE_SOURCE_MISSING,v.value.id,v.value.source)),null;if(!P)return s.error(new Ae(Pe.EDGE_TARGET_MISSING,v.value.id,v.value.target)),null;if(!v.value||v.value.hidden||N.hidden||P.hidden)return null;let Y;i.value===pt.Strict?Y=N.handleBounds.source:Y=[...N.handleBounds.source||[],...N.handleBounds.target||[]];const ie=Js(Y,v.value.sourceHandle);let se;i.value===pt.Strict?se=P.handleBounds.target:se=[...P.handleBounds.target||[],...P.handleBounds.source||[]];const ae=Js(se,v.value.targetHandle),he=ie?.position||ce.Bottom,we=ae?.position||ce.Top,{x:xe,y:Me}=Ht(N,ie,he),{x:Ke,y:Ut}=Ht(P,ae,we);return v.value.sourceX=xe,v.value.sourceY=Me,v.value.targetX=Ke,v.value.targetY=Ut,Ce("g",{ref:G,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${K.value===!1?"default":v.value.type||"default"}`,l.value,W.value,{updating:_.value,selected:v.value.selected,animated:v.value.animated,inactive:!C.value&&!y.value.edgeClick.hasListeners()}],tabIndex:V.value?0:void 0,"aria-label":v.value.ariaLabel===null?void 0:v.value.ariaLabel??`Edge from ${v.value.source} to ${v.value.target}`,"aria-describedby":V.value?`${el}-${t}`:void 0,"aria-roledescription":"edge",role:V.value?"group":"img",...v.value.domAttributes,onClick:q,onContextmenu:Q,onDblclick:re,onMouseenter:le,onMousemove:_e,onMouseleave:Se,onKeyDown:V.value?$:void 0},[k.value?null:Ce(K.value===!1?r.value.default:K.value,{id:e.id,sourceNode:N,targetNode:P,source:v.value.source,target:v.value.target,type:v.value.type,updatable:H.value,selected:v.value.selected,animated:v.value.animated,label:v.value.label,labelStyle:v.value.labelStyle,labelShowBg:v.value.labelShowBg,labelBgStyle:v.value.labelBgStyle,labelBgPadding:v.value.labelBgPadding,labelBgBorderRadius:v.value.labelBgBorderRadius,data:v.value.data,events:{...v.value.events,...O},style:j.value,markerStart:`url('#${pn(v.value.markerStart,t)}')`,markerEnd:`url('#${pn(v.value.markerEnd,t)}')`,sourcePosition:he,targetPosition:we,sourceX:xe,sourceY:Me,targetX:Ke,targetY:Ut,sourceHandleId:v.value.sourceHandle,targetHandleId:v.value.targetHandle,interactionWidth:v.value.interactionWidth,...T}),[H.value==="source"||H.value===!0?[Ce("g",{onMousedown:fe,onMouseenter:oe,onMouseout:ge},Ce(ca,{position:he,centerX:xe,centerY:Me,radius:o.value,type:"source","data-type":"source"}))]:null,H.value==="target"||H.value===!0?[Ce("g",{onMousedown:me,onMouseenter:oe,onMouseout:ge},Ce(ca,{position:we,centerX:Ke,centerY:Ut,radius:o.value,type:"target","data-type":"target"}))]:null]])};function oe(){_.value=!0}function ge(){_.value=!1}function B(N,P){w.update({event:N,edge:v.value,connection:P})}function z(N){w.updateEnd({event:N,edge:v.value}),k.value=!1}function F(N,P){N.button===0&&(k.value=!0,x.value=P?v.value.target:v.value.source,I.value=(P?v.value.targetHandle:v.value.sourceHandle)??null,E.value=P?"target":"source",w.updateStart({event:N,edge:v.value}),J(N))}function q(N){var P;const T={event:N,edge:v.value};C.value&&(a.value=!1,v.value.selected&&h.value?(u([v.value]),(P=G.value)==null||P.blur()):n([v.value])),w.click(T)}function Q(N){w.contextMenu({event:N,edge:v.value})}function re(N){w.doubleClick({event:N,edge:v.value})}function le(N){w.mouseEnter({event:N,edge:v.value})}function _e(N){w.mouseMove({event:N,edge:v.value})}function Se(N){w.mouseLeave({event:N,edge:v.value})}function fe(N){F(N,!0)}function me(N){F(N,!1)}function $(N){var P;!g.value&&tl.includes(N.key)&&C.value&&(N.key==="Escape"?((P=G.value)==null||P.blur(),u([c(e.id)])):n([c(e.id)]))}}}),gm=hm,mm=ue({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:i,connectionEndHandle:o,connectionPosition:s,connectionLineType:a,connectionLineStyle:l,connectionLineOptions:r,connectionStatus:u,viewport:c,findNode:d}=Ie(),f=(e=Gt(po))==null?void 0:e["connection-line"],h=Z(()=>{var y;return d((y=i.value)==null?void 0:y.nodeId)}),g=Z(()=>{var y;return d((y=o.value)==null?void 0:y.nodeId)??null}),p=Z(()=>({x:(s.value.x-c.value.x)/c.value.zoom,y:(s.value.y-c.value.y)/c.value.zoom})),m=Z(()=>r.value.markerStart?`url(#${pn(r.value.markerStart,t)})`:""),b=Z(()=>r.value.markerEnd?`url(#${pn(r.value.markerEnd,t)})`:"");return()=>{var y,v,w;if(!h.value||!i.value)return null;const O=i.value.id,L=i.value.type,A=h.value.handleBounds;let _=A?.[L]??[];if(n.value===pt.Loose){const j=A?.[L==="source"?"target":"source"]??[];_=[..._,...j]}if(!_)return null;const k=(O?_.find(j=>j.id===O):_[0])??null,x=k?.position??ce.Top,{x:I,y:E}=Ht(h.value,k,x);let G=null;g.value&&(n.value===pt.Strict?G=((y=g.value.handleBounds[L==="source"?"target":"source"])==null?void 0:y.find(j=>{var K;return j.id===((K=o.value)==null?void 0:K.id)}))||null:G=((v=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:v.find(j=>{var K;return j.id===((K=o.value)==null?void 0:K.id)}))||null);const C=((w=o.value)==null?void 0:w.position)??(x?Yi[x]:null);if(!x||!C)return null;const H=a.value??r.value.type??wt.Bezier;let V="";const W={sourceX:I,sourceY:E,sourcePosition:x,targetX:p.value.x,targetY:p.value.y,targetPosition:C};return H===wt.Bezier?[V]=kl(W):H===wt.Step?[V]=Ui({...W,borderRadius:0}):H===wt.SmoothStep?[V]=Ui(W):H===wt.SimpleBezier?[V]=Cl(W):V=`M${I},${E} ${p.value.x},${p.value.y}`,Ce("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},Ce("g",{class:"vue-flow__connection"},f?Ce(f,{sourceX:I,sourceY:E,sourcePosition:x,targetX:p.value.x,targetY:p.value.y,targetPosition:C,sourceNode:h.value,sourceHandle:k,targetNode:g.value,targetHandle:G,markerEnd:b.value,markerStart:m.value,connectionStatus:u.value}):Ce("path",{d:V,class:[r.value.class,u.value,"vue-flow__connection-path"],style:{...l.value,...r.value.style},"marker-end":b.value,"marker-start":m.value})))}}}),vm=mm,pm=["id","markerWidth","markerHeight","markerUnits","orient"],ym={name:"MarkerType",compatConfig:{MODE:3}},_m=ue({...ym,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(S(),D("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===R(eo).ArrowClosed?(S(),D("polyline",{key:0,style:Fe({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):U("",!0),t.type===R(eo).Arrow?(S(),D("polyline",{key:1,style:Fe({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):U("",!0)],8,pm))}}),wm={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},bm={name:"MarkerDefinitions",compatConfig:{MODE:3}},xm=ue({...bm,setup(e){const{id:t,edges:n,connectionLineOptions:i,defaultMarkerColor:o}=Ie(),s=Z(()=>{const a=new Set,l=[],r=u=>{if(u){const c=pn(u,t);a.has(c)||(typeof u=="object"?l.push({...u,id:c,color:u.color||o.value}):l.push({id:c,color:o.value,type:u}),a.add(c))}};for(const u of[i.value.markerEnd,i.value.markerStart])r(u);for(const u of n.value)for(const c of[u.markerStart,u.markerEnd])r(c);return l.sort((u,c)=>u.id.localeCompare(c.id))});return(a,l)=>(S(),D("svg",wm,[M("defs",null,[(S(!0),D(pe,null,ze(s.value,r=>(S(),de(_m,{id:r.id,key:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,"stroke-width":r.strokeWidth,orient:r.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),Em={name:"Edges",compatConfig:{MODE:3}},Sm=ue({...Em,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:i}=Ie();return(o,s)=>(S(),D(pe,null,[ee(xm),(S(!0),D(pe,null,ze(R(n),a=>(S(),D("svg",{key:a.id,class:"vue-flow__edges vue-flow__container",style:Fe({zIndex:R(Hh)(a,R(t),R(i))})},[ee(R(gm),{id:a.id},null,8,["id"])],4))),128)),ee(R(vm))],64))}}),km=ue({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:i,nodesSelectionActive:o,multiSelectionActive:s,emits:a,removeSelectedNodes:l,addSelectedNodes:r,updateNodeDimensions:u,onUpdateNodeInternals:c,getNodeTypes:d,nodeExtent:f,elevateNodesOnSelect:h,disableKeyboardA11y:g,ariaLiveMessage:p,snapToGrid:m,snapGrid:b,nodeDragThreshold:y,nodesDraggable:v,elementsSelectable:w,nodesConnectable:O,nodesFocusable:L,hooks:A}=Ie(),_=X(null);zt(pl,_),zt(vl,e.id);const k=Gt(po),x=qt(),I=bl(),{node:E,parentNode:G}=wl(e.id),{emit:C,on:H}=rg(E,a),V=Te(()=>typeof E.draggable>"u"?v.value:E.draggable),W=Te(()=>typeof E.selectable>"u"?w.value:E.selectable),j=Te(()=>typeof E.connectable>"u"?O.value:E.connectable),K=Te(()=>typeof E.focusable>"u"?L.value:E.focusable),J=Z(()=>W.value||V.value||A.value.nodeClick.hasListeners()||A.value.nodeDoubleClick.hasListeners()||A.value.nodeMouseEnter.hasListeners()||A.value.nodeMouseMove.hasListeners()||A.value.nodeMouseLeave.hasListeners()),oe=Te(()=>!!E.dimensions.width&&!!E.dimensions.height),ge=Z(()=>{const P=E.type||"default",T=k?.[`node-${P}`];if(T)return T;let Y=E.template||d.value[P];if(typeof Y=="string"&&x){const ie=Object.keys(x.appContext.components);ie&&ie.includes(P)&&(Y=es(P,!1))}return Y&&typeof Y!="string"?Y:(a.error(new Ae(Pe.NODE_TYPE_MISSING,Y)),!1)}),B=yl({id:e.id,el:_,disabled:()=>!V.value,selectable:W,dragHandle:()=>E.dragHandle,onStart(P){C.dragStart(P)},onDrag(P){C.drag(P)},onStop(P){C.dragStop(P)},onClick(P){$(P)}}),z=Z(()=>E.class instanceof Function?E.class(E):E.class),F=Z(()=>{const P=(E.style instanceof Function?E.style(E):E.style)||{},T=E.width instanceof Function?E.width(E):E.width,Y=E.height instanceof Function?E.height(E):E.height;return!P.width&&T&&(P.width=typeof T=="string"?T:`${T}px`),!P.height&&Y&&(P.height=typeof Y=="string"?Y:`${Y}px`),P}),q=Te(()=>Number(E.zIndex??F.value.zIndex??0));return c(P=>{(P.includes(e.id)||!P.length)&&re()}),Ve(()=>{ve(()=>E.hidden,(P=!1,T,Y)=>{!P&&_.value&&(e.resizeObserver.observe(_.value),Y(()=>{_.value&&e.resizeObserver.unobserve(_.value)}))},{immediate:!0,flush:"post"})}),ve([()=>E.type,()=>E.sourcePosition,()=>E.targetPosition],()=>{nt(()=>{u([{id:e.id,nodeElement:_.value,forceUpdate:!0}])})}),ve([()=>E.position.x,()=>E.position.y,()=>{var P;return(P=G.value)==null?void 0:P.computedPosition.x},()=>{var P;return(P=G.value)==null?void 0:P.computedPosition.y},()=>{var P;return(P=G.value)==null?void 0:P.computedPosition.z},q,()=>E.selected,()=>E.dimensions.height,()=>E.dimensions.width,()=>{var P;return(P=G.value)==null?void 0:P.dimensions.height},()=>{var P;return(P=G.value)==null?void 0:P.dimensions.width}],([P,T,Y,ie,se,ae])=>{const he={x:P,y:T,z:ae+(h.value&&E.selected?1e3:0)};typeof Y<"u"&&typeof ie<"u"?E.computedPosition=Lh({x:Y,y:ie,z:se},he):E.computedPosition=he},{flush:"post",immediate:!0}),ve([()=>E.extent,f],([P,T],[Y,ie])=>{(P!==Y||T!==ie)&&Q()}),E.extent==="parent"||typeof E.extent=="object"&&"range"in E.extent&&E.extent.range==="parent"?Ri(()=>oe).toBe(!0).then(Q):Q(),()=>E.hidden?null:Ce("div",{ref:_,"data-id":E.id,class:["vue-flow__node",`vue-flow__node-${ge.value===!1?"default":E.type||"default"}`,{[n.value]:V.value,dragging:B?.value,draggable:V.value,selected:E.selected,selectable:W.value,parent:E.isParent},z.value],style:{visibility:oe.value?"visible":"hidden",zIndex:E.computedPosition.z??q.value,transform:`translate(${E.computedPosition.x}px,${E.computedPosition.y}px)`,pointerEvents:J.value?"all":"none",...F.value},tabIndex:K.value?0:void 0,role:K.value?"group":void 0,"aria-describedby":g.value?void 0:`${Qr}-${t}`,"aria-label":E.ariaLabel,"aria-roledescription":"node",...E.domAttributes,onMouseenter:le,onMousemove:_e,onMouseleave:Se,onContextmenu:fe,onClick:$,onDblclick:me,onKeydown:N},[Ce(ge.value===!1?d.value.default:ge.value,{id:E.id,type:E.type,data:E.data,events:{...E.events,...H},selected:E.selected,resizing:E.resizing,dragging:B.value,connectable:j.value,position:E.computedPosition,dimensions:E.dimensions,isValidTargetPos:E.isValidTargetPos,isValidSourcePos:E.isValidSourcePos,parent:E.parentNode,parentNodeId:E.parentNode,zIndex:E.computedPosition.z??q.value,targetPosition:E.targetPosition,sourcePosition:E.sourcePosition,label:E.label,dragHandle:E.dragHandle,onUpdateNodeInternals:re})]);function Q(){const P=E.computedPosition,{computedPosition:T,position:Y}=fs(E,m.value?vo(P,b.value):P,a.error,f.value,G.value);(E.computedPosition.x!==T.x||E.computedPosition.y!==T.y)&&(E.computedPosition={...E.computedPosition,...T}),(E.position.x!==Y.x||E.position.y!==Y.y)&&(E.position=Y)}function re(){_.value&&u([{id:e.id,nodeElement:_.value,forceUpdate:!0}])}function le(P){B?.value||C.mouseEnter({event:P,node:E})}function _e(P){B?.value||C.mouseMove({event:P,node:E})}function Se(P){B?.value||C.mouseLeave({event:P,node:E})}function fe(P){return C.contextMenu({event:P,node:E})}function me(P){return C.doubleClick({event:P,node:E})}function $(P){W.value&&(!i.value||!V.value||y.value>0)&&Wi(E,s.value,r,l,o,!1,_.value),C.click({event:P,node:E})}function N(P){if(!(qi(P)||g.value))if(tl.includes(P.key)&&W.value){const T=P.key==="Escape";Wi(E,s.value,r,l,o,T,_.value)}else V.value&&E.selected&&Lt[P.key]&&(P.preventDefault(),p.value=`Moved selected node ${P.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~E.position.x}, y: ${~~E.position.y}`,I({x:Lt[P.key].x,y:Lt[P.key].y},P.shiftKey))}}}),Cm=km;function Mm(e={includeHiddenNodes:!1}){const{nodes:t}=Ie();return Z(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&(n?.handleBounds===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const Nm={class:"vue-flow__nodes vue-flow__container"},$m={name:"Nodes",compatConfig:{MODE:3}},Im=ue({...$m,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:i}=Ie(),o=Mm(),s=X();return ve(o,a=>{a&&nt(()=>{i.nodesInitialized(t.value)})},{immediate:!0}),Ve(()=>{s.value=new ResizeObserver(a=>{const l=a.map(r=>({id:r.target.getAttribute("data-id"),nodeElement:r.target,forceUpdate:!0}));nt(()=>n(l))})}),ro(()=>{var a;return(a=s.value)==null?void 0:a.disconnect()}),(a,l)=>(S(),D("div",Nm,[s.value?(S(!0),D(pe,{key:0},ze(R(t),(r,u,c,d)=>{const f=[r.id];if(d&&d.key===r.id&&Kl(d,f))return d;const h=(S(),de(R(Cm),{id:r.id,key:r.id,"resize-observer":s.value},null,8,["id","resize-observer"]));return h.memo=f,h},l,0),128)):U("",!0)]))}});function Tm(){const{emits:e}=Ie();Ve(()=>{if(ml()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Ae(Pe.MISSING_STYLES))}})}const Dm=M("div",{class:"vue-flow__edge-labels"},null,-1),Om={name:"VueFlow",compatConfig:{MODE:3}},Pm=ue({...Om,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const i=e,o=jl(),s=So(i,"modelValue",n),a=So(i,"nodes",n),l=So(i,"edges",n),r=Ie(i),u=dg({modelValue:s,nodes:a,edges:l},i,r);return hg(n,r.hooks),cm(),Tm(),zt(po,o),vr(u),t(r),(c,d)=>(S(),D("div",{ref:R(r).vueFlowRef,class:"vue-flow"},[ee(im,null,{default:ke(()=>[ee(Sm),Dm,ee(Im),De(c.$slots,"zoom-pane")]),_:3}),De(c.$slots,"default"),ee(um)],512))}}),Rm={name:"Panel",compatConfig:{MODE:3}},Lm=ue({...Rm,props:{position:{}},setup(e){const t=e,{userSelectionActive:n}=Ie(),i=Z(()=>`${t.position}`.split("-"));return(o,s)=>(S(),D("div",{class:Ee(["vue-flow__panel",i.value]),style:Fe({pointerEvents:R(n)?"none":"all"})},[De(o.$slots,"default")],6))}});var tt=(e=>(e.HttpFrom="NServiceBus.From",e.HttpTo="NServiceBus.To",e.RouteTo="NServiceBus.Header.RouteTo",e.DestinationSites="NServiceBus.DestinationSites",e.OriginatingSite="NServiceBus.OriginatingSite",e.SagaId="NServiceBus.SagaId",e.MessageId="NServiceBus.MessageId",e.CorrelationId="NServiceBus.CorrelationId",e.ReplyToAddress="NServiceBus.ReplyToAddress",e.NServiceBusVersion="NServiceBus.Version",e.ReturnMessageErrorCodeHeader="NServiceBus.ReturnMessage.ErrorCode",e.ControlMessageHeader="NServiceBus.ControlMessage",e.SagaType="NServiceBus.SagaType",e.OriginatingSagaId="NServiceBus.OriginatingSagaId",e.OriginatingSagaType="NServiceBus.OriginatingSagaType",e.DelayedRetries="NServiceBus.Retries",e.DelayedRetriesTimestamp="NServiceBus.Retries.Timestamp",e.ImmediateRetries="NServiceBus.FLRetries",e.ProcessingStarted="NServiceBus.ProcessingStarted",e.ProcessingEnded="NServiceBus.ProcessingEnded",e.TimeSent="NServiceBus.TimeSent",e.DeliverAt="NServiceBus.DeliverAt",e.RelatedTo="NServiceBus.RelatedTo",e.EnclosedMessageTypes="NServiceBus.EnclosedMessageTypes",e.ContentType="NServiceBus.ContentType",e.SubscriptionMessageType="SubscriptionMessageType",e.SubscriberTransportAddress="NServiceBus.SubscriberAddress",e.SubscriberEndpoint="NServiceBus.SubscriberEndpoint",e.IsSagaTimeoutMessage="NServiceBus.IsSagaTimeoutMessage",e.IsDeferredMessage="NServiceBus.IsDeferredMessage",e.OriginatingEndpoint="NServiceBus.OriginatingEndpoint",e.OriginatingMachine="NServiceBus.OriginatingMachine",e.OriginatingHostId="$.diagnostics.originating.hostid",e.ProcessingEndpoint="NServiceBus.ProcessingEndpoint",e.ProcessingMachine="NServiceBus.ProcessingMachine",e.HostDisplayName="$.diagnostics.hostdisplayname",e.HostId="$.diagnostics.hostid",e.HasLicenseExpired="$.diagnostics.license.expired",e.OriginatingAddress="NServiceBus.OriginatingAddress",e.ConversationId="NServiceBus.ConversationId",e.PreviousConversationId="NServiceBus.PreviousConversationId",e.MessageIntent="NServiceBus.MessageIntent",e.NonDurableMessage="NServiceBus.NonDurableMessage",e.TimeToBeReceived="NServiceBus.TimeToBeReceived",e.DiagnosticsTraceParent="traceparent",e.DiagnosticsTraceState="tracestate",e.DiagnosticsBaggage="baggage",e.DataBusConfigContentType="NServiceBus.DataBusConfig.ContentType",e.ExceptionInfoExceptionType="NServiceBus.ExceptionInfo.ExceptionType",e))(tt||{});const Am={name:"ControlButton",compatConfig:{MODE:3}},zm=(e,t)=>{const n=e.__vccOpts||e;for(const[i,o]of t)n[i]=o;return n},Vm={type:"button",class:"vue-flow__controls-button"};function Bm(e,t,n,i,o,s){return S(),D("button",Vm,[De(e.$slots,"default")])}const On=zm(Am,[["render",Bm]]),Fm={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},Hm=M("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"},null,-1),Gm=[Hm];function qm(e,t){return S(),D("svg",Fm,Gm)}const Ym={render:qm},Wm={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},Um=M("path",{d:"M0 0h32v4.2H0z"},null,-1),jm=[Um];function Xm(e,t){return S(),D("svg",Wm,jm)}const Zm={render:Xm},Km={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},Jm=M("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"},null,-1),Qm=[Jm];function ev(e,t){return S(),D("svg",Km,Qm)}const tv={render:ev},nv={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},ov=M("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"},null,-1),iv=[ov];function sv(e,t){return S(),D("svg",nv,iv)}const av={render:sv},rv={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},lv=M("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z"},null,-1),uv=[lv];function cv(e,t){return S(),D("svg",rv,uv)}const dv={render:cv},fv={name:"Controls",compatConfig:{MODE:3}},hv=ue({...fv,props:{showZoom:{type:Boolean,default:!0},showFitView:{type:Boolean,default:!0},showInteractive:{type:Boolean,default:!0},fitViewParams:{},position:{default:()=>Jr.BottomLeft}},emits:["zoomIn","zoomOut","fitView","interactionChange"],setup(e,{emit:t}){const{nodesDraggable:n,nodesConnectable:i,elementsSelectable:o,setInteractive:s,zoomIn:a,zoomOut:l,fitView:r,viewport:u,minZoom:c,maxZoom:d}=Ie(),f=Te(()=>n.value||i.value||o.value),h=Te(()=>u.value.zoom<=c.value),g=Te(()=>u.value.zoom>=d.value);function p(){a(),t("zoomIn")}function m(){l(),t("zoomOut")}function b(){r(e.fitViewParams),t("fitView")}function y(){s(!f.value),t("interactionChange",!f.value)}return(v,w)=>(S(),de(R(Lm),{class:"vue-flow__controls",position:v.position},{default:ke(()=>[De(v.$slots,"top"),v.showZoom?(S(),D(pe,{key:0},[De(v.$slots,"control-zoom-in",{},()=>[ee(On,{class:"vue-flow__controls-zoomin",disabled:g.value,onClick:p},{default:ke(()=>[De(v.$slots,"icon-zoom-in",{},()=>[(S(),de(mt(R(Ym))))])]),_:3},8,["disabled"])]),De(v.$slots,"control-zoom-out",{},()=>[ee(On,{class:"vue-flow__controls-zoomout",disabled:h.value,onClick:m},{default:ke(()=>[De(v.$slots,"icon-zoom-out",{},()=>[(S(),de(mt(R(Zm))))])]),_:3},8,["disabled"])])],64)):U("",!0),v.showFitView?De(v.$slots,"control-fit-view",{key:1},()=>[ee(On,{class:"vue-flow__controls-fitview",onClick:b},{default:ke(()=>[De(v.$slots,"icon-fit-view",{},()=>[(S(),de(mt(R(tv))))])]),_:3})]):U("",!0),v.showInteractive?De(v.$slots,"control-interactive",{key:2},()=>[v.showInteractive?(S(),de(On,{key:0,class:"vue-flow__controls-interactive",onClick:y},{default:ke(()=>[f.value?De(v.$slots,"icon-unlock",{key:0},()=>[(S(),de(mt(R(dv))))]):U("",!0),f.value?U("",!0):De(v.$slots,"icon-lock",{key:1},()=>[(S(),de(mt(R(av))))])]),_:3})):U("",!0)]):U("",!0),De(v.$slots,"default")]),_:3},8,["position"]))}}),gv=ue({__name:"TextEllipses",props:{text:{},ellipsesStyle:{default:"RightSide"}},setup(e){const t=e,n=X(null),i=X(""),o=()=>{n.value&&(i.value=n.value.scrollWidth>n.value.clientWidth&&n.value.textContent||"")};return Ve(()=>{o()}),ve([()=>t.text],()=>{o()}),(s,a)=>{const l=ut("tippy");return Ne((S(),D("div",{ref_key:"textContainer",ref:n,title:"",class:Ee(["text-container hackToPreventSafariFromShowingTooltip",{"left-side-ellipsis":e.ellipsesStyle==="LeftSide"}])},[ye(ne(e.text),1)],2)),[[l,{content:i.value,maxWidth:"none"}]])}}}),nn=$e(gv,[["__scopeId","data-v-bf0d93c4"]]),mv=["title"],vv=ue({__name:"TypeNameDisplay",props:{typeName:{},maxWidth:{default:"auto"},ellipsesStyle:{default:"RightSide"},showRawType:{type:Boolean,default:!1}},setup(e){const t=e,n=Z(()=>t.showRawType?t.typeName:Ii(t.typeName)),i=Z(()=>t.showRawType?Ii(t.typeName):t.typeName);return(o,s)=>(S(),D("div",{class:"type-name-display",style:Fe({width:e.maxWidth}),title:i.value},[ee(nn,{text:n.value,"ellipses-style":e.ellipsesStyle},null,8,["text","ellipses-style"])],12,mv))}}),pv=$e(vv,[["__scopeId","data-v-009ff060"]]),yv=ue({__name:"SagaName",props:{sagaType:{},maxWidth:{default:"182px"},ellipsesStyle:{default:"LeftSide"},showTitle:{type:Boolean,default:!1},titleLevel:{default:"div"},cssClass:{default:"sagaName"}},setup(e){return(t,n)=>(S(),de(mt(e.showTitle?e.titleLevel:"div"),{class:Ee(e.cssClass),"aria-label":e.showTitle?"saga name":void 0},{default:ke(()=>[ee(pv,{"type-name":e.sagaType,"max-width":e.maxWidth,"ellipses-style":e.ellipsesStyle},null,8,["type-name","max-width","ellipses-style"])]),_:1},8,["class","aria-label"]))}}),_v=$e(yv,[["__scopeId","data-v-a50b1584"]]);var Ro,da;function ms(){if(da)return Ro;da=1;var e="\0",t="\0",n="";class i{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(c){c&&(this._isDirected=Object.hasOwn(c,"directed")?c.directed:!0,this._isMultigraph=Object.hasOwn(c,"multigraph")?c.multigraph:!1,this._isCompound=Object.hasOwn(c,"compound")?c.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[t]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(c){return this._label=c,this}graph(){return this._label}setDefaultNodeLabel(c){return this._defaultNodeLabelFn=c,typeof c!="function"&&(this._defaultNodeLabelFn=()=>c),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var c=this;return this.nodes().filter(d=>Object.keys(c._in[d]).length===0)}sinks(){var c=this;return this.nodes().filter(d=>Object.keys(c._out[d]).length===0)}setNodes(c,d){var f=arguments,h=this;return c.forEach(function(g){f.length>1?h.setNode(g,d):h.setNode(g)}),this}setNode(c,d){return Object.hasOwn(this._nodes,c)?(arguments.length>1&&(this._nodes[c]=d),this):(this._nodes[c]=arguments.length>1?d:this._defaultNodeLabelFn(c),this._isCompound&&(this._parent[c]=t,this._children[c]={},this._children[t][c]=!0),this._in[c]={},this._preds[c]={},this._out[c]={},this._sucs[c]={},++this._nodeCount,this)}node(c){return this._nodes[c]}hasNode(c){return Object.hasOwn(this._nodes,c)}removeNode(c){var d=this;if(Object.hasOwn(this._nodes,c)){var f=h=>d.removeEdge(d._edgeObjs[h]);delete this._nodes[c],this._isCompound&&(this._removeFromParentsChildList(c),delete this._parent[c],this.children(c).forEach(function(h){d.setParent(h)}),delete this._children[c]),Object.keys(this._in[c]).forEach(f),delete this._in[c],delete this._preds[c],Object.keys(this._out[c]).forEach(f),delete this._out[c],delete this._sucs[c],--this._nodeCount}return this}setParent(c,d){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(d===void 0)d=t;else{d+="";for(var f=d;f!==void 0;f=this.parent(f))if(f===c)throw new Error("Setting "+d+" as parent of "+c+" would create a cycle");this.setNode(d)}return this.setNode(c),this._removeFromParentsChildList(c),this._parent[c]=d,this._children[d][c]=!0,this}_removeFromParentsChildList(c){delete this._children[this._parent[c]][c]}parent(c){if(this._isCompound){var d=this._parent[c];if(d!==t)return d}}children(c=t){if(this._isCompound){var d=this._children[c];if(d)return Object.keys(d)}else{if(c===t)return this.nodes();if(this.hasNode(c))return[]}}predecessors(c){var d=this._preds[c];if(d)return Object.keys(d)}successors(c){var d=this._sucs[c];if(d)return Object.keys(d)}neighbors(c){var d=this.predecessors(c);if(d){const h=new Set(d);for(var f of this.successors(c))h.add(f);return Array.from(h.values())}}isLeaf(c){var d;return this.isDirected()?d=this.successors(c):d=this.neighbors(c),d.length===0}filterNodes(c){var d=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});d.setGraph(this.graph());var f=this;Object.entries(this._nodes).forEach(function([p,m]){c(p)&&d.setNode(p,m)}),Object.values(this._edgeObjs).forEach(function(p){d.hasNode(p.v)&&d.hasNode(p.w)&&d.setEdge(p,f.edge(p))});var h={};function g(p){var m=f.parent(p);return m===void 0||d.hasNode(m)?(h[p]=m,m):m in h?h[m]:g(m)}return this._isCompound&&d.nodes().forEach(p=>d.setParent(p,g(p))),d}setDefaultEdgeLabel(c){return this._defaultEdgeLabelFn=c,typeof c!="function"&&(this._defaultEdgeLabelFn=()=>c),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(c,d){var f=this,h=arguments;return c.reduce(function(g,p){return h.length>1?f.setEdge(g,p,d):f.setEdge(g,p),p}),this}setEdge(){var c,d,f,h,g=!1,p=arguments[0];typeof p=="object"&&p!==null&&"v"in p?(c=p.v,d=p.w,f=p.name,arguments.length===2&&(h=arguments[1],g=!0)):(c=p,d=arguments[1],f=arguments[3],arguments.length>2&&(h=arguments[2],g=!0)),c=""+c,d=""+d,f!==void 0&&(f=""+f);var m=a(this._isDirected,c,d,f);if(Object.hasOwn(this._edgeLabels,m))return g&&(this._edgeLabels[m]=h),this;if(f!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(c),this.setNode(d),this._edgeLabels[m]=g?h:this._defaultEdgeLabelFn(c,d,f);var b=l(this._isDirected,c,d,f);return c=b.v,d=b.w,Object.freeze(b),this._edgeObjs[m]=b,o(this._preds[d],c),o(this._sucs[c],d),this._in[d][m]=b,this._out[c][m]=b,this._edgeCount++,this}edge(c,d,f){var h=arguments.length===1?r(this._isDirected,arguments[0]):a(this._isDirected,c,d,f);return this._edgeLabels[h]}edgeAsObj(){const c=this.edge(...arguments);return typeof c!="object"?{label:c}:c}hasEdge(c,d,f){var h=arguments.length===1?r(this._isDirected,arguments[0]):a(this._isDirected,c,d,f);return Object.hasOwn(this._edgeLabels,h)}removeEdge(c,d,f){var h=arguments.length===1?r(this._isDirected,arguments[0]):a(this._isDirected,c,d,f),g=this._edgeObjs[h];return g&&(c=g.v,d=g.w,delete this._edgeLabels[h],delete this._edgeObjs[h],s(this._preds[d],c),s(this._sucs[c],d),delete this._in[d][h],delete this._out[c][h],this._edgeCount--),this}inEdges(c,d){var f=this._in[c];if(f){var h=Object.values(f);return d?h.filter(g=>g.v===d):h}}outEdges(c,d){var f=this._out[c];if(f){var h=Object.values(f);return d?h.filter(g=>g.w===d):h}}nodeEdges(c,d){var f=this.inEdges(c,d);if(f)return f.concat(this.outEdges(c,d))}}function o(u,c){u[c]?u[c]++:u[c]=1}function s(u,c){--u[c]||delete u[c]}function a(u,c,d,f){var h=""+c,g=""+d;if(!u&&h>g){var p=h;h=g,g=p}return h+n+g+n+(f===void 0?e:f)}function l(u,c,d,f){var h=""+c,g=""+d;if(!u&&h>g){var p=h;h=g,g=p}var m={v:h,w:g};return f&&(m.name=f),m}function r(u,c){return a(u,c.v,c.w,c.name)}return Ro=i,Ro}var Lo,fa;function wv(){return fa||(fa=1,Lo="2.2.4"),Lo}var Ao,ha;function bv(){return ha||(ha=1,Ao={Graph:ms(),version:wv()}),Ao}var zo,ga;function xv(){if(ga)return zo;ga=1;var e=ms();zo={write:t,read:o};function t(s){var a={options:{directed:s.isDirected(),multigraph:s.isMultigraph(),compound:s.isCompound()},nodes:n(s),edges:i(s)};return s.graph()!==void 0&&(a.value=structuredClone(s.graph())),a}function n(s){return s.nodes().map(function(a){var l=s.node(a),r=s.parent(a),u={v:a};return l!==void 0&&(u.value=l),r!==void 0&&(u.parent=r),u})}function i(s){return s.edges().map(function(a){var l=s.edge(a),r={v:a.v,w:a.w};return a.name!==void 0&&(r.name=a.name),l!==void 0&&(r.value=l),r})}function o(s){var a=new e(s.options).setGraph(s.value);return s.nodes.forEach(function(l){a.setNode(l.v,l.value),l.parent&&a.setParent(l.v,l.parent)}),s.edges.forEach(function(l){a.setEdge({v:l.v,w:l.w,name:l.name},l.value)}),a}return zo}var Vo,ma;function Ev(){if(ma)return Vo;ma=1,Vo=e;function e(t){var n={},i=[],o;function s(a){Object.hasOwn(n,a)||(n[a]=!0,o.push(a),t.successors(a).forEach(s),t.predecessors(a).forEach(s))}return t.nodes().forEach(function(a){o=[],s(a),o.length&&i.push(o)}),i}return Vo}var Bo,va;function Nl(){if(va)return Bo;va=1;class e{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var i=this._keyIndices[n];if(i!==void 0)return this._arr[i].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(n,i){var o=this._keyIndices;if(n=String(n),!Object.hasOwn(o,n)){var s=this._arr,a=s.length;return o[n]=a,s.push({key:n,priority:i}),this._decrease(a),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,i){var o=this._keyIndices[n];if(i>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[o].priority+" New: "+i);this._arr[o].priority=i,this._decrease(o)}_heapify(n){var i=this._arr,o=2*n,s=o+1,a=n;o>1,!(i[s].priority1;function n(o,s,a,l){return i(o,String(s),a||t,l||function(r){return o.outEdges(r)})}function i(o,s,a,l){var r={},u=new e,c,d,f=function(h){var g=h.v!==c?h.v:h.w,p=r[g],m=a(h),b=d.distance+m;if(m<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+h+" Weight: "+m);b0&&(c=u.removeMin(),d=r[c],d.distance!==Number.POSITIVE_INFINITY);)l(c).forEach(f);return r}return Fo}var Ho,ya;function Sv(){if(ya)return Ho;ya=1;var e=$l();Ho=t;function t(n,i,o){return n.nodes().reduce(function(s,a){return s[a]=e(n,a,i,o),s},{})}return Ho}var Go,_a;function Il(){if(_a)return Go;_a=1,Go=e;function e(t){var n=0,i=[],o={},s=[];function a(l){var r=o[l]={onStack:!0,lowlink:n,index:n++};if(i.push(l),t.successors(l).forEach(function(d){Object.hasOwn(o,d)?o[d].onStack&&(r.lowlink=Math.min(r.lowlink,o[d].index)):(a(d),r.lowlink=Math.min(r.lowlink,o[d].lowlink))}),r.lowlink===r.index){var u=[],c;do c=i.pop(),o[c].onStack=!1,u.push(c);while(l!==c);s.push(u)}}return t.nodes().forEach(function(l){Object.hasOwn(o,l)||a(l)}),s}return Go}var qo,wa;function kv(){if(wa)return qo;wa=1;var e=Il();qo=t;function t(n){return e(n).filter(function(i){return i.length>1||i.length===1&&n.hasEdge(i[0],i[0])})}return qo}var Yo,ba;function Cv(){if(ba)return Yo;ba=1,Yo=t;var e=()=>1;function t(i,o,s){return n(i,o||e,s||function(a){return i.outEdges(a)})}function n(i,o,s){var a={},l=i.nodes();return l.forEach(function(r){a[r]={},a[r][r]={distance:0},l.forEach(function(u){r!==u&&(a[r][u]={distance:Number.POSITIVE_INFINITY})}),s(r).forEach(function(u){var c=u.v===r?u.w:u.v,d=o(u);a[r][c]={distance:d,predecessor:r}})}),l.forEach(function(r){var u=a[r];l.forEach(function(c){var d=a[c];l.forEach(function(f){var h=d[r],g=u[f],p=d[f],m=h.distance+g.distance;mo.successors(d):d=>o.neighbors(d),r=a==="post"?t:n,u=[],c={};return s.forEach(d=>{if(!o.hasNode(d))throw new Error("Graph does not have node: "+d);r(d,l,c,u)}),u}function t(o,s,a,l){for(var r=[[o,!1]];r.length>0;){var u=r.pop();u[1]?l.push(u[0]):Object.hasOwn(a,u[0])||(a[u[0]]=!0,r.push([u[0],!0]),i(s(u[0]),c=>r.push([c,!1])))}}function n(o,s,a,l){for(var r=[o];r.length>0;){var u=r.pop();Object.hasOwn(a,u)||(a[u]=!0,l.push(u),i(s(u),c=>r.push(c)))}}function i(o,s){for(var a=o.length;a--;)s(o[a],a,o);return o}return jo}var Xo,ka;function Nv(){if(ka)return Xo;ka=1;var e=Dl();Xo=t;function t(n,i){return e(n,i,"post")}return Xo}var Zo,Ca;function $v(){if(Ca)return Zo;Ca=1;var e=Dl();Zo=t;function t(n,i){return e(n,i,"pre")}return Zo}var Ko,Ma;function Iv(){if(Ma)return Ko;Ma=1;var e=ms(),t=Nl();Ko=n;function n(i,o){var s=new e,a={},l=new t,r;function u(d){var f=d.v===r?d.w:d.v,h=l.priority(f);if(h!==void 0){var g=o(d);g0;){if(r=l.removeMin(),Object.hasOwn(a,r))s.setEdge(r,a[r]);else{if(c)throw new Error("Input graph is not connected: "+i);c=!0}i.nodeEdges(r).forEach(u)}return s}return Ko}var Jo,Na;function Tv(){return Na||(Na=1,Jo={components:Ev(),dijkstra:$l(),dijkstraAll:Sv(),findCycles:kv(),floydWarshall:Cv(),isAcyclic:Mv(),postorder:Nv(),preorder:$v(),prim:Iv(),tarjan:Il(),topsort:Tl()}),Jo}var Qo,$a;function Xe(){if($a)return Qo;$a=1;var e=bv();return Qo={Graph:e.Graph,json:xv(),alg:Tv(),version:e.version},Qo}var ei,Ia;function Dv(){if(Ia)return ei;Ia=1;class e{constructor(){let o={};o._next=o._prev=o,this._sentinel=o}dequeue(){let o=this._sentinel,s=o._prev;if(s!==o)return t(s),s}enqueue(o){let s=this._sentinel;o._prev&&o._next&&t(o),o._next=s._next,s._next._prev=o,s._next=o,o._prev=s}toString(){let o=[],s=this._sentinel,a=s._prev;for(;a!==s;)o.push(JSON.stringify(a,n)),a=a._prev;return"["+o.join(", ")+"]"}}function t(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function n(i,o){if(i!=="_next"&&i!=="_prev")return o}return ei=e,ei}var ti,Ta;function Ov(){if(Ta)return ti;Ta=1;let e=Xe().Graph,t=Dv();ti=i;let n=()=>1;function i(u,c){if(u.nodeCount()<=1)return[];let d=a(u,c||n);return o(d.graph,d.buckets,d.zeroIdx).flatMap(h=>u.outEdges(h.v,h.w))}function o(u,c,d){let f=[],h=c[c.length-1],g=c[0],p;for(;u.nodeCount();){for(;p=g.dequeue();)s(u,c,d,p);for(;p=h.dequeue();)s(u,c,d,p);if(u.nodeCount()){for(let m=c.length-2;m>0;--m)if(p=c[m].dequeue(),p){f=f.concat(s(u,c,d,p,!0));break}}}return f}function s(u,c,d,f,h){let g=h?[]:void 0;return u.inEdges(f.v).forEach(p=>{let m=u.edge(p),b=u.node(p.v);h&&g.push({v:p.v,w:p.w}),b.out-=m,l(c,d,b)}),u.outEdges(f.v).forEach(p=>{let m=u.edge(p),b=p.w,y=u.node(b);y.in-=m,l(c,d,y)}),u.removeNode(f.v),g}function a(u,c){let d=new e,f=0,h=0;u.nodes().forEach(m=>{d.setNode(m,{v:m,in:0,out:0})}),u.edges().forEach(m=>{let b=d.edge(m.v,m.w)||0,y=c(m),v=b+y;d.setEdge(m.v,m.w,v),h=Math.max(h,d.node(m.v).out+=y),f=Math.max(f,d.node(m.w).in+=y)});let g=r(h+f+3).map(()=>new t),p=f+1;return d.nodes().forEach(m=>{l(g,p,d.node(m))}),{graph:d,buckets:g,zeroIdx:p}}function l(u,c,d){d.out?d.in?u[d.out-d.in+c].enqueue(d):u[u.length-1].enqueue(d):u[0].enqueue(d)}function r(u){const c=[];for(let d=0;dk.setNode(x,_.node(x))),_.edges().forEach(x=>{let I=k.edge(x.v,x.w)||{weight:0,minlen:1},E=_.edge(x);k.setEdge(x.v,x.w,{weight:I.weight+E.weight,minlen:Math.max(I.minlen,E.minlen)})}),k}function i(_){let k=new e({multigraph:_.isMultigraph()}).setGraph(_.graph());return _.nodes().forEach(x=>{_.children(x).length||k.setNode(x,_.node(x))}),_.edges().forEach(x=>{k.setEdge(x,_.edge(x))}),k}function o(_){let k=_.nodes().map(x=>{let I={};return _.outEdges(x).forEach(E=>{I[E.w]=(I[E.w]||0)+_.edge(E).weight}),I});return A(_.nodes(),k)}function s(_){let k=_.nodes().map(x=>{let I={};return _.inEdges(x).forEach(E=>{I[E.v]=(I[E.v]||0)+_.edge(E).weight}),I});return A(_.nodes(),k)}function a(_,k){let x=_.x,I=_.y,E=k.x-x,G=k.y-I,C=_.width/2,H=_.height/2;if(!E&&!G)throw new Error("Not possible to find intersection inside of the rectangle");let V,W;return Math.abs(G)*C>Math.abs(E)*H?(G<0&&(H=-H),V=H*E/G,W=H):(E<0&&(C=-C),V=C,W=C*G/E),{x:x+V,y:I+W}}function l(_){let k=w(g(_)+1).map(()=>[]);return _.nodes().forEach(x=>{let I=_.node(x),E=I.rank;E!==void 0&&(k[E][I.order]=x)}),k}function r(_){let k=_.nodes().map(I=>{let E=_.node(I).rank;return E===void 0?Number.MAX_VALUE:E}),x=h(Math.min,k);_.nodes().forEach(I=>{let E=_.node(I);Object.hasOwn(E,"rank")&&(E.rank-=x)})}function u(_){let k=_.nodes().map(C=>_.node(C).rank),x=h(Math.min,k),I=[];_.nodes().forEach(C=>{let H=_.node(C).rank-x;I[H]||(I[H]=[]),I[H].push(C)});let E=0,G=_.graph().nodeRankFactor;Array.from(I).forEach((C,H)=>{C===void 0&&H%G!==0?--E:C!==void 0&&E&&C.forEach(V=>_.node(V).rank+=E)})}function c(_,k,x,I){let E={width:0,height:0};return arguments.length>=4&&(E.rank=x,E.order=I),t(_,"border",E,k)}function d(_,k=f){const x=[];for(let I=0;I<_.length;I+=k){const E=_.slice(I,I+k);x.push(E)}return x}const f=65535;function h(_,k){if(k.length>f){const x=d(k);return _.apply(null,x.map(I=>_.apply(null,I)))}else return _.apply(null,k)}function g(_){const x=_.nodes().map(I=>{let E=_.node(I).rank;return E===void 0?Number.MIN_VALUE:E});return h(Math.max,x)}function p(_,k){let x={lhs:[],rhs:[]};return _.forEach(I=>{k(I)?x.lhs.push(I):x.rhs.push(I)}),x}function m(_,k){let x=Date.now();try{return k()}finally{console.log(_+" time: "+(Date.now()-x)+"ms")}}function b(_,k){return k()}let y=0;function v(_){var k=++y;return _+(""+k)}function w(_,k,x=1){k==null&&(k=_,_=0);let I=G=>GkI[k]),Object.entries(_).reduce((I,[E,G])=>(I[E]=x(G,E),I),{})}function A(_,k){return _.reduce((x,I,E)=>(x[I]=k[E],x),{})}return ni}var oi,Oa;function Pv(){if(Oa)return oi;Oa=1;let e=Ov(),t=Re().uniqueId;oi={run:n,undo:o};function n(s){(s.graph().acyclicer==="greedy"?e(s,l(s)):i(s)).forEach(r=>{let u=s.edge(r);s.removeEdge(r),u.forwardName=r.name,u.reversed=!0,s.setEdge(r.w,r.v,u,t("rev"))});function l(r){return u=>r.edge(u).weight}}function i(s){let a=[],l={},r={};function u(c){Object.hasOwn(r,c)||(r[c]=!0,l[c]=!0,s.outEdges(c).forEach(d=>{Object.hasOwn(l,d.w)?a.push(d):u(d.w)}),delete l[c])}return s.nodes().forEach(u),a}function o(s){s.edges().forEach(a=>{let l=s.edge(a);if(l.reversed){s.removeEdge(a);let r=l.forwardName;delete l.reversed,delete l.forwardName,s.setEdge(a.w,a.v,l,r)}})}return oi}var ii,Pa;function Rv(){if(Pa)return ii;Pa=1;let e=Re();ii={run:t,undo:i};function t(o){o.graph().dummyChains=[],o.edges().forEach(s=>n(o,s))}function n(o,s){let a=s.v,l=o.node(a).rank,r=s.w,u=o.node(r).rank,c=s.name,d=o.edge(s),f=d.labelRank;if(u===l+1)return;o.removeEdge(s);let h,g,p;for(p=0,++l;l{let a=o.node(s),l=a.edgeLabel,r;for(o.setEdge(a.edgeObj,l);a.dummy;)r=o.successors(s)[0],o.removeNode(s),l.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(l.x=a.x,l.y=a.y,l.width=a.width,l.height=a.height),s=r,a=o.node(s)})}return ii}var si,Ra;function so(){if(Ra)return si;Ra=1;const{applyWithChunking:e}=Re();si={longestPath:t,slack:n};function t(i){var o={};function s(a){var l=i.node(a);if(Object.hasOwn(o,a))return l.rank;o[a]=!0;let r=i.outEdges(a).map(c=>c==null?Number.POSITIVE_INFINITY:s(c.w)-i.edge(c).minlen);var u=e(Math.min,r);return u===Number.POSITIVE_INFINITY&&(u=0),l.rank=u}i.sources().forEach(s)}function n(i,o){return i.node(o.w).rank-i.node(o.v).rank-i.edge(o).minlen}return si}var ai,La;function Ol(){if(La)return ai;La=1;var e=Xe().Graph,t=so().slack;ai=n;function n(a){var l=new e({directed:!1}),r=a.nodes()[0],u=a.nodeCount();l.setNode(r,{});for(var c,d;i(l,a){var d=c.v,f=u===d?c.w:d;!a.hasNode(f)&&!t(l,c)&&(a.setNode(f,{}),a.setEdge(u,f,{}),r(f))})}return a.nodes().forEach(r),a.nodeCount()}function o(a,l){return l.edges().reduce((u,c)=>{let d=Number.POSITIVE_INFINITY;return a.hasNode(c.v)!==a.hasNode(c.w)&&(d=t(l,c)),dl.node(u).rank+=r)}return ai}var ri,Aa;function Lv(){if(Aa)return ri;Aa=1;var e=Ol(),t=so().slack,n=so().longestPath,i=Xe().alg.preorder,o=Xe().alg.postorder,s=Re().simplify;ri=a,a.initLowLimValues=c,a.initCutValues=l,a.calcCutValue=u,a.leaveEdge=f,a.enterEdge=h,a.exchangeEdges=g;function a(y){y=s(y),n(y);var v=e(y);c(v),l(v,y);for(var w,O;w=f(v);)O=h(v,y,w),g(v,y,w,O)}function l(y,v){var w=o(y,y.nodes());w=w.slice(0,w.length-1),w.forEach(O=>r(y,v,O))}function r(y,v,w){var O=y.node(w),L=O.parent;y.edge(w,L).cutvalue=u(y,v,w)}function u(y,v,w){var O=y.node(w),L=O.parent,A=!0,_=v.edge(w,L),k=0;return _||(A=!1,_=v.edge(L,w)),k=_.weight,v.nodeEdges(w).forEach(x=>{var I=x.v===w,E=I?x.w:x.v;if(E!==L){var G=I===A,C=v.edge(x).weight;if(k+=G?C:-C,m(y,w,E)){var H=y.edge(w,E).cutvalue;k+=G?-H:H}}}),k}function c(y,v){arguments.length<2&&(v=y.nodes()[0]),d(y,{},1,v)}function d(y,v,w,O,L){var A=w,_=y.node(O);return v[O]=!0,y.neighbors(O).forEach(k=>{Object.hasOwn(v,k)||(w=d(y,v,w,k,O))}),_.low=A,_.lim=w++,L?_.parent=L:delete _.parent,w}function f(y){return y.edges().find(v=>y.edge(v).cutvalue<0)}function h(y,v,w){var O=w.v,L=w.w;v.hasEdge(O,L)||(O=w.w,L=w.v);var A=y.node(O),_=y.node(L),k=A,x=!1;A.lim>_.lim&&(k=_,x=!0);var I=v.edges().filter(E=>x===b(y,y.node(E.v),k)&&x!==b(y,y.node(E.w),k));return I.reduce((E,G)=>t(v,G)!v.node(L).parent),O=i(y,w);O=O.slice(1),O.forEach(L=>{var A=y.node(L).parent,_=v.edge(L,A),k=!1;_||(_=v.edge(A,L),k=!0),v.node(L).rank=v.node(A).rank+(k?_.minlen:-_.minlen)})}function m(y,v,w){return y.hasEdge(v,w)}function b(y,v,w){return w.low<=v.lim&&v.lim<=w.lim}return ri}var li,za;function Av(){if(za)return li;za=1;var e=so(),t=e.longestPath,n=Ol(),i=Lv();li=o;function o(r){var u=r.graph().ranker;if(u instanceof Function)return u(r);switch(r.graph().ranker){case"network-simplex":l(r);break;case"tight-tree":a(r);break;case"longest-path":s(r);break;case"none":break;default:l(r)}}var s=t;function a(r){t(r),n(r)}function l(r){i(r)}return li}var ui,Va;function zv(){if(Va)return ui;Va=1,ui=e;function e(i){let o=n(i);i.graph().dummyChains.forEach(s=>{let a=i.node(s),l=a.edgeObj,r=t(i,o,l.v,l.w),u=r.path,c=r.lca,d=0,f=u[d],h=!0;for(;s!==l.w;){if(a=i.node(s),h){for(;(f=u[d])!==c&&i.node(f).maxRanku||c>o[d].lim));for(f=d,d=a;(d=i.parent(d))!==f;)r.push(d);return{path:l.concat(r.reverse()),lca:f}}function n(i){let o={},s=0;function a(l){let r=s;i.children(l).forEach(a),o[l]={low:r,lim:s++}}return i.children().forEach(a),o}return ui}var ci,Ba;function Vv(){if(Ba)return ci;Ba=1;let e=Re();ci={run:t,cleanup:s};function t(a){let l=e.addDummyNode(a,"root",{},"_root"),r=i(a),u=Object.values(r),c=e.applyWithChunking(Math.max,u)-1,d=2*c+1;a.graph().nestingRoot=l,a.edges().forEach(h=>a.edge(h).minlen*=d);let f=o(a)+1;a.children().forEach(h=>n(a,l,d,f,c,r,h)),a.graph().nodeRankFactor=d}function n(a,l,r,u,c,d,f){let h=a.children(f);if(!h.length){f!==l&&a.setEdge(l,f,{weight:0,minlen:r});return}let g=e.addBorderNode(a,"_bt"),p=e.addBorderNode(a,"_bb"),m=a.node(f);a.setParent(g,f),m.borderTop=g,a.setParent(p,f),m.borderBottom=p,h.forEach(b=>{n(a,l,r,u,c,d,b);let y=a.node(b),v=y.borderTop?y.borderTop:b,w=y.borderBottom?y.borderBottom:b,O=y.borderTop?u:2*u,L=v!==w?1:c-d[f]+1;a.setEdge(g,v,{weight:O,minlen:L,nestingEdge:!0}),a.setEdge(w,p,{weight:O,minlen:L,nestingEdge:!0})}),a.parent(f)||a.setEdge(l,g,{weight:0,minlen:c+d[f]})}function i(a){var l={};function r(u,c){var d=a.children(u);d&&d.length&&d.forEach(f=>r(f,c+1)),l[u]=c}return a.children().forEach(u=>r(u,1)),l}function o(a){return a.edges().reduce((l,r)=>l+a.edge(r).weight,0)}function s(a){var l=a.graph();a.removeNode(l.nestingRoot),delete l.nestingRoot,a.edges().forEach(r=>{var u=a.edge(r);u.nestingEdge&&a.removeEdge(r)})}return ci}var di,Fa;function Bv(){if(Fa)return di;Fa=1;let e=Re();di=t;function t(i){function o(s){let a=i.children(s),l=i.node(s);if(a.length&&a.forEach(o),Object.hasOwn(l,"minRank")){l.borderLeft=[],l.borderRight=[];for(let r=l.minRank,u=l.maxRank+1;ri(r.node(u))),r.edges().forEach(u=>i(r.edge(u)))}function i(r){let u=r.width;r.width=r.height,r.height=u}function o(r){r.nodes().forEach(u=>s(r.node(u))),r.edges().forEach(u=>{let c=r.edge(u);c.points.forEach(s),Object.hasOwn(c,"y")&&s(c)})}function s(r){r.y=-r.y}function a(r){r.nodes().forEach(u=>l(r.node(u))),r.edges().forEach(u=>{let c=r.edge(u);c.points.forEach(l),Object.hasOwn(c,"x")&&l(c)})}function l(r){let u=r.x;r.x=r.y,r.y=u}return fi}var hi,Ga;function Hv(){if(Ga)return hi;Ga=1;let e=Re();hi=t;function t(n){let i={},o=n.nodes().filter(c=>!n.children(c).length),s=o.map(c=>n.node(c).rank),a=e.applyWithChunking(Math.max,s),l=e.range(a+1).map(()=>[]);function r(c){if(i[c])return;i[c]=!0;let d=n.node(c);l[d.rank].push(c),n.successors(c).forEach(r)}return o.sort((c,d)=>n.node(c).rank-n.node(d).rank).forEach(r),l}return hi}var gi,qa;function Gv(){if(qa)return gi;qa=1;let e=Re().zipObject;gi=t;function t(i,o){let s=0;for(let a=1;ah)),l=o.flatMap(f=>i.outEdges(f).map(h=>({pos:a[h.w],weight:i.edge(h).weight})).sort((h,g)=>h.pos-g.pos)),r=1;for(;r{let h=f.pos+r;c[h]+=f.weight;let g=0;for(;h>0;)h%2&&(g+=c[h+1]),h=h-1>>1,c[h]+=f.weight;d+=f.weight*g}),d}return gi}var mi,Ya;function qv(){if(Ya)return mi;Ya=1,mi=e;function e(t,n=[]){return n.map(i=>{let o=t.inEdges(i);if(o.length){let s=o.reduce((a,l)=>{let r=t.edge(l),u=t.node(l.v);return{sum:a.sum+r.weight*u.order,weight:a.weight+r.weight}},{sum:0,weight:0});return{v:i,barycenter:s.sum/s.weight,weight:s.weight}}else return{v:i}})}return mi}var vi,Wa;function Yv(){if(Wa)return vi;Wa=1;let e=Re();vi=t;function t(o,s){let a={};o.forEach((r,u)=>{let c=a[r.v]={indegree:0,in:[],out:[],vs:[r.v],i:u};r.barycenter!==void 0&&(c.barycenter=r.barycenter,c.weight=r.weight)}),s.edges().forEach(r=>{let u=a[r.v],c=a[r.w];u!==void 0&&c!==void 0&&(c.indegree++,u.out.push(a[r.w]))});let l=Object.values(a).filter(r=>!r.indegree);return n(l)}function n(o){let s=[];function a(r){return u=>{u.merged||(u.barycenter===void 0||r.barycenter===void 0||u.barycenter>=r.barycenter)&&i(r,u)}}function l(r){return u=>{u.in.push(r),--u.indegree===0&&o.push(u)}}for(;o.length;){let r=o.pop();s.push(r),r.in.reverse().forEach(a(r)),r.out.forEach(l(r))}return s.filter(r=>!r.merged).map(r=>e.pick(r,["vs","i","barycenter","weight"]))}function i(o,s){let a=0,l=0;o.weight&&(a+=o.barycenter*o.weight,l+=o.weight),s.weight&&(a+=s.barycenter*s.weight,l+=s.weight),o.vs=s.vs.concat(o.vs),o.barycenter=a/l,o.weight=l,o.i=Math.min(s.i,o.i),s.merged=!0}return vi}var pi,Ua;function Wv(){if(Ua)return pi;Ua=1;let e=Re();pi=t;function t(o,s){let a=e.partition(o,g=>Object.hasOwn(g,"barycenter")),l=a.lhs,r=a.rhs.sort((g,p)=>p.i-g.i),u=[],c=0,d=0,f=0;l.sort(i(!!s)),f=n(u,r,f),l.forEach(g=>{f+=g.vs.length,u.push(g.vs),c+=g.barycenter*g.weight,d+=g.weight,f=n(u,r,f)});let h={vs:u.flat(!0)};return d&&(h.barycenter=c/d,h.weight=d),h}function n(o,s,a){let l;for(;s.length&&(l=s[s.length-1]).i<=a;)s.pop(),o.push(l.vs),a++;return a}function i(o){return(s,a)=>s.barycentera.barycenter?1:o?a.i-s.i:s.i-a.i}return pi}var yi,ja;function Uv(){if(ja)return yi;ja=1;let e=qv(),t=Yv(),n=Wv();yi=i;function i(a,l,r,u){let c=a.children(l),d=a.node(l),f=d?d.borderLeft:void 0,h=d?d.borderRight:void 0,g={};f&&(c=c.filter(y=>y!==f&&y!==h));let p=e(a,c);p.forEach(y=>{if(a.children(y.v).length){let v=i(a,y.v,r,u);g[y.v]=v,Object.hasOwn(v,"barycenter")&&s(y,v)}});let m=t(p,r);o(m,g);let b=n(m,u);if(f&&(b.vs=[f,b.vs,h].flat(!0),a.predecessors(f).length)){let y=a.node(a.predecessors(f)[0]),v=a.node(a.predecessors(h)[0]);Object.hasOwn(b,"barycenter")||(b.barycenter=0,b.weight=0),b.barycenter=(b.barycenter*b.weight+y.order+v.order)/(b.weight+2),b.weight+=2}return b}function o(a,l){a.forEach(r=>{r.vs=r.vs.flatMap(u=>l[u]?l[u].vs:u)})}function s(a,l){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+l.barycenter*l.weight)/(a.weight+l.weight),a.weight+=l.weight):(a.barycenter=l.barycenter,a.weight=l.weight)}return yi}var _i,Xa;function jv(){if(Xa)return _i;Xa=1;let e=Xe().Graph,t=Re();_i=n;function n(o,s,a,l){l||(l=o.nodes());let r=i(o),u=new e({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(c=>o.node(c));return l.forEach(c=>{let d=o.node(c),f=o.parent(c);(d.rank===s||d.minRank<=s&&s<=d.maxRank)&&(u.setNode(c),u.setParent(c,f||r),o[a](c).forEach(h=>{let g=h.v===c?h.w:h.v,p=u.edge(g,c),m=p!==void 0?p.weight:0;u.setEdge(g,c,{weight:o.edge(h).weight+m})}),Object.hasOwn(d,"minRank")&&u.setNode(c,{borderLeft:d.borderLeft[s],borderRight:d.borderRight[s]}))}),u}function i(o){for(var s;o.hasNode(s=t.uniqueId("_root")););return s}return _i}var wi,Za;function Xv(){if(Za)return wi;Za=1,wi=e;function e(t,n,i){let o={},s;i.forEach(a=>{let l=t.parent(a),r,u;for(;l;){if(r=t.parent(l),r?(u=o[r],o[r]=l):(u=s,s=l),u&&u!==l){n.setEdge(u,l);return}l=r}})}return wi}var bi,Ka;function Zv(){if(Ka)return bi;Ka=1;let e=Hv(),t=Gv(),n=Uv(),i=jv(),o=Xv(),s=Xe().Graph,a=Re();bi=l;function l(d,f){if(f&&typeof f.customOrder=="function"){f.customOrder(d,l);return}let h=a.maxRank(d),g=r(d,a.range(1,h+1),"inEdges"),p=r(d,a.range(h-1,-1,-1),"outEdges"),m=e(d);if(c(d,m),f&&f.disableOptimalOrderHeuristic)return;let b=Number.POSITIVE_INFINITY,y;for(let v=0,w=0;w<4;++v,++w){u(v%2?g:p,v%4>=2),m=a.buildLayerMatrix(d);let O=t(d,m);O{g.has(m)||g.set(m,[]),g.get(m).push(b)};for(const m of d.nodes()){const b=d.node(m);if(typeof b.rank=="number"&&p(b.rank,m),typeof b.minRank=="number"&&typeof b.maxRank=="number")for(let y=b.minRank;y<=b.maxRank;y++)y!==b.rank&&p(y,m)}return f.map(function(m){return i(d,m,h,g.get(m)||[])})}function u(d,f){let h=new s;d.forEach(function(g){let p=g.graph().root,m=n(g,p,h,f);m.vs.forEach((b,y)=>g.node(b).order=y),o(g,h,m.vs)})}function c(d,f){Object.values(f).forEach(h=>h.forEach((g,p)=>d.node(g).order=p))}return bi}var xi,Ja;function Kv(){if(Ja)return xi;Ja=1;let e=Xe().Graph,t=Re();xi={positionX:h,findType1Conflicts:n,findType2Conflicts:i,addConflict:s,hasConflict:a,verticalAlignment:l,horizontalCompaction:r,alignCoordinates:d,findSmallestWidthAlignment:c,balance:f};function n(m,b){let y={};function v(w,O){let L=0,A=0,_=w.length,k=O[O.length-1];return O.forEach((x,I)=>{let E=o(m,x),G=E?m.node(E).order:_;(E||x===k)&&(O.slice(A,I+1).forEach(C=>{m.predecessors(C).forEach(H=>{let V=m.node(H),W=V.order;(W{x=O[I],m.node(x).dummy&&m.predecessors(x).forEach(E=>{let G=m.node(E);G.dummy&&(G.order<_||G.order>k)&&s(y,E,x)})})}function w(O,L){let A=-1,_,k=0;return L.forEach((x,I)=>{if(m.node(x).dummy==="border"){let E=m.predecessors(x);E.length&&(_=m.node(E[0]).order,v(L,k,I,A,_),k=I,A=_)}v(L,k,L.length,_,O.length)}),L}return b.length&&b.reduce(w),y}function o(m,b){if(m.node(b).dummy)return m.predecessors(b).find(y=>m.node(y).dummy)}function s(m,b,y){if(b>y){let w=b;b=y,y=w}let v=m[b];v||(m[b]=v={}),v[y]=!0}function a(m,b,y){if(b>y){let v=b;b=y,y=v}return!!m[b]&&Object.hasOwn(m[b],y)}function l(m,b,y,v){let w={},O={},L={};return b.forEach(A=>{A.forEach((_,k)=>{w[_]=_,O[_]=_,L[_]=k})}),b.forEach(A=>{let _=-1;A.forEach(k=>{let x=v(k);if(x.length){x=x.sort((E,G)=>L[E]-L[G]);let I=(x.length-1)/2;for(let E=Math.floor(I),G=Math.ceil(I);E<=G;++E){let C=x[E];O[k]===k&&_Math.max(E,O[G.v]+L.edge(G)),0)}function x(I){let E=L.outEdges(I).reduce((C,H)=>Math.min(C,O[H.w]-L.edge(H)),Number.POSITIVE_INFINITY),G=m.node(I);E!==Number.POSITIVE_INFINITY&&G.borderType!==A&&(O[I]=Math.max(O[I],E))}return _(k,L.predecessors.bind(L)),_(x,L.successors.bind(L)),Object.keys(v).forEach(I=>O[I]=O[y[I]]),O}function u(m,b,y,v){let w=new e,O=m.graph(),L=g(O.nodesep,O.edgesep,v);return b.forEach(A=>{let _;A.forEach(k=>{let x=y[k];if(w.setNode(x),_){var I=y[_],E=w.edge(I,x);w.setEdge(I,x,Math.max(L(m,k,_),E||0))}_=k})}),w}function c(m,b){return Object.values(b).reduce((y,v)=>{let w=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY;Object.entries(v).forEach(([A,_])=>{let k=p(m,A)/2;w=Math.max(_+k,w),O=Math.min(_-k,O)});const L=w-O;return L{["l","r"].forEach(L=>{let A=O+L,_=m[A];if(_===b)return;let k=Object.values(_),x=v-t.applyWithChunking(Math.min,k);L!=="l"&&(x=w-t.applyWithChunking(Math.max,k)),x&&(m[A]=t.mapValues(_,I=>I+x))})})}function f(m,b){return t.mapValues(m.ul,(y,v)=>{if(b)return m[b.toLowerCase()][v];{let w=Object.values(m).map(O=>O[v]).sort((O,L)=>O-L);return(w[1]+w[2])/2}})}function h(m){let b=t.buildLayerMatrix(m),y=Object.assign(n(m,b),i(m,b)),v={},w;["u","d"].forEach(L=>{w=L==="u"?b:Object.values(b).reverse(),["l","r"].forEach(A=>{A==="r"&&(w=w.map(I=>Object.values(I).reverse()));let _=(L==="u"?m.predecessors:m.successors).bind(m),k=l(m,w,y,_),x=r(m,w,k.root,k.align,A==="r");A==="r"&&(x=t.mapValues(x,I=>-I)),v[L+A]=x})});let O=c(m,v);return d(v,O),f(v,m.graph().align)}function g(m,b,y){return(v,w,O)=>{let L=v.node(w),A=v.node(O),_=0,k;if(_+=L.width/2,Object.hasOwn(L,"labelpos"))switch(L.labelpos.toLowerCase()){case"l":k=-L.width/2;break;case"r":k=L.width/2;break}if(k&&(_+=y?k:-k),k=0,_+=(L.dummy?b:m)/2,_+=(A.dummy?b:m)/2,_+=A.width/2,Object.hasOwn(A,"labelpos"))switch(A.labelpos.toLowerCase()){case"l":k=A.width/2;break;case"r":k=-A.width/2;break}return k&&(_+=y?k:-k),k=0,_}}function p(m,b){return m.node(b).width}return xi}var Ei,Qa;function Jv(){if(Qa)return Ei;Qa=1;let e=Re(),t=Kv().positionX;Ei=n;function n(o){o=e.asNonCompoundGraph(o),i(o),Object.entries(t(o)).forEach(([s,a])=>o.node(s).x=a)}function i(o){let s=e.buildLayerMatrix(o),a=o.graph().ranksep,l=0;s.forEach(r=>{const u=r.reduce((c,d)=>{const f=o.node(d).height;return c>f?c:f},0);r.forEach(c=>o.node(c).y=l+u/2),l+=u+a})}return Ei}var Si,er;function Qv(){if(er)return Si;er=1;let e=Pv(),t=Rv(),n=Av(),i=Re().normalizeRanks,o=zv(),s=Re().removeEmptyRanks,a=Vv(),l=Bv(),r=Fv(),u=Zv(),c=Jv(),d=Re(),f=Xe().Graph;Si=h;function h(B,z){let F=z&&z.debugTiming?d.time:d.notime;F("layout",()=>{let q=F(" buildLayoutGraph",()=>_(B));F(" runLayout",()=>g(q,F,z)),F(" updateInputGraph",()=>p(B,q))})}function g(B,z,F){z(" makeSpaceForEdgeLabels",()=>k(B)),z(" removeSelfEdges",()=>j(B)),z(" acyclic",()=>e.run(B)),z(" nestingGraph.run",()=>a.run(B)),z(" rank",()=>n(d.asNonCompoundGraph(B))),z(" injectEdgeLabelProxies",()=>x(B)),z(" removeEmptyRanks",()=>s(B)),z(" nestingGraph.cleanup",()=>a.cleanup(B)),z(" normalizeRanks",()=>i(B)),z(" assignRankMinMax",()=>I(B)),z(" removeEdgeLabelProxies",()=>E(B)),z(" normalize.run",()=>t.run(B)),z(" parentDummyChains",()=>o(B)),z(" addBorderSegments",()=>l(B)),z(" order",()=>u(B,F)),z(" insertSelfEdges",()=>K(B)),z(" adjustCoordinateSystem",()=>r.adjust(B)),z(" position",()=>c(B)),z(" positionSelfEdges",()=>J(B)),z(" removeBorderNodes",()=>W(B)),z(" normalize.undo",()=>t.undo(B)),z(" fixupEdgeLabelCoords",()=>H(B)),z(" undoCoordinateSystem",()=>r.undo(B)),z(" translateGraph",()=>G(B)),z(" assignNodeIntersects",()=>C(B)),z(" reversePoints",()=>V(B)),z(" acyclic.undo",()=>e.undo(B))}function p(B,z){B.nodes().forEach(F=>{let q=B.node(F),Q=z.node(F);q&&(q.x=Q.x,q.y=Q.y,q.rank=Q.rank,z.children(F).length&&(q.width=Q.width,q.height=Q.height))}),B.edges().forEach(F=>{let q=B.edge(F),Q=z.edge(F);q.points=Q.points,Object.hasOwn(Q,"x")&&(q.x=Q.x,q.y=Q.y)}),B.graph().width=z.graph().width,B.graph().height=z.graph().height}let m=["nodesep","edgesep","ranksep","marginx","marginy"],b={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},y=["acyclicer","ranker","rankdir","align"],v=["width","height","rank"],w={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],L={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},A=["labelpos"];function _(B){let z=new f({multigraph:!0,compound:!0}),F=ge(B.graph());return z.setGraph(Object.assign({},b,oe(F,m),d.pick(F,y))),B.nodes().forEach(q=>{let Q=ge(B.node(q));const re=oe(Q,v);Object.keys(w).forEach(le=>{re[le]===void 0&&(re[le]=w[le])}),z.setNode(q,re),z.setParent(q,B.parent(q))}),B.edges().forEach(q=>{let Q=ge(B.edge(q));z.setEdge(q,Object.assign({},L,oe(Q,O),d.pick(Q,A)))}),z}function k(B){let z=B.graph();z.ranksep/=2,B.edges().forEach(F=>{let q=B.edge(F);q.minlen*=2,q.labelpos.toLowerCase()!=="c"&&(z.rankdir==="TB"||z.rankdir==="BT"?q.width+=q.labeloffset:q.height+=q.labeloffset)})}function x(B){B.edges().forEach(z=>{let F=B.edge(z);if(F.width&&F.height){let q=B.node(z.v),re={rank:(B.node(z.w).rank-q.rank)/2+q.rank,e:z};d.addDummyNode(B,"edge-proxy",re,"_ep")}})}function I(B){let z=0;B.nodes().forEach(F=>{let q=B.node(F);q.borderTop&&(q.minRank=B.node(q.borderTop).rank,q.maxRank=B.node(q.borderBottom).rank,z=Math.max(z,q.maxRank))}),B.graph().maxRank=z}function E(B){B.nodes().forEach(z=>{let F=B.node(z);F.dummy==="edge-proxy"&&(B.edge(F.e).labelRank=F.rank,B.removeNode(z))})}function G(B){let z=Number.POSITIVE_INFINITY,F=0,q=Number.POSITIVE_INFINITY,Q=0,re=B.graph(),le=re.marginx||0,_e=re.marginy||0;function Se(fe){let me=fe.x,$=fe.y,N=fe.width,P=fe.height;z=Math.min(z,me-N/2),F=Math.max(F,me+N/2),q=Math.min(q,$-P/2),Q=Math.max(Q,$+P/2)}B.nodes().forEach(fe=>Se(B.node(fe))),B.edges().forEach(fe=>{let me=B.edge(fe);Object.hasOwn(me,"x")&&Se(me)}),z-=le,q-=_e,B.nodes().forEach(fe=>{let me=B.node(fe);me.x-=z,me.y-=q}),B.edges().forEach(fe=>{let me=B.edge(fe);me.points.forEach($=>{$.x-=z,$.y-=q}),Object.hasOwn(me,"x")&&(me.x-=z),Object.hasOwn(me,"y")&&(me.y-=q)}),re.width=F-z+le,re.height=Q-q+_e}function C(B){B.edges().forEach(z=>{let F=B.edge(z),q=B.node(z.v),Q=B.node(z.w),re,le;F.points?(re=F.points[0],le=F.points[F.points.length-1]):(F.points=[],re=Q,le=q),F.points.unshift(d.intersectRect(q,re)),F.points.push(d.intersectRect(Q,le))})}function H(B){B.edges().forEach(z=>{let F=B.edge(z);if(Object.hasOwn(F,"x"))switch((F.labelpos==="l"||F.labelpos==="r")&&(F.width-=F.labeloffset),F.labelpos){case"l":F.x-=F.width/2+F.labeloffset;break;case"r":F.x+=F.width/2+F.labeloffset;break}})}function V(B){B.edges().forEach(z=>{let F=B.edge(z);F.reversed&&F.points.reverse()})}function W(B){B.nodes().forEach(z=>{if(B.children(z).length){let F=B.node(z),q=B.node(F.borderTop),Q=B.node(F.borderBottom),re=B.node(F.borderLeft[F.borderLeft.length-1]),le=B.node(F.borderRight[F.borderRight.length-1]);F.width=Math.abs(le.x-re.x),F.height=Math.abs(Q.y-q.y),F.x=re.x+F.width/2,F.y=q.y+F.height/2}}),B.nodes().forEach(z=>{B.node(z).dummy==="border"&&B.removeNode(z)})}function j(B){B.edges().forEach(z=>{if(z.v===z.w){var F=B.node(z.v);F.selfEdges||(F.selfEdges=[]),F.selfEdges.push({e:z,label:B.edge(z)}),B.removeEdge(z)}})}function K(B){var z=d.buildLayerMatrix(B);z.forEach(F=>{var q=0;F.forEach((Q,re)=>{var le=B.node(Q);le.order=re+q,(le.selfEdges||[]).forEach(_e=>{d.addDummyNode(B,"selfedge",{width:_e.label.width,height:_e.label.height,rank:le.rank,order:re+ ++q,e:_e.e,label:_e.label},"_se")}),delete le.selfEdges})})}function J(B){B.nodes().forEach(z=>{var F=B.node(z);if(F.dummy==="selfedge"){var q=B.node(F.e.v),Q=q.x+q.width/2,re=q.y,le=F.x-Q,_e=q.height/2;B.setEdge(F.e,F.label),B.removeNode(z),F.label.points=[{x:Q+2*le/3,y:re-_e},{x:Q+5*le/6,y:re-_e},{x:Q+le,y:re},{x:Q+5*le/6,y:re+_e},{x:Q+2*le/3,y:re+_e}],F.label.x=F.x,F.label.y=F.y}})}function oe(B,z){return d.mapValues(d.pick(B,z),Number)}function ge(B){var z={};return B&&Object.entries(B).forEach(([F,q])=>{typeof F=="string"&&(F=F.toLowerCase()),z[F]=q}),z}return Si}var ki,tr;function ep(){if(tr)return ki;tr=1;let e=Re(),t=Xe().Graph;ki={debugOrdering:n};function n(i){let o=e.buildLayerMatrix(i),s=new t({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{s.setNode(a,{label:a}),s.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>s.setEdge(a.v,a.w,{},a.name)),o.forEach((a,l)=>{let r="layer"+l;s.setNode(r,{rank:"same"}),a.reduce((u,c)=>(s.setEdge(u,c,{style:"invis"}),c))}),s}return ki}var Ci,nr;function tp(){return nr||(nr=1,Ci="1.1.8"),Ci}var Mi,or;function np(){return or||(or=1,Mi={graphlib:Xe(),layout:Qv(),debug:ep(),util:{time:Re().time,notime:Re().notime},version:tp()}),Mi}var op=np();const Ni=Su(op);function ip(){const{findNode:e}=Ie(),t=X(new Ni.graphlib.Graph);function n(i,o){const s=new Ni.graphlib.Graph;t.value=s,s.setDefaultEdgeLabel(()=>({})),s.setGraph({rankdir:"TB"});for(const a of i){const l=e(a.id);l!==void 0&&s.setNode(a.id,{width:l.dimensions.width||250,height:l.dimensions.height||55})}for(const a of o)s.setEdge(a.source,a.target);return Ni.layout(s),i.map(a=>{const l=s.node(a.id);return{...a,targetPosition:ce.Top,sourcePosition:ce.Bottom,position:{x:l.x,y:l.y}}})}return{graph:t,layout:n}}const sp={class:"gap"},ap={key:0,class:"alert alert-info"},rp={key:2,id:"tree-container"},lp={class:"node-text"},up={class:"typeName"},cp={class:"time-sent"},dp={key:1,class:"sagas"},fp=ue({__name:"FlowDiagram",setup(e){const t=He(),{state:n,conversationData:i}=Le(t);async function o(v){return await t.loadConversation(v),i.value.data}class s{id;sagaType;isSagaCompleted;isSagaInitiated;constructor(w,O){const L=r(O,tt.SagaId),A=r(O,tt.OriginatingSagaId);this.id=w.saga_id,this.sagaType=Ii(w.saga_type),this.isSagaCompleted=w.change_status==="Completed",this.isSagaInitiated=L===void 0&&A!==void 0}}class a{id;type;data;position;draggable;constructor(w){this.id=w.id,this.type="message",this.position={x:0,y:0},this.draggable=!1;const O=w.message_intent===Di.Publish,L=r(w,tt.IsSagaTimeoutMessage)?.toLowerCase()==="true",A=w.invoked_sagas??[];w.originates_from_saga&&A.push(w.originates_from_saga),this.data={label:w.message_type,timeSent:w.time_sent,messageId:w.message_id,sendingEndpoint:w.sending_endpoint,receivingEndpoint:w.receiving_endpoint,isError:w.status!==je.Successful&&w.status!==je.ResolvedSuccessfully,sagaInvocations:A.map(_=>new s(_,w)),isPublished:O,isTimeout:L,isEvent:O&&!L,isCommand:!O&&!L,message:w,type:O?"Event message":L?"Timeout message":"Command message"}}}function l(v){const w=new Map;return v.forEach(O=>{w.has(O.id)||w.set(O.id,new a(O))}),Array.from(w.values())}function r(v,w){return v.headers.find(O=>O.key===w)?.value}function u(v){const w=[];for(const O of v){const L=O.data?.message;if(L===void 0)continue;const A=r(L,tt.RelatedTo);if(!A&&A!==L.message_id)continue;let _=v.filter(k=>{const x=k.data?.message;return x===void 0?!1:x.receiving_endpoint!==void 0&&x.sending_endpoint!==void 0&&x.message_id===A&&x.receiving_endpoint.name===L.sending_endpoint.name});switch(_.length===0&&(_=v.filter(k=>{const x=k.data?.message;return x===void 0?!1:x.receiving_endpoint!==void 0&&x.sending_endpoint!==void 0&&x.message_id===A&&x.message_intent!==Di.Publish}),_.length===0&&console.debug(`Fall back to match only on RelatedToMessageId for message with Id '${L.message_id}' matched but link could be invalid.`)),_.length){case 0:console.warn(`No parent could be resolved for the message with Id '${L.message_id}' which has RelatedToMessageId set. This can happen if the parent has been purged due to retention expiration, an ServiceControl node to be unavailable, or because the parent message not been stored (yet).`);break;case 1:break;default:console.warn(`Multiple parents matched for message id '${L.message_id}' possibly due to more-than-once processing, linking to all as it is unknown which processing attempt generated the message.`);break}for(const k of _)w.push(c(k,O))}return w}function c(v,w){return{id:`${v.id}##${w.id}`,source:`${v.id}`,target:`${w.id}`,markerEnd:eo.ArrowClosed,style:{strokeDasharray:w.data?.isPublished?"5, 3":"",strokeWidth:2}}}const d=X([]),f=X([]),{layout:h}=ip(),{fitView:g}=Ie(),p=X(kt.failedMessage.failedMessages.link);Ve(async()=>{const v=yr().currentRoute.value.query.back;if(v&&(p.value=v),!n.value.data.conversation_id)return;const w=await o(n.value.data.conversation_id);d.value=l(w),f.value=u(d.value)});async function m(){d.value=h(d.value,f.value),await nt(()=>{t.state.data.id&&g({nodes:[t.state.data.id],maxZoom:.9})})}const b=Ti("#be514a").filter,y=Ti("#e8e6e8").filter;return(v,w)=>{const O=es("RouterLink"),L=ut("tippy");return S(),D("div",sp,[R(t).conversationData.failed_to_load?(S(),D("div",ap,"FlowDiagram data is unavailable.")):R(t).conversationData.loading?(S(),de(Tt,{key:1})):(S(),D("div",rp,[ee(R(Pm),{nodes:d.value,edges:f.value,"min-zoom":.1,"max-zoom":1.2,"only-render-visible-elements":!0,onNodesInitialized:m},{"node-message":ke(({id:A,data:_})=>[ee(nn,{class:"address",text:`${_.sendingEndpoint.name}@${_.sendingEndpoint.host}`},null,8,["text"]),M("div",{class:Ee(["node",{error:_.isError,"current-message":A===R(t).state.data.id}])},[M("div",lp,[Ne(M("i",{class:Ee(["fa",{"pa-flow-timeout":_.isTimeout,"pa-flow-command":_.isCommand,"pa-flow-event":_.isEvent}]),style:Fe(_.isError&&A===R(t).state.data.id?{filter:R(y)}:{})},null,6),[[L,_.type]]),M("div",up,[_.isError?(S(),de(O,{key:0,to:{path:R(kt).messages.failedMessage.link(A),query:{back:p.value}}},{default:ke(()=>[ee(nn,{style:{width:"204px"},text:_.label,"ellipses-style":"LeftSide"},null,8,["text"])]),_:2},1032,["to"])):(S(),de(O,{key:1,to:{path:R(kt).messages.successMessage.link(_.messageId,A),query:{back:p.value}}},{default:ke(()=>[ee(nn,{style:{width:"204px"},text:_.label,"ellipses-style":"LeftSide"},null,8,["text"])]),_:2},1032,["to"]))]),_.isError?(S(),D("i",{key:0,class:"fa pa-flow-failed",style:Fe(A!==R(t).state.data.id?{filter:R(b)}:{filter:R(y)})},null,4)):U("",!0),M("div",cp,[ee(Jt,{class:"time-since","date-utc":_.timeSent},null,8,["date-utc"])]),_.sagaInvocations.length>0?(S(),D("div",dp,[(S(!0),D(pe,null,ze(_.sagaInvocations,k=>(S(),D("div",{class:"saga",key:k.id},[Ne(M("i",{class:Ee(["fa",{"pa-flow-saga-initiated":k.isSagaInitiated,"pa-flow-saga-completed":!k.isSagaInitiated&&k.isSagaCompleted,"pa-flow-saga-trigger":!k.isSagaInitiated&&!k.isSagaCompleted}])},null,2),[[L,k.isSagaInitiated?"Saga Initiated / Updated":!k.isSagaInitiated&&k.isSagaCompleted?"Saga Completed":"Message originated from Saga"]]),ee(_v,{"saga-type":k.sagaType},null,8,["saga-type"])]))),128))])):U("",!0)])],2),ee(nn,{class:"address",text:`${_.receivingEndpoint.name}@${_.receivingEndpoint.host}`},null,8,["text"])]),default:ke(()=>[ee(R(hv),{"show-interactive":!1,position:"top-left",class:"controls"})]),_:1},8,["nodes","edges"])]))])}}}),hp=$e(fp,[["__scopeId","data-v-21a8bbe8"]]);var vt=(e=>(e[e.Left=0]="Left",e[e.Right=1]="Right",e))(vt||{}),xt=(e=>(e[e.Event=0]="Event",e[e.Command=1]="Command",e[e.Local=2]="Local",e[e.Timeout=3]="Timeout",e))(xt||{});function gp(e,t){return new vp(e,t)}function mp(e){const t=new pp(e);return e.message_intent===Di.Publish?t.type=0:(e.headers.find(o=>o.key===tt.IsSagaTimeoutMessage)?.value?.toLowerCase()??"")==="true"?t.type=3:e.receiving_endpoint.host_id===e.sending_endpoint.host_id&&e.receiving_endpoint.name===e.sending_endpoint.name?t.type=2:t.type=1,t}class vp{name;_fromRoutedMessage;processingHandler;uiRef;constructor(t,n){this._fromRoutedMessage=t,this.processingHandler=n,t&&this.processingHandler&&(this.name=`${n?.name}(${t.id})`),t&&(t.route=this),n&&(n.route=this)}get fromRoutedMessage(){return this._fromRoutedMessage}}class pp{selectedMessage;name;fromHandler;toHandler;route;direction=0;type=1;constructor(t){this.selectedMessage=t,this.name=Xi(t.message_type)??""}get id(){return this.selectedMessage.id}get receiving(){return this.selectedMessage.receiving_endpoint}get sending(){return this.selectedMessage.sending_endpoint}get sentTime(){return this.selectedMessage.time_sent?new Date(this.selectedMessage.time_sent):void 0}get messageId(){return this.selectedMessage.message_id}get status(){return this.selectedMessage.status}}function ir(e){return new Pl(e.receiving_endpoint.name,e.receiving_endpoint.host,e.receiving_endpoint.host_id,e.receiving_endpoint.name===e.sending_endpoint.name&&e.receiving_endpoint.host===e.sending_endpoint.host?e.headers.find(t=>t.key===tt.NServiceBusVersion)?.value:void 0)}function sr(e){return new Pl(e.sending_endpoint.name,e.sending_endpoint.host,e.sending_endpoint.host_id,e.headers.find(t=>t.key===tt.NServiceBusVersion)?.value)}class yp{#e=new Map;register(t){let n=this.#e.get(t.name);n||(n=t,this.#e.set(n.name,n)),t.hosts.forEach(i=>n.addHost(i))}get(t){return this.#e.get(t.name)}}class Pl{_hosts;_name;_handlers=[];uiRef;constructor(t,n,i,o){const s=new _p(n,i,o);this._hosts=new Map([[s.equatableKey,s]]),this._name=t}get name(){return this._name}get hosts(){return[...this._hosts].map(([,t])=>t)}get host(){return[...this._hosts].map(([,t])=>t.host).join(",")}get hostId(){return[...this._hosts].map(([,t])=>t.hostId).join(",")}get handlers(){return[...this._handlers]}get version(){return[...this._hosts].flatMap(([,t])=>t.versions).join(",")}addHost(t){this._hosts.has(t.equatableKey)?this._hosts.get(t.equatableKey).addVersions(t.versions):this._hosts.set(t.equatableKey,t)}addHandler(t){this._handlers.push(t)}}class _p{_host;_hostId;_versions;constructor(t,n,i){this._host=t,this._hostId=n,this._versions=new Set,this.addVersions([i])}get host(){return this._host}get hostId(){return this._hostId}get versions(){return[...this._versions]}get equatableKey(){return`${this._hostId}###${this._host}`}addVersions(t){t.filter(n=>n).forEach(n=>this._versions.add(n.toLowerCase()))}}var St=(e=>(e[e.Fail=0]="Fail",e[e.Success=1]="Success",e[e.Unknown=2]="Unknown",e))(St||{});const ji="First";function wp(e,t){return new Ll(e.headers.find(n=>n.key===tt.RelatedTo)?.value??ji,t)}function bp(e,t){const n=new Ll(e.message_id,t);return Rl(n,e),n}class xp{#e=new Map;storeKey=(t,n)=>`${t}###${n}`;register(t){const n=this.#e.get(this.storeKey(t.id,t.endpoint.name));return n?{handler:n,isNew:!1}:(this.#e.set(this.storeKey(t.id,t.endpoint.name),t),{handler:t,isNew:!0})}}function Rl(e,t){e.processedAt=new Date(t.processed_at);const[n,i,o]=t.processing_time.split(":");switch(e.processingTime=((parseInt(n)*60+parseInt(i))*60+parseFloat(o))*1e3,e.name=t.message_type,e.friendlyName=Xi(t.message_type),(t.invoked_sagas?.length??0)>0&&(e.partOfSaga=t.invoked_sagas.map(s=>Xi(s.saga_type)).join(", ")),t.status){case je.ArchivedFailure:case je.Failed:case je.RepeatedFailure:e.state=0;break;default:e.state=1}}class Ll{_id;_endpoint;_processedAtGuess;_outMessages;name;partOfSaga;inMessage;state=2;processedAt;processingTime;route;uiRef;constructor(t,n){this._id=t,this._endpoint=n,this._outMessages=[]}get id(){return this._id}get endpoint(){return this._endpoint}get isPartOfSaga(){return this.partOfSaga!=null}get handledAt(){return this.processedAt??this._processedAtGuess}get selectedMessage(){return this.route?.fromRoutedMessage?.selectedMessage}get outMessages(){return[...this._outMessages]}get direction(){return this.outMessages[0]?.direction??vt.Right}updateProcessedAt(t){(!this._processedAtGuess||this._processedAtGuess.getTime()>t.getTime())&&(this._processedAtGuess=t)}addOutMessage(t){this._outMessages=[t,...this._outMessages].sort((n,i)=>(n.sentTime?.getTime()??0)-(i.sentTime?.getTime()??0))}}function Xi(e){return e?.split(",")[0].split(".").reverse()[0].replace(/\+/g,".")}class Ep{#e;#n;#t;constructor(t){this.#e=[],this.#t=[];const n=new yp,i=new xp,o=[],s=vs.createTree(t).flatMap(r=>r.walk());for(const r of s)n.register(sr(r));for(const r of s)n.register(ir(r));for(const r of s){const u=n.get(sr(r));this.#e.find(m=>m.name===u?.name)||this.#e.push(u);const c=n.get(ir(r));this.#e.find(m=>m.name===c?.name)||this.#e.push(c);const{handler:d,isNew:f}=i.register(wp(r,u));f&&(o.push(d),u.addHandler(d)),d.updateProcessedAt(new Date(r.time_sent));const{handler:h,isNew:g}=i.register(bp(r,c));g?(o.push(h),c.addHandler(h)):Rl(h,r);const p=mp(r);p.toHandler=h,p.fromHandler=d,this.#t.push(gp(p,h)),h.inMessage=p,d.addOutMessage(p)}const a=o.filter(r=>r.id===ji),l=o.filter(r=>r.id!==ji).sort((r,u)=>(r.handledAt?.getTime()??0)-(u.handledAt?.getTime()??0));this.#n=[...a,...l]}get endpoints(){return[...this.#e]}get handlers(){return[...this.#n]}get routes(){return[...this.#t]}}class vs{#e;#n;#t;static createTree(t){const n=t.map(s=>new vs(s)),i=[],o=new Map(n.map(s=>[s.id,s]));for(const s of n){const a=o.get(s.parent??"");a&&(a.addChild(s),i.push(s))}return n.filter(s=>!i.includes(s))}constructor(t){this.#e=t,this.#n=t.headers.find(n=>n.key===tt.RelatedTo)?.value,this.#t=[]}get id(){return this.#e.message_id}get parent(){return this.#n}get message(){return this.#e}get children(){return[...this.#t]}addChild(t){this.#t.push(t)}walk(){return[this.#e,...this.children.sort((t,n)=>new Date(t.message.processed_at).getTime()-new Date(n.message.processed_at).getTime()).flatMap(t=>t.walk())]}}const At=260,Yt=_r("SequenceDiagramStore",()=>{const e=He(),{state:t,conversationData:n}=Le(e),i=yr(),o=X(At/2),s=X([]),a=X([]),l=X([]),r=X([]),u=X(150),c=X(150),d=X([]),f=X(),h=Z(()=>n.value.loading),g=Z(()=>`${t.value.data.message_type??""}(${t.value.data.id})`);ve(()=>n.value.data,A=>{if(A.length){o.value=At/2;const _=new Ep(A);s.value=_.endpoints,a.value=_.handlers,l.value=_.routes}},{immediate:!0});function p(A){const _=Math.max(A+At/2,o.value);_!==o.value&&(o.value=_)}function m(A){u.value=A}function b(A){c.value=A}function y(A){r.value=A}function v(A){d.value=A}function w(A){f.value=A}function O(){e.state.data.conversation_id&&e.loadConversation(e.state.data.conversation_id)}function L(A,_,k){A!=null&&(!k&&_==null||i.push({path:k?kt.messages.failedMessage.link(A):kt.messages.successMessage.link(_,A)}))}return{startX:o,endpoints:s,handlers:a,routes:l,endpointCentrePoints:r,maxWidth:u,maxHeight:c,handlerLocations:d,highlightId:f,selectedId:g,isLoading:h,setStartX:p,setMaxWidth:m,setMaxHeight:b,setEndpointCentrePoints:y,setHandlerLocations:v,setHighlightId:w,refreshConversation:O,navigateTo:L}}),Sp=["transform"],kp=["transform"],Cp=["transform"],Mp=["width"],Np={class:"endpoint-name"},$p=30,ar=20,Ip=ue({__name:"EndpointsComponent",props:{yOffset:{}},setup(e){const t=Yt(),{startX:n,endpoints:i}=Le(t),o=X([]),s=Z(()=>i.value.map((l,r)=>{const u=l,c=o.value[r];if(c){const d=c.getBoundingClientRect(),f=r>0?s.value[r-1]:void 0;u.width=Math.max(At,d.width),u.textWidth=d.width,u.x=(f?.x??n.value)+(f?.width??0)+$p,u.height=d.height,u.uiRef=c}return u}));ve(s,()=>{t.setEndpointCentrePoints(s.value.map(r=>({name:r.name,centre:r.x??0,top:(r.height??0)+15})));const l=s.value[s.value.length-1];t.setMaxWidth((l.x??0)+l.width)}),ve(n,()=>{o.value=[]});function a(l,r){l&&(o.value[r]=l)}return(l,r)=>(S(),D(pe,null,[M("rect",{width:"100%",height:"15",transform:`translate(0,${e.yOffset})`,fill:"white"},null,8,Sp),(S(!0),D(pe,null,ze(s.value,(u,c)=>(S(),D("g",{key:u.name,transform:`translate(0,${e.yOffset+5})`,style:{outline:"none"}},[M("g",{transform:`translate(${(u.x??R(At)/2)-((u.textWidth??0)+ar)/2}, 0)`},[(S(),D("foreignObject",{x:ar,y:"10",width:R(At),height:"100%",style:{"pointer-events":"none"}},[M("div",{class:"endpoint-surround",ref_for:!0,ref:d=>a(d,c)},[r[0]||(r[0]=M("i",{class:"endpoint-icon"},null,-1)),M("div",Np,ne(u.name),1)],512)],8,Mp))],8,Cp)],8,kp))),128))],64))}}),Tp=$e(Ip,[["__scopeId","data-v-633c7d74"]]),Dp=["d"],Op=ue({__name:"TimelineComponent",setup(e){const t=Yt(),{endpointCentrePoints:n,maxHeight:i}=Le(t);return(o,s)=>(S(!0),D(pe,null,ze(R(n),a=>(S(),D("g",{key:a.name},[a.centre?(S(),D("path",{key:0,d:`M${a.centre} ${a.top} v0 ${R(i)-a.top}`,stroke:"var(--gray90)","stroke-width":"2"},null,8,Dp)):U("",!0)]))),128))}}),Pp=["transform"],Rp=["height","fill","onMouseover","onClick"],Lp=["d","transform"],Ap=["transform","onMouseover","onClick"],zp=40,rr=20,Pn=14,Vp=ue({__name:"HandlersComponent",setup(e){const t=Yt(),{handlers:n,endpointCentrePoints:i,highlightId:o,selectedId:s}=Le(t),a=X([]),l=X(!1),r=X();ou(()=>{l.value=!1,r.value&&d(r.value,s.value)}),ve(s,()=>r.value=void 0);const u=Z(()=>{let f=0;const h=n.value.map((g,p)=>{const m=i.value.find(I=>I.name===g.endpoint.name),b=a.value[p],y=g.outMessages.length,v=(y===0?1:y)*zp;f===0&&(f+=rr+Math.max(0,...i.value.map(I=>I.top)));const w=f;f+=v+rr;const O=g.id==="First"?"black":g.state===St.Fail?"var(--error)":g.route&&g.route.name===s.value?"var(--highlight)":g.route&&g.route.name===o.value?"var(--highlight-background)":"var(--gray60)",L=g.id==="First"?"M0,0L8,4 0,8z":g.state===St.Fail?"M6,0L0,6 6,12 12,6 6,0z M7,9L5,9 5,8 7,8 7,9z M5,7L5,3 7,3 7,7 5,7z":null,A=g.id==="First"?8:g.state===St.Fail?12:0,_=g.direction===vt.Right?((b?.getBBox().width??0)+24)*-1:20,k=(m?.centre??t.startX)-Pn/2,x=(m?.centre??t.startX)+Pn/2;return m?.centre&&k+_<0&&t.setStartX(-1*(k+_)+20),{id:g.id,messageId:{id:g.selectedMessage?.message_id,uniqueId:g.selectedMessage?.id},isError:g.state===St.Fail,endpointName:g.endpoint.name,incomingId:g.route?.name,left:k,right:x,y:w,height:v,fill:O,icon:L,iconSize:A,messageType:g.friendlyName,messageTypeOffset:_,messageTypeHighlight:g.route?.name===o.value,messageTypeSelected:g.route?.name===s.value,setUIRef:I=>g.uiRef=I}});return t.setMaxHeight(f),t.setHandlerLocations(h.map(g=>({id:g.id,endpointName:g.endpointName,left:g.left,right:g.right,y:g.y,height:g.height}))),h});function c(f,h){f&&(a.value[h]=f)}function d(f,h){!l.value&&f&&h===s.value&&(l.value=!0,r.value=f,setTimeout(()=>r.value.scrollIntoView(!1),30))}return(f,h)=>(S(!0),D(pe,null,ze(u.value,(g,p)=>(S(),D("g",{key:`${g.id}###${g.endpointName}`,ref_for:!0,ref:m=>d(m,g.incomingId),transform:`translate(${g.left}, ${g.y})`},[M("g",{ref_for:!0,ref:m=>g.setUIRef(m),class:"activation-box"},[M("rect",{width:Pn,height:g.height,class:Ee({clickable:g.incomingId&&!g.messageTypeSelected}),fill:g.fill,onMouseover:()=>R(t).setHighlightId(g.incomingId),onMouseleave:h[0]||(h[0]=()=>R(t).setHighlightId()),onClick:m=>g.incomingId&&!g.messageTypeSelected&&R(t).navigateTo(g.messageId.uniqueId,g.messageId.id,g.isError)},null,42,Rp),g.icon?(S(),D("path",{key:0,d:g.icon,fill:"white",transform:`translate(${Pn/2-g.iconSize/2}, ${g.height/2-g.iconSize/2})`},null,8,Lp)):U("",!0)],512),g.messageType?(S(),D("g",{key:0,transform:`translate(${g.messageTypeOffset}, 4)`,class:Ee({clickable:!g.messageTypeSelected,"message-type":!0,highlight:g.messageTypeHighlight||g.messageTypeSelected}),onMouseover:()=>R(t).setHighlightId(g.incomingId),onMouseleave:h[1]||(h[1]=()=>R(t).setHighlightId()),onClick:m=>g.incomingId&&!g.messageTypeSelected&&R(t).navigateTo(g.messageId.uniqueId,g.messageId.id,g.isError)},[h[2]||(h[2]=M("path",{d:"M9,3L9,3 9,0 0,0 0,3 4,3 4,6 0,6 0,9 4,9 4,12 0,12 0,15 9,15 9,12 5,12 5,9 9,9 9,6 5,6 5,3z"},null,-1)),M("text",{x:"14",y:"0","dominant-baseline":"text-before-edge",ref_for:!0,ref:m=>c(m,p)},ne(g.messageType),513)],42,Ap)):U("",!0)],8,Pp))),128))}}),Bp=$e(Vp,[["__scopeId","data-v-ca20b396"]]),Fp={key:0},Hp=["d","stroke-dasharray"],Gp=["d"],qp=["d"],Yp=["transform"],Wp=["d"],Up=["d"],jp=["transform","onMouseover","onClick"],Xp=["width","height"],Zp={key:0,d:"M21.8 18.5H14V10h2.5v6h5.3L21.8 18.5L21.8 18.5z M25.1 24.4c2-2.2 3.2-5.1 3.2-8.3 c0-6.8-5.5-12.3-12.3-12.3C9.2 3.7 3.7 9.2 3.7 16.1c0 3.2 1.2 6.1 3.2 8.3c-0.6 1.5-1.4 3.6-2 4.9c-0.1 0.2 0 0.4 0.2 0.6 c0.2 0.1 0.4 0.2 0.6 0c1.3-0.8 3.1-2.1 4.5-3c1.7 0.9 3.7 1.5 5.9 1.5s4.1-0.5 5.9-1.5l4.5 3c0.2 0.1 0.4 0.1 0.6 0 c0.2-0.1 0.2-0.4 0.2-0.6L25.1 24.4z M16 25.3c-5.1 0-9.3-4.1-9.3-9.3c0-5.1 4.1-9.3 9.3-9.3c5.1 0 9.3 4.1 9.3 9.3 C25.3 21.2 21.1 25.3 16 25.3z M10.5 2.8C9.6 2.3 8.6 2 7.6 2C4.5 2 2 4.5 2 7.6c0 1 0.3 2 0.8 2.8C4.2 7 7 4.2 10.5 2.8z M29.2 10.4C29.7 9.6 30 8.6 30 7.6C30 4.5 27.5 2 24.4 2c-1 0-2 0.3-2.9 0.8C25 4.2 27.8 7 29.2 10.4z"},Kp={key:1,d:"M 0 2 M 27.8 29.8 M 0 15.9 A 5.2 5.2 90 1 1 10.4 15.9 A 5.2 5.2 90 1 1 0 15.9 M 12.1 13.3 v 5.2 h 8.7 v 1.8 L 27.8 15.9 L 20.8 11.6 v 1.8 M 11.9 19 L 8.3 22.6 L 14.3 28.8 L 13.1 30 L 21.2 31.9 L 19.3 23.9 L 18.1 25.1 M 8.3 9.1 L 11.9 12.9 L 18.1 6.7 L 19.3 7.9 L 21.2 0 L 13.1 1.9 L 14.3 3.1"},Jp={key:2,d:"M 0,0 M 32,32 M 0,16 A 6,6 0 1 1 12,16 A 6,6 0 1 1 0,16 M 14,13 v6 h10 v2 L32,16 L24,11 v2 z"},Qp={key:3,d:"M 32 6 h -14 v 4 h 10 v 14 H 16 V 19.6 L 4 26 l 12 6.4 V 28 h 16 V 6 z M 16 8.2 C 16 11.4 13.4 14 10 14 S 4 11.4 4 8.2 S 6.6 2 10 2 S 16 4.8 16 8 z"},e0=["x"],$i=10,Ye=4,t0=ue({__name:"RoutesComponent",setup(e){const t=Yt(),{selectedId:n,routes:i,handlerLocations:o,highlightId:s}=Le(t),a=X([]),l=Z(()=>i.value.map((u,c)=>{if(!u.name)return;const d=u.fromRoutedMessage?.fromHandler;if(!d)return;const f=o.value.find(A=>A.id===d.id&&A.endpointName===d.endpoint.name);if(!f)return;const h=o.value.find(A=>A.id===u.fromRoutedMessage?.toHandler?.id&&A.endpointName===u.fromRoutedMessage?.receiving.name);if(!h)return;const p=a.value[c]?.getBBox(),m=d.outMessages.findIndex(A=>u.fromRoutedMessage?.messageId===A.messageId&&u.fromRoutedMessage?.receiving.name===A.receiving.name)+1,b=f.y+f.height/(d.outMessages.length+1)*m,y=h.left+(h.right-h.left)/2,[v,w,O,L]=f.left===h.left?[vt.Right,15+$i,f.right,y+45]:f.leftu.uiRef=A}}));function r(u,c){u&&(a.value[c]=u)}return(u,c)=>(S(!0),D(pe,null,ze(l.value,(d,f)=>(S(),D(pe,{key:d?.id},[d!=null?(S(),D("g",Fp,[M("g",null,[M("path",{d:`M${d.fromX} ${d.y} h${d.width}`,"stroke-width":"3.5",stroke:"black","stroke-dasharray":d.type===R(xt).Event?"12 8":void 0},null,8,Hp),d.direction===R(vt).Right?(S(),D("path",{key:0,d:`M${d.fromX+d.width} ${d.y-7.5} l10 7.5 -10,7.5z`,fill:"black"},null,8,Gp)):U("",!0),d.direction===R(vt).Left?(S(),D("path",{key:1,d:`M${d.toHandlerCentre+1} ${d.y} l10,-7.5 0,15z`,fill:"black"},null,8,qp)):U("",!0)]),d.highlight||d.selected?(S(),D("g",{key:0,transform:`translate(${d.toHandlerCentre},${d.y})`,stroke:"var(--highlight)",fill:"var(--highlight)"},[M("path",{d:`M0 0 v${d.height-6}`,"stroke-width":"2"},null,8,Wp),M("path",{d:`M0 ${d.height} l-3,-6 6,0z`},null,8,Up)],8,Yp)):U("",!0),M("g",{class:Ee({clickable:!d.selected,"message-type":!0,highlight:d.highlight,selected:d.selected}),transform:`translate(${d.messageTypeOffset}, ${d.y-7.5-Ye})`,onMouseover:()=>R(t).setHighlightId(d.id),onMouseleave:c[0]||(c[0]=()=>R(t).setHighlightId()),onClick:h=>!d.selected&&R(t).navigateTo(d.messageId.uniqueId,d.messageId.id,d.isHandlerError),ref_for:!0,ref:h=>d.setUIRef(h)},[(d.highlight||d.selected)&&d.messageTypeOffset?(S(),D("rect",{key:0,width:(d.highlightTextWidth??0)+19+Ye+Ye,height:(d.highlightTextHeight??0)+Ye+Ye,class:"border"},null,8,Xp)):U("",!0),(S(),D("svg",{x:Ye,y:Ye,width:"15",height:"15",viewBox:"0 0 32 32"},[d.type===R(xt).Timeout?(S(),D("path",Zp)):d.type===R(xt).Event?(S(),D("path",Kp)):d.type===R(xt).Command?(S(),D("path",Jp)):d.type===R(xt).Local?(S(),D("path",Qp)):U("",!0)])),M("text",{x:15+Ye+Ye,y:Ye,"dominant-baseline":"text-before-edge",ref_for:!0,ref:h=>r(h,f)},ne(d.messageType),9,e0)],42,jp)])):U("",!0)],64))),128))}}),n0=$e(t0,[["__scopeId","data-v-a6abb6dc"]]),o0={class:"endpoint-tooltip"},i0=ue({__name:"EndpointTooltip",props:{endpoint:{}},setup(e){return(t,n)=>(S(),D("div",o0,[n[0]||(n[0]=M("label",null,"Name:",-1)),M("span",null,ne(e.endpoint.name),1),n[1]||(n[1]=M("label",null,"NSB Version:",-1)),M("span",null,ne(e.endpoint.version),1),n[2]||(n[2]=M("label",null,"Host:",-1)),M("span",null,ne(e.endpoint.host),1)]))}}),s0={key:0},a0={key:1,class:"handler-tooltip"},r0={class:"details"},l0={key:0},u0={key:1},c0=ue({__name:"HandlerTooltip",props:{handler:{}},setup(e){function t(n){const i=iu(n);return`${i.value} ${i.unit}`}return(n,i)=>e.handler.id==="First"?(S(),D("div",s0,"Start of Conversation")):(S(),D("div",a0,[i[2]||(i[2]=M("div",{class:"title"},"Processing of Message",-1)),M("div",r0,[i[0]||(i[0]=M("label",null,"Processing Time:",-1)),M("span",null,ne(t(e.handler.processingTime??0)),1),i[1]||(i[1]=M("label",null,"Processing Of:",-1)),M("span",null,ne(e.handler.friendlyName),1),e.handler.partOfSaga?(S(),D("label",l0,"Sagas Invoked:")):U("",!0),e.handler.partOfSaga?(S(),D("span",u0,ne(e.handler.partOfSaga),1)):U("",!0)])]))}}),d0={class:"route-tooltip"},f0={class:"title"},h0={class:"details"},g0=ue({__name:"RouteTooltip",props:{routedMessage:{}},setup(e){return(t,n)=>(S(),D("div",d0,[M("div",f0,ne(R(xt)[e.routedMessage.type]),1),M("div",h0,[n[0]||(n[0]=M("label",null,"Message Type:",-1)),M("span",null,ne(e.routedMessage.name),1),n[1]||(n[1]=M("label",null,"Message Id:",-1)),M("span",null,ne(e.routedMessage.messageId),1),n[2]||(n[2]=M("label",null,"Sent From:",-1)),M("span",null,ne(`${e.routedMessage.sending.name}@${e.routedMessage.sending.host}`),1),n[3]||(n[3]=M("label",null,"Sent To:",-1)),M("span",null,ne(`${e.routedMessage.receiving.name}@${e.routedMessage.receiving.host}`),1)])]))}});function m0(){const e=Yt(),{endpoints:t,handlers:n,routes:i}=Le(e);ve(()=>t.value.map(o=>o.uiRef),()=>t.value.filter(o=>o.uiRef).forEach(o=>xo(o.uiRef,{interactive:!0,appendTo:()=>document.body,content:Ce(i0,{endpoint:o}),placement:"bottom",delay:[800,null]}))),ve(()=>n.value.map(o=>o.uiRef),()=>n.value.filter(o=>o.uiRef&&o.state!==St.Unknown).forEach(o=>xo(o.uiRef,{interactive:!0,appendTo:()=>document.body,content:Ce(c0,{handler:o}),delay:[800,null]}))),ve(()=>i.value.map(o=>o.uiRef),()=>i.value.filter(o=>o.uiRef&&o.fromRoutedMessage).forEach(o=>xo(o.uiRef,{interactive:!0,appendTo:()=>document.body,content:Ce(g0,{routedMessage:o.fromRoutedMessage}),delay:[800,null],maxWidth:400})))}const v0={class:"wrapper"},p0={class:"toolbar"},y0={class:"help-link",target:"_blank",href:"https://docs.particular.net/servicepulse/sequence-diagram"},_0=["height"],w0=ue({__name:"SequenceDiagram",setup(e){const t=Yt(),{maxWidth:n,maxHeight:i,isLoading:o}=Le(t),s=X(0);return m0(),Ve(()=>t.refreshConversation()),(a,l)=>(S(),D("div",v0,[M("div",p0,[M("a",y0,[ee(Ge,{icon:R(su)},null,8,["icon"]),l[1]||(l[1]=ye(" Sequence Diagram Help",-1))])]),R(o)?(S(),de(Tt,{key:0})):U("",!0),M("div",{class:"outer",onScroll:l[0]||(l[0]=r=>s.value=r.target.scrollTop)},[(S(),D("svg",{class:"sequence-diagram",style:Fe({width:`max(100%, ${isNaN(R(n))?0:R(n)}px)`}),height:R(i)+20},[ee(Op),ee(Bp),ee(n0),ee(Tp,{yOffset:s.value},null,8,["yOffset"])],12,_0))],32)]))}}),b0=$e(w0,[["__scopeId","data-v-08fe5d80"]]);function ps(e){if(e===void 0)return{isSupported:!1};if(e=e.split(";")[0].trim(),e==="application/json")return{isSupported:!0,language:"json"};if(e==="text/xml")return{isSupported:!0,language:"xml"};if(e.startsWith("text/"))return{isSupported:!0};if(e==="application/xml")return{isSupported:!0,language:"xml"};if(e.startsWith("application/")){if(e.endsWith("+json"))return{isSupported:!0,language:"json"};if(e.endsWith("+xml"))return{isSupported:!0,language:"xml"}}return{isSupported:!1}}const x0={class:"gap"},E0={key:0,class:"alert alert-info"},S0={key:1,class:"alert alert-info"},k0={key:3,class:"alert alert-info"},C0={key:5,class:"alert alert-warning"},M0=ue({__name:"BodyView",setup(e){const t=He(),{body:n,state:i}=Le(t);ve(()=>i.value.data.body_url,async()=>{await t.downloadBody()},{immediate:!0});const o=Z(()=>ps(n.value.data.content_type)),s=Z(()=>n.value.data.value);return(a,l)=>(S(),D("div",x0,[R(n).not_found?(S(),D("div",E0,"Could not find the message body. This could be because the message URL is invalid or the corresponding message was processed and is no longer tracked by ServiceControl.")):R(n).failed_to_load?(S(),D("div",S0,"Message body unavailable.")):R(n).loading?(S(),de(Tt,{key:2})):R(n).data.no_content?(S(),D("div",k0,[...l[0]||(l[0]=[ye(" Body was too large and not stored. Edit ",-1),M("a",{href:"https://docs.particular.net/servicecontrol/audit-instances/configuration#performance-tuning-servicecontrol-auditmaxbodysizetostore"},"ServiceControl/MaxBodySizeToStore",-1),ye(" to be larger in the ServiceControl configuration. ",-1)])])):s.value!==void 0&&o.value.isSupported?(S(),de(Wn,{key:4,"model-value":s.value,language:o.value.language,"read-only":!0,"show-gutter":!0},null,8,["model-value","language"])):s.value&&!o.value.isSupported?(S(),D("div",C0,'Message body cannot be displayed because content type "'+ne(R(n).data.content_type)+'" is not supported.',1)):U("",!0)]))}}),N0=$e(M0,[["__scopeId","data-v-56356db9"]]),$0={class:"wrapper"},I0={class:"filters"},T0={class:"text-search-container"},D0={class:"text-search"},O0={key:0,class:"header-list"},P0={class:"header-key"},R0=["onMouseover","onMouseleave"],L0={class:"removeBootStrap"},A0={class:"clippy-button"},z0={key:0,class:"alert alert-warning"},V0={key:1,class:"alert alert-info"},B0=ue({__name:"HeadersView",setup(e){const{headers:t}=Le(He()),n=X({}),i=X(""),o=(a,l)=>{n.value[a]=l},s=Z(()=>i.value?t.value.data.filter(a=>a.key.toLowerCase().includes(i.value.toLowerCase())||a.value?.toLowerCase().includes(i.value.toLowerCase())):t.value.data);return(a,l)=>(S(),D(pe,null,[M("div",$0,[M("div",I0,[M("div",T0,[M("div",D0,[ee(au,{modelValue:i.value,"onUpdate:modelValue":l[0]||(l[0]=r=>i.value=r),"aria-label":"Search for a header key or value",placeholder:"Search for a header key or value..."},null,8,["modelValue"])])])]),s.value.length>0&&!R(t).not_found?(S(),D("div",O0,[(S(!0),D(pe,null,ze(s.value,(r,u)=>(S(),D(pe,{key:u},[M("div",P0,ne(r.key),1),M("div",{class:"header-value",onMouseover:c=>o(u,!0),onMouseleave:c=>o(u,!1)},[M("pre",L0,ne(r.value),1),M("div",A0,[r.value&&n.value[u]?(S(),de(os,{key:0,value:r.value,isIconOnly:!0},null,8,["value"])):U("",!0)])],40,R0)],64))),128))])):U("",!0)]),s.value.length<=0&&!R(t).not_found?(S(),D("div",z0,"No headers found matching the search term.")):U("",!0),R(t).not_found?(S(),D("div",V0,"Could not find message headers. This could be because the message URL is invalid or the corresponding message was processed and is no longer tracked by ServiceControl.")):U("",!0)],64))}}),F0=$e(B0,[["__scopeId","data-v-32199ab1"]]),H0={class:"stack-trace-container"},G0={key:0},q0={key:1},Y0={key:0},W0=ue({__name:"StacktraceFormatter",props:{stackTrace:{},options:{default:()=>({frame:"st-frame",type:"st-type",method:"st-method",paramsList:"st-frame-params",paramType:"st-param-type",paramName:"st-param-name",file:"st-file",line:"st-line"})}},setup(e){const t=e,n=[{name:"english",at:"at",in:"in",line:"line"},{name:"danish",at:"ved",in:"i",line:"linje"},{name:"german",at:"bei",in:"in",line:"Zeile"},{name:"spanish",at:"en",in:"en",line:"línea"},{name:"russian",at:"в",in:"в",line:"строка"},{name:"chinese",at:"在",in:"位置",line:"行号"}],i=X([]),o=X(n[0]),s=r=>{const u={english:/\s+at .*?\)/g,danish:/\s+ved .*?\)/g,german:/\s+bei .*?\)/g,spanish:/\s+en .*?\)/g,russian:/\s+в .*?\)/g,chinese:/\s+在 .*?\)/g},c=[];for(const d in u)if(u[d].test(r)){const f=n.find(h=>h.name===d);f&&c.push(f)}return c},a=(r,u)=>{const c=r.split(` +`),d=new RegExp(`${u.in} (.+):${u.line} (\\d+)`),f=new RegExp(`(\\s*)(${u.at}) (.+?)\\((.*?)\\)`);return c.map(h=>{const g=h.match(f);if(g){const[,p,,m,b]=g,[y,v]=(()=>{const _=m.split("."),k=_.pop()??"";return[_.join("."),k]})(),w=b.split(", ").map(_=>{const[k,x]=_.split(" ");return{name:x,type:k}}),O=h.match(d);let L,A;return O&&([,L,A]=O),{method:v,type:y,params:w,file:L,lineNumber:A,spaces:p}}else return h})},l=()=>{const r=t.stackTrace,u=s(r);if(!u.length){i.value=[r];return}o.value=u[0],i.value=a(r,o.value)};return ve(()=>t.stackTrace,()=>{l()},{immediate:!0}),(r,u)=>(S(),D("div",H0,[(S(!0),D(pe,null,ze(i.value,c=>(S(),D(pe,{key:c},[typeof c=="string"?(S(),D("span",G0,ne(c),1)):(S(),D("div",q0,[ye(ne(c.spaces)+ne(o.value.at)+" ",1),M("span",{class:Ee(t.options.frame)},[M("span",{class:Ee(t.options.type)},ne(c.type),3),u[1]||(u[1]=ye(".",-1)),M("span",{class:Ee(t.options.method)},ne(c.method),3),u[2]||(u[2]=ye("(",-1)),M("span",{class:Ee(t.options.paramsList)},[(S(!0),D(pe,null,ze(c.params,(d,f)=>(S(),D(pe,{key:d.name},[M("span",{class:Ee(t.options.paramType)},ne(d.type),3),u[0]||(u[0]=ye()),M("span",{class:Ee(t.options.paramName)},ne(d.name),3),f!==c.params.length-1?(S(),D("span",Y0,", ")):U("",!0)],64))),128))],2),u[3]||(u[3]=ye(") ",-1))],2),c.file?(S(),D(pe,{key:0},[ye(ne(o.value.in)+" ",1),M("span",{class:Ee(t.options.file)},ne(c.file),3),ye(":"+ne(o.value.line)+" ",1),M("span",{class:Ee(t.options.line)},ne(c.lineNumber),3)],64)):U("",!0)]))],64))),128))]))}}),U0=$e(W0,[["__scopeId","data-v-6c9404a0"]]),j0={key:0,class:"alert alert-info"},X0={key:2,class:"wrapper"},Z0={class:"toolbar"},K0=ue({__name:"StacktraceView",setup(e){const{state:t}=Le(He());return(n,i)=>R(t).failed_to_load?(S(),D("div",j0,"Stacktrace not available.")):R(t).loading?(S(),de(Tt,{key:1})):(S(),D("div",X0,[M("div",Z0,[ee(os,{class:"clipboard",value:R(t).data.failure_metadata.exception?.stack_trace},null,8,["value"])]),ee(U0,{"stack-trace":R(t).data.failure_metadata.exception?.stack_trace},null,8,["stack-trace"])]))}}),J0=$e(K0,[["__scopeId","data-v-02973870"]]),Q0=ue({__name:"DeleteMessageButton",setup(e){const t=He(),{state:n}=Le(t),i=X(!1),o=Z(()=>n.value.data.failure_status),s=Z(()=>o.value.retried||o.value.resolved),a=Z(()=>!o.value.archived&&n.value.data.status!==je.Successful&&n.value.data.status!==je.ResolvedSuccessfully),l=async()=>{i.value=!1;const r=`Deleting the message ${n.value.data.id} ...`;await uo(t.archiveMessage,_n.INFO,"Info",r),await t.pollForNextUpdate(ln.Archived)};return(r,u)=>a.value?(S(),D(pe,{key:0},[ee(yn,{icon:R(Yn),disabled:s.value,onClick:u[0]||(u[0]=c=>i.value=!0)},{default:ke(()=>[...u[2]||(u[2]=[ye("Delete message",-1)])]),_:1},8,["icon","disabled"]),(S(),de(lo,{to:"#modalDisplay"},[i.value?(S(),de(ts,{key:0,onCancel:u[1]||(u[1]=c=>i.value=!1),onConfirm:l,heading:"Are you sure you want to delete this message?",body:"If it is deleted, this message won't be available for retrying unless it is later restored."})):U("",!0)]))],64)):U("",!0)}}),ey=ue({__name:"RestoreMessageButton",setup(e){const t=He(),{state:n}=Le(t),i=X(!1),o=Z(()=>n.value.data.failure_status.archived),s=async()=>{i.value=!1;const a=`Restoring the message ${n.value.data.id} ...`;await uo(t.restoreMessage,_n.INFO,"Info",a),await t.pollForNextUpdate(ln.Unresolved)};return(a,l)=>o.value?(S(),D(pe,{key:0},[ee(yn,{icon:R(ns),onClick:l[0]||(l[0]=r=>i.value=!0)},{default:ke(()=>[...l[2]||(l[2]=[ye("Restore",-1)])]),_:1},8,["icon"]),(S(),de(lo,{to:"#modalDisplay"},[i.value?(S(),de(ts,{key:0,onCancel:l[1]||(l[1]=r=>i.value=!1),onConfirm:s,heading:"Are you sure you want to restore this message?",body:"The restored message will be moved back to the list of failed messages."})):U("",!0)]))],64)):U("",!0)}}),ty=ue({__name:"RetryMessageButton",setup(e){const t=He(),{state:n}=Le(t),i=X(!1),o=Z(()=>n.value.data.failure_status),s=Z(()=>o.value.retried||o.value.archived||o.value.resolved),a=Z(()=>n.value.data.status!==je.Successful&&n.value.data.status!==je.ResolvedSuccessfully),l=async()=>{i.value=!1;const r=`Retrying the message ${n.value.data.id} ...`;await uo(t.retryMessage,_n.INFO,"Info",r),await t.pollForNextUpdate(ln.Resolved)};return(r,u)=>a.value?(S(),D(pe,{key:0},[ee(yn,{icon:R(ru),disabled:s.value,onClick:u[0]||(u[0]=c=>i.value=!0)},{default:ke(()=>[...u[2]||(u[2]=[ye("Retry message",-1)])]),_:1},8,["icon","disabled"]),(S(),de(lo,{to:"#modalDisplay"},[i.value?(S(),de(ts,{key:0,onCancel:u[1]||(u[1]=c=>i.value=!1),onConfirm:l,heading:"Retry Message",body:"Are you sure you want to retry this message?"})):U("",!0)]))],64)):U("",!0)}}),ny={nowrap:"nowrap"},oy=["disabled"],iy={class:"actions"},sy=ue({__name:"EditMessageHeader",props:{header:{}},setup(e){const t=e;let n;const i=X(t.header),o=Z(()=>t.header.value);ve(o,l=>{i.value.isChanged=l!==n});function s(){i.value.value=n,i.value.isMarkedAsRemoved=!1,i.value.isChanged=!1}function a(){i.value.isMarkedAsRemoved=!0,i.value.isChanged=!0}return Ve(()=>{n=t.header.value}),(l,r)=>{const u=ut("tippy");return S(),D(pe,null,[M("td",ny,[M("span",{class:Ee({"header-removed":i.value.isMarkedAsRemoved})},ne(t.header.key),3),i.value.isLocked?Ne((S(),de(Ge,{key:0,icon:R(lu),class:"icon"},null,8,["icon"])),[[u,"Protected system header"]]):U("",!0),(i.value.isChanged||i.value.isMarkedAsRemoved)&&i.value.isSensitive?Ne((S(),de(Ge,{key:1,icon:R(Oi),class:"icon warning",size:"lg"},null,8,["icon"])),[[u,"This is a sensitive message header that if changed can the system behavior. Proceed with caution."]]):U("",!0),i.value.isChanged?Ne((S(),de(Ge,{key:2,icon:R(wr),class:"icon edit"},null,8,["icon"])),[[u,"Edited"]]):U("",!0)]),M("td",null,[Ne(M("input",{class:Ee([{"header-removed":i.value.isMarkedAsRemoved},"form-control"]),disabled:i.value.isLocked,"onUpdate:modelValue":r[0]||(r[0]=c=>i.value.value=c)},null,10,oy),[[uu,i.value.value]])]),M("td",null,[M("div",iy,[!i.value.isLocked&&!i.value.isMarkedAsRemoved?(S(),D("a",{key:0,onClick:r[1]||(r[1]=c=>a())},[Ne(ee(Ge,{icon:R(Yn),class:"remove"},null,8,["icon"]),[[u,"Remove header"]])])):U("",!0),i.value.isChanged?(S(),D("a",{key:1,onClick:r[2]||(r[2]=c=>s())},[Ne(ee(Ge,{icon:R(ns),class:"undo"},null,8,["icon"]),[[u,"Reset changes"]])])):U("",!0)])])],64)}}}),ay=$e(sy,[["__scopeId","data-v-666f7d52"]]),ry={name:"failed_message_editor"},ly={class:"model modal-msg-editor",style:{"z-index":"1050",display:"block"},role:"dialog","aria-label":"edit and retry message"},uy={class:"modal-mask"},cy={class:"modal-dialog"},dy={class:"modal-content"},fy={class:"modal-body"},hy={class:"row"},gy={class:"col-sm-12"},my={class:"row msg-editor-tabs"},vy={class:"col-sm-12 no-side-padding"},py={role:"tablist",class:"tabs msg-tabs"},yy={class:"row msg-editor-content"},_y={class:"col-sm-12 no-side-padding"},wy={key:0,class:"alert alert-warning"},by={class:"col-sm-12"},xy={key:1,class:"alert alert-warning"},Ey={role:"status","aria-label":"cannot edit message body",class:"col-sm-12"},Sy={key:2,class:"row alert alert-danger"},ky={class:"col-sm-12"},Cy={key:3,role:"tabpanel",class:"table"},My={key:0,role:"tabpanel"},Ny={style:{"margin-top":"1.25rem"}},$y={key:0,class:"empty-error"},Iy={key:1,role:"tabpanel",class:"alert alert-info"},Ty={key:0,class:"modal-footer"},Dy=["disabled"],Oy={key:1,class:"modal-footer cancel-confirmation"},Py={key:2,class:"modal-footer edit-retry-confirmation"},Ry=ue({__name:"EditRetryDialog",emits:["cancel","confirm"],setup(e,{emit:t}){const n=t,i=X(0),o=X({isBodyChanged:!1,isBodyEmpty:!1,isContentTypeSupported:!1,bodyContentType:void 0,bodyUnavailable:!1,isEvent:!1,retried:!1,headers:[],messageBody:""}),s=X(!1),a=X(!1),l=X(!1),r=He(),{state:u,headers:c,body:d,edit_and_retry_config:f}=Le(r),h=Z(()=>u.value.data.id??""),g=Z(()=>d.value.data.value??""),p=new RegExp(/[\n\r]*/,"g"),m=cu(k=>{const x=k.replaceAll(p,"");o.value.isBodyChanged=x!==g.value.replaceAll(p,""),o.value.isBodyEmpty=x===""},100);ve(()=>o.value.messageBody,k=>{m(k)});function b(){n("cancel")}function y(){s.value=!0}function v(){if(o.value.isBodyChanged){a.value=!0;return}if(o.value.headers.some(k=>k.isChanged)){a.value=!0;return}b()}function w(){o.value.messageBody=g.value,o.value.isBodyChanged=!1}function O(){o.value.headers=o.value.headers.filter(k=>!k.isMarkedAsRemoved)}async function L(){O();try{return await r.retryEditedMessage(h.value,o),o.value.retried=!0,n("confirm")}catch{s.value=!1,l.value=!0}}function A(){function k(C){return x.headers.find(V=>V.key===C)?.value}const x={isBodyChanged:!1,isBodyEmpty:!1,isContentTypeSupported:!1,bodyContentType:void 0,bodyUnavailable:d.value.not_found??!1,isEvent:!1,retried:u.value.data.failure_status.retried??!1,headers:c.value.data.map(C=>({...C})),messageBody:d.value.data.value??""},I=k("NServiceBus.ContentType");x.bodyContentType=I;const E=ps(I);x.isContentTypeSupported=E.isSupported,x.language=E.language;const G=k("NServiceBus.MessageIntent");x.isEvent=G==="Publish";for(let C=0;C{_(1),A()}),(k,x)=>(S(),D("section",ry,[M("div",ly,[M("div",uy,[M("div",cy,[M("div",dy,[x[17]||(x[17]=M("div",{class:"modal-header"},[M("div",{class:"modal-title"},[M("h3",null,"Edit and retry message")])],-1)),M("div",fy,[M("div",hy,[M("div",gy,[M("div",my,[M("div",vy,[M("div",py,[M("h5",{role:"tab",class:Ee([{active:i.value===1},"nav-item"]),onClick:x[0]||(x[0]=un(I=>_(1),["prevent"]))},[...x[9]||(x[9]=[M("a",{href:"#"},"Headers",-1)])],2),M("h5",{role:"tab",class:Ee([{active:i.value===2},"nav-item"]),onClick:x[1]||(x[1]=un(I=>_(2),["prevent"]))},[...x[10]||(x[10]=[M("a",{href:"#"},"Message body",-1)])],2)])])]),M("div",yy,[M("div",_y,[o.value.isEvent?(S(),D("div",wy,[M("div",by,[ee(Ge,{icon:R(_s)},null,8,["icon"]),x[11]||(x[11]=ye(" This message is an event. If it was already successfully handled by other subscribers, editing it now has the risk of changing the semantic meaning of the event and may result in altering the system behavior. ",-1))])])):U("",!0),!o.value.isContentTypeSupported||o.value.bodyUnavailable?(S(),D("div",xy,[M("div",Ey,[ee(Ge,{icon:R(_s)},null,8,["icon"]),ye(' Message body cannot be edited because content type "'+ne(o.value.bodyContentType)+'" is not supported. Only messages with content types "application/json" and "text/xml" can be edited. ',1)])])):U("",!0),l.value?(S(),D("div",Sy,[M("div",ky,[ee(Ge,{icon:R(Oi),class:"error"},null,8,["icon"]),x[12]||(x[12]=ye(" An error occurred while retrying the message, please check the ServiceControl logs for more details on the failure.",-1))])])):U("",!0),i.value===1?(S(),D("table",Cy,[M("tbody",null,[(S(!0),D(pe,null,ze(o.value.headers,I=>(S(),D("tr",{class:"interactiveList",key:I.key},[ee(ay,{header:I},null,8,["header"])]))),128))])])):U("",!0),i.value===2?(S(),D(pe,{key:4},[o.value.bodyUnavailable?(S(),D("div",Iy,ne(o.value.bodyUnavailable),1)):(S(),D("div",My,[M("div",Ny,[R(d).loading?(S(),de(Tt,{key:0})):(S(),de(Wn,{key:1,"aria-label":"message body","read-only":!o.value.isContentTypeSupported,modelValue:o.value.messageBody,"onUpdate:modelValue":x[2]||(x[2]=I=>o.value.messageBody=I),language:o.value.language,"show-gutter":!0},{toolbarLeft:ke(()=>[o.value.isBodyEmpty?(S(),D("span",$y,[ee(Ge,{icon:R(Oi),class:"error"},null,8,["icon"]),x[13]||(x[13]=ye(" Message body cannot be empty",-1))])):U("",!0)]),toolbarRight:ke(()=>[o.value.isBodyChanged?(S(),D("button",{key:0,type:"button",class:"btn btn-secondary btn-sm",onClick:w},[ee(Ge,{icon:R(ns)},null,8,["icon"]),x[14]||(x[14]=ye(" Reset changes",-1))])):U("",!0)]),_:1},8,["read-only","modelValue","language"]))])]))],64)):U("",!0)])])])])]),!s.value&&!a.value?(S(),D("div",Ty,[M("button",{class:"btn btn-default",onClick:x[3]||(x[3]=I=>v())},"Cancel"),M("button",{class:"btn btn-primary",disabled:o.value.isBodyEmpty||o.value.bodyUnavailable,onClick:x[4]||(x[4]=I=>y())},"Retry",8,Dy)])):U("",!0),a.value?(S(),D("div",Oy,[x[15]||(x[15]=M("div",null,"Are you sure you want to cancel? Any changes you made will be lost.",-1)),M("button",{class:"btn btn-default",onClick:x[5]||(x[5]=I=>b())},"Yes"),M("button",{class:"btn btn-primary",onClick:x[6]||(x[6]=I=>a.value=!1)},"No")])):U("",!0),s.value?(S(),D("div",Py,[x[16]||(x[16]=M("div",null,"Are you sure you want to continue? If you edited the message, it may cause unexpected consequences in the system.",-1)),M("button",{class:"btn btn-default",onClick:x[7]||(x[7]=I=>L())},"Yes"),M("button",{class:"btn btn-primary",onClick:x[8]||(x[8]=I=>s.value=!1)},"No")])):U("",!0)])])])])]))}}),Ly=$e(Ry,[["__scopeId","data-v-8abe1e84"]]),Ay={name:"edit_ignored_dialog"},zy={class:"modal",style:{"z-index":"1050",display:"block"},role:"dialog","aria-label":"edit ignored"},Vy={class:"modal-mask"},By={class:"modal-dialog"},Fy={class:"modal-content"},Hy={class:"modal-footer"},Gy=ue({__name:"EditIgnoredDialog",emits:["close"],setup(e,{emit:t}){const n=t;function i(){n("close")}return(o,s)=>(S(),D("section",Ay,[M("div",zy,[M("div",Vy,[M("div",By,[M("div",Fy,[s[1]||(s[1]=M("div",{class:"modal-header"},[M("div",{class:"modal-title"},[M("h3",null,"Edit Ignored")])],-1)),s[2]||(s[2]=M("div",{class:"modal-body"},[M("p",null,"This retry was ignored because another edit had already been processed.")],-1)),M("div",Hy,[M("button",{class:"btn btn-primary",onClick:s[0]||(s[0]=a=>i())},"Ok")])])])])])]))}}),qy=$e(Gy,[["__scopeId","data-v-a672f00a"]]),Yy=ue({__name:"EditAndRetryButton",setup(e){const t=He(),{state:n,edit_and_retry_config:i,editRetryResponse:o}=Le(t),s=X(!1),a=X(!1),l=Z(()=>n.value.data.failure_status),r=Z(()=>l.value.retried||l.value.archived||l.value.resolved),u=Z(()=>i.value.enabled&&n.value.data.status!==je.Successful&&n.value.data.status!==je.ResolvedSuccessfully),c=async()=>{a.value=!1,await t.pollForNextUpdate(ln.Resolved)},d=async()=>{if(s.value=!1,o.value?.edit_ignored)a.value=!0;else{const h=`Retrying the edited message ${n.value.data.id} ...`;du(_n.INFO,"Info",h),await t.pollForNextUpdate(ln.Resolved)}};async function f(){await t.downloadBody(),s.value=!0}return(h,g)=>u.value?(S(),D(pe,{key:0},[ee(yn,{icon:R(wr),"aria-label":"Edit & retry",disabled:r.value,onClick:f},{default:ke(()=>[...g[1]||(g[1]=[ye("Edit & retry",-1)])]),_:1},8,["icon","disabled"]),(S(),de(lo,{to:"#modalDisplay"},[s.value?(S(),de(Ly,{key:0,onCancel:g[0]||(g[0]=p=>s.value=!1),onConfirm:d})):U("",!0),a.value?(S(),de(qy,{key:1,onClose:c})):U("",!0)]))],64)):U("",!0)}}),Wy=ue({__name:"ExportMessageButton",setup(e){const t=He(),n=X(!1);async function i(){n.value=!0,await uo(async()=>{const o=await t.exportMessage();hu(o,"text/txt","message.txt")},_n.INFO,"Info","Message export completed."),n.value=!1}return(o,s)=>(S(),de(yn,{icon:R(fu),loading:n.value,onClick:i},{default:ke(()=>[...s[0]||(s[0]=[ye("Export message",-1)])]),_:1},8,["icon","loading"]))}}),Uy={class:"nav tabs msg-tabs"},jy=["onClick"],Xy={href:"#"},Zy=ue({__name:"TabsLayout",props:{tabs:{}},setup(e){const t=e,n=X(t.tabs[0].text),i=rn(t.tabs[0].component);function o(s){n.value=s,i.value=t.tabs.find(a=>a.text===s).component}return ve(()=>t.tabs,s=>{s.find(a=>a.text===n.value)||o(s[0].text)}),(s,a)=>(S(),D(pe,null,[M("div",Uy,[(S(!0),D(pe,null,ze(t.tabs,l=>(S(),D("h5",{class:Ee([{active:n.value===l.text},"nav-item"]),onClick:un(r=>o(l.text),["prevent"]),key:l.text},[M("a",Xy,ne(l.text),1)],10,jy))),128))]),(S(),de(gu,null,[(S(),de(mt(i.value)))],1024))],64))}}),dt=ue({__name:"MetadataLabel",props:{tooltip:{},type:{},text:{}},setup(e){const t=e;return(n,i)=>{const o=ut("tippy");return Ne((S(),D("span",{class:Ee(["label sidebar-label metadata-label",`label-${t.type}`])},[ye(ne(t.text),1)],2)),[[o,t.tooltip]])}}}),En=_r("SagaDiagramStore",()=>{const e=X(null),t=X(null),n=X(!1),i=X(!1),o=X(null),s=X(!1),a=X(new Set),l=X([]),r=X(null),u=X(!1),c=X(!1),d="messages/{0}/body",f=He(),h=mu();ve(()=>f.state.data.message_id,_=>{_&&A(_)},{immediate:!0}),ve(t,async _=>{_?await p(_):v()}),ve([s,e],async([_,k])=>{_&&k&&await L(k)});function g(_){t.value=_}async function p(_){if(_){n.value=!0,o.value=null;try{const k=await h.fetchFromServiceControl(`sagas/${_}`);if(k.status===404)e.value=null,o.value="Saga history not found";else if(!k.ok)e.value=null,o.value="Failed to fetch saga history";else{const x=await k.json();e.value=x}}catch(k){o.value=k instanceof Error?k.message:"Unknown error occurred",e.value=null}finally{n.value=!1}}}async function m(_){const k=(_.body_url??w(d,_.message_id)).replace(/^\//,""),x={message_id:_.message_id,body:{data:{}}};x.body.loading=!0,x.body.failed_to_load=!1;try{const I=await h.fetchFromServiceControl(k);if(I.status===404)return x.body.not_found=!0,x;if(I.status===204)return x.body.data.no_content=!0,x;const E=I.headers.get("content-type");if(x.body.data.content_type=E??"text/plain",x.body.data.value=await I.text(),E==="application/json"&&x.body.data.value)x.body.data.value=x.body.data.value!=="{}"?Vn(br(x.body.data.value),null,2)??x.body.data.value:"";else if(E==="text/xml"&&x.body.data.value){const G=b(x.body.data.value);x.body.data.value=G?ku(x.body.data.value,{indentation:" ",collapseContent:!0}):""}}catch{x.body.failed_to_load=!0}finally{x.body.loading=!1}return x}function b(_){const I=new DOMParser().parseFromString(_,"text/xml").documentElement;if(I){const E=I.textContent;if(E)return E}return""}async function y(_){try{const k=await h.fetchFromServiceControl(`messages/search?q=${_}`);if(!k.ok)throw new Error(`HTTP error! status: ${k.status}`);return await k.json()}catch(k){return console.error("Error fetching audit messages:",k),{result:[]}}}function v(){e.value=null,t.value=null,o.value=null,a.value.clear(),l.value=[],r.value=null,u.value=!1}function w(_,k){return _.replace("{0}",k)}function O(){s.value=!s.value}async function L(_){i.value=!0,o.value=null;try{const k=_.changes.flatMap(G=>{const C=[];return G.initiating_message&&!a.value.has(G.initiating_message.message_id)&&C.push(G.initiating_message),G.outgoing_messages&&C.push(...G.outgoing_messages.filter(H=>!a.value.has(H.message_id))),C});if(k.every(G=>!G.body_url)&&k.length>0){const G=await y(t.value);k.forEach(C=>{const H=G.find(V=>V.message_id===C.message_id);H&&(C.body_url=H.body_url)})}const I=k.map(async G=>{const C=await m(G);return a.value.add(G.message_id),C}),E=await Promise.all(I);l.value=[...l.value,...E]}catch(k){o.value=k instanceof Error?k.message:"Unknown error occurred"}finally{i.value=!1}}function A(_){r.value=_}return{sagaHistory:e,sagaId:t,loading:n,messageDataLoading:i,error:o,showMessageData:s,messagesData:l,selectedMessageId:r,scrollToTimeoutRequest:u,scrollToTimeout:c,setSagaId:g,clearSagaHistory:v,toggleMessageData:O,setSelectedMessageId:A}});function Zi(e){if(!e)return null;let n=e.split(",")[0].split(".").pop()||"";return n=n.replace(/\+/g,"."),n}function Ky(e){const t=e.split(".");let n=0,i=e;t.length>1&&(n=parseInt(t[0],10),i=t[1]);const[o,s,a]=i.split(":").map(Number);return{days:n,hours:o,minutes:s,seconds:a}}function Rn(e,t){return e>0?`${e}${t}`:""}function Jy(e){const{days:t,hours:n,minutes:i,seconds:o}=Ky(e);return`${Rn(t,"d")}${Rn(n,"h")}${Rn(i,"m")}${Rn(o,"s")}`}function Qy(e,t){if(!e||!e.changes||!e.changes.length)return[];const n=new Set;e.changes.forEach(o=>{o.outgoing_messages&&o.outgoing_messages.forEach(s=>{(s.delivery_delay||"00:00:00")!=="00:00:00"&&n.add(s.message_id)})});const i=e.changes.map(o=>{const s=new Date(o.start_time),a=new Date(o.finish_time),l=new Date(o.initiating_message?.time_sent||Date.now()),r=o.initiating_message?lr(t,o.initiating_message.message_id):Al(),u=o.outgoing_messages.map(g=>{const p=g.delivery_delay||"00:00:00",m=new Date(g.time_sent),b=!!p&&p!=="00:00:00",y=p.split(":")[2]||"0",v=g.intent==="Publish",w=lr(t,g.message_id);return{MessageType:g.message_type||"",MessageId:g.message_id,FormattedTimeSent:m.toLocaleString(),HasTimeout:b,TimeoutSeconds:y,TimeoutFriendly:Jy(p),FriendlyTypeName:Zi(g.message_type||""),Data:w,IsEventMessage:v,IsCommandMessage:!v}}),c=u.filter(g=>g.HasTimeout).map(g=>{const p=e.changes.some(m=>m.initiating_message?.message_id===g.MessageId);return{...g,TimeoutFriendly:`${g.TimeoutFriendly}`,HasBeenProcessed:p}}),d=u.filter(g=>!g.HasTimeout),f=c.length>0,h=o.initiating_message?.is_saga_timeout_message&&n.has(o.initiating_message?.message_id);return{MessageId:o.initiating_message?.message_id||"",StartTime:s,FinishTime:a,FormattedStartTime:s.toLocaleString(),Status:o.status,StatusDisplay:o.status==="new"?"Saga Initiated":"Saga Updated",InitiatingMessage:{FriendlyTypeName:Zi(o.initiating_message?.message_type||"Unknown Message")||"",MessageId:o.initiating_message?.message_id||"",FormattedMessageTimestamp:l.toLocaleString(),MessageData:r,IsEventMessage:o.initiating_message?.intent==="Publish",IsSagaTimeoutMessage:o.initiating_message?.is_saga_timeout_message||!1,HasRelatedTimeoutRequest:h},HasTimeout:f,IsFirstNode:o.status==="new",OutgoingTimeoutMessages:c,OutgoingMessages:d,HasOutgoingMessages:d.length>0,HasOutgoingTimeoutMessages:c.length>0,showUpdatedPropertiesOnly:!0,stateAfterChange:o.state_after_change||"{}"}}).sort((o,s)=>o.StartTime.getTime()-s.StartTime.getTime()).sort((o,s)=>o.FinishTime.getTime()-s.FinishTime.getTime());for(let o=1;oi.message_id===t)||Al()}function Al(){return{message_id:"",body:{data:{},loading:!1,failed_to_load:!1,not_found:!1}}}const zl="data:image/svg+xml,%3csvg%20width='128'%20height='128'%20viewBox='0%200%20128%20128'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M44%2042.9C29.7%2037.2%2019.1%2027.3%2019.1%200h-16c0%2040.7%2020.6%2053.3%2040.9%2059.9V42.9z'%20fill='%23D3D3D3'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M114.3%2097C110.1%2067.7%2093%2057.7%2075%2052.1V69c12%204.5%2020.4%2012%2023.3%2029.1l-9.4%200.2l18.5%2029.7L124%2097H114.3z'%20fill='%23D3D3D3'%20fill-rule='nonzero'%20/%3e%3cpolygon%20points='68,98%2068,0%2051,0%2051,98%2041.6,98%2059.1,128%2076.7,98'%20fill='%23E4E4E4'%20fill-rule='nonzero'%20/%3e%3c/svg%3e",e1={class:"body"},t1={class:"saga-message"},n1={class:"saga-message-container"},o1=["src"],i1=ue({__name:"NoSagaData",setup(e){return(t,n)=>(S(),D("div",e1,[M("div",t1,[M("div",n1,[M("img",{class:"saga-message-image",src:R(zl),alt:"No saga data found"},null,8,o1),n[0]||(n[0]=M("h1",{role:"status","aria-label":"message-not-involved-in-saga",class:"saga-message-title"},"This message is not part of any saga",-1))])])]))}}),s1=$e(i1,[["__scopeId","data-v-0ed3d8f7"]]),a1={class:"body",role:"status","aria-label":"saga-plugin-needed"},r1={class:"saga-message"},l1={class:"saga-message-container"},u1=["src"],c1={class:"saga-message-box"},d1={class:"clippy-button"},f1=ue({__name:"SagaPluginNeeded",setup(e){return(t,n)=>(S(),D("div",a1,[M("div",r1,[M("div",l1,[M("img",{class:"saga-message-image",src:R(zl),alt:"Saga plugin required"},null,8,u1),n[2]||(n[2]=M("h1",{class:"saga-message-title"},"Saga audit plugin needed to visualize saga",-1)),M("div",c1,[n[0]||(n[0]=M("p",{class:"saga-message-text"},"To visualize your saga, please install the appropriate nuget package in your endpoint",-1)),n[1]||(n[1]=M("a",{href:"https://www.nuget.org/packages/NServiceBus.SagaAudit",class:"saga-message-link"},"install-package NServiceBus.SagaAudit",-1)),M("span",d1,[ee(os,{value:"install-package NServiceBus.SagaAudit",isIconOnly:!0})])])])])]))}}),h1=$e(f1,[["__scopeId","data-v-34c42948"]]),g1={class:"block"},m1={class:"row row--center"},v1={class:"cell cell--center"},p1={class:"cell-inner cell-inner-center"},y1={"aria-label":"saga name",class:"main-title"},_1={role:"note","aria-label":"saga guid"},w1=ue({__name:"SagaHeader",props:{sagaTitle:{},sagaGuid:{}},setup(e){return(t,n)=>(S(),D("div",g1,[M("div",m1,[M("div",v1,[M("div",p1,[M("h1",y1,ne(e.sagaTitle),1),M("div",null,[n[0]||(n[0]=M("b",null,"guid",-1)),n[1]||(n[1]=ye()),M("span",_1,ne(e.sagaGuid),1)])])])])]))}}),b1=$e(w1,[["__scopeId","data-v-61fa72c6"]]),Vl="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3%203V9H5V5H9V3H3ZM3%2021H9V19H5V15H3V21ZM21%203H15V5H19V9H21V3ZM15%2021H21V15H19V19H15V21Z'%20fill='currentColor'/%3e%3c/svg%3e",Bl="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206L6%2018M6%206L18%2018'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",x1={class:"editor-container"},E1=["src"],S1={key:0,class:"maximize-modal"},k1={class:"maximize-modal-content"},C1={class:"maximize-modal-toolbar"},M1={class:"maximize-modal-title"},N1=["src"],$1={class:"maximize-modal-body"},I1=ue({__name:"MaximizableCodeEditor",props:vu({language:{},readOnly:{type:Boolean,default:!1},showGutter:{type:Boolean,default:!1},ariaLabel:{},extensions:{default:()=>[]},modalTitle:{default:"Code View"}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=pu(e,"modelValue"),n=X(!1),i=X(!1),o=()=>{n.value=!n.value},s=()=>{i.value=!0},a=()=>{i.value=!1},l=r=>{r.key==="Escape"&&n.value&&(n.value=!1)};return Ve(()=>{window.addEventListener("keydown",l)}),ro(()=>{window.removeEventListener("keydown",l)}),(r,u)=>{const c=ut("tippy");return S(),D("div",{class:"code-editor-wrapper",onMouseenter:s,onMouseleave:a},[M("div",x1,[ee(Wn,{class:"maximazable-code-editor--inline-instance",modelValue:t.value,"onUpdate:modelValue":u[0]||(u[0]=d=>t.value=d),language:e.language,"read-only":e.readOnly,"show-gutter":e.showGutter,"show-copy-to-clipboard":!1,"aria-label":e.ariaLabel,extensions:e.extensions},{toolbarLeft:ke(()=>[De(r.$slots,"toolbarLeft",{},void 0,!0)]),toolbarRight:ke(()=>[De(r.$slots,"toolbarRight",{},()=>[i.value?Ne((S(),D("button",{key:0,onClick:o,class:"maximize-button"},[M("img",{src:R(Vl),alt:"Maximize",width:"14",height:"14"},null,8,E1)])),[[c,"Maximize view"]]):U("",!0)],!0)]),_:3},8,["modelValue","language","read-only","show-gutter","aria-label","extensions"])]),n.value?(S(),D("div",S1,[M("div",k1,[M("div",C1,[M("span",M1,ne(e.modalTitle),1),Ne((S(),D("button",{onClick:o,class:"maximize-modal-close"},[M("img",{src:R(Bl),alt:"Close",width:"16",height:"16"},null,8,N1)])),[[c,"Close"]])]),M("div",$1,[ee(Wn,{class:"maximazable-code-editor--pop-up-instance",modelValue:t.value,"onUpdate:modelValue":u[1]||(u[1]=d=>t.value=d),language:e.language,"read-only":e.readOnly,"show-copy-to-clipboard":!0,"show-gutter":!0,"aria-label":e.ariaLabel,extensions:[]},null,8,["modelValue","language","read-only","aria-label"])])])])):U("",!0)],32)}}}),Fl=$e(I1,[["__scopeId","data-v-1bfbcffa"]]),T1={key:0,class:"message-data-loading"},D1={key:1,class:"message-data-box message-data-box-error"},O1={key:2,class:"message-data-box"},P1={key:3,class:"message-data-box message-data-box-content"},R1={key:4,class:"message-data-box message-data-box-error"},L1={class:"message-data-box-text--unsupported"},A1=ue({__name:"MessageDataBox",props:{messageData:{},maximizedTitle:{}},setup(e){const t=e,n=Z(()=>t.maximizedTitle?`Message Data - ${t.maximizedTitle}`:"Message Data"),i=En(),{messageDataLoading:o}=Le(i),s=Z(()=>ps(t.messageData.body.data.content_type)),a=Z(()=>t.messageData.body.data.value||"");return(l,r)=>R(o)?(S(),D("div",T1,[ee(Tt)])):e.messageData.body.failed_to_load?(S(),D("div",D1,[...r[0]||(r[0]=[M("span",{class:"message-data-box-text--error"},"Failed to load message data, there might be a connection issue or the message may no longer be available.",-1)])])):!R(o)&&(!e.messageData.body.data.value||e.messageData.body.not_found||e.messageData.body.data.no_content)?(S(),D("div",O1,[...r[1]||(r[1]=[M("span",{class:"message-data-box-text--empty"},"No message body data available",-1)])])):s.value.isSupported?(S(),D("div",P1,[ee(Fl,{"model-value":a.value,language:s.value.language,readOnly:!0,showGutter:!1,modalTitle:n.value},null,8,["model-value","language","modalTitle"])])):(S(),D("div",R1,[M("span",L1,'Message body cannot be displayed because content type "'+ne(e.messageData.body.data.content_type)+'" is not supported.',1)]))}}),ys=$e(A1,[["__scopeId","data-v-6bd93047"]]),z1="data:image/svg+xml,%3csvg%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.8%2018.5H14V10h2.5v6h5.3L21.8%2018.5L21.8%2018.5z%20M25.1%2024.4c2-2.2%203.2-5.1%203.2-8.3%20c0-6.8-5.5-12.3-12.3-12.3C9.2%203.7%203.7%209.2%203.7%2016.1c0%203.2%201.2%206.1%203.2%208.3c-0.6%201.5-1.4%203.6-2%204.9c-0.1%200.2%200%200.4%200.2%200.6%20c0.2%200.1%200.4%200.2%200.6%200c1.3-0.8%203.1-2.1%204.5-3c1.7%200.9%203.7%201.5%205.9%201.5s4.1-0.5%205.9-1.5l4.5%203c0.2%200.1%200.4%200.1%200.6%200%20c0.2-0.1%200.2-0.4%200.2-0.6L25.1%2024.4z%20M16%2025.3c-5.1%200-9.3-4.1-9.3-9.3c0-5.1%204.1-9.3%209.3-9.3c5.1%200%209.3%204.1%209.3%209.3%20C25.3%2021.2%2021.1%2025.3%2016%2025.3z%20M10.5%202.8C9.6%202.3%208.6%202%207.6%202C4.5%202%202%204.5%202%207.6c0%201%200.3%202%200.8%202.8C4.2%207%207%204.2%2010.5%202.8z%20M29.2%2010.4C29.7%209.6%2030%208.6%2030%207.6C30%204.5%2027.5%202%2024.4%202c-1%200-2%200.3-2.9%200.8C25%204.2%2027.8%207%2029.2%2010.4z'%20fill='currentColor'%20fill-rule='nonzero'%20/%3e%3c/svg%3e",Hl="data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0'%20y='0'%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpath%20d='M10.986%208h-4V4h1v3h3V8z%20M7.486%203.201c-2.376%200-4.299%201.923-4.299%204.299%20c0%202.376%201.923%204.299%204.299%204.299c2.376%200%204.299-1.923%204.299-4.299C11.784%205.124%209.861%203.201%207.486%203.201%20M7.486%202%20c3.038%200%205.5%202.462%205.5%205.5s-2.462%205.5-5.5%205.5s-5.5-2.462-5.5-5.5S4.448%202%207.486%202z'%20fill='%23CCCCCC'%20fill-rule='nonzero'%20/%3e%3c/svg%3e",V1={class:"row row--right"},B1={class:"cell cell--center"},F1={class:"cell-inner cell-inner-line"},H1=["src"],G1={key:1,class:"timeout-status","aria-label":"timeout requested"},q1={class:"cell cell--center cell--top-border"},Y1={key:0,class:"cell-inner cell-inner-line"},W1={class:"cell cell--side"},U1=["src"],j1={class:"message-title","aria-label":"timeout message type"},X1={class:"timestamp","aria-label":"timeout message timestamp"},Z1={key:0,class:"message-data message-data--active"},K1=ue({__name:"SagaOutgoingTimeoutMessage",props:{message:{},isLastMessage:{type:Boolean},showMessageData:{type:Boolean}},setup(e){const t=e,n=En(),i=X(null),o=Z(()=>n.selectedMessageId===t.message.MessageId),s=()=>{n.setSelectedMessageId(t.message.MessageId),n.scrollToTimeout=!0};return ve([()=>n.scrollToTimeoutRequest,()=>o.value,()=>i.value!==null],([a,l,r])=>{a&&l&&r&&i.value&&(i.value.scrollIntoView({behavior:"smooth",block:"center"}),n.scrollToTimeoutRequest=!1)},{immediate:!0}),(a,l)=>{const r=ut("tippy");return S(),D("div",V1,[M("div",B1,[M("div",F1,[M("img",{class:"saga-icon saga-icon--center-cell saga-icon--overlap",src:R(Hl),alt:"Timeout Request"},null,8,H1),e.message.HasBeenProcessed?Ne((S(),D("a",{key:0,class:"timeout-status",href:"#",onClick:un(s,["prevent"]),"aria-label":"timeout requested"},[ye("Timeout Requested = "+ne(e.message.TimeoutFriendly),1)])),[[r,"View timeout processing details"]]):Ne((S(),D("span",G1,[ye("Timeout Requested = "+ne(e.message.TimeoutFriendly),1)])),[[r,"This timeout has been requested but not yet processed"]])])]),l[2]||(l[2]=M("div",{class:"cell cell--side"},null,-1)),M("div",q1,[l[0]||(l[0]=M("div",{class:"cell-inner cell-inner-top"},null,-1)),e.isLastMessage?U("",!0):(S(),D("div",Y1))]),M("div",W1,[l[1]||(l[1]=M("div",{class:"cell-inner cell-inner-right"},null,-1)),M("div",{ref_key:"timeoutMessageRef",ref:i,class:Ee({"cell-inner":!0,"cell-inner-side":!0,"cell-inner-side--active":o.value})},[Ne(M("img",{class:"saga-icon saga-icon--side-cell",src:R(z1),alt:""},null,8,U1),[[r,"Timeout Message"]]),Ne((S(),D("h2",j1,[ye(ne(e.message.FriendlyTypeName),1)])),[[r,e.message.FriendlyTypeName]]),Ne((S(),D("div",X1,[ye(ne(e.message.FormattedTimeSent),1)])),[[r,`Sent at: ${e.message.FormattedTimeSent}`]])],2),e.showMessageData?(S(),D("div",Z1,[ee(ys,{messageData:e.message.Data,maximizedTitle:e.message.FriendlyTypeName},null,8,["messageData","maximizedTitle"])])):U("",!0)])])}}}),J1=$e(K1,[["__scopeId","data-v-05d3dc12"]]),Gl="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%206'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-540,-191)'%3e%3cg%20id='command'%3e%3cg%20transform='matrix(0,1,-1,0,542.944,197)'%3e%3cpath%20d='M-2.944,-3.056C-1.318,-3.056%20-0,-1.713%20-0,-0.056C-0,1.601%20-1.318,2.944%20-2.944,2.944C-4.57,2.944%20-6,1.601%20-6,-0.056C-6,-1.713%20-4.57,-3.056%20-2.944,-3.056'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,555,194)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",ql="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-1268,-330)'%3e%3cg%20id='event'%3e%3cg%20transform='matrix(0,1,-1,0,1271.05,341)'%3e%3cpath%20d='M-3,-3C-1.374,-3%200,-1.657%200,0C0,1.657%20-1.374,3%20-3,3C-4.626,3%20-6,1.657%20-6,0C-6,-1.657%20-4.626,-3%20-3,-3'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1283.05,338)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,335.879)'%3e%3cpath%20d='M0,5.879L-4,5.879L-3.05,4.243L-5.878,1.415L-4.464,0L-1.323,3.016L0,1.879L0,5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,340.121)'%3e%3cpath%20d='M0,-5.879L0,-1.879L-1.636,-2.829L-4.465,0L-5.879,-1.414L-3.05,-4.243L-4,-5.879L0,-5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e",Q1=["src","alt"],e_={class:"message-title"},t_={class:"timestamp"},n_={key:0,class:"message-data message-data--active"},o_=ue({__name:"SagaOutgoingMessage",props:{message:{},showMessageData:{type:Boolean}},setup(e){const t=Z(()=>n.selectedMessageId===i.message.MessageId),n=En(),i=e;return(o,s)=>{const a=ut("tippy");return S(),D(pe,null,[M("div",{class:Ee({"cell-inner":!0,"cell-inner-side":!0,"cell-inner-side--active":t.value})},[Ne(M("img",{class:"saga-icon saga-icon--side-cell",src:e.message.IsEventMessage?R(ql):R(Gl),alt:e.message.IsEventMessage?"Event":"Command"},null,8,Q1),[[a,e.message.IsEventMessage?"Event Message":"Command Message"]]),Ne((S(),D("h2",e_,[ye(ne(e.message.FriendlyTypeName),1)])),[[a,e.message.FriendlyTypeName]]),Ne((S(),D("div",t_,[ye(ne(e.message.FormattedTimeSent),1)])),[[a,`Sent at: ${e.message.FormattedTimeSent}`]])],2),e.showMessageData?(S(),D("div",n_,[ee(ys,{messageData:e.message.Data,maximizedTitle:e.message.FriendlyTypeName},null,8,["messageData","maximizedTitle"])])):U("",!0)],64)}}}),i_=$e(o_,[["__scopeId","data-v-5488ea1a"]]);class Wt{diff(t,n,i={}){let o;typeof i=="function"?(o=i,i={}):"callback"in i&&(o=i.callback);const s=this.castInput(t,i),a=this.castInput(n,i),l=this.removeEmpty(this.tokenize(s,i)),r=this.removeEmpty(this.tokenize(a,i));return this.diffWithOptionsObj(l,r,i,o)}diffWithOptionsObj(t,n,i,o){var s;const a=y=>{if(y=this.postProcess(y,i),o){setTimeout(function(){o(y)},0);return}else return y},l=n.length,r=t.length;let u=1,c=l+r;i.maxEditLength!=null&&(c=Math.min(c,i.maxEditLength));const d=(s=i.timeout)!==null&&s!==void 0?s:1/0,f=Date.now()+d,h=[{oldPos:-1,lastComponent:void 0}];let g=this.extractCommon(h[0],n,t,0,i);if(h[0].oldPos+1>=r&&g+1>=l)return a(this.buildValues(h[0].lastComponent,n,t));let p=-1/0,m=1/0;const b=()=>{for(let y=Math.max(p,-u);y<=Math.min(m,u);y+=2){let v;const w=h[y-1],O=h[y+1];w&&(h[y-1]=void 0);let L=!1;if(O){const _=O.oldPos-y;L=O&&0<=_&&_=r&&g+1>=l)return a(this.buildValues(v.lastComponent,n,t))||!0;h[y]=v,v.oldPos+1>=r&&(m=Math.min(m,y-1)),g+1>=l&&(p=Math.max(p,y+1))}u++};if(o)(function y(){setTimeout(function(){if(u>c||Date.now()>f)return o(void 0);b()||y()},0)})();else for(;u<=c&&Date.now()<=f;){const y=b();if(y)return y}}addToPath(t,n,i,o,s){const a=t.lastComponent;return a&&!s.oneChangePerToken&&a.added===n&&a.removed===i?{oldPos:t.oldPos+o,lastComponent:{count:a.count+1,added:n,removed:i,previousComponent:a.previousComponent}}:{oldPos:t.oldPos+o,lastComponent:{count:1,added:n,removed:i,previousComponent:a}}}extractCommon(t,n,i,o,s){const a=n.length,l=i.length;let r=t.oldPos,u=r-o,c=0;for(;u+1f.length?g:f}),c.value=this.join(d)}else c.value=this.join(n.slice(r,r+c.count));r+=c.count,c.added||(u+=c.count)}}return o}}class s_ extends Wt{}const a_=new s_;function r_(e,t,n){return a_.diff(e,t,n)}function ur(e,t){let n;for(n=0;nt.length&&(n=e.length-t.length);let i=t.length;e.length0&&t[a]!=t[s];)s=o[s];t[a]==t[s]&&s++}s=0;for(let a=n;a0&&e[a]!=t[s];)s=o[s];e[a]==t[s]&&s++}return s}function Kt(e){let t;for(t=e.length-1;t>=0&&e[t].match(/\s/);t--);return e.substring(t+1)}function ft(e){const t=e.match(/^\s*/);return t?t[0]:""}const ao="a-zA-Z0-9_\\u{C0}-\\u{FF}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}",u_=new RegExp(`[${ao}]+|\\s+|[^${ao}]`,"ug");class c_ extends Wt{equals(t,n,i){return i.ignoreCase&&(t=t.toLowerCase(),n=n.toLowerCase()),t.trim()===n.trim()}tokenize(t,n={}){let i;if(n.intlSegmenter){const a=n.intlSegmenter;if(a.resolvedOptions().granularity!="word")throw new Error('The segmenter passed must have a granularity of "word"');i=Array.from(a.segment(t),l=>l.segment)}else i=t.match(u_)||[];const o=[];let s=null;return i.forEach(a=>{/\s/.test(a)?s==null?o.push(a):o.push(o.pop()+a):s!=null&&/\s/.test(s)?o[o.length-1]==s?o.push(o.pop()+a):o.push(s+a):o.push(a),s=a}),o}join(t){return t.map((n,i)=>i==0?n:n.replace(/^\s+/,"")).join("")}postProcess(t,n){if(!t||n.oneChangePerToken)return t;let i=null,o=null,s=null;return t.forEach(a=>{a.added?o=a:a.removed?s=a:((o||s)&&fr(i,s,o,a),i=a,o=null,s=null)}),(o||s)&&fr(i,s,o,null),t}}const d_=new c_;function f_(e,t,n){return d_.diff(e,t,n)}function fr(e,t,n,i){if(t&&n){const o=ft(t.value),s=Kt(t.value),a=ft(n.value),l=Kt(n.value);if(e){const r=ur(o,a);e.value=Ji(e.value,a,r),t.value=Zt(t.value,r),n.value=Zt(n.value,r)}if(i){const r=cr(s,l);i.value=Ki(i.value,l,r),t.value=Ln(t.value,r),n.value=Ln(n.value,r)}}else if(n){if(e){const o=ft(n.value);n.value=n.value.substring(o.length)}if(i){const o=ft(i.value);i.value=i.value.substring(o.length)}}else if(e&&i){const o=ft(i.value),s=ft(t.value),a=Kt(t.value),l=ur(o,s);t.value=Zt(t.value,l);const r=cr(Zt(o,l),a);t.value=Ln(t.value,r),i.value=Ki(i.value,o,r),e.value=Ji(e.value,o,o.slice(0,o.length-r.length))}else if(i){const o=ft(i.value),s=Kt(t.value),a=dr(s,o);t.value=Ln(t.value,a)}else if(e){const o=Kt(e.value),s=ft(t.value),a=dr(o,s);t.value=Zt(t.value,a)}}class h_ extends Wt{tokenize(t){const n=new RegExp(`(\\r?\\n)|[${ao}]+|[^\\S\\n\\r]+|[^${ao}]`,"ug");return t.match(n)||[]}}const g_=new h_;function m_(e,t,n){return g_.diff(e,t,n)}function v_(e,t){if(typeof e=="function")t.callback=e;else if(e)for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t}class p_ extends Wt{constructor(){super(...arguments),this.tokenize=w_}equals(t,n,i){return i.ignoreWhitespace?((!i.newlineIsToken||!t.includes(` +`))&&(t=t.trim()),(!i.newlineIsToken||!n.includes(` +`))&&(n=n.trim())):i.ignoreNewlineAtEof&&!i.newlineIsToken&&(t.endsWith(` +`)&&(t=t.slice(0,-1)),n.endsWith(` +`)&&(n=n.slice(0,-1))),super.equals(t,n,i)}}const Yl=new p_;function y_(e,t,n){return Yl.diff(e,t,n)}function __(e,t,n){return n=v_(n,{ignoreWhitespace:!0}),Yl.diff(e,t,n)}function w_(e,t){t.stripTrailingCr&&(e=e.replace(/\r\n/g,` +`));const n=[],i=e.split(/(\n|\r\n)/);i[i.length-1]||i.pop();for(let o=0;o{const{oldValue:r,newValue:u,compareMethod:c}=t;if(r===u){const b=u.split(` +`);b[b.length-1]===""&&b.pop();const y=[];let v=1;b.forEach(w=>{y.push({left:{value:w,lineNumber:v,type:0},right:{value:w,lineNumber:v++,type:0}})}),n.value=y,i.value=[];return}let d;switch(c){case"diffChars":d=r_(r,u);break;case"diffWords":d=f_(r,u);break;case"diffWordsWithSpace":d=m_(r,u);break;case"diffTrimmedLines":d=__(r,u);break;case"diffSentences":d=S_(r,u);break;case"diffCss":d=M_(r,u);break;case"diffLines":default:d=y_(r,u);break}const f=[],h=[];let g=1,p=1,m=0;d.forEach(b=>{const y=b.value.split(` +`);y[y.length-1]===""&&y.pop(),!b.added&&!b.removed?y.forEach(v=>{f.push({left:{value:v,lineNumber:g++,type:0},right:{value:v,lineNumber:p++,type:0}}),m++}):b.removed?y.forEach(v=>{h.push(m),f.push({left:{value:v,lineNumber:g++,type:2},right:{value:"",type:0}}),m++}):b.added&&y.forEach(v=>{h.push(m),f.push({left:{value:"",type:0},right:{value:v,lineNumber:p++,type:1}}),m++})}),n.value=f,i.value=h,o.value=[]},a=r=>{o.value.includes(r)||o.value.push(r)},l=Z(()=>{if(!n.value.length)return[];const{showDiffOnly:r,extraLinesSurroundingDiff:u}=t,c=u<0?0:u;let d=[];const f=[],h=[...i.value];return n.value.forEach((g,p)=>{const m=h[0],b=m!==void 0?m-p:void 0;if(r&&(b===-c&&(d=[],h.shift()),g.left.type===0&&(b!==void 0&&b>c||typeof m>"u")&&!o.value.includes(m))){d.push(p+1),p===n.value.length-1&&d.length>1&&f.push({type:"fold",count:d.length,blockNumber:m,leftLineNumber:g.left.lineNumber,rightLineNumber:g.right.lineNumber});return}if(b===c&&d.length>0){const y=d.length;d=[],f.push({type:"fold",count:y,blockNumber:m,leftLineNumber:g.left.lineNumber,rightLineNumber:g.right.lineNumber})}f.push({type:"line",lineInfo:g,index:p})}),f});return ve(()=>[t.oldValue,t.newValue,t.compareMethod,t.showDiffOnly,t.extraLinesSurroundingDiff],()=>{s()},{immediate:!0}),(r,u)=>(S(),D("div",{class:Ee(["diff-container",{"split-view":e.splitView}])},[e.leftTitle||e.rightTitle?(S(),D("div",N_,[M("div",$_,ne(e.leftTitle),1),e.splitView?(S(),D("div",I_,ne(e.rightTitle),1)):U("",!0)])):U("",!0),M("div",T_,[e.splitView?(S(),D("div",D_,[M("div",O_,[(S(!0),D(pe,null,ze(l.value,(c,d)=>(S(),D(pe,{key:`diff-left-${d}`},[c.type==="fold"?(S(),D("div",P_,[M("button",{onClick:f=>a(c.blockNumber),class:"diff-fold-button"},ne(`⟨ Expand ${c.count} lines... ⟩`),9,R_)])):c.type==="line"?(S(),D("div",{key:1,class:Ee(["diff-line",{"diff-line-removed":c.lineInfo.left.type===2}])},[e.hideLineNumbers?U("",!0):(S(),D("span",L_,ne(c.lineInfo.left.lineNumber),1)),M("span",A_,ne(c.lineInfo.left.value),1)],2)):U("",!0)],64))),128))])])):U("",!0),M("div",z_,[M("div",V_,[(S(!0),D(pe,null,ze(l.value,(c,d)=>(S(),D(pe,{key:`diff-right-${d}`},[c.type==="fold"?(S(),D("div",B_,[M("button",{onClick:f=>a(c.blockNumber),class:"diff-fold-button"},ne(`⟨ Expand ${c.count} lines... ⟩`),9,F_)])):c.type==="line"?(S(),D("div",{key:1,class:Ee(["diff-line",{"diff-line-added":c.lineInfo.right.type===1}])},[e.hideLineNumbers?U("",!0):(S(),D("span",H_,ne(c.lineInfo.right.lineNumber),1)),M("span",G_,ne(c.lineInfo.right.value),1)],2)):U("",!0)],64))),128))])])])],2))}}),hr=$e(q_,[["__scopeId","data-v-3ad2f991"]]),Y_={class:"diff-wrapper"},W_=["src"],U_={key:0,class:"maximize-modal"},j_={class:"maximize-modal-content"},X_={class:"maximize-modal-toolbar"},Z_={class:"maximize-modal-title"},K_=["src"],J_={class:"maximize-modal-body"},Q_=ue({__name:"DiffViewer",props:{oldValue:{},newValue:{},splitView:{type:Boolean,default:!0},hideLineNumbers:{type:Boolean,default:!1},showDiffOnly:{type:Boolean,default:!1},extraLinesSurroundingDiff:{default:3},leftTitle:{default:"Previous"},rightTitle:{default:"Current"},compareMethod:{default:"diffLines"},showMaximizeIcon:{type:Boolean,default:!1}},setup(e){const t=e,n=X(!1),i=X(!1),o=()=>{n.value=!n.value},s=r=>{r.key==="Escape"&&n.value&&(n.value=!1)},a=()=>{t.showMaximizeIcon&&(i.value=!0)},l=()=>{i.value=!1};return Ve(()=>{t.showMaximizeIcon&&window.addEventListener("keydown",s)}),ro(()=>{window.removeEventListener("keydown",s)}),(r,u)=>(S(),D("div",{class:"diff-viewer",onMouseenter:a,onMouseleave:l},[M("div",Y_,[e.showMaximizeIcon&&i.value?(S(),D("button",{key:0,onClick:o,class:"maximize-button",title:"Maximize diff view"},[M("img",{src:R(Vl),alt:"Maximize",width:"14",height:"14"},null,8,W_)])):U("",!0),ee(hr,{"old-value":e.oldValue,"new-value":e.newValue,"split-view":e.splitView,"hide-line-numbers":e.hideLineNumbers,"show-diff-only":e.showDiffOnly,"extra-lines-surrounding-diff":e.extraLinesSurroundingDiff,"left-title":e.leftTitle,"right-title":e.rightTitle,"compare-method":e.compareMethod},null,8,["old-value","new-value","split-view","hide-line-numbers","show-diff-only","extra-lines-surrounding-diff","left-title","right-title","compare-method"])]),n.value?(S(),D("div",U_,[M("div",j_,[M("div",X_,[M("span",Z_,ne(e.leftTitle)+" vs "+ne(e.rightTitle),1),M("button",{onClick:o,class:"maximize-modal-close",title:"Close"},[M("img",{src:R(Bl),alt:"Close",width:"16",height:"16"},null,8,K_)])]),M("div",J_,[ee(hr,{"old-value":e.oldValue,"new-value":e.newValue,"split-view":e.splitView,"hide-line-numbers":e.hideLineNumbers,"show-diff-only":e.showDiffOnly,"extra-lines-surrounding-diff":e.extraLinesSurroundingDiff,"left-title":e.leftTitle,"right-title":e.rightTitle,"compare-method":e.compareMethod},null,8,["old-value","new-value","split-view","hide-line-numbers","show-diff-only","extra-lines-surrounding-diff","left-title","right-title","compare-method"])])])])):U("",!0)],32))}}),ew=$e(Q_,[["__scopeId","data-v-e25c6c52"]]),tw="data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpolygon%20points='4.986,4%2011.048,7.5%204.986,11'%20fill='%23CCCCCC'%20fill-rule='nonzero'%20/%3e%3c/svg%3e",nw="data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpath%20fill='%23CCCCCC'%20fill-rule='nonzero'%20d='M3.612%205.274l2.74%200.885V3H8.62v3.159l2.74-0.885l0.616%201.953L9.183%208.086l1.822%202.609l-1.678%201.193L7.51%209.423l-1.879%202.464l-1.678-1.193l1.835-2.609L2.996%207.228L3.612%205.274z'%20/%3e%3c/svg%3e",ow="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-581,-742)'%3e%3cg%20id='timeout'%20transform='matrix(1,0,0,1,596.565,753.212)'%3e%3cpath%20d='M0,-6.402C0.276,-6.875%200.435,-7.425%200.435,-8.013C0.435,-9.78%20-0.997,-11.212%20-2.764,-11.212C-3.361,-11.212%20-3.919,-11.048%20-4.397,-10.764C-2.425,-9.938%20-0.841,-8.366%200,-6.402M-10.728,-10.764C-11.206,-11.048%20-11.764,-11.212%20-12.36,-11.212C-14.127,-11.212%20-15.56,-9.78%20-15.56,-8.013C-15.56,-7.425%20-15.401,-6.875%20-15.125,-6.402C-14.284,-8.366%20-12.699,-9.938%20-10.728,-10.764M-7.562,2.12C-10.489,2.12%20-12.858,-0.248%20-12.858,-3.176C-12.858,-6.103%20-10.49,-8.472%20-7.562,-8.472C-4.636,-8.472%20-2.266,-6.103%20-2.266,-3.176C-2.266,-0.249%20-4.635,2.12%20-7.562,2.12M-2.357,1.581C-1.211,0.327%20-0.511,-1.342%20-0.511,-3.176C-0.511,-7.07%20-3.668,-10.227%20-7.562,-10.227C-11.457,-10.227%20-14.614,-7.07%20-14.614,-3.176C-14.614,-1.342%20-13.914,0.327%20-12.767,1.581C-13.12,2.46%20-13.583,3.612%20-13.896,4.391C-13.944,4.508%20-13.909,4.643%20-13.81,4.723C-13.712,4.803%20-13.573,4.809%20-13.468,4.739C-12.75,4.259%20-11.683,3.545%20-10.913,3.03C-9.917,3.569%20-8.775,3.876%20-7.562,3.876C-6.349,3.876%20-5.208,3.569%20-4.211,3.03L-1.657,4.739C-1.552,4.81%20-1.413,4.803%20-1.314,4.723C-1.216,4.643%20-1.181,4.509%20-1.228,4.391L-2.357,1.581ZM-4.27,-1.802L-8.687,-1.802L-8.687,-6.655L-7.282,-6.655L-7.282,-3.206L-4.27,-3.206L-4.27,-1.802Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e",iw={class:"block",role:"row"},sw={class:"row"},aw={class:"cell cell--side"},rw=["data-message-id"],lw=["src"],uw={class:"message-title","aria-label":"initiating message type"},cw={class:"timestamp","aria-label":"initiating message timestamp"},dw={class:"cell cell--center cell-flex"},fw={class:"cell-inner cell-inner-center cell-inner--align-bottom"},hw=["src"],gw={key:1,class:"saga-status-title saga-status-title--inline timeout-status","aria-label":"timeout invoked"},mw=["src"],vw={class:"saga-status-title saga-status-title--inline"},pw={class:"timestamp timestamp--inline","aria-label":"time stamp"},yw={class:"row"},_w={class:"cell cell--side cell--left-border cell--aling-top"},ww={key:0,class:"message-data message-data--active"},bw={class:"cell cell--center cell--center--border"},xw={class:"saga-state-container"},Ew={key:0,class:"saga-state-title"},Sw={key:1,class:"saga-state-title"},kw={key:2,class:"json-container"},Cw={key:3,class:"json-container json-container--first-node"},Mw={key:4,class:"json-container"},Nw={key:5},$w={key:0,class:"cell cell--side cell--aling-top"},Iw=ue({__name:"SagaUpdateNode",props:{update:{},showMessageData:{type:Boolean}},setup(e){const t=Cu.baseTheme({".maximazable-code-editor--inline-instance .cm-editor":{fontFamily:"monospace",fontSize:"0.75rem",backgroundColor:"#f2f2f2"},".maximazable-code-editor--inline-instance .cm-scroller":{backgroundColor:"#f2f2f2"}}),n=e,i=En(),o=X(null),s=X(!1),a=Z(()=>i.selectedMessageId===n.update.MessageId),l=()=>{i.setSelectedMessageId(n.update.InitiatingMessage.MessageId),i.scrollToTimeoutRequest=!0};ve([()=>i.scrollToTimeout,()=>a.value,()=>o.value!==null],([f,h,g])=>{f&&h&&g&&o.value&&(o.value.scrollIntoView({behavior:"smooth",block:"center"}),i.scrollToTimeout=!1)},{immediate:!0});const r=f=>f==null?"null":typeof f=="object"?Vn(f,null,2)||"{}":String(f),u=f=>{if(!f)return{};let h;try{h=br(f)}catch(p){return console.error("Error parsing state:",p),s.value=!0,{}}return["$type","Id","Originator","OriginalMessageId"].forEach(p=>{p in h&&delete h[p]}),h},c=Z(()=>{const f=u(n.update.stateAfterChange),h=u(n.update.previousStateAfterChange),g=n.update.IsFirstNode,p=r(f);return g?{formattedState:p,previousFormatted:"",currentFormatted:p}:{previousFormatted:r(h),currentFormatted:p}}),d=Z(()=>{if(n.update.IsFirstNode)return!0;const f=u(n.update.stateAfterChange),h=u(n.update.previousStateAfterChange);return Vn(f)!==Vn(h)});return(f,h)=>{const g=ut("tippy");return S(),D("div",iw,[M("div",sw,[M("div",aw,[M("div",{ref_key:"initiatingMessageRef",ref:o,class:Ee({"cell-inner":!0,"cell-inner-side":!0,"cell-inner-side--active":a.value||e.update.InitiatingMessage.IsSagaTimeoutMessage&&e.update.MessageId===R(i).selectedMessageId}),"data-message-id":e.update.InitiatingMessage.IsSagaTimeoutMessage?e.update.MessageId:""},[Ne(M("img",{class:"saga-icon saga-icon--side-cell",src:e.update.InitiatingMessage.IsSagaTimeoutMessage?R(ow):e.update.InitiatingMessage.IsEventMessage?R(ql):R(Gl),alt:""},null,8,lw),[[g,e.update.InitiatingMessage.IsSagaTimeoutMessage?"Timeout Message":e.update.InitiatingMessage.IsEventMessage?"Event Message":"Command Message"]]),Ne((S(),D("h2",uw,[ye(ne(e.update.InitiatingMessage.FriendlyTypeName),1)])),[[g,e.update.InitiatingMessage.FriendlyTypeName]]),Ne((S(),D("div",cw,[ye(ne(e.update.InitiatingMessage.FormattedMessageTimestamp),1)])),[[g,`Received at: ${e.update.InitiatingMessage.FormattedMessageTimestamp}`]])],10,rw)]),M("div",dw,[M("div",fw,[e.update.InitiatingMessage.IsSagaTimeoutMessage?(S(),D(pe,{key:0},[Ne(M("img",{class:"saga-icon saga-icon--center-cell",src:R(Hl),alt:""},null,8,hw),[[g,"Saga Timeout"]]),e.update.InitiatingMessage.HasRelatedTimeoutRequest?Ne((S(),D("a",{key:0,href:"#",onClick:un(l,["prevent"]),class:"saga-status-title saga-status-title--inline timeout-status","aria-label":"timeout invoked"},[...h[0]||(h[0]=[ye(" Timeout Invoked ",-1)])])),[[g,"View original timeout request"]]):(S(),D("h2",gw,"Timeout Invoked")),h[1]||(h[1]=M("br",null,null,-1))],64)):U("",!0),Ne(M("img",{class:"saga-icon saga-icon--center-cell",src:e.update.IsFirstNode?R(tw):R(nw),alt:""},null,8,mw),[[g,e.update.IsFirstNode?"Saga Initiated":"Saga Updated"]]),M("h2",vw,ne(e.update.StatusDisplay),1),Ne((S(),D("div",pw,[ye(ne(e.update.FormattedStartTime),1)])),[[g,`Update time: ${e.update.FormattedStartTime}`]])])])]),M("div",yw,[M("div",_w,[e.showMessageData?(S(),D("div",ww,[e.update.InitiatingMessage?(S(),de(ys,{key:0,messageData:e.update.InitiatingMessage.MessageData,maximizedTitle:e.update.InitiatingMessage.FriendlyTypeName},null,8,["messageData","maximizedTitle"])):U("",!0)])):U("",!0)]),M("div",bw,[M("div",{class:Ee({"cell-inner":!0,"cell-inner-line":e.update.HasTimeout,"cell-inner-center":!e.update.HasTimeout})},[M("div",xw,[e.update.IsFirstNode?(S(),D("h3",Ew,"Initial Saga State")):(S(),D("h3",Sw,"State Changes")),s.value?(S(),D("div",kw,[...h[2]||(h[2]=[M("div",{class:"parsing-error-message"},"An error occurred while parsing and displaying the saga state for this update",-1)])])):e.update.IsFirstNode?(S(),D("div",Cw,[ee(Fl,{"model-value":c.value.formattedState||"",language:"json",showGutter:!1,modalTitle:"Initial Saga State",extensions:[R(t)]},null,8,["model-value","extensions"])])):d.value?d.value&&!e.update.IsFirstNode?(S(),D("div",Nw,[ee(ew,{"hide-line-numbers":!0,showDiffOnly:!0,oldValue:c.value.previousFormatted,newValue:c.value.currentFormatted,leftTitle:"Previous State",rightTitle:"Updated State",showMaximizeIcon:!0},null,8,["oldValue","newValue"])])):U("",!0):(S(),D("div",Mw,[...h[3]||(h[3]=[M("div",{class:"no-changes-message"},"No state changes in this update",-1)])]))])],2)]),e.update.HasOutgoingMessages?(S(),D("div",$w,[h[4]||(h[4]=M("div",{class:"cell-inner cell-inner-right"},null,-1)),(S(!0),D(pe,null,ze(e.update.OutgoingMessages,(p,m)=>(S(),de(i_,{key:m,message:p,showMessageData:e.showMessageData},null,8,["message","showMessageData"]))),128))])):U("",!0)]),(S(!0),D(pe,null,ze(e.update.OutgoingTimeoutMessages,(p,m)=>(S(),de(J1,{key:"timeout-"+m,message:p,isLastMessage:m===e.update.OutgoingTimeoutMessages.length-1,showMessageData:e.showMessageData},null,8,["message","isLastMessage","showMessageData"]))),128))])}}}),Tw=$e(Iw,[["__scopeId","data-v-cf0ddcb3"]]),Dw="data:image/svg+xml,%3csvg%20width='15'%20height='15'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0'%20y='0'%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3crect%20x='4'%20y='4'%20width='7'%20height='7'%20fill='%23CCCCCC'%20/%3e%3c/svg%3e",Ow={class:"block"},Pw={class:"row row--center"},Rw={class:"cell cell--center cell--inverted"},Lw={class:"cell-inner cell-inner-center"},Aw=["src"],zw={class:"saga-status-title saga-status-title--inline"},Vw={class:"timestamp"},Bw=ue({__name:"SagaCompletedNode",props:{completionTime:{}},setup(e){return(t,n)=>{const i=ut("tippy");return S(),D("div",Ow,[M("div",Pw,[M("div",Rw,[M("div",Lw,[M("img",{class:"saga-icon saga-icon--center-cell",src:R(Dw),alt:"Saga Completed"},null,8,Aw),Ne((S(),D("h2",zw,[...n[0]||(n[0]=[ye("Saga Completed",-1)])])),[[i,"The saga has completed its lifecycle"]]),Ne((S(),D("div",Vw,[ye(ne(e.completionTime),1)])),[[i,`Completion timestamp: ${e.completionTime}`]])])])])])}}}),Fw=$e(Bw,[["__scopeId","data-v-e59a0d99"]]),Hw={class:"saga-container"},Gw={key:0,class:"toolbar"},qw={key:1,class:"loading-container"},Yw={key:4,role:"table","aria-label":"saga-sequence-list",class:"body",style:{display:"flex"}},Ww={class:"container"},Uw=ue({__name:"SagaDiagram",setup(e){const t=En(),{showMessageData:n,loading:i}=Le(t),o=He();ve(()=>o.state.data.invoked_saga?.has_saga,a=>{const l=o.state.data.invoked_saga;a&&l?.saga_id?t.setSagaId(l.saga_id):t.clearSagaHistory()},{immediate:!0}),vr(()=>{t.clearSagaHistory()});const s=Z(()=>{const a=t.sagaHistory?.changes.find(d=>d.status==="completed"),l=a?new Date(a.finish_time):null,{data:r}=o.state,{invoked_saga:u}=r,c=t.sagaHistory;return{SagaTitle:Zi(u.saga_type)||"Unknown saga",SagaGuid:u.saga_id||"Missing guid",ParticipatedInSaga:u.has_saga||!1,HasSagaData:!!c,ShowNoPluginActiveLegend:!c&&u.has_saga||!1,SagaCompleted:!!a,FormattedCompletionTime:l?l.toLocaleString():"",SagaUpdates:Qy(c,t.messagesData),ShowMessageData:n.value}});return(a,l)=>(S(),D("div",Hw,[s.value.HasSagaData?(S(),D("div",Gw,[M("button",{type:"button",class:"btn btn-secondary btn-sm","aria-label":"show-message-data-button",onClick:l[0]||(l[0]=(...r)=>R(t).toggleMessageData&&R(t).toggleMessageData(...r))},[ee(Ge,{icon:R(yu)},null,8,["icon"]),ye(" "+ne(s.value.ShowMessageData?"Hide Message Data":"Show Message Data"),1)])])):U("",!0),R(i)?(S(),D("div",qw,[ee(Tt)])):s.value.ParticipatedInSaga?s.value.ShowNoPluginActiveLegend?(S(),de(h1,{key:3})):s.value.HasSagaData?(S(),D("div",Yw,[M("div",Ww,[ee(b1,{"saga-title":s.value.SagaTitle,"saga-guid":s.value.SagaGuid},null,8,["saga-title","saga-guid"]),(S(!0),D(pe,null,ze(s.value.SagaUpdates,(r,u)=>(S(),de(Tw,{key:u,update:r,"show-message-data":s.value.ShowMessageData},null,8,["update","show-message-data"]))),128)),s.value.SagaCompleted?(S(),de(Fw,{key:0,"completion-time":s.value.FormattedCompletionTime},null,8,["completion-time"])):U("",!0)])])):U("",!0):(S(),de(s1,{key:2}))]))}}),jw=$e(Uw,[["__scopeId","data-v-8800f933"]]),Xw={class:"container"},Zw={class:"row"},Kw={class:"col-sm-12 no-side-padding"},Jw={class:"active break group-title"},Qw={class:"message-type-title"},eb={class:"row"},tb={class:"col-sm-12 no-side-padding"},nb={class:"metadata group-message-count message-metadata"},ob={class:"metadata"},ib={key:11,class:"metadata"},sb={class:"row"},ab={class:"col-sm-12 no-side-padding"},rb={class:"btn-toolbar message-toolbar"},lb={class:"row"},ub={class:"col-sm-12 no-side-padding"},cb=ue({__name:"MessageView",setup(e){const t=_u(),n=Z(()=>t.params.id),i=Z(()=>t.params.messageId),o=Z(()=>i.value===void 0),s=X({path:kt.failedMessage.failedMessages.link}),a=wu(),{isMassTransitConnected:l}=Le(a),r=He(),{state:u}=Le(r),c=Z(()=>r.state.data.invoked_saga?.has_saga),d=Z(()=>{const h=[{text:"Message body",component:N0},{text:"Headers",component:F0}];return o.value&&h.unshift({text:"Stacktrace",component:J0}),l.value||(h.push({text:"Flow Diagram",component:hp}),h.push({text:"Sequence Diagram",component:b0}),c?.value&&h.push({text:"Saga Diagram",component:jw})),h});ve([n,i],async([h,g],[p,m])=>{(h!==p||g!==m)&&r.reset(),g!==void 0?await r.loadMessage(g,h):await r.loadFailedMessage(h)},{immediate:!0});const f=Ti("#929E9E").filter;return Ve(()=>{const{back:h,...g}=t.query;h&&(s.value={path:h.toString(),query:g})}),(h,g)=>(S(),D("div",Xw,[M("section",null,[R(u).not_found?(S(),de(bs,{key:0,title:"message failures",message:"Could not find message. This could be because the message URL is invalid or the corresponding message was processed and is no longer tracked by ServiceControl."})):R(u).failed_to_load?(S(),de(bs,{key:1,title:"message failures",message:"An error occurred while trying to load the message. Please check the ServiceControl logs to learn what the issue is."})):(S(),D(pe,{key:2},[M("div",Zw,[M("div",Kw,[ee(R(ws),{to:s.value},{default:ke(()=>[ee(Ge,{icon:R(bu),size:"sm"},null,8,["icon"]),g[0]||(g[0]=ye(" Back",-1))]),_:1},8,["to"]),M("div",Jw,[M("h1",Qw,ne(R(u).data.message_type),1)])])]),M("div",eb,[M("div",tb,[M("div",nb,[R(u).data.failure_status.retry_in_progress?(S(),de(dt,{key:0,tooltip:"Message is being added to the retries queue",type:"info",text:"Requesting retry..."})):U("",!0),R(u).data.failure_status.retried?(S(),de(dt,{key:1,tooltip:"Message is enqueued to be retried",type:"info",text:"Waiting for retry"})):U("",!0),R(u).data.failure_status.restoring?(S(),de(dt,{key:2,tooltip:"Message is being restored",type:"info",text:"Restoring..."})):U("",!0),R(u).data.failure_status.archiving?(S(),de(dt,{key:3,tooltip:"Message is being deleted",type:"info",text:"Deleting..."})):U("",!0),R(u).data.failure_status.archived?(S(),de(dt,{key:4,tooltip:"Message is deleted",type:"warning",text:"Deleted"})):U("",!0),R(u).data.failure_status.resolved?(S(),de(dt,{key:5,tooltip:"Message was processed successfully",type:"warning",text:"Processed"})):U("",!0),R(u).data.failure_metadata.number_of_processing_attempts!==void 0&&R(u).data.failure_metadata.number_of_processing_attempts>1?(S(),de(dt,{key:6,tooltip:`This message has already failed ${R(u).data.failure_metadata.number_of_processing_attempts} times`,type:"important",text:`${(R(u).data.failure_metadata.number_of_processing_attempts??0)-1} Retry Failures`},null,8,["tooltip","text"])):U("",!0),R(u).data.failure_metadata.edited?(S(),D(pe,{key:7},[ee(dt,{tooltip:"Message was edited",type:"info",text:"Edited"}),R(u).data.failure_metadata.edit_of?(S(),de(_t,{key:0,icon:R(xu),class:"metadata-link"},{default:ke(()=>[ee(R(ws),{to:{path:R(kt).messages.failedMessage.link(R(u).data.failure_metadata.edit_of),query:R(t).query}},{default:ke(()=>[...g[1]||(g[1]=[ye("View previous version",-1)])]),_:1},8,["to"])]),_:1},8,["icon"])):U("",!0)],64)):U("",!0),R(u).data.failure_metadata.time_of_failure?(S(),de(_t,{key:8,icon:R(Eo)},{default:ke(()=>[g[2]||(g[2]=ye("Failed: ",-1)),ee(Jt,{"date-utc":R(u).data.failure_metadata.time_of_failure},null,8,["date-utc"])]),_:1},8,["icon"])):(S(),de(_t,{key:9,icon:R(Eo)},{default:ke(()=>[g[3]||(g[3]=ye("Processed at: ",-1)),ee(Jt,{"date-utc":R(u).data.processed_at},null,8,["date-utc"])]),_:1},8,["icon"])),R(u).data.receiving_endpoint?(S(),D(pe,{key:10},[M("span",ob,[M("i",{class:"fa pa-endpoint",style:Fe({filter:R(f)})},null,4),ye(" Endpoint: "+ne(R(u).data.receiving_endpoint.name),1)]),ee(_t,{icon:R(Eu)},{default:ke(()=>[ye("Machine: "+ne(R(u).data.receiving_endpoint.host),1)]),_:1},8,["icon"])],64)):U("",!0),R(u).data.failure_metadata.redirect?(S(),D("span",ib,[g[4]||(g[4]=M("i",{class:"fa pa-redirect-source pa-redirect-small"},null,-1)),ye(" Redirect: "+ne(R(u).data.failure_metadata.redirect),1)])):U("",!0),R(u).data.failure_status.archived?(S(),D(pe,{key:12},[ee(_t,{icon:R(Eo)},{default:ke(()=>[g[5]||(g[5]=ye("Deleted: ",-1)),ee(Jt,{"date-utc":R(u).data.failure_metadata.last_modified},null,8,["date-utc"])]),_:1},8,["icon"]),R(u).data.failure_status.delete_soon?(S(),de(_t,{key:0,icon:R(Yn),class:"danger"},{default:ke(()=>[...g[6]||(g[6]=[ye("Scheduled for permanent deletion: immediately",-1)])]),_:1},8,["icon"])):(S(),de(_t,{key:1,icon:R(Yn),class:"danger"},{default:ke(()=>[g[7]||(g[7]=ye("Scheduled for permanent deletion: ",-1)),ee(Jt,{"date-utc":R(u).data.failure_metadata.deleted_in},null,8,["date-utc"])]),_:1},8,["icon"]))],64)):U("",!0)])])]),M("div",sb,[M("div",ab,[M("div",rb,[ee(Q0),ee(ey),ee(ty),ee(Yy),ee(Wy)])])]),M("div",lb,[M("div",ub,[ee(Zy,{tabs:d.value},null,8,["tabs"])])])],64))])]))}}),mb=$e(cb,[["__scopeId","data-v-384d40d9"]]);export{mb as default}; +//# sourceMappingURL=MessageView-OH0ESeUy.js.map diff --git a/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js.map b/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js.map new file mode 100644 index 0000000000..4e2eadd7e5 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MessageView-OH0ESeUy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MessageView-OH0ESeUy.js","sources":["../../../../frontend/node_modules/@vue-flow/core/dist/vue-flow-core.mjs","../../../../frontend/src/resources/Header.ts","../../../../frontend/node_modules/@vue-flow/controls/dist/vue-flow-controls.mjs","../../../../frontend/src/components/TextEllipses.vue","../../../../frontend/src/components/TypeNameDisplay.vue","../../../../frontend/src/components/SagaName.vue","../../../../frontend/node_modules/@dagrejs/graphlib/lib/graph.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/version.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/index.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/json.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/components.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/data/priority-queue.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/dijkstra.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/dijkstra-all.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/tarjan.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/find-cycles.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/floyd-warshall.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/topsort.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/is-acyclic.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/dfs.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/postorder.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/preorder.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/prim.js","../../../../frontend/node_modules/@dagrejs/graphlib/lib/alg/index.js","../../../../frontend/node_modules/@dagrejs/graphlib/index.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/data/list.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/greedy-fas.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/util.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/acyclic.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/normalize.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/rank/util.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/rank/feasible-tree.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/rank/network-simplex.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/rank/index.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/parent-dummy-chains.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/nesting-graph.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/add-border-segments.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/coordinate-system.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/init-order.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/cross-count.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/barycenter.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/resolve-conflicts.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/sort.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/sort-subgraph.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/build-layer-graph.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/add-subgraph-constraints.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/order/index.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/position/bk.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/position/index.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/layout.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/debug.js","../../../../frontend/node_modules/@dagrejs/dagre/lib/version.js","../../../../frontend/node_modules/@dagrejs/dagre/index.js","../../../../frontend/src/components/messages/FlowDiagram/useLayout.ts","../../../../frontend/src/components/messages/FlowDiagram/FlowDiagram.vue","../../../../frontend/src/resources/SequenceDiagram/RoutedMessage.ts","../../../../frontend/src/resources/SequenceDiagram/Endpoint.ts","../../../../frontend/src/resources/SequenceDiagram/Handler.ts","../../../../frontend/src/resources/SequenceDiagram/SequenceModel.ts","../../../../frontend/src/stores/SequenceDiagramStore.ts","../../../../frontend/src/components/messages/SequenceDiagram/EndpointsComponent.vue","../../../../frontend/src/components/messages/SequenceDiagram/TimelineComponent.vue","../../../../frontend/src/components/messages/SequenceDiagram/HandlersComponent.vue","../../../../frontend/src/components/messages/SequenceDiagram/RoutesComponent.vue","../../../../frontend/src/components/messages/SequenceDiagram/EndpointTooltip.vue","../../../../frontend/src/components/messages/SequenceDiagram/HandlerTooltip.vue","../../../../frontend/src/components/messages/SequenceDiagram/RouteTooltip.vue","../../../../frontend/src/components/messages/SequenceDiagram/tooltipOverlay.ts","../../../../frontend/src/components/messages/SequenceDiagram.vue","../../../../frontend/src/composables/contentTypeParser.ts","../../../../frontend/src/components/messages/BodyView.vue","../../../../frontend/src/components/messages/HeadersView.vue","../../../../frontend/src/components/messages/StacktraceFormatter.vue","../../../../frontend/src/components/messages/StacktraceView.vue","../../../../frontend/src/components/messages/DeleteMessageButton.vue","../../../../frontend/src/components/messages/RestoreMessageButton.vue","../../../../frontend/src/components/messages/RetryMessageButton.vue","../../../../frontend/src/components/failedmessages/EditMessageHeader.vue","../../../../frontend/src/components/failedmessages/EditRetryDialog.vue","../../../../frontend/src/components/failedmessages/EditIgnoredDialog.vue","../../../../frontend/src/components/messages/EditAndRetryButton.vue","../../../../frontend/src/components/messages/ExportMessageButton.vue","../../../../frontend/src/components/TabsLayout.vue","../../../../frontend/src/components/messages/MetadataLabel.vue","../../../../frontend/src/stores/SagaDiagramStore.ts","../../../../frontend/src/composables/typeHumanizer.ts","../../../../frontend/src/composables/deliveryDelayParser.ts","../../../../frontend/src/components/messages/SagaDiagram/SagaDiagramParser.ts","../../../../frontend/src/assets/NoSaga.svg","../../../../frontend/src/components/messages/SagaDiagram/NoSagaData.vue","../../../../frontend/src/components/messages/SagaDiagram/SagaPluginNeeded.vue","../../../../frontend/src/components/messages/SagaDiagram/SagaHeader.vue","../../../../frontend/src/assets/diff-maximize.svg","../../../../frontend/src/assets/diff-close.svg","../../../../frontend/src/components/MaximizableCodeEditor.vue","../../../../frontend/src/components/messages/SagaDiagram/MessageDataBox.vue","../../../../frontend/src/assets/TimeoutIcon.svg","../../../../frontend/src/assets/SagaTimeoutIcon.svg","../../../../frontend/src/components/messages/SagaDiagram/SagaOutgoingTimeoutMessage.vue","../../../../frontend/src/assets/command.svg","../../../../frontend/src/assets/event.svg","../../../../frontend/src/components/messages/SagaDiagram/SagaOutgoingMessage.vue","../../../../frontend/node_modules/diff/libesm/diff/base.js","../../../../frontend/node_modules/diff/libesm/diff/character.js","../../../../frontend/node_modules/diff/libesm/util/string.js","../../../../frontend/node_modules/diff/libesm/diff/word.js","../../../../frontend/node_modules/diff/libesm/util/params.js","../../../../frontend/node_modules/diff/libesm/diff/line.js","../../../../frontend/node_modules/diff/libesm/diff/sentence.js","../../../../frontend/node_modules/diff/libesm/diff/css.js","../../../../frontend/src/components/messages/DiffContent.vue","../../../../frontend/src/components/messages/DiffViewer.vue","../../../../frontend/src/assets/SagaInitiatedIcon.svg","../../../../frontend/src/assets/SagaUpdatedIcon.svg","../../../../frontend/src/assets/timeout.svg","../../../../frontend/src/components/messages/SagaDiagram/SagaUpdateNode.vue","../../../../frontend/src/assets/SagaCompletedIcon.svg","../../../../frontend/src/components/messages/SagaDiagram/SagaCompletedNode.vue","../../../../frontend/src/components/messages/SagaDiagram.vue","../../../../frontend/src/components/messages/MessageView.vue"],"sourcesContent":["import { getCurrentScope, onScopeDispose, isRef, reactive, unref, toRefs as toRefs$1, customRef, ref, readonly, watch, getCurrentInstance, nextTick, computed, toValue as toValue$1, shallowRef, markRaw, inject, effectScope, toRef, onBeforeMount, defineComponent, createPropsRestProxy, onMounted, openBlock, createElementBlock, normalizeClass, renderSlot, h, Fragment, normalizeStyle, createCommentVNode, createElementVNode, mergeProps, createBlock, resolveDynamicComponent, createTextVNode, toDisplayString, useAttrs, provide, onBeforeUnmount, createVNode, withCtx, resolveComponent, renderList, Teleport, isMemoSame, useSlots, onUnmounted } from \"vue\";\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isDef$1 = (val) => typeof val !== \"undefined\";\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst noop$3 = () => {\n};\nfunction createFilterWrapper(filter2, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter2(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter2,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter2);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout: timeout2, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n stop == null ? void 0 : stop();\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout2 != null) {\n promises.push(\n promiseTimeout(timeout2, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout: timeout2, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n stop == null ? void 0 : stop();\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout2 != null) {\n promises.push(\n promiseTimeout(timeout2, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array2 = Array.from(v);\n return array2.includes(value) || array2.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\nconst defaultWindow = isClient ? window : void 0;\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop$3;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\nfunction createKeyPredicate$1(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate$1(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => isDef$1(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = ref(initialValue);\n let isUpdating = false;\n watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n nextTick(() => isUpdating = false);\n }\n }\n );\n watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\nvar noop$2 = { value: () => {\n} };\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t))\n throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\nfunction Dispatch(_) {\n this._ = _;\n}\nfunction parseTypenames$1(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t))\n throw new Error(\"unknown type: \" + t);\n return { type: t, name };\n });\n}\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._, T = parseTypenames$1(typename + \"\", _), t, i = -1, n = T.length;\n if (arguments.length < 2) {\n while (++i < n)\n if ((t = (typename = T[i]).type) && (t = get$1(_[t], typename.name)))\n return t;\n return;\n }\n if (callback != null && typeof callback !== \"function\")\n throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type)\n _[t] = set$1(_[t], typename.name, callback);\n else if (callback == null)\n for (t in _)\n _[t] = set$1(_[t], typename.name, null);\n }\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _)\n copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0)\n for (var args = new Array(n), i = 0, n, t; i < n; ++i)\n args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type))\n throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type))\n throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i)\n t[i].value.apply(that, args);\n }\n};\nfunction get$1(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\nfunction set$1(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop$2, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null)\n type.push({ name, value: callback });\n return type;\n}\nvar xhtml = \"http://www.w3.org/1999/xhtml\";\nconst namespaces = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction namespace(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\")\n name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? { space: namespaces[prefix], local: name } : name;\n}\nfunction creatorInherit(name) {\n return function() {\n var document2 = this.ownerDocument, uri = this.namespaceURI;\n return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name) : document2.createElementNS(uri, name);\n };\n}\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\nfunction creator(name) {\n var fullname = namespace(name);\n return (fullname.local ? creatorFixed : creatorInherit)(fullname);\n}\nfunction none() {\n}\nfunction selector(selector2) {\n return selector2 == null ? none : function() {\n return this.querySelector(selector2);\n };\n}\nfunction selection_select(select2) {\n if (typeof select2 !== \"function\")\n select2 = selector(select2);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n return new Selection$1(subgroups, this._parents);\n}\nfunction array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\nfunction empty() {\n return [];\n}\nfunction selectorAll(selector2) {\n return selector2 == null ? empty : function() {\n return this.querySelectorAll(selector2);\n };\n}\nfunction arrayAll(select2) {\n return function() {\n return array(select2.apply(this, arguments));\n };\n}\nfunction selection_selectAll(select2) {\n if (typeof select2 === \"function\")\n select2 = arrayAll(select2);\n else\n select2 = selectorAll(select2);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select2.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n return new Selection$1(subgroups, parents);\n}\nfunction matcher(selector2) {\n return function() {\n return this.matches(selector2);\n };\n}\nfunction childMatcher(selector2) {\n return function(node) {\n return node.matches(selector2);\n };\n}\nvar find = Array.prototype.find;\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\nfunction childFirst() {\n return this.firstElementChild;\n}\nfunction selection_selectChild(match) {\n return this.select(match == null ? childFirst : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\nvar filter = Array.prototype.filter;\nfunction children() {\n return Array.from(this.children);\n}\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\nfunction selection_selectChildren(match) {\n return this.selectAll(match == null ? children : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\nfunction selection_filter(match) {\n if (typeof match !== \"function\")\n match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Selection$1(subgroups, this._parents);\n}\nfunction sparse(update) {\n return new Array(update.length);\n}\nfunction selection_enter() {\n return new Selection$1(this._enter || this._groups.map(sparse), this._parents);\n}\nfunction EnterNode(parent, datum2) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum2;\n}\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) {\n return this._parent.insertBefore(child, this._next);\n },\n insertBefore: function(child, next) {\n return this._parent.insertBefore(child, next);\n },\n querySelector: function(selector2) {\n return this._parent.querySelector(selector2);\n },\n querySelectorAll: function(selector2) {\n return this._parent.querySelectorAll(selector2);\n }\n};\nfunction constant$3(x) {\n return function() {\n return x;\n };\n}\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0, node, groupLength = group.length, dataLength = data.length;\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i, node, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && nodeByKeyValue.get(keyValues[i]) === node) {\n exit[i] = node;\n }\n }\n}\nfunction datum(node) {\n return node.__data__;\n}\nfunction selection_data(value, key) {\n if (!arguments.length)\n return Array.from(this, datum);\n var bind = key ? bindKey : bindIndex, parents = this._parents, groups = this._groups;\n if (typeof value !== \"function\")\n value = constant$3(value);\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents)), dataLength = data.length, enterGroup = enter[j] = new Array(dataLength), updateGroup = update[j] = new Array(dataLength), exitGroup = exit[j] = new Array(groupLength);\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1)\n i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength)\n ;\n previous._next = next || null;\n }\n }\n }\n update = new Selection$1(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data ? data : Array.from(data);\n}\nfunction selection_exit() {\n return new Selection$1(this._exit || this._groups.map(sparse), this._parents);\n}\nfunction selection_join(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter)\n enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update)\n update = update.selection();\n }\n if (onexit == null)\n exit.remove();\n else\n onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\nfunction selection_merge(context) {\n var selection2 = context.selection ? context.selection() : context;\n for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Selection$1(merges, this._parents);\n}\nfunction selection_order() {\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4)\n next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n}\nfunction selection_sort(compare) {\n if (!compare)\n compare = ascending;\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n return new Selection$1(sortgroups, this._parents).order();\n}\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\nfunction selection_call() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\nfunction selection_nodes() {\n return Array.from(this);\n}\nfunction selection_node() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node)\n return node;\n }\n }\n return null;\n}\nfunction selection_size() {\n let size = 0;\n for (const node of this)\n ++size;\n return size;\n}\nfunction selection_empty() {\n return !this.node();\n}\nfunction selection_each(callback) {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n callback.call(node, node.__data__, i, group);\n }\n }\n return this;\n}\nfunction attrRemove$1(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS$1(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant$1(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\nfunction attrConstantNS$1(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\nfunction attrFunction$1(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttribute(name);\n else\n this.setAttribute(name, v);\n };\n}\nfunction attrFunctionNS$1(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.removeAttributeNS(fullname.space, fullname.local);\n else\n this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\nfunction selection_attr(name, value) {\n var fullname = namespace(name);\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local ? node.getAttributeNS(fullname.space, fullname.local) : node.getAttribute(fullname);\n }\n return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === \"function\" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));\n}\nfunction defaultView(node) {\n return node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView;\n}\nfunction styleRemove$1(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant$1(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\nfunction styleFunction$1(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n this.style.removeProperty(name);\n else\n this.style.setProperty(name, v, priority);\n };\n}\nfunction selection_style(name, value, priority) {\n return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === \"function\" ? styleFunction$1 : styleConstant$1)(name, value, priority == null ? \"\" : priority)) : styleValue(this.node(), name);\n}\nfunction styleValue(node, name) {\n return node.style.getPropertyValue(name) || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\nfunction propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null)\n delete this[name];\n else\n this[name] = v;\n };\n}\nfunction selection_property(name, value) {\n return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === \"function\" ? propertyFunction : propertyConstant)(name, value)) : this.node()[name];\n}\nfunction classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.add(names[i]);\n}\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n)\n list.remove(names[i]);\n}\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\nfunction selection_classed(name, value) {\n var names = classArray(name + \"\");\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n)\n if (!list.contains(names[i]))\n return false;\n return true;\n }\n return this.each((typeof value === \"function\" ? classedFunction : value ? classedTrue : classedFalse)(names, value));\n}\nfunction textRemove() {\n this.textContent = \"\";\n}\nfunction textConstant$1(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction$1(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\nfunction selection_text(value) {\n return arguments.length ? this.each(value == null ? textRemove : (typeof value === \"function\" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;\n}\nfunction htmlRemove() {\n this.innerHTML = \"\";\n}\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\nfunction selection_html(value) {\n return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === \"function\" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;\n}\nfunction raise() {\n if (this.nextSibling)\n this.parentNode.appendChild(this);\n}\nfunction selection_raise() {\n return this.each(raise);\n}\nfunction lower() {\n if (this.previousSibling)\n this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\nfunction selection_lower() {\n return this.each(lower);\n}\nfunction selection_append(name) {\n var create2 = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create2.apply(this, arguments));\n });\n}\nfunction constantNull() {\n return null;\n}\nfunction selection_insert(name, before) {\n var create2 = typeof name === \"function\" ? name : creator(name), select2 = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);\n });\n}\nfunction remove() {\n var parent = this.parentNode;\n if (parent)\n parent.removeChild(this);\n}\nfunction selection_remove() {\n return this.each(remove);\n}\nfunction selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\nfunction selection_clone(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\nfunction selection_datum(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.node().__data__;\n}\nfunction contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0)\n name = t.slice(i + 1), t = t.slice(0, i);\n return { type: t, name };\n });\n}\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on)\n return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i)\n on.length = i;\n else\n delete this.__on;\n };\n}\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on)\n for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = { type: typename.type, name: typename.name, value, listener, options };\n if (!on)\n this.__on = [o];\n else\n on.push(o);\n };\n}\nfunction selection_on(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on)\n for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i)\n this.each(on(typenames[i], value, options));\n return this;\n}\nfunction dispatchEvent(node, type, params) {\n var window2 = defaultView(node), event = window2.CustomEvent;\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window2.document.createEvent(\"Event\");\n if (params)\n event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else\n event.initEvent(type, false, false);\n }\n node.dispatchEvent(event);\n}\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\nfunction selection_dispatch(type, params) {\n return this.each((typeof params === \"function\" ? dispatchFunction : dispatchConstant)(type, params));\n}\nfunction* selection_iterator() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i])\n yield node;\n }\n }\n}\nvar root = [null];\nfunction Selection$1(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\nfunction selection() {\n return new Selection$1([[document.documentElement]], root);\n}\nfunction selection_selection() {\n return this;\n}\nSelection$1.prototype = selection.prototype = {\n constructor: Selection$1,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\nfunction select(selector2) {\n return typeof selector2 === \"string\" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root);\n}\nfunction sourceEvent(event) {\n let sourceEvent2;\n while (sourceEvent2 = event.sourceEvent)\n event = sourceEvent2;\n return event;\n}\nfunction pointer(event, node) {\n event = sourceEvent(event);\n if (node === void 0)\n node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\nconst nonpassive = { passive: false };\nconst nonpassivecapture = { capture: true, passive: false };\nfunction nopropagation$1(event) {\n event.stopImmediatePropagation();\n}\nfunction noevent$1(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\nfunction dragDisable(view) {\n var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", noevent$1, nonpassivecapture);\n if (\"onselectstart\" in root2) {\n selection2.on(\"selectstart.drag\", noevent$1, nonpassivecapture);\n } else {\n root2.__noselect = root2.style.MozUserSelect;\n root2.style.MozUserSelect = \"none\";\n }\n}\nfunction yesdrag(view, noclick) {\n var root2 = view.document.documentElement, selection2 = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection2.on(\"click.drag\", noevent$1, nonpassivecapture);\n setTimeout(function() {\n selection2.on(\"click.drag\", null);\n }, 0);\n }\n if (\"onselectstart\" in root2) {\n selection2.on(\"selectstart.drag\", null);\n } else {\n root2.style.MozUserSelect = root2.__noselect;\n delete root2.__noselect;\n }\n}\nconst constant$2 = (x) => () => x;\nfunction DragEvent(type, {\n sourceEvent: sourceEvent2,\n subject,\n target,\n identifier,\n active,\n x,\n y,\n dx,\n dy,\n dispatch: dispatch2\n}) {\n Object.defineProperties(this, {\n type: { value: type, enumerable: true, configurable: true },\n sourceEvent: { value: sourceEvent2, enumerable: true, configurable: true },\n subject: { value: subject, enumerable: true, configurable: true },\n target: { value: target, enumerable: true, configurable: true },\n identifier: { value: identifier, enumerable: true, configurable: true },\n active: { value: active, enumerable: true, configurable: true },\n x: { value: x, enumerable: true, configurable: true },\n y: { value: y, enumerable: true, configurable: true },\n dx: { value: dx, enumerable: true, configurable: true },\n dy: { value: dy, enumerable: true, configurable: true },\n _: { value: dispatch2 }\n });\n}\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\nfunction defaultFilter$1(event) {\n return !event.ctrlKey && !event.button;\n}\nfunction defaultContainer() {\n return this.parentNode;\n}\nfunction defaultSubject(event, d) {\n return d == null ? { x: event.x, y: event.y } : d;\n}\nfunction defaultTouchable$1() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction drag() {\n var filter2 = defaultFilter$1, container = defaultContainer, subject = defaultSubject, touchable = defaultTouchable$1, gestures = {}, listeners = dispatch(\"start\", \"drag\", \"end\"), active = 0, mousedownx, mousedowny, mousemoving, touchending, clickDistance2 = 0;\n function drag2(selection2) {\n selection2.on(\"mousedown.drag\", mousedowned).filter(touchable).on(\"touchstart.drag\", touchstarted).on(\"touchmove.drag\", touchmoved, nonpassive).on(\"touchend.drag touchcancel.drag\", touchended).style(\"touch-action\", \"none\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n function mousedowned(event, d) {\n if (touchending || !filter2.call(this, event, d))\n return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture)\n return;\n select(event.view).on(\"mousemove.drag\", mousemoved, nonpassivecapture).on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n dragDisable(event.view);\n nopropagation$1(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n function mousemoved(event) {\n noevent$1(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent$1(event);\n gestures.mouse(\"end\", event);\n }\n function touchstarted(event, d) {\n if (!filter2.call(this, event, d))\n return;\n var touches = event.changedTouches, c = container.call(this, event, d), n = touches.length, i, gesture;\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation$1(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n function touchmoved(event) {\n var touches = event.changedTouches, n = touches.length, i, gesture;\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent$1(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n function touchended(event) {\n var touches = event.changedTouches, n = touches.length, i, gesture;\n if (touchending)\n clearTimeout(touchending);\n touchending = setTimeout(function() {\n touchending = null;\n }, 500);\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation$1(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n function beforestart(that, container2, event, d, identifier, touch) {\n var dispatch2 = listeners.copy(), p = pointer(touch || event, container2), dx, dy, s;\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag2,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch: dispatch2\n }), d)) == null)\n return;\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n return function gesture(type, event2, touch2) {\n var p0 = p, n;\n switch (type) {\n case \"start\":\n gestures[identifier] = gesture, n = active++;\n break;\n case \"end\":\n delete gestures[identifier], --active;\n case \"drag\":\n p = pointer(touch2 || event2, container2), n = active;\n break;\n }\n dispatch2.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event2,\n subject: s,\n target: drag2,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch: dispatch2\n }),\n d\n );\n };\n }\n drag2.filter = function(_) {\n return arguments.length ? (filter2 = typeof _ === \"function\" ? _ : constant$2(!!_), drag2) : filter2;\n };\n drag2.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant$2(_), drag2) : container;\n };\n drag2.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant$2(_), drag2) : subject;\n };\n drag2.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant$2(!!_), drag2) : touchable;\n };\n drag2.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag2 : value;\n };\n drag2.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag2) : Math.sqrt(clickDistance2);\n };\n return drag2;\n}\nfunction define(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\nfunction extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition)\n prototype[key] = definition[key];\n return prototype;\n}\nfunction Color() {\n}\nvar darker = 0.7;\nvar brighter = 1 / darker;\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\", reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\", reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`), reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`), reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`), reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`), reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`), reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\nvar named = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n};\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\nfunction color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n}\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n}\nfunction rgba(r, g, b, a) {\n if (a <= 0)\n r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\nfunction rgbConvert(o) {\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\nfunction rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\nfunction Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\nfunction hsla(h2, s, l, a) {\n if (a <= 0)\n h2 = s = l = NaN;\n else if (l <= 0 || l >= 1)\n h2 = s = NaN;\n else if (s <= 0)\n h2 = NaN;\n return new Hsl(h2, s, l, a);\n}\nfunction hslConvert(o) {\n if (o instanceof Hsl)\n return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color))\n o = color(o);\n if (!o)\n return new Hsl();\n if (o instanceof Hsl)\n return o;\n o = o.rgb();\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h2 = NaN, s = max - min, l = (max + min) / 2;\n if (s) {\n if (r === max)\n h2 = (g - b) / s + (g < b) * 6;\n else if (g === max)\n h2 = (b - r) / s + 2;\n else\n h2 = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h2 *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h2;\n }\n return new Hsl(h2, s, l, o.opacity);\n}\nfunction hsl(h2, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h2) : new Hsl(h2, s, l, opacity == null ? 1 : opacity);\n}\nfunction Hsl(h2, s, l, opacity) {\n this.h = +h2;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h2 = this.h % 360 + (this.h < 0) * 360, s = isNaN(h2) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h2 >= 240 ? h2 - 240 : h2 + 120, m1, m2),\n hsl2rgb(h2, m1, m2),\n hsl2rgb(h2 < 120 ? h2 + 240 : h2 - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\nfunction hsl2rgb(h2, m1, m2) {\n return (h2 < 60 ? m1 + (m2 - m1) * h2 / 60 : h2 < 180 ? m2 : h2 < 240 ? m1 + (m2 - m1) * (240 - h2) / 60 : m1) * 255;\n}\nconst constant$1 = (x) => () => x;\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\nfunction gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant$1(isNaN(a) ? b : a);\n };\n}\nfunction nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant$1(isNaN(a) ? b : a);\n}\nconst interpolateRgb = function rgbGamma(y) {\n var color2 = gamma(y);\n function rgb$1(start2, end) {\n var r = color2((start2 = rgb(start2)).r, (end = rgb(end)).r), g = color2(start2.g, end.g), b = color2(start2.b, end.b), opacity = nogamma(start2.opacity, end.opacity);\n return function(t) {\n start2.r = r(t);\n start2.g = g(t);\n start2.b = b(t);\n start2.opacity = opacity(t);\n return start2 + \"\";\n };\n }\n rgb$1.gamma = rgbGamma;\n return rgb$1;\n}(1);\nfunction numberArray(a, b) {\n if (!b)\n b = [];\n var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;\n return function(t) {\n for (i = 0; i < n; ++i)\n c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\nfunction isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\nfunction genericArray(a, b) {\n var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;\n for (i = 0; i < na; ++i)\n x[i] = interpolate$1(a[i], b[i]);\n for (; i < nb; ++i)\n c[i] = b[i];\n return function(t) {\n for (i = 0; i < na; ++i)\n c[i] = x[i](t);\n return c;\n };\n}\nfunction date(a, b) {\n var d = /* @__PURE__ */ new Date();\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\nfunction interpolateNumber(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\nfunction object(a, b) {\n var i = {}, c = {}, k;\n if (a === null || typeof a !== \"object\")\n a = {};\n if (b === null || typeof b !== \"object\")\n b = {};\n for (k in b) {\n if (k in a) {\n i[k] = interpolate$1(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i)\n c[k] = i[k](t);\n return c;\n };\n}\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, reB = new RegExp(reA.source, \"g\");\nfunction zero(b) {\n return function() {\n return b;\n };\n}\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\nfunction interpolateString(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i])\n s[i] += bm;\n else\n s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({ i, x: interpolateNumber(am, bm) });\n }\n bi = reB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i])\n s[i] += bs;\n else\n s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2)\n s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n}\nfunction interpolate$1(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant$1(b) : (t === \"number\" ? interpolateNumber : t === \"string\" ? (c = color(b)) ? (b = c, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object : interpolateNumber)(a, b);\n}\nvar degrees = 180 / Math.PI;\nvar identity$1 = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\nfunction decompose(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b))\n a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d)\n c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d))\n c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c)\n a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX,\n scaleY\n };\n}\nvar svgNode;\nfunction parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity$1 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\nfunction parseSvg(value) {\n if (value == null)\n return identity$1;\n if (!svgNode)\n svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate()))\n return identity$1;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180)\n b += 360;\n else if (b - a > 180)\n a += 360;\n q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: interpolateNumber(a, b) });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({ i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: interpolateNumber(a, b) });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({ i: i - 4, x: interpolateNumber(xa, xb) }, { i: i - 2, x: interpolateNumber(ya, yb) });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function(a, b) {\n var s = [], q = [];\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n)\n s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\nvar interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nvar interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\nvar epsilon2 = 1e-12;\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\nconst interpolateZoom = function zoomRho(rho, rho2, rho4) {\n function zoom2(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n i.duration = S * 1e3 * rho / Math.SQRT2;\n return i;\n }\n zoom2.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n return zoom2;\n}(Math.SQRT2, 2, 4);\nvar frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === \"object\" && performance.now ? performance : Date, setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n setTimeout(f, 17);\n};\nfunction now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\nfunction clearNow() {\n clockNow = 0;\n}\nfunction Timer() {\n this._call = this._time = this._next = null;\n}\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\")\n throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail)\n taskTail._next = this;\n else\n taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\nfunction timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n}\nfunction timerFlush() {\n now();\n ++frame;\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0)\n t._call.call(void 0, e);\n t = t._next;\n }\n --frame;\n}\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout$1 = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\nfunction poke() {\n var now2 = clock.now(), delay = now2 - clockLast;\n if (delay > pokeDelay)\n clockSkew -= delay, clockLast = now2;\n}\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time)\n time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\nfunction sleep(time) {\n if (frame)\n return;\n if (timeout$1)\n timeout$1 = clearTimeout(timeout$1);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity)\n timeout$1 = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval)\n interval = clearInterval(interval);\n } else {\n if (!interval)\n clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\nfunction timeout(callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart((elapsed) => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\nvar CREATED = 0;\nvar SCHEDULED = 1;\nvar STARTING = 2;\nvar STARTED = 3;\nvar RUNNING = 4;\nvar ENDING = 5;\nvar ENDED = 6;\nfunction schedule(node, name, id2, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules)\n node.__transition = {};\n else if (id2 in schedules)\n return;\n create(node, id2, {\n name,\n index,\n // For context during callback.\n group,\n // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\nfunction init(node, id2) {\n var schedule2 = get(node, id2);\n if (schedule2.state > CREATED)\n throw new Error(\"too late; already scheduled\");\n return schedule2;\n}\nfunction set(node, id2) {\n var schedule2 = get(node, id2);\n if (schedule2.state > STARTED)\n throw new Error(\"too late; already running\");\n return schedule2;\n}\nfunction get(node, id2) {\n var schedule2 = node.__transition;\n if (!schedule2 || !(schedule2 = schedule2[id2]))\n throw new Error(\"transition not found\");\n return schedule2;\n}\nfunction create(node, id2, self) {\n var schedules = node.__transition, tween;\n schedules[id2] = self;\n self.timer = timer(schedule2, 0, self.time);\n function schedule2(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start2, self.delay, self.time);\n if (self.delay <= elapsed)\n start2(elapsed - self.delay);\n }\n function start2(elapsed) {\n var i, j, n, o;\n if (self.state !== SCHEDULED)\n return stop();\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name)\n continue;\n if (o.state === STARTED)\n return timeout(start2);\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n } else if (+i < id2) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING)\n return;\n self.state = STARTED;\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1), i = -1, n = tween.length;\n while (++i < n) {\n tween[i].call(node, t);\n }\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id2];\n for (var i in schedules)\n return;\n delete node.__transition;\n }\n}\nfunction interrupt(node, name) {\n var schedules = node.__transition, schedule2, active, empty2 = true, i;\n if (!schedules)\n return;\n name = name == null ? null : name + \"\";\n for (i in schedules) {\n if ((schedule2 = schedules[i]).name !== name) {\n empty2 = false;\n continue;\n }\n active = schedule2.state > STARTING && schedule2.state < ENDING;\n schedule2.state = ENDED;\n schedule2.timer.stop();\n schedule2.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule2.index, schedule2.group);\n delete schedules[i];\n }\n if (empty2)\n delete node.__transition;\n}\nfunction selection_interrupt(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\nfunction tweenRemove(id2, name) {\n var tween0, tween1;\n return function() {\n var schedule2 = set(this, id2), tween = schedule2.tween;\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n schedule2.tween = tween1;\n };\n}\nfunction tweenFunction(id2, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n var schedule2 = set(this, id2), tween = schedule2.tween;\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = { name, value }, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n)\n tween1.push(t);\n }\n schedule2.tween = tween1;\n };\n}\nfunction transition_tween(name, value) {\n var id2 = this._id;\n name += \"\";\n if (arguments.length < 2) {\n var tween = get(this.node(), id2).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n return this.each((value == null ? tweenRemove : tweenFunction)(id2, name, value));\n}\nfunction tweenValue(transition, name, value) {\n var id2 = transition._id;\n transition.each(function() {\n var schedule2 = set(this, id2);\n (schedule2.value || (schedule2.value = {}))[name] = value.apply(this, arguments);\n });\n return function(node) {\n return get(node, id2).value[name];\n };\n}\nfunction interpolate(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber : b instanceof color ? interpolateRgb : (c = color(b)) ? (b = c, interpolateRgb) : interpolateString)(a, b);\n}\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\nfunction attrConstant(name, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction attrConstantNS(fullname, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction attrFunction(name, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction attrFunctionNS(fullname, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null)\n return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction transition_attr(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransformSvg : interpolate;\n return this.attrTween(name, typeof value === \"function\" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_attrTween(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\nfunction delayFunction(id2, value) {\n return function() {\n init(this, id2).delay = +value.apply(this, arguments);\n };\n}\nfunction delayConstant(id2, value) {\n return value = +value, function() {\n init(this, id2).delay = value;\n };\n}\nfunction transition_delay(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? delayFunction : delayConstant)(id2, value)) : get(this.node(), id2).delay;\n}\nfunction durationFunction(id2, value) {\n return function() {\n set(this, id2).duration = +value.apply(this, arguments);\n };\n}\nfunction durationConstant(id2, value) {\n return value = +value, function() {\n set(this, id2).duration = value;\n };\n}\nfunction transition_duration(value) {\n var id2 = this._id;\n return arguments.length ? this.each((typeof value === \"function\" ? durationFunction : durationConstant)(id2, value)) : get(this.node(), id2).duration;\n}\nfunction easeConstant(id2, value) {\n if (typeof value !== \"function\")\n throw new Error();\n return function() {\n set(this, id2).ease = value;\n };\n}\nfunction transition_ease(value) {\n var id2 = this._id;\n return arguments.length ? this.each(easeConstant(id2, value)) : get(this.node(), id2).ease;\n}\nfunction easeVarying(id2, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\")\n throw new Error();\n set(this, id2).ease = v;\n };\n}\nfunction transition_easeVarying(value) {\n if (typeof value !== \"function\")\n throw new Error();\n return this.each(easeVarying(this._id, value));\n}\nfunction transition_filter(match) {\n if (typeof match !== \"function\")\n match = matcher(match);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\nfunction transition_merge(transition) {\n if (transition._id !== this._id)\n throw new Error();\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n return new Transition(merges, this._parents, this._name, this._id);\n}\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0)\n t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\nfunction onFunction(id2, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule2 = sit(this, id2), on = schedule2.on;\n if (on !== on0)\n (on1 = (on0 = on).copy()).on(name, listener);\n schedule2.on = on1;\n };\n}\nfunction transition_on(name, listener) {\n var id2 = this._id;\n return arguments.length < 2 ? get(this.node(), id2).on.on(name) : this.each(onFunction(id2, name, listener));\n}\nfunction removeFunction(id2) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition)\n if (+i !== id2)\n return;\n if (parent)\n parent.removeChild(this);\n };\n}\nfunction transition_remove() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\nfunction transition_select(select2) {\n var name = this._name, id2 = this._id;\n if (typeof select2 !== \"function\")\n select2 = selector(select2);\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select2.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node)\n subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id2, i, subgroup, get(node, id2));\n }\n }\n }\n return new Transition(subgroups, this._parents, name, id2);\n}\nfunction transition_selectAll(select2) {\n var name = this._name, id2 = this._id;\n if (typeof select2 !== \"function\")\n select2 = selectorAll(select2);\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children2 = select2.call(node, node.__data__, i, group), child, inherit2 = get(node, id2), k = 0, l = children2.length; k < l; ++k) {\n if (child = children2[k]) {\n schedule(child, name, id2, k, children2, inherit2);\n }\n }\n subgroups.push(children2);\n parents.push(node);\n }\n }\n }\n return new Transition(subgroups, parents, name, id2);\n}\nvar Selection = selection.prototype.constructor;\nfunction transition_selection() {\n return new Selection(this._groups, this._parents);\n}\nfunction styleNull(name, interpolate2) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), string1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);\n };\n}\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\nfunction styleConstant(name, interpolate2, value1) {\n var string00, string1 = value1 + \"\", interpolate0;\n return function() {\n var string0 = styleValue(this, name);\n return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);\n };\n}\nfunction styleFunction(name, interpolate2, value) {\n var string00, string10, interpolate0;\n return function() {\n var string0 = styleValue(this, name), value1 = value(this), string1 = value1 + \"\";\n if (value1 == null)\n string1 = value1 = (this.style.removeProperty(name), styleValue(this, name));\n return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));\n };\n}\nfunction styleMaybeRemove(id2, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove2;\n return function() {\n var schedule2 = set(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name)) : void 0;\n if (on !== on0 || listener0 !== listener)\n (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n schedule2.on = on1;\n };\n}\nfunction transition_style(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransformCss : interpolate;\n return value == null ? this.styleTween(name, styleNull(name, i)).on(\"end.style.\" + name, styleRemove(name)) : typeof value === \"function\" ? this.styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value))).each(styleMaybeRemove(this._id, name)) : this.styleTween(name, styleConstant(name, i, value), priority).on(\"end.style.\" + name, null);\n}\nfunction styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_styleTween(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\nfunction transition_text(value) {\n return this.tween(\"text\", typeof value === \"function\" ? textFunction(tweenValue(this, \"text\", value)) : textConstant(value == null ? \"\" : value + \"\"));\n}\nfunction textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0)\n t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\nfunction transition_textTween(value) {\n var key = \"text\";\n if (arguments.length < 1)\n return (key = this.tween(key)) && key._value;\n if (value == null)\n return this.tween(key, null);\n if (typeof value !== \"function\")\n throw new Error();\n return this.tween(key, textTween(value));\n}\nfunction transition_transition() {\n var name = this._name, id0 = this._id, id1 = newId();\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit2 = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit2.time + inherit2.delay + inherit2.duration,\n delay: 0,\n duration: inherit2.duration,\n ease: inherit2.ease\n });\n }\n }\n }\n return new Transition(groups, this._parents, name, id1);\n}\nfunction transition_end() {\n var on0, on1, that = this, id2 = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = { value: reject }, end = { value: function() {\n if (--size === 0)\n resolve();\n } };\n that.each(function() {\n var schedule2 = set(this, id2), on = schedule2.on;\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n schedule2.on = on1;\n });\n if (size === 0)\n resolve();\n });\n}\nvar id = 0;\nfunction Transition(groups, parents, name, id2) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id2;\n}\nfunction newId() {\n return ++id;\n}\nvar selection_prototype = selection.prototype;\nTransition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\nfunction cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\nvar defaultTiming = {\n time: null,\n // Set on use.\n delay: 0,\n duration: 250,\n ease: cubicInOut\n};\nfunction inherit(node, id2) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id2])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id2} not found`);\n }\n }\n return timing;\n}\nfunction selection_transition(name) {\n var id2, timing;\n if (name instanceof Transition) {\n id2 = name._id, name = name._name;\n } else {\n id2 = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id2, i, group, timing || inherit(node, id2));\n }\n }\n }\n return new Transition(groups, this._parents, name, id2);\n}\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\nconst constant = (x) => () => x;\nfunction ZoomEvent(type, {\n sourceEvent: sourceEvent2,\n target,\n transform,\n dispatch: dispatch2\n}) {\n Object.defineProperties(this, {\n type: { value: type, enumerable: true, configurable: true },\n sourceEvent: { value: sourceEvent2, enumerable: true, configurable: true },\n target: { value: target, enumerable: true, configurable: true },\n transform: { value: transform, enumerable: true, configurable: true },\n _: { value: dispatch2 }\n });\n}\nfunction Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\nvar identity = new Transform(1, 0, 0);\nTransform.prototype;\nfunction nopropagation(event) {\n event.stopImmediatePropagation();\n}\nfunction noevent(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === \"wheel\") && !event.button;\n}\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * (event.ctrlKey ? 10 : 1);\n}\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || \"ontouchstart\" in this;\n}\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0], dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0], dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1], dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\nfunction zoom() {\n var filter2 = defaultFilter, extent = defaultExtent, constrain = defaultConstrain, wheelDelta2 = defaultWheelDelta, touchable = defaultTouchable, scaleExtent = [0, Infinity], translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]], duration = 250, interpolate2 = interpolateZoom, listeners = dispatch(\"start\", \"zoom\", \"end\"), touchstarting, touchfirst, touchending, touchDelay = 500, wheelDelay = 150, clickDistance2 = 0, tapDistance = 10;\n function zoom2(selection2) {\n selection2.property(\"__zoom\", defaultTransform).on(\"wheel.zoom\", wheeled, { passive: false }).on(\"mousedown.zoom\", mousedowned).on(\"dblclick.zoom\", dblclicked).filter(touchable).on(\"touchstart.zoom\", touchstarted).on(\"touchmove.zoom\", touchmoved).on(\"touchend.zoom touchcancel.zoom\", touchended).style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n zoom2.transform = function(collection, transform, point, event) {\n var selection2 = collection.selection ? collection.selection() : collection;\n selection2.property(\"__zoom\", defaultTransform);\n if (collection !== selection2) {\n schedule2(collection, transform, point, event);\n } else {\n selection2.interrupt().each(function() {\n gesture(this, arguments).event(event).start().zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform).end();\n });\n }\n };\n zoom2.scaleBy = function(selection2, k, p, event) {\n zoom2.scaleTo(selection2, function() {\n var k0 = this.__zoom.k, k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n zoom2.scaleTo = function(selection2, k, p, event) {\n zoom2.transform(selection2, function() {\n var e = extent.apply(this, arguments), t0 = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p, p1 = t0.invert(p0), k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n zoom2.translateBy = function(selection2, x, y, event) {\n zoom2.transform(selection2, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n zoom2.translateTo = function(selection2, x, y, p, event) {\n zoom2.transform(selection2, function() {\n var e = extent.apply(this, arguments), t = this.__zoom, p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n function centroid(extent2) {\n return [(+extent2[0][0] + +extent2[1][0]) / 2, (+extent2[0][1] + +extent2[1][1]) / 2];\n }\n function schedule2(transition, transform, point, event) {\n transition.on(\"start.zoom\", function() {\n gesture(this, arguments).event(event).start();\n }).on(\"interrupt.zoom end.zoom\", function() {\n gesture(this, arguments).event(event).end();\n }).tween(\"zoom\", function() {\n var that = this, args = arguments, g = gesture(that, args).event(event), e = extent.apply(that, args), p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point, w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]), a = that.__zoom, b = typeof transform === \"function\" ? transform.apply(that, args) : transform, i = interpolate2(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1)\n t = b;\n else {\n var l = i(t), k = w / l[2];\n t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k);\n }\n g.zoom(null, t);\n };\n });\n }\n function gesture(that, args, clean) {\n return !clean && that.__zooming || new Gesture(that, args);\n }\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n Gesture.prototype = {\n event: function(event) {\n if (event)\n this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\")\n this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\")\n this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\")\n this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom2,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n function wheeled(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var g = gesture(this, args).event(event), t = this.__zoom, k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta2.apply(this, arguments)))), p = pointer(event);\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n } else if (t.k === k)\n return;\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n function mousedowned(event, ...args) {\n if (touchending || !filter2.apply(this, arguments))\n return;\n var currentTarget = event.currentTarget, g = gesture(this, args, true).event(event), v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true), p = pointer(event, currentTarget), x0 = event.clientX, y0 = event.clientY;\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n function mousemoved(event2) {\n noevent(event2);\n if (!g.moved) {\n var dx = event2.clientX - x0, dy = event2.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event2).zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event2, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n function mouseupped(event2) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n yesdrag(event2.view, g.moved);\n noevent(event2);\n g.event(event2).end();\n }\n }\n function dblclicked(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var t0 = this.__zoom, p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), p1 = t0.invert(p0), k1 = t0.k * (event.shiftKey ? 0.5 : 2), t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n noevent(event);\n if (duration > 0)\n select(this).transition().duration(duration).call(schedule2, t1, p0, event);\n else\n select(this).call(zoom2.transform, t1, p0, event);\n }\n function touchstarted(event, ...args) {\n if (!filter2.apply(this, arguments))\n return;\n var touches = event.touches, n = touches.length, g = gesture(this, args, event.changedTouches.length === n).event(event), started, i, t, p;\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0)\n g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2])\n g.touch1 = p, g.taps = 0;\n }\n if (touchstarting)\n touchstarting = clearTimeout(touchstarting);\n if (started) {\n if (g.taps < 2)\n touchfirst = p[0], touchstarting = setTimeout(function() {\n touchstarting = null;\n }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n function touchmoved(event, ...args) {\n if (!this.__zooming)\n return;\n var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t, p, l;\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier)\n g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier)\n g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1], p1 = g.touch1[0], l1 = g.touch1[1], dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp, dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n } else if (g.touch0)\n p = g.touch0[0], l = g.touch0[1];\n else\n return;\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n function touchended(event, ...args) {\n if (!this.__zooming)\n return;\n var g = gesture(this, args).event(event), touches = event.changedTouches, n = touches.length, i, t;\n nopropagation(event);\n if (touchending)\n clearTimeout(touchending);\n touchending = setTimeout(function() {\n touchending = null;\n }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier)\n delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier)\n delete g.touch1;\n }\n if (g.touch1 && !g.touch0)\n g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0)\n g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p)\n p.apply(this, arguments);\n }\n }\n }\n }\n zoom2.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta2 = typeof _ === \"function\" ? _ : constant(+_), zoom2) : wheelDelta2;\n };\n zoom2.filter = function(_) {\n return arguments.length ? (filter2 = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : filter2;\n };\n zoom2.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom2) : touchable;\n };\n zoom2.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom2) : extent;\n };\n zoom2.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom2) : [scaleExtent[0], scaleExtent[1]];\n };\n zoom2.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom2) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n zoom2.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom2) : constrain;\n };\n zoom2.duration = function(_) {\n return arguments.length ? (duration = +_, zoom2) : duration;\n };\n zoom2.interpolate = function(_) {\n return arguments.length ? (interpolate2 = _, zoom2) : interpolate2;\n };\n zoom2.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom2 : value;\n };\n zoom2.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom2) : Math.sqrt(clickDistance2);\n };\n zoom2.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom2) : tapDistance;\n };\n return zoom2;\n}\nvar Position = /* @__PURE__ */ ((Position2) => {\n Position2[\"Left\"] = \"left\";\n Position2[\"Top\"] = \"top\";\n Position2[\"Right\"] = \"right\";\n Position2[\"Bottom\"] = \"bottom\";\n return Position2;\n})(Position || {});\nvar SelectionMode = /* @__PURE__ */ ((SelectionMode2) => {\n SelectionMode2[\"Partial\"] = \"partial\";\n SelectionMode2[\"Full\"] = \"full\";\n return SelectionMode2;\n})(SelectionMode || {});\nvar ConnectionLineType = /* @__PURE__ */ ((ConnectionLineType2) => {\n ConnectionLineType2[\"Bezier\"] = \"default\";\n ConnectionLineType2[\"SimpleBezier\"] = \"simple-bezier\";\n ConnectionLineType2[\"Straight\"] = \"straight\";\n ConnectionLineType2[\"Step\"] = \"step\";\n ConnectionLineType2[\"SmoothStep\"] = \"smoothstep\";\n return ConnectionLineType2;\n})(ConnectionLineType || {});\nvar ConnectionMode = /* @__PURE__ */ ((ConnectionMode2) => {\n ConnectionMode2[\"Strict\"] = \"strict\";\n ConnectionMode2[\"Loose\"] = \"loose\";\n return ConnectionMode2;\n})(ConnectionMode || {});\nvar MarkerType = /* @__PURE__ */ ((MarkerType2) => {\n MarkerType2[\"Arrow\"] = \"arrow\";\n MarkerType2[\"ArrowClosed\"] = \"arrowclosed\";\n return MarkerType2;\n})(MarkerType || {});\nvar PanOnScrollMode = /* @__PURE__ */ ((PanOnScrollMode2) => {\n PanOnScrollMode2[\"Free\"] = \"free\";\n PanOnScrollMode2[\"Vertical\"] = \"vertical\";\n PanOnScrollMode2[\"Horizontal\"] = \"horizontal\";\n return PanOnScrollMode2;\n})(PanOnScrollMode || {});\nvar PanelPosition = /* @__PURE__ */ ((PanelPosition2) => {\n PanelPosition2[\"TopLeft\"] = \"top-left\";\n PanelPosition2[\"TopCenter\"] = \"top-center\";\n PanelPosition2[\"TopRight\"] = \"top-right\";\n PanelPosition2[\"BottomLeft\"] = \"bottom-left\";\n PanelPosition2[\"BottomCenter\"] = \"bottom-center\";\n PanelPosition2[\"BottomRight\"] = \"bottom-right\";\n return PanelPosition2;\n})(PanelPosition || {});\nconst inputTags = [\"INPUT\", \"SELECT\", \"TEXTAREA\"];\nconst defaultDoc = typeof document !== \"undefined\" ? document : null;\nfunction isInputDOMNode(event) {\n var _a, _b;\n const target = ((_b = (_a = event.composedPath) == null ? void 0 : _a.call(event)) == null ? void 0 : _b[0]) || event.target;\n const hasAttribute = typeof (target == null ? void 0 : target.hasAttribute) === \"function\" ? target.hasAttribute(\"contenteditable\") : false;\n const closest = typeof (target == null ? void 0 : target.closest) === \"function\" ? target.closest(\".nokey\") : null;\n return inputTags.includes(target == null ? void 0 : target.nodeName) || hasAttribute || !!closest;\n}\nfunction wasModifierPressed(event) {\n return event.ctrlKey || event.metaKey || event.shiftKey || event.altKey;\n}\nfunction isKeyMatch(pressedKey, keyToMatch, pressedKeys, isKeyUp) {\n const keyCombination = keyToMatch.replace(\"+\", \"\\n\").replace(\"\\n\\n\", \"\\n+\").split(\"\\n\").map((k) => k.trim().toLowerCase());\n if (keyCombination.length === 1) {\n return pressedKey.toLowerCase() === keyToMatch.toLowerCase();\n }\n if (!isKeyUp) {\n pressedKeys.add(pressedKey.toLowerCase());\n }\n const isMatch = keyCombination.every(\n (key, index) => pressedKeys.has(key) && Array.from(pressedKeys.values())[index] === keyCombination[index]\n );\n if (isKeyUp) {\n pressedKeys.delete(pressedKey.toLowerCase());\n }\n return isMatch;\n}\nfunction createKeyPredicate(keyFilter, pressedKeys) {\n return (event) => {\n if (!event.code && !event.key) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keyFilter);\n if (Array.isArray(keyFilter)) {\n return keyFilter.some((key) => isKeyMatch(event[keyOrCode], key, pressedKeys, event.type === \"keyup\"));\n }\n return isKeyMatch(event[keyOrCode], keyFilter, pressedKeys, event.type === \"keyup\");\n };\n}\nfunction useKeyOrCode(code, keysToWatch) {\n return keysToWatch.includes(code) ? \"code\" : \"key\";\n}\nfunction useKeyPress(keyFilter, options) {\n const target = computed(() => toValue$1(options == null ? void 0 : options.target) ?? defaultDoc);\n const isPressed = shallowRef(toValue$1(keyFilter) === true);\n let modifierPressed = false;\n const pressedKeys = /* @__PURE__ */ new Set();\n let currentFilter = createKeyFilterFn(toValue$1(keyFilter));\n watch(\n () => toValue$1(keyFilter),\n (nextKeyFilter, previousKeyFilter) => {\n if (typeof previousKeyFilter === \"boolean\" && typeof nextKeyFilter !== \"boolean\") {\n reset();\n }\n currentFilter = createKeyFilterFn(nextKeyFilter);\n },\n {\n immediate: true\n }\n );\n useEventListener([\"blur\", \"contextmenu\"], reset);\n onKeyStroke(\n (...args) => currentFilter(...args),\n (e) => {\n var _a, _b;\n const actInsideInputWithModifier = toValue$1(options == null ? void 0 : options.actInsideInputWithModifier) ?? true;\n const preventDefault = toValue$1(options == null ? void 0 : options.preventDefault) ?? false;\n modifierPressed = wasModifierPressed(e);\n const preventAction = (!modifierPressed || modifierPressed && !actInsideInputWithModifier) && isInputDOMNode(e);\n if (preventAction) {\n return;\n }\n const target2 = ((_b = (_a = e.composedPath) == null ? void 0 : _a.call(e)) == null ? void 0 : _b[0]) || e.target;\n const isInteractiveElement = (target2 == null ? void 0 : target2.nodeName) === \"BUTTON\" || (target2 == null ? void 0 : target2.nodeName) === \"A\";\n if (!preventDefault && (modifierPressed || !isInteractiveElement)) {\n e.preventDefault();\n }\n isPressed.value = true;\n },\n { eventName: \"keydown\", target }\n );\n onKeyStroke(\n (...args) => currentFilter(...args),\n (e) => {\n const actInsideInputWithModifier = toValue$1(options == null ? void 0 : options.actInsideInputWithModifier) ?? true;\n if (isPressed.value) {\n const preventAction = (!modifierPressed || modifierPressed && !actInsideInputWithModifier) && isInputDOMNode(e);\n if (preventAction) {\n return;\n }\n modifierPressed = false;\n isPressed.value = false;\n }\n },\n { eventName: \"keyup\", target }\n );\n function reset() {\n modifierPressed = false;\n pressedKeys.clear();\n isPressed.value = toValue$1(keyFilter) === true;\n }\n function createKeyFilterFn(keyFilter2) {\n if (keyFilter2 === null) {\n reset();\n return () => false;\n }\n if (typeof keyFilter2 === \"boolean\") {\n reset();\n isPressed.value = keyFilter2;\n return () => false;\n }\n if (Array.isArray(keyFilter2) || typeof keyFilter2 === \"string\") {\n return createKeyPredicate(keyFilter2, pressedKeys);\n }\n return keyFilter2;\n }\n return isPressed;\n}\nconst ARIA_NODE_DESC_KEY = \"vue-flow__node-desc\";\nconst ARIA_EDGE_DESC_KEY = \"vue-flow__edge-desc\";\nconst ARIA_LIVE_MESSAGE = \"vue-flow__aria-live\";\nconst elementSelectionKeys = [\"Enter\", \" \", \"Escape\"];\nconst arrowKeyDiffs = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 }\n};\nfunction nodeToRect(node) {\n return {\n ...node.computedPosition || { x: 0, y: 0 },\n width: node.dimensions.width || 0,\n height: node.dimensions.height || 0\n };\n}\nfunction getOverlappingArea(rectA, rectB) {\n const xOverlap = Math.max(0, Math.min(rectA.x + rectA.width, rectB.x + rectB.width) - Math.max(rectA.x, rectB.x));\n const yOverlap = Math.max(0, Math.min(rectA.y + rectA.height, rectB.y + rectB.height) - Math.max(rectA.y, rectB.y));\n return Math.ceil(xOverlap * yOverlap);\n}\nfunction getDimensions(node) {\n return {\n width: node.offsetWidth,\n height: node.offsetHeight\n };\n}\nfunction clamp(val, min = 0, max = 1) {\n return Math.min(Math.max(val, min), max);\n}\nfunction clampPosition(position, extent) {\n return {\n x: clamp(position.x, extent[0][0], extent[1][0]),\n y: clamp(position.y, extent[0][1], extent[1][1])\n };\n}\nfunction getHostForElement(element) {\n const doc = element.getRootNode();\n if (\"elementFromPoint\" in doc) {\n return doc;\n }\n return window.document;\n}\nfunction isEdge(element) {\n return element && typeof element === \"object\" && \"id\" in element && \"source\" in element && \"target\" in element;\n}\nfunction isGraphEdge(element) {\n return isEdge(element) && \"sourceNode\" in element && \"targetNode\" in element;\n}\nfunction isNode(element) {\n return element && typeof element === \"object\" && \"id\" in element && \"position\" in element && !isEdge(element);\n}\nfunction isGraphNode(element) {\n return isNode(element) && \"computedPosition\" in element;\n}\nfunction isNumeric(n) {\n return !Number.isNaN(n) && Number.isFinite(n);\n}\nfunction isRect(obj) {\n return isNumeric(obj.width) && isNumeric(obj.height) && isNumeric(obj.x) && isNumeric(obj.y);\n}\nfunction parseNode(node, existingNode, parentNode) {\n const initialState = {\n id: node.id.toString(),\n type: node.type ?? \"default\",\n dimensions: markRaw({\n width: 0,\n height: 0\n }),\n computedPosition: markRaw({\n z: 0,\n ...node.position\n }),\n // todo: shouldn't be defined initially, as we want to use handleBounds to check if a node was actually initialized or not\n handleBounds: {\n source: [],\n target: []\n },\n draggable: void 0,\n selectable: void 0,\n connectable: void 0,\n focusable: void 0,\n selected: false,\n dragging: false,\n resizing: false,\n initialized: false,\n isParent: false,\n position: {\n x: 0,\n y: 0\n },\n data: isDef(node.data) ? node.data : {},\n events: markRaw(isDef(node.events) ? node.events : {})\n };\n return Object.assign(existingNode ?? initialState, node, { id: node.id.toString(), parentNode });\n}\nfunction parseEdge(edge, existingEdge, defaultEdgeOptions) {\n var _a, _b;\n const initialState = {\n id: edge.id.toString(),\n type: edge.type ?? (existingEdge == null ? void 0 : existingEdge.type) ?? \"default\",\n source: edge.source.toString(),\n target: edge.target.toString(),\n sourceHandle: (_a = edge.sourceHandle) == null ? void 0 : _a.toString(),\n targetHandle: (_b = edge.targetHandle) == null ? void 0 : _b.toString(),\n updatable: edge.updatable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.updatable),\n selectable: edge.selectable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.selectable),\n focusable: edge.focusable ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.focusable),\n data: isDef(edge.data) ? edge.data : {},\n events: markRaw(isDef(edge.events) ? edge.events : {}),\n label: edge.label ?? \"\",\n interactionWidth: edge.interactionWidth ?? (defaultEdgeOptions == null ? void 0 : defaultEdgeOptions.interactionWidth),\n ...defaultEdgeOptions ?? {}\n };\n return Object.assign(existingEdge ?? initialState, edge, { id: edge.id.toString() });\n}\nfunction getConnectedElements(nodeOrId, nodes, edges, dir) {\n const id2 = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const connectedIds = /* @__PURE__ */ new Set();\n const origin = dir === \"source\" ? \"target\" : \"source\";\n for (const edge of edges) {\n if (edge[origin] === id2) {\n connectedIds.add(edge[dir]);\n }\n }\n return nodes.filter((n) => connectedIds.has(n.id));\n}\nfunction getOutgoers(...args) {\n if (args.length === 3) {\n const [nodeOrId2, nodes, edges] = args;\n return getConnectedElements(nodeOrId2, nodes, edges, \"target\");\n }\n const [nodeOrId, elements] = args;\n const nodeId = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const outgoers = elements.filter((el) => isEdge(el) && el.source === nodeId);\n return outgoers.map((edge) => elements.find((el) => isNode(el) && el.id === edge.target));\n}\nfunction getIncomers(...args) {\n if (args.length === 3) {\n const [nodeOrId2, nodes, edges] = args;\n return getConnectedElements(nodeOrId2, nodes, edges, \"source\");\n }\n const [nodeOrId, elements] = args;\n const nodeId = typeof nodeOrId === \"string\" ? nodeOrId : nodeOrId.id;\n const incomers = elements.filter((el) => isEdge(el) && el.target === nodeId);\n return incomers.map((edge) => elements.find((el) => isNode(el) && el.id === edge.source));\n}\nfunction getEdgeId({ source, sourceHandle, target, targetHandle }) {\n return `vueflow__edge-${source}${sourceHandle ?? \"\"}-${target}${targetHandle ?? \"\"}`;\n}\nfunction connectionExists(edge, elements) {\n return elements.some(\n (el) => isEdge(el) && el.source === edge.source && el.target === edge.target && (el.sourceHandle === edge.sourceHandle || !el.sourceHandle && !edge.sourceHandle) && (el.targetHandle === edge.targetHandle || !el.targetHandle && !edge.targetHandle)\n );\n}\nfunction addEdge(edgeParams, elements, defaults) {\n if (!edgeParams.source || !edgeParams.target) {\n warn(\"Can't create edge. An edge needs a source and a target.\");\n return elements;\n }\n let edge;\n if (isEdge(edgeParams)) {\n edge = { ...edgeParams };\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams)\n };\n }\n edge = parseEdge(edge, void 0, defaults);\n if (connectionExists(edge, elements)) {\n return elements;\n }\n elements.push(edge);\n return elements;\n}\nfunction updateEdge(oldEdge, newConnection, elements) {\n if (!newConnection.source || !newConnection.target) {\n warn(\"Can't create new edge. An edge needs a source and a target.\");\n return elements;\n }\n const foundEdge = elements.find((e) => isEdge(e) && e.id === oldEdge.id);\n if (!foundEdge) {\n warn(`The old edge with id=${oldEdge.id} does not exist.`);\n return elements;\n }\n const edge = {\n ...oldEdge,\n id: getEdgeId(newConnection),\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle\n };\n elements.splice(elements.indexOf(foundEdge), 1, edge);\n return elements.filter((e) => e.id !== oldEdge.id);\n}\nfunction rendererPointToPoint({ x, y }, { x: tx, y: ty, zoom: tScale }) {\n return {\n x: x * tScale + tx,\n y: y * tScale + ty\n };\n}\nfunction pointToRendererPoint({ x, y }, { x: tx, y: ty, zoom: tScale }, snapToGrid = false, snapGrid = [1, 1]) {\n const position = {\n x: (x - tx) / tScale,\n y: (y - ty) / tScale\n };\n return snapToGrid ? snapPosition(position, snapGrid) : position;\n}\nfunction getBoundsOfBoxes(box1, box2) {\n return {\n x: Math.min(box1.x, box2.x),\n y: Math.min(box1.y, box2.y),\n x2: Math.max(box1.x2, box2.x2),\n y2: Math.max(box1.y2, box2.y2)\n };\n}\nfunction rectToBox({ x, y, width, height }) {\n return {\n x,\n y,\n x2: x + width,\n y2: y + height\n };\n}\nfunction boxToRect({ x, y, x2, y2 }) {\n return {\n x,\n y,\n width: x2 - x,\n height: y2 - y\n };\n}\nfunction getBoundsofRects(rect1, rect2) {\n return boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2)));\n}\nfunction getRectOfNodes(nodes) {\n let box = {\n x: Number.POSITIVE_INFINITY,\n y: Number.POSITIVE_INFINITY,\n x2: Number.NEGATIVE_INFINITY,\n y2: Number.NEGATIVE_INFINITY\n };\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n box = getBoundsOfBoxes(\n box,\n rectToBox({\n ...node.computedPosition,\n ...node.dimensions\n })\n );\n }\n return boxToRect(box);\n}\nfunction getNodesInside(nodes, rect, viewport = { x: 0, y: 0, zoom: 1 }, partially = false, excludeNonSelectableNodes = false) {\n const paneRect = {\n ...pointToRendererPoint(rect, viewport),\n width: rect.width / viewport.zoom,\n height: rect.height / viewport.zoom\n };\n const visibleNodes = [];\n for (const node of nodes) {\n const { dimensions, selectable = true, hidden = false } = node;\n const width = dimensions.width ?? node.width ?? null;\n const height = dimensions.height ?? node.height ?? null;\n if (excludeNonSelectableNodes && !selectable || hidden) {\n continue;\n }\n const overlappingArea = getOverlappingArea(paneRect, nodeToRect(node));\n const notInitialized = width === null || height === null;\n const partiallyVisible = partially && overlappingArea > 0;\n const area = (width ?? 0) * (height ?? 0);\n const isVisible = notInitialized || partiallyVisible || overlappingArea >= area;\n if (isVisible || node.dragging) {\n visibleNodes.push(node);\n }\n }\n return visibleNodes;\n}\nfunction getConnectedEdges(nodesOrId, edges) {\n const nodeIds = /* @__PURE__ */ new Set();\n if (typeof nodesOrId === \"string\") {\n nodeIds.add(nodesOrId);\n } else if (nodesOrId.length >= 1) {\n for (const n of nodesOrId) {\n nodeIds.add(n.id);\n }\n }\n return edges.filter((edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target));\n}\nfunction parsePadding(padding, viewport) {\n if (typeof padding === \"number\") {\n return Math.floor((viewport - viewport / (1 + padding)) * 0.5);\n }\n if (typeof padding === \"string\" && padding.endsWith(\"px\")) {\n const paddingValue = Number.parseFloat(padding);\n if (!Number.isNaN(paddingValue)) {\n return Math.floor(paddingValue);\n }\n }\n if (typeof padding === \"string\" && padding.endsWith(\"%\")) {\n const paddingValue = Number.parseFloat(padding);\n if (!Number.isNaN(paddingValue)) {\n return Math.floor(viewport * paddingValue * 0.01);\n }\n }\n warn(`The padding value \"${padding}\" is invalid. Please provide a number or a string with a valid unit (px or %).`);\n return 0;\n}\nfunction parsePaddings(padding, width, height) {\n if (typeof padding === \"string\" || typeof padding === \"number\") {\n const paddingY = parsePadding(padding, height);\n const paddingX = parsePadding(padding, width);\n return {\n top: paddingY,\n right: paddingX,\n bottom: paddingY,\n left: paddingX,\n x: paddingX * 2,\n y: paddingY * 2\n };\n }\n if (typeof padding === \"object\") {\n const top = parsePadding(padding.top ?? padding.y ?? 0, height);\n const bottom = parsePadding(padding.bottom ?? padding.y ?? 0, height);\n const left = parsePadding(padding.left ?? padding.x ?? 0, width);\n const right = parsePadding(padding.right ?? padding.x ?? 0, width);\n return { top, right, bottom, left, x: left + right, y: top + bottom };\n }\n return { top: 0, right: 0, bottom: 0, left: 0, x: 0, y: 0 };\n}\nfunction calculateAppliedPaddings(bounds, x, y, zoom2, width, height) {\n const { x: left, y: top } = rendererPointToPoint(bounds, { x, y, zoom: zoom2 });\n const { x: boundRight, y: boundBottom } = rendererPointToPoint(\n { x: bounds.x + bounds.width, y: bounds.y + bounds.height },\n {\n x,\n y,\n zoom: zoom2\n }\n );\n const right = width - boundRight;\n const bottom = height - boundBottom;\n return {\n left: Math.floor(left),\n top: Math.floor(top),\n right: Math.floor(right),\n bottom: Math.floor(bottom)\n };\n}\nfunction getTransformForBounds(bounds, width, height, minZoom, maxZoom, padding = 0.1) {\n const p = parsePaddings(padding, width, height);\n const xZoom = (width - p.x) / bounds.width;\n const yZoom = (height - p.y) / bounds.height;\n const zoom2 = Math.min(xZoom, yZoom);\n const clampedZoom = clamp(zoom2, minZoom, maxZoom);\n const boundsCenterX = bounds.x + bounds.width / 2;\n const boundsCenterY = bounds.y + bounds.height / 2;\n const x = width / 2 - boundsCenterX * clampedZoom;\n const y = height / 2 - boundsCenterY * clampedZoom;\n const newPadding = calculateAppliedPaddings(bounds, x, y, clampedZoom, width, height);\n const offset = {\n left: Math.min(newPadding.left - p.left, 0),\n top: Math.min(newPadding.top - p.top, 0),\n right: Math.min(newPadding.right - p.right, 0),\n bottom: Math.min(newPadding.bottom - p.bottom, 0)\n };\n return {\n x: x - offset.left + offset.right,\n y: y - offset.top + offset.bottom,\n zoom: clampedZoom\n };\n}\nfunction getXYZPos(parentPos, computedPosition) {\n return {\n x: computedPosition.x + parentPos.x,\n y: computedPosition.y + parentPos.y,\n z: (parentPos.z > computedPosition.z ? parentPos.z : computedPosition.z) + 1\n };\n}\nfunction isParentSelected(node, nodeLookup) {\n if (!node.parentNode) {\n return false;\n }\n const parent = nodeLookup.get(node.parentNode);\n if (!parent) {\n return false;\n }\n if (parent.selected) {\n return true;\n }\n return isParentSelected(parent, nodeLookup);\n}\nfunction getMarkerId(marker, vueFlowId) {\n if (typeof marker === \"undefined\") {\n return \"\";\n }\n if (typeof marker === \"string\") {\n return marker;\n }\n const idPrefix = vueFlowId ? `${vueFlowId}__` : \"\";\n return `${idPrefix}${Object.keys(marker).sort().map((key) => `${key}=${marker[key]}`).join(\"&\")}`;\n}\nfunction wheelDelta(event) {\n const factor = event.ctrlKey && isMacOs() ? 10 : 1;\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 2e-3) * factor;\n}\nfunction calcAutoPanVelocity(value, min, max) {\n if (value < min) {\n return clamp(Math.abs(value - min), 1, min) / min;\n }\n if (value > max) {\n return -clamp(Math.abs(value - max), 1, min) / min;\n }\n return 0;\n}\nfunction calcAutoPan(pos, bounds, speed = 15, distance2 = 40) {\n const xMovement = calcAutoPanVelocity(pos.x, distance2, bounds.width - distance2) * speed;\n const yMovement = calcAutoPanVelocity(pos.y, distance2, bounds.height - distance2) * speed;\n return [xMovement, yMovement];\n}\nfunction handleParentExpand(updateItem, parent) {\n if (parent) {\n const extendWidth = updateItem.position.x + updateItem.dimensions.width - parent.dimensions.width;\n const extendHeight = updateItem.position.y + updateItem.dimensions.height - parent.dimensions.height;\n if (extendWidth > 0 || extendHeight > 0 || updateItem.position.x < 0 || updateItem.position.y < 0) {\n let parentStyles = {};\n if (typeof parent.style === \"function\") {\n parentStyles = { ...parent.style(parent) };\n } else if (parent.style) {\n parentStyles = { ...parent.style };\n }\n parentStyles.width = parentStyles.width ?? `${parent.dimensions.width}px`;\n parentStyles.height = parentStyles.height ?? `${parent.dimensions.height}px`;\n if (extendWidth > 0) {\n if (typeof parentStyles.width === \"string\") {\n const currWidth = Number(parentStyles.width.replace(\"px\", \"\"));\n parentStyles.width = `${currWidth + extendWidth}px`;\n } else {\n parentStyles.width += extendWidth;\n }\n }\n if (extendHeight > 0) {\n if (typeof parentStyles.height === \"string\") {\n const currWidth = Number(parentStyles.height.replace(\"px\", \"\"));\n parentStyles.height = `${currWidth + extendHeight}px`;\n } else {\n parentStyles.height += extendHeight;\n }\n }\n if (updateItem.position.x < 0) {\n const xDiff = Math.abs(updateItem.position.x);\n parent.position.x = parent.position.x - xDiff;\n if (typeof parentStyles.width === \"string\") {\n const currWidth = Number(parentStyles.width.replace(\"px\", \"\"));\n parentStyles.width = `${currWidth + xDiff}px`;\n } else {\n parentStyles.width += xDiff;\n }\n updateItem.position.x = 0;\n }\n if (updateItem.position.y < 0) {\n const yDiff = Math.abs(updateItem.position.y);\n parent.position.y = parent.position.y - yDiff;\n if (typeof parentStyles.height === \"string\") {\n const currWidth = Number(parentStyles.height.replace(\"px\", \"\"));\n parentStyles.height = `${currWidth + yDiff}px`;\n } else {\n parentStyles.height += yDiff;\n }\n updateItem.position.y = 0;\n }\n parent.dimensions.width = Number(parentStyles.width.toString().replace(\"px\", \"\"));\n parent.dimensions.height = Number(parentStyles.height.toString().replace(\"px\", \"\"));\n if (typeof parent.style === \"function\") {\n parent.style = (p) => {\n const styleFunc = parent.style;\n return {\n ...styleFunc(p),\n ...parentStyles\n };\n };\n } else {\n parent.style = {\n ...parent.style,\n ...parentStyles\n };\n }\n }\n }\n}\nfunction applyChanges(changes, elements) {\n var _a, _b;\n const addRemoveChanges = changes.filter((c) => c.type === \"add\" || c.type === \"remove\");\n for (const change of addRemoveChanges) {\n if (change.type === \"add\") {\n const index = elements.findIndex((el) => el.id === change.item.id);\n if (index === -1) {\n elements.push(change.item);\n }\n } else if (change.type === \"remove\") {\n const index = elements.findIndex((el) => el.id === change.id);\n if (index !== -1) {\n elements.splice(index, 1);\n }\n }\n }\n const elementIds = elements.map((el) => el.id);\n for (const element of elements) {\n for (const currentChange of changes) {\n if (currentChange.id !== element.id) {\n continue;\n }\n switch (currentChange.type) {\n case \"select\":\n element.selected = currentChange.selected;\n break;\n case \"position\":\n if (isGraphNode(element)) {\n if (typeof currentChange.position !== \"undefined\") {\n element.position = currentChange.position;\n }\n if (typeof currentChange.dragging !== \"undefined\") {\n element.dragging = currentChange.dragging;\n }\n if (element.expandParent && element.parentNode) {\n const parent = elements[elementIds.indexOf(element.parentNode)];\n if (parent && isGraphNode(parent)) {\n handleParentExpand(element, parent);\n }\n }\n }\n break;\n case \"dimensions\":\n if (isGraphNode(element)) {\n if (typeof currentChange.dimensions !== \"undefined\") {\n element.dimensions = currentChange.dimensions;\n }\n if (typeof currentChange.updateStyle !== \"undefined\" && currentChange.updateStyle) {\n element.style = {\n ...element.style || {},\n width: `${(_a = currentChange.dimensions) == null ? void 0 : _a.width}px`,\n height: `${(_b = currentChange.dimensions) == null ? void 0 : _b.height}px`\n };\n }\n if (typeof currentChange.resizing !== \"undefined\") {\n element.resizing = currentChange.resizing;\n }\n if (element.expandParent && element.parentNode) {\n const parent = elements[elementIds.indexOf(element.parentNode)];\n if (parent && isGraphNode(parent)) {\n const parentInit = !!parent.dimensions.width && !!parent.dimensions.height;\n if (!parentInit) {\n nextTick(() => {\n handleParentExpand(element, parent);\n });\n } else {\n handleParentExpand(element, parent);\n }\n }\n }\n }\n break;\n }\n }\n }\n return elements;\n}\nfunction applyEdgeChanges(changes, edges) {\n return applyChanges(changes, edges);\n}\nfunction applyNodeChanges(changes, nodes) {\n return applyChanges(changes, nodes);\n}\nfunction createSelectionChange(id2, selected) {\n return {\n id: id2,\n type: \"select\",\n selected\n };\n}\nfunction createAdditionChange(item) {\n return {\n item,\n type: \"add\"\n };\n}\nfunction createNodeRemoveChange(id2) {\n return {\n id: id2,\n type: \"remove\"\n };\n}\nfunction createEdgeRemoveChange(id2, source, target, sourceHandle, targetHandle) {\n return {\n id: id2,\n source,\n target,\n sourceHandle: sourceHandle || null,\n targetHandle: targetHandle || null,\n type: \"remove\"\n };\n}\nfunction getSelectionChanges(items, selectedIds = /* @__PURE__ */ new Set(), mutateItem = false) {\n const changes = [];\n for (const [id2, item] of items) {\n const willBeSelected = selectedIds.has(id2);\n if (!(item.selected === void 0 && !willBeSelected) && item.selected !== willBeSelected) {\n if (mutateItem) {\n item.selected = willBeSelected;\n }\n changes.push(createSelectionChange(item.id, willBeSelected));\n }\n }\n return changes;\n}\nconst noop$1 = () => {\n};\nfunction createExtendedEventHook(defaultHandler) {\n const listeners = /* @__PURE__ */ new Set();\n let emitter = noop$1;\n let hasEmitListeners = () => false;\n const hasListeners = () => listeners.size > 0 || hasEmitListeners();\n const setEmitter = (fn) => {\n emitter = fn;\n };\n const removeEmitter = () => {\n emitter = noop$1;\n };\n const setHasEmitListeners = (fn) => {\n hasEmitListeners = fn;\n };\n const removeHasEmitListeners = () => {\n hasEmitListeners = () => false;\n };\n const off = (fn) => {\n listeners.delete(fn);\n };\n const on = (fn) => {\n listeners.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return { off: offFn };\n };\n const trigger = (param) => {\n const queue = [emitter];\n if (hasListeners()) {\n queue.push(...listeners);\n } else if (defaultHandler) {\n queue.push(defaultHandler);\n }\n return Promise.allSettled(queue.map((fn) => fn(param)));\n };\n return {\n on,\n off,\n trigger,\n hasListeners,\n listeners,\n setEmitter,\n removeEmitter,\n setHasEmitListeners,\n removeHasEmitListeners\n };\n}\nfunction hasSelector(target, selector2, node) {\n let current = target;\n do {\n if (current && current.matches(selector2)) {\n return true;\n } else if (current === node) {\n return false;\n }\n current = current.parentElement;\n } while (current);\n return false;\n}\nfunction getDragItems(nodeLookup, nodesDraggable, mousePos, nodeId) {\n var _a, _b;\n const dragItems = /* @__PURE__ */ new Map();\n for (const [id2, node] of nodeLookup) {\n if ((node.selected || node.id === nodeId) && (!node.parentNode || !isParentSelected(node, nodeLookup)) && (node.draggable || nodesDraggable && typeof node.draggable === \"undefined\")) {\n const internalNode = nodeLookup.get(id2);\n if (internalNode) {\n dragItems.set(id2, {\n id: node.id,\n position: node.position || { x: 0, y: 0 },\n distance: {\n x: mousePos.x - ((_a = node.computedPosition) == null ? void 0 : _a.x) || 0,\n y: mousePos.y - ((_b = node.computedPosition) == null ? void 0 : _b.y) || 0\n },\n from: { x: node.computedPosition.x, y: node.computedPosition.y },\n extent: node.extent,\n parentNode: node.parentNode,\n dimensions: { ...node.dimensions },\n expandParent: node.expandParent\n });\n }\n }\n }\n return Array.from(dragItems.values());\n}\nfunction getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n}) {\n const extendedDragItems = [];\n for (const dragItem of dragItems) {\n const node = findNode(dragItem.id);\n if (node) {\n extendedDragItems.push(node);\n }\n }\n return [id2 ? extendedDragItems.find((n) => n.id === id2) : extendedDragItems[0], extendedDragItems];\n}\nfunction getExtentPadding(padding) {\n if (Array.isArray(padding)) {\n switch (padding.length) {\n case 1:\n return [padding[0], padding[0], padding[0], padding[0]];\n case 2:\n return [padding[0], padding[1], padding[0], padding[1]];\n case 3:\n return [padding[0], padding[1], padding[2], padding[1]];\n case 4:\n return padding;\n default:\n return [0, 0, 0, 0];\n }\n }\n return [padding, padding, padding, padding];\n}\nfunction getParentExtent(currentExtent, node, parent) {\n const [top, right, bottom, left] = typeof currentExtent !== \"string\" ? getExtentPadding(currentExtent.padding) : [0, 0, 0, 0];\n if (parent && typeof parent.computedPosition.x !== \"undefined\" && typeof parent.computedPosition.y !== \"undefined\" && typeof parent.dimensions.width !== \"undefined\" && typeof parent.dimensions.height !== \"undefined\") {\n return [\n [parent.computedPosition.x + left, parent.computedPosition.y + top],\n [\n parent.computedPosition.x + parent.dimensions.width - right,\n parent.computedPosition.y + parent.dimensions.height - bottom\n ]\n ];\n }\n return false;\n}\nfunction getExtent(item, triggerError, extent, parent) {\n let currentExtent = item.extent || extent;\n if ((currentExtent === \"parent\" || !Array.isArray(currentExtent) && (currentExtent == null ? void 0 : currentExtent.range) === \"parent\") && !item.expandParent) {\n if (item.parentNode && parent && item.dimensions.width && item.dimensions.height) {\n const parentExtent = getParentExtent(currentExtent, item, parent);\n if (parentExtent) {\n currentExtent = parentExtent;\n }\n } else {\n triggerError(new VueFlowError(ErrorCode.NODE_EXTENT_INVALID, item.id));\n currentExtent = extent;\n }\n } else if (Array.isArray(currentExtent)) {\n const parentX = (parent == null ? void 0 : parent.computedPosition.x) || 0;\n const parentY = (parent == null ? void 0 : parent.computedPosition.y) || 0;\n currentExtent = [\n [currentExtent[0][0] + parentX, currentExtent[0][1] + parentY],\n [currentExtent[1][0] + parentX, currentExtent[1][1] + parentY]\n ];\n } else if (currentExtent !== \"parent\" && (currentExtent == null ? void 0 : currentExtent.range) && Array.isArray(currentExtent.range)) {\n const [top, right, bottom, left] = getExtentPadding(currentExtent.padding);\n const parentX = (parent == null ? void 0 : parent.computedPosition.x) || 0;\n const parentY = (parent == null ? void 0 : parent.computedPosition.y) || 0;\n currentExtent = [\n [currentExtent.range[0][0] + parentX + left, currentExtent.range[0][1] + parentY + top],\n [currentExtent.range[1][0] + parentX - right, currentExtent.range[1][1] + parentY - bottom]\n ];\n }\n return currentExtent === \"parent\" ? [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ] : currentExtent;\n}\nfunction clampNodeExtent({ width, height }, extent) {\n return [extent[0], [extent[1][0] - (width || 0), extent[1][1] - (height || 0)]];\n}\nfunction calcNextPosition(node, nextPosition, triggerError, nodeExtent, parentNode) {\n const extent = clampNodeExtent(node.dimensions, getExtent(node, triggerError, nodeExtent, parentNode));\n const clampedPos = clampPosition(nextPosition, extent);\n return {\n position: {\n x: clampedPos.x - ((parentNode == null ? void 0 : parentNode.computedPosition.x) || 0),\n y: clampedPos.y - ((parentNode == null ? void 0 : parentNode.computedPosition.y) || 0)\n },\n computedPosition: clampedPos\n };\n}\nfunction getHandlePosition(node, handle, fallbackPosition = Position.Left, center = false) {\n const x = ((handle == null ? void 0 : handle.x) ?? 0) + node.computedPosition.x;\n const y = ((handle == null ? void 0 : handle.y) ?? 0) + node.computedPosition.y;\n const { width, height } = handle ?? getNodeDimensions(node);\n if (center) {\n return { x: x + width / 2, y: y + height / 2 };\n }\n const position = (handle == null ? void 0 : handle.position) ?? fallbackPosition;\n switch (position) {\n case Position.Top:\n return { x: x + width / 2, y };\n case Position.Right:\n return { x: x + width, y: y + height / 2 };\n case Position.Bottom:\n return { x: x + width / 2, y: y + height };\n case Position.Left:\n return { x, y: y + height / 2 };\n }\n}\nfunction getEdgeHandle(bounds, handleId) {\n if (!bounds) {\n return null;\n }\n return (!handleId ? bounds[0] : bounds.find((d) => d.id === handleId)) || null;\n}\nfunction isEdgeVisible({\n sourcePos,\n targetPos,\n sourceWidth,\n sourceHeight,\n targetWidth,\n targetHeight,\n width,\n height,\n viewport\n}) {\n const edgeBox = {\n x: Math.min(sourcePos.x, targetPos.x),\n y: Math.min(sourcePos.y, targetPos.y),\n x2: Math.max(sourcePos.x + sourceWidth, targetPos.x + targetWidth),\n y2: Math.max(sourcePos.y + sourceHeight, targetPos.y + targetHeight)\n };\n if (edgeBox.x === edgeBox.x2) {\n edgeBox.x2 += 1;\n }\n if (edgeBox.y === edgeBox.y2) {\n edgeBox.y2 += 1;\n }\n const viewBox = rectToBox({\n x: (0 - viewport.x) / viewport.zoom,\n y: (0 - viewport.y) / viewport.zoom,\n width: width / viewport.zoom,\n height: height / viewport.zoom\n });\n const xOverlap = Math.max(0, Math.min(viewBox.x2, edgeBox.x2) - Math.max(viewBox.x, edgeBox.x));\n const yOverlap = Math.max(0, Math.min(viewBox.y2, edgeBox.y2) - Math.max(viewBox.y, edgeBox.y));\n const overlappingArea = Math.ceil(xOverlap * yOverlap);\n return overlappingArea > 0;\n}\nfunction getEdgeZIndex(edge, findNode, elevateEdgesOnSelect = false) {\n const hasZIndex = typeof edge.zIndex === \"number\";\n let z = hasZIndex ? edge.zIndex : 0;\n const source = findNode(edge.source);\n const target = findNode(edge.target);\n if (!source || !target) {\n return 0;\n }\n if (elevateEdgesOnSelect) {\n z = hasZIndex ? edge.zIndex : Math.max(source.computedPosition.z || 0, target.computedPosition.z || 0);\n }\n return z;\n}\nvar ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {\n ErrorCode2[\"MISSING_STYLES\"] = \"MISSING_STYLES\";\n ErrorCode2[\"MISSING_VIEWPORT_DIMENSIONS\"] = \"MISSING_VIEWPORT_DIMENSIONS\";\n ErrorCode2[\"NODE_INVALID\"] = \"NODE_INVALID\";\n ErrorCode2[\"NODE_NOT_FOUND\"] = \"NODE_NOT_FOUND\";\n ErrorCode2[\"NODE_MISSING_PARENT\"] = \"NODE_MISSING_PARENT\";\n ErrorCode2[\"NODE_TYPE_MISSING\"] = \"NODE_TYPE_MISSING\";\n ErrorCode2[\"NODE_EXTENT_INVALID\"] = \"NODE_EXTENT_INVALID\";\n ErrorCode2[\"EDGE_INVALID\"] = \"EDGE_INVALID\";\n ErrorCode2[\"EDGE_NOT_FOUND\"] = \"EDGE_NOT_FOUND\";\n ErrorCode2[\"EDGE_SOURCE_MISSING\"] = \"EDGE_SOURCE_MISSING\";\n ErrorCode2[\"EDGE_TARGET_MISSING\"] = \"EDGE_TARGET_MISSING\";\n ErrorCode2[\"EDGE_TYPE_MISSING\"] = \"EDGE_TYPE_MISSING\";\n ErrorCode2[\"EDGE_SOURCE_TARGET_SAME\"] = \"EDGE_SOURCE_TARGET_SAME\";\n ErrorCode2[\"EDGE_SOURCE_TARGET_MISSING\"] = \"EDGE_SOURCE_TARGET_MISSING\";\n ErrorCode2[\"EDGE_ORPHANED\"] = \"EDGE_ORPHANED\";\n ErrorCode2[\"USEVUEFLOW_OPTIONS\"] = \"USEVUEFLOW_OPTIONS\";\n return ErrorCode2;\n})(ErrorCode || {});\nconst messages = {\n [\n \"MISSING_STYLES\"\n /* MISSING_STYLES */\n ]: () => `It seems that you haven't loaded the necessary styles. Please import '@vue-flow/core/dist/style.css' to ensure that the graph is rendered correctly`,\n [\n \"MISSING_VIEWPORT_DIMENSIONS\"\n /* MISSING_VIEWPORT_DIMENSIONS */\n ]: () => \"The Vue Flow parent container needs a width and a height to render the graph\",\n [\n \"NODE_INVALID\"\n /* NODE_INVALID */\n ]: (id2) => `Node is invalid\nNode: ${id2}`,\n [\n \"NODE_NOT_FOUND\"\n /* NODE_NOT_FOUND */\n ]: (id2) => `Node not found\nNode: ${id2}`,\n [\n \"NODE_MISSING_PARENT\"\n /* NODE_MISSING_PARENT */\n ]: (id2, parentId) => `Node is missing a parent\nNode: ${id2}\nParent: ${parentId}`,\n [\n \"NODE_TYPE_MISSING\"\n /* NODE_TYPE_MISSING */\n ]: (type) => `Node type is missing\nType: ${type}`,\n [\n \"NODE_EXTENT_INVALID\"\n /* NODE_EXTENT_INVALID */\n ]: (id2) => `Only child nodes can use a parent extent\nNode: ${id2}`,\n [\n \"EDGE_INVALID\"\n /* EDGE_INVALID */\n ]: (id2) => `An edge needs a source and a target\nEdge: ${id2}`,\n [\n \"EDGE_SOURCE_MISSING\"\n /* EDGE_SOURCE_MISSING */\n ]: (id2, source) => `Edge source is missing\nEdge: ${id2} \nSource: ${source}`,\n [\n \"EDGE_TARGET_MISSING\"\n /* EDGE_TARGET_MISSING */\n ]: (id2, target) => `Edge target is missing\nEdge: ${id2} \nTarget: ${target}`,\n [\n \"EDGE_TYPE_MISSING\"\n /* EDGE_TYPE_MISSING */\n ]: (type) => `Edge type is missing\nType: ${type}`,\n [\n \"EDGE_SOURCE_TARGET_SAME\"\n /* EDGE_SOURCE_TARGET_SAME */\n ]: (id2, source, target) => `Edge source and target are the same\nEdge: ${id2} \nSource: ${source} \nTarget: ${target}`,\n [\n \"EDGE_SOURCE_TARGET_MISSING\"\n /* EDGE_SOURCE_TARGET_MISSING */\n ]: (id2, source, target) => `Edge source or target is missing\nEdge: ${id2} \nSource: ${source} \nTarget: ${target}`,\n [\n \"EDGE_ORPHANED\"\n /* EDGE_ORPHANED */\n ]: (id2) => `Edge was orphaned (suddenly missing source or target) and has been removed\nEdge: ${id2}`,\n [\n \"EDGE_NOT_FOUND\"\n /* EDGE_NOT_FOUND */\n ]: (id2) => `Edge not found\nEdge: ${id2}`,\n // deprecation errors\n [\n \"USEVUEFLOW_OPTIONS\"\n /* USEVUEFLOW_OPTIONS */\n ]: () => `The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead`\n};\nclass VueFlowError extends Error {\n constructor(code, ...args) {\n var _a;\n super((_a = messages[code]) == null ? void 0 : _a.call(messages, ...args));\n this.name = \"VueFlowError\";\n this.code = code;\n this.args = args;\n }\n}\nfunction isErrorOfType(error, code) {\n return error.code === code;\n}\nfunction isMouseEvent(event) {\n return \"clientX\" in event;\n}\nfunction isUseDragEvent(event) {\n return \"sourceEvent\" in event;\n}\nfunction getEventPosition(event, bounds) {\n const isMouse = isMouseEvent(event);\n let evtX;\n let evtY;\n if (isMouse) {\n evtX = event.clientX;\n evtY = event.clientY;\n } else if (\"touches\" in event && event.touches.length > 0) {\n evtX = event.touches[0].clientX;\n evtY = event.touches[0].clientY;\n } else if (\"changedTouches\" in event && event.changedTouches.length > 0) {\n evtX = event.changedTouches[0].clientX;\n evtY = event.changedTouches[0].clientY;\n } else {\n evtX = 0;\n evtY = 0;\n }\n return {\n x: evtX - ((bounds == null ? void 0 : bounds.left) ?? 0),\n y: evtY - ((bounds == null ? void 0 : bounds.top) ?? 0)\n };\n}\nconst isMacOs = () => {\n var _a;\n return typeof navigator !== \"undefined\" && ((_a = navigator == null ? void 0 : navigator.userAgent) == null ? void 0 : _a.indexOf(\"Mac\")) >= 0;\n};\nfunction getNodeDimensions(node) {\n var _a, _b;\n return {\n width: ((_a = node.dimensions) == null ? void 0 : _a.width) ?? node.width ?? 0,\n height: ((_b = node.dimensions) == null ? void 0 : _b.height) ?? node.height ?? 0\n };\n}\nfunction snapPosition(position, snapGrid = [1, 1]) {\n return {\n x: snapGrid[0] * Math.round(position.x / snapGrid[0]),\n y: snapGrid[1] * Math.round(position.y / snapGrid[1])\n };\n}\nconst alwaysValid$1 = () => true;\nfunction resetRecentHandle(handleDomNode) {\n handleDomNode == null ? void 0 : handleDomNode.classList.remove(\"valid\", \"connecting\", \"vue-flow__handle-valid\", \"vue-flow__handle-connecting\");\n}\nfunction getNodesWithinDistance(position, nodeLookup, distance2) {\n const nodes = [];\n const rect = {\n x: position.x - distance2,\n y: position.y - distance2,\n width: distance2 * 2,\n height: distance2 * 2\n };\n for (const node of nodeLookup.values()) {\n if (getOverlappingArea(rect, nodeToRect(node)) > 0) {\n nodes.push(node);\n }\n }\n return nodes;\n}\nconst ADDITIONAL_DISTANCE = 250;\nfunction getClosestHandle(position, connectionRadius, nodeLookup, fromHandle) {\n var _a, _b;\n let closestHandles = [];\n let minDistance = Number.POSITIVE_INFINITY;\n const closeNodes = getNodesWithinDistance(position, nodeLookup, connectionRadius + ADDITIONAL_DISTANCE);\n for (const node of closeNodes) {\n const allHandles = [...((_a = node.handleBounds) == null ? void 0 : _a.source) ?? [], ...((_b = node.handleBounds) == null ? void 0 : _b.target) ?? []];\n for (const handle of allHandles) {\n if (fromHandle.nodeId === handle.nodeId && fromHandle.type === handle.type && fromHandle.id === handle.id) {\n continue;\n }\n const { x, y } = getHandlePosition(node, handle, handle.position, true);\n const distance2 = Math.sqrt((x - position.x) ** 2 + (y - position.y) ** 2);\n if (distance2 > connectionRadius) {\n continue;\n }\n if (distance2 < minDistance) {\n closestHandles = [{ ...handle, x, y }];\n minDistance = distance2;\n } else if (distance2 === minDistance) {\n closestHandles.push({ ...handle, x, y });\n }\n }\n }\n if (!closestHandles.length) {\n return null;\n }\n if (closestHandles.length > 1) {\n const oppositeHandleType = fromHandle.type === \"source\" ? \"target\" : \"source\";\n return closestHandles.find((handle) => handle.type === oppositeHandleType) ?? closestHandles[0];\n }\n return closestHandles[0];\n}\nfunction isValidHandle(event, {\n handle,\n connectionMode,\n fromNodeId,\n fromHandleId,\n fromType,\n doc,\n lib,\n flowId,\n isValidConnection = alwaysValid$1\n}, edges, nodes, findNode, nodeLookup) {\n const isTarget = fromType === \"target\";\n const handleDomNode = handle ? doc.querySelector(`.${lib}-flow__handle[data-id=\"${flowId}-${handle == null ? void 0 : handle.nodeId}-${handle == null ? void 0 : handle.id}-${handle == null ? void 0 : handle.type}\"]`) : null;\n const { x, y } = getEventPosition(event);\n const handleBelow = doc.elementFromPoint(x, y);\n const handleToCheck = (handleBelow == null ? void 0 : handleBelow.classList.contains(`${lib}-flow__handle`)) ? handleBelow : handleDomNode;\n const result = {\n handleDomNode: handleToCheck,\n isValid: false,\n connection: null,\n toHandle: null\n };\n if (handleToCheck) {\n const handleType = getHandleType(void 0, handleToCheck);\n const handleNodeId = handleToCheck.getAttribute(\"data-nodeid\");\n const handleId = handleToCheck.getAttribute(\"data-handleid\");\n const connectable = handleToCheck.classList.contains(\"connectable\");\n const connectableEnd = handleToCheck.classList.contains(\"connectableend\");\n if (!handleNodeId || !handleType) {\n return result;\n }\n const connection = {\n source: isTarget ? handleNodeId : fromNodeId,\n sourceHandle: isTarget ? handleId : fromHandleId,\n target: isTarget ? fromNodeId : handleNodeId,\n targetHandle: isTarget ? fromHandleId : handleId\n };\n result.connection = connection;\n const isConnectable = connectable && connectableEnd;\n const isValid = isConnectable && (connectionMode === ConnectionMode.Strict ? isTarget && handleType === \"source\" || !isTarget && handleType === \"target\" : handleNodeId !== fromNodeId || handleId !== fromHandleId);\n result.isValid = isValid && isValidConnection(connection, {\n nodes,\n edges,\n sourceNode: findNode(connection.source),\n targetNode: findNode(connection.target)\n });\n result.toHandle = getHandle(handleNodeId, handleType, handleId, nodeLookup, connectionMode, true);\n }\n return result;\n}\nfunction getHandleType(edgeUpdaterType, handleDomNode) {\n if (edgeUpdaterType) {\n return edgeUpdaterType;\n } else if (handleDomNode == null ? void 0 : handleDomNode.classList.contains(\"target\")) {\n return \"target\";\n } else if (handleDomNode == null ? void 0 : handleDomNode.classList.contains(\"source\")) {\n return \"source\";\n }\n return null;\n}\nfunction getConnectionStatus(isInsideConnectionRadius, isHandleValid) {\n let connectionStatus = null;\n if (isHandleValid) {\n connectionStatus = \"valid\";\n } else if (isInsideConnectionRadius && !isHandleValid) {\n connectionStatus = \"invalid\";\n }\n return connectionStatus;\n}\nfunction isConnectionValid(isInsideConnectionRadius, isHandleValid) {\n let isValid = null;\n if (isHandleValid) {\n isValid = true;\n } else if (isInsideConnectionRadius && !isHandleValid) {\n isValid = false;\n }\n return isValid;\n}\nfunction getHandle(nodeId, handleType, handleId, nodeLookup, connectionMode, withAbsolutePosition = false) {\n var _a, _b, _c;\n const node = nodeLookup.get(nodeId);\n if (!node) {\n return null;\n }\n const handles = connectionMode === ConnectionMode.Strict ? (_a = node.handleBounds) == null ? void 0 : _a[handleType] : [...((_b = node.handleBounds) == null ? void 0 : _b.source) ?? [], ...((_c = node.handleBounds) == null ? void 0 : _c.target) ?? []];\n const handle = (handleId ? handles == null ? void 0 : handles.find((h2) => h2.id === handleId) : handles == null ? void 0 : handles[0]) ?? null;\n return handle && withAbsolutePosition ? { ...handle, ...getHandlePosition(node, handle, handle.position, true) } : handle;\n}\nconst oppositePosition = {\n [Position.Left]: Position.Right,\n [Position.Right]: Position.Left,\n [Position.Top]: Position.Bottom,\n [Position.Bottom]: Position.Top\n};\nconst productionEnvs = [\"production\", \"prod\"];\nfunction warn(message, ...args) {\n if (isDev()) {\n console.warn(`[Vue Flow]: ${message}`, ...args);\n }\n}\nfunction isDev() {\n return !productionEnvs.includes(process.env.NODE_ENV || \"\");\n}\nfunction getHandleBounds(type, nodeElement, nodeBounds, zoom2, nodeId) {\n const handles = nodeElement.querySelectorAll(`.vue-flow__handle.${type}`);\n if (!(handles == null ? void 0 : handles.length)) {\n return null;\n }\n return Array.from(handles).map((handle) => {\n const handleBounds = handle.getBoundingClientRect();\n return {\n id: handle.getAttribute(\"data-handleid\"),\n type,\n nodeId,\n position: handle.getAttribute(\"data-handlepos\"),\n x: (handleBounds.left - nodeBounds.left) / zoom2,\n y: (handleBounds.top - nodeBounds.top) / zoom2,\n ...getDimensions(handle)\n };\n });\n}\nfunction handleNodeClick(node, multiSelectionActive, addSelectedNodes, removeSelectedNodes, nodesSelectionActive, unselect = false, nodeEl) {\n nodesSelectionActive.value = false;\n if (!node.selected) {\n addSelectedNodes([node]);\n } else if (unselect || node.selected && multiSelectionActive) {\n removeSelectedNodes([node]);\n nextTick(() => {\n nodeEl.blur();\n });\n }\n}\nfunction isDef(val) {\n const unrefVal = unref(val);\n return typeof unrefVal !== \"undefined\";\n}\nfunction addEdgeToStore(edgeParams, edges, triggerError, defaultEdgeOptions) {\n if (!edgeParams || !edgeParams.source || !edgeParams.target) {\n triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, (edgeParams == null ? void 0 : edgeParams.id) ?? `[ID UNKNOWN]`));\n return false;\n }\n let edge;\n if (isEdge(edgeParams)) {\n edge = edgeParams;\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams)\n };\n }\n edge = parseEdge(edge, void 0, defaultEdgeOptions);\n if (connectionExists(edge, edges)) {\n return false;\n }\n return edge;\n}\nfunction updateEdgeAction(edge, newConnection, prevEdge, shouldReplaceId, triggerError) {\n if (!newConnection.source || !newConnection.target) {\n triggerError(new VueFlowError(ErrorCode.EDGE_INVALID, edge.id));\n return false;\n }\n if (!prevEdge) {\n triggerError(new VueFlowError(ErrorCode.EDGE_NOT_FOUND, edge.id));\n return false;\n }\n const { id: id2, ...rest } = edge;\n return {\n ...rest,\n id: shouldReplaceId ? getEdgeId(newConnection) : id2,\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle\n };\n}\nfunction createGraphNodes(nodes, findNode, triggerError) {\n const parentNodes = {};\n const nextNodes = [];\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n if (!isNode(node)) {\n triggerError(\n new VueFlowError(ErrorCode.NODE_INVALID, node == null ? void 0 : node.id) || `[ID UNKNOWN|INDEX ${i}]`\n );\n continue;\n }\n const parsed = parseNode(node, findNode(node.id), node.parentNode);\n if (node.parentNode) {\n parentNodes[node.parentNode] = true;\n }\n nextNodes[i] = parsed;\n }\n for (const node of nextNodes) {\n const parentNode = findNode(node.parentNode) || nextNodes.find((n) => n.id === node.parentNode);\n if (node.parentNode && !parentNode) {\n triggerError(new VueFlowError(ErrorCode.NODE_MISSING_PARENT, node.id, node.parentNode));\n }\n if (node.parentNode || parentNodes[node.id]) {\n if (parentNodes[node.id]) {\n node.isParent = true;\n }\n if (parentNode) {\n parentNode.isParent = true;\n }\n }\n }\n return nextNodes;\n}\nfunction addConnectionToLookup(type, connection, connectionKey, connectionLookup, nodeId, handleId) {\n let key = nodeId;\n const nodeMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();\n connectionLookup.set(key, nodeMap.set(connectionKey, connection));\n key = `${nodeId}-${type}`;\n const typeMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();\n connectionLookup.set(key, typeMap.set(connectionKey, connection));\n if (handleId) {\n key = `${nodeId}-${type}-${handleId}`;\n const handleMap = connectionLookup.get(key) || /* @__PURE__ */ new Map();\n connectionLookup.set(key, handleMap.set(connectionKey, connection));\n }\n}\nfunction updateConnectionLookup(connectionLookup, edgeLookup, edges) {\n connectionLookup.clear();\n for (const edge of edges) {\n const { source: sourceNode, target: targetNode, sourceHandle = null, targetHandle = null } = edge;\n const connection = { edgeId: edge.id, source: sourceNode, target: targetNode, sourceHandle, targetHandle };\n const sourceKey = `${sourceNode}-${sourceHandle}--${targetNode}-${targetHandle}`;\n const targetKey = `${targetNode}-${targetHandle}--${sourceNode}-${sourceHandle}`;\n addConnectionToLookup(\"source\", connection, targetKey, connectionLookup, sourceNode, sourceHandle);\n addConnectionToLookup(\"target\", connection, sourceKey, connectionLookup, targetNode, targetHandle);\n }\n}\nfunction handleConnectionChange(a, b, cb) {\n if (!cb) {\n return;\n }\n const diff = [];\n for (const key of a.keys()) {\n if (!b.has(key)) {\n diff.push(a.get(key));\n }\n }\n if (diff.length) {\n cb(diff);\n }\n}\nfunction areConnectionMapsEqual(a, b) {\n if (!a && !b) {\n return true;\n }\n if (!a || !b || a.size !== b.size) {\n return false;\n }\n if (!a.size && !b.size) {\n return true;\n }\n for (const key of a.keys()) {\n if (!b.has(key)) {\n return false;\n }\n }\n return true;\n}\nfunction areSetsEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n}\nfunction createGraphEdges(nextEdges, isValidConnection, findNode, findEdge, onError, defaultEdgeOptions, nodes, edges) {\n const validEdges = [];\n for (const edgeOrConnection of nextEdges) {\n const edge = isEdge(edgeOrConnection) ? edgeOrConnection : addEdgeToStore(edgeOrConnection, edges, onError, defaultEdgeOptions);\n if (!edge) {\n continue;\n }\n const sourceNode = findNode(edge.source);\n const targetNode = findNode(edge.target);\n if (!sourceNode || !targetNode) {\n onError(new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.id, edge.source, edge.target));\n continue;\n }\n if (!sourceNode) {\n onError(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.id, edge.source));\n continue;\n }\n if (!targetNode) {\n onError(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.id, edge.target));\n continue;\n }\n if (isValidConnection) {\n const isValid = isValidConnection(edge, {\n edges,\n nodes,\n sourceNode,\n targetNode\n });\n if (!isValid) {\n onError(new VueFlowError(ErrorCode.EDGE_INVALID, edge.id));\n continue;\n }\n }\n const existingEdge = findEdge(edge.id);\n validEdges.push({\n ...parseEdge(edge, existingEdge, defaultEdgeOptions),\n sourceNode,\n targetNode\n });\n }\n return validEdges;\n}\nconst VueFlow = Symbol(\"vueFlow\");\nconst NodeId = Symbol(\"nodeId\");\nconst NodeRef = Symbol(\"nodeRef\");\nconst EdgeId = Symbol(\"edgeId\");\nconst EdgeRef = Symbol(\"edgeRef\");\nconst Slots = Symbol(\"slots\");\nfunction useDrag(params) {\n const {\n vueFlowRef,\n snapToGrid,\n snapGrid,\n noDragClassName,\n nodeLookup,\n nodeExtent,\n nodeDragThreshold,\n viewport,\n autoPanOnNodeDrag,\n autoPanSpeed,\n nodesDraggable,\n panBy,\n findNode,\n multiSelectionActive,\n nodesSelectionActive,\n selectNodesOnDrag,\n removeSelectedElements,\n addSelectedNodes,\n updateNodePositions,\n emits\n } = useVueFlow();\n const { onStart, onDrag, onStop, onClick, el, disabled, id: id2, selectable, dragHandle } = params;\n const dragging = shallowRef(false);\n let dragItems = [];\n let dragHandler;\n let containerBounds = null;\n let lastPos = { x: void 0, y: void 0 };\n let mousePosition = { x: 0, y: 0 };\n let dragEvent = null;\n let dragStarted = false;\n let nodePositionsChanged = false;\n let autoPanId = 0;\n let autoPanStarted = false;\n const getPointerPosition = useGetPointerPosition();\n const updateNodes = ({ x, y }) => {\n lastPos = { x, y };\n let hasChange = false;\n dragItems = dragItems.map((n) => {\n const nextPosition = { x: x - n.distance.x, y: y - n.distance.y };\n const { computedPosition } = calcNextPosition(\n n,\n snapToGrid.value ? snapPosition(nextPosition, snapGrid.value) : nextPosition,\n emits.error,\n nodeExtent.value,\n n.parentNode ? findNode(n.parentNode) : void 0\n );\n hasChange = hasChange || n.position.x !== computedPosition.x || n.position.y !== computedPosition.y;\n n.position = computedPosition;\n return n;\n });\n nodePositionsChanged = nodePositionsChanged || hasChange;\n if (!hasChange) {\n return;\n }\n updateNodePositions(dragItems, true, true);\n dragging.value = true;\n if (dragEvent) {\n const [currentNode, nodes] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onDrag({ event: dragEvent, node: currentNode, nodes });\n }\n };\n const autoPan = () => {\n if (!containerBounds) {\n return;\n }\n const [xMovement, yMovement] = calcAutoPan(mousePosition, containerBounds, autoPanSpeed.value);\n if (xMovement !== 0 || yMovement !== 0) {\n const nextPos = {\n x: (lastPos.x ?? 0) - xMovement / viewport.value.zoom,\n y: (lastPos.y ?? 0) - yMovement / viewport.value.zoom\n };\n if (panBy({ x: xMovement, y: yMovement })) {\n updateNodes(nextPos);\n }\n }\n autoPanId = requestAnimationFrame(autoPan);\n };\n const startDrag = (event, nodeEl) => {\n dragStarted = true;\n const node = findNode(id2);\n if (!selectNodesOnDrag.value && !multiSelectionActive.value && node) {\n if (!node.selected) {\n removeSelectedElements();\n }\n }\n if (node && toValue$1(selectable) && selectNodesOnDrag.value) {\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedElements,\n nodesSelectionActive,\n false,\n nodeEl\n );\n }\n const pointerPos = getPointerPosition(event.sourceEvent);\n lastPos = pointerPos;\n dragItems = getDragItems(nodeLookup.value, nodesDraggable.value, pointerPos, id2);\n if (dragItems.length) {\n const [currentNode, nodes] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onStart({ event: event.sourceEvent, node: currentNode, nodes });\n }\n };\n const eventStart = (event, nodeEl) => {\n var _a;\n if (event.sourceEvent.type === \"touchmove\" && event.sourceEvent.touches.length > 1) {\n return;\n }\n nodePositionsChanged = false;\n if (nodeDragThreshold.value === 0) {\n startDrag(event, nodeEl);\n }\n lastPos = getPointerPosition(event.sourceEvent);\n containerBounds = ((_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect()) || null;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds);\n };\n const eventDrag = (event, nodeEl) => {\n const pointerPos = getPointerPosition(event.sourceEvent);\n if (!autoPanStarted && dragStarted && autoPanOnNodeDrag.value) {\n autoPanStarted = true;\n autoPan();\n }\n if (!dragStarted) {\n const x = pointerPos.xSnapped - (lastPos.x ?? 0);\n const y = pointerPos.ySnapped - (lastPos.y ?? 0);\n const distance2 = Math.sqrt(x * x + y * y);\n if (distance2 > nodeDragThreshold.value) {\n startDrag(event, nodeEl);\n }\n }\n if ((lastPos.x !== pointerPos.xSnapped || lastPos.y !== pointerPos.ySnapped) && dragItems.length && dragStarted) {\n dragEvent = event.sourceEvent;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds);\n updateNodes(pointerPos);\n }\n };\n const eventEnd = (event) => {\n let isClick = false;\n if (!dragStarted && !dragging.value && !multiSelectionActive.value) {\n const evt = event.sourceEvent;\n const pointerPos = getPointerPosition(evt);\n const x = pointerPos.xSnapped - (lastPos.x ?? 0);\n const y = pointerPos.ySnapped - (lastPos.y ?? 0);\n const distance2 = Math.sqrt(x * x + y * y);\n if (distance2 !== 0 && distance2 <= nodeDragThreshold.value) {\n onClick == null ? void 0 : onClick(evt);\n isClick = true;\n }\n }\n if (dragItems.length && !isClick) {\n if (nodePositionsChanged) {\n updateNodePositions(dragItems, false, false);\n nodePositionsChanged = false;\n }\n const [currentNode, nodes] = getEventHandlerParams({\n id: id2,\n dragItems,\n findNode\n });\n onStop({ event: event.sourceEvent, node: currentNode, nodes });\n }\n dragItems = [];\n dragging.value = false;\n autoPanStarted = false;\n dragStarted = false;\n lastPos = { x: void 0, y: void 0 };\n cancelAnimationFrame(autoPanId);\n };\n watch([() => toValue$1(disabled), el], ([isDisabled, nodeEl], _, onCleanup) => {\n if (nodeEl) {\n const selection2 = select(nodeEl);\n if (!isDisabled) {\n dragHandler = drag().on(\"start\", (event) => eventStart(event, nodeEl)).on(\"drag\", (event) => eventDrag(event, nodeEl)).on(\"end\", (event) => eventEnd(event)).filter((event) => {\n const target = event.target;\n const unrefDragHandle = toValue$1(dragHandle);\n return !event.button && (!noDragClassName.value || !hasSelector(target, `.${noDragClassName.value}`, nodeEl) && (!unrefDragHandle || hasSelector(target, unrefDragHandle, nodeEl)));\n });\n selection2.call(dragHandler);\n }\n onCleanup(() => {\n selection2.on(\".drag\", null);\n if (dragHandler) {\n dragHandler.on(\"start\", null);\n dragHandler.on(\"drag\", null);\n dragHandler.on(\"end\", null);\n }\n });\n }\n });\n return dragging;\n}\nfunction useEdge(id2) {\n const edgeId = id2 ?? inject(EdgeId, \"\");\n const edgeEl = inject(EdgeRef, ref(null));\n const { findEdge, emits } = useVueFlow();\n const edge = findEdge(edgeId);\n if (!edge) {\n emits.error(new VueFlowError(ErrorCode.EDGE_NOT_FOUND, edgeId));\n }\n return {\n id: edgeId,\n edge,\n edgeEl\n };\n}\nfunction createEdgeHooks() {\n return {\n doubleClick: createExtendedEventHook(),\n click: createExtendedEventHook(),\n mouseEnter: createExtendedEventHook(),\n mouseMove: createExtendedEventHook(),\n mouseLeave: createExtendedEventHook(),\n contextMenu: createExtendedEventHook(),\n updateStart: createExtendedEventHook(),\n update: createExtendedEventHook(),\n updateEnd: createExtendedEventHook()\n };\n}\nfunction useEdgeHooks(edge, emits) {\n const edgeHooks = createEdgeHooks();\n edgeHooks.doubleClick.on((event) => {\n var _a, _b;\n emits.edgeDoubleClick(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.doubleClick) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.click.on((event) => {\n var _a, _b;\n emits.edgeClick(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.click) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseEnter.on((event) => {\n var _a, _b;\n emits.edgeMouseEnter(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseEnter) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseMove.on((event) => {\n var _a, _b;\n emits.edgeMouseMove(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseMove) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.mouseLeave.on((event) => {\n var _a, _b;\n emits.edgeMouseLeave(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.mouseLeave) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.contextMenu.on((event) => {\n var _a, _b;\n emits.edgeContextMenu(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.contextMenu) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.updateStart.on((event) => {\n var _a, _b;\n emits.edgeUpdateStart(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.updateStart) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.update.on((event) => {\n var _a, _b;\n emits.edgeUpdate(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.update) == null ? void 0 : _b.call(_a, event);\n });\n edgeHooks.updateEnd.on((event) => {\n var _a, _b;\n emits.edgeUpdateEnd(event);\n (_b = (_a = edge.events) == null ? void 0 : _a.updateEnd) == null ? void 0 : _b.call(_a, event);\n });\n return Object.entries(edgeHooks).reduce(\n (hooks, [key, value]) => {\n hooks.emit[key] = value.trigger;\n hooks.on[key] = value.on;\n return hooks;\n },\n { emit: {}, on: {} }\n );\n}\nfunction useGetPointerPosition() {\n const { viewport, snapGrid, snapToGrid, vueFlowRef } = useVueFlow();\n return (event) => {\n var _a;\n const containerBounds = ((_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect()) ?? { left: 0, top: 0 };\n const evt = isUseDragEvent(event) ? event.sourceEvent : event;\n const { x, y } = getEventPosition(evt, containerBounds);\n const pointerPos = pointToRendererPoint({ x, y }, viewport.value);\n const { x: xSnapped, y: ySnapped } = snapToGrid.value ? snapPosition(pointerPos, snapGrid.value) : pointerPos;\n return {\n xSnapped,\n ySnapped,\n ...pointerPos\n };\n };\n}\nfunction alwaysValid() {\n return true;\n}\nfunction useHandle({\n handleId,\n nodeId,\n type,\n isValidConnection,\n edgeUpdaterType,\n onEdgeUpdate,\n onEdgeUpdateEnd\n}) {\n const {\n id: flowId,\n vueFlowRef,\n connectionMode,\n connectionRadius,\n connectOnClick,\n connectionClickStartHandle,\n nodesConnectable,\n autoPanOnConnect,\n autoPanSpeed,\n findNode,\n panBy,\n startConnection,\n updateConnection,\n endConnection,\n emits,\n viewport,\n edges,\n nodes,\n isValidConnection: isValidConnectionProp,\n nodeLookup\n } = useVueFlow();\n let connection = null;\n let isValid = false;\n let handleDomNode = null;\n function handlePointerDown(event) {\n var _a;\n const isTarget = toValue$1(type) === \"target\";\n const isMouseTriggered = isMouseEvent(event);\n const doc = getHostForElement(event.target);\n const clickedHandle = event.currentTarget;\n if (clickedHandle && (isMouseTriggered && event.button === 0 || !isMouseTriggered)) {\n let onPointerMove = function(event2) {\n connectionPosition = getEventPosition(event2, containerBounds);\n closestHandle = getClosestHandle(\n pointToRendererPoint(connectionPosition, viewport.value, false, [1, 1]),\n connectionRadius.value,\n nodeLookup.value,\n fromHandle\n );\n if (!autoPanStarted) {\n autoPan();\n autoPanStarted = true;\n }\n const result = isValidHandle(\n event2,\n {\n handle: closestHandle,\n connectionMode: connectionMode.value,\n fromNodeId: toValue$1(nodeId),\n fromHandleId: toValue$1(handleId),\n fromType: isTarget ? \"target\" : \"source\",\n isValidConnection: isValidConnectionHandler,\n doc,\n lib: \"vue\",\n flowId,\n nodeLookup: nodeLookup.value\n },\n edges.value,\n nodes.value,\n findNode,\n nodeLookup.value\n );\n handleDomNode = result.handleDomNode;\n connection = result.connection;\n isValid = isConnectionValid(!!closestHandle, result.isValid);\n const newConnection2 = {\n // from stays the same\n ...previousConnection,\n isValid,\n to: result.toHandle && isValid ? rendererPointToPoint({ x: result.toHandle.x, y: result.toHandle.y }, viewport.value) : connectionPosition,\n toHandle: result.toHandle,\n toPosition: isValid && result.toHandle ? result.toHandle.position : oppositePosition[fromHandle.position],\n toNode: result.toHandle ? nodeLookup.value.get(result.toHandle.nodeId) : null\n };\n if (isValid && closestHandle && (previousConnection == null ? void 0 : previousConnection.toHandle) && newConnection2.toHandle && previousConnection.toHandle.type === newConnection2.toHandle.type && previousConnection.toHandle.nodeId === newConnection2.toHandle.nodeId && previousConnection.toHandle.id === newConnection2.toHandle.id && previousConnection.to.x === newConnection2.to.x && previousConnection.to.y === newConnection2.to.y) {\n return;\n }\n const connectingHandle = closestHandle ?? result.toHandle;\n updateConnection(\n connectingHandle && isValid ? rendererPointToPoint(\n {\n x: connectingHandle.x,\n y: connectingHandle.y\n },\n viewport.value\n ) : connectionPosition,\n result.toHandle,\n getConnectionStatus(!!connectingHandle, isValid)\n );\n previousConnection = newConnection2;\n if (!closestHandle && !isValid && !handleDomNode) {\n return resetRecentHandle(prevActiveHandle);\n }\n if (connection && connection.source !== connection.target && handleDomNode) {\n resetRecentHandle(prevActiveHandle);\n prevActiveHandle = handleDomNode;\n handleDomNode.classList.add(\"connecting\", \"vue-flow__handle-connecting\");\n handleDomNode.classList.toggle(\"valid\", !!isValid);\n handleDomNode.classList.toggle(\"vue-flow__handle-valid\", !!isValid);\n }\n }, onPointerUp = function(event2) {\n if (\"touches\" in event2 && event2.touches.length > 0) {\n return;\n }\n if ((closestHandle || handleDomNode) && connection && isValid) {\n if (!onEdgeUpdate) {\n emits.connect(connection);\n } else {\n onEdgeUpdate(event2, connection);\n }\n }\n emits.connectEnd(event2);\n if (edgeUpdaterType) {\n onEdgeUpdateEnd == null ? void 0 : onEdgeUpdateEnd(event2);\n }\n resetRecentHandle(prevActiveHandle);\n cancelAnimationFrame(autoPanId);\n endConnection(event2);\n autoPanStarted = false;\n isValid = false;\n connection = null;\n handleDomNode = null;\n doc.removeEventListener(\"mousemove\", onPointerMove);\n doc.removeEventListener(\"mouseup\", onPointerUp);\n doc.removeEventListener(\"touchmove\", onPointerMove);\n doc.removeEventListener(\"touchend\", onPointerUp);\n };\n const node = findNode(toValue$1(nodeId));\n let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;\n if (!isValidConnectionHandler && node) {\n isValidConnectionHandler = (!isTarget ? node.isValidTargetPos : node.isValidSourcePos) || alwaysValid;\n }\n let closestHandle;\n let autoPanId = 0;\n const { x, y } = getEventPosition(event);\n const handleType = getHandleType(toValue$1(edgeUpdaterType), clickedHandle);\n const containerBounds = (_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect();\n if (!containerBounds || !handleType) {\n return;\n }\n const fromHandleInternal = getHandle(toValue$1(nodeId), handleType, toValue$1(handleId), nodeLookup.value, connectionMode.value);\n if (!fromHandleInternal) {\n return;\n }\n let prevActiveHandle;\n let connectionPosition = getEventPosition(event, containerBounds);\n let autoPanStarted = false;\n const autoPan = () => {\n if (!autoPanOnConnect.value) {\n return;\n }\n const [xMovement, yMovement] = calcAutoPan(connectionPosition, containerBounds, autoPanSpeed.value);\n panBy({ x: xMovement, y: yMovement });\n autoPanId = requestAnimationFrame(autoPan);\n };\n const fromHandle = {\n ...fromHandleInternal,\n nodeId: toValue$1(nodeId),\n type: handleType,\n position: fromHandleInternal.position\n };\n const fromNodeInternal = nodeLookup.value.get(toValue$1(nodeId));\n const from = getHandlePosition(fromNodeInternal, fromHandle, Position.Left, true);\n const newConnection = {\n inProgress: true,\n isValid: null,\n from,\n fromHandle,\n fromPosition: fromHandle.position,\n fromNode: fromNodeInternal,\n to: connectionPosition,\n toHandle: null,\n toPosition: oppositePosition[fromHandle.position],\n toNode: null\n };\n startConnection(\n {\n nodeId: toValue$1(nodeId),\n id: toValue$1(handleId),\n type: handleType,\n position: (clickedHandle == null ? void 0 : clickedHandle.getAttribute(\"data-handlepos\")) || Position.Top,\n ...connectionPosition\n },\n {\n x: x - containerBounds.left,\n y: y - containerBounds.top\n }\n );\n emits.connectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId), handleType });\n let previousConnection = newConnection;\n doc.addEventListener(\"mousemove\", onPointerMove);\n doc.addEventListener(\"mouseup\", onPointerUp);\n doc.addEventListener(\"touchmove\", onPointerMove);\n doc.addEventListener(\"touchend\", onPointerUp);\n }\n }\n function handleClick(event) {\n var _a, _b;\n if (!connectOnClick.value) {\n return;\n }\n const isTarget = toValue$1(type) === \"target\";\n if (!connectionClickStartHandle.value) {\n emits.clickConnectStart({ event, nodeId: toValue$1(nodeId), handleId: toValue$1(handleId) });\n startConnection(\n {\n nodeId: toValue$1(nodeId),\n type: toValue$1(type),\n id: toValue$1(handleId),\n position: Position.Top,\n ...getEventPosition(event)\n },\n void 0,\n true\n );\n return;\n }\n let isValidConnectionHandler = toValue$1(isValidConnection) || isValidConnectionProp.value || alwaysValid;\n const node = findNode(toValue$1(nodeId));\n if (!isValidConnectionHandler && node) {\n isValidConnectionHandler = (!isTarget ? node.isValidTargetPos : node.isValidSourcePos) || alwaysValid;\n }\n if (node && (typeof node.connectable === \"undefined\" ? nodesConnectable.value : node.connectable) === false) {\n return;\n }\n const doc = getHostForElement(event.target);\n const result = isValidHandle(\n event,\n {\n handle: {\n nodeId: toValue$1(nodeId),\n id: toValue$1(handleId),\n type: toValue$1(type),\n position: Position.Top,\n ...getEventPosition(event)\n },\n connectionMode: connectionMode.value,\n fromNodeId: connectionClickStartHandle.value.nodeId,\n fromHandleId: connectionClickStartHandle.value.id ?? null,\n fromType: connectionClickStartHandle.value.type,\n isValidConnection: isValidConnectionHandler,\n doc,\n lib: \"vue\",\n flowId,\n nodeLookup: nodeLookup.value\n },\n edges.value,\n nodes.value,\n findNode,\n nodeLookup.value\n );\n const isOwnHandle = ((_a = result.connection) == null ? void 0 : _a.source) === ((_b = result.connection) == null ? void 0 : _b.target);\n if (result.isValid && result.connection && !isOwnHandle) {\n emits.connect(result.connection);\n }\n emits.clickConnectEnd(event);\n endConnection(event, true);\n }\n return {\n handlePointerDown,\n handleClick\n };\n}\nfunction useNodeId() {\n return inject(NodeId, \"\");\n}\nfunction useNode(id2) {\n const nodeId = id2 ?? useNodeId() ?? \"\";\n const nodeEl = inject(NodeRef, ref(null));\n const { findNode, edges, emits } = useVueFlow();\n const node = findNode(nodeId);\n if (!node) {\n emits.error(new VueFlowError(ErrorCode.NODE_NOT_FOUND, nodeId));\n }\n return {\n id: nodeId,\n nodeEl,\n node,\n parentNode: computed(() => findNode(node.parentNode)),\n connectedEdges: computed(() => getConnectedEdges([node], edges.value))\n };\n}\nfunction createNodeHooks() {\n return {\n doubleClick: createExtendedEventHook(),\n click: createExtendedEventHook(),\n mouseEnter: createExtendedEventHook(),\n mouseMove: createExtendedEventHook(),\n mouseLeave: createExtendedEventHook(),\n contextMenu: createExtendedEventHook(),\n dragStart: createExtendedEventHook(),\n drag: createExtendedEventHook(),\n dragStop: createExtendedEventHook()\n };\n}\nfunction useNodeHooks(node, emits) {\n const nodeHooks = createNodeHooks();\n nodeHooks.doubleClick.on((event) => {\n var _a, _b;\n emits.nodeDoubleClick(event);\n (_b = (_a = node.events) == null ? void 0 : _a.doubleClick) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.click.on((event) => {\n var _a, _b;\n emits.nodeClick(event);\n (_b = (_a = node.events) == null ? void 0 : _a.click) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseEnter.on((event) => {\n var _a, _b;\n emits.nodeMouseEnter(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseEnter) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseMove.on((event) => {\n var _a, _b;\n emits.nodeMouseMove(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseMove) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.mouseLeave.on((event) => {\n var _a, _b;\n emits.nodeMouseLeave(event);\n (_b = (_a = node.events) == null ? void 0 : _a.mouseLeave) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.contextMenu.on((event) => {\n var _a, _b;\n emits.nodeContextMenu(event);\n (_b = (_a = node.events) == null ? void 0 : _a.contextMenu) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.dragStart.on((event) => {\n var _a, _b;\n emits.nodeDragStart(event);\n (_b = (_a = node.events) == null ? void 0 : _a.dragStart) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.drag.on((event) => {\n var _a, _b;\n emits.nodeDrag(event);\n (_b = (_a = node.events) == null ? void 0 : _a.drag) == null ? void 0 : _b.call(_a, event);\n });\n nodeHooks.dragStop.on((event) => {\n var _a, _b;\n emits.nodeDragStop(event);\n (_b = (_a = node.events) == null ? void 0 : _a.dragStop) == null ? void 0 : _b.call(_a, event);\n });\n return Object.entries(nodeHooks).reduce(\n (hooks, [key, value]) => {\n hooks.emit[key] = value.trigger;\n hooks.on[key] = value.on;\n return hooks;\n },\n { emit: {}, on: {} }\n );\n}\nfunction useUpdateNodePositions() {\n const { getSelectedNodes, nodeExtent, updateNodePositions, findNode, snapGrid, snapToGrid, nodesDraggable, emits } = useVueFlow();\n return (positionDiff, isShiftPressed = false) => {\n const xVelo = snapToGrid.value ? snapGrid.value[0] : 5;\n const yVelo = snapToGrid.value ? snapGrid.value[1] : 5;\n const factor = isShiftPressed ? 4 : 1;\n const positionDiffX = positionDiff.x * xVelo * factor;\n const positionDiffY = positionDiff.y * yVelo * factor;\n const nodeUpdates = [];\n for (const node of getSelectedNodes.value) {\n if (node.draggable || nodesDraggable && typeof node.draggable === \"undefined\") {\n const nextPosition = { x: node.computedPosition.x + positionDiffX, y: node.computedPosition.y + positionDiffY };\n const { computedPosition } = calcNextPosition(\n node,\n nextPosition,\n emits.error,\n nodeExtent.value,\n node.parentNode ? findNode(node.parentNode) : void 0\n );\n nodeUpdates.push({\n id: node.id,\n position: computedPosition,\n from: node.position,\n distance: { x: positionDiff.x, y: positionDiff.y },\n dimensions: node.dimensions\n });\n }\n }\n updateNodePositions(nodeUpdates, true, false);\n };\n}\nconst DEFAULT_PADDING = 0.1;\nconst defaultEase = (t) => ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\nfunction noop() {\n warn(\"Viewport not initialized yet.\");\n return Promise.resolve(false);\n}\nconst initialViewportHelper = {\n zoomIn: noop,\n zoomOut: noop,\n zoomTo: noop,\n fitView: noop,\n setCenter: noop,\n fitBounds: noop,\n project: (position) => position,\n screenToFlowCoordinate: (position) => position,\n flowToScreenCoordinate: (position) => position,\n setViewport: noop,\n setTransform: noop,\n getViewport: () => ({ x: 0, y: 0, zoom: 1 }),\n getTransform: () => ({ x: 0, y: 0, zoom: 1 }),\n viewportInitialized: false\n};\nfunction useViewportHelper(state) {\n function zoom2(scale, transitionOptions) {\n return new Promise((resolve) => {\n if (state.d3Selection && state.d3Zoom) {\n state.d3Zoom.interpolate((transitionOptions == null ? void 0 : transitionOptions.interpolate) === \"linear\" ? interpolate$1 : interpolateZoom).scaleBy(\n getD3Transition(state.d3Selection, transitionOptions == null ? void 0 : transitionOptions.duration, transitionOptions == null ? void 0 : transitionOptions.ease, () => {\n resolve(true);\n }),\n scale\n );\n } else {\n resolve(false);\n }\n });\n }\n function transformViewport(x, y, zoom22, transitionOptions) {\n return new Promise((resolve) => {\n var _a;\n const { x: clampedX, y: clampedY } = clampPosition({ x: -x, y: -y }, state.translateExtent);\n const nextTransform = identity.translate(-clampedX, -clampedY).scale(zoom22);\n if (state.d3Selection && state.d3Zoom) {\n (_a = state.d3Zoom) == null ? void 0 : _a.interpolate((transitionOptions == null ? void 0 : transitionOptions.interpolate) === \"linear\" ? interpolate$1 : interpolateZoom).transform(\n getD3Transition(state.d3Selection, transitionOptions == null ? void 0 : transitionOptions.duration, transitionOptions == null ? void 0 : transitionOptions.ease, () => {\n resolve(true);\n }),\n nextTransform\n );\n } else {\n resolve(false);\n }\n });\n }\n return computed(() => {\n const isInitialized = state.d3Zoom && state.d3Selection && state.dimensions.width && state.dimensions.height;\n if (!isInitialized) {\n return initialViewportHelper;\n }\n return {\n viewportInitialized: true,\n // todo: allow passing scale as option\n zoomIn: (options) => {\n return zoom2(1.2, options);\n },\n zoomOut: (options) => {\n return zoom2(1 / 1.2, options);\n },\n zoomTo: (zoomLevel, options) => {\n return new Promise((resolve) => {\n if (state.d3Selection && state.d3Zoom) {\n state.d3Zoom.interpolate((options == null ? void 0 : options.interpolate) === \"linear\" ? interpolate$1 : interpolateZoom).scaleTo(\n getD3Transition(state.d3Selection, options == null ? void 0 : options.duration, options == null ? void 0 : options.ease, () => {\n resolve(true);\n }),\n zoomLevel\n );\n } else {\n resolve(false);\n }\n });\n },\n setViewport: (transform, options) => {\n return transformViewport(transform.x, transform.y, transform.zoom, options);\n },\n setTransform: (transform, options) => {\n return transformViewport(transform.x, transform.y, transform.zoom, options);\n },\n getViewport: () => ({\n x: state.viewport.x,\n y: state.viewport.y,\n zoom: state.viewport.zoom\n }),\n getTransform: () => {\n return {\n x: state.viewport.x,\n y: state.viewport.y,\n zoom: state.viewport.zoom\n };\n },\n fitView: (options = {\n padding: DEFAULT_PADDING,\n includeHiddenNodes: false,\n duration: 0\n }) => {\n var _a, _b;\n const nodesToFit = [];\n for (const node of state.nodes) {\n const isVisible = node.dimensions.width && node.dimensions.height && ((options == null ? void 0 : options.includeHiddenNodes) || !node.hidden);\n if (isVisible) {\n if (!((_a = options.nodes) == null ? void 0 : _a.length) || ((_b = options.nodes) == null ? void 0 : _b.length) && options.nodes.includes(node.id)) {\n nodesToFit.push(node);\n }\n }\n }\n if (!nodesToFit.length) {\n return Promise.resolve(false);\n }\n const bounds = getRectOfNodes(nodesToFit);\n const { x, y, zoom: zoom22 } = getTransformForBounds(\n bounds,\n state.dimensions.width,\n state.dimensions.height,\n options.minZoom ?? state.minZoom,\n options.maxZoom ?? state.maxZoom,\n options.padding ?? DEFAULT_PADDING\n );\n return transformViewport(x, y, zoom22, options);\n },\n setCenter: (x, y, options) => {\n const nextZoom = typeof (options == null ? void 0 : options.zoom) !== \"undefined\" ? options.zoom : state.maxZoom;\n const centerX = state.dimensions.width / 2 - x * nextZoom;\n const centerY = state.dimensions.height / 2 - y * nextZoom;\n return transformViewport(centerX, centerY, nextZoom, options);\n },\n fitBounds: (bounds, options = { padding: DEFAULT_PADDING }) => {\n const { x, y, zoom: zoom22 } = getTransformForBounds(\n bounds,\n state.dimensions.width,\n state.dimensions.height,\n state.minZoom,\n state.maxZoom,\n options.padding ?? DEFAULT_PADDING\n );\n return transformViewport(x, y, zoom22, options);\n },\n project: (position) => pointToRendererPoint(position, state.viewport, state.snapToGrid, state.snapGrid),\n screenToFlowCoordinate: (position) => {\n if (state.vueFlowRef) {\n const { x: domX, y: domY } = state.vueFlowRef.getBoundingClientRect();\n const correctedPosition = {\n x: position.x - domX,\n y: position.y - domY\n };\n return pointToRendererPoint(correctedPosition, state.viewport, state.snapToGrid, state.snapGrid);\n }\n return { x: 0, y: 0 };\n },\n flowToScreenCoordinate: (position) => {\n if (state.vueFlowRef) {\n const { x: domX, y: domY } = state.vueFlowRef.getBoundingClientRect();\n const correctedPosition = {\n x: position.x + domX,\n y: position.y + domY\n };\n return rendererPointToPoint(correctedPosition, state.viewport);\n }\n return { x: 0, y: 0 };\n }\n };\n });\n}\nfunction getD3Transition(selection2, duration = 0, ease = defaultEase, onEnd = () => {\n}) {\n const hasDuration = typeof duration === \"number\" && duration > 0;\n if (!hasDuration) {\n onEnd();\n }\n return hasDuration ? selection2.transition().duration(duration).ease(ease).on(\"end\", onEnd) : selection2;\n}\nfunction useWatchProps(models, props, store) {\n const scope = effectScope(true);\n scope.run(() => {\n const watchModelValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!(store.nodes.value.length || store.edges.value.length);\n pauseModel = watchPausable([models.modelValue, () => {\n var _a, _b;\n return (_b = (_a = models.modelValue) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([elements]) => {\n if (elements && Array.isArray(elements)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setElements(elements);\n if (!pauseStore && !immediateStore && elements.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.nodes, store.edges, () => store.edges.value.length, () => store.nodes.value.length],\n ([nodes, edges]) => {\n var _a;\n if (((_a = models.modelValue) == null ? void 0 : _a.value) && Array.isArray(models.modelValue.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.modelValue.value = [...nodes, ...edges];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchNodesValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!store.nodes.value.length;\n pauseModel = watchPausable([models.nodes, () => {\n var _a, _b;\n return (_b = (_a = models.nodes) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([nodes]) => {\n if (nodes && Array.isArray(nodes)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setNodes(nodes);\n if (!pauseStore && !immediateStore && nodes.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.nodes, () => store.nodes.value.length],\n ([nodes]) => {\n var _a;\n if (((_a = models.nodes) == null ? void 0 : _a.value) && Array.isArray(models.nodes.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.nodes.value = [...nodes];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchEdgesValue = () => {\n scope.run(() => {\n let pauseModel;\n let pauseStore;\n let immediateStore = !!store.edges.value.length;\n pauseModel = watchPausable([models.edges, () => {\n var _a, _b;\n return (_b = (_a = models.edges) == null ? void 0 : _a.value) == null ? void 0 : _b.length;\n }], ([edges]) => {\n if (edges && Array.isArray(edges)) {\n pauseStore == null ? void 0 : pauseStore.pause();\n store.setEdges(edges);\n if (!pauseStore && !immediateStore && edges.length) {\n immediateStore = true;\n } else {\n pauseStore == null ? void 0 : pauseStore.resume();\n }\n }\n });\n pauseStore = watchPausable(\n [store.edges, () => store.edges.value.length],\n ([edges]) => {\n var _a;\n if (((_a = models.edges) == null ? void 0 : _a.value) && Array.isArray(models.edges.value)) {\n pauseModel == null ? void 0 : pauseModel.pause();\n models.edges.value = [...edges];\n nextTick(() => {\n pauseModel == null ? void 0 : pauseModel.resume();\n });\n }\n },\n { immediate: immediateStore }\n );\n onScopeDispose(() => {\n pauseModel == null ? void 0 : pauseModel.stop();\n pauseStore == null ? void 0 : pauseStore.stop();\n });\n });\n };\n const watchMaxZoom = () => {\n scope.run(() => {\n watch(\n () => props.maxZoom,\n () => {\n if (props.maxZoom && isDef(props.maxZoom)) {\n store.setMaxZoom(props.maxZoom);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchMinZoom = () => {\n scope.run(() => {\n watch(\n () => props.minZoom,\n () => {\n if (props.minZoom && isDef(props.minZoom)) {\n store.setMinZoom(props.minZoom);\n }\n },\n { immediate: true }\n );\n });\n };\n const watchTranslateExtent = () => {\n scope.run(() => {\n watch(\n () => props.translateExtent,\n () => {\n if (props.translateExtent && isDef(props.translateExtent)) {\n store.setTranslateExtent(props.translateExtent);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchNodeExtent = () => {\n scope.run(() => {\n watch(\n () => props.nodeExtent,\n () => {\n if (props.nodeExtent && isDef(props.nodeExtent)) {\n store.setNodeExtent(props.nodeExtent);\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchApplyDefault = () => {\n scope.run(() => {\n watch(\n () => props.applyDefault,\n () => {\n if (isDef(props.applyDefault)) {\n store.applyDefault.value = props.applyDefault;\n }\n },\n {\n immediate: true\n }\n );\n });\n };\n const watchAutoConnect = () => {\n scope.run(() => {\n const autoConnector = async (params) => {\n let connection = params;\n if (typeof props.autoConnect === \"function\") {\n connection = await props.autoConnect(params);\n }\n if (connection !== false) {\n store.addEdges([connection]);\n }\n };\n watch(\n () => props.autoConnect,\n () => {\n if (isDef(props.autoConnect)) {\n store.autoConnect.value = props.autoConnect;\n }\n },\n { immediate: true }\n );\n watch(\n store.autoConnect,\n (autoConnectEnabled, _, onCleanup) => {\n if (autoConnectEnabled) {\n store.onConnect(autoConnector);\n } else {\n store.hooks.value.connect.off(autoConnector);\n }\n onCleanup(() => {\n store.hooks.value.connect.off(autoConnector);\n });\n },\n { immediate: true }\n );\n });\n };\n const watchRest = () => {\n const skip = [\n \"id\",\n \"modelValue\",\n \"translateExtent\",\n \"nodeExtent\",\n \"edges\",\n \"nodes\",\n \"maxZoom\",\n \"minZoom\",\n \"applyDefault\",\n \"autoConnect\"\n ];\n for (const key of Object.keys(props)) {\n const propKey = key;\n if (!skip.includes(propKey)) {\n const propValue = toRef(() => props[propKey]);\n const storeRef = store[propKey];\n if (isRef(storeRef)) {\n scope.run(() => {\n watch(\n propValue,\n (nextValue) => {\n if (isDef(nextValue)) {\n storeRef.value = nextValue;\n }\n },\n { immediate: true }\n );\n });\n }\n }\n }\n };\n const runAll = () => {\n watchModelValue();\n watchNodesValue();\n watchEdgesValue();\n watchMinZoom();\n watchMaxZoom();\n watchTranslateExtent();\n watchNodeExtent();\n watchApplyDefault();\n watchAutoConnect();\n watchRest();\n };\n runAll();\n });\n return () => scope.stop();\n}\nfunction useZoomPanHelper(vueFlowId) {\n const state = useVueFlow({ id: vueFlowId });\n const viewportHelper = useViewportHelper(toReactive(state));\n return {\n fitView: (params) => viewportHelper.value.fitView(params),\n zoomIn: (transitionOpts) => viewportHelper.value.zoomIn(transitionOpts),\n zoomOut: (transitionOpts) => viewportHelper.value.zoomOut(transitionOpts),\n zoomTo: (zoomLevel, transitionOpts) => viewportHelper.value.zoomTo(zoomLevel, transitionOpts),\n setViewport: (params, transitionOpts) => viewportHelper.value.setViewport(params, transitionOpts),\n setTransform: (params, transitionOpts) => viewportHelper.value.setTransform(params, transitionOpts),\n getViewport: () => viewportHelper.value.getViewport(),\n getTransform: () => viewportHelper.value.getTransform(),\n setCenter: (x, y, opts) => viewportHelper.value.setCenter(x, y, opts),\n fitBounds: (params, opts) => viewportHelper.value.fitBounds(params, opts),\n project: (params) => viewportHelper.value.project(params)\n };\n}\nfunction createHooks() {\n return {\n edgesChange: createExtendedEventHook(),\n nodesChange: createExtendedEventHook(),\n nodeDoubleClick: createExtendedEventHook(),\n nodeClick: createExtendedEventHook(),\n nodeMouseEnter: createExtendedEventHook(),\n nodeMouseMove: createExtendedEventHook(),\n nodeMouseLeave: createExtendedEventHook(),\n nodeContextMenu: createExtendedEventHook(),\n nodeDragStart: createExtendedEventHook(),\n nodeDrag: createExtendedEventHook(),\n nodeDragStop: createExtendedEventHook(),\n nodesInitialized: createExtendedEventHook(),\n miniMapNodeClick: createExtendedEventHook(),\n miniMapNodeDoubleClick: createExtendedEventHook(),\n miniMapNodeMouseEnter: createExtendedEventHook(),\n miniMapNodeMouseMove: createExtendedEventHook(),\n miniMapNodeMouseLeave: createExtendedEventHook(),\n connect: createExtendedEventHook(),\n connectStart: createExtendedEventHook(),\n connectEnd: createExtendedEventHook(),\n clickConnectStart: createExtendedEventHook(),\n clickConnectEnd: createExtendedEventHook(),\n paneReady: createExtendedEventHook(),\n init: createExtendedEventHook(),\n move: createExtendedEventHook(),\n moveStart: createExtendedEventHook(),\n moveEnd: createExtendedEventHook(),\n selectionDragStart: createExtendedEventHook(),\n selectionDrag: createExtendedEventHook(),\n selectionDragStop: createExtendedEventHook(),\n selectionContextMenu: createExtendedEventHook(),\n selectionStart: createExtendedEventHook(),\n selectionEnd: createExtendedEventHook(),\n viewportChangeStart: createExtendedEventHook(),\n viewportChange: createExtendedEventHook(),\n viewportChangeEnd: createExtendedEventHook(),\n paneScroll: createExtendedEventHook(),\n paneClick: createExtendedEventHook(),\n paneContextMenu: createExtendedEventHook(),\n paneMouseEnter: createExtendedEventHook(),\n paneMouseMove: createExtendedEventHook(),\n paneMouseLeave: createExtendedEventHook(),\n edgeContextMenu: createExtendedEventHook(),\n edgeMouseEnter: createExtendedEventHook(),\n edgeMouseMove: createExtendedEventHook(),\n edgeMouseLeave: createExtendedEventHook(),\n edgeDoubleClick: createExtendedEventHook(),\n edgeClick: createExtendedEventHook(),\n edgeUpdateStart: createExtendedEventHook(),\n edgeUpdate: createExtendedEventHook(),\n edgeUpdateEnd: createExtendedEventHook(),\n updateNodeInternals: createExtendedEventHook(),\n error: createExtendedEventHook((err) => warn(err.message))\n };\n}\nfunction useHooks(emit, hooks) {\n const inst = getCurrentInstance();\n onBeforeMount(() => {\n for (const [key, value] of Object.entries(hooks.value)) {\n const listener = (data) => {\n emit(key, data);\n };\n value.setEmitter(listener);\n tryOnScopeDispose(value.removeEmitter);\n value.setHasEmitListeners(() => hasVNodeListener(key));\n tryOnScopeDispose(value.removeHasEmitListeners);\n }\n });\n function hasVNodeListener(event) {\n var _a;\n const key = toHandlerKey(event);\n const h2 = (_a = inst == null ? void 0 : inst.vnode.props) == null ? void 0 : _a[key];\n return !!h2;\n }\n}\nfunction toHandlerKey(event) {\n const [head, ...rest] = event.split(\":\");\n const camel = head.replace(/(?:^|-)(\\w)/g, (_, c) => c.toUpperCase());\n return `on${camel}${rest.length ? `:${rest.join(\":\")}` : \"\"}`;\n}\nfunction useState() {\n return {\n vueFlowRef: null,\n viewportRef: null,\n nodes: [],\n edges: [],\n connectionLookup: /* @__PURE__ */ new Map(),\n nodeTypes: {},\n edgeTypes: {},\n initialized: false,\n dimensions: {\n width: 0,\n height: 0\n },\n viewport: { x: 0, y: 0, zoom: 1 },\n d3Zoom: null,\n d3Selection: null,\n d3ZoomHandler: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n nodeExtent: [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY]\n ],\n selectionMode: SelectionMode.Full,\n paneDragging: false,\n preventScrolling: true,\n zoomOnScroll: true,\n zoomOnPinch: true,\n zoomOnDoubleClick: true,\n panOnScroll: false,\n panOnScrollSpeed: 0.5,\n panOnScrollMode: PanOnScrollMode.Free,\n paneClickDistance: 0,\n panOnDrag: true,\n edgeUpdaterRadius: 10,\n onlyRenderVisibleElements: false,\n defaultViewport: { x: 0, y: 0, zoom: 1 },\n nodesSelectionActive: false,\n userSelectionActive: false,\n userSelectionRect: null,\n defaultMarkerColor: \"#b1b1b7\",\n connectionLineStyle: {},\n connectionLineType: null,\n connectionLineOptions: {\n type: ConnectionLineType.Bezier,\n style: {}\n },\n connectionMode: ConnectionMode.Loose,\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectionPosition: { x: Number.NaN, y: Number.NaN },\n connectionRadius: 20,\n connectOnClick: true,\n connectionStatus: null,\n isValidConnection: null,\n snapGrid: [15, 15],\n snapToGrid: false,\n edgesUpdatable: false,\n edgesFocusable: true,\n nodesFocusable: true,\n nodesConnectable: true,\n nodesDraggable: true,\n nodeDragThreshold: 1,\n elementsSelectable: true,\n selectNodesOnDrag: true,\n multiSelectionActive: false,\n selectionKeyCode: \"Shift\",\n multiSelectionKeyCode: isMacOs() ? \"Meta\" : \"Control\",\n zoomActivationKeyCode: isMacOs() ? \"Meta\" : \"Control\",\n deleteKeyCode: \"Backspace\",\n panActivationKeyCode: \"Space\",\n hooks: createHooks(),\n applyDefault: true,\n autoConnect: false,\n fitViewOnInit: false,\n fitViewOnInitDone: false,\n noDragClassName: \"nodrag\",\n noWheelClassName: \"nowheel\",\n noPanClassName: \"nopan\",\n defaultEdgeOptions: void 0,\n elevateEdgesOnSelect: false,\n elevateNodesOnSelect: true,\n autoPanOnNodeDrag: true,\n autoPanOnConnect: true,\n autoPanSpeed: 15,\n disableKeyboardA11y: false,\n ariaLiveMessage: \"\"\n };\n}\nconst storeOptionsToSkip = [\n \"id\",\n \"vueFlowRef\",\n \"viewportRef\",\n \"initialized\",\n \"modelValue\",\n \"nodes\",\n \"edges\",\n \"maxZoom\",\n \"minZoom\",\n \"translateExtent\",\n \"hooks\",\n \"defaultEdgeOptions\"\n];\nfunction useActions(state, nodeLookup, edgeLookup) {\n const viewportHelper = useViewportHelper(state);\n const updateNodeInternals = (ids) => {\n const updateIds = ids ?? [];\n state.hooks.updateNodeInternals.trigger(updateIds);\n };\n const getIncomers$1 = (nodeOrId) => {\n return getIncomers(nodeOrId, state.nodes, state.edges);\n };\n const getOutgoers$1 = (nodeOrId) => {\n return getOutgoers(nodeOrId, state.nodes, state.edges);\n };\n const getConnectedEdges$1 = (nodesOrId) => {\n return getConnectedEdges(nodesOrId, state.edges);\n };\n const getHandleConnections = ({ id: id2, type, nodeId }) => {\n var _a;\n const handleSuffix = id2 ? `-${type}-${id2}` : `-${type}`;\n return Array.from(((_a = state.connectionLookup.get(`${nodeId}${handleSuffix}`)) == null ? void 0 : _a.values()) ?? []);\n };\n const findNode = (id2) => {\n if (!id2) {\n return;\n }\n return nodeLookup.value.get(id2);\n };\n const findEdge = (id2) => {\n if (!id2) {\n return;\n }\n return edgeLookup.value.get(id2);\n };\n const updateNodePositions = (dragItems, changed, dragging) => {\n var _a, _b;\n const changes = [];\n for (const node of dragItems) {\n const change = {\n id: node.id,\n type: \"position\",\n dragging,\n from: node.from\n };\n if (changed) {\n change.position = node.position;\n if (node.parentNode) {\n const parentNode = findNode(node.parentNode);\n change.position = {\n x: change.position.x - (((_a = parentNode == null ? void 0 : parentNode.computedPosition) == null ? void 0 : _a.x) ?? 0),\n y: change.position.y - (((_b = parentNode == null ? void 0 : parentNode.computedPosition) == null ? void 0 : _b.y) ?? 0)\n };\n }\n }\n changes.push(change);\n }\n if (changes == null ? void 0 : changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const updateNodeDimensions = (updates) => {\n if (!state.vueFlowRef) {\n return;\n }\n const viewportNode = state.vueFlowRef.querySelector(\".vue-flow__transformationpane\");\n if (!viewportNode) {\n return;\n }\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom2 } = new window.DOMMatrixReadOnly(style.transform);\n const changes = [];\n for (const element of updates) {\n const update = element;\n const node = findNode(update.id);\n if (node) {\n const dimensions = getDimensions(update.nodeElement);\n const doUpdate = !!(dimensions.width && dimensions.height && (node.dimensions.width !== dimensions.width || node.dimensions.height !== dimensions.height || update.forceUpdate));\n if (doUpdate) {\n const nodeBounds = update.nodeElement.getBoundingClientRect();\n node.dimensions = dimensions;\n node.handleBounds.source = getHandleBounds(\"source\", update.nodeElement, nodeBounds, zoom2, node.id);\n node.handleBounds.target = getHandleBounds(\"target\", update.nodeElement, nodeBounds, zoom2, node.id);\n changes.push({\n id: node.id,\n type: \"dimensions\",\n dimensions\n });\n }\n }\n }\n if (!state.fitViewOnInitDone && state.fitViewOnInit) {\n viewportHelper.value.fitView().then(() => {\n state.fitViewOnInitDone = true;\n });\n }\n if (changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const elementSelectionHandler = (elements, selected) => {\n const nodeIds = /* @__PURE__ */ new Set();\n const edgeIds = /* @__PURE__ */ new Set();\n for (const element of elements) {\n if (isNode(element)) {\n nodeIds.add(element.id);\n } else if (isEdge(element)) {\n edgeIds.add(element.id);\n }\n }\n const changedNodes = getSelectionChanges(nodeLookup.value, nodeIds, true);\n const changedEdges = getSelectionChanges(edgeLookup.value, edgeIds);\n if (state.multiSelectionActive) {\n for (const nodeId of nodeIds) {\n changedNodes.push(createSelectionChange(nodeId, selected));\n }\n for (const edgeId of edgeIds) {\n changedEdges.push(createSelectionChange(edgeId, selected));\n }\n }\n if (changedNodes.length) {\n state.hooks.nodesChange.trigger(changedNodes);\n }\n if (changedEdges.length) {\n state.hooks.edgesChange.trigger(changedEdges);\n }\n };\n const addSelectedNodes = (nodes) => {\n if (state.multiSelectionActive) {\n const nodeChanges = nodes.map((node) => createSelectionChange(node.id, true));\n state.hooks.nodesChange.trigger(nodeChanges);\n return;\n }\n state.hooks.nodesChange.trigger(getSelectionChanges(nodeLookup.value, new Set(nodes.map((n) => n.id)), true));\n state.hooks.edgesChange.trigger(getSelectionChanges(edgeLookup.value));\n };\n const addSelectedEdges = (edges) => {\n if (state.multiSelectionActive) {\n const changedEdges = edges.map((edge) => createSelectionChange(edge.id, true));\n state.hooks.edgesChange.trigger(changedEdges);\n return;\n }\n state.hooks.edgesChange.trigger(getSelectionChanges(edgeLookup.value, new Set(edges.map((e) => e.id))));\n state.hooks.nodesChange.trigger(getSelectionChanges(nodeLookup.value, /* @__PURE__ */ new Set(), true));\n };\n const addSelectedElements = (elements) => {\n elementSelectionHandler(elements, true);\n };\n const removeSelectedNodes = (nodes) => {\n const nodesToUnselect = nodes || state.nodes;\n const nodeChanges = nodesToUnselect.map((n) => {\n n.selected = false;\n return createSelectionChange(n.id, false);\n });\n state.hooks.nodesChange.trigger(nodeChanges);\n };\n const removeSelectedEdges = (edges) => {\n const edgesToUnselect = edges || state.edges;\n const edgeChanges = edgesToUnselect.map((e) => {\n e.selected = false;\n return createSelectionChange(e.id, false);\n });\n state.hooks.edgesChange.trigger(edgeChanges);\n };\n const removeSelectedElements = (elements) => {\n if (!elements || !elements.length) {\n return elementSelectionHandler([], false);\n }\n const changes = elements.reduce(\n (changes2, curr) => {\n const selectionChange = createSelectionChange(curr.id, false);\n if (isNode(curr)) {\n changes2.nodes.push(selectionChange);\n } else {\n changes2.edges.push(selectionChange);\n }\n return changes2;\n },\n { nodes: [], edges: [] }\n );\n if (changes.nodes.length) {\n state.hooks.nodesChange.trigger(changes.nodes);\n }\n if (changes.edges.length) {\n state.hooks.edgesChange.trigger(changes.edges);\n }\n };\n const setMinZoom = (minZoom) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.scaleExtent([minZoom, state.maxZoom]);\n state.minZoom = minZoom;\n };\n const setMaxZoom = (maxZoom) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.scaleExtent([state.minZoom, maxZoom]);\n state.maxZoom = maxZoom;\n };\n const setTranslateExtent = (translateExtent) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.translateExtent(translateExtent);\n state.translateExtent = translateExtent;\n };\n const setNodeExtent = (nodeExtent) => {\n state.nodeExtent = nodeExtent;\n updateNodeInternals();\n };\n const setPaneClickDistance = (clickDistance) => {\n var _a;\n (_a = state.d3Zoom) == null ? void 0 : _a.clickDistance(clickDistance);\n };\n const setInteractive = (isInteractive) => {\n state.nodesDraggable = isInteractive;\n state.nodesConnectable = isInteractive;\n state.elementsSelectable = isInteractive;\n };\n const setNodes = (nodes) => {\n const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n if (!state.initialized && !nextNodes.length) {\n return;\n }\n state.nodes = createGraphNodes(nextNodes, findNode, state.hooks.error.trigger);\n };\n const setEdges = (edges) => {\n const nextEdges = edges instanceof Function ? edges(state.edges) : edges;\n if (!state.initialized && !nextEdges.length) {\n return;\n }\n const validEdges = createGraphEdges(\n nextEdges,\n state.isValidConnection,\n findNode,\n findEdge,\n state.hooks.error.trigger,\n state.defaultEdgeOptions,\n state.nodes,\n state.edges\n );\n updateConnectionLookup(state.connectionLookup, edgeLookup.value, validEdges);\n state.edges = validEdges;\n };\n const setElements = (elements) => {\n const nextElements = elements instanceof Function ? elements([...state.nodes, ...state.edges]) : elements;\n if (!state.initialized && !nextElements.length) {\n return;\n }\n setNodes(nextElements.filter(isNode));\n setEdges(nextElements.filter(isEdge));\n };\n const addNodes = (nodes) => {\n let nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n nextNodes = Array.isArray(nextNodes) ? nextNodes : [nextNodes];\n const graphNodes = createGraphNodes(nextNodes, findNode, state.hooks.error.trigger);\n const changes = [];\n for (const node of graphNodes) {\n changes.push(createAdditionChange(node));\n }\n if (changes.length) {\n state.hooks.nodesChange.trigger(changes);\n }\n };\n const addEdges = (params) => {\n let nextEdges = params instanceof Function ? params(state.edges) : params;\n nextEdges = Array.isArray(nextEdges) ? nextEdges : [nextEdges];\n const validEdges = createGraphEdges(\n nextEdges,\n state.isValidConnection,\n findNode,\n findEdge,\n state.hooks.error.trigger,\n state.defaultEdgeOptions,\n state.nodes,\n state.edges\n );\n const changes = [];\n for (const edge of validEdges) {\n changes.push(createAdditionChange(edge));\n }\n if (changes.length) {\n state.hooks.edgesChange.trigger(changes);\n }\n };\n const removeNodes = (nodes, removeConnectedEdges = true, removeChildren = false) => {\n const nextNodes = nodes instanceof Function ? nodes(state.nodes) : nodes;\n const nodesToRemove = Array.isArray(nextNodes) ? nextNodes : [nextNodes];\n const nodeChanges = [];\n const edgeChanges = [];\n function createEdgeRemovalChanges(nodes2) {\n const connectedEdges = getConnectedEdges$1(nodes2);\n for (const edge of connectedEdges) {\n if (isDef(edge.deletable) ? edge.deletable : true) {\n edgeChanges.push(createEdgeRemoveChange(edge.id, edge.source, edge.target, edge.sourceHandle, edge.targetHandle));\n }\n }\n }\n function createChildrenRemovalChanges(id2) {\n const children2 = [];\n for (const node of state.nodes) {\n if (node.parentNode === id2) {\n children2.push(node);\n }\n }\n if (children2.length) {\n for (const child of children2) {\n nodeChanges.push(createNodeRemoveChange(child.id));\n }\n if (removeConnectedEdges) {\n createEdgeRemovalChanges(children2);\n }\n for (const child of children2) {\n createChildrenRemovalChanges(child.id);\n }\n }\n }\n for (const item of nodesToRemove) {\n const currNode = typeof item === \"string\" ? findNode(item) : item;\n if (!currNode) {\n continue;\n }\n if (isDef(currNode.deletable) && !currNode.deletable) {\n continue;\n }\n nodeChanges.push(createNodeRemoveChange(currNode.id));\n if (removeConnectedEdges) {\n createEdgeRemovalChanges([currNode]);\n }\n if (removeChildren) {\n createChildrenRemovalChanges(currNode.id);\n }\n }\n if (edgeChanges.length) {\n state.hooks.edgesChange.trigger(edgeChanges);\n }\n if (nodeChanges.length) {\n state.hooks.nodesChange.trigger(nodeChanges);\n }\n };\n const removeEdges = (edges) => {\n const nextEdges = edges instanceof Function ? edges(state.edges) : edges;\n const edgesToRemove = Array.isArray(nextEdges) ? nextEdges : [nextEdges];\n const changes = [];\n for (const item of edgesToRemove) {\n const currEdge = typeof item === \"string\" ? findEdge(item) : item;\n if (!currEdge) {\n continue;\n }\n if (isDef(currEdge.deletable) && !currEdge.deletable) {\n continue;\n }\n changes.push(\n createEdgeRemoveChange(\n typeof item === \"string\" ? item : item.id,\n currEdge.source,\n currEdge.target,\n currEdge.sourceHandle,\n currEdge.targetHandle\n )\n );\n }\n state.hooks.edgesChange.trigger(changes);\n };\n const updateEdge2 = (oldEdge, newConnection, shouldReplaceId = true) => {\n const prevEdge = findEdge(oldEdge.id);\n if (!prevEdge) {\n return false;\n }\n const prevEdgeIndex = state.edges.indexOf(prevEdge);\n const newEdge = updateEdgeAction(oldEdge, newConnection, prevEdge, shouldReplaceId, state.hooks.error.trigger);\n if (newEdge) {\n const [validEdge] = createGraphEdges(\n [newEdge],\n state.isValidConnection,\n findNode,\n findEdge,\n state.hooks.error.trigger,\n state.defaultEdgeOptions,\n state.nodes,\n state.edges\n );\n state.edges = state.edges.map((edge, index) => index === prevEdgeIndex ? validEdge : edge);\n updateConnectionLookup(state.connectionLookup, edgeLookup.value, [validEdge]);\n return validEdge;\n }\n return false;\n };\n const updateEdgeData = (id2, dataUpdate, options = { replace: false }) => {\n const edge = findEdge(id2);\n if (!edge) {\n return;\n }\n const nextData = typeof dataUpdate === \"function\" ? dataUpdate(edge) : dataUpdate;\n edge.data = options.replace ? nextData : { ...edge.data, ...nextData };\n };\n const applyNodeChanges2 = (changes) => {\n return applyChanges(changes, state.nodes);\n };\n const applyEdgeChanges2 = (changes) => {\n const changedEdges = applyChanges(changes, state.edges);\n updateConnectionLookup(state.connectionLookup, edgeLookup.value, changedEdges);\n return changedEdges;\n };\n const updateNode = (id2, nodeUpdate, options = { replace: false }) => {\n const node = findNode(id2);\n if (!node) {\n return;\n }\n const nextNode = typeof nodeUpdate === \"function\" ? nodeUpdate(node) : nodeUpdate;\n if (options.replace) {\n state.nodes.splice(state.nodes.indexOf(node), 1, nextNode);\n } else {\n Object.assign(node, nextNode);\n }\n };\n const updateNodeData = (id2, dataUpdate, options = { replace: false }) => {\n const node = findNode(id2);\n if (!node) {\n return;\n }\n const nextData = typeof dataUpdate === \"function\" ? dataUpdate(node) : dataUpdate;\n node.data = options.replace ? nextData : { ...node.data, ...nextData };\n };\n const startConnection = (startHandle, position, isClick = false) => {\n if (isClick) {\n state.connectionClickStartHandle = startHandle;\n } else {\n state.connectionStartHandle = startHandle;\n }\n state.connectionEndHandle = null;\n state.connectionStatus = null;\n if (position) {\n state.connectionPosition = position;\n }\n };\n const updateConnection = (position, result = null, status = null) => {\n if (state.connectionStartHandle) {\n state.connectionPosition = position;\n state.connectionEndHandle = result;\n state.connectionStatus = status;\n }\n };\n const endConnection = (event, isClick) => {\n state.connectionPosition = { x: Number.NaN, y: Number.NaN };\n state.connectionEndHandle = null;\n state.connectionStatus = null;\n if (isClick) {\n state.connectionClickStartHandle = null;\n } else {\n state.connectionStartHandle = null;\n }\n };\n const getNodeRect = (nodeOrRect) => {\n const isRectObj = isRect(nodeOrRect);\n const node = isRectObj ? null : isGraphNode(nodeOrRect) ? nodeOrRect : findNode(nodeOrRect.id);\n if (!isRectObj && !node) {\n return [null, null, isRectObj];\n }\n const nodeRect = isRectObj ? nodeOrRect : nodeToRect(node);\n return [nodeRect, node, isRectObj];\n };\n const getIntersectingNodes = (nodeOrRect, partially = true, nodes = state.nodes) => {\n const [nodeRect, node, isRect2] = getNodeRect(nodeOrRect);\n if (!nodeRect) {\n return [];\n }\n const intersections = [];\n for (const n of nodes || state.nodes) {\n if (!isRect2 && (n.id === node.id || !n.computedPosition)) {\n continue;\n }\n const currNodeRect = nodeToRect(n);\n const overlappingArea = getOverlappingArea(currNodeRect, nodeRect);\n const partiallyVisible = partially && overlappingArea > 0;\n if (partiallyVisible || overlappingArea >= currNodeRect.width * currNodeRect.height || overlappingArea >= Number(nodeRect.width) * Number(nodeRect.height)) {\n intersections.push(n);\n }\n }\n return intersections;\n };\n const isNodeIntersecting = (nodeOrRect, area, partially = true) => {\n const [nodeRect] = getNodeRect(nodeOrRect);\n if (!nodeRect) {\n return false;\n }\n const overlappingArea = getOverlappingArea(nodeRect, area);\n const partiallyVisible = partially && overlappingArea > 0;\n return partiallyVisible || overlappingArea >= Number(nodeRect.width) * Number(nodeRect.height);\n };\n const panBy = (delta) => {\n const { viewport, dimensions, d3Zoom, d3Selection, translateExtent } = state;\n if (!d3Zoom || !d3Selection || !delta.x && !delta.y) {\n return false;\n }\n const nextTransform = identity.translate(viewport.x + delta.x, viewport.y + delta.y).scale(viewport.zoom);\n const extent = [\n [0, 0],\n [dimensions.width, dimensions.height]\n ];\n const constrainedTransform = d3Zoom.constrain()(nextTransform, extent, translateExtent);\n const transformChanged = state.viewport.x !== constrainedTransform.x || state.viewport.y !== constrainedTransform.y || state.viewport.zoom !== constrainedTransform.k;\n d3Zoom.transform(d3Selection, constrainedTransform);\n return transformChanged;\n };\n const setState = (options) => {\n const opts = options instanceof Function ? options(state) : options;\n const exclude = [\n \"d3Zoom\",\n \"d3Selection\",\n \"d3ZoomHandler\",\n \"viewportRef\",\n \"vueFlowRef\",\n \"dimensions\",\n \"hooks\"\n ];\n if (isDef(opts.defaultEdgeOptions)) {\n state.defaultEdgeOptions = opts.defaultEdgeOptions;\n }\n const elements = opts.modelValue || opts.nodes || opts.edges ? [] : void 0;\n if (elements) {\n if (opts.modelValue) {\n elements.push(...opts.modelValue);\n }\n if (opts.nodes) {\n elements.push(...opts.nodes);\n }\n if (opts.edges) {\n elements.push(...opts.edges);\n }\n setElements(elements);\n }\n const setSkippedOptions = () => {\n if (isDef(opts.maxZoom)) {\n setMaxZoom(opts.maxZoom);\n }\n if (isDef(opts.minZoom)) {\n setMinZoom(opts.minZoom);\n }\n if (isDef(opts.translateExtent)) {\n setTranslateExtent(opts.translateExtent);\n }\n };\n for (const o of Object.keys(opts)) {\n const key = o;\n const option = opts[key];\n if (![...storeOptionsToSkip, ...exclude].includes(key) && isDef(option)) {\n state[key] = option;\n }\n }\n until(() => state.d3Zoom).not.toBeNull().then(setSkippedOptions);\n if (!state.initialized) {\n state.initialized = true;\n }\n };\n const toObject = () => {\n const nodes = [];\n const edges = [];\n for (const node of state.nodes) {\n const {\n computedPosition: _,\n handleBounds: __,\n selected: ___,\n dimensions: ____,\n isParent: _____,\n resizing: ______,\n dragging: _______,\n events: _________,\n ...rest\n } = node;\n nodes.push(rest);\n }\n for (const edge of state.edges) {\n const { selected: _, sourceNode: __, targetNode: ___, events: ____, ...rest } = edge;\n edges.push(rest);\n }\n return JSON.parse(\n JSON.stringify({\n nodes,\n edges,\n position: [state.viewport.x, state.viewport.y],\n zoom: state.viewport.zoom,\n viewport: state.viewport\n })\n );\n };\n const fromObject = (obj) => {\n return new Promise((resolve) => {\n const { nodes, edges, position, zoom: zoom2, viewport } = obj;\n if (nodes) {\n setNodes(nodes);\n }\n if (edges) {\n setEdges(edges);\n }\n if ((viewport == null ? void 0 : viewport.x) && (viewport == null ? void 0 : viewport.y) || position) {\n const x = (viewport == null ? void 0 : viewport.x) || position[0];\n const y = (viewport == null ? void 0 : viewport.y) || position[1];\n const nextZoom = (viewport == null ? void 0 : viewport.zoom) || zoom2 || state.viewport.zoom;\n return until(() => viewportHelper.value.viewportInitialized).toBe(true).then(() => {\n viewportHelper.value.setViewport({\n x,\n y,\n zoom: nextZoom\n }).then(() => {\n resolve(true);\n });\n });\n } else {\n resolve(true);\n }\n });\n };\n const $reset = () => {\n const resetState = useState();\n state.edges = [];\n state.nodes = [];\n if (state.d3Zoom && state.d3Selection) {\n const updatedTransform = identity.translate(resetState.defaultViewport.x ?? 0, resetState.defaultViewport.y ?? 0).scale(clamp(resetState.defaultViewport.zoom ?? 1, resetState.minZoom, resetState.maxZoom));\n const bbox = state.viewportRef.getBoundingClientRect();\n const extent = [\n [0, 0],\n [bbox.width, bbox.height]\n ];\n const constrainedTransform = state.d3Zoom.constrain()(updatedTransform, extent, resetState.translateExtent);\n state.d3Zoom.transform(state.d3Selection, constrainedTransform);\n }\n setState(resetState);\n };\n return {\n updateNodePositions,\n updateNodeDimensions,\n setElements,\n setNodes,\n setEdges,\n addNodes,\n addEdges,\n removeNodes,\n removeEdges,\n findNode,\n findEdge,\n updateEdge: updateEdge2,\n updateEdgeData,\n updateNode,\n updateNodeData,\n applyEdgeChanges: applyEdgeChanges2,\n applyNodeChanges: applyNodeChanges2,\n addSelectedElements,\n addSelectedNodes,\n addSelectedEdges,\n setMinZoom,\n setMaxZoom,\n setTranslateExtent,\n setNodeExtent,\n setPaneClickDistance,\n removeSelectedElements,\n removeSelectedNodes,\n removeSelectedEdges,\n startConnection,\n updateConnection,\n endConnection,\n setInteractive,\n setState,\n getIntersectingNodes,\n getIncomers: getIncomers$1,\n getOutgoers: getOutgoers$1,\n getConnectedEdges: getConnectedEdges$1,\n getHandleConnections,\n isNodeIntersecting,\n panBy,\n fitView: (params) => viewportHelper.value.fitView(params),\n zoomIn: (transitionOpts) => viewportHelper.value.zoomIn(transitionOpts),\n zoomOut: (transitionOpts) => viewportHelper.value.zoomOut(transitionOpts),\n zoomTo: (zoomLevel, transitionOpts) => viewportHelper.value.zoomTo(zoomLevel, transitionOpts),\n setViewport: (params, transitionOpts) => viewportHelper.value.setViewport(params, transitionOpts),\n setTransform: (params, transitionOpts) => viewportHelper.value.setTransform(params, transitionOpts),\n getViewport: () => viewportHelper.value.getViewport(),\n getTransform: () => viewportHelper.value.getTransform(),\n setCenter: (x, y, opts) => viewportHelper.value.setCenter(x, y, opts),\n fitBounds: (params, opts) => viewportHelper.value.fitBounds(params, opts),\n project: (params) => viewportHelper.value.project(params),\n screenToFlowCoordinate: (params) => viewportHelper.value.screenToFlowCoordinate(params),\n flowToScreenCoordinate: (params) => viewportHelper.value.flowToScreenCoordinate(params),\n toObject,\n fromObject,\n updateNodeInternals,\n viewportHelper,\n $reset,\n $destroy: () => {\n }\n };\n}\nconst _hoisted_1$9 = [\"data-id\", \"data-handleid\", \"data-nodeid\", \"data-handlepos\"];\nconst __default__$f = {\n name: \"Handle\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$f = /* @__PURE__ */ defineComponent({\n ...__default__$f,\n props: {\n id: { default: null },\n type: {},\n position: { default: () => Position.Top },\n isValidConnection: { type: Function },\n connectable: { type: [Boolean, Number, String, Function], default: void 0 },\n connectableStart: { type: Boolean, default: true },\n connectableEnd: { type: Boolean, default: true }\n },\n setup(__props, { expose: __expose }) {\n const props = createPropsRestProxy(__props, [\"position\", \"connectable\", \"connectableStart\", \"connectableEnd\", \"id\"]);\n const type = toRef(() => props.type ?? \"source\");\n const isValidConnection = toRef(() => props.isValidConnection ?? null);\n const {\n id: flowId,\n connectionStartHandle,\n connectionClickStartHandle,\n connectionEndHandle,\n vueFlowRef,\n nodesConnectable,\n noDragClassName,\n noPanClassName\n } = useVueFlow();\n const { id: nodeId, node, nodeEl, connectedEdges } = useNode();\n const handle = ref();\n const isConnectableStart = toRef(() => typeof __props.connectableStart !== \"undefined\" ? __props.connectableStart : true);\n const isConnectableEnd = toRef(() => typeof __props.connectableEnd !== \"undefined\" ? __props.connectableEnd : true);\n const isConnecting = toRef(\n () => {\n var _a, _b, _c, _d, _e, _f;\n return ((_a = connectionStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionStartHandle.value) == null ? void 0 : _b.id) === __props.id && ((_c = connectionStartHandle.value) == null ? void 0 : _c.type) === type.value || ((_d = connectionEndHandle.value) == null ? void 0 : _d.nodeId) === nodeId && ((_e = connectionEndHandle.value) == null ? void 0 : _e.id) === __props.id && ((_f = connectionEndHandle.value) == null ? void 0 : _f.type) === type.value;\n }\n );\n const isClickConnecting = toRef(\n () => {\n var _a, _b, _c;\n return ((_a = connectionClickStartHandle.value) == null ? void 0 : _a.nodeId) === nodeId && ((_b = connectionClickStartHandle.value) == null ? void 0 : _b.id) === __props.id && ((_c = connectionClickStartHandle.value) == null ? void 0 : _c.type) === type.value;\n }\n );\n const { handlePointerDown, handleClick } = useHandle({\n nodeId,\n handleId: __props.id,\n isValidConnection,\n type\n });\n const isConnectable = computed(() => {\n if (typeof __props.connectable === \"string\" && __props.connectable === \"single\") {\n return !connectedEdges.value.some((edge) => {\n const id2 = edge[`${type.value}Handle`];\n if (edge[type.value] !== nodeId) {\n return false;\n }\n return id2 ? id2 === __props.id : true;\n });\n }\n if (typeof __props.connectable === \"number\") {\n return connectedEdges.value.filter((edge) => {\n const id2 = edge[`${type.value}Handle`];\n if (edge[type.value] !== nodeId) {\n return false;\n }\n return id2 ? id2 === __props.id : true;\n }).length < __props.connectable;\n }\n if (typeof __props.connectable === \"function\") {\n return __props.connectable(node, connectedEdges.value);\n }\n return isDef(__props.connectable) ? __props.connectable : nodesConnectable.value;\n });\n onMounted(() => {\n var _a;\n if (!node.dimensions.width || !node.dimensions.height) {\n return;\n }\n const existingBounds = (_a = node.handleBounds[type.value]) == null ? void 0 : _a.find((b) => b.id === __props.id);\n if (!vueFlowRef.value || existingBounds) {\n return;\n }\n const viewportNode = vueFlowRef.value.querySelector(\".vue-flow__transformationpane\");\n if (!nodeEl.value || !handle.value || !viewportNode || !__props.id) {\n return;\n }\n const nodeBounds = nodeEl.value.getBoundingClientRect();\n const handleBounds = handle.value.getBoundingClientRect();\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom2 } = new window.DOMMatrixReadOnly(style.transform);\n const nextBounds = {\n id: __props.id,\n position: __props.position,\n x: (handleBounds.left - nodeBounds.left) / zoom2,\n y: (handleBounds.top - nodeBounds.top) / zoom2,\n type: type.value,\n nodeId,\n ...getDimensions(handle.value)\n };\n node.handleBounds[type.value] = [...node.handleBounds[type.value] ?? [], nextBounds];\n });\n function onPointerDown(event) {\n const isMouseTriggered = isMouseEvent(event);\n if (isConnectable.value && isConnectableStart.value && (isMouseTriggered && event.button === 0 || !isMouseTriggered)) {\n handlePointerDown(event);\n }\n }\n function onClick(event) {\n if (!nodeId || !connectionClickStartHandle.value && !isConnectableStart.value) {\n return;\n }\n if (isConnectable.value) {\n handleClick(event);\n }\n }\n __expose({\n handleClick,\n handlePointerDown,\n onClick,\n onPointerDown\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"handle\",\n ref: handle,\n \"data-id\": `${unref(flowId)}-${unref(nodeId)}-${__props.id}-${type.value}`,\n \"data-handleid\": __props.id,\n \"data-nodeid\": unref(nodeId),\n \"data-handlepos\": _ctx.position,\n class: normalizeClass([\"vue-flow__handle\", [\n `vue-flow__handle-${_ctx.position}`,\n `vue-flow__handle-${__props.id}`,\n unref(noDragClassName),\n unref(noPanClassName),\n type.value,\n {\n connectable: isConnectable.value,\n connecting: isClickConnecting.value,\n connectablestart: isConnectableStart.value,\n connectableend: isConnectableEnd.value,\n connectionindicator: isConnectable.value && (isConnectableStart.value && !isConnecting.value || isConnectableEnd.value && isConnecting.value)\n }\n ]]),\n onMousedown: onPointerDown,\n onTouchstartPassive: onPointerDown,\n onClick\n }, [\n renderSlot(_ctx.$slots, \"default\", { id: _ctx.id })\n ], 42, _hoisted_1$9);\n };\n }\n});\nconst DefaultNode = function({\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n label: _label,\n connectable = true,\n isValidTargetPos,\n isValidSourcePos,\n data\n}) {\n const label = data.label ?? _label;\n return [\n h(_sfc_main$f, { type: \"target\", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),\n typeof label !== \"string\" && label ? h(label) : h(Fragment, [label]),\n h(_sfc_main$f, { type: \"source\", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })\n ];\n};\nDefaultNode.props = [\"sourcePosition\", \"targetPosition\", \"label\", \"isValidTargetPos\", \"isValidSourcePos\", \"connectable\", \"data\"];\nDefaultNode.inheritAttrs = false;\nDefaultNode.compatConfig = { MODE: 3 };\nconst DefaultNode$1 = DefaultNode;\nconst OutputNode = function({\n targetPosition = Position.Top,\n label: _label,\n connectable = true,\n isValidTargetPos,\n data\n}) {\n const label = data.label ?? _label;\n return [\n h(_sfc_main$f, { type: \"target\", position: targetPosition, connectable, isValidConnection: isValidTargetPos }),\n typeof label !== \"string\" && label ? h(label) : h(Fragment, [label])\n ];\n};\nOutputNode.props = [\"targetPosition\", \"label\", \"isValidTargetPos\", \"connectable\", \"data\"];\nOutputNode.inheritAttrs = false;\nOutputNode.compatConfig = { MODE: 3 };\nconst OutputNode$1 = OutputNode;\nconst InputNode = function({\n sourcePosition = Position.Bottom,\n label: _label,\n connectable = true,\n isValidSourcePos,\n data\n}) {\n const label = data.label ?? _label;\n return [\n typeof label !== \"string\" && label ? h(label) : h(Fragment, [label]),\n h(_sfc_main$f, { type: \"source\", position: sourcePosition, connectable, isValidConnection: isValidSourcePos })\n ];\n};\nInputNode.props = [\"sourcePosition\", \"label\", \"isValidSourcePos\", \"connectable\", \"data\"];\nInputNode.inheritAttrs = false;\nInputNode.compatConfig = { MODE: 3 };\nconst InputNode$1 = InputNode;\nconst _hoisted_1$8 = [\"transform\"];\nconst _hoisted_2$2 = [\"width\", \"height\", \"x\", \"y\", \"rx\", \"ry\"];\nconst _hoisted_3$1 = [\"y\"];\nconst __default__$e = {\n name: \"EdgeText\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$e = /* @__PURE__ */ defineComponent({\n ...__default__$e,\n props: {\n x: {},\n y: {},\n label: {},\n labelStyle: { default: () => ({}) },\n labelShowBg: { type: Boolean, default: true },\n labelBgStyle: { default: () => ({}) },\n labelBgPadding: { default: () => [2, 4] },\n labelBgBorderRadius: { default: 2 }\n },\n setup(__props) {\n const box = ref({ x: 0, y: 0, width: 0, height: 0 });\n const el = ref(null);\n const transform = computed(() => `translate(${__props.x - box.value.width / 2} ${__props.y - box.value.height / 2})`);\n onMounted(getBox);\n watch([() => __props.x, () => __props.y, el, () => __props.label], getBox);\n function getBox() {\n if (!el.value) {\n return;\n }\n const nextBox = el.value.getBBox();\n if (nextBox.width !== box.value.width || nextBox.height !== box.value.height) {\n box.value = nextBox;\n }\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"g\", {\n transform: transform.value,\n class: \"vue-flow__edge-textwrapper\"\n }, [\n _ctx.labelShowBg ? (openBlock(), createElementBlock(\"rect\", {\n key: 0,\n class: \"vue-flow__edge-textbg\",\n width: `${box.value.width + 2 * _ctx.labelBgPadding[0]}px`,\n height: `${box.value.height + 2 * _ctx.labelBgPadding[1]}px`,\n x: -_ctx.labelBgPadding[0],\n y: -_ctx.labelBgPadding[1],\n style: normalizeStyle(_ctx.labelBgStyle),\n rx: _ctx.labelBgBorderRadius,\n ry: _ctx.labelBgBorderRadius\n }, null, 12, _hoisted_2$2)) : createCommentVNode(\"\", true),\n createElementVNode(\"text\", mergeProps(_ctx.$attrs, {\n ref_key: \"el\",\n ref: el,\n class: \"vue-flow__edge-text\",\n y: box.value.height / 2,\n dy: \"0.3em\",\n style: _ctx.labelStyle\n }), [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n typeof _ctx.label !== \"string\" ? (openBlock(), createBlock(resolveDynamicComponent(_ctx.label), { key: 0 })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [\n createTextVNode(toDisplayString(_ctx.label), 1)\n ], 64))\n ])\n ], 16, _hoisted_3$1)\n ], 8, _hoisted_1$8);\n };\n }\n});\nconst _hoisted_1$7 = [\"id\", \"d\", \"marker-end\", \"marker-start\"];\nconst _hoisted_2$1 = [\"d\", \"stroke-width\"];\nconst __default__$d = {\n name: \"BaseEdge\",\n inheritAttrs: false,\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$d = /* @__PURE__ */ defineComponent({\n ...__default__$d,\n props: {\n id: {},\n labelX: {},\n labelY: {},\n path: {},\n label: {},\n markerStart: {},\n markerEnd: {},\n interactionWidth: { default: 20 },\n labelStyle: {},\n labelShowBg: { type: Boolean },\n labelBgStyle: {},\n labelBgPadding: {},\n labelBgBorderRadius: {}\n },\n setup(__props, { expose: __expose }) {\n const pathEl = ref(null);\n const interactionEl = ref(null);\n const labelEl = ref(null);\n const attrs = useAttrs();\n __expose({\n pathEl,\n interactionEl,\n labelEl\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"path\", mergeProps(unref(attrs), {\n id: _ctx.id,\n ref_key: \"pathEl\",\n ref: pathEl,\n d: _ctx.path,\n class: \"vue-flow__edge-path\",\n \"marker-end\": _ctx.markerEnd,\n \"marker-start\": _ctx.markerStart\n }), null, 16, _hoisted_1$7),\n _ctx.interactionWidth ? (openBlock(), createElementBlock(\"path\", {\n key: 0,\n ref_key: \"interactionEl\",\n ref: interactionEl,\n fill: \"none\",\n d: _ctx.path,\n \"stroke-width\": _ctx.interactionWidth,\n \"stroke-opacity\": 0,\n class: \"vue-flow__edge-interaction\"\n }, null, 8, _hoisted_2$1)) : createCommentVNode(\"\", true),\n _ctx.label && _ctx.labelX && _ctx.labelY ? (openBlock(), createBlock(_sfc_main$e, {\n key: 1,\n ref_key: \"labelEl\",\n ref: labelEl,\n x: _ctx.labelX,\n y: _ctx.labelY,\n label: _ctx.label,\n \"label-show-bg\": _ctx.labelShowBg,\n \"label-bg-style\": _ctx.labelBgStyle,\n \"label-bg-padding\": _ctx.labelBgPadding,\n \"label-bg-border-radius\": _ctx.labelBgBorderRadius,\n \"label-style\": _ctx.labelStyle\n }, null, 8, [\"x\", \"y\", \"label\", \"label-show-bg\", \"label-bg-style\", \"label-bg-padding\", \"label-bg-border-radius\", \"label-style\"])) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nfunction getSimpleEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY\n}) {\n const xOffset = Math.abs(targetX - sourceX) / 2;\n const centerX = targetX < sourceX ? targetX + xOffset : targetX - xOffset;\n const yOffset = Math.abs(targetY - sourceY) / 2;\n const centerY = targetY < sourceY ? targetY + yOffset : targetY - yOffset;\n return [centerX, centerY, xOffset, yOffset];\n}\nfunction getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n}) {\n const centerX = sourceX * 0.125 + sourceControlX * 0.375 + targetControlX * 0.375 + targetX * 0.125;\n const centerY = sourceY * 0.125 + sourceControlY * 0.375 + targetControlY * 0.375 + targetY * 0.125;\n const offsetX = Math.abs(centerX - sourceX);\n const offsetY = Math.abs(centerY - sourceY);\n return [centerX, centerY, offsetX, offsetY];\n}\nfunction calculateControlOffset(distance2, curvature) {\n if (distance2 >= 0) {\n return 0.5 * distance2;\n } else {\n return curvature * 25 * Math.sqrt(-distance2);\n }\n}\nfunction getControlWithCurvature({ pos, x1, y1, x2, y2, c }) {\n let ctX, ctY;\n switch (pos) {\n case Position.Left:\n ctX = x1 - calculateControlOffset(x1 - x2, c);\n ctY = y1;\n break;\n case Position.Right:\n ctX = x1 + calculateControlOffset(x2 - x1, c);\n ctY = y1;\n break;\n case Position.Top:\n ctX = x1;\n ctY = y1 - calculateControlOffset(y1 - y2, c);\n break;\n case Position.Bottom:\n ctX = x1;\n ctY = y1 + calculateControlOffset(y2 - y1, c);\n break;\n }\n return [ctX, ctY];\n}\nfunction getBezierPath(bezierPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n curvature = 0.25\n } = bezierPathParams;\n const [sourceControlX, sourceControlY] = getControlWithCurvature({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n c: curvature\n });\n const [targetControlX, targetControlY] = getControlWithCurvature({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n c: curvature\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n });\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY\n ];\n}\nfunction getControl({ pos, x1, y1, x2, y2 }) {\n let ctX, ctY;\n switch (pos) {\n case Position.Left:\n case Position.Right:\n ctX = 0.5 * (x1 + x2);\n ctY = y1;\n break;\n case Position.Top:\n case Position.Bottom:\n ctX = x1;\n ctY = 0.5 * (y1 + y2);\n break;\n }\n return [ctX, ctY];\n}\nfunction getSimpleBezierPath(simpleBezierPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top\n } = simpleBezierPathParams;\n const [sourceControlX, sourceControlY] = getControl({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY\n });\n const [targetControlX, targetControlY] = getControl({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY\n });\n const [centerX, centerY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY\n });\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n centerX,\n centerY,\n offsetX,\n offsetY\n ];\n}\nconst handleDirections = {\n [Position.Left]: { x: -1, y: 0 },\n [Position.Right]: { x: 1, y: 0 },\n [Position.Top]: { x: 0, y: -1 },\n [Position.Bottom]: { x: 0, y: 1 }\n};\nfunction getDirection({\n source,\n sourcePosition = Position.Bottom,\n target\n}) {\n if (sourcePosition === Position.Left || sourcePosition === Position.Right) {\n return source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 };\n }\n return source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n}\nfunction distance(a, b) {\n return Math.sqrt((b.x - a.x) ** 2 + (b.y - a.y) ** 2);\n}\nfunction getPoints({\n source,\n sourcePosition = Position.Bottom,\n target,\n targetPosition = Position.Top,\n center,\n offset\n}) {\n const sourceDir = handleDirections[sourcePosition];\n const targetDir = handleDirections[targetPosition];\n const sourceGapped = { x: source.x + sourceDir.x * offset, y: source.y + sourceDir.y * offset };\n const targetGapped = { x: target.x + targetDir.x * offset, y: target.y + targetDir.y * offset };\n const dir = getDirection({\n source: sourceGapped,\n sourcePosition,\n target: targetGapped\n });\n const dirAccessor = dir.x !== 0 ? \"x\" : \"y\";\n const currDir = dir[dirAccessor];\n let points;\n let centerX, centerY;\n const sourceGapOffset = { x: 0, y: 0 };\n const targetGapOffset = { x: 0, y: 0 };\n const [defaultCenterX, defaultCenterY, defaultOffsetX, defaultOffsetY] = getSimpleEdgeCenter({\n sourceX: source.x,\n sourceY: source.y,\n targetX: target.x,\n targetY: target.y\n });\n if (sourceDir[dirAccessor] * targetDir[dirAccessor] === -1) {\n centerX = center.x ?? defaultCenterX;\n centerY = center.y ?? defaultCenterY;\n const verticalSplit = [\n { x: centerX, y: sourceGapped.y },\n { x: centerX, y: targetGapped.y }\n ];\n const horizontalSplit = [\n { x: sourceGapped.x, y: centerY },\n { x: targetGapped.x, y: centerY }\n ];\n if (sourceDir[dirAccessor] === currDir) {\n points = dirAccessor === \"x\" ? verticalSplit : horizontalSplit;\n } else {\n points = dirAccessor === \"x\" ? horizontalSplit : verticalSplit;\n }\n } else {\n const sourceTarget = [{ x: sourceGapped.x, y: targetGapped.y }];\n const targetSource = [{ x: targetGapped.x, y: sourceGapped.y }];\n if (dirAccessor === \"x\") {\n points = sourceDir.x === currDir ? targetSource : sourceTarget;\n } else {\n points = sourceDir.y === currDir ? sourceTarget : targetSource;\n }\n if (sourcePosition === targetPosition) {\n const diff = Math.abs(source[dirAccessor] - target[dirAccessor]);\n if (diff <= offset) {\n const gapOffset = Math.min(offset - 1, offset - diff);\n if (sourceDir[dirAccessor] === currDir) {\n sourceGapOffset[dirAccessor] = (sourceGapped[dirAccessor] > source[dirAccessor] ? -1 : 1) * gapOffset;\n } else {\n targetGapOffset[dirAccessor] = (targetGapped[dirAccessor] > target[dirAccessor] ? -1 : 1) * gapOffset;\n }\n }\n }\n if (sourcePosition !== targetPosition) {\n const dirAccessorOpposite = dirAccessor === \"x\" ? \"y\" : \"x\";\n const isSameDir = sourceDir[dirAccessor] === targetDir[dirAccessorOpposite];\n const sourceGtTargetOppo = sourceGapped[dirAccessorOpposite] > targetGapped[dirAccessorOpposite];\n const sourceLtTargetOppo = sourceGapped[dirAccessorOpposite] < targetGapped[dirAccessorOpposite];\n const flipSourceTarget = sourceDir[dirAccessor] === 1 && (!isSameDir && sourceGtTargetOppo || isSameDir && sourceLtTargetOppo) || sourceDir[dirAccessor] !== 1 && (!isSameDir && sourceLtTargetOppo || isSameDir && sourceGtTargetOppo);\n if (flipSourceTarget) {\n points = dirAccessor === \"x\" ? sourceTarget : targetSource;\n }\n }\n const sourceGapPoint = { x: sourceGapped.x + sourceGapOffset.x, y: sourceGapped.y + sourceGapOffset.y };\n const targetGapPoint = { x: targetGapped.x + targetGapOffset.x, y: targetGapped.y + targetGapOffset.y };\n const maxXDistance = Math.max(Math.abs(sourceGapPoint.x - points[0].x), Math.abs(targetGapPoint.x - points[0].x));\n const maxYDistance = Math.max(Math.abs(sourceGapPoint.y - points[0].y), Math.abs(targetGapPoint.y - points[0].y));\n if (maxXDistance >= maxYDistance) {\n centerX = (sourceGapPoint.x + targetGapPoint.x) / 2;\n centerY = points[0].y;\n } else {\n centerX = points[0].x;\n centerY = (sourceGapPoint.y + targetGapPoint.y) / 2;\n }\n }\n const pathPoints = [\n source,\n { x: sourceGapped.x + sourceGapOffset.x, y: sourceGapped.y + sourceGapOffset.y },\n ...points,\n { x: targetGapped.x + targetGapOffset.x, y: targetGapped.y + targetGapOffset.y },\n target\n ];\n return [pathPoints, centerX, centerY, defaultOffsetX, defaultOffsetY];\n}\nfunction getBend(a, b, c, size) {\n const bendSize = Math.min(distance(a, b) / 2, distance(b, c) / 2, size);\n const { x, y } = b;\n if (a.x === x && x === c.x || a.y === y && y === c.y) {\n return `L${x} ${y}`;\n }\n if (a.y === y) {\n const xDir2 = a.x < c.x ? -1 : 1;\n const yDir2 = a.y < c.y ? 1 : -1;\n return `L ${x + bendSize * xDir2},${y}Q ${x},${y} ${x},${y + bendSize * yDir2}`;\n }\n const xDir = a.x < c.x ? 1 : -1;\n const yDir = a.y < c.y ? -1 : 1;\n return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;\n}\nfunction getSmoothStepPath(smoothStepPathParams) {\n const {\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n borderRadius = 5,\n centerX,\n centerY,\n offset = 20\n } = smoothStepPathParams;\n const [points, labelX, labelY, offsetX, offsetY] = getPoints({\n source: { x: sourceX, y: sourceY },\n sourcePosition,\n target: { x: targetX, y: targetY },\n targetPosition,\n center: { x: centerX, y: centerY },\n offset\n });\n const path = points.reduce((res, p, i) => {\n let segment;\n if (i > 0 && i < points.length - 1) {\n segment = getBend(points[i - 1], p, points[i + 1], borderRadius);\n } else {\n segment = `${i === 0 ? \"M\" : \"L\"}${p.x} ${p.y}`;\n }\n res += segment;\n return res;\n }, \"\");\n return [path, labelX, labelY, offsetX, offsetY];\n}\nfunction getStraightPath(straightEdgeParams) {\n const { sourceX, sourceY, targetX, targetY } = straightEdgeParams;\n const [centerX, centerY, offsetX, offsetY] = getSimpleEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY\n });\n return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, centerX, centerY, offsetX, offsetY];\n}\nconst StraightEdge = defineComponent({\n name: \"StraightEdge\",\n props: [\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getStraightPath(props);\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst StraightEdge$1 = StraightEdge;\nconst SmoothStepEdge = defineComponent({\n name: \"SmoothStepEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"borderRadius\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\",\n \"offset\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getSmoothStepPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst SmoothStepEdge$1 = SmoothStepEdge;\nconst StepEdge = defineComponent({\n name: \"StepEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n setup(props, { attrs }) {\n return () => h(SmoothStepEdge$1, { ...props, ...attrs, borderRadius: 0 });\n }\n});\nconst StepEdge$1 = StepEdge;\nconst BezierEdge = defineComponent({\n name: \"BezierEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"curvature\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getBezierPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst BezierEdge$1 = BezierEdge;\nconst SimpleBezierEdge = defineComponent({\n name: \"SimpleBezierEdge\",\n props: [\n \"sourcePosition\",\n \"targetPosition\",\n \"label\",\n \"labelStyle\",\n \"labelShowBg\",\n \"labelBgStyle\",\n \"labelBgPadding\",\n \"labelBgBorderRadius\",\n \"sourceY\",\n \"sourceX\",\n \"targetX\",\n \"targetY\",\n \"markerEnd\",\n \"markerStart\",\n \"interactionWidth\"\n ],\n compatConfig: { MODE: 3 },\n setup(props, { attrs }) {\n return () => {\n const [path, labelX, labelY] = getSimpleBezierPath({\n ...props,\n sourcePosition: props.sourcePosition ?? Position.Bottom,\n targetPosition: props.targetPosition ?? Position.Top\n });\n return h(_sfc_main$d, {\n path,\n labelX,\n labelY,\n ...attrs,\n ...props\n });\n };\n }\n});\nconst SimpleBezierEdge$1 = SimpleBezierEdge;\nconst defaultNodeTypes = {\n input: InputNode$1,\n default: DefaultNode$1,\n output: OutputNode$1\n};\nconst defaultEdgeTypes = {\n default: BezierEdge$1,\n straight: StraightEdge$1,\n step: StepEdge$1,\n smoothstep: SmoothStepEdge$1,\n simplebezier: SimpleBezierEdge$1\n};\nfunction useGetters(state, nodeLookup, edgeLookup) {\n const getNode = computed(() => (id2) => nodeLookup.value.get(id2));\n const getEdge = computed(() => (id2) => edgeLookup.value.get(id2));\n const getEdgeTypes = computed(() => {\n const edgeTypes = {\n ...defaultEdgeTypes,\n ...state.edgeTypes\n };\n const keys = Object.keys(edgeTypes);\n for (const e of state.edges) {\n e.type && !keys.includes(e.type) && (edgeTypes[e.type] = e.type);\n }\n return edgeTypes;\n });\n const getNodeTypes = computed(() => {\n const nodeTypes = {\n ...defaultNodeTypes,\n ...state.nodeTypes\n };\n const keys = Object.keys(nodeTypes);\n for (const n of state.nodes) {\n n.type && !keys.includes(n.type) && (nodeTypes[n.type] = n.type);\n }\n return nodeTypes;\n });\n const getNodes = computed(() => {\n if (state.onlyRenderVisibleElements) {\n return getNodesInside(\n state.nodes,\n {\n x: 0,\n y: 0,\n width: state.dimensions.width,\n height: state.dimensions.height\n },\n state.viewport,\n true\n );\n }\n return state.nodes;\n });\n const getEdges = computed(() => {\n if (state.onlyRenderVisibleElements) {\n const visibleEdges = [];\n for (const edge of state.edges) {\n const source = nodeLookup.value.get(edge.source);\n const target = nodeLookup.value.get(edge.target);\n if (isEdgeVisible({\n sourcePos: source.computedPosition || { x: 0, y: 0 },\n targetPos: target.computedPosition || { x: 0, y: 0 },\n sourceWidth: source.dimensions.width,\n sourceHeight: source.dimensions.height,\n targetWidth: target.dimensions.width,\n targetHeight: target.dimensions.height,\n width: state.dimensions.width,\n height: state.dimensions.height,\n viewport: state.viewport\n })) {\n visibleEdges.push(edge);\n }\n }\n return visibleEdges;\n }\n return state.edges;\n });\n const getElements = computed(() => [...getNodes.value, ...getEdges.value]);\n const getSelectedNodes = computed(() => {\n const selectedNodes = [];\n for (const node of state.nodes) {\n if (node.selected) {\n selectedNodes.push(node);\n }\n }\n return selectedNodes;\n });\n const getSelectedEdges = computed(() => {\n const selectedEdges = [];\n for (const edge of state.edges) {\n if (edge.selected) {\n selectedEdges.push(edge);\n }\n }\n return selectedEdges;\n });\n const getSelectedElements = computed(() => [\n ...getSelectedNodes.value,\n ...getSelectedEdges.value\n ]);\n const getNodesInitialized = computed(() => {\n const initializedNodes = [];\n for (const node of state.nodes) {\n if (!!node.dimensions.width && !!node.dimensions.height && node.handleBounds !== void 0) {\n initializedNodes.push(node);\n }\n }\n return initializedNodes;\n });\n const areNodesInitialized = computed(\n () => getNodes.value.length > 0 && getNodesInitialized.value.length === getNodes.value.length\n );\n return {\n getNode,\n getEdge,\n getElements,\n getEdgeTypes,\n getNodeTypes,\n getEdges,\n getNodes,\n getSelectedElements,\n getSelectedNodes,\n getSelectedEdges,\n getNodesInitialized,\n areNodesInitialized\n };\n}\nclass Storage {\n constructor() {\n this.currentId = 0;\n this.flows = /* @__PURE__ */ new Map();\n }\n static getInstance() {\n var _a;\n const vueApp = (_a = getCurrentInstance()) == null ? void 0 : _a.appContext.app;\n const existingInstance = (vueApp == null ? void 0 : vueApp.config.globalProperties.$vueFlowStorage) ?? Storage.instance;\n Storage.instance = existingInstance ?? new Storage();\n if (vueApp) {\n vueApp.config.globalProperties.$vueFlowStorage = Storage.instance;\n }\n return Storage.instance;\n }\n set(id2, flow) {\n return this.flows.set(id2, flow);\n }\n get(id2) {\n return this.flows.get(id2);\n }\n remove(id2) {\n return this.flows.delete(id2);\n }\n create(id2, preloadedState) {\n const state = useState();\n const reactiveState = reactive(state);\n const hooksOn = {};\n for (const [n, h2] of Object.entries(reactiveState.hooks)) {\n const name = `on${n.charAt(0).toUpperCase() + n.slice(1)}`;\n hooksOn[name] = h2.on;\n }\n const emits = {};\n for (const [n, h2] of Object.entries(reactiveState.hooks)) {\n emits[n] = h2.trigger;\n }\n const nodeLookup = computed(() => {\n const nodesMap = /* @__PURE__ */ new Map();\n for (const node of reactiveState.nodes) {\n nodesMap.set(node.id, node);\n }\n return nodesMap;\n });\n const edgeLookup = computed(() => {\n const edgesMap = /* @__PURE__ */ new Map();\n for (const edge of reactiveState.edges) {\n edgesMap.set(edge.id, edge);\n }\n return edgesMap;\n });\n const getters = useGetters(reactiveState, nodeLookup, edgeLookup);\n const actions = useActions(reactiveState, nodeLookup, edgeLookup);\n actions.setState({ ...reactiveState, ...preloadedState });\n const flow = {\n ...hooksOn,\n ...getters,\n ...actions,\n ...toRefs(reactiveState),\n nodeLookup,\n edgeLookup,\n emits,\n id: id2,\n vueFlowVersion: \"1.47.0\",\n $destroy: () => {\n this.remove(id2);\n }\n };\n this.set(id2, flow);\n return flow;\n }\n getId() {\n return `vue-flow-${this.currentId++}`;\n }\n}\nfunction useVueFlow(idOrOpts) {\n const storage = Storage.getInstance();\n const scope = getCurrentScope();\n const isOptsObj = typeof idOrOpts === \"object\";\n const options = isOptsObj ? idOrOpts : { id: idOrOpts };\n const id2 = options.id;\n const vueFlowId = id2 ?? (scope == null ? void 0 : scope.vueFlowId);\n let vueFlow;\n if (scope) {\n const injectedState = inject(VueFlow, null);\n if (typeof injectedState !== \"undefined\" && injectedState !== null && (!vueFlowId || injectedState.id === vueFlowId)) {\n vueFlow = injectedState;\n }\n }\n if (!vueFlow) {\n if (vueFlowId) {\n vueFlow = storage.get(vueFlowId);\n }\n }\n if (!vueFlow || vueFlowId && vueFlow.id !== vueFlowId) {\n const name = id2 ?? storage.getId();\n const state = storage.create(name, options);\n vueFlow = state;\n const vfScope = scope ?? effectScope(true);\n vfScope.run(() => {\n watch(\n state.applyDefault,\n (shouldApplyDefault, __, onCleanup) => {\n const nodesChangeHandler = (changes) => {\n state.applyNodeChanges(changes);\n };\n const edgesChangeHandler = (changes) => {\n state.applyEdgeChanges(changes);\n };\n if (shouldApplyDefault) {\n state.onNodesChange(nodesChangeHandler);\n state.onEdgesChange(edgesChangeHandler);\n } else {\n state.hooks.value.nodesChange.off(nodesChangeHandler);\n state.hooks.value.edgesChange.off(edgesChangeHandler);\n }\n onCleanup(() => {\n state.hooks.value.nodesChange.off(nodesChangeHandler);\n state.hooks.value.edgesChange.off(edgesChangeHandler);\n });\n },\n { immediate: true }\n );\n tryOnScopeDispose(() => {\n if (vueFlow) {\n const storedInstance = storage.get(vueFlow.id);\n if (storedInstance) {\n storedInstance.$destroy();\n } else {\n warn(`No store instance found for id ${vueFlow.id} in storage.`);\n }\n }\n });\n });\n } else {\n if (isOptsObj) {\n vueFlow.setState(options);\n }\n }\n if (scope) {\n provide(VueFlow, vueFlow);\n scope.vueFlowId = vueFlow.id;\n }\n if (isOptsObj) {\n const instance = getCurrentInstance();\n if ((instance == null ? void 0 : instance.type.name) !== \"VueFlow\") {\n vueFlow.emits.error(new VueFlowError(ErrorCode.USEVUEFLOW_OPTIONS));\n }\n }\n return vueFlow;\n}\nfunction useResizeHandler(viewportEl) {\n const { emits, dimensions } = useVueFlow();\n let resizeObserver;\n onMounted(() => {\n const updateDimensions = () => {\n var _a, _b;\n if (!viewportEl.value || !(((_b = (_a = viewportEl.value).checkVisibility) == null ? void 0 : _b.call(_a)) ?? true)) {\n return;\n }\n const size = getDimensions(viewportEl.value);\n if (size.width === 0 || size.height === 0) {\n emits.error(new VueFlowError(ErrorCode.MISSING_VIEWPORT_DIMENSIONS));\n }\n dimensions.value = { width: size.width || 500, height: size.height || 500 };\n };\n updateDimensions();\n window.addEventListener(\"resize\", updateDimensions);\n if (viewportEl.value) {\n resizeObserver = new ResizeObserver(() => updateDimensions());\n resizeObserver.observe(viewportEl.value);\n }\n onBeforeUnmount(() => {\n window.removeEventListener(\"resize\", updateDimensions);\n if (resizeObserver && viewportEl.value) {\n resizeObserver.unobserve(viewportEl.value);\n }\n });\n });\n}\nconst __default__$c = {\n name: \"UserSelection\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$c = /* @__PURE__ */ defineComponent({\n ...__default__$c,\n props: {\n userSelectionRect: {}\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-flow__selection vue-flow__container\",\n style: normalizeStyle({\n width: `${_ctx.userSelectionRect.width}px`,\n height: `${_ctx.userSelectionRect.height}px`,\n transform: `translate(${_ctx.userSelectionRect.x}px, ${_ctx.userSelectionRect.y}px)`\n })\n }, null, 4);\n };\n }\n});\nconst _hoisted_1$6 = [\"tabIndex\"];\nconst __default__$b = {\n name: \"NodesSelection\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$b = /* @__PURE__ */ defineComponent({\n ...__default__$b,\n setup(__props) {\n const { emits, viewport, getSelectedNodes, noPanClassName, disableKeyboardA11y, userSelectionActive } = useVueFlow();\n const updatePositions = useUpdateNodePositions();\n const el = ref(null);\n const dragging = useDrag({\n el,\n onStart(args) {\n emits.selectionDragStart(args);\n emits.nodeDragStart(args);\n },\n onDrag(args) {\n emits.selectionDrag(args);\n emits.nodeDrag(args);\n },\n onStop(args) {\n emits.selectionDragStop(args);\n emits.nodeDragStop(args);\n }\n });\n onMounted(() => {\n var _a;\n if (!disableKeyboardA11y.value) {\n (_a = el.value) == null ? void 0 : _a.focus({ preventScroll: true });\n }\n });\n const selectedNodesBBox = computed(() => getRectOfNodes(getSelectedNodes.value));\n const innerStyle = computed(() => ({\n width: `${selectedNodesBBox.value.width}px`,\n height: `${selectedNodesBBox.value.height}px`,\n top: `${selectedNodesBBox.value.y}px`,\n left: `${selectedNodesBBox.value.x}px`\n }));\n function onContextMenu(event) {\n emits.selectionContextMenu({ event, nodes: getSelectedNodes.value });\n }\n function onKeyDown(event) {\n if (disableKeyboardA11y) {\n return;\n }\n if (arrowKeyDiffs[event.key]) {\n event.preventDefault();\n updatePositions(\n {\n x: arrowKeyDiffs[event.key].x,\n y: arrowKeyDiffs[event.key].y\n },\n event.shiftKey\n );\n }\n }\n return (_ctx, _cache) => {\n return !unref(userSelectionActive) && selectedNodesBBox.value.width && selectedNodesBBox.value.height ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"vue-flow__nodesselection vue-flow__container\", unref(noPanClassName)]),\n style: normalizeStyle({ transform: `translate(${unref(viewport).x}px,${unref(viewport).y}px) scale(${unref(viewport).zoom})` })\n }, [\n createElementVNode(\"div\", {\n ref_key: \"el\",\n ref: el,\n class: normalizeClass([{ dragging: unref(dragging) }, \"vue-flow__nodesselection-rect\"]),\n style: normalizeStyle(innerStyle.value),\n tabIndex: unref(disableKeyboardA11y) ? void 0 : -1,\n onContextmenu: onContextMenu,\n onKeydown: onKeyDown\n }, null, 46, _hoisted_1$6)\n ], 6)) : createCommentVNode(\"\", true);\n };\n }\n});\nfunction getMousePosition(event, containerBounds) {\n return {\n x: event.clientX - containerBounds.left,\n y: event.clientY - containerBounds.top\n };\n}\nconst __default__$a = {\n name: \"Pane\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$a = /* @__PURE__ */ defineComponent({\n ...__default__$a,\n props: {\n isSelecting: { type: Boolean },\n selectionKeyPressed: { type: Boolean }\n },\n setup(__props) {\n const {\n vueFlowRef,\n nodes,\n viewport,\n emits,\n userSelectionActive,\n removeSelectedElements,\n userSelectionRect,\n elementsSelectable,\n nodesSelectionActive,\n getSelectedEdges,\n getSelectedNodes,\n removeNodes,\n removeEdges,\n selectionMode,\n deleteKeyCode,\n multiSelectionKeyCode,\n multiSelectionActive,\n edgeLookup,\n nodeLookup,\n connectionLookup,\n defaultEdgeOptions,\n connectionStartHandle\n } = useVueFlow();\n const container = ref(null);\n const selectedNodeIds = ref(/* @__PURE__ */ new Set());\n const selectedEdgeIds = ref(/* @__PURE__ */ new Set());\n const containerBounds = ref();\n const hasActiveSelection = toRef(() => elementsSelectable.value && (__props.isSelecting || userSelectionActive.value));\n const connectionInProgress = toRef(() => connectionStartHandle.value !== null);\n let selectionInProgress = false;\n let selectionStarted = false;\n const deleteKeyPressed = useKeyPress(deleteKeyCode, { actInsideInputWithModifier: false });\n const multiSelectKeyPressed = useKeyPress(multiSelectionKeyCode);\n watch(deleteKeyPressed, (isKeyPressed) => {\n if (!isKeyPressed) {\n return;\n }\n removeNodes(getSelectedNodes.value);\n removeEdges(getSelectedEdges.value);\n nodesSelectionActive.value = false;\n });\n watch(multiSelectKeyPressed, (isKeyPressed) => {\n multiSelectionActive.value = isKeyPressed;\n });\n function wrapHandler(handler, containerRef) {\n return (event) => {\n if (event.target !== containerRef) {\n return;\n }\n handler == null ? void 0 : handler(event);\n };\n }\n function onClick(event) {\n if (selectionInProgress || connectionInProgress.value) {\n selectionInProgress = false;\n return;\n }\n emits.paneClick(event);\n removeSelectedElements();\n nodesSelectionActive.value = false;\n }\n function onContextMenu(event) {\n event.preventDefault();\n event.stopPropagation();\n emits.paneContextMenu(event);\n }\n function onWheel(event) {\n emits.paneScroll(event);\n }\n function onPointerDown(event) {\n var _a, _b, _c;\n containerBounds.value = (_a = vueFlowRef.value) == null ? void 0 : _a.getBoundingClientRect();\n if (!elementsSelectable.value || !__props.isSelecting || event.button !== 0 || event.target !== container.value || !containerBounds.value) {\n return;\n }\n (_c = (_b = event.target) == null ? void 0 : _b.setPointerCapture) == null ? void 0 : _c.call(_b, event.pointerId);\n const { x, y } = getMousePosition(event, containerBounds.value);\n selectionStarted = true;\n selectionInProgress = false;\n removeSelectedElements();\n userSelectionRect.value = {\n width: 0,\n height: 0,\n startX: x,\n startY: y,\n x,\n y\n };\n emits.selectionStart(event);\n }\n function onPointerMove(event) {\n var _a;\n if (!containerBounds.value || !userSelectionRect.value) {\n return;\n }\n selectionInProgress = true;\n const { x: mouseX, y: mouseY } = getEventPosition(event, containerBounds.value);\n const { startX = 0, startY = 0 } = userSelectionRect.value;\n const nextUserSelectRect = {\n startX,\n startY,\n x: mouseX < startX ? mouseX : startX,\n y: mouseY < startY ? mouseY : startY,\n width: Math.abs(mouseX - startX),\n height: Math.abs(mouseY - startY)\n };\n const prevSelectedNodeIds = selectedNodeIds.value;\n const prevSelectedEdgeIds = selectedEdgeIds.value;\n selectedNodeIds.value = new Set(\n getNodesInside(nodes.value, nextUserSelectRect, viewport.value, selectionMode.value === SelectionMode.Partial, true).map(\n (node) => node.id\n )\n );\n selectedEdgeIds.value = /* @__PURE__ */ new Set();\n const edgesSelectable = ((_a = defaultEdgeOptions.value) == null ? void 0 : _a.selectable) ?? true;\n for (const nodeId of selectedNodeIds.value) {\n const connections = connectionLookup.value.get(nodeId);\n if (!connections) {\n continue;\n }\n for (const { edgeId } of connections.values()) {\n const edge = edgeLookup.value.get(edgeId);\n if (edge && (edge.selectable ?? edgesSelectable)) {\n selectedEdgeIds.value.add(edgeId);\n }\n }\n }\n if (!areSetsEqual(prevSelectedNodeIds, selectedNodeIds.value)) {\n const changes = getSelectionChanges(nodeLookup.value, selectedNodeIds.value, true);\n emits.nodesChange(changes);\n }\n if (!areSetsEqual(prevSelectedEdgeIds, selectedEdgeIds.value)) {\n const changes = getSelectionChanges(edgeLookup.value, selectedEdgeIds.value);\n emits.edgesChange(changes);\n }\n userSelectionRect.value = nextUserSelectRect;\n userSelectionActive.value = true;\n nodesSelectionActive.value = false;\n }\n function onPointerUp(event) {\n var _a;\n if (event.button !== 0 || !selectionStarted) {\n return;\n }\n (_a = event.target) == null ? void 0 : _a.releasePointerCapture(event.pointerId);\n if (!userSelectionActive.value && userSelectionRect.value && event.target === container.value) {\n onClick(event);\n }\n userSelectionActive.value = false;\n userSelectionRect.value = null;\n nodesSelectionActive.value = selectedNodeIds.value.size > 0;\n emits.selectionEnd(event);\n if (__props.selectionKeyPressed) {\n selectionInProgress = false;\n }\n selectionStarted = false;\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"container\",\n ref: container,\n class: normalizeClass([\"vue-flow__pane vue-flow__container\", { selection: _ctx.isSelecting }]),\n onClick: _cache[0] || (_cache[0] = (event) => hasActiveSelection.value ? void 0 : wrapHandler(onClick, container.value)(event)),\n onContextmenu: _cache[1] || (_cache[1] = ($event) => wrapHandler(onContextMenu, container.value)($event)),\n onWheelPassive: _cache[2] || (_cache[2] = ($event) => wrapHandler(onWheel, container.value)($event)),\n onPointerenter: _cache[3] || (_cache[3] = (event) => hasActiveSelection.value ? void 0 : unref(emits).paneMouseEnter(event)),\n onPointerdown: _cache[4] || (_cache[4] = (event) => hasActiveSelection.value ? onPointerDown(event) : unref(emits).paneMouseMove(event)),\n onPointermove: _cache[5] || (_cache[5] = (event) => hasActiveSelection.value ? onPointerMove(event) : unref(emits).paneMouseMove(event)),\n onPointerup: _cache[6] || (_cache[6] = (event) => hasActiveSelection.value ? onPointerUp(event) : void 0),\n onPointerleave: _cache[7] || (_cache[7] = ($event) => unref(emits).paneMouseLeave($event))\n }, [\n renderSlot(_ctx.$slots, \"default\"),\n unref(userSelectionActive) && unref(userSelectionRect) ? (openBlock(), createBlock(_sfc_main$c, {\n key: 0,\n \"user-selection-rect\": unref(userSelectionRect)\n }, null, 8, [\"user-selection-rect\"])) : createCommentVNode(\"\", true),\n unref(nodesSelectionActive) && unref(getSelectedNodes).length ? (openBlock(), createBlock(_sfc_main$b, { key: 1 })) : createCommentVNode(\"\", true)\n ], 34);\n };\n }\n});\nconst __default__$9 = {\n name: \"Transform\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$9 = /* @__PURE__ */ defineComponent({\n ...__default__$9,\n setup(__props) {\n const { viewport, fitViewOnInit, fitViewOnInitDone } = useVueFlow();\n const isHidden = computed(() => {\n if (fitViewOnInit.value) {\n return !fitViewOnInitDone.value;\n }\n return false;\n });\n const transform = computed(() => `translate(${viewport.value.x}px,${viewport.value.y}px) scale(${viewport.value.zoom})`);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"vue-flow__transformationpane vue-flow__container\",\n style: normalizeStyle({ transform: transform.value, opacity: isHidden.value ? 0 : void 0 })\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 4);\n };\n }\n});\nconst __default__$8 = {\n name: \"Viewport\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$8 = /* @__PURE__ */ defineComponent({\n ...__default__$8,\n setup(__props) {\n const {\n minZoom,\n maxZoom,\n defaultViewport,\n translateExtent,\n zoomActivationKeyCode,\n selectionKeyCode,\n panActivationKeyCode,\n panOnScroll,\n panOnScrollMode,\n panOnScrollSpeed,\n panOnDrag,\n zoomOnDoubleClick,\n zoomOnPinch,\n zoomOnScroll,\n preventScrolling,\n noWheelClassName,\n noPanClassName,\n emits,\n connectionStartHandle,\n userSelectionActive,\n paneDragging,\n d3Zoom: storeD3Zoom,\n d3Selection: storeD3Selection,\n d3ZoomHandler: storeD3ZoomHandler,\n viewport,\n viewportRef,\n paneClickDistance\n } = useVueFlow();\n useResizeHandler(viewportRef);\n const isZoomingOrPanning = shallowRef(false);\n const isPanScrolling = shallowRef(false);\n let panScrollTimeout = null;\n let zoomedWithRightMouseButton = false;\n let mouseButton = 0;\n let prevTransform = {\n x: 0,\n y: 0,\n zoom: 0\n };\n const panKeyPressed = useKeyPress(panActivationKeyCode);\n const selectionKeyPressed = useKeyPress(selectionKeyCode);\n const zoomKeyPressed = useKeyPress(zoomActivationKeyCode);\n const shouldPanOnDrag = toRef(\n () => (!selectionKeyPressed.value || selectionKeyPressed.value && selectionKeyCode.value === true) && (panKeyPressed.value || panOnDrag.value)\n );\n const shouldPanOnScroll = toRef(() => panKeyPressed.value || panOnScroll.value);\n const isSelecting = toRef(() => selectionKeyPressed.value || selectionKeyCode.value === true && shouldPanOnDrag.value !== true);\n const connectionInProgress = toRef(() => connectionStartHandle.value !== null);\n onMounted(() => {\n if (!viewportRef.value) {\n warn(\"Viewport element is missing\");\n return;\n }\n const viewportElement = viewportRef.value;\n const bbox = viewportElement.getBoundingClientRect();\n const d3Zoom = zoom().clickDistance(paneClickDistance.value).scaleExtent([minZoom.value, maxZoom.value]).translateExtent(translateExtent.value);\n const d3Selection = select(viewportElement).call(d3Zoom);\n const d3ZoomHandler = d3Selection.on(\"wheel.zoom\");\n const updatedTransform = identity.translate(defaultViewport.value.x ?? 0, defaultViewport.value.y ?? 0).scale(clamp(defaultViewport.value.zoom ?? 1, minZoom.value, maxZoom.value));\n const extent = [\n [0, 0],\n [bbox.width, bbox.height]\n ];\n const constrainedTransform = d3Zoom.constrain()(updatedTransform, extent, translateExtent.value);\n d3Zoom.transform(d3Selection, constrainedTransform);\n d3Zoom.wheelDelta(wheelDelta);\n storeD3Zoom.value = d3Zoom;\n storeD3Selection.value = d3Selection;\n storeD3ZoomHandler.value = d3ZoomHandler;\n viewport.value = { x: constrainedTransform.x, y: constrainedTransform.y, zoom: constrainedTransform.k };\n d3Zoom.on(\"start\", (event) => {\n var _a;\n if (!event.sourceEvent) {\n return null;\n }\n mouseButton = event.sourceEvent.button;\n isZoomingOrPanning.value = true;\n const flowTransform = eventToFlowTransform(event.transform);\n if (((_a = event.sourceEvent) == null ? void 0 : _a.type) === \"mousedown\") {\n paneDragging.value = true;\n }\n prevTransform = flowTransform;\n emits.viewportChangeStart(flowTransform);\n emits.moveStart({ event, flowTransform });\n });\n d3Zoom.on(\"end\", (event) => {\n if (!event.sourceEvent) {\n return null;\n }\n isZoomingOrPanning.value = false;\n paneDragging.value = false;\n if (isRightClickPan(shouldPanOnDrag.value, mouseButton ?? 0) && !zoomedWithRightMouseButton) {\n emits.paneContextMenu(event.sourceEvent);\n }\n zoomedWithRightMouseButton = false;\n if (viewChanged(prevTransform, event.transform)) {\n const flowTransform = eventToFlowTransform(event.transform);\n prevTransform = flowTransform;\n emits.viewportChangeEnd(flowTransform);\n emits.moveEnd({ event, flowTransform });\n }\n });\n d3Zoom.filter((event) => {\n var _a;\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const eventButton = event.button;\n const isWheelEvent = event.type === \"wheel\";\n if (eventButton === 1 && event.type === \"mousedown\" && (isWrappedWithClass(event, \"vue-flow__node\") || isWrappedWithClass(event, \"vue-flow__edge\"))) {\n return true;\n }\n if (!shouldPanOnDrag.value && !zoomScroll && !shouldPanOnScroll.value && !zoomOnDoubleClick.value && !zoomOnPinch.value) {\n return false;\n }\n if (userSelectionActive.value) {\n return false;\n }\n if (connectionInProgress.value && !isWheelEvent) {\n return false;\n }\n if (!zoomOnDoubleClick.value && event.type === \"dblclick\") {\n return false;\n }\n if (isWrappedWithClass(event, noWheelClassName.value) && isWheelEvent) {\n return false;\n }\n if (isWrappedWithClass(event, noPanClassName.value) && (!isWheelEvent || shouldPanOnScroll.value && isWheelEvent && !zoomKeyPressed.value)) {\n return false;\n }\n if (!zoomOnPinch.value && event.ctrlKey && isWheelEvent) {\n return false;\n }\n if (!zoomScroll && !shouldPanOnScroll.value && !pinchZoom && isWheelEvent) {\n return false;\n }\n if (!zoomOnPinch && event.type === \"touchstart\" && ((_a = event.touches) == null ? void 0 : _a.length) > 1) {\n event.preventDefault();\n return false;\n }\n if (!shouldPanOnDrag.value && (event.type === \"mousedown\" || event.type === \"touchstart\")) {\n return false;\n }\n if (selectionKeyCode.value === true && Array.isArray(panOnDrag.value) && panOnDrag.value.includes(0) && eventButton === 0) {\n return false;\n }\n if (Array.isArray(panOnDrag.value) && !panOnDrag.value.includes(eventButton) && (event.type === \"mousedown\" || event.type === \"touchstart\")) {\n return false;\n }\n const buttonAllowed = Array.isArray(panOnDrag.value) && panOnDrag.value.includes(eventButton) || selectionKeyCode.value === true && Array.isArray(panOnDrag.value) && !panOnDrag.value.includes(0) || !eventButton || eventButton <= 1;\n return (!event.ctrlKey || panKeyPressed.value || isWheelEvent) && buttonAllowed;\n });\n watch(\n [userSelectionActive, shouldPanOnDrag],\n () => {\n if (userSelectionActive.value && !isZoomingOrPanning.value) {\n d3Zoom.on(\"zoom\", null);\n } else if (!userSelectionActive.value) {\n d3Zoom.on(\"zoom\", (event) => {\n viewport.value = { x: event.transform.x, y: event.transform.y, zoom: event.transform.k };\n const flowTransform = eventToFlowTransform(event.transform);\n zoomedWithRightMouseButton = isRightClickPan(shouldPanOnDrag.value, mouseButton ?? 0);\n emits.viewportChange(flowTransform);\n emits.move({ event, flowTransform });\n });\n }\n },\n { immediate: true }\n );\n watch(\n [userSelectionActive, shouldPanOnScroll, panOnScrollMode, zoomKeyPressed, zoomOnPinch, preventScrolling, noWheelClassName],\n () => {\n if (shouldPanOnScroll.value && !zoomKeyPressed.value && !userSelectionActive.value) {\n d3Selection.on(\n \"wheel.zoom\",\n (event) => {\n if (isWrappedWithClass(event, noWheelClassName.value)) {\n return false;\n }\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const scrollEventEnabled = !preventScrolling.value || shouldPanOnScroll.value || zoomScroll || pinchZoom;\n if (!scrollEventEnabled) {\n return false;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n const currentZoom = d3Selection.property(\"__zoom\").k || 1;\n const _isMacOs = isMacOs();\n if (!panKeyPressed.value && event.ctrlKey && zoomOnPinch.value && _isMacOs) {\n const point = pointer(event);\n const pinchDelta = wheelDelta(event);\n const zoom2 = currentZoom * 2 ** pinchDelta;\n d3Zoom.scaleTo(d3Selection, zoom2, point, event);\n return;\n }\n const deltaNormalize = event.deltaMode === 1 ? 20 : 1;\n let deltaX = panOnScrollMode.value === PanOnScrollMode.Vertical ? 0 : event.deltaX * deltaNormalize;\n let deltaY = panOnScrollMode.value === PanOnScrollMode.Horizontal ? 0 : event.deltaY * deltaNormalize;\n if (!_isMacOs && event.shiftKey && panOnScrollMode.value !== PanOnScrollMode.Vertical && !deltaX && deltaY) {\n deltaX = deltaY;\n deltaY = 0;\n }\n d3Zoom.translateBy(\n d3Selection,\n -(deltaX / currentZoom) * panOnScrollSpeed.value,\n -(deltaY / currentZoom) * panOnScrollSpeed.value\n );\n const nextViewport = eventToFlowTransform(d3Selection.property(\"__zoom\"));\n if (panScrollTimeout) {\n clearTimeout(panScrollTimeout);\n }\n if (!isPanScrolling.value) {\n isPanScrolling.value = true;\n emits.moveStart({ event, flowTransform: nextViewport });\n emits.viewportChangeStart(nextViewport);\n } else {\n emits.move({ event, flowTransform: nextViewport });\n emits.viewportChange(nextViewport);\n panScrollTimeout = setTimeout(() => {\n emits.moveEnd({ event, flowTransform: nextViewport });\n emits.viewportChangeEnd(nextViewport);\n isPanScrolling.value = false;\n }, 150);\n }\n },\n { passive: false }\n );\n } else if (typeof d3ZoomHandler !== \"undefined\") {\n d3Selection.on(\n \"wheel.zoom\",\n function(event, d) {\n const invalidEvent = !preventScrolling.value && event.type === \"wheel\" && !event.ctrlKey;\n const zoomScroll = zoomKeyPressed.value || zoomOnScroll.value;\n const pinchZoom = zoomOnPinch.value && event.ctrlKey;\n const scrollEventsDisabled = !zoomScroll && !panOnScroll.value && !pinchZoom && event.type === \"wheel\";\n if (scrollEventsDisabled || invalidEvent || isWrappedWithClass(event, noWheelClassName.value)) {\n return null;\n }\n event.preventDefault();\n d3ZoomHandler.call(this, event, d);\n },\n { passive: false }\n );\n }\n },\n { immediate: true }\n );\n });\n function isRightClickPan(pan, usedButton) {\n return usedButton === 2 && Array.isArray(pan) && pan.includes(2);\n }\n function viewChanged(prevViewport, eventTransform) {\n return prevViewport.x !== eventTransform.x && !Number.isNaN(eventTransform.x) || prevViewport.y !== eventTransform.y && !Number.isNaN(eventTransform.y) || prevViewport.zoom !== eventTransform.k && !Number.isNaN(eventTransform.k);\n }\n function eventToFlowTransform(eventTransform) {\n return {\n x: eventTransform.x,\n y: eventTransform.y,\n zoom: eventTransform.k\n };\n }\n function isWrappedWithClass(event, className) {\n return event.target.closest(`.${className}`);\n }\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref_key: \"viewportRef\",\n ref: viewportRef,\n class: \"vue-flow__viewport vue-flow__container\"\n }, [\n createVNode(_sfc_main$a, {\n \"is-selecting\": isSelecting.value,\n \"selection-key-pressed\": unref(selectionKeyPressed),\n class: normalizeClass({\n connecting: connectionInProgress.value,\n dragging: unref(paneDragging),\n draggable: unref(panOnDrag) === true || Array.isArray(unref(panOnDrag)) && unref(panOnDrag).includes(0)\n })\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$9, null, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n })\n ]),\n _: 3\n }, 8, [\"is-selecting\", \"selection-key-pressed\", \"class\"])\n ], 512);\n };\n }\n});\nconst _hoisted_1$5 = [\"id\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = [\"id\"];\nconst __default__$7 = {\n name: \"A11yDescriptions\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n ...__default__$7,\n setup(__props) {\n const { id: id2, disableKeyboardA11y, ariaLiveMessage } = useVueFlow();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createElementVNode(\"div\", {\n id: `${unref(ARIA_NODE_DESC_KEY)}-${unref(id2)}`,\n style: { \"display\": \"none\" }\n }, \" Press enter or space to select a node. \" + toDisplayString(!unref(disableKeyboardA11y) ? \"You can then use the arrow keys to move the node around.\" : \"\") + \" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. \", 9, _hoisted_1$5),\n createElementVNode(\"div\", {\n id: `${unref(ARIA_EDGE_DESC_KEY)}-${unref(id2)}`,\n style: { \"display\": \"none\" }\n }, \" Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. \", 8, _hoisted_2),\n !unref(disableKeyboardA11y) ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n id: `${unref(ARIA_LIVE_MESSAGE)}-${unref(id2)}`,\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\",\n style: { \"position\": \"absolute\", \"width\": \"1px\", \"height\": \"1px\", \"margin\": \"-1px\", \"border\": \"0\", \"padding\": \"0\", \"overflow\": \"hidden\", \"clip\": \"rect(0px, 0px, 0px, 0px)\", \"clip-path\": \"inset(100%)\" }\n }, toDisplayString(unref(ariaLiveMessage)), 9, _hoisted_3)) : createCommentVNode(\"\", true)\n ], 64);\n };\n }\n});\nfunction useOnInitHandler() {\n const vfInstance = useVueFlow();\n watch(\n () => vfInstance.viewportHelper.value.viewportInitialized,\n (isInitialized) => {\n if (isInitialized) {\n setTimeout(() => {\n vfInstance.emits.init(vfInstance);\n vfInstance.emits.paneReady(vfInstance);\n }, 1);\n }\n }\n );\n}\nfunction shiftX(x, shift, position) {\n if (position === Position.Left) {\n return x - shift;\n }\n if (position === Position.Right) {\n return x + shift;\n }\n return x;\n}\nfunction shiftY(y, shift, position) {\n if (position === Position.Top) {\n return y - shift;\n }\n if (position === Position.Bottom) {\n return y + shift;\n }\n return y;\n}\nconst EdgeAnchor = function({\n radius = 10,\n centerX = 0,\n centerY = 0,\n position = Position.Top,\n type\n}) {\n return h(\"circle\", {\n class: `vue-flow__edgeupdater vue-flow__edgeupdater-${type}`,\n cx: shiftX(centerX, radius, position),\n cy: shiftY(centerY, radius, position),\n r: radius,\n stroke: \"transparent\",\n fill: \"transparent\"\n });\n};\nEdgeAnchor.props = [\"radius\", \"centerX\", \"centerY\", \"position\", \"type\"];\nEdgeAnchor.compatConfig = { MODE: 3 };\nconst EdgeAnchor$1 = EdgeAnchor;\nconst EdgeWrapper = defineComponent({\n name: \"Edge\",\n compatConfig: { MODE: 3 },\n props: [\"id\"],\n setup(props) {\n const {\n id: vueFlowId,\n addSelectedEdges,\n connectionMode,\n edgeUpdaterRadius,\n emits,\n nodesSelectionActive,\n noPanClassName,\n getEdgeTypes,\n removeSelectedEdges,\n findEdge,\n findNode,\n isValidConnection,\n multiSelectionActive,\n disableKeyboardA11y,\n elementsSelectable,\n edgesUpdatable,\n edgesFocusable,\n hooks\n } = useVueFlow();\n const edge = computed(() => findEdge(props.id));\n const { emit, on } = useEdgeHooks(edge.value, emits);\n const slots = inject(Slots);\n const instance = getCurrentInstance();\n const mouseOver = ref(false);\n const updating = ref(false);\n const nodeId = ref(\"\");\n const handleId = ref(null);\n const edgeUpdaterType = ref(\"source\");\n const edgeEl = ref(null);\n const isSelectable = toRef(\n () => typeof edge.value.selectable === \"undefined\" ? elementsSelectable.value : edge.value.selectable\n );\n const isUpdatable = toRef(() => typeof edge.value.updatable === \"undefined\" ? edgesUpdatable.value : edge.value.updatable);\n const isFocusable = toRef(() => typeof edge.value.focusable === \"undefined\" ? edgesFocusable.value : edge.value.focusable);\n provide(EdgeId, props.id);\n provide(EdgeRef, edgeEl);\n const edgeClass = computed(() => edge.value.class instanceof Function ? edge.value.class(edge.value) : edge.value.class);\n const edgeStyle = computed(() => edge.value.style instanceof Function ? edge.value.style(edge.value) : edge.value.style);\n const edgeCmp = computed(() => {\n const name = edge.value.type || \"default\";\n const slot = slots == null ? void 0 : slots[`edge-${name}`];\n if (slot) {\n return slot;\n }\n let edgeType = edge.value.template ?? getEdgeTypes.value[name];\n if (typeof edgeType === \"string\") {\n if (instance) {\n const components = Object.keys(instance.appContext.components);\n if (components && components.includes(name)) {\n edgeType = resolveComponent(name, false);\n }\n }\n }\n if (edgeType && typeof edgeType !== \"string\") {\n return edgeType;\n }\n emits.error(new VueFlowError(ErrorCode.EDGE_TYPE_MISSING, edgeType));\n return false;\n });\n const { handlePointerDown } = useHandle({\n nodeId,\n handleId,\n type: edgeUpdaterType,\n isValidConnection,\n edgeUpdaterType,\n onEdgeUpdate,\n onEdgeUpdateEnd\n });\n return () => {\n const sourceNode = findNode(edge.value.source);\n const targetNode = findNode(edge.value.target);\n const pathOptions = \"pathOptions\" in edge.value ? edge.value.pathOptions : {};\n if (!sourceNode && !targetNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_SOURCE_TARGET_MISSING, edge.value.id, edge.value.source, edge.value.target));\n return null;\n }\n if (!sourceNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_SOURCE_MISSING, edge.value.id, edge.value.source));\n return null;\n }\n if (!targetNode) {\n emits.error(new VueFlowError(ErrorCode.EDGE_TARGET_MISSING, edge.value.id, edge.value.target));\n return null;\n }\n if (!edge.value || edge.value.hidden || sourceNode.hidden || targetNode.hidden) {\n return null;\n }\n let sourceNodeHandles;\n if (connectionMode.value === ConnectionMode.Strict) {\n sourceNodeHandles = sourceNode.handleBounds.source;\n } else {\n sourceNodeHandles = [...sourceNode.handleBounds.source || [], ...sourceNode.handleBounds.target || []];\n }\n const sourceHandle = getEdgeHandle(sourceNodeHandles, edge.value.sourceHandle);\n let targetNodeHandles;\n if (connectionMode.value === ConnectionMode.Strict) {\n targetNodeHandles = targetNode.handleBounds.target;\n } else {\n targetNodeHandles = [...targetNode.handleBounds.target || [], ...targetNode.handleBounds.source || []];\n }\n const targetHandle = getEdgeHandle(targetNodeHandles, edge.value.targetHandle);\n const sourcePosition = (sourceHandle == null ? void 0 : sourceHandle.position) || Position.Bottom;\n const targetPosition = (targetHandle == null ? void 0 : targetHandle.position) || Position.Top;\n const { x: sourceX, y: sourceY } = getHandlePosition(sourceNode, sourceHandle, sourcePosition);\n const { x: targetX, y: targetY } = getHandlePosition(targetNode, targetHandle, targetPosition);\n edge.value.sourceX = sourceX;\n edge.value.sourceY = sourceY;\n edge.value.targetX = targetX;\n edge.value.targetY = targetY;\n return h(\n \"g\",\n {\n \"ref\": edgeEl,\n \"key\": props.id,\n \"data-id\": props.id,\n \"class\": [\n \"vue-flow__edge\",\n `vue-flow__edge-${edgeCmp.value === false ? \"default\" : edge.value.type || \"default\"}`,\n noPanClassName.value,\n edgeClass.value,\n {\n updating: mouseOver.value,\n selected: edge.value.selected,\n animated: edge.value.animated,\n inactive: !isSelectable.value && !hooks.value.edgeClick.hasListeners()\n }\n ],\n \"tabIndex\": isFocusable.value ? 0 : void 0,\n \"aria-label\": edge.value.ariaLabel === null ? void 0 : edge.value.ariaLabel ?? `Edge from ${edge.value.source} to ${edge.value.target}`,\n \"aria-describedby\": isFocusable.value ? `${ARIA_EDGE_DESC_KEY}-${vueFlowId}` : void 0,\n \"aria-roledescription\": \"edge\",\n \"role\": isFocusable.value ? \"group\" : \"img\",\n ...edge.value.domAttributes,\n \"onClick\": onEdgeClick,\n \"onContextmenu\": onEdgeContextMenu,\n \"onDblclick\": onDoubleClick,\n \"onMouseenter\": onEdgeMouseEnter,\n \"onMousemove\": onEdgeMouseMove,\n \"onMouseleave\": onEdgeMouseLeave,\n \"onKeyDown\": isFocusable.value ? onKeyDown : void 0\n },\n [\n updating.value ? null : h(edgeCmp.value === false ? getEdgeTypes.value.default : edgeCmp.value, {\n id: props.id,\n sourceNode,\n targetNode,\n source: edge.value.source,\n target: edge.value.target,\n type: edge.value.type,\n updatable: isUpdatable.value,\n selected: edge.value.selected,\n animated: edge.value.animated,\n label: edge.value.label,\n labelStyle: edge.value.labelStyle,\n labelShowBg: edge.value.labelShowBg,\n labelBgStyle: edge.value.labelBgStyle,\n labelBgPadding: edge.value.labelBgPadding,\n labelBgBorderRadius: edge.value.labelBgBorderRadius,\n data: edge.value.data,\n events: { ...edge.value.events, ...on },\n style: edgeStyle.value,\n markerStart: `url('#${getMarkerId(edge.value.markerStart, vueFlowId)}')`,\n markerEnd: `url('#${getMarkerId(edge.value.markerEnd, vueFlowId)}')`,\n sourcePosition,\n targetPosition,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceHandleId: edge.value.sourceHandle,\n targetHandleId: edge.value.targetHandle,\n interactionWidth: edge.value.interactionWidth,\n ...pathOptions\n }),\n [\n isUpdatable.value === \"source\" || isUpdatable.value === true ? [\n h(\n \"g\",\n {\n onMousedown: onEdgeUpdaterSourceMouseDown,\n onMouseenter: onEdgeUpdaterMouseEnter,\n onMouseout: onEdgeUpdaterMouseOut\n },\n h(EdgeAnchor$1, {\n \"position\": sourcePosition,\n \"centerX\": sourceX,\n \"centerY\": sourceY,\n \"radius\": edgeUpdaterRadius.value,\n \"type\": \"source\",\n \"data-type\": \"source\"\n })\n )\n ] : null,\n isUpdatable.value === \"target\" || isUpdatable.value === true ? [\n h(\n \"g\",\n {\n onMousedown: onEdgeUpdaterTargetMouseDown,\n onMouseenter: onEdgeUpdaterMouseEnter,\n onMouseout: onEdgeUpdaterMouseOut\n },\n h(EdgeAnchor$1, {\n \"position\": targetPosition,\n \"centerX\": targetX,\n \"centerY\": targetY,\n \"radius\": edgeUpdaterRadius.value,\n \"type\": \"target\",\n \"data-type\": \"target\"\n })\n )\n ] : null\n ]\n ]\n );\n };\n function onEdgeUpdaterMouseEnter() {\n mouseOver.value = true;\n }\n function onEdgeUpdaterMouseOut() {\n mouseOver.value = false;\n }\n function onEdgeUpdate(event, connection) {\n emit.update({ event, edge: edge.value, connection });\n }\n function onEdgeUpdateEnd(event) {\n emit.updateEnd({ event, edge: edge.value });\n updating.value = false;\n }\n function handleEdgeUpdater(event, isSourceHandle) {\n if (event.button !== 0) {\n return;\n }\n updating.value = true;\n nodeId.value = isSourceHandle ? edge.value.target : edge.value.source;\n handleId.value = (isSourceHandle ? edge.value.targetHandle : edge.value.sourceHandle) ?? null;\n edgeUpdaterType.value = isSourceHandle ? \"target\" : \"source\";\n emit.updateStart({ event, edge: edge.value });\n handlePointerDown(event);\n }\n function onEdgeClick(event) {\n var _a;\n const data = { event, edge: edge.value };\n if (isSelectable.value) {\n nodesSelectionActive.value = false;\n if (edge.value.selected && multiSelectionActive.value) {\n removeSelectedEdges([edge.value]);\n (_a = edgeEl.value) == null ? void 0 : _a.blur();\n } else {\n addSelectedEdges([edge.value]);\n }\n }\n emit.click(data);\n }\n function onEdgeContextMenu(event) {\n emit.contextMenu({ event, edge: edge.value });\n }\n function onDoubleClick(event) {\n emit.doubleClick({ event, edge: edge.value });\n }\n function onEdgeMouseEnter(event) {\n emit.mouseEnter({ event, edge: edge.value });\n }\n function onEdgeMouseMove(event) {\n emit.mouseMove({ event, edge: edge.value });\n }\n function onEdgeMouseLeave(event) {\n emit.mouseLeave({ event, edge: edge.value });\n }\n function onEdgeUpdaterSourceMouseDown(event) {\n handleEdgeUpdater(event, true);\n }\n function onEdgeUpdaterTargetMouseDown(event) {\n handleEdgeUpdater(event, false);\n }\n function onKeyDown(event) {\n var _a;\n if (!disableKeyboardA11y.value && elementSelectionKeys.includes(event.key) && isSelectable.value) {\n const unselect = event.key === \"Escape\";\n if (unselect) {\n (_a = edgeEl.value) == null ? void 0 : _a.blur();\n removeSelectedEdges([findEdge(props.id)]);\n } else {\n addSelectedEdges([findEdge(props.id)]);\n }\n }\n }\n }\n});\nconst EdgeWrapper$1 = EdgeWrapper;\nconst ConnectionLine = defineComponent({\n name: \"ConnectionLine\",\n compatConfig: { MODE: 3 },\n setup() {\n var _a;\n const {\n id: id2,\n connectionMode,\n connectionStartHandle,\n connectionEndHandle,\n connectionPosition,\n connectionLineType,\n connectionLineStyle,\n connectionLineOptions,\n connectionStatus,\n viewport,\n findNode\n } = useVueFlow();\n const connectionLineComponent = (_a = inject(Slots)) == null ? void 0 : _a[\"connection-line\"];\n const fromNode = computed(() => {\n var _a2;\n return findNode((_a2 = connectionStartHandle.value) == null ? void 0 : _a2.nodeId);\n });\n const toNode = computed(() => {\n var _a2;\n return findNode((_a2 = connectionEndHandle.value) == null ? void 0 : _a2.nodeId) ?? null;\n });\n const toXY = computed(() => {\n return {\n x: (connectionPosition.value.x - viewport.value.x) / viewport.value.zoom,\n y: (connectionPosition.value.y - viewport.value.y) / viewport.value.zoom\n };\n });\n const markerStart = computed(\n () => connectionLineOptions.value.markerStart ? `url(#${getMarkerId(connectionLineOptions.value.markerStart, id2)})` : \"\"\n );\n const markerEnd = computed(\n () => connectionLineOptions.value.markerEnd ? `url(#${getMarkerId(connectionLineOptions.value.markerEnd, id2)})` : \"\"\n );\n return () => {\n var _a2, _b, _c;\n if (!fromNode.value || !connectionStartHandle.value) {\n return null;\n }\n const startHandleId = connectionStartHandle.value.id;\n const handleType = connectionStartHandle.value.type;\n const fromHandleBounds = fromNode.value.handleBounds;\n let handleBounds = (fromHandleBounds == null ? void 0 : fromHandleBounds[handleType]) ?? [];\n if (connectionMode.value === ConnectionMode.Loose) {\n const oppositeBounds = (fromHandleBounds == null ? void 0 : fromHandleBounds[handleType === \"source\" ? \"target\" : \"source\"]) ?? [];\n handleBounds = [...handleBounds, ...oppositeBounds];\n }\n if (!handleBounds) {\n return null;\n }\n const fromHandle = (startHandleId ? handleBounds.find((d) => d.id === startHandleId) : handleBounds[0]) ?? null;\n const fromPosition = (fromHandle == null ? void 0 : fromHandle.position) ?? Position.Top;\n const { x: fromX, y: fromY } = getHandlePosition(fromNode.value, fromHandle, fromPosition);\n let toHandle = null;\n if (toNode.value) {\n if (connectionMode.value === ConnectionMode.Strict) {\n toHandle = ((_a2 = toNode.value.handleBounds[handleType === \"source\" ? \"target\" : \"source\"]) == null ? void 0 : _a2.find(\n (d) => {\n var _a3;\n return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.id);\n }\n )) || null;\n } else {\n toHandle = ((_b = [...toNode.value.handleBounds.source ?? [], ...toNode.value.handleBounds.target ?? []]) == null ? void 0 : _b.find(\n (d) => {\n var _a3;\n return d.id === ((_a3 = connectionEndHandle.value) == null ? void 0 : _a3.id);\n }\n )) || null;\n }\n }\n const toPosition = ((_c = connectionEndHandle.value) == null ? void 0 : _c.position) ?? (fromPosition ? oppositePosition[fromPosition] : null);\n if (!fromPosition || !toPosition) {\n return null;\n }\n const type = connectionLineType.value ?? connectionLineOptions.value.type ?? ConnectionLineType.Bezier;\n let dAttr = \"\";\n const pathParams = {\n sourceX: fromX,\n sourceY: fromY,\n sourcePosition: fromPosition,\n targetX: toXY.value.x,\n targetY: toXY.value.y,\n targetPosition: toPosition\n };\n if (type === ConnectionLineType.Bezier) {\n [dAttr] = getBezierPath(pathParams);\n } else if (type === ConnectionLineType.Step) {\n [dAttr] = getSmoothStepPath({\n ...pathParams,\n borderRadius: 0\n });\n } else if (type === ConnectionLineType.SmoothStep) {\n [dAttr] = getSmoothStepPath(pathParams);\n } else if (type === ConnectionLineType.SimpleBezier) {\n [dAttr] = getSimpleBezierPath(pathParams);\n } else {\n dAttr = `M${fromX},${fromY} ${toXY.value.x},${toXY.value.y}`;\n }\n return h(\n \"svg\",\n { class: \"vue-flow__edges vue-flow__connectionline vue-flow__container\" },\n h(\n \"g\",\n { class: \"vue-flow__connection\" },\n connectionLineComponent ? h(connectionLineComponent, {\n sourceX: fromX,\n sourceY: fromY,\n sourcePosition: fromPosition,\n targetX: toXY.value.x,\n targetY: toXY.value.y,\n targetPosition: toPosition,\n sourceNode: fromNode.value,\n sourceHandle: fromHandle,\n targetNode: toNode.value,\n targetHandle: toHandle,\n markerEnd: markerEnd.value,\n markerStart: markerStart.value,\n connectionStatus: connectionStatus.value\n }) : h(\"path\", {\n \"d\": dAttr,\n \"class\": [connectionLineOptions.value.class, connectionStatus.value, \"vue-flow__connection-path\"],\n \"style\": {\n ...connectionLineStyle.value,\n ...connectionLineOptions.value.style\n },\n \"marker-end\": markerEnd.value,\n \"marker-start\": markerStart.value\n })\n )\n );\n };\n }\n});\nconst ConnectionLine$1 = ConnectionLine;\nconst _hoisted_1$4 = [\"id\", \"markerWidth\", \"markerHeight\", \"markerUnits\", \"orient\"];\nconst __default__$6 = {\n name: \"MarkerType\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n ...__default__$6,\n props: {\n id: {},\n type: {},\n color: { default: \"none\" },\n width: { default: 12.5 },\n height: { default: 12.5 },\n markerUnits: { default: \"strokeWidth\" },\n orient: { default: \"auto-start-reverse\" },\n strokeWidth: { default: 1 }\n },\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"marker\", {\n id: _ctx.id,\n class: \"vue-flow__arrowhead\",\n viewBox: \"-10 -10 20 20\",\n refX: \"0\",\n refY: \"0\",\n markerWidth: `${_ctx.width}`,\n markerHeight: `${_ctx.height}`,\n markerUnits: _ctx.markerUnits,\n orient: _ctx.orient\n }, [\n _ctx.type === unref(MarkerType).ArrowClosed ? (openBlock(), createElementBlock(\"polyline\", {\n key: 0,\n style: normalizeStyle({\n stroke: _ctx.color,\n fill: _ctx.color,\n strokeWidth: _ctx.strokeWidth\n }),\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n points: \"-5,-4 0,0 -5,4 -5,-4\"\n }, null, 4)) : createCommentVNode(\"\", true),\n _ctx.type === unref(MarkerType).Arrow ? (openBlock(), createElementBlock(\"polyline\", {\n key: 1,\n style: normalizeStyle({\n stroke: _ctx.color,\n strokeWidth: _ctx.strokeWidth\n }),\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n fill: \"none\",\n points: \"-5,-4 0,0 -5,4\"\n }, null, 4)) : createCommentVNode(\"\", true)\n ], 8, _hoisted_1$4);\n };\n }\n});\nconst _hoisted_1$3 = {\n class: \"vue-flow__marker vue-flow__container\",\n \"aria-hidden\": \"true\"\n};\nconst __default__$5 = {\n name: \"MarkerDefinitions\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n ...__default__$5,\n setup(__props) {\n const { id: vueFlowId, edges, connectionLineOptions, defaultMarkerColor: defaultColor } = useVueFlow();\n const markers = computed(() => {\n const ids = /* @__PURE__ */ new Set();\n const markers2 = [];\n const createMarkers = (marker) => {\n if (marker) {\n const markerId = getMarkerId(marker, vueFlowId);\n if (!ids.has(markerId)) {\n if (typeof marker === \"object\") {\n markers2.push({ ...marker, id: markerId, color: marker.color || defaultColor.value });\n } else {\n markers2.push({ id: markerId, color: defaultColor.value, type: marker });\n }\n ids.add(markerId);\n }\n }\n };\n for (const marker of [connectionLineOptions.value.markerEnd, connectionLineOptions.value.markerStart]) {\n createMarkers(marker);\n }\n for (const edge of edges.value) {\n for (const marker of [edge.markerStart, edge.markerEnd]) {\n createMarkers(marker);\n }\n }\n return markers2.sort((a, b) => a.id.localeCompare(b.id));\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$3, [\n createElementVNode(\"defs\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(markers.value, (marker) => {\n return openBlock(), createBlock(_sfc_main$6, {\n id: marker.id,\n key: marker.id,\n type: marker.type,\n color: marker.color,\n width: marker.width,\n height: marker.height,\n markerUnits: marker.markerUnits,\n \"stroke-width\": marker.strokeWidth,\n orient: marker.orient\n }, null, 8, [\"id\", \"type\", \"color\", \"width\", \"height\", \"markerUnits\", \"stroke-width\", \"orient\"]);\n }), 128))\n ])\n ]);\n };\n }\n});\nconst __default__$4 = {\n name: \"Edges\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n ...__default__$4,\n setup(__props) {\n const { findNode, getEdges, elevateEdgesOnSelect } = useVueFlow();\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(Fragment, null, [\n createVNode(_sfc_main$5),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getEdges), (edge) => {\n return openBlock(), createElementBlock(\"svg\", {\n key: edge.id,\n class: \"vue-flow__edges vue-flow__container\",\n style: normalizeStyle({ zIndex: unref(getEdgeZIndex)(edge, unref(findNode), unref(elevateEdgesOnSelect)) })\n }, [\n createVNode(unref(EdgeWrapper$1), {\n id: edge.id\n }, null, 8, [\"id\"])\n ], 4);\n }), 128)),\n createVNode(unref(ConnectionLine$1))\n ], 64);\n };\n }\n});\nconst NodeWrapper = defineComponent({\n name: \"Node\",\n compatConfig: { MODE: 3 },\n props: [\"id\", \"resizeObserver\"],\n setup(props) {\n const {\n id: vueFlowId,\n noPanClassName,\n selectNodesOnDrag,\n nodesSelectionActive,\n multiSelectionActive,\n emits,\n removeSelectedNodes,\n addSelectedNodes,\n updateNodeDimensions,\n onUpdateNodeInternals,\n getNodeTypes,\n nodeExtent,\n elevateNodesOnSelect,\n disableKeyboardA11y,\n ariaLiveMessage,\n snapToGrid,\n snapGrid,\n nodeDragThreshold,\n nodesDraggable,\n elementsSelectable,\n nodesConnectable,\n nodesFocusable,\n hooks\n } = useVueFlow();\n const nodeElement = ref(null);\n provide(NodeRef, nodeElement);\n provide(NodeId, props.id);\n const slots = inject(Slots);\n const instance = getCurrentInstance();\n const updateNodePositions = useUpdateNodePositions();\n const { node, parentNode } = useNode(props.id);\n const { emit, on } = useNodeHooks(node, emits);\n const isDraggable = toRef(() => typeof node.draggable === \"undefined\" ? nodesDraggable.value : node.draggable);\n const isSelectable = toRef(() => typeof node.selectable === \"undefined\" ? elementsSelectable.value : node.selectable);\n const isConnectable = toRef(() => typeof node.connectable === \"undefined\" ? nodesConnectable.value : node.connectable);\n const isFocusable = toRef(() => typeof node.focusable === \"undefined\" ? nodesFocusable.value : node.focusable);\n const hasPointerEvents = computed(\n () => isSelectable.value || isDraggable.value || hooks.value.nodeClick.hasListeners() || hooks.value.nodeDoubleClick.hasListeners() || hooks.value.nodeMouseEnter.hasListeners() || hooks.value.nodeMouseMove.hasListeners() || hooks.value.nodeMouseLeave.hasListeners()\n );\n const isInit = toRef(() => !!node.dimensions.width && !!node.dimensions.height);\n const nodeCmp = computed(() => {\n const name = node.type || \"default\";\n const slot = slots == null ? void 0 : slots[`node-${name}`];\n if (slot) {\n return slot;\n }\n let nodeType = node.template || getNodeTypes.value[name];\n if (typeof nodeType === \"string\") {\n if (instance) {\n const components = Object.keys(instance.appContext.components);\n if (components && components.includes(name)) {\n nodeType = resolveComponent(name, false);\n }\n }\n }\n if (nodeType && typeof nodeType !== \"string\") {\n return nodeType;\n }\n emits.error(new VueFlowError(ErrorCode.NODE_TYPE_MISSING, nodeType));\n return false;\n });\n const dragging = useDrag({\n id: props.id,\n el: nodeElement,\n disabled: () => !isDraggable.value,\n selectable: isSelectable,\n dragHandle: () => node.dragHandle,\n onStart(event) {\n emit.dragStart(event);\n },\n onDrag(event) {\n emit.drag(event);\n },\n onStop(event) {\n emit.dragStop(event);\n },\n onClick(event) {\n onSelectNode(event);\n }\n });\n const getClass = computed(() => node.class instanceof Function ? node.class(node) : node.class);\n const getStyle = computed(() => {\n const styles = (node.style instanceof Function ? node.style(node) : node.style) || {};\n const width = node.width instanceof Function ? node.width(node) : node.width;\n const height = node.height instanceof Function ? node.height(node) : node.height;\n if (!styles.width && width) {\n styles.width = typeof width === \"string\" ? width : `${width}px`;\n }\n if (!styles.height && height) {\n styles.height = typeof height === \"string\" ? height : `${height}px`;\n }\n return styles;\n });\n const zIndex = toRef(() => Number(node.zIndex ?? getStyle.value.zIndex ?? 0));\n onUpdateNodeInternals((updateIds) => {\n if (updateIds.includes(props.id) || !updateIds.length) {\n updateInternals();\n }\n });\n onMounted(() => {\n watch(\n () => node.hidden,\n (isHidden = false, _, onCleanup) => {\n if (!isHidden && nodeElement.value) {\n props.resizeObserver.observe(nodeElement.value);\n onCleanup(() => {\n if (nodeElement.value) {\n props.resizeObserver.unobserve(nodeElement.value);\n }\n });\n }\n },\n { immediate: true, flush: \"post\" }\n );\n });\n watch([() => node.type, () => node.sourcePosition, () => node.targetPosition], () => {\n nextTick(() => {\n updateNodeDimensions([{ id: props.id, nodeElement: nodeElement.value, forceUpdate: true }]);\n });\n });\n watch(\n [\n () => node.position.x,\n () => node.position.y,\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.x;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.y;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.computedPosition.z;\n },\n zIndex,\n () => node.selected,\n () => node.dimensions.height,\n () => node.dimensions.width,\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.dimensions.height;\n },\n () => {\n var _a;\n return (_a = parentNode.value) == null ? void 0 : _a.dimensions.width;\n }\n ],\n ([newX, newY, parentX, parentY, parentZ, nodeZIndex]) => {\n const xyzPos = {\n x: newX,\n y: newY,\n z: nodeZIndex + (elevateNodesOnSelect.value ? node.selected ? 1e3 : 0 : 0)\n };\n if (typeof parentX !== \"undefined\" && typeof parentY !== \"undefined\") {\n node.computedPosition = getXYZPos({ x: parentX, y: parentY, z: parentZ }, xyzPos);\n } else {\n node.computedPosition = xyzPos;\n }\n },\n { flush: \"post\", immediate: true }\n );\n watch([() => node.extent, nodeExtent], ([nodeExtent2, globalExtent], [oldNodeExtent, oldGlobalExtent]) => {\n if (nodeExtent2 !== oldNodeExtent || globalExtent !== oldGlobalExtent) {\n clampPosition2();\n }\n });\n if (node.extent === \"parent\" || typeof node.extent === \"object\" && \"range\" in node.extent && node.extent.range === \"parent\") {\n until(() => isInit).toBe(true).then(clampPosition2);\n } else {\n clampPosition2();\n }\n return () => {\n if (node.hidden) {\n return null;\n }\n return h(\n \"div\",\n {\n \"ref\": nodeElement,\n \"data-id\": node.id,\n \"class\": [\n \"vue-flow__node\",\n `vue-flow__node-${nodeCmp.value === false ? \"default\" : node.type || \"default\"}`,\n {\n [noPanClassName.value]: isDraggable.value,\n dragging: dragging == null ? void 0 : dragging.value,\n draggable: isDraggable.value,\n selected: node.selected,\n selectable: isSelectable.value,\n parent: node.isParent\n },\n getClass.value\n ],\n \"style\": {\n visibility: isInit.value ? \"visible\" : \"hidden\",\n zIndex: node.computedPosition.z ?? zIndex.value,\n transform: `translate(${node.computedPosition.x}px,${node.computedPosition.y}px)`,\n pointerEvents: hasPointerEvents.value ? \"all\" : \"none\",\n ...getStyle.value\n },\n \"tabIndex\": isFocusable.value ? 0 : void 0,\n \"role\": isFocusable.value ? \"group\" : void 0,\n \"aria-describedby\": disableKeyboardA11y.value ? void 0 : `${ARIA_NODE_DESC_KEY}-${vueFlowId}`,\n \"aria-label\": node.ariaLabel,\n \"aria-roledescription\": \"node\",\n ...node.domAttributes,\n \"onMouseenter\": onMouseEnter,\n \"onMousemove\": onMouseMove,\n \"onMouseleave\": onMouseLeave,\n \"onContextmenu\": onContextMenu,\n \"onClick\": onSelectNode,\n \"onDblclick\": onDoubleClick,\n \"onKeydown\": onKeyDown\n },\n [\n h(nodeCmp.value === false ? getNodeTypes.value.default : nodeCmp.value, {\n id: node.id,\n type: node.type,\n data: node.data,\n events: { ...node.events, ...on },\n selected: node.selected,\n resizing: node.resizing,\n dragging: dragging.value,\n connectable: isConnectable.value,\n position: node.computedPosition,\n dimensions: node.dimensions,\n isValidTargetPos: node.isValidTargetPos,\n isValidSourcePos: node.isValidSourcePos,\n parent: node.parentNode,\n parentNodeId: node.parentNode,\n zIndex: node.computedPosition.z ?? zIndex.value,\n targetPosition: node.targetPosition,\n sourcePosition: node.sourcePosition,\n label: node.label,\n dragHandle: node.dragHandle,\n onUpdateNodeInternals: updateInternals\n })\n ]\n );\n };\n function clampPosition2() {\n const nextPosition = node.computedPosition;\n const { computedPosition, position } = calcNextPosition(\n node,\n snapToGrid.value ? snapPosition(nextPosition, snapGrid.value) : nextPosition,\n emits.error,\n nodeExtent.value,\n parentNode.value\n );\n if (node.computedPosition.x !== computedPosition.x || node.computedPosition.y !== computedPosition.y) {\n node.computedPosition = { ...node.computedPosition, ...computedPosition };\n }\n if (node.position.x !== position.x || node.position.y !== position.y) {\n node.position = position;\n }\n }\n function updateInternals() {\n if (nodeElement.value) {\n updateNodeDimensions([{ id: props.id, nodeElement: nodeElement.value, forceUpdate: true }]);\n }\n }\n function onMouseEnter(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseEnter({ event, node });\n }\n }\n function onMouseMove(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseMove({ event, node });\n }\n }\n function onMouseLeave(event) {\n if (!(dragging == null ? void 0 : dragging.value)) {\n emit.mouseLeave({ event, node });\n }\n }\n function onContextMenu(event) {\n return emit.contextMenu({ event, node });\n }\n function onDoubleClick(event) {\n return emit.doubleClick({ event, node });\n }\n function onSelectNode(event) {\n if (isSelectable.value && (!selectNodesOnDrag.value || !isDraggable.value || nodeDragThreshold.value > 0)) {\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedNodes,\n nodesSelectionActive,\n false,\n nodeElement.value\n );\n }\n emit.click({ event, node });\n }\n function onKeyDown(event) {\n if (isInputDOMNode(event) || disableKeyboardA11y.value) {\n return;\n }\n if (elementSelectionKeys.includes(event.key) && isSelectable.value) {\n const unselect = event.key === \"Escape\";\n handleNodeClick(\n node,\n multiSelectionActive.value,\n addSelectedNodes,\n removeSelectedNodes,\n nodesSelectionActive,\n unselect,\n nodeElement.value\n );\n } else if (isDraggable.value && node.selected && arrowKeyDiffs[event.key]) {\n event.preventDefault();\n ariaLiveMessage.value = `Moved selected node ${event.key.replace(\"Arrow\", \"\").toLowerCase()}. New position, x: ${~~node.position.x}, y: ${~~node.position.y}`;\n updateNodePositions(\n {\n x: arrowKeyDiffs[event.key].x,\n y: arrowKeyDiffs[event.key].y\n },\n event.shiftKey\n );\n }\n }\n }\n});\nconst NodeWrapper$1 = NodeWrapper;\nconst _hoisted_1$2 = {\n height: \"0\",\n width: \"0\"\n};\nconst __default__$3 = {\n name: \"EdgeLabelRenderer\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n ...__default__$3,\n setup(__props) {\n const { viewportRef } = useVueFlow();\n const teleportTarget = toRef(() => {\n var _a;\n return (_a = viewportRef.value) == null ? void 0 : _a.getElementsByClassName(\"vue-flow__edge-labels\")[0];\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"svg\", null, [\n (openBlock(), createElementBlock(\"foreignObject\", _hoisted_1$2, [\n (openBlock(), createBlock(Teleport, {\n to: teleportTarget.value,\n disabled: !teleportTarget.value\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 8, [\"to\", \"disabled\"]))\n ]))\n ]);\n };\n }\n});\nfunction useNodesInitialized(options = { includeHiddenNodes: false }) {\n const { nodes } = useVueFlow();\n return computed(() => {\n if (nodes.value.length === 0) {\n return false;\n }\n for (const node of nodes.value) {\n if (options.includeHiddenNodes || !node.hidden) {\n if ((node == null ? void 0 : node.handleBounds) === void 0 || node.dimensions.width === 0 || node.dimensions.height === 0) {\n return false;\n }\n }\n }\n return true;\n });\n}\nconst _hoisted_1$1 = { class: \"vue-flow__nodes vue-flow__container\" };\nconst __default__$2 = {\n name: \"Nodes\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n ...__default__$2,\n setup(__props) {\n const { getNodes, updateNodeDimensions, emits } = useVueFlow();\n const nodesInitialized = useNodesInitialized();\n const resizeObserver = ref();\n watch(\n nodesInitialized,\n (isInit) => {\n if (isInit) {\n nextTick(() => {\n emits.nodesInitialized(getNodes.value);\n });\n }\n },\n { immediate: true }\n );\n onMounted(() => {\n resizeObserver.value = new ResizeObserver((entries) => {\n const updates = entries.map((entry) => {\n const id2 = entry.target.getAttribute(\"data-id\");\n return {\n id: id2,\n nodeElement: entry.target,\n forceUpdate: true\n };\n });\n nextTick(() => updateNodeDimensions(updates));\n });\n });\n onBeforeUnmount(() => {\n var _a;\n return (_a = resizeObserver.value) == null ? void 0 : _a.disconnect();\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1, [\n resizeObserver.value ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(unref(getNodes), (node, __, ___, _cached) => {\n const _memo = [node.id];\n if (_cached && _cached.key === node.id && isMemoSame(_cached, _memo))\n return _cached;\n const _item = (openBlock(), createBlock(unref(NodeWrapper$1), {\n id: node.id,\n key: node.id,\n \"resize-observer\": resizeObserver.value\n }, null, 8, [\"id\", \"resize-observer\"]));\n _item.memo = _memo;\n return _item;\n }, _cache, 0), 128)) : createCommentVNode(\"\", true)\n ]);\n };\n }\n});\nfunction useStylesLoadedWarning() {\n const { emits } = useVueFlow();\n onMounted(() => {\n if (isDev()) {\n const pane = document.querySelector(\".vue-flow__pane\");\n if (pane && !(window.getComputedStyle(pane).zIndex === \"1\")) {\n emits.error(new VueFlowError(ErrorCode.MISSING_STYLES));\n }\n }\n });\n}\nconst _hoisted_1 = /* @__PURE__ */ createElementVNode(\"div\", { class: \"vue-flow__edge-labels\" }, null, -1);\nconst __default__$1 = {\n name: \"VueFlow\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n ...__default__$1,\n props: {\n id: {},\n modelValue: {},\n nodes: {},\n edges: {},\n edgeTypes: {},\n nodeTypes: {},\n connectionMode: {},\n connectionLineType: {},\n connectionLineStyle: { default: void 0 },\n connectionLineOptions: { default: void 0 },\n connectionRadius: {},\n isValidConnection: { type: [Function, null], default: void 0 },\n deleteKeyCode: { default: void 0 },\n selectionKeyCode: { type: [Boolean, null], default: void 0 },\n multiSelectionKeyCode: { default: void 0 },\n zoomActivationKeyCode: { default: void 0 },\n panActivationKeyCode: { default: void 0 },\n snapToGrid: { type: Boolean, default: void 0 },\n snapGrid: {},\n onlyRenderVisibleElements: { type: Boolean, default: void 0 },\n edgesUpdatable: { type: [Boolean, String], default: void 0 },\n nodesDraggable: { type: Boolean, default: void 0 },\n nodesConnectable: { type: Boolean, default: void 0 },\n nodeDragThreshold: {},\n elementsSelectable: { type: Boolean, default: void 0 },\n selectNodesOnDrag: { type: Boolean, default: void 0 },\n panOnDrag: { type: [Boolean, Array], default: void 0 },\n minZoom: {},\n maxZoom: {},\n defaultViewport: {},\n translateExtent: {},\n nodeExtent: {},\n defaultMarkerColor: {},\n zoomOnScroll: { type: Boolean, default: void 0 },\n zoomOnPinch: { type: Boolean, default: void 0 },\n panOnScroll: { type: Boolean, default: void 0 },\n panOnScrollSpeed: {},\n panOnScrollMode: {},\n paneClickDistance: {},\n zoomOnDoubleClick: { type: Boolean, default: void 0 },\n preventScrolling: { type: Boolean, default: void 0 },\n selectionMode: {},\n edgeUpdaterRadius: {},\n fitViewOnInit: { type: Boolean, default: void 0 },\n connectOnClick: { type: Boolean, default: void 0 },\n applyDefault: { type: Boolean, default: void 0 },\n autoConnect: { type: [Boolean, Function], default: void 0 },\n noDragClassName: {},\n noWheelClassName: {},\n noPanClassName: {},\n defaultEdgeOptions: {},\n elevateEdgesOnSelect: { type: Boolean, default: void 0 },\n elevateNodesOnSelect: { type: Boolean, default: void 0 },\n disableKeyboardA11y: { type: Boolean, default: void 0 },\n edgesFocusable: { type: Boolean, default: void 0 },\n nodesFocusable: { type: Boolean, default: void 0 },\n autoPanOnConnect: { type: Boolean, default: void 0 },\n autoPanOnNodeDrag: { type: Boolean, default: void 0 },\n autoPanSpeed: {}\n },\n emits: [\"nodesChange\", \"edgesChange\", \"nodesInitialized\", \"paneReady\", \"init\", \"updateNodeInternals\", \"error\", \"connect\", \"connectStart\", \"connectEnd\", \"clickConnectStart\", \"clickConnectEnd\", \"moveStart\", \"move\", \"moveEnd\", \"selectionDragStart\", \"selectionDrag\", \"selectionDragStop\", \"selectionContextMenu\", \"selectionStart\", \"selectionEnd\", \"viewportChangeStart\", \"viewportChange\", \"viewportChangeEnd\", \"paneScroll\", \"paneClick\", \"paneContextMenu\", \"paneMouseEnter\", \"paneMouseMove\", \"paneMouseLeave\", \"edgeUpdate\", \"edgeContextMenu\", \"edgeMouseEnter\", \"edgeMouseMove\", \"edgeMouseLeave\", \"edgeDoubleClick\", \"edgeClick\", \"edgeUpdateStart\", \"edgeUpdateEnd\", \"nodeContextMenu\", \"nodeMouseEnter\", \"nodeMouseMove\", \"nodeMouseLeave\", \"nodeDoubleClick\", \"nodeClick\", \"nodeDragStart\", \"nodeDrag\", \"nodeDragStop\", \"miniMapNodeClick\", \"miniMapNodeDoubleClick\", \"miniMapNodeMouseEnter\", \"miniMapNodeMouseMove\", \"miniMapNodeMouseLeave\", \"update:modelValue\", \"update:nodes\", \"update:edges\"],\n setup(__props, { expose: __expose, emit }) {\n const props = __props;\n const slots = useSlots();\n const modelValue = useVModel(props, \"modelValue\", emit);\n const modelNodes = useVModel(props, \"nodes\", emit);\n const modelEdges = useVModel(props, \"edges\", emit);\n const vfInstance = useVueFlow(props);\n const disposeWatchers = useWatchProps({ modelValue, nodes: modelNodes, edges: modelEdges }, props, vfInstance);\n useHooks(emit, vfInstance.hooks);\n useOnInitHandler();\n useStylesLoadedWarning();\n provide(Slots, slots);\n onUnmounted(disposeWatchers);\n __expose(vfInstance);\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n ref: unref(vfInstance).vueFlowRef,\n class: \"vue-flow\"\n }, [\n createVNode(_sfc_main$8, null, {\n default: withCtx(() => [\n createVNode(_sfc_main$4),\n _hoisted_1,\n createVNode(_sfc_main$2),\n renderSlot(_ctx.$slots, \"zoom-pane\")\n ]),\n _: 3\n }),\n renderSlot(_ctx.$slots, \"default\"),\n createVNode(_sfc_main$7)\n ], 512);\n };\n }\n});\nconst __default__ = {\n name: \"Panel\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: {\n position: {}\n },\n setup(__props) {\n const props = __props;\n const { userSelectionActive } = useVueFlow();\n const positionClasses = computed(() => `${props.position}`.split(\"-\"));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"vue-flow__panel\", positionClasses.value]),\n style: normalizeStyle({ pointerEvents: unref(userSelectionActive) ? \"none\" : \"all\" })\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 6);\n };\n }\n});\nfunction useConnection() {\n const {\n connectionStartHandle: startHandle,\n connectionEndHandle: endHandle,\n connectionStatus: status,\n connectionPosition: position\n } = useVueFlow();\n return {\n startHandle,\n endHandle,\n status,\n position\n };\n}\nfunction useHandleConnections(params) {\n const { type, id: id2, nodeId, onConnect, onDisconnect } = params;\n const { connectionLookup } = useVueFlow();\n const _nodeId = useNodeId();\n const currentNodeId = toRef(() => toValue$1(nodeId) ?? _nodeId);\n const handleType = toRef(() => toValue$1(type));\n const handleId = toRef(() => toValue$1(id2) ?? null);\n const prevConnections = ref(null);\n const connections = ref();\n watch(\n () => connectionLookup.value.get(`${currentNodeId.value}-${handleType.value}-${handleId.value}`),\n (nextConnections) => {\n if (areConnectionMapsEqual(connections.value, nextConnections)) {\n return;\n }\n connections.value = nextConnections;\n },\n { immediate: true }\n );\n watch(\n [connections, () => typeof onConnect !== \"undefined\", () => typeof onDisconnect !== \"undefined\"],\n ([currentConnections = /* @__PURE__ */ new Map()]) => {\n if (prevConnections.value && prevConnections.value !== currentConnections) {\n handleConnectionChange(prevConnections.value, currentConnections, onDisconnect);\n handleConnectionChange(currentConnections, prevConnections.value, onConnect);\n }\n prevConnections.value = currentConnections;\n },\n { immediate: true }\n );\n return computed(() => {\n if (!connections.value) {\n return [];\n }\n return Array.from(connections.value.values());\n });\n}\nfunction useNodeConnections(params = {}) {\n const { handleType, handleId, nodeId, onConnect, onDisconnect } = params;\n const { connectionLookup } = useVueFlow();\n const _nodeId = useNodeId();\n const prevConnections = ref(null);\n const connections = ref();\n const lookupKey = computed(() => {\n const currNodeId = toValue$1(nodeId) ?? _nodeId;\n const currentHandleType = toValue$1(handleType);\n const currHandleId = toValue$1(handleId);\n let handleSuffix = \"\";\n if (currentHandleType) {\n handleSuffix = currHandleId ? `-${currentHandleType}-${currHandleId}` : `-${currentHandleType}`;\n }\n return `${currNodeId}${handleSuffix}`;\n });\n watch(\n () => connectionLookup.value.get(lookupKey.value),\n (nextConnections) => {\n if (areConnectionMapsEqual(connections.value, nextConnections)) {\n return;\n }\n connections.value = nextConnections;\n },\n { immediate: true }\n );\n watch(\n [connections, () => typeof onConnect !== \"undefined\", () => typeof onDisconnect !== \"undefined\"],\n ([currentConnections = /* @__PURE__ */ new Map()]) => {\n if (prevConnections.value && prevConnections.value !== currentConnections) {\n handleConnectionChange(prevConnections.value, currentConnections, onDisconnect);\n handleConnectionChange(currentConnections, prevConnections.value, onConnect);\n }\n prevConnections.value = currentConnections;\n },\n { immediate: true }\n );\n return computed(() => {\n if (!connections.value) {\n return [];\n }\n return Array.from(connections.value.values());\n });\n}\nfunction useNodesData(_nodeIds) {\n const { findNode } = useVueFlow();\n return computed({\n get() {\n const nodeIds = toValue$1(_nodeIds);\n if (!Array.isArray(nodeIds)) {\n const node = findNode(nodeIds);\n if (node) {\n return {\n id: node.id,\n type: node.type,\n data: node.data\n };\n }\n return null;\n }\n const data = [];\n for (const nodeId of nodeIds) {\n const node = findNode(nodeId);\n if (node) {\n data.push({\n id: node.id,\n type: node.type,\n data: node.data\n });\n }\n }\n return data;\n },\n set() {\n warn(\"You are trying to set node data via useNodesData. This is not supported.\");\n }\n });\n}\nfunction useEdgesData(_edgeIds) {\n const { findEdge } = useVueFlow();\n return computed({\n get() {\n const edgeIds = toValue$1(_edgeIds);\n if (!Array.isArray(edgeIds)) {\n const edge = findEdge(edgeIds);\n if (edge) {\n return {\n id: edge.id,\n type: edge.type,\n data: edge.data ?? null\n };\n }\n return null;\n }\n const data = [];\n for (const edgeId of edgeIds) {\n const edge = findEdge(edgeId);\n if (edge) {\n data.push({\n id: edge.id,\n type: edge.type,\n data: edge.data ?? null\n });\n }\n }\n return data;\n },\n set() {\n warn(\"You are trying to set edge data via useEdgesData. This is not supported.\");\n }\n });\n}\nexport {\n _sfc_main$d as BaseEdge,\n BezierEdge$1 as BezierEdge,\n ConnectionLineType,\n ConnectionMode,\n _sfc_main$3 as EdgeLabelRenderer,\n _sfc_main$e as EdgeText,\n ErrorCode,\n _sfc_main$f as Handle,\n MarkerType,\n NodeId as NodeIdInjection,\n PanOnScrollMode,\n _sfc_main as Panel,\n PanelPosition,\n Position,\n SelectionMode,\n SimpleBezierEdge$1 as SimpleBezierEdge,\n SmoothStepEdge$1 as SmoothStepEdge,\n StepEdge$1 as StepEdge,\n StraightEdge$1 as StraightEdge,\n _sfc_main$1 as VueFlow,\n VueFlowError,\n VueFlow as VueFlowInjection,\n addEdge,\n applyChanges,\n applyEdgeChanges,\n applyNodeChanges,\n clamp,\n connectionExists,\n defaultEdgeTypes,\n defaultNodeTypes,\n getBezierEdgeCenter,\n getBezierPath,\n getBoundsofRects,\n getConnectedEdges,\n getIncomers,\n getMarkerId,\n getNodesInside,\n getOutgoers,\n getRectOfNodes,\n getSimpleBezierPath,\n getSimpleEdgeCenter,\n getSmoothStepPath,\n getStraightPath,\n getTransformForBounds,\n rendererPointToPoint as graphPosToZoomedPos,\n isEdge,\n isErrorOfType,\n isGraphEdge,\n isGraphNode,\n isMacOs,\n isNode,\n pointToRendererPoint,\n rendererPointToPoint,\n updateEdge,\n useConnection,\n useEdge,\n useEdgesData,\n useGetPointerPosition,\n useHandle,\n useHandleConnections,\n useKeyPress,\n useNode,\n useNodeConnections,\n useNodeId,\n useNodesData,\n useNodesInitialized,\n useVueFlow,\n useZoomPanHelper,\n wheelDelta\n};\n","export default interface Header {\n key: NServiceBusHeaders;\n value?: string;\n}\n\nexport enum NServiceBusHeaders {\n HttpFrom = \"NServiceBus.From\",\n HttpTo = \"NServiceBus.To\",\n RouteTo = \"NServiceBus.Header.RouteTo\",\n DestinationSites = \"NServiceBus.DestinationSites\",\n OriginatingSite = \"NServiceBus.OriginatingSite\",\n SagaId = \"NServiceBus.SagaId\",\n MessageId = \"NServiceBus.MessageId\",\n CorrelationId = \"NServiceBus.CorrelationId\",\n ReplyToAddress = \"NServiceBus.ReplyToAddress\",\n NServiceBusVersion = \"NServiceBus.Version\",\n ReturnMessageErrorCodeHeader = \"NServiceBus.ReturnMessage.ErrorCode\",\n ControlMessageHeader = \"NServiceBus.ControlMessage\",\n SagaType = \"NServiceBus.SagaType\",\n OriginatingSagaId = \"NServiceBus.OriginatingSagaId\",\n OriginatingSagaType = \"NServiceBus.OriginatingSagaType\",\n DelayedRetries = \"NServiceBus.Retries\",\n DelayedRetriesTimestamp = \"NServiceBus.Retries.Timestamp\",\n ImmediateRetries = \"NServiceBus.FLRetries\",\n ProcessingStarted = \"NServiceBus.ProcessingStarted\",\n ProcessingEnded = \"NServiceBus.ProcessingEnded\",\n TimeSent = \"NServiceBus.TimeSent\",\n DeliverAt = \"NServiceBus.DeliverAt\",\n RelatedTo = \"NServiceBus.RelatedTo\",\n EnclosedMessageTypes = \"NServiceBus.EnclosedMessageTypes\",\n ContentType = \"NServiceBus.ContentType\",\n SubscriptionMessageType = \"SubscriptionMessageType\",\n SubscriberTransportAddress = \"NServiceBus.SubscriberAddress\",\n SubscriberEndpoint = \"NServiceBus.SubscriberEndpoint\",\n IsSagaTimeoutMessage = \"NServiceBus.IsSagaTimeoutMessage\",\n IsDeferredMessage = \"NServiceBus.IsDeferredMessage\",\n OriginatingEndpoint = \"NServiceBus.OriginatingEndpoint\",\n OriginatingMachine = \"NServiceBus.OriginatingMachine\",\n OriginatingHostId = \"$.diagnostics.originating.hostid\",\n ProcessingEndpoint = \"NServiceBus.ProcessingEndpoint\",\n ProcessingMachine = \"NServiceBus.ProcessingMachine\",\n HostDisplayName = \"$.diagnostics.hostdisplayname\",\n HostId = \"$.diagnostics.hostid\",\n HasLicenseExpired = \"$.diagnostics.license.expired\",\n OriginatingAddress = \"NServiceBus.OriginatingAddress\",\n ConversationId = \"NServiceBus.ConversationId\",\n PreviousConversationId = \"NServiceBus.PreviousConversationId\",\n MessageIntent = \"NServiceBus.MessageIntent\",\n NonDurableMessage = \"NServiceBus.NonDurableMessage\",\n TimeToBeReceived = \"NServiceBus.TimeToBeReceived\",\n DiagnosticsTraceParent = \"traceparent\",\n DiagnosticsTraceState = \"tracestate\",\n DiagnosticsBaggage = \"baggage\",\n DataBusConfigContentType = \"NServiceBus.DataBusConfig.ContentType\",\n ExceptionInfoExceptionType = \"NServiceBus.ExceptionInfo.ExceptionType\",\n}\n","import { openBlock, createElementBlock, renderSlot, createElementVNode, defineComponent, toRef, createBlock, unref, withCtx, Fragment, createVNode, resolveDynamicComponent, createCommentVNode } from \"vue\";\nimport { PanelPosition, useVueFlow, Panel } from \"@vue-flow/core\";\nconst _sfc_main$1 = {\n name: \"ControlButton\",\n compatConfig: { MODE: 3 }\n};\nconst _export_sfc = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\nconst _hoisted_1$5 = {\n type: \"button\",\n class: \"vue-flow__controls-button\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"button\", _hoisted_1$5, [\n renderSlot(_ctx.$slots, \"default\")\n ]);\n}\nconst ControlButton = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1$4 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 32\"\n};\nconst _hoisted_2$4 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z\" }, null, -1);\nconst _hoisted_3$4 = [\n _hoisted_2$4\n];\nfunction render$4(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$4, _hoisted_3$4);\n}\nconst PlusIcon = { render: render$4 };\nconst _hoisted_1$3 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 5\"\n};\nconst _hoisted_2$3 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M0 0h32v4.2H0z\" }, null, -1);\nconst _hoisted_3$3 = [\n _hoisted_2$3\n];\nfunction render$3(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$3, _hoisted_3$3);\n}\nconst MinusIcon = { render: render$3 };\nconst _hoisted_1$2 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 32 30\"\n};\nconst _hoisted_2$2 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0 0 27.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94a.919.919 0 0 1-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z\" }, null, -1);\nconst _hoisted_3$2 = [\n _hoisted_2$2\n];\nfunction render$2(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$2, _hoisted_3$2);\n}\nconst FitView = { render: render$2 };\nconst _hoisted_1$1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 32\"\n};\nconst _hoisted_2$1 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z\" }, null, -1);\nconst _hoisted_3$1 = [\n _hoisted_2$1\n];\nfunction render$1(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1$1, _hoisted_3$1);\n}\nconst Lock = { render: render$1 };\nconst _hoisted_1 = {\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 25 32\"\n};\nconst _hoisted_2 = /* @__PURE__ */ createElementVNode(\"path\", { d: \"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 0 0 0 13.714v15.238A3.056 3.056 0 0 0 3.048 32h18.285a3.056 3.056 0 0 0 3.048-3.048V13.714a3.056 3.056 0 0 0-3.048-3.047zM12.19 24.533a3.056 3.056 0 0 1-3.047-3.047 3.056 3.056 0 0 1 3.047-3.048 3.056 3.056 0 0 1 3.048 3.048 3.056 3.056 0 0 1-3.048 3.047z\" }, null, -1);\nconst _hoisted_3 = [\n _hoisted_2\n];\nfunction render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _hoisted_3);\n}\nconst Unlock = { render };\nconst __default__ = {\n name: \"Controls\",\n compatConfig: { MODE: 3 }\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...__default__,\n props: {\n showZoom: { type: Boolean, default: true },\n showFitView: { type: Boolean, default: true },\n showInteractive: { type: Boolean, default: true },\n fitViewParams: {},\n position: { default: () => PanelPosition.BottomLeft }\n },\n emits: [\"zoomIn\", \"zoomOut\", \"fitView\", \"interactionChange\"],\n setup(__props, { emit }) {\n const {\n nodesDraggable,\n nodesConnectable,\n elementsSelectable,\n setInteractive,\n zoomIn,\n zoomOut,\n fitView,\n viewport,\n minZoom,\n maxZoom\n } = useVueFlow();\n const isInteractive = toRef(() => nodesDraggable.value || nodesConnectable.value || elementsSelectable.value);\n const minZoomReached = toRef(() => viewport.value.zoom <= minZoom.value);\n const maxZoomReached = toRef(() => viewport.value.zoom >= maxZoom.value);\n function onZoomInHandler() {\n zoomIn();\n emit(\"zoomIn\");\n }\n function onZoomOutHandler() {\n zoomOut();\n emit(\"zoomOut\");\n }\n function onFitViewHandler() {\n fitView(__props.fitViewParams);\n emit(\"fitView\");\n }\n function onInteractiveChangeHandler() {\n setInteractive(!isInteractive.value);\n emit(\"interactionChange\", !isInteractive.value);\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(Panel), {\n class: \"vue-flow__controls\",\n position: _ctx.position\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"top\"),\n _ctx.showZoom ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n renderSlot(_ctx.$slots, \"control-zoom-in\", {}, () => [\n createVNode(ControlButton, {\n class: \"vue-flow__controls-zoomin\",\n disabled: maxZoomReached.value,\n onClick: onZoomInHandler\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon-zoom-in\", {}, () => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(PlusIcon))))\n ])\n ]),\n _: 3\n }, 8, [\"disabled\"])\n ]),\n renderSlot(_ctx.$slots, \"control-zoom-out\", {}, () => [\n createVNode(ControlButton, {\n class: \"vue-flow__controls-zoomout\",\n disabled: minZoomReached.value,\n onClick: onZoomOutHandler\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon-zoom-out\", {}, () => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(MinusIcon))))\n ])\n ]),\n _: 3\n }, 8, [\"disabled\"])\n ])\n ], 64)) : createCommentVNode(\"\", true),\n _ctx.showFitView ? renderSlot(_ctx.$slots, \"control-fit-view\", { key: 1 }, () => [\n createVNode(ControlButton, {\n class: \"vue-flow__controls-fitview\",\n onClick: onFitViewHandler\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"icon-fit-view\", {}, () => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(FitView))))\n ])\n ]),\n _: 3\n })\n ]) : createCommentVNode(\"\", true),\n _ctx.showInteractive ? renderSlot(_ctx.$slots, \"control-interactive\", { key: 2 }, () => [\n _ctx.showInteractive ? (openBlock(), createBlock(ControlButton, {\n key: 0,\n class: \"vue-flow__controls-interactive\",\n onClick: onInteractiveChangeHandler\n }, {\n default: withCtx(() => [\n isInteractive.value ? renderSlot(_ctx.$slots, \"icon-unlock\", { key: 0 }, () => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(Unlock))))\n ]) : createCommentVNode(\"\", true),\n !isInteractive.value ? renderSlot(_ctx.$slots, \"icon-lock\", { key: 1 }, () => [\n (openBlock(), createBlock(resolveDynamicComponent(unref(Lock))))\n ]) : createCommentVNode(\"\", true)\n ]),\n _: 3\n })) : createCommentVNode(\"\", true)\n ]) : createCommentVNode(\"\", true),\n renderSlot(_ctx.$slots, \"default\")\n ]),\n _: 3\n }, 8, [\"position\"]);\n };\n }\n});\nexport {\n ControlButton,\n _sfc_main as Controls\n};\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\"use strict\";\n\nvar DEFAULT_EDGE_NAME = \"\\x00\";\nvar GRAPH_NODE = \"\\x00\";\nvar EDGE_KEY_DELIM = \"\\x01\";\n\n// Implementation notes:\n//\n// * Node id query functions should return string ids for the nodes\n// * Edge id query functions should return an \"edgeObj\", edge object, that is\n// composed of enough information to uniquely identify an edge: {v, w, name}.\n// * Internally we use an \"edgeId\", a stringified form of the edgeObj, to\n// reference edges. This is because we need a performant way to look these\n// edges up and, object properties, which have string keys, are the closest\n// we're going to get to a performant hashtable in JavaScript.\n\nclass Graph {\n _isDirected = true;\n _isMultigraph = false;\n _isCompound = false;\n\n // Label for the graph itself\n _label;\n\n // Defaults to be set when creating a new node\n _defaultNodeLabelFn = () => undefined;\n\n // Defaults to be set when creating a new edge\n _defaultEdgeLabelFn = () => undefined;\n\n // v -> label\n _nodes = {};\n\n // v -> edgeObj\n _in = {};\n\n // u -> v -> Number\n _preds = {};\n\n // v -> edgeObj\n _out = {};\n\n // v -> w -> Number\n _sucs = {};\n\n // e -> edgeObj\n _edgeObjs = {};\n\n // e -> label\n _edgeLabels = {};\n\n /* Number of nodes in the graph. Should only be changed by the implementation. */\n _nodeCount = 0;\n\n /* Number of edges in the graph. Should only be changed by the implementation. */\n _edgeCount = 0;\n\n _parent;\n\n _children;\n\n constructor(opts) {\n if (opts) {\n this._isDirected = Object.hasOwn(opts, \"directed\") ? opts.directed : true;\n this._isMultigraph = Object.hasOwn(opts, \"multigraph\") ? opts.multigraph : false;\n this._isCompound = Object.hasOwn(opts, \"compound\") ? opts.compound : false;\n }\n\n if (this._isCompound) {\n // v -> parent\n this._parent = {};\n\n // v -> children\n this._children = {};\n this._children[GRAPH_NODE] = {};\n }\n }\n\n /* === Graph functions ========= */\n\n /**\n * Whether graph was created with 'directed' flag set to true or not.\n */\n isDirected() {\n return this._isDirected;\n }\n\n /**\n * Whether graph was created with 'multigraph' flag set to true or not.\n */\n isMultigraph() {\n return this._isMultigraph;\n }\n\n /**\n * Whether graph was created with 'compound' flag set to true or not.\n */\n isCompound() {\n return this._isCompound;\n }\n\n /**\n * Sets the label of the graph.\n */\n setGraph(label) {\n this._label = label;\n return this;\n }\n\n /**\n * Gets the graph label.\n */\n graph() {\n return this._label;\n }\n\n\n /* === Node functions ========== */\n\n /**\n * Sets the default node label. If newDefault is a function, it will be\n * invoked ach time when setting a label for a node. Otherwise, this label\n * will be assigned as default label in case if no label was specified while\n * setting a node.\n * Complexity: O(1).\n */\n setDefaultNodeLabel(newDefault) {\n this._defaultNodeLabelFn = newDefault;\n if (typeof newDefault !== 'function') {\n this._defaultNodeLabelFn = () => newDefault;\n }\n\n return this;\n }\n\n /**\n * Gets the number of nodes in the graph.\n * Complexity: O(1).\n */\n nodeCount() {\n return this._nodeCount;\n }\n\n /**\n * Gets all nodes of the graph. Note, the in case of compound graph subnodes are\n * not included in list.\n * Complexity: O(1).\n */\n nodes() {\n return Object.keys(this._nodes);\n }\n\n /**\n * Gets list of nodes without in-edges.\n * Complexity: O(|V|).\n */\n sources() {\n var self = this;\n return this.nodes().filter(v => Object.keys(self._in[v]).length === 0);\n }\n\n /**\n * Gets list of nodes without out-edges.\n * Complexity: O(|V|).\n */\n sinks() {\n var self = this;\n return this.nodes().filter(v => Object.keys(self._out[v]).length === 0);\n }\n\n /**\n * Invokes setNode method for each node in names list.\n * Complexity: O(|names|).\n */\n setNodes(vs, value) {\n var args = arguments;\n var self = this;\n vs.forEach(function(v) {\n if (args.length > 1) {\n self.setNode(v, value);\n } else {\n self.setNode(v);\n }\n });\n return this;\n }\n\n /**\n * Creates or updates the value for the node v in the graph. If label is supplied\n * it is set as the value for the node. If label is not supplied and the node was\n * created by this call then the default node label will be assigned.\n * Complexity: O(1).\n */\n setNode(v, value) {\n if (Object.hasOwn(this._nodes, v)) {\n if (arguments.length > 1) {\n this._nodes[v] = value;\n }\n return this;\n }\n\n this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);\n if (this._isCompound) {\n this._parent[v] = GRAPH_NODE;\n this._children[v] = {};\n this._children[GRAPH_NODE][v] = true;\n }\n this._in[v] = {};\n this._preds[v] = {};\n this._out[v] = {};\n this._sucs[v] = {};\n ++this._nodeCount;\n return this;\n }\n\n /**\n * Gets the label of node with specified name.\n * Complexity: O(|V|).\n */\n node(v) {\n return this._nodes[v];\n }\n\n /**\n * Detects whether graph has a node with specified name or not.\n */\n hasNode(v) {\n return Object.hasOwn(this._nodes, v);\n }\n\n /**\n * Remove the node with the name from the graph or do nothing if the node is not in\n * the graph. If the node was removed this function also removes any incident\n * edges.\n * Complexity: O(1).\n */\n removeNode(v) {\n var self = this;\n if (Object.hasOwn(this._nodes, v)) {\n var removeEdge = e => self.removeEdge(self._edgeObjs[e]);\n delete this._nodes[v];\n if (this._isCompound) {\n this._removeFromParentsChildList(v);\n delete this._parent[v];\n this.children(v).forEach(function(child) {\n self.setParent(child);\n });\n delete this._children[v];\n }\n Object.keys(this._in[v]).forEach(removeEdge);\n delete this._in[v];\n delete this._preds[v];\n Object.keys(this._out[v]).forEach(removeEdge);\n delete this._out[v];\n delete this._sucs[v];\n --this._nodeCount;\n }\n return this;\n }\n\n /**\n * Sets node p as a parent for node v if it is defined, or removes the\n * parent for v if p is undefined. Method throws an exception in case of\n * invoking it in context of noncompound graph.\n * Average-case complexity: O(1).\n */\n setParent(v, parent) {\n if (!this._isCompound) {\n throw new Error(\"Cannot set parent in a non-compound graph\");\n }\n\n if (parent === undefined) {\n parent = GRAPH_NODE;\n } else {\n // Coerce parent to string\n parent += \"\";\n for (var ancestor = parent; ancestor !== undefined; ancestor = this.parent(ancestor)) {\n if (ancestor === v) {\n throw new Error(\"Setting \" + parent+ \" as parent of \" + v +\n \" would create a cycle\");\n }\n }\n\n this.setNode(parent);\n }\n\n this.setNode(v);\n this._removeFromParentsChildList(v);\n this._parent[v] = parent;\n this._children[parent][v] = true;\n return this;\n }\n\n _removeFromParentsChildList(v) {\n delete this._children[this._parent[v]][v];\n }\n\n /**\n * Gets parent node for node v.\n * Complexity: O(1).\n */\n parent(v) {\n if (this._isCompound) {\n var parent = this._parent[v];\n if (parent !== GRAPH_NODE) {\n return parent;\n }\n }\n }\n\n /**\n * Gets list of direct children of node v.\n * Complexity: O(1).\n */\n children(v = GRAPH_NODE) {\n if (this._isCompound) {\n var children = this._children[v];\n if (children) {\n return Object.keys(children);\n }\n } else if (v === GRAPH_NODE) {\n return this.nodes();\n } else if (this.hasNode(v)) {\n return [];\n }\n }\n\n /**\n * Return all nodes that are predecessors of the specified node or undefined if node v is not in\n * the graph. Behavior is undefined for undirected graphs - use neighbors instead.\n * Complexity: O(|V|).\n */\n predecessors(v) {\n var predsV = this._preds[v];\n if (predsV) {\n return Object.keys(predsV);\n }\n }\n\n /**\n * Return all nodes that are successors of the specified node or undefined if node v is not in\n * the graph. Behavior is undefined for undirected graphs - use neighbors instead.\n * Complexity: O(|V|).\n */\n successors(v) {\n var sucsV = this._sucs[v];\n if (sucsV) {\n return Object.keys(sucsV);\n }\n }\n\n /**\n * Return all nodes that are predecessors or successors of the specified node or undefined if\n * node v is not in the graph.\n * Complexity: O(|V|).\n */\n neighbors(v) {\n var preds = this.predecessors(v);\n if (preds) {\n const union = new Set(preds);\n for (var succ of this.successors(v)) {\n union.add(succ);\n }\n\n return Array.from(union.values());\n }\n }\n\n isLeaf(v) {\n var neighbors;\n if (this.isDirected()) {\n neighbors = this.successors(v);\n } else {\n neighbors = this.neighbors(v);\n }\n return neighbors.length === 0;\n }\n\n /**\n * Creates new graph with nodes filtered via filter. Edges incident to rejected node\n * are also removed. In case of compound graph, if parent is rejected by filter,\n * than all its children are rejected too.\n * Average-case complexity: O(|E|+|V|).\n */\n filterNodes(filter) {\n var copy = new this.constructor({\n directed: this._isDirected,\n multigraph: this._isMultigraph,\n compound: this._isCompound\n });\n\n copy.setGraph(this.graph());\n\n var self = this;\n Object.entries(this._nodes).forEach(function([v, value]) {\n if (filter(v)) {\n copy.setNode(v, value);\n }\n });\n\n Object.values(this._edgeObjs).forEach(function(e) {\n if (copy.hasNode(e.v) && copy.hasNode(e.w)) {\n copy.setEdge(e, self.edge(e));\n }\n });\n\n var parents = {};\n function findParent(v) {\n var parent = self.parent(v);\n if (parent === undefined || copy.hasNode(parent)) {\n parents[v] = parent;\n return parent;\n } else if (parent in parents) {\n return parents[parent];\n } else {\n return findParent(parent);\n }\n }\n\n if (this._isCompound) {\n copy.nodes().forEach(v => copy.setParent(v, findParent(v)));\n }\n\n return copy;\n }\n\n /* === Edge functions ========== */\n\n /**\n * Sets the default edge label or factory function. This label will be\n * assigned as default label in case if no label was specified while setting\n * an edge or this function will be invoked each time when setting an edge\n * with no label specified and returned value * will be used as a label for edge.\n * Complexity: O(1).\n */\n setDefaultEdgeLabel(newDefault) {\n this._defaultEdgeLabelFn = newDefault;\n if (typeof newDefault !== 'function') {\n this._defaultEdgeLabelFn = () => newDefault;\n }\n\n return this;\n }\n\n /**\n * Gets the number of edges in the graph.\n * Complexity: O(1).\n */\n edgeCount() {\n return this._edgeCount;\n }\n\n /**\n * Gets edges of the graph. In case of compound graph subgraphs are not considered.\n * Complexity: O(|E|).\n */\n edges() {\n return Object.values(this._edgeObjs);\n }\n\n /**\n * Establish an edges path over the nodes in nodes list. If some edge is already\n * exists, it will update its label, otherwise it will create an edge between pair\n * of nodes with label provided or default label if no label provided.\n * Complexity: O(|nodes|).\n */\n setPath(vs, value) {\n var self = this;\n var args = arguments;\n vs.reduce(function(v, w) {\n if (args.length > 1) {\n self.setEdge(v, w, value);\n } else {\n self.setEdge(v, w);\n }\n return w;\n });\n return this;\n }\n\n /**\n * Creates or updates the label for the edge (v, w) with the optionally supplied\n * name. If label is supplied it is set as the value for the edge. If label is not\n * supplied and the edge was created by this call then the default edge label will\n * be assigned. The name parameter is only useful with multigraphs.\n */\n setEdge() {\n var v, w, name, value;\n var valueSpecified = false;\n var arg0 = arguments[0];\n\n if (typeof arg0 === \"object\" && arg0 !== null && \"v\" in arg0) {\n v = arg0.v;\n w = arg0.w;\n name = arg0.name;\n if (arguments.length === 2) {\n value = arguments[1];\n valueSpecified = true;\n }\n } else {\n v = arg0;\n w = arguments[1];\n name = arguments[3];\n if (arguments.length > 2) {\n value = arguments[2];\n valueSpecified = true;\n }\n }\n\n v = \"\" + v;\n w = \"\" + w;\n if (name !== undefined) {\n name = \"\" + name;\n }\n\n var e = edgeArgsToId(this._isDirected, v, w, name);\n if (Object.hasOwn(this._edgeLabels, e)) {\n if (valueSpecified) {\n this._edgeLabels[e] = value;\n }\n return this;\n }\n\n if (name !== undefined && !this._isMultigraph) {\n throw new Error(\"Cannot set a named edge when isMultigraph = false\");\n }\n\n // It didn't exist, so we need to create it.\n // First ensure the nodes exist.\n this.setNode(v);\n this.setNode(w);\n\n this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w, name);\n\n var edgeObj = edgeArgsToObj(this._isDirected, v, w, name);\n // Ensure we add undirected edges in a consistent way.\n v = edgeObj.v;\n w = edgeObj.w;\n\n Object.freeze(edgeObj);\n this._edgeObjs[e] = edgeObj;\n incrementOrInitEntry(this._preds[w], v);\n incrementOrInitEntry(this._sucs[v], w);\n this._in[w][e] = edgeObj;\n this._out[v][e] = edgeObj;\n this._edgeCount++;\n return this;\n }\n\n /**\n * Gets the label for the specified edge.\n * Complexity: O(1).\n */\n edge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n return this._edgeLabels[e];\n }\n\n /**\n * Gets the label for the specified edge and converts it to an object.\n * Complexity: O(1)\n */\n edgeAsObj() {\n const edge = this.edge(...arguments);\n if (typeof edge !== \"object\") {\n return {label: edge};\n }\n\n return edge;\n }\n\n /**\n * Detects whether the graph contains specified edge or not. No subgraphs are considered.\n * Complexity: O(1).\n */\n hasEdge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n return Object.hasOwn(this._edgeLabels, e);\n }\n\n /**\n * Removes the specified edge from the graph. No subgraphs are considered.\n * Complexity: O(1).\n */\n removeEdge(v, w, name) {\n var e = (arguments.length === 1\n ? edgeObjToId(this._isDirected, arguments[0])\n : edgeArgsToId(this._isDirected, v, w, name));\n var edge = this._edgeObjs[e];\n if (edge) {\n v = edge.v;\n w = edge.w;\n delete this._edgeLabels[e];\n delete this._edgeObjs[e];\n decrementOrRemoveEntry(this._preds[w], v);\n decrementOrRemoveEntry(this._sucs[v], w);\n delete this._in[w][e];\n delete this._out[v][e];\n this._edgeCount--;\n }\n return this;\n }\n\n /**\n * Return all edges that point to the node v. Optionally filters those edges down to just those\n * coming from node u. Behavior is undefined for undirected graphs - use nodeEdges instead.\n * Complexity: O(|E|).\n */\n inEdges(v, u) {\n var inV = this._in[v];\n if (inV) {\n var edges = Object.values(inV);\n if (!u) {\n return edges;\n }\n return edges.filter(edge => edge.v === u);\n }\n }\n\n /**\n * Return all edges that are pointed at by node v. Optionally filters those edges down to just\n * those point to w. Behavior is undefined for undirected graphs - use nodeEdges instead.\n * Complexity: O(|E|).\n */\n outEdges(v, w) {\n var outV = this._out[v];\n if (outV) {\n var edges = Object.values(outV);\n if (!w) {\n return edges;\n }\n return edges.filter(edge => edge.w === w);\n }\n }\n\n /**\n * Returns all edges to or from node v regardless of direction. Optionally filters those edges\n * down to just those between nodes v and w regardless of direction.\n * Complexity: O(|E|).\n */\n nodeEdges(v, w) {\n var inEdges = this.inEdges(v, w);\n if (inEdges) {\n return inEdges.concat(this.outEdges(v, w));\n }\n }\n}\n\nfunction incrementOrInitEntry(map, k) {\n if (map[k]) {\n map[k]++;\n } else {\n map[k] = 1;\n }\n}\n\nfunction decrementOrRemoveEntry(map, k) {\n if (!--map[k]) { delete map[k]; }\n}\n\nfunction edgeArgsToId(isDirected, v_, w_, name) {\n var v = \"\" + v_;\n var w = \"\" + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n return v + EDGE_KEY_DELIM + w + EDGE_KEY_DELIM +\n (name === undefined ? DEFAULT_EDGE_NAME : name);\n}\n\nfunction edgeArgsToObj(isDirected, v_, w_, name) {\n var v = \"\" + v_;\n var w = \"\" + w_;\n if (!isDirected && v > w) {\n var tmp = v;\n v = w;\n w = tmp;\n }\n var edgeObj = { v: v, w: w };\n if (name) {\n edgeObj.name = name;\n }\n return edgeObj;\n}\n\nfunction edgeObjToId(isDirected, edgeObj) {\n return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);\n}\n\nmodule.exports = Graph;\n","module.exports = '2.2.4';\n","// Includes only the \"core\" of graphlib\nmodule.exports = {\n Graph: require(\"./graph\"),\n version: require(\"./version\")\n};\n","var Graph = require(\"./graph\");\n\nmodule.exports = {\n write: write,\n read: read\n};\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a string with\n * JSON.stringify. The graph can later be restored using json.read.\n */\nfunction write(g) {\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound()\n },\n nodes: writeNodes(g),\n edges: writeEdges(g)\n };\n\n if (g.graph() !== undefined) {\n json.value = structuredClone(g.graph());\n }\n return json;\n}\n\nfunction writeNodes(g) {\n return g.nodes().map(function(v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n var node = { v: v };\n if (nodeValue !== undefined) {\n node.value = nodeValue;\n }\n if (parent !== undefined) {\n node.parent = parent;\n }\n return node;\n });\n}\n\nfunction writeEdges(g) {\n return g.edges().map(function(e) {\n var edgeValue = g.edge(e);\n var edge = { v: e.v, w: e.w };\n if (e.name !== undefined) {\n edge.name = e.name;\n }\n if (edgeValue !== undefined) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n * var g2 = graphlib.json.read(JSON.parse(str));\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n json.nodes.forEach(function(entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n json.edges.forEach(function(entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","module.exports = components;\n\nfunction components(g) {\n var visited = {};\n var cmpts = [];\n var cmpt;\n\n function dfs(v) {\n if (Object.hasOwn(visited, v)) return;\n visited[v] = true;\n cmpt.push(v);\n g.successors(v).forEach(dfs);\n g.predecessors(v).forEach(dfs);\n }\n\n g.nodes().forEach(function(v) {\n cmpt = [];\n dfs(v);\n if (cmpt.length) {\n cmpts.push(cmpt);\n }\n });\n\n return cmpts;\n}\n","/**\n * A min-priority queue data structure. This algorithm is derived from Cormen,\n * et al., \"Introduction to Algorithms\". The basic idea of a min-priority\n * queue is that you can efficiently (in O(1) time) get the smallest key in\n * the queue. Adding and removing elements takes O(log n) time. A key can\n * have its priority decreased in O(log n) time.\n */\nclass PriorityQueue {\n _arr = [];\n _keyIndices = {};\n\n /**\n * Returns the number of elements in the queue. Takes `O(1)` time.\n */\n size() {\n return this._arr.length;\n }\n\n /**\n * Returns the keys that are in the queue. Takes `O(n)` time.\n */\n keys() {\n return this._arr.map(function(x) { return x.key; });\n }\n\n /**\n * Returns `true` if **key** is in the queue and `false` if not.\n */\n has(key) {\n return Object.hasOwn(this._keyIndices, key);\n }\n\n /**\n * Returns the priority for **key**. If **key** is not present in the queue\n * then this function returns `undefined`. Takes `O(1)` time.\n *\n * @param {Object} key\n */\n priority(key) {\n var index = this._keyIndices[key];\n if (index !== undefined) {\n return this._arr[index].priority;\n }\n }\n\n /**\n * Returns the key for the minimum element in this queue. If the queue is\n * empty this function throws an Error. Takes `O(1)` time.\n */\n min() {\n if (this.size() === 0) {\n throw new Error(\"Queue underflow\");\n }\n return this._arr[0].key;\n }\n\n /**\n * Inserts a new key into the priority queue. If the key already exists in\n * the queue this function returns `false`; otherwise it will return `true`.\n * Takes `O(n)` time.\n *\n * @param {Object} key the key to add\n * @param {Number} priority the initial priority for the key\n */\n add(key, priority) {\n var keyIndices = this._keyIndices;\n key = String(key);\n if (!Object.hasOwn(keyIndices, key)) {\n var arr = this._arr;\n var index = arr.length;\n keyIndices[key] = index;\n arr.push({key: key, priority: priority});\n this._decrease(index);\n return true;\n }\n return false;\n }\n\n /**\n * Removes and returns the smallest key in the queue. Takes `O(log n)` time.\n */\n removeMin() {\n this._swap(0, this._arr.length - 1);\n var min = this._arr.pop();\n delete this._keyIndices[min.key];\n this._heapify(0);\n return min.key;\n }\n\n /**\n * Decreases the priority for **key** to **priority**. If the new priority is\n * greater than the previous priority, this function will throw an Error.\n *\n * @param {Object} key the key for which to raise priority\n * @param {Number} priority the new priority for the key\n */\n decrease(key, priority) {\n var index = this._keyIndices[key];\n if (priority > this._arr[index].priority) {\n throw new Error(\"New priority is greater than current priority. \" +\n \"Key: \" + key + \" Old: \" + this._arr[index].priority + \" New: \" + priority);\n }\n this._arr[index].priority = priority;\n this._decrease(index);\n }\n\n _heapify(i) {\n var arr = this._arr;\n var l = 2 * i;\n var r = l + 1;\n var largest = i;\n if (l < arr.length) {\n largest = arr[l].priority < arr[largest].priority ? l : largest;\n if (r < arr.length) {\n largest = arr[r].priority < arr[largest].priority ? r : largest;\n }\n if (largest !== i) {\n this._swap(i, largest);\n this._heapify(largest);\n }\n }\n }\n\n _decrease(index) {\n var arr = this._arr;\n var priority = arr[index].priority;\n var parent;\n while (index !== 0) {\n parent = index >> 1;\n if (arr[parent].priority < priority) {\n break;\n }\n this._swap(index, parent);\n index = parent;\n }\n }\n\n _swap(i, j) {\n var arr = this._arr;\n var keyIndices = this._keyIndices;\n var origArrI = arr[i];\n var origArrJ = arr[j];\n arr[i] = origArrJ;\n arr[j] = origArrI;\n keyIndices[origArrJ.key] = i;\n keyIndices[origArrI.key] = j;\n }\n}\n\nmodule.exports = PriorityQueue;\n","var PriorityQueue = require(\"../data/priority-queue\");\n\nmodule.exports = dijkstra;\n\nvar DEFAULT_WEIGHT_FUNC = () => 1;\n\nfunction dijkstra(g, source, weightFn, edgeFn) {\n return runDijkstra(g, String(source),\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn || function(v) { return g.outEdges(v); });\n}\n\nfunction runDijkstra(g, source, weightFn, edgeFn) {\n var results = {};\n var pq = new PriorityQueue();\n var v, vEntry;\n\n var updateNeighbors = function(edge) {\n var w = edge.v !== v ? edge.v : edge.w;\n var wEntry = results[w];\n var weight = weightFn(edge);\n var distance = vEntry.distance + weight;\n\n if (weight < 0) {\n throw new Error(\"dijkstra does not allow negative edge weights. \" +\n \"Bad edge: \" + edge + \" Weight: \" + weight);\n }\n\n if (distance < wEntry.distance) {\n wEntry.distance = distance;\n wEntry.predecessor = v;\n pq.decrease(w, distance);\n }\n };\n\n g.nodes().forEach(function(v) {\n var distance = v === source ? 0 : Number.POSITIVE_INFINITY;\n results[v] = { distance: distance };\n pq.add(v, distance);\n });\n\n while (pq.size() > 0) {\n v = pq.removeMin();\n vEntry = results[v];\n if (vEntry.distance === Number.POSITIVE_INFINITY) {\n break;\n }\n\n edgeFn(v).forEach(updateNeighbors);\n }\n\n return results;\n}\n","var dijkstra = require(\"./dijkstra\");\n\nmodule.exports = dijkstraAll;\n\nfunction dijkstraAll(g, weightFunc, edgeFunc) {\n return g.nodes().reduce(function(acc, v) {\n acc[v] = dijkstra(g, v, weightFunc, edgeFunc);\n return acc;\n }, {});\n}\n","module.exports = tarjan;\n\nfunction tarjan(g) {\n var index = 0;\n var stack = [];\n var visited = {}; // node id -> { onStack, lowlink, index }\n var results = [];\n\n function dfs(v) {\n var entry = visited[v] = {\n onStack: true,\n lowlink: index,\n index: index++\n };\n stack.push(v);\n\n g.successors(v).forEach(function(w) {\n if (!Object.hasOwn(visited, w)) {\n dfs(w);\n entry.lowlink = Math.min(entry.lowlink, visited[w].lowlink);\n } else if (visited[w].onStack) {\n entry.lowlink = Math.min(entry.lowlink, visited[w].index);\n }\n });\n\n if (entry.lowlink === entry.index) {\n var cmpt = [];\n var w;\n do {\n w = stack.pop();\n visited[w].onStack = false;\n cmpt.push(w);\n } while (v !== w);\n results.push(cmpt);\n }\n }\n\n g.nodes().forEach(function(v) {\n if (!Object.hasOwn(visited, v)) {\n dfs(v);\n }\n });\n\n return results;\n}\n","var tarjan = require(\"./tarjan\");\n\nmodule.exports = findCycles;\n\nfunction findCycles(g) {\n return tarjan(g).filter(function(cmpt) {\n return cmpt.length > 1 || (cmpt.length === 1 && g.hasEdge(cmpt[0], cmpt[0]));\n });\n}\n","module.exports = floydWarshall;\n\nvar DEFAULT_WEIGHT_FUNC = () => 1;\n\nfunction floydWarshall(g, weightFn, edgeFn) {\n return runFloydWarshall(g,\n weightFn || DEFAULT_WEIGHT_FUNC,\n edgeFn || function(v) { return g.outEdges(v); });\n}\n\nfunction runFloydWarshall(g, weightFn, edgeFn) {\n var results = {};\n var nodes = g.nodes();\n\n nodes.forEach(function(v) {\n results[v] = {};\n results[v][v] = { distance: 0 };\n nodes.forEach(function(w) {\n if (v !== w) {\n results[v][w] = { distance: Number.POSITIVE_INFINITY };\n }\n });\n edgeFn(v).forEach(function(edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var d = weightFn(edge);\n results[v][w] = { distance: d, predecessor: v };\n });\n });\n\n nodes.forEach(function(k) {\n var rowK = results[k];\n nodes.forEach(function(i) {\n var rowI = results[i];\n nodes.forEach(function(j) {\n var ik = rowI[k];\n var kj = rowK[j];\n var ij = rowI[j];\n var altDistance = ik.distance + kj.distance;\n if (altDistance < ij.distance) {\n ij.distance = altDistance;\n ij.predecessor = kj.predecessor;\n }\n });\n });\n });\n\n return results;\n}\n","function topsort(g) {\n var visited = {};\n var stack = {};\n var results = [];\n\n function visit(node) {\n if (Object.hasOwn(stack, node)) {\n throw new CycleException();\n }\n\n if (!Object.hasOwn(visited, node)) {\n stack[node] = true;\n visited[node] = true;\n g.predecessors(node).forEach(visit);\n delete stack[node];\n results.push(node);\n }\n }\n\n g.sinks().forEach(visit);\n\n if (Object.keys(visited).length !== g.nodeCount()) {\n throw new CycleException();\n }\n\n return results;\n}\n\nclass CycleException extends Error {\n constructor() {\n super(...arguments);\n }\n}\n\nmodule.exports = topsort;\ntopsort.CycleException = CycleException;\n","var topsort = require(\"./topsort\");\n\nmodule.exports = isAcyclic;\n\nfunction isAcyclic(g) {\n try {\n topsort(g);\n } catch (e) {\n if (e instanceof topsort.CycleException) {\n return false;\n }\n throw e;\n }\n return true;\n}\n","module.exports = dfs;\n\n/*\n * A helper that preforms a pre- or post-order traversal on the input graph\n * and returns the nodes in the order they were visited. If the graph is\n * undirected then this algorithm will navigate using neighbors. If the graph\n * is directed then this algorithm will navigate using successors.\n *\n * If the order is not \"post\", it will be treated as \"pre\".\n */\nfunction dfs(g, vs, order) {\n if (!Array.isArray(vs)) {\n vs = [vs];\n }\n\n var navigation = g.isDirected() ? v => g.successors(v) : v => g.neighbors(v);\n var orderFunc = order === \"post\" ? postOrderDfs : preOrderDfs;\n\n var acc = [];\n var visited = {};\n vs.forEach(v => {\n if (!g.hasNode(v)) {\n throw new Error(\"Graph does not have node: \" + v);\n }\n\n orderFunc(v, navigation, visited, acc);\n });\n\n return acc;\n}\n\nfunction postOrderDfs(v, navigation, visited, acc) {\n var stack = [[v, false]];\n while (stack.length > 0) {\n var curr = stack.pop();\n if (curr[1]) {\n acc.push(curr[0]);\n } else {\n if (!Object.hasOwn(visited, curr[0])) {\n visited[curr[0]] = true;\n stack.push([curr[0], true]);\n forEachRight(navigation(curr[0]), w => stack.push([w, false]));\n }\n }\n }\n}\n\nfunction preOrderDfs(v, navigation, visited, acc) {\n var stack = [v];\n while (stack.length > 0) {\n var curr = stack.pop();\n if (!Object.hasOwn(visited, curr)) {\n visited[curr] = true;\n acc.push(curr);\n forEachRight(navigation(curr), w => stack.push(w));\n }\n }\n}\n\nfunction forEachRight(array, iteratee) {\n var length = array.length;\n while (length--) {\n iteratee(array[length], length, array);\n }\n\n return array;\n}\n","var dfs = require(\"./dfs\");\n\nmodule.exports = postorder;\n\nfunction postorder(g, vs) {\n return dfs(g, vs, \"post\");\n}\n","var dfs = require(\"./dfs\");\n\nmodule.exports = preorder;\n\nfunction preorder(g, vs) {\n return dfs(g, vs, \"pre\");\n}\n","var Graph = require(\"../graph\");\nvar PriorityQueue = require(\"../data/priority-queue\");\n\nmodule.exports = prim;\n\nfunction prim(g, weightFunc) {\n var result = new Graph();\n var parents = {};\n var pq = new PriorityQueue();\n var v;\n\n function updateNeighbors(edge) {\n var w = edge.v === v ? edge.w : edge.v;\n var pri = pq.priority(w);\n if (pri !== undefined) {\n var edgeWeight = weightFunc(edge);\n if (edgeWeight < pri) {\n parents[w] = v;\n pq.decrease(w, edgeWeight);\n }\n }\n }\n\n if (g.nodeCount() === 0) {\n return result;\n }\n\n g.nodes().forEach(function(v) {\n pq.add(v, Number.POSITIVE_INFINITY);\n result.setNode(v);\n });\n\n // Start from an arbitrary node\n pq.decrease(g.nodes()[0], 0);\n\n var init = false;\n while (pq.size() > 0) {\n v = pq.removeMin();\n if (Object.hasOwn(parents, v)) {\n result.setEdge(v, parents[v]);\n } else if (init) {\n throw new Error(\"Input graph is not connected: \" + g);\n } else {\n init = true;\n }\n\n g.nodeEdges(v).forEach(updateNeighbors);\n }\n\n return result;\n}\n","module.exports = {\n components: require(\"./components\"),\n dijkstra: require(\"./dijkstra\"),\n dijkstraAll: require(\"./dijkstra-all\"),\n findCycles: require(\"./find-cycles\"),\n floydWarshall: require(\"./floyd-warshall\"),\n isAcyclic: require(\"./is-acyclic\"),\n postorder: require(\"./postorder\"),\n preorder: require(\"./preorder\"),\n prim: require(\"./prim\"),\n tarjan: require(\"./tarjan\"),\n topsort: require(\"./topsort\")\n};\n","/**\n * Copyright (c) 2014, Chris Pettitt\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * 1. Redistributions of source code must retain the above copyright notice, this\n * list of conditions and the following disclaimer.\n *\n * 2. Redistributions in binary form must reproduce the above copyright notice,\n * this list of conditions and the following disclaimer in the documentation\n * and/or other materials provided with the distribution.\n *\n * 3. Neither the name of the copyright holder nor the names of its contributors\n * may be used to endorse or promote products derived from this software without\n * specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar lib = require(\"./lib\");\n\nmodule.exports = {\n Graph: lib.Graph,\n json: require(\"./lib/json\"),\n alg: require(\"./lib/alg\"),\n version: lib.version\n};\n","/*\n * Simple doubly linked list implementation derived from Cormen, et al.,\n * \"Introduction to Algorithms\".\n */\n\nclass List {\n constructor() {\n let sentinel = {};\n sentinel._next = sentinel._prev = sentinel;\n this._sentinel = sentinel;\n }\n\n dequeue() {\n let sentinel = this._sentinel;\n let entry = sentinel._prev;\n if (entry !== sentinel) {\n unlink(entry);\n return entry;\n }\n }\n\n enqueue(entry) {\n let sentinel = this._sentinel;\n if (entry._prev && entry._next) {\n unlink(entry);\n }\n entry._next = sentinel._next;\n sentinel._next._prev = entry;\n sentinel._next = entry;\n entry._prev = sentinel;\n }\n\n toString() {\n let strs = [];\n let sentinel = this._sentinel;\n let curr = sentinel._prev;\n while (curr !== sentinel) {\n strs.push(JSON.stringify(curr, filterOutLinks));\n curr = curr._prev;\n }\n return \"[\" + strs.join(\", \") + \"]\";\n }\n}\n\nfunction unlink(entry) {\n entry._prev._next = entry._next;\n entry._next._prev = entry._prev;\n delete entry._next;\n delete entry._prev;\n}\n\nfunction filterOutLinks(k, v) {\n if (k !== \"_next\" && k !== \"_prev\") {\n return v;\n }\n}\n\nmodule.exports = List;\n","let Graph = require(\"@dagrejs/graphlib\").Graph;\nlet List = require(\"./data/list\");\n\n/*\n * A greedy heuristic for finding a feedback arc set for a graph. A feedback\n * arc set is a set of edges that can be removed to make a graph acyclic.\n * The algorithm comes from: P. Eades, X. Lin, and W. F. Smyth, \"A fast and\n * effective heuristic for the feedback arc set problem.\" This implementation\n * adjusts that from the paper to allow for weighted edges.\n */\nmodule.exports = greedyFAS;\n\nlet DEFAULT_WEIGHT_FN = () => 1;\n\nfunction greedyFAS(g, weightFn) {\n if (g.nodeCount() <= 1) {\n return [];\n }\n let state = buildState(g, weightFn || DEFAULT_WEIGHT_FN);\n let results = doGreedyFAS(state.graph, state.buckets, state.zeroIdx);\n\n // Expand multi-edges\n return results.flatMap(e => g.outEdges(e.v, e.w));\n}\n\nfunction doGreedyFAS(g, buckets, zeroIdx) {\n let results = [];\n let sources = buckets[buckets.length - 1];\n let sinks = buckets[0];\n\n let entry;\n while (g.nodeCount()) {\n while ((entry = sinks.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n while ((entry = sources.dequeue())) { removeNode(g, buckets, zeroIdx, entry); }\n if (g.nodeCount()) {\n for (let i = buckets.length - 2; i > 0; --i) {\n entry = buckets[i].dequeue();\n if (entry) {\n results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));\n break;\n }\n }\n }\n }\n\n return results;\n}\n\nfunction removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {\n let results = collectPredecessors ? [] : undefined;\n\n g.inEdges(entry.v).forEach(edge => {\n let weight = g.edge(edge);\n let uEntry = g.node(edge.v);\n\n if (collectPredecessors) {\n results.push({ v: edge.v, w: edge.w });\n }\n\n uEntry.out -= weight;\n assignBucket(buckets, zeroIdx, uEntry);\n });\n\n g.outEdges(entry.v).forEach(edge => {\n let weight = g.edge(edge);\n let w = edge.w;\n let wEntry = g.node(w);\n wEntry[\"in\"] -= weight;\n assignBucket(buckets, zeroIdx, wEntry);\n });\n\n g.removeNode(entry.v);\n\n return results;\n}\n\nfunction buildState(g, weightFn) {\n let fasGraph = new Graph();\n let maxIn = 0;\n let maxOut = 0;\n\n g.nodes().forEach(v => {\n fasGraph.setNode(v, { v: v, \"in\": 0, out: 0 });\n });\n\n // Aggregate weights on nodes, but also sum the weights across multi-edges\n // into a single edge for the fasGraph.\n g.edges().forEach(e => {\n let prevWeight = fasGraph.edge(e.v, e.w) || 0;\n let weight = weightFn(e);\n let edgeWeight = prevWeight + weight;\n fasGraph.setEdge(e.v, e.w, edgeWeight);\n maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);\n maxIn = Math.max(maxIn, fasGraph.node(e.w)[\"in\"] += weight);\n });\n\n let buckets = range(maxOut + maxIn + 3).map(() => new List());\n let zeroIdx = maxIn + 1;\n\n fasGraph.nodes().forEach(v => {\n assignBucket(buckets, zeroIdx, fasGraph.node(v));\n });\n\n return { graph: fasGraph, buckets: buckets, zeroIdx: zeroIdx };\n}\n\nfunction assignBucket(buckets, zeroIdx, entry) {\n if (!entry.out) {\n buckets[0].enqueue(entry);\n } else if (!entry[\"in\"]) {\n buckets[buckets.length - 1].enqueue(entry);\n } else {\n buckets[entry.out - entry[\"in\"] + zeroIdx].enqueue(entry);\n }\n}\n\nfunction range(limit) {\n const range = [];\n for (let i = 0; i < limit; i++) {\n range.push(i);\n }\n\n return range;\n}\n","/* eslint \"no-console\": off */\n\n\"use strict\";\n\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = {\n addBorderNode,\n addDummyNode,\n applyWithChunking,\n asNonCompoundGraph,\n buildLayerMatrix,\n intersectRect,\n mapValues,\n maxRank,\n normalizeRanks,\n notime,\n partition,\n pick,\n predecessorWeights,\n range,\n removeEmptyRanks,\n simplify,\n successorWeights,\n time,\n uniqueId,\n zipObject,\n};\n\n/*\n * Adds a dummy node to the graph and return v.\n */\nfunction addDummyNode(g, type, attrs, name) {\n var v = name;\n while (g.hasNode(v)) {\n v = uniqueId(name);\n }\n\n attrs.dummy = type;\n g.setNode(v, attrs);\n return v;\n}\n\n/*\n * Returns a new graph with only simple edges. Handles aggregation of data\n * associated with multi-edges.\n */\nfunction simplify(g) {\n let simplified = new Graph().setGraph(g.graph());\n g.nodes().forEach(v => simplified.setNode(v, g.node(v)));\n g.edges().forEach(e => {\n let simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };\n let label = g.edge(e);\n simplified.setEdge(e.v, e.w, {\n weight: simpleLabel.weight + label.weight,\n minlen: Math.max(simpleLabel.minlen, label.minlen)\n });\n });\n return simplified;\n}\n\nfunction asNonCompoundGraph(g) {\n let simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());\n g.nodes().forEach(v => {\n if (!g.children(v).length) {\n simplified.setNode(v, g.node(v));\n }\n });\n g.edges().forEach(e => {\n simplified.setEdge(e, g.edge(e));\n });\n return simplified;\n}\n\nfunction successorWeights(g) {\n let weightMap = g.nodes().map(v => {\n let sucs = {};\n g.outEdges(v).forEach(e => {\n sucs[e.w] = (sucs[e.w] || 0) + g.edge(e).weight;\n });\n return sucs;\n });\n return zipObject(g.nodes(), weightMap);\n}\n\nfunction predecessorWeights(g) {\n let weightMap = g.nodes().map(v => {\n let preds = {};\n g.inEdges(v).forEach(e => {\n preds[e.v] = (preds[e.v] || 0) + g.edge(e).weight;\n });\n return preds;\n });\n return zipObject(g.nodes(), weightMap);\n}\n\n/*\n * Finds where a line starting at point ({x, y}) would intersect a rectangle\n * ({x, y, width, height}) if it were pointing at the rectangle's center.\n */\nfunction intersectRect(rect, point) {\n let x = rect.x;\n let y = rect.y;\n\n // Rectangle intersection algorithm from:\n // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes\n let dx = point.x - x;\n let dy = point.y - y;\n let w = rect.width / 2;\n let h = rect.height / 2;\n\n if (!dx && !dy) {\n throw new Error(\"Not possible to find intersection inside of the rectangle\");\n }\n\n let sx, sy;\n if (Math.abs(dy) * w > Math.abs(dx) * h) {\n // Intersection is top or bottom of rect.\n if (dy < 0) {\n h = -h;\n }\n sx = h * dx / dy;\n sy = h;\n } else {\n // Intersection is left or right of rect.\n if (dx < 0) {\n w = -w;\n }\n sx = w;\n sy = w * dy / dx;\n }\n\n return { x: x + sx, y: y + sy };\n}\n\n/*\n * Given a DAG with each node assigned \"rank\" and \"order\" properties, this\n * function will produce a matrix with the ids of each node.\n */\nfunction buildLayerMatrix(g) {\n let layering = range(maxRank(g) + 1).map(() => []);\n g.nodes().forEach(v => {\n let node = g.node(v);\n let rank = node.rank;\n if (rank !== undefined) {\n layering[rank][node.order] = v;\n }\n });\n return layering;\n}\n\n/*\n * Adjusts the ranks for all nodes in the graph such that all nodes v have\n * rank(v) >= 0 and at least one node w has rank(w) = 0.\n */\nfunction normalizeRanks(g) {\n let nodeRanks = g.nodes().map(v => {\n let rank = g.node(v).rank;\n if (rank === undefined) {\n return Number.MAX_VALUE;\n }\n\n return rank;\n });\n let min = applyWithChunking(Math.min, nodeRanks);\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (Object.hasOwn(node, \"rank\")) {\n node.rank -= min;\n }\n });\n}\n\nfunction removeEmptyRanks(g) {\n // Ranks may not start at 0, so we need to offset them\n let nodeRanks = g.nodes().map(v => g.node(v).rank);\n let offset = applyWithChunking(Math.min, nodeRanks);\n\n let layers = [];\n g.nodes().forEach(v => {\n let rank = g.node(v).rank - offset;\n if (!layers[rank]) {\n layers[rank] = [];\n }\n layers[rank].push(v);\n });\n\n let delta = 0;\n let nodeRankFactor = g.graph().nodeRankFactor;\n Array.from(layers).forEach((vs, i) => {\n if (vs === undefined && i % nodeRankFactor !== 0) {\n --delta;\n } else if (vs !== undefined && delta) {\n vs.forEach(v => g.node(v).rank += delta);\n }\n });\n}\n\nfunction addBorderNode(g, prefix, rank, order) {\n let node = {\n width: 0,\n height: 0\n };\n if (arguments.length >= 4) {\n node.rank = rank;\n node.order = order;\n }\n return addDummyNode(g, \"border\", node, prefix);\n}\n\nfunction splitToChunks(array, chunkSize = CHUNKING_THRESHOLD) {\n const chunks = [];\n for (let i = 0; i < array.length; i += chunkSize) {\n const chunk = array.slice(i, i + chunkSize);\n chunks.push(chunk);\n }\n return chunks;\n}\n\nconst CHUNKING_THRESHOLD = 65535;\n\nfunction applyWithChunking(fn, argsArray) {\n if(argsArray.length > CHUNKING_THRESHOLD) {\n const chunks = splitToChunks(argsArray);\n return fn.apply(null, chunks.map(chunk => fn.apply(null, chunk)));\n } else {\n return fn.apply(null, argsArray);\n }\n}\n\nfunction maxRank(g) {\n const nodes = g.nodes();\n const nodeRanks = nodes.map(v => {\n let rank = g.node(v).rank;\n if (rank === undefined) {\n return Number.MIN_VALUE;\n }\n return rank;\n });\n\n return applyWithChunking(Math.max, nodeRanks);\n}\n\n/*\n * Partition a collection into two groups: `lhs` and `rhs`. If the supplied\n * function returns true for an entry it goes into `lhs`. Otherwise it goes\n * into `rhs.\n */\nfunction partition(collection, fn) {\n let result = { lhs: [], rhs: [] };\n collection.forEach(value => {\n if (fn(value)) {\n result.lhs.push(value);\n } else {\n result.rhs.push(value);\n }\n });\n return result;\n}\n\n/*\n * Returns a new function that wraps `fn` with a timer. The wrapper logs the\n * time it takes to execute the function.\n */\nfunction time(name, fn) {\n let start = Date.now();\n try {\n return fn();\n } finally {\n console.log(name + \" time: \" + (Date.now() - start) + \"ms\");\n }\n}\n\nfunction notime(name, fn) {\n return fn();\n}\n\nlet idCounter = 0;\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return prefix + (\"\" + id);\n}\n\nfunction range(start, limit, step = 1) {\n if (limit == null) {\n limit = start;\n start = 0;\n }\n\n let endCon = (i) => i < limit;\n if (step < 0) {\n endCon = (i) => limit < i;\n }\n\n const range = [];\n for (let i = start; endCon(i); i += step) {\n range.push(i);\n }\n\n return range;\n}\n\nfunction pick(source, keys) {\n const dest = {};\n for (const key of keys) {\n if (source[key] !== undefined) {\n dest[key] = source[key];\n }\n }\n\n return dest;\n}\n\nfunction mapValues(obj, funcOrProp) {\n let func = funcOrProp;\n if (typeof funcOrProp === 'string') {\n func = (val) => val[funcOrProp];\n }\n\n return Object.entries(obj).reduce((acc, [k, v]) => {\n acc[k] = func(v, k);\n return acc;\n }, {});\n}\n\nfunction zipObject(props, values) {\n return props.reduce((acc, key, i) => {\n acc[key] = values[i];\n return acc;\n }, {});\n}\n","\"use strict\";\n\nlet greedyFAS = require(\"./greedy-fas\");\nlet uniqueId = require(\"./util\").uniqueId;\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\nfunction run(g) {\n let fas = (g.graph().acyclicer === \"greedy\"\n ? greedyFAS(g, weightFn(g))\n : dfsFAS(g));\n fas.forEach(e => {\n let label = g.edge(e);\n g.removeEdge(e);\n label.forwardName = e.name;\n label.reversed = true;\n g.setEdge(e.w, e.v, label, uniqueId(\"rev\"));\n });\n\n function weightFn(g) {\n return e => {\n return g.edge(e).weight;\n };\n }\n}\n\nfunction dfsFAS(g) {\n let fas = [];\n let stack = {};\n let visited = {};\n\n function dfs(v) {\n if (Object.hasOwn(visited, v)) {\n return;\n }\n visited[v] = true;\n stack[v] = true;\n g.outEdges(v).forEach(e => {\n if (Object.hasOwn(stack, e.w)) {\n fas.push(e);\n } else {\n dfs(e.w);\n }\n });\n delete stack[v];\n }\n\n g.nodes().forEach(dfs);\n return fas;\n}\n\nfunction undo(g) {\n g.edges().forEach(e => {\n let label = g.edge(e);\n if (label.reversed) {\n g.removeEdge(e);\n\n let forwardName = label.forwardName;\n delete label.reversed;\n delete label.forwardName;\n g.setEdge(e.w, e.v, label, forwardName);\n }\n });\n}\n","\"use strict\";\n\nlet util = require(\"./util\");\n\nmodule.exports = {\n run: run,\n undo: undo\n};\n\n/*\n * Breaks any long edges in the graph into short segments that span 1 layer\n * each. This operation is undoable with the denormalize function.\n *\n * Pre-conditions:\n *\n * 1. The input graph is a DAG.\n * 2. Each node in the graph has a \"rank\" property.\n *\n * Post-condition:\n *\n * 1. All edges in the graph have a length of 1.\n * 2. Dummy nodes are added where edges have been split into segments.\n * 3. The graph is augmented with a \"dummyChains\" attribute which contains\n * the first dummy in each chain of dummy nodes produced.\n */\nfunction run(g) {\n g.graph().dummyChains = [];\n g.edges().forEach(edge => normalizeEdge(g, edge));\n}\n\nfunction normalizeEdge(g, e) {\n let v = e.v;\n let vRank = g.node(v).rank;\n let w = e.w;\n let wRank = g.node(w).rank;\n let name = e.name;\n let edgeLabel = g.edge(e);\n let labelRank = edgeLabel.labelRank;\n\n if (wRank === vRank + 1) return;\n\n g.removeEdge(e);\n\n let dummy, attrs, i;\n for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {\n edgeLabel.points = [];\n attrs = {\n width: 0, height: 0,\n edgeLabel: edgeLabel, edgeObj: e,\n rank: vRank\n };\n dummy = util.addDummyNode(g, \"edge\", attrs, \"_d\");\n if (vRank === labelRank) {\n attrs.width = edgeLabel.width;\n attrs.height = edgeLabel.height;\n attrs.dummy = \"edge-label\";\n attrs.labelpos = edgeLabel.labelpos;\n }\n g.setEdge(v, dummy, { weight: edgeLabel.weight }, name);\n if (i === 0) {\n g.graph().dummyChains.push(dummy);\n }\n v = dummy;\n }\n\n g.setEdge(v, w, { weight: edgeLabel.weight }, name);\n}\n\nfunction undo(g) {\n g.graph().dummyChains.forEach(v => {\n let node = g.node(v);\n let origLabel = node.edgeLabel;\n let w;\n g.setEdge(node.edgeObj, origLabel);\n while (node.dummy) {\n w = g.successors(v)[0];\n g.removeNode(v);\n origLabel.points.push({ x: node.x, y: node.y });\n if (node.dummy === \"edge-label\") {\n origLabel.x = node.x;\n origLabel.y = node.y;\n origLabel.width = node.width;\n origLabel.height = node.height;\n }\n v = w;\n node = g.node(v);\n }\n });\n}\n","\"use strict\";\n\nconst { applyWithChunking } = require(\"../util\");\n\nmodule.exports = {\n longestPath: longestPath,\n slack: slack\n};\n\n/*\n * Initializes ranks for the input graph using the longest path algorithm. This\n * algorithm scales well and is fast in practice, it yields rather poor\n * solutions. Nodes are pushed to the lowest layer possible, leaving the bottom\n * ranks wide and leaving edges longer than necessary. However, due to its\n * speed, this algorithm is good for getting an initial ranking that can be fed\n * into other algorithms.\n *\n * This algorithm does not normalize layers because it will be used by other\n * algorithms in most cases. If using this algorithm directly, be sure to\n * run normalize at the end.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG.\n * 2. Input graph node labels can be assigned properties.\n *\n * Post-conditions:\n *\n * 1. Each node will be assign an (unnormalized) \"rank\" property.\n */\nfunction longestPath(g) {\n var visited = {};\n\n function dfs(v) {\n var label = g.node(v);\n if (Object.hasOwn(visited, v)) {\n return label.rank;\n }\n visited[v] = true;\n\n let outEdgesMinLens = g.outEdges(v).map(e => {\n if (e == null) {\n return Number.POSITIVE_INFINITY;\n }\n\n return dfs(e.w) - g.edge(e).minlen;\n });\n\n var rank = applyWithChunking(Math.min, outEdgesMinLens);\n\n if (rank === Number.POSITIVE_INFINITY) {\n rank = 0;\n }\n\n return (label.rank = rank);\n }\n\n g.sources().forEach(dfs);\n}\n\n/*\n * Returns the amount of slack for the given edge. The slack is defined as the\n * difference between the length of the edge and its minimum length.\n */\nfunction slack(g, e) {\n return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;\n}\n","\"use strict\";\n\nvar Graph = require(\"@dagrejs/graphlib\").Graph;\nvar slack = require(\"./util\").slack;\n\nmodule.exports = feasibleTree;\n\n/*\n * Constructs a spanning tree with tight edges and adjusted the input node's\n * ranks to achieve this. A tight edge is one that is has a length that matches\n * its \"minlen\" attribute.\n *\n * The basic structure for this function is derived from Gansner, et al., \"A\n * Technique for Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a DAG.\n * 2. Graph must be connected.\n * 3. Graph must have at least one node.\n * 5. Graph nodes must have been previously assigned a \"rank\" property that\n * respects the \"minlen\" property of incident edges.\n * 6. Graph edges must have a \"minlen\" property.\n *\n * Post-conditions:\n *\n * - Graph nodes will have their rank adjusted to ensure that all edges are\n * tight.\n *\n * Returns a tree (undirected graph) that is constructed using only \"tight\"\n * edges.\n */\nfunction feasibleTree(g) {\n var t = new Graph({ directed: false });\n\n // Choose arbitrary node from which to start our tree\n var start = g.nodes()[0];\n var size = g.nodeCount();\n t.setNode(start, {});\n\n var edge, delta;\n while (tightTree(t, g) < size) {\n edge = findMinSlackEdge(t, g);\n delta = t.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);\n shiftRanks(t, g, delta);\n }\n\n return t;\n}\n\n/*\n * Finds a maximal tree of tight edges and returns the number of nodes in the\n * tree.\n */\nfunction tightTree(t, g) {\n function dfs(v) {\n g.nodeEdges(v).forEach(e => {\n var edgeV = e.v,\n w = (v === edgeV) ? e.w : edgeV;\n if (!t.hasNode(w) && !slack(g, e)) {\n t.setNode(w, {});\n t.setEdge(v, w, {});\n dfs(w);\n }\n });\n }\n\n t.nodes().forEach(dfs);\n return t.nodeCount();\n}\n\n/*\n * Finds the edge with the smallest slack that is incident on tree and returns\n * it.\n */\nfunction findMinSlackEdge(t, g) {\n const edges = g.edges();\n\n return edges.reduce((acc, edge) => {\n let edgeSlack = Number.POSITIVE_INFINITY;\n if (t.hasNode(edge.v) !== t.hasNode(edge.w)) {\n edgeSlack = slack(g, edge);\n }\n\n if (edgeSlack < acc[0]) {\n return [edgeSlack, edge];\n }\n\n return acc;\n }, [Number.POSITIVE_INFINITY, null])[1];\n}\n\nfunction shiftRanks(t, g, delta) {\n t.nodes().forEach(v => g.node(v).rank += delta);\n}\n","\"use strict\";\n\nvar feasibleTree = require(\"./feasible-tree\");\nvar slack = require(\"./util\").slack;\nvar initRank = require(\"./util\").longestPath;\nvar preorder = require(\"@dagrejs/graphlib\").alg.preorder;\nvar postorder = require(\"@dagrejs/graphlib\").alg.postorder;\nvar simplify = require(\"../util\").simplify;\n\nmodule.exports = networkSimplex;\n\n// Expose some internals for testing purposes\nnetworkSimplex.initLowLimValues = initLowLimValues;\nnetworkSimplex.initCutValues = initCutValues;\nnetworkSimplex.calcCutValue = calcCutValue;\nnetworkSimplex.leaveEdge = leaveEdge;\nnetworkSimplex.enterEdge = enterEdge;\nnetworkSimplex.exchangeEdges = exchangeEdges;\n\n/*\n * The network simplex algorithm assigns ranks to each node in the input graph\n * and iteratively improves the ranking to reduce the length of edges.\n *\n * Preconditions:\n *\n * 1. The input graph must be a DAG.\n * 2. All nodes in the graph must have an object value.\n * 3. All edges in the graph must have \"minlen\" and \"weight\" attributes.\n *\n * Postconditions:\n *\n * 1. All nodes in the graph will have an assigned \"rank\" attribute that has\n * been optimized by the network simplex algorithm. Ranks start at 0.\n *\n *\n * A rough sketch of the algorithm is as follows:\n *\n * 1. Assign initial ranks to each node. We use the longest path algorithm,\n * which assigns ranks to the lowest position possible. In general this\n * leads to very wide bottom ranks and unnecessarily long edges.\n * 2. Construct a feasible tight tree. A tight tree is one such that all\n * edges in the tree have no slack (difference between length of edge\n * and minlen for the edge). This by itself greatly improves the assigned\n * rankings by shorting edges.\n * 3. Iteratively find edges that have negative cut values. Generally a\n * negative cut value indicates that the edge could be removed and a new\n * tree edge could be added to produce a more compact graph.\n *\n * Much of the algorithms here are derived from Gansner, et al., \"A Technique\n * for Drawing Directed Graphs.\" The structure of the file roughly follows the\n * structure of the overall algorithm.\n */\nfunction networkSimplex(g) {\n g = simplify(g);\n initRank(g);\n var t = feasibleTree(g);\n initLowLimValues(t);\n initCutValues(t, g);\n\n var e, f;\n while ((e = leaveEdge(t))) {\n f = enterEdge(t, g, e);\n exchangeEdges(t, g, e, f);\n }\n}\n\n/*\n * Initializes cut values for all edges in the tree.\n */\nfunction initCutValues(t, g) {\n var vs = postorder(t, t.nodes());\n vs = vs.slice(0, vs.length - 1);\n vs.forEach(v => assignCutValue(t, g, v));\n}\n\nfunction assignCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n t.edge(child, parent).cutvalue = calcCutValue(t, g, child);\n}\n\n/*\n * Given the tight tree, its graph, and a child in the graph calculate and\n * return the cut value for the edge between the child and its parent.\n */\nfunction calcCutValue(t, g, child) {\n var childLab = t.node(child);\n var parent = childLab.parent;\n // True if the child is on the tail end of the edge in the directed graph\n var childIsTail = true;\n // The graph's view of the tree edge we're inspecting\n var graphEdge = g.edge(child, parent);\n // The accumulated cut value for the edge between this node and its parent\n var cutValue = 0;\n\n if (!graphEdge) {\n childIsTail = false;\n graphEdge = g.edge(parent, child);\n }\n\n cutValue = graphEdge.weight;\n\n g.nodeEdges(child).forEach(e => {\n var isOutEdge = e.v === child,\n other = isOutEdge ? e.w : e.v;\n\n if (other !== parent) {\n var pointsToHead = isOutEdge === childIsTail,\n otherWeight = g.edge(e).weight;\n\n cutValue += pointsToHead ? otherWeight : -otherWeight;\n if (isTreeEdge(t, child, other)) {\n var otherCutValue = t.edge(child, other).cutvalue;\n cutValue += pointsToHead ? -otherCutValue : otherCutValue;\n }\n }\n });\n\n return cutValue;\n}\n\nfunction initLowLimValues(tree, root) {\n if (arguments.length < 2) {\n root = tree.nodes()[0];\n }\n dfsAssignLowLim(tree, {}, 1, root);\n}\n\nfunction dfsAssignLowLim(tree, visited, nextLim, v, parent) {\n var low = nextLim;\n var label = tree.node(v);\n\n visited[v] = true;\n tree.neighbors(v).forEach(w => {\n if (!Object.hasOwn(visited, w)) {\n nextLim = dfsAssignLowLim(tree, visited, nextLim, w, v);\n }\n });\n\n label.low = low;\n label.lim = nextLim++;\n if (parent) {\n label.parent = parent;\n } else {\n // TODO should be able to remove this when we incrementally update low lim\n delete label.parent;\n }\n\n return nextLim;\n}\n\nfunction leaveEdge(tree) {\n return tree.edges().find(e => tree.edge(e).cutvalue < 0);\n}\n\nfunction enterEdge(t, g, edge) {\n var v = edge.v;\n var w = edge.w;\n\n // For the rest of this function we assume that v is the tail and w is the\n // head, so if we don't have this edge in the graph we should flip it to\n // match the correct orientation.\n if (!g.hasEdge(v, w)) {\n v = edge.w;\n w = edge.v;\n }\n\n var vLabel = t.node(v);\n var wLabel = t.node(w);\n var tailLabel = vLabel;\n var flip = false;\n\n // If the root is in the tail of the edge then we need to flip the logic that\n // checks for the head and tail nodes in the candidates function below.\n if (vLabel.lim > wLabel.lim) {\n tailLabel = wLabel;\n flip = true;\n }\n\n var candidates = g.edges().filter(edge => {\n return flip === isDescendant(t, t.node(edge.v), tailLabel) &&\n flip !== isDescendant(t, t.node(edge.w), tailLabel);\n });\n\n return candidates.reduce((acc, edge) => {\n if (slack(g, edge) < slack(g, acc)) {\n return edge;\n }\n\n return acc;\n });\n}\n\nfunction exchangeEdges(t, g, e, f) {\n var v = e.v;\n var w = e.w;\n t.removeEdge(v, w);\n t.setEdge(f.v, f.w, {});\n initLowLimValues(t);\n initCutValues(t, g);\n updateRanks(t, g);\n}\n\nfunction updateRanks(t, g) {\n var root = t.nodes().find(v => !g.node(v).parent);\n var vs = preorder(t, root);\n vs = vs.slice(1);\n vs.forEach(v => {\n var parent = t.node(v).parent,\n edge = g.edge(v, parent),\n flipped = false;\n\n if (!edge) {\n edge = g.edge(parent, v);\n flipped = true;\n }\n\n g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);\n });\n}\n\n/*\n * Returns true if the edge is in the tree.\n */\nfunction isTreeEdge(tree, u, v) {\n return tree.hasEdge(u, v);\n}\n\n/*\n * Returns true if the specified node is descendant of the root node per the\n * assigned low and lim attributes in the tree.\n */\nfunction isDescendant(tree, vLabel, rootLabel) {\n return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;\n}\n","\"use strict\";\n\nvar rankUtil = require(\"./util\");\nvar longestPath = rankUtil.longestPath;\nvar feasibleTree = require(\"./feasible-tree\");\nvar networkSimplex = require(\"./network-simplex\");\n\nmodule.exports = rank;\n\n/*\n * Assigns a rank to each node in the input graph that respects the \"minlen\"\n * constraint specified on edges between nodes.\n *\n * This basic structure is derived from Gansner, et al., \"A Technique for\n * Drawing Directed Graphs.\"\n *\n * Pre-conditions:\n *\n * 1. Graph must be a connected DAG\n * 2. Graph nodes must be objects\n * 3. Graph edges must have \"weight\" and \"minlen\" attributes\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have a \"rank\" attribute based on the results of the\n * algorithm. Ranks can start at any index (including negative), we'll\n * fix them up later.\n */\nfunction rank(g) {\n var ranker = g.graph().ranker;\n if (ranker instanceof Function) {\n return ranker(g);\n }\n\n switch(g.graph().ranker) {\n case \"network-simplex\": networkSimplexRanker(g); break;\n case \"tight-tree\": tightTreeRanker(g); break;\n case \"longest-path\": longestPathRanker(g); break;\n case \"none\": break;\n default: networkSimplexRanker(g);\n }\n}\n\n// A fast and simple ranker, but results are far from optimal.\nvar longestPathRanker = longestPath;\n\nfunction tightTreeRanker(g) {\n longestPath(g);\n feasibleTree(g);\n}\n\nfunction networkSimplexRanker(g) {\n networkSimplex(g);\n}\n","module.exports = parentDummyChains;\n\nfunction parentDummyChains(g) {\n let postorderNums = postorder(g);\n\n g.graph().dummyChains.forEach(v => {\n let node = g.node(v);\n let edgeObj = node.edgeObj;\n let pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);\n let path = pathData.path;\n let lca = pathData.lca;\n let pathIdx = 0;\n let pathV = path[pathIdx];\n let ascending = true;\n\n while (v !== edgeObj.w) {\n node = g.node(v);\n\n if (ascending) {\n while ((pathV = path[pathIdx]) !== lca &&\n g.node(pathV).maxRank < node.rank) {\n pathIdx++;\n }\n\n if (pathV === lca) {\n ascending = false;\n }\n }\n\n if (!ascending) {\n while (pathIdx < path.length - 1 &&\n g.node(pathV = path[pathIdx + 1]).minRank <= node.rank) {\n pathIdx++;\n }\n pathV = path[pathIdx];\n }\n\n g.setParent(v, pathV);\n v = g.successors(v)[0];\n }\n });\n}\n\n// Find a path from v to w through the lowest common ancestor (LCA). Return the\n// full path and the LCA.\nfunction findPath(g, postorderNums, v, w) {\n let vPath = [];\n let wPath = [];\n let low = Math.min(postorderNums[v].low, postorderNums[w].low);\n let lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);\n let parent;\n let lca;\n\n // Traverse up from v to find the LCA\n parent = v;\n do {\n parent = g.parent(parent);\n vPath.push(parent);\n } while (parent &&\n (postorderNums[parent].low > low || lim > postorderNums[parent].lim));\n lca = parent;\n\n // Traverse from w to LCA\n parent = w;\n while ((parent = g.parent(parent)) !== lca) {\n wPath.push(parent);\n }\n\n return { path: vPath.concat(wPath.reverse()), lca: lca };\n}\n\nfunction postorder(g) {\n let result = {};\n let lim = 0;\n\n function dfs(v) {\n let low = lim;\n g.children(v).forEach(dfs);\n result[v] = { low: low, lim: lim++ };\n }\n g.children().forEach(dfs);\n\n return result;\n}\n","let util = require(\"./util\");\n\nmodule.exports = {\n run,\n cleanup,\n};\n\n/*\n * A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,\n * adds appropriate edges to ensure that all cluster nodes are placed between\n * these boundaries, and ensures that the graph is connected.\n *\n * In addition we ensure, through the use of the minlen property, that nodes\n * and subgraph border nodes to not end up on the same rank.\n *\n * Preconditions:\n *\n * 1. Input graph is a DAG\n * 2. Nodes in the input graph has a minlen attribute\n *\n * Postconditions:\n *\n * 1. Input graph is connected.\n * 2. Dummy nodes are added for the tops and bottoms of subgraphs.\n * 3. The minlen attribute for nodes is adjusted to ensure nodes do not\n * get placed on the same rank as subgraph border nodes.\n *\n * The nesting graph idea comes from Sander, \"Layout of Compound Directed\n * Graphs.\"\n */\nfunction run(g) {\n let root = util.addDummyNode(g, \"root\", {}, \"_root\");\n let depths = treeDepths(g);\n let depthsArr = Object.values(depths);\n let height = util.applyWithChunking(Math.max, depthsArr) - 1; // Note: depths is an Object not an array\n let nodeSep = 2 * height + 1;\n\n g.graph().nestingRoot = root;\n\n // Multiply minlen by nodeSep to align nodes on non-border ranks.\n g.edges().forEach(e => g.edge(e).minlen *= nodeSep);\n\n // Calculate a weight that is sufficient to keep subgraphs vertically compact\n let weight = sumWeights(g) + 1;\n\n // Create border nodes and link them up\n g.children().forEach(child => dfs(g, root, nodeSep, weight, height, depths, child));\n\n // Save the multiplier for node layers for later removal of empty border\n // layers.\n g.graph().nodeRankFactor = nodeSep;\n}\n\nfunction dfs(g, root, nodeSep, weight, height, depths, v) {\n let children = g.children(v);\n if (!children.length) {\n if (v !== root) {\n g.setEdge(root, v, { weight: 0, minlen: nodeSep });\n }\n return;\n }\n\n let top = util.addBorderNode(g, \"_bt\");\n let bottom = util.addBorderNode(g, \"_bb\");\n let label = g.node(v);\n\n g.setParent(top, v);\n label.borderTop = top;\n g.setParent(bottom, v);\n label.borderBottom = bottom;\n\n children.forEach(child => {\n dfs(g, root, nodeSep, weight, height, depths, child);\n\n let childNode = g.node(child);\n let childTop = childNode.borderTop ? childNode.borderTop : child;\n let childBottom = childNode.borderBottom ? childNode.borderBottom : child;\n let thisWeight = childNode.borderTop ? weight : 2 * weight;\n let minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;\n\n g.setEdge(top, childTop, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n\n g.setEdge(childBottom, bottom, {\n weight: thisWeight,\n minlen: minlen,\n nestingEdge: true\n });\n });\n\n if (!g.parent(v)) {\n g.setEdge(root, top, { weight: 0, minlen: height + depths[v] });\n }\n}\n\nfunction treeDepths(g) {\n var depths = {};\n function dfs(v, depth) {\n var children = g.children(v);\n if (children && children.length) {\n children.forEach(child => dfs(child, depth + 1));\n }\n depths[v] = depth;\n }\n g.children().forEach(v => dfs(v, 1));\n return depths;\n}\n\nfunction sumWeights(g) {\n return g.edges().reduce((acc, e) => acc + g.edge(e).weight, 0);\n}\n\nfunction cleanup(g) {\n var graphLabel = g.graph();\n g.removeNode(graphLabel.nestingRoot);\n delete graphLabel.nestingRoot;\n g.edges().forEach(e => {\n var edge = g.edge(e);\n if (edge.nestingEdge) {\n g.removeEdge(e);\n }\n });\n}\n","let util = require(\"./util\");\n\nmodule.exports = addBorderSegments;\n\nfunction addBorderSegments(g) {\n function dfs(v) {\n let children = g.children(v);\n let node = g.node(v);\n if (children.length) {\n children.forEach(dfs);\n }\n\n if (Object.hasOwn(node, \"minRank\")) {\n node.borderLeft = [];\n node.borderRight = [];\n for (let rank = node.minRank, maxRank = node.maxRank + 1;\n rank < maxRank;\n ++rank) {\n addBorderNode(g, \"borderLeft\", \"_bl\", v, node, rank);\n addBorderNode(g, \"borderRight\", \"_br\", v, node, rank);\n }\n }\n }\n\n g.children().forEach(dfs);\n}\n\nfunction addBorderNode(g, prop, prefix, sg, sgNode, rank) {\n let label = { width: 0, height: 0, rank: rank, borderType: prop };\n let prev = sgNode[prop][rank - 1];\n let curr = util.addDummyNode(g, \"border\", label, prefix);\n sgNode[prop][rank] = curr;\n g.setParent(curr, sg);\n if (prev) {\n g.setEdge(prev, curr, { weight: 1 });\n }\n}\n","\"use strict\";\n\nmodule.exports = {\n adjust: adjust,\n undo: undo\n};\n\nfunction adjust(g) {\n let rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapWidthHeight(g);\n }\n}\n\nfunction undo(g) {\n let rankDir = g.graph().rankdir.toLowerCase();\n if (rankDir === \"bt\" || rankDir === \"rl\") {\n reverseY(g);\n }\n\n if (rankDir === \"lr\" || rankDir === \"rl\") {\n swapXY(g);\n swapWidthHeight(g);\n }\n}\n\nfunction swapWidthHeight(g) {\n g.nodes().forEach(v => swapWidthHeightOne(g.node(v)));\n g.edges().forEach(e => swapWidthHeightOne(g.edge(e)));\n}\n\nfunction swapWidthHeightOne(attrs) {\n let w = attrs.width;\n attrs.width = attrs.height;\n attrs.height = w;\n}\n\nfunction reverseY(g) {\n g.nodes().forEach(v => reverseYOne(g.node(v)));\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(reverseYOne);\n if (Object.hasOwn(edge, \"y\")) {\n reverseYOne(edge);\n }\n });\n}\n\nfunction reverseYOne(attrs) {\n attrs.y = -attrs.y;\n}\n\nfunction swapXY(g) {\n g.nodes().forEach(v => swapXYOne(g.node(v)));\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(swapXYOne);\n if (Object.hasOwn(edge, \"x\")) {\n swapXYOne(edge);\n }\n });\n}\n\nfunction swapXYOne(attrs) {\n let x = attrs.x;\n attrs.x = attrs.y;\n attrs.y = x;\n}\n","\"use strict\";\n\nlet util = require(\"../util\");\n\nmodule.exports = initOrder;\n\n/*\n * Assigns an initial order value for each node by performing a DFS search\n * starting from nodes in the first rank. Nodes are assigned an order in their\n * rank as they are first visited.\n *\n * This approach comes from Gansner, et al., \"A Technique for Drawing Directed\n * Graphs.\"\n *\n * Returns a layering matrix with an array per layer and each layer sorted by\n * the order of its nodes.\n */\nfunction initOrder(g) {\n let visited = {};\n let simpleNodes = g.nodes().filter(v => !g.children(v).length);\n let simpleNodesRanks = simpleNodes.map(v => g.node(v).rank);\n let maxRank = util.applyWithChunking(Math.max, simpleNodesRanks);\n let layers = util.range(maxRank + 1).map(() => []);\n\n function dfs(v) {\n if (visited[v]) return;\n visited[v] = true;\n let node = g.node(v);\n layers[node.rank].push(v);\n g.successors(v).forEach(dfs);\n }\n\n let orderedVs = simpleNodes.sort((a, b) => g.node(a).rank - g.node(b).rank);\n orderedVs.forEach(dfs);\n\n return layers;\n}\n","\"use strict\";\n\nlet zipObject = require(\"../util\").zipObject;\n\nmodule.exports = crossCount;\n\n/*\n * A function that takes a layering (an array of layers, each with an array of\n * ordererd nodes) and a graph and returns a weighted crossing count.\n *\n * Pre-conditions:\n *\n * 1. Input graph must be simple (not a multigraph), directed, and include\n * only simple edges.\n * 2. Edges in the input graph must have assigned weights.\n *\n * Post-conditions:\n *\n * 1. The graph and layering matrix are left unchanged.\n *\n * This algorithm is derived from Barth, et al., \"Bilayer Cross Counting.\"\n */\nfunction crossCount(g, layering) {\n let cc = 0;\n for (let i = 1; i < layering.length; ++i) {\n cc += twoLayerCrossCount(g, layering[i-1], layering[i]);\n }\n return cc;\n}\n\nfunction twoLayerCrossCount(g, northLayer, southLayer) {\n // Sort all of the edges between the north and south layers by their position\n // in the north layer and then the south. Map these edges to the position of\n // their head in the south layer.\n let southPos = zipObject(southLayer, southLayer.map((v, i) => i));\n let southEntries = northLayer.flatMap(v => {\n return g.outEdges(v).map(e => {\n return { pos: southPos[e.w], weight: g.edge(e).weight };\n }).sort((a, b) => a.pos - b.pos);\n });\n\n // Build the accumulator tree\n let firstIndex = 1;\n while (firstIndex < southLayer.length) firstIndex <<= 1;\n let treeSize = 2 * firstIndex - 1;\n firstIndex -= 1;\n let tree = new Array(treeSize).fill(0);\n\n // Calculate the weighted crossings\n let cc = 0;\n southEntries.forEach(entry => {\n let index = entry.pos + firstIndex;\n tree[index] += entry.weight;\n let weightSum = 0;\n while (index > 0) {\n if (index % 2) {\n weightSum += tree[index + 1];\n }\n index = (index - 1) >> 1;\n tree[index] += entry.weight;\n }\n cc += entry.weight * weightSum;\n });\n\n return cc;\n}\n","module.exports = barycenter;\n\nfunction barycenter(g, movable = []) {\n return movable.map(v => {\n let inV = g.inEdges(v);\n if (!inV.length) {\n return { v: v };\n } else {\n let result = inV.reduce((acc, e) => {\n let edge = g.edge(e),\n nodeU = g.node(e.v);\n return {\n sum: acc.sum + (edge.weight * nodeU.order),\n weight: acc.weight + edge.weight\n };\n }, { sum: 0, weight: 0 });\n\n return {\n v: v,\n barycenter: result.sum / result.weight,\n weight: result.weight\n };\n }\n });\n}\n\n","\"use strict\";\n\nlet util = require(\"../util\");\n\nmodule.exports = resolveConflicts;\n\n/*\n * Given a list of entries of the form {v, barycenter, weight} and a\n * constraint graph this function will resolve any conflicts between the\n * constraint graph and the barycenters for the entries. If the barycenters for\n * an entry would violate a constraint in the constraint graph then we coalesce\n * the nodes in the conflict into a new node that respects the contraint and\n * aggregates barycenter and weight information.\n *\n * This implementation is based on the description in Forster, \"A Fast and\n * Simple Hueristic for Constrained Two-Level Crossing Reduction,\" thought it\n * differs in some specific details.\n *\n * Pre-conditions:\n *\n * 1. Each entry has the form {v, barycenter, weight}, or if the node has\n * no barycenter, then {v}.\n *\n * Returns:\n *\n * A new list of entries of the form {vs, i, barycenter, weight}. The list\n * `vs` may either be a singleton or it may be an aggregation of nodes\n * ordered such that they do not violate constraints from the constraint\n * graph. The property `i` is the lowest original index of any of the\n * elements in `vs`.\n */\nfunction resolveConflicts(entries, cg) {\n let mappedEntries = {};\n entries.forEach((entry, i) => {\n let tmp = mappedEntries[entry.v] = {\n indegree: 0,\n \"in\": [],\n out: [],\n vs: [entry.v],\n i: i\n };\n if (entry.barycenter !== undefined) {\n tmp.barycenter = entry.barycenter;\n tmp.weight = entry.weight;\n }\n });\n\n cg.edges().forEach(e => {\n let entryV = mappedEntries[e.v];\n let entryW = mappedEntries[e.w];\n if (entryV !== undefined && entryW !== undefined) {\n entryW.indegree++;\n entryV.out.push(mappedEntries[e.w]);\n }\n });\n\n let sourceSet = Object.values(mappedEntries).filter(entry => !entry.indegree);\n\n return doResolveConflicts(sourceSet);\n}\n\nfunction doResolveConflicts(sourceSet) {\n let entries = [];\n\n function handleIn(vEntry) {\n return uEntry => {\n if (uEntry.merged) {\n return;\n }\n if (uEntry.barycenter === undefined ||\n vEntry.barycenter === undefined ||\n uEntry.barycenter >= vEntry.barycenter) {\n mergeEntries(vEntry, uEntry);\n }\n };\n }\n\n function handleOut(vEntry) {\n return wEntry => {\n wEntry[\"in\"].push(vEntry);\n if (--wEntry.indegree === 0) {\n sourceSet.push(wEntry);\n }\n };\n }\n\n while (sourceSet.length) {\n let entry = sourceSet.pop();\n entries.push(entry);\n entry[\"in\"].reverse().forEach(handleIn(entry));\n entry.out.forEach(handleOut(entry));\n }\n\n return entries.filter(entry => !entry.merged).map(entry => {\n return util.pick(entry, [\"vs\", \"i\", \"barycenter\", \"weight\"]);\n });\n}\n\nfunction mergeEntries(target, source) {\n let sum = 0;\n let weight = 0;\n\n if (target.weight) {\n sum += target.barycenter * target.weight;\n weight += target.weight;\n }\n\n if (source.weight) {\n sum += source.barycenter * source.weight;\n weight += source.weight;\n }\n\n target.vs = source.vs.concat(target.vs);\n target.barycenter = sum / weight;\n target.weight = weight;\n target.i = Math.min(source.i, target.i);\n source.merged = true;\n}\n","let util = require(\"../util\");\n\nmodule.exports = sort;\n\nfunction sort(entries, biasRight) {\n let parts = util.partition(entries, entry => {\n return Object.hasOwn(entry, \"barycenter\");\n });\n let sortable = parts.lhs,\n unsortable = parts.rhs.sort((a, b) => b.i - a.i),\n vs = [],\n sum = 0,\n weight = 0,\n vsIndex = 0;\n\n sortable.sort(compareWithBias(!!biasRight));\n\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n\n sortable.forEach(entry => {\n vsIndex += entry.vs.length;\n vs.push(entry.vs);\n sum += entry.barycenter * entry.weight;\n weight += entry.weight;\n vsIndex = consumeUnsortable(vs, unsortable, vsIndex);\n });\n\n let result = { vs: vs.flat(true) };\n if (weight) {\n result.barycenter = sum / weight;\n result.weight = weight;\n }\n return result;\n}\n\nfunction consumeUnsortable(vs, unsortable, index) {\n let last;\n while (unsortable.length && (last = unsortable[unsortable.length - 1]).i <= index) {\n unsortable.pop();\n vs.push(last.vs);\n index++;\n }\n return index;\n}\n\nfunction compareWithBias(bias) {\n return (entryV, entryW) => {\n if (entryV.barycenter < entryW.barycenter) {\n return -1;\n } else if (entryV.barycenter > entryW.barycenter) {\n return 1;\n }\n\n return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;\n };\n}\n","let barycenter = require(\"./barycenter\");\nlet resolveConflicts = require(\"./resolve-conflicts\");\nlet sort = require(\"./sort\");\n\nmodule.exports = sortSubgraph;\n\nfunction sortSubgraph(g, v, cg, biasRight) {\n let movable = g.children(v);\n let node = g.node(v);\n let bl = node ? node.borderLeft : undefined;\n let br = node ? node.borderRight: undefined;\n let subgraphs = {};\n\n if (bl) {\n movable = movable.filter(w => w !== bl && w !== br);\n }\n\n let barycenters = barycenter(g, movable);\n barycenters.forEach(entry => {\n if (g.children(entry.v).length) {\n let subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);\n subgraphs[entry.v] = subgraphResult;\n if (Object.hasOwn(subgraphResult, \"barycenter\")) {\n mergeBarycenters(entry, subgraphResult);\n }\n }\n });\n\n let entries = resolveConflicts(barycenters, cg);\n expandSubgraphs(entries, subgraphs);\n\n let result = sort(entries, biasRight);\n\n if (bl) {\n result.vs = [bl, result.vs, br].flat(true);\n if (g.predecessors(bl).length) {\n let blPred = g.node(g.predecessors(bl)[0]),\n brPred = g.node(g.predecessors(br)[0]);\n if (!Object.hasOwn(result, \"barycenter\")) {\n result.barycenter = 0;\n result.weight = 0;\n }\n result.barycenter = (result.barycenter * result.weight +\n blPred.order + brPred.order) / (result.weight + 2);\n result.weight += 2;\n }\n }\n\n return result;\n}\n\nfunction expandSubgraphs(entries, subgraphs) {\n entries.forEach(entry => {\n entry.vs = entry.vs.flatMap(v => {\n if (subgraphs[v]) {\n return subgraphs[v].vs;\n }\n return v;\n });\n });\n}\n\nfunction mergeBarycenters(target, other) {\n if (target.barycenter !== undefined) {\n target.barycenter = (target.barycenter * target.weight +\n other.barycenter * other.weight) /\n (target.weight + other.weight);\n target.weight += other.weight;\n } else {\n target.barycenter = other.barycenter;\n target.weight = other.weight;\n }\n}\n","let Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\nmodule.exports = buildLayerGraph;\n\n/*\n * Constructs a graph that can be used to sort a layer of nodes. The graph will\n * contain all base and subgraph nodes from the request layer in their original\n * hierarchy and any edges that are incident on these nodes and are of the type\n * requested by the \"relationship\" parameter.\n *\n * Nodes from the requested rank that do not have parents are assigned a root\n * node in the output graph, which is set in the root graph attribute. This\n * makes it easy to walk the hierarchy of movable nodes during ordering.\n *\n * Pre-conditions:\n *\n * 1. Input graph is a DAG\n * 2. Base nodes in the input graph have a rank attribute\n * 3. Subgraph nodes in the input graph has minRank and maxRank attributes\n * 4. Edges have an assigned weight\n * 5. If `nodesWithRank` is not undefined, it must contains only the nodes\n * which belong to `g` and belong to `rank`.\n *\n * Post-conditions:\n *\n * 1. Output graph has all nodes in the movable rank with preserved\n * hierarchy.\n * 2. Root nodes in the movable layer are made children of the node\n * indicated by the root attribute of the graph.\n * 3. Non-movable nodes incident on movable nodes, selected by the\n * relationship parameter, are included in the graph (without hierarchy).\n * 4. Edges incident on movable nodes, selected by the relationship\n * parameter, are added to the output graph.\n * 5. The weights for copied edges are aggregated as need, since the output\n * graph is not a multi-graph.\n */\nfunction buildLayerGraph(g, rank, relationship, nodesWithRank) {\n if (!nodesWithRank) {\n nodesWithRank = g.nodes();\n }\n let root = createRootNode(g),\n result = new Graph({ compound: true })\n .setGraph({ root: root })\n .setDefaultNodeLabel((v) => g.node(v));\n\n nodesWithRank.forEach((v) => {\n let node = g.node(v),\n parent = g.parent(v);\n\n if (node.rank === rank || node.minRank <= rank && rank <= node.maxRank) {\n result.setNode(v);\n result.setParent(v, parent || root);\n\n // This assumes we have only short edges!\n g[relationship](v).forEach(e => {\n let u = e.v === v ? e.w : e.v,\n edge = result.edge(u, v),\n weight = edge !== undefined ? edge.weight : 0;\n result.setEdge(u, v, { weight: g.edge(e).weight + weight });\n });\n\n if (Object.hasOwn(node, \"minRank\")) {\n result.setNode(v, {\n borderLeft: node.borderLeft[rank],\n borderRight: node.borderRight[rank]\n });\n }\n }\n });\n\n return result;\n}\n\nfunction createRootNode(g) {\n var v;\n while (g.hasNode((v = util.uniqueId(\"_root\"))));\n return v;\n}\n","module.exports = addSubgraphConstraints;\n\nfunction addSubgraphConstraints(g, cg, vs) {\n let prev = {},\n rootPrev;\n\n vs.forEach(v => {\n let child = g.parent(v),\n parent,\n prevChild;\n while (child) {\n parent = g.parent(child);\n if (parent) {\n prevChild = prev[parent];\n prev[parent] = child;\n } else {\n prevChild = rootPrev;\n rootPrev = child;\n }\n if (prevChild && prevChild !== child) {\n cg.setEdge(prevChild, child);\n return;\n }\n child = parent;\n }\n });\n\n /*\n function dfs(v) {\n var children = v ? g.children(v) : g.children();\n if (children.length) {\n var min = Number.POSITIVE_INFINITY,\n subgraphs = [];\n children.forEach(function(child) {\n var childMin = dfs(child);\n if (g.children(child).length) {\n subgraphs.push({ v: child, order: childMin });\n }\n min = Math.min(min, childMin);\n });\n _.sortBy(subgraphs, \"order\").reduce(function(prev, curr) {\n cg.setEdge(prev.v, curr.v);\n return curr;\n });\n return min;\n }\n return g.node(v).order;\n }\n dfs(undefined);\n */\n}\n","\"use strict\";\n\nlet initOrder = require(\"./init-order\");\nlet crossCount = require(\"./cross-count\");\nlet sortSubgraph = require(\"./sort-subgraph\");\nlet buildLayerGraph = require(\"./build-layer-graph\");\nlet addSubgraphConstraints = require(\"./add-subgraph-constraints\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\nmodule.exports = order;\n\n/*\n * Applies heuristics to minimize edge crossings in the graph and sets the best\n * order solution as an order attribute on each node.\n *\n * Pre-conditions:\n *\n * 1. Graph must be DAG\n * 2. Graph nodes must be objects with a \"rank\" attribute\n * 3. Graph edges must have the \"weight\" attribute\n *\n * Post-conditions:\n *\n * 1. Graph nodes will have an \"order\" attribute based on the results of the\n * algorithm.\n */\nfunction order(g, opts) {\n if (opts && typeof opts.customOrder === 'function') {\n opts.customOrder(g, order);\n return;\n }\n\n let maxRank = util.maxRank(g),\n downLayerGraphs = buildLayerGraphs(g, util.range(1, maxRank + 1), \"inEdges\"),\n upLayerGraphs = buildLayerGraphs(g, util.range(maxRank - 1, -1, -1), \"outEdges\");\n\n let layering = initOrder(g);\n assignOrder(g, layering);\n\n if (opts && opts.disableOptimalOrderHeuristic) {\n return;\n }\n\n let bestCC = Number.POSITIVE_INFINITY,\n best;\n\n for (let i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {\n sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2);\n\n layering = util.buildLayerMatrix(g);\n let cc = crossCount(g, layering);\n if (cc < bestCC) {\n lastBest = 0;\n best = Object.assign({}, layering);\n bestCC = cc;\n }\n }\n\n assignOrder(g, best);\n}\n\nfunction buildLayerGraphs(g, ranks, relationship) {\n // Build an index mapping from rank to the nodes with that rank.\n // This helps to avoid a quadratic search for all nodes with the same rank as\n // the current node.\n const nodesByRank = new Map();\n const addNodeToRank = (rank, node) => {\n if (!nodesByRank.has(rank)) {\n nodesByRank.set(rank, []);\n }\n nodesByRank.get(rank).push(node);\n };\n\n // Visit the nodes in their original order in the graph, and add each\n // node to the ranks(s) that it belongs to.\n for (const v of g.nodes()) {\n const node = g.node(v);\n if (typeof node.rank === \"number\") {\n addNodeToRank(node.rank, v);\n }\n // If there is a range of ranks, add it to each, but skip the `node.rank` which\n // has already had the node added.\n if (typeof node.minRank === \"number\" && typeof node.maxRank === \"number\") {\n for (let r = node.minRank; r <= node.maxRank; r++) {\n if (r !== node.rank) {\n // Don't add this node to its `node.rank` twice.\n addNodeToRank(r, v);\n }\n }\n }\n }\n\n return ranks.map(function (rank) {\n return buildLayerGraph(g, rank, relationship, nodesByRank.get(rank) || []);\n });\n}\n\nfunction sweepLayerGraphs(layerGraphs, biasRight) {\n let cg = new Graph();\n layerGraphs.forEach(function(lg) {\n let root = lg.graph().root;\n let sorted = sortSubgraph(lg, root, cg, biasRight);\n sorted.vs.forEach((v, i) => lg.node(v).order = i);\n addSubgraphConstraints(lg, cg, sorted.vs);\n });\n}\n\nfunction assignOrder(g, layering) {\n Object.values(layering).forEach(layer => layer.forEach((v, i) => g.node(v).order = i));\n}\n","\"use strict\";\n\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\nlet util = require(\"../util\");\n\n/*\n * This module provides coordinate assignment based on Brandes and Köpf, \"Fast\n * and Simple Horizontal Coordinate Assignment.\"\n */\n\nmodule.exports = {\n positionX: positionX,\n findType1Conflicts: findType1Conflicts,\n findType2Conflicts: findType2Conflicts,\n addConflict: addConflict,\n hasConflict: hasConflict,\n verticalAlignment: verticalAlignment,\n horizontalCompaction: horizontalCompaction,\n alignCoordinates: alignCoordinates,\n findSmallestWidthAlignment: findSmallestWidthAlignment,\n balance: balance\n};\n\n/*\n * Marks all edges in the graph with a type-1 conflict with the \"type1Conflict\"\n * property. A type-1 conflict is one where a non-inner segment crosses an\n * inner segment. An inner segment is an edge with both incident nodes marked\n * with the \"dummy\" property.\n *\n * This algorithm scans layer by layer, starting with the second, for type-1\n * conflicts between the current layer and the previous layer. For each layer\n * it scans the nodes from left to right until it reaches one that is incident\n * on an inner segment. It then scans predecessors to determine if they have\n * edges that cross that inner segment. At the end a final scan is done for all\n * nodes on the current rank to see if they cross the last visited inner\n * segment.\n *\n * This algorithm (safely) assumes that a dummy node will only be incident on a\n * single node in the layers being scanned.\n */\nfunction findType1Conflicts(g, layering) {\n let conflicts = {};\n\n function visitLayer(prevLayer, layer) {\n let\n // last visited node in the previous layer that is incident on an inner\n // segment.\n k0 = 0,\n // Tracks the last node in this layer scanned for crossings with a type-1\n // segment.\n scanPos = 0,\n prevLayerLength = prevLayer.length,\n lastNode = layer[layer.length - 1];\n\n layer.forEach((v, i) => {\n let w = findOtherInnerSegmentNode(g, v),\n k1 = w ? g.node(w).order : prevLayerLength;\n\n if (w || v === lastNode) {\n layer.slice(scanPos, i+1).forEach(scanNode => {\n g.predecessors(scanNode).forEach(u => {\n let uLabel = g.node(u),\n uPos = uLabel.order;\n if ((uPos < k0 || k1 < uPos) &&\n !(uLabel.dummy && g.node(scanNode).dummy)) {\n addConflict(conflicts, u, scanNode);\n }\n });\n });\n scanPos = i + 1;\n k0 = k1;\n }\n });\n\n return layer;\n }\n\n layering.length && layering.reduce(visitLayer);\n\n return conflicts;\n}\n\nfunction findType2Conflicts(g, layering) {\n let conflicts = {};\n\n function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {\n let v;\n util.range(southPos, southEnd).forEach(i => {\n v = south[i];\n if (g.node(v).dummy) {\n g.predecessors(v).forEach(u => {\n let uNode = g.node(u);\n if (uNode.dummy &&\n (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {\n addConflict(conflicts, u, v);\n }\n });\n }\n });\n }\n\n\n function visitLayer(north, south) {\n let prevNorthPos = -1,\n nextNorthPos,\n southPos = 0;\n\n south.forEach((v, southLookahead) => {\n if (g.node(v).dummy === \"border\") {\n let predecessors = g.predecessors(v);\n if (predecessors.length) {\n nextNorthPos = g.node(predecessors[0]).order;\n scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);\n southPos = southLookahead;\n prevNorthPos = nextNorthPos;\n }\n }\n scan(south, southPos, south.length, nextNorthPos, north.length);\n });\n\n return south;\n }\n\n layering.length && layering.reduce(visitLayer);\n\n return conflicts;\n}\n\nfunction findOtherInnerSegmentNode(g, v) {\n if (g.node(v).dummy) {\n return g.predecessors(v).find(u => g.node(u).dummy);\n }\n}\n\nfunction addConflict(conflicts, v, w) {\n if (v > w) {\n let tmp = v;\n v = w;\n w = tmp;\n }\n\n let conflictsV = conflicts[v];\n if (!conflictsV) {\n conflicts[v] = conflictsV = {};\n }\n conflictsV[w] = true;\n}\n\nfunction hasConflict(conflicts, v, w) {\n if (v > w) {\n let tmp = v;\n v = w;\n w = tmp;\n }\n return !!conflicts[v] && Object.hasOwn(conflicts[v], w);\n}\n\n/*\n * Try to align nodes into vertical \"blocks\" where possible. This algorithm\n * attempts to align a node with one of its median neighbors. If the edge\n * connecting a neighbor is a type-1 conflict then we ignore that possibility.\n * If a previous node has already formed a block with a node after the node\n * we're trying to form a block with, we also ignore that possibility - our\n * blocks would be split in that scenario.\n */\nfunction verticalAlignment(g, layering, conflicts, neighborFn) {\n let root = {},\n align = {},\n pos = {};\n\n // We cache the position here based on the layering because the graph and\n // layering may be out of sync. The layering matrix is manipulated to\n // generate different extreme alignments.\n layering.forEach(layer => {\n layer.forEach((v, order) => {\n root[v] = v;\n align[v] = v;\n pos[v] = order;\n });\n });\n\n layering.forEach(layer => {\n let prevIdx = -1;\n layer.forEach(v => {\n let ws = neighborFn(v);\n if (ws.length) {\n ws = ws.sort((a, b) => pos[a] - pos[b]);\n let mp = (ws.length - 1) / 2;\n for (let i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {\n let w = ws[i];\n if (align[v] === v &&\n prevIdx < pos[w] &&\n !hasConflict(conflicts, v, w)) {\n align[w] = v;\n align[v] = root[v] = root[w];\n prevIdx = pos[w];\n }\n }\n }\n });\n });\n\n return { root: root, align: align };\n}\n\nfunction horizontalCompaction(g, layering, root, align, reverseSep) {\n // This portion of the algorithm differs from BK due to a number of problems.\n // Instead of their algorithm we construct a new block graph and do two\n // sweeps. The first sweep places blocks with the smallest possible\n // coordinates. The second sweep removes unused space by moving blocks to the\n // greatest coordinates without violating separation.\n let xs = {},\n blockG = buildBlockGraph(g, layering, root, reverseSep),\n borderType = reverseSep ? \"borderLeft\" : \"borderRight\";\n\n function iterate(setXsFunc, nextNodesFunc) {\n let stack = blockG.nodes();\n let elem = stack.pop();\n let visited = {};\n while (elem) {\n if (visited[elem]) {\n setXsFunc(elem);\n } else {\n visited[elem] = true;\n stack.push(elem);\n stack = stack.concat(nextNodesFunc(elem));\n }\n\n elem = stack.pop();\n }\n }\n\n // First pass, assign smallest coordinates\n function pass1(elem) {\n xs[elem] = blockG.inEdges(elem).reduce((acc, e) => {\n return Math.max(acc, xs[e.v] + blockG.edge(e));\n }, 0);\n }\n\n // Second pass, assign greatest coordinates\n function pass2(elem) {\n let min = blockG.outEdges(elem).reduce((acc, e) => {\n return Math.min(acc, xs[e.w] - blockG.edge(e));\n }, Number.POSITIVE_INFINITY);\n\n let node = g.node(elem);\n if (min !== Number.POSITIVE_INFINITY && node.borderType !== borderType) {\n xs[elem] = Math.max(xs[elem], min);\n }\n }\n\n iterate(pass1, blockG.predecessors.bind(blockG));\n iterate(pass2, blockG.successors.bind(blockG));\n\n // Assign x coordinates to all nodes\n Object.keys(align).forEach(v => xs[v] = xs[root[v]]);\n\n return xs;\n}\n\n\nfunction buildBlockGraph(g, layering, root, reverseSep) {\n let blockGraph = new Graph(),\n graphLabel = g.graph(),\n sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);\n\n layering.forEach(layer => {\n let u;\n layer.forEach(v => {\n let vRoot = root[v];\n blockGraph.setNode(vRoot);\n if (u) {\n var uRoot = root[u],\n prevMax = blockGraph.edge(uRoot, vRoot);\n blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u), prevMax || 0));\n }\n u = v;\n });\n });\n\n return blockGraph;\n}\n\n/*\n * Returns the alignment that has the smallest width of the given alignments.\n */\nfunction findSmallestWidthAlignment(g, xss) {\n return Object.values(xss).reduce((currentMinAndXs, xs) => {\n let max = Number.NEGATIVE_INFINITY;\n let min = Number.POSITIVE_INFINITY;\n\n Object.entries(xs).forEach(([v, x]) => {\n let halfWidth = width(g, v) / 2;\n\n max = Math.max(x + halfWidth, max);\n min = Math.min(x - halfWidth, min);\n });\n\n const newMin = max - min;\n if (newMin < currentMinAndXs[0]) {\n currentMinAndXs = [newMin, xs];\n }\n return currentMinAndXs;\n }, [Number.POSITIVE_INFINITY, null])[1];\n}\n\n/*\n * Align the coordinates of each of the layout alignments such that\n * left-biased alignments have their minimum coordinate at the same point as\n * the minimum coordinate of the smallest width alignment and right-biased\n * alignments have their maximum coordinate at the same point as the maximum\n * coordinate of the smallest width alignment.\n */\nfunction alignCoordinates(xss, alignTo) {\n let alignToVals = Object.values(alignTo),\n alignToMin = util.applyWithChunking(Math.min, alignToVals),\n alignToMax = util.applyWithChunking(Math.max, alignToVals);\n\n [\"u\", \"d\"].forEach(vert => {\n [\"l\", \"r\"].forEach(horiz => {\n let alignment = vert + horiz,\n xs = xss[alignment];\n\n if (xs === alignTo) return;\n\n let xsVals = Object.values(xs);\n let delta = alignToMin - util.applyWithChunking(Math.min, xsVals);\n if (horiz !== \"l\") {\n delta = alignToMax - util.applyWithChunking(Math.max,xsVals);\n }\n\n if (delta) {\n xss[alignment] = util.mapValues(xs, x => x + delta);\n }\n });\n });\n}\n\nfunction balance(xss, align) {\n return util.mapValues(xss.ul, (num, v) => {\n if (align) {\n return xss[align.toLowerCase()][v];\n } else {\n let xs = Object.values(xss).map(xs => xs[v]).sort((a, b) => a - b);\n return (xs[1] + xs[2]) / 2;\n }\n });\n}\n\nfunction positionX(g) {\n let layering = util.buildLayerMatrix(g);\n let conflicts = Object.assign(\n findType1Conflicts(g, layering),\n findType2Conflicts(g, layering));\n\n let xss = {};\n let adjustedLayering;\n [\"u\", \"d\"].forEach(vert => {\n adjustedLayering = vert === \"u\" ? layering : Object.values(layering).reverse();\n [\"l\", \"r\"].forEach(horiz => {\n if (horiz === \"r\") {\n adjustedLayering = adjustedLayering.map(inner => {\n return Object.values(inner).reverse();\n });\n }\n\n let neighborFn = (vert === \"u\" ? g.predecessors : g.successors).bind(g);\n let align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);\n let xs = horizontalCompaction(g, adjustedLayering,\n align.root, align.align, horiz === \"r\");\n if (horiz === \"r\") {\n xs = util.mapValues(xs, x => -x);\n }\n xss[vert + horiz] = xs;\n });\n });\n\n\n let smallestWidth = findSmallestWidthAlignment(g, xss);\n alignCoordinates(xss, smallestWidth);\n return balance(xss, g.graph().align);\n}\n\nfunction sep(nodeSep, edgeSep, reverseSep) {\n return (g, v, w) => {\n let vLabel = g.node(v);\n let wLabel = g.node(w);\n let sum = 0;\n let delta;\n\n sum += vLabel.width / 2;\n if (Object.hasOwn(vLabel, \"labelpos\")) {\n switch (vLabel.labelpos.toLowerCase()) {\n case \"l\": delta = -vLabel.width / 2; break;\n case \"r\": delta = vLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;\n sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;\n\n sum += wLabel.width / 2;\n if (Object.hasOwn(wLabel, \"labelpos\")) {\n switch (wLabel.labelpos.toLowerCase()) {\n case \"l\": delta = wLabel.width / 2; break;\n case \"r\": delta = -wLabel.width / 2; break;\n }\n }\n if (delta) {\n sum += reverseSep ? delta : -delta;\n }\n delta = 0;\n\n return sum;\n };\n}\n\nfunction width(g, v) {\n return g.node(v).width;\n}\n","\"use strict\";\n\nlet util = require(\"../util\");\nlet positionX = require(\"./bk\").positionX;\n\nmodule.exports = position;\n\nfunction position(g) {\n g = util.asNonCompoundGraph(g);\n\n positionY(g);\n Object.entries(positionX(g)).forEach(([v, x]) => g.node(v).x = x);\n}\n\nfunction positionY(g) {\n let layering = util.buildLayerMatrix(g);\n let rankSep = g.graph().ranksep;\n let prevY = 0;\n layering.forEach(layer => {\n const maxHeight = layer.reduce((acc, v) => {\n const height = g.node(v).height;\n if (acc > height) {\n return acc;\n } else {\n return height;\n }\n }, 0);\n layer.forEach(v => g.node(v).y = prevY + maxHeight / 2);\n prevY += maxHeight + rankSep;\n });\n}\n\n","\"use strict\";\n\nlet acyclic = require(\"./acyclic\");\nlet normalize = require(\"./normalize\");\nlet rank = require(\"./rank\");\nlet normalizeRanks = require(\"./util\").normalizeRanks;\nlet parentDummyChains = require(\"./parent-dummy-chains\");\nlet removeEmptyRanks = require(\"./util\").removeEmptyRanks;\nlet nestingGraph = require(\"./nesting-graph\");\nlet addBorderSegments = require(\"./add-border-segments\");\nlet coordinateSystem = require(\"./coordinate-system\");\nlet order = require(\"./order\");\nlet position = require(\"./position\");\nlet util = require(\"./util\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = layout;\n\nfunction layout(g, opts) {\n let time = opts && opts.debugTiming ? util.time : util.notime;\n time(\"layout\", () => {\n let layoutGraph =\n time(\" buildLayoutGraph\", () => buildLayoutGraph(g));\n time(\" runLayout\", () => runLayout(layoutGraph, time, opts));\n time(\" updateInputGraph\", () => updateInputGraph(g, layoutGraph));\n });\n}\n\nfunction runLayout(g, time, opts) {\n time(\" makeSpaceForEdgeLabels\", () => makeSpaceForEdgeLabels(g));\n time(\" removeSelfEdges\", () => removeSelfEdges(g));\n time(\" acyclic\", () => acyclic.run(g));\n time(\" nestingGraph.run\", () => nestingGraph.run(g));\n time(\" rank\", () => rank(util.asNonCompoundGraph(g)));\n time(\" injectEdgeLabelProxies\", () => injectEdgeLabelProxies(g));\n time(\" removeEmptyRanks\", () => removeEmptyRanks(g));\n time(\" nestingGraph.cleanup\", () => nestingGraph.cleanup(g));\n time(\" normalizeRanks\", () => normalizeRanks(g));\n time(\" assignRankMinMax\", () => assignRankMinMax(g));\n time(\" removeEdgeLabelProxies\", () => removeEdgeLabelProxies(g));\n time(\" normalize.run\", () => normalize.run(g));\n time(\" parentDummyChains\", () => parentDummyChains(g));\n time(\" addBorderSegments\", () => addBorderSegments(g));\n time(\" order\", () => order(g, opts));\n time(\" insertSelfEdges\", () => insertSelfEdges(g));\n time(\" adjustCoordinateSystem\", () => coordinateSystem.adjust(g));\n time(\" position\", () => position(g));\n time(\" positionSelfEdges\", () => positionSelfEdges(g));\n time(\" removeBorderNodes\", () => removeBorderNodes(g));\n time(\" normalize.undo\", () => normalize.undo(g));\n time(\" fixupEdgeLabelCoords\", () => fixupEdgeLabelCoords(g));\n time(\" undoCoordinateSystem\", () => coordinateSystem.undo(g));\n time(\" translateGraph\", () => translateGraph(g));\n time(\" assignNodeIntersects\", () => assignNodeIntersects(g));\n time(\" reversePoints\", () => reversePointsForReversedEdges(g));\n time(\" acyclic.undo\", () => acyclic.undo(g));\n}\n\n/*\n * Copies final layout information from the layout graph back to the input\n * graph. This process only copies whitelisted attributes from the layout graph\n * to the input graph, so it serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction updateInputGraph(inputGraph, layoutGraph) {\n inputGraph.nodes().forEach(v => {\n let inputLabel = inputGraph.node(v);\n let layoutLabel = layoutGraph.node(v);\n\n if (inputLabel) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n inputLabel.rank = layoutLabel.rank;\n\n if (layoutGraph.children(v).length) {\n inputLabel.width = layoutLabel.width;\n inputLabel.height = layoutLabel.height;\n }\n }\n });\n\n inputGraph.edges().forEach(e => {\n let inputLabel = inputGraph.edge(e);\n let layoutLabel = layoutGraph.edge(e);\n\n inputLabel.points = layoutLabel.points;\n if (Object.hasOwn(layoutLabel, \"x\")) {\n inputLabel.x = layoutLabel.x;\n inputLabel.y = layoutLabel.y;\n }\n });\n\n inputGraph.graph().width = layoutGraph.graph().width;\n inputGraph.graph().height = layoutGraph.graph().height;\n}\n\nlet graphNumAttrs = [\"nodesep\", \"edgesep\", \"ranksep\", \"marginx\", \"marginy\"];\nlet graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: \"tb\" };\nlet graphAttrs = [\"acyclicer\", \"ranker\", \"rankdir\", \"align\"];\nlet nodeNumAttrs = [\"width\", \"height\", \"rank\"];\nlet nodeDefaults = { width: 0, height: 0 };\nlet edgeNumAttrs = [\"minlen\", \"weight\", \"width\", \"height\", \"labeloffset\"];\nlet edgeDefaults = {\n minlen: 1, weight: 1, width: 0, height: 0,\n labeloffset: 10, labelpos: \"r\"\n};\nlet edgeAttrs = [\"labelpos\"];\n\n/*\n * Constructs a new graph from the input graph, which can be used for layout.\n * This process copies only whitelisted attributes from the input graph to the\n * layout graph. Thus this function serves as a good place to determine what\n * attributes can influence layout.\n */\nfunction buildLayoutGraph(inputGraph) {\n let g = new Graph({ multigraph: true, compound: true });\n let graph = canonicalize(inputGraph.graph());\n\n g.setGraph(Object.assign({},\n graphDefaults,\n selectNumberAttrs(graph, graphNumAttrs),\n util.pick(graph, graphAttrs)));\n\n inputGraph.nodes().forEach(v => {\n let node = canonicalize(inputGraph.node(v));\n const newNode = selectNumberAttrs(node, nodeNumAttrs);\n Object.keys(nodeDefaults).forEach(k => {\n if (newNode[k] === undefined) {\n newNode[k] = nodeDefaults[k];\n }\n });\n\n g.setNode(v, newNode);\n g.setParent(v, inputGraph.parent(v));\n });\n\n inputGraph.edges().forEach(e => {\n let edge = canonicalize(inputGraph.edge(e));\n g.setEdge(e, Object.assign({},\n edgeDefaults,\n selectNumberAttrs(edge, edgeNumAttrs),\n util.pick(edge, edgeAttrs)));\n });\n\n return g;\n}\n\n/*\n * This idea comes from the Gansner paper: to account for edge labels in our\n * layout we split each rank in half by doubling minlen and halving ranksep.\n * Then we can place labels at these mid-points between nodes.\n *\n * We also add some minimal padding to the width to push the label for the edge\n * away from the edge itself a bit.\n */\nfunction makeSpaceForEdgeLabels(g) {\n let graph = g.graph();\n graph.ranksep /= 2;\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.minlen *= 2;\n if (edge.labelpos.toLowerCase() !== \"c\") {\n if (graph.rankdir === \"TB\" || graph.rankdir === \"BT\") {\n edge.width += edge.labeloffset;\n } else {\n edge.height += edge.labeloffset;\n }\n }\n });\n}\n\n/*\n * Creates temporary dummy nodes that capture the rank in which each edge's\n * label is going to, if it has one of non-zero width and height. We do this\n * so that we can safely remove empty ranks while preserving balance for the\n * label's position.\n */\nfunction injectEdgeLabelProxies(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (edge.width && edge.height) {\n let v = g.node(e.v);\n let w = g.node(e.w);\n let label = { rank: (w.rank - v.rank) / 2 + v.rank, e: e };\n util.addDummyNode(g, \"edge-proxy\", label, \"_ep\");\n }\n });\n}\n\nfunction assignRankMinMax(g) {\n let maxRank = 0;\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (node.borderTop) {\n node.minRank = g.node(node.borderTop).rank;\n node.maxRank = g.node(node.borderBottom).rank;\n maxRank = Math.max(maxRank, node.maxRank);\n }\n });\n g.graph().maxRank = maxRank;\n}\n\nfunction removeEdgeLabelProxies(g) {\n g.nodes().forEach(v => {\n let node = g.node(v);\n if (node.dummy === \"edge-proxy\") {\n g.edge(node.e).labelRank = node.rank;\n g.removeNode(v);\n }\n });\n}\n\nfunction translateGraph(g) {\n let minX = Number.POSITIVE_INFINITY;\n let maxX = 0;\n let minY = Number.POSITIVE_INFINITY;\n let maxY = 0;\n let graphLabel = g.graph();\n let marginX = graphLabel.marginx || 0;\n let marginY = graphLabel.marginy || 0;\n\n function getExtremes(attrs) {\n let x = attrs.x;\n let y = attrs.y;\n let w = attrs.width;\n let h = attrs.height;\n minX = Math.min(minX, x - w / 2);\n maxX = Math.max(maxX, x + w / 2);\n minY = Math.min(minY, y - h / 2);\n maxY = Math.max(maxY, y + h / 2);\n }\n\n g.nodes().forEach(v => getExtremes(g.node(v)));\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (Object.hasOwn(edge, \"x\")) {\n getExtremes(edge);\n }\n });\n\n minX -= marginX;\n minY -= marginY;\n\n g.nodes().forEach(v => {\n let node = g.node(v);\n node.x -= minX;\n node.y -= minY;\n });\n\n g.edges().forEach(e => {\n let edge = g.edge(e);\n edge.points.forEach(p => {\n p.x -= minX;\n p.y -= minY;\n });\n if (Object.hasOwn(edge, \"x\")) { edge.x -= minX; }\n if (Object.hasOwn(edge, \"y\")) { edge.y -= minY; }\n });\n\n graphLabel.width = maxX - minX + marginX;\n graphLabel.height = maxY - minY + marginY;\n}\n\nfunction assignNodeIntersects(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n let nodeV = g.node(e.v);\n let nodeW = g.node(e.w);\n let p1, p2;\n if (!edge.points) {\n edge.points = [];\n p1 = nodeW;\n p2 = nodeV;\n } else {\n p1 = edge.points[0];\n p2 = edge.points[edge.points.length - 1];\n }\n edge.points.unshift(util.intersectRect(nodeV, p1));\n edge.points.push(util.intersectRect(nodeW, p2));\n });\n}\n\nfunction fixupEdgeLabelCoords(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (Object.hasOwn(edge, \"x\")) {\n if (edge.labelpos === \"l\" || edge.labelpos === \"r\") {\n edge.width -= edge.labeloffset;\n }\n switch (edge.labelpos) {\n case \"l\": edge.x -= edge.width / 2 + edge.labeloffset; break;\n case \"r\": edge.x += edge.width / 2 + edge.labeloffset; break;\n }\n }\n });\n}\n\nfunction reversePointsForReversedEdges(g) {\n g.edges().forEach(e => {\n let edge = g.edge(e);\n if (edge.reversed) {\n edge.points.reverse();\n }\n });\n}\n\nfunction removeBorderNodes(g) {\n g.nodes().forEach(v => {\n if (g.children(v).length) {\n let node = g.node(v);\n let t = g.node(node.borderTop);\n let b = g.node(node.borderBottom);\n let l = g.node(node.borderLeft[node.borderLeft.length - 1]);\n let r = g.node(node.borderRight[node.borderRight.length - 1]);\n\n node.width = Math.abs(r.x - l.x);\n node.height = Math.abs(b.y - t.y);\n node.x = l.x + node.width / 2;\n node.y = t.y + node.height / 2;\n }\n });\n\n g.nodes().forEach(v => {\n if (g.node(v).dummy === \"border\") {\n g.removeNode(v);\n }\n });\n}\n\nfunction removeSelfEdges(g) {\n g.edges().forEach(e => {\n if (e.v === e.w) {\n var node = g.node(e.v);\n if (!node.selfEdges) {\n node.selfEdges = [];\n }\n node.selfEdges.push({ e: e, label: g.edge(e) });\n g.removeEdge(e);\n }\n });\n}\n\nfunction insertSelfEdges(g) {\n var layers = util.buildLayerMatrix(g);\n layers.forEach(layer => {\n var orderShift = 0;\n layer.forEach((v, i) => {\n var node = g.node(v);\n node.order = i + orderShift;\n (node.selfEdges || []).forEach(selfEdge => {\n util.addDummyNode(g, \"selfedge\", {\n width: selfEdge.label.width,\n height: selfEdge.label.height,\n rank: node.rank,\n order: i + (++orderShift),\n e: selfEdge.e,\n label: selfEdge.label\n }, \"_se\");\n });\n delete node.selfEdges;\n });\n });\n}\n\nfunction positionSelfEdges(g) {\n g.nodes().forEach(v => {\n var node = g.node(v);\n if (node.dummy === \"selfedge\") {\n var selfNode = g.node(node.e.v);\n var x = selfNode.x + selfNode.width / 2;\n var y = selfNode.y;\n var dx = node.x - x;\n var dy = selfNode.height / 2;\n g.setEdge(node.e, node.label);\n g.removeNode(v);\n node.label.points = [\n { x: x + 2 * dx / 3, y: y - dy },\n { x: x + 5 * dx / 6, y: y - dy },\n { x: x + dx , y: y },\n { x: x + 5 * dx / 6, y: y + dy },\n { x: x + 2 * dx / 3, y: y + dy }\n ];\n node.label.x = node.x;\n node.label.y = node.y;\n }\n });\n}\n\nfunction selectNumberAttrs(obj, attrs) {\n return util.mapValues(util.pick(obj, attrs), Number);\n}\n\nfunction canonicalize(attrs) {\n var newAttrs = {};\n if (attrs) {\n Object.entries(attrs).forEach(([k, v]) => {\n if (typeof k === \"string\") {\n k = k.toLowerCase();\n }\n\n newAttrs[k] = v;\n });\n }\n return newAttrs;\n}\n","let util = require(\"./util\");\nlet Graph = require(\"@dagrejs/graphlib\").Graph;\n\nmodule.exports = {\n debugOrdering: debugOrdering\n};\n\n/* istanbul ignore next */\nfunction debugOrdering(g) {\n let layerMatrix = util.buildLayerMatrix(g);\n\n let h = new Graph({ compound: true, multigraph: true }).setGraph({});\n\n g.nodes().forEach(v => {\n h.setNode(v, { label: v });\n h.setParent(v, \"layer\" + g.node(v).rank);\n });\n\n g.edges().forEach(e => h.setEdge(e.v, e.w, {}, e.name));\n\n layerMatrix.forEach((layer, i) => {\n let layerV = \"layer\" + i;\n h.setNode(layerV, { rank: \"same\" });\n layer.reduce((u, v) => {\n h.setEdge(u, v, { style: \"invis\" });\n return v;\n });\n });\n\n return h;\n}\n","module.exports = \"1.1.8\";\n","/*\nCopyright (c) 2012-2014 Chris Pettitt\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n*/\n\nmodule.exports = {\n graphlib: require(\"@dagrejs/graphlib\"),\n\n layout: require(\"./lib/layout\"),\n debug: require(\"./lib/debug\"),\n util: {\n time: require(\"./lib/util\").time,\n notime: require(\"./lib/util\").notime\n },\n version: require(\"./lib/version\")\n};\n","import dagre from \"@dagrejs/dagre\";\nimport { DefaultEdge, Node, Position, useVueFlow } from \"@vue-flow/core\";\nimport { ref } from \"vue\";\n\nexport function useLayout() {\n const { findNode } = useVueFlow();\n\n const graph = ref(new dagre.graphlib.Graph());\n\n function layout(nodes: Node[], edges: DefaultEdge[]) {\n // we create a new graph instance, in case some nodes/edges were removed, otherwise dagre would act as if they were still there\n const dagreGraph = new dagre.graphlib.Graph();\n\n graph.value = dagreGraph;\n\n dagreGraph.setDefaultEdgeLabel(() => ({}));\n\n const isHorizontal = false;\n dagreGraph.setGraph({ rankdir: \"TB\" });\n\n for (const node of nodes) {\n const graphNode = findNode(node.id);\n if (graphNode === undefined) continue;\n\n dagreGraph.setNode(node.id, { width: graphNode.dimensions.width || 250, height: graphNode.dimensions.height || 55 });\n }\n\n for (const edge of edges) {\n dagreGraph.setEdge(edge.source, edge.target);\n }\n\n dagre.layout(dagreGraph);\n\n // set nodes with updated positions\n return nodes.map((node) => {\n const nodeWithPosition = dagreGraph.node(node.id);\n\n return {\n ...node,\n targetPosition: isHorizontal ? Position.Left : Position.Top,\n sourcePosition: isHorizontal ? Position.Right : Position.Bottom,\n position: { x: nodeWithPosition.x, y: nodeWithPosition.y },\n };\n });\n }\n\n return { graph, layout };\n}\n","\n\n\n\n\n\n\n","import EndpointDetails from \"../EndpointDetails\";\nimport { NServiceBusHeaders } from \"../Header\";\nimport Message, { MessageIntent, MessageStatus } from \"../Message\";\nimport { Handler } from \"./Handler\";\nimport { friendlyTypeName } from \"./SequenceModel\";\n\nexport interface RoutedMessage {\n id: string;\n name: string;\n readonly selectedMessage: Message;\n fromHandler?: Handler;\n toHandler?: Handler;\n route?: MessageProcessingRoute;\n direction: Direction;\n type: RoutedMessageType;\n readonly receiving: EndpointDetails;\n readonly sending: EndpointDetails;\n readonly sentTime: Date | undefined;\n readonly messageId: string;\n readonly status: MessageStatus;\n}\n\nexport interface MessageProcessingRoute {\n readonly name?: string;\n readonly fromRoutedMessage?: RoutedMessage;\n readonly processingHandler?: Handler;\n uiRef?: SVGElement;\n}\n\nexport enum Direction {\n Left,\n Right,\n}\n\nexport enum RoutedMessageType {\n Event,\n Command,\n Local,\n Timeout,\n}\n\nexport function createRoute(routedMessage: RoutedMessage, processingHandler: Handler): MessageProcessingRoute {\n return new MessageProcessingRouteItem(routedMessage, processingHandler);\n}\n\nexport function createRoutedMessage(message: Message): RoutedMessage {\n const routedMessage = new RoutedMessageItem(message);\n\n if (message.message_intent === MessageIntent.Publish) routedMessage.type = RoutedMessageType.Event;\n else {\n const isTimeoutString = message.headers.find((h) => h.key === NServiceBusHeaders.IsSagaTimeoutMessage)?.value?.toLowerCase();\n const isTimeout = (isTimeoutString ?? \"\") === \"true\";\n if (isTimeout) routedMessage.type = RoutedMessageType.Timeout;\n else if (message.receiving_endpoint.host_id === message.sending_endpoint.host_id && message.receiving_endpoint.name === message.sending_endpoint.name) routedMessage.type = RoutedMessageType.Local;\n else routedMessage.type = RoutedMessageType.Command;\n }\n\n return routedMessage;\n}\n\nclass MessageProcessingRouteItem implements MessageProcessingRoute {\n readonly name?: string;\n private _fromRoutedMessage?: RoutedMessageItem;\n readonly processingHandler?: Handler;\n uiRef?: SVGElement;\n\n constructor(routedMessage?: RoutedMessageItem, processingHandler?: Handler) {\n this._fromRoutedMessage = routedMessage;\n this.processingHandler = processingHandler;\n\n if (routedMessage && this.processingHandler) {\n this.name = `${processingHandler?.name}(${routedMessage.id})`;\n }\n\n if (routedMessage) routedMessage.route = this;\n if (processingHandler) processingHandler.route = this;\n }\n\n get fromRoutedMessage() {\n return this._fromRoutedMessage as RoutedMessage | undefined;\n }\n}\n\nclass RoutedMessageItem implements RoutedMessage {\n readonly selectedMessage: Message;\n readonly name: string;\n fromHandler?: Handler;\n toHandler?: Handler;\n route?: MessageProcessingRoute;\n direction = Direction.Left;\n type = RoutedMessageType.Command;\n\n constructor(message: Message) {\n this.selectedMessage = message;\n this.name = friendlyTypeName(message.message_type) ?? \"\";\n }\n\n get id() {\n return this.selectedMessage.id;\n }\n\n get receiving() {\n return this.selectedMessage.receiving_endpoint;\n }\n get sending() {\n return this.selectedMessage.sending_endpoint;\n }\n get sentTime() {\n return this.selectedMessage.time_sent ? new Date(this.selectedMessage.time_sent) : undefined;\n }\n get messageId() {\n return this.selectedMessage.message_id;\n }\n get status() {\n return this.selectedMessage.status;\n }\n}\n","import { NServiceBusHeaders } from \"../Header\";\nimport Message from \"../Message\";\nimport { Handler } from \"./Handler\";\n\nexport interface Endpoint {\n readonly name: string;\n readonly hosts: EndpointHost[];\n readonly hostId: string;\n readonly handlers: Handler[];\n readonly host: string;\n readonly version: string;\n uiRef?: Element;\n addHandler(handler: Handler): void;\n}\n\nexport interface EndpointHost {\n readonly host: string;\n readonly hostId: string;\n readonly versions: string[];\n}\n\nexport function createProcessingEndpoint(message: Message): Endpoint {\n return new EndpointItem(\n message.receiving_endpoint.name,\n message.receiving_endpoint.host,\n message.receiving_endpoint.host_id,\n message.receiving_endpoint.name === message.sending_endpoint.name && message.receiving_endpoint.host === message.sending_endpoint.host ? message.headers.find((h) => h.key === NServiceBusHeaders.NServiceBusVersion)?.value : undefined\n );\n}\n\nexport function createSendingEndpoint(message: Message): Endpoint {\n return new EndpointItem(message.sending_endpoint.name, message.sending_endpoint.host, message.sending_endpoint.host_id, message.headers.find((h) => h.key === NServiceBusHeaders.NServiceBusVersion)?.value);\n}\n\nexport class EndpointRegistry {\n #store = new Map();\n\n register(item: Endpoint) {\n let endpoint = this.#store.get(item.name);\n if (!endpoint) {\n endpoint = item as EndpointItem;\n this.#store.set(endpoint.name, endpoint);\n }\n\n item.hosts.forEach((host) => endpoint.addHost(host as Host));\n }\n\n get(item: Endpoint) {\n return this.#store.get(item.name)! as Endpoint;\n }\n}\n\nclass EndpointItem implements Endpoint {\n private _hosts: Map;\n private _name: string;\n private _handlers: Handler[] = [];\n uiRef?: SVGElement;\n\n constructor(name: string, host: string, id: string, version?: string) {\n const initialHost = new Host(host, id, version);\n this._hosts = new Map([[initialHost.equatableKey, initialHost]]);\n this._name = name;\n }\n\n get name() {\n return this._name;\n }\n get hosts() {\n return [...this._hosts].map(([, host]) => host);\n }\n get host() {\n return [...this._hosts].map(([, host]) => host.host).join(\",\");\n }\n get hostId() {\n return [...this._hosts].map(([, host]) => host.hostId).join(\",\");\n }\n get handlers() {\n return [...this._handlers];\n }\n get version() {\n return [...this._hosts].flatMap(([, host]) => host.versions).join(\",\");\n }\n\n addHost(host: Host) {\n if (!this._hosts.has(host.equatableKey)) {\n this._hosts.set(host.equatableKey, host);\n } else {\n const existing = this._hosts.get(host.equatableKey)!;\n existing.addVersions(host.versions);\n }\n }\n\n addHandler(handler: Handler) {\n this._handlers.push(handler);\n }\n}\n\nclass Host implements EndpointHost {\n private _host: string;\n private _hostId: string;\n private _versions: Set;\n\n constructor(host: string, hostId: string, version?: string) {\n this._host = host;\n this._hostId = hostId;\n this._versions = new Set();\n this.addVersions([version]);\n }\n\n get host() {\n return this._host;\n }\n get hostId() {\n return this._hostId;\n }\n\n get versions() {\n return [...this._versions];\n }\n\n get equatableKey() {\n return `${this._hostId}###${this._host}`;\n }\n\n addVersions(versions: (string | undefined)[]) {\n versions.filter((version) => version).forEach((version) => this._versions.add(version!.toLowerCase()));\n }\n}\n","import { NServiceBusHeaders } from \"../Header\";\nimport Message, { MessageStatus } from \"../Message\";\nimport { Direction, MessageProcessingRoute, RoutedMessage } from \"./RoutedMessage\";\nimport { Endpoint } from \"./Endpoint\";\nimport { friendlyTypeName } from \"./SequenceModel\";\n\nexport interface Handler {\n readonly id: string;\n name?: string;\n friendlyName?: string;\n readonly endpoint: Endpoint;\n readonly isPartOfSaga: boolean;\n partOfSaga?: string;\n state: HandlerState;\n inMessage?: RoutedMessage;\n readonly outMessages: RoutedMessage[];\n processedAt?: Date;\n readonly handledAt?: Date;\n processingTime?: number;\n readonly direction: Direction;\n route?: MessageProcessingRoute;\n readonly selectedMessage?: Message;\n uiRef?: SVGElement;\n updateProcessedAt(timeSent: Date): void;\n addOutMessage(routedMessage: RoutedMessage): void;\n}\n\nexport enum HandlerState {\n Fail,\n Success,\n Unknown,\n}\n\nexport const ConversationStartHandlerName = \"First\";\n\nexport function createSendingHandler(message: Message, sendingEndpoint: Endpoint): Handler {\n return new HandlerItem(message.headers.find((h) => h.key === NServiceBusHeaders.RelatedTo)?.value ?? ConversationStartHandlerName, sendingEndpoint);\n}\n\nexport function createProcessingHandler(message: Message, processingEndpoint: Endpoint): Handler {\n const handler = new HandlerItem(message.message_id, processingEndpoint);\n updateProcessingHandler(handler, message);\n return handler;\n}\n\nexport class HandlerRegistry {\n #store = new Map();\n private storeKey = (id: string, endpointName: string) => `${id}###${endpointName}`;\n\n register(handler: Handler) {\n const existing = this.#store.get(this.storeKey(handler.id, handler.endpoint.name));\n if (existing) return { handler: existing, isNew: false };\n\n this.#store.set(this.storeKey(handler.id, handler.endpoint.name), handler as HandlerItem);\n return { handler, isNew: true };\n }\n}\n\nexport function updateProcessingHandler(handler: Handler, message: Message) {\n handler.processedAt = new Date(message.processed_at);\n //assuming if we have days in the timespan then something is very, very wrong\n //TODO: extract logic since it's also currently used in AuditList\n const [hh, mm, ss] = message.processing_time.split(\":\");\n handler.processingTime = ((parseInt(hh) * 60 + parseInt(mm)) * 60 + parseFloat(ss)) * 1000;\n handler.name = message.message_type;\n handler.friendlyName = friendlyTypeName(message.message_type);\n\n if ((message.invoked_sagas?.length ?? 0) > 0) {\n handler.partOfSaga = message.invoked_sagas!.map((saga) => friendlyTypeName(saga.saga_type)).join(\", \");\n }\n\n switch (message.status) {\n case MessageStatus.ArchivedFailure:\n case MessageStatus.Failed:\n case MessageStatus.RepeatedFailure:\n handler.state = HandlerState.Fail;\n break;\n default:\n handler.state = HandlerState.Success;\n }\n}\n\nclass HandlerItem implements Handler {\n private _id: string;\n private _endpoint: Endpoint;\n private _processedAtGuess?: Date;\n private _outMessages: RoutedMessage[];\n name?: string;\n partOfSaga?: string;\n inMessage?: RoutedMessage;\n state: HandlerState = HandlerState.Unknown;\n processedAt?: Date;\n processingTime?: number;\n route?: MessageProcessingRoute;\n uiRef?: SVGElement;\n\n constructor(id: string, endpoint: Endpoint) {\n this._id = id;\n this._endpoint = endpoint;\n this._outMessages = [];\n }\n\n get id() {\n return this._id;\n }\n\n get endpoint() {\n return this._endpoint;\n }\n\n get isPartOfSaga() {\n return this.partOfSaga != null;\n }\n\n get handledAt() {\n return this.processedAt ?? this._processedAtGuess;\n }\n\n get selectedMessage() {\n return this.route?.fromRoutedMessage?.selectedMessage;\n }\n\n get outMessages() {\n return [...this._outMessages];\n }\n\n get direction() {\n return this.outMessages[0]?.direction ?? Direction.Right;\n }\n\n updateProcessedAt(timeSent: Date) {\n if (!this._processedAtGuess || this._processedAtGuess.getTime() > timeSent.getTime()) this._processedAtGuess = timeSent;\n }\n\n addOutMessage(routedMessage: RoutedMessage) {\n this._outMessages = [routedMessage, ...this._outMessages].sort((a, b) => (a.sentTime?.getTime() ?? 0) - (b.sentTime?.getTime() ?? 0));\n }\n}\n","import { NServiceBusHeaders } from \"../Header\";\nimport Message from \"../Message\";\nimport { createRoutedMessage, createRoute, MessageProcessingRoute } from \"./RoutedMessage\";\nimport { createProcessingEndpoint, createSendingEndpoint, Endpoint, EndpointRegistry } from \"./Endpoint\";\nimport { ConversationStartHandlerName, createProcessingHandler, createSendingHandler, Handler, HandlerRegistry, updateProcessingHandler } from \"./Handler\";\n\nexport interface ConversationModel {\n endpoints: Endpoint[];\n}\n\n//TODO: extract to common area if this continues to be used in AuditList\nexport function friendlyTypeName(messageType: string) {\n if (messageType == null) return undefined;\n\n const typeClass = messageType.split(\",\")[0];\n const typeName = typeClass.split(\".\").reverse()[0];\n return typeName.replace(/\\+/g, \".\");\n}\n\nexport class ModelCreator implements ConversationModel {\n #endpoints: Endpoint[];\n #handlers: Handler[];\n #processingRoutes: MessageProcessingRoute[];\n\n constructor(messages: Message[]) {\n this.#endpoints = [];\n this.#processingRoutes = [];\n\n const endpointRegistry = new EndpointRegistry();\n const handlerRegistry = new HandlerRegistry();\n const firstOrderHandlers: Handler[] = [];\n const messagesInOrder = MessageTreeNode.createTree(messages).flatMap((node) => node.walk());\n\n // NOTE: All sending endpoints are created first to ensure version info is retained\n for (const message of messagesInOrder) {\n endpointRegistry.register(createSendingEndpoint(message));\n }\n for (const message of messagesInOrder) {\n endpointRegistry.register(createProcessingEndpoint(message));\n }\n\n for (const message of messagesInOrder) {\n const sendingEndpoint = endpointRegistry.get(createSendingEndpoint(message));\n if (!this.#endpoints.find((endpoint) => endpoint.name === sendingEndpoint?.name)) {\n this.#endpoints.push(sendingEndpoint);\n }\n const processingEndpoint = endpointRegistry.get(createProcessingEndpoint(message));\n if (!this.#endpoints.find((endpoint) => endpoint.name === processingEndpoint?.name)) {\n this.#endpoints.push(processingEndpoint);\n }\n\n const { handler: sendingHandler, isNew: sendingHandlerIsNew } = handlerRegistry.register(createSendingHandler(message, sendingEndpoint));\n if (sendingHandlerIsNew) {\n firstOrderHandlers.push(sendingHandler);\n sendingEndpoint.addHandler(sendingHandler);\n }\n sendingHandler.updateProcessedAt(new Date(message.time_sent));\n\n const { handler: processingHandler, isNew: processingHandlerIsNew } = handlerRegistry.register(createProcessingHandler(message, processingEndpoint));\n if (processingHandlerIsNew) {\n firstOrderHandlers.push(processingHandler);\n processingEndpoint.addHandler(processingHandler);\n } else {\n updateProcessingHandler(processingHandler, message);\n }\n\n const routedMessage = createRoutedMessage(message);\n routedMessage.toHandler = processingHandler;\n routedMessage.fromHandler = sendingHandler;\n this.#processingRoutes.push(createRoute(routedMessage, processingHandler));\n processingHandler.inMessage = routedMessage;\n sendingHandler.addOutMessage(routedMessage);\n }\n\n const start = firstOrderHandlers.filter((h) => h.id === ConversationStartHandlerName);\n const orderByHandledAt = firstOrderHandlers.filter((h) => h.id !== ConversationStartHandlerName).sort((a, b) => (a.handledAt?.getTime() ?? 0) - (b.handledAt?.getTime() ?? 0));\n\n this.#handlers = [...start, ...orderByHandledAt];\n }\n\n get endpoints(): Endpoint[] {\n return [...this.#endpoints];\n }\n\n get handlers(): Handler[] {\n return [...this.#handlers];\n }\n\n get routes(): MessageProcessingRoute[] {\n return [...this.#processingRoutes];\n }\n}\n\nclass MessageTreeNode {\n #message: Message;\n #parent?: string;\n #children: MessageTreeNode[];\n\n static createTree(messages: Message[]) {\n const nodes = messages.map((message) => new MessageTreeNode(message));\n const resolved: MessageTreeNode[] = [];\n const index = new Map(nodes.map((node) => [node.id, node]));\n\n for (const node of nodes) {\n const parent = index.get(node.parent ?? \"\");\n if (parent) {\n parent.addChild(node);\n resolved.push(node);\n }\n }\n\n return nodes.filter((node) => !resolved.includes(node));\n }\n\n constructor(message: Message) {\n this.#message = message;\n this.#parent = message.headers.find((h) => h.key === NServiceBusHeaders.RelatedTo)?.value;\n this.#children = [];\n }\n\n get id() {\n return this.#message.message_id;\n }\n get parent() {\n return this.#parent;\n }\n get message() {\n return this.#message;\n }\n get children() {\n return [...this.#children];\n }\n\n addChild(childNode: MessageTreeNode) {\n this.#children.push(childNode);\n }\n\n walk(): Message[] {\n //TODO: check performance of this. We may need to pre-calculate the processed_at as a date on the message object\n return [this.#message, ...this.children.sort((a, b) => new Date(a.message.processed_at).getTime() - new Date(b.message.processed_at).getTime()).flatMap((child) => child.walk())];\n }\n}\n","import { acceptHMRUpdate, defineStore, storeToRefs } from \"pinia\";\nimport { computed, ref, watch } from \"vue\";\nimport { ModelCreator } from \"@/resources/SequenceDiagram/SequenceModel\";\nimport { Endpoint } from \"@/resources/SequenceDiagram/Endpoint\";\nimport { Handler } from \"@/resources/SequenceDiagram/Handler\";\nimport { MessageProcessingRoute } from \"@/resources/SequenceDiagram/RoutedMessage\";\nimport { useMessageStore } from \"./MessageStore\";\nimport { useRouter } from \"vue-router\";\nimport routeLinks from \"@/router/routeLinks\";\n\nexport interface EndpointCentrePoint {\n name: string;\n centre?: number;\n top: number;\n}\n\nexport interface HandlerLocation {\n id: string;\n endpointName: string;\n left: number;\n right: number;\n y: number;\n height: number;\n}\n\nexport const Endpoint_Width = 260;\n\nexport const useSequenceDiagramStore = defineStore(\"SequenceDiagramStore\", () => {\n const messageStore = useMessageStore();\n const { state, conversationData } = storeToRefs(messageStore);\n const router = useRouter();\n\n const startX = ref(Endpoint_Width / 2);\n const endpoints = ref([]);\n const handlers = ref([]);\n const routes = ref([]);\n const endpointCentrePoints = ref([]);\n const maxWidth = ref(150);\n const maxHeight = ref(150);\n const handlerLocations = ref([]);\n const highlightId = ref();\n\n const isLoading = computed(() => conversationData.value.loading);\n const selectedId = computed(() => `${state.value.data.message_type ?? \"\"}(${state.value.data.id})`);\n\n watch(\n () => conversationData.value.data,\n (conversationData) => {\n if (conversationData.length) {\n startX.value = Endpoint_Width / 2;\n const model = new ModelCreator(conversationData);\n endpoints.value = model.endpoints;\n handlers.value = model.handlers;\n routes.value = model.routes;\n }\n },\n { immediate: true }\n );\n\n function setStartX(offset: number) {\n const newValue = Math.max(offset + Endpoint_Width / 2, startX.value);\n if (newValue === startX.value) return;\n startX.value = newValue;\n }\n\n function setMaxWidth(width: number) {\n maxWidth.value = width;\n }\n\n function setMaxHeight(height: number) {\n maxHeight.value = height;\n }\n\n function setEndpointCentrePoints(centrePoints: EndpointCentrePoint[]) {\n endpointCentrePoints.value = centrePoints;\n }\n\n function setHandlerLocations(locations: HandlerLocation[]) {\n handlerLocations.value = locations;\n }\n\n function setHighlightId(id?: string) {\n highlightId.value = id;\n }\n\n function refreshConversation() {\n if (messageStore.state.data.conversation_id) messageStore.loadConversation(messageStore.state.data.conversation_id);\n }\n\n function navigateTo(messageUniqueId: string | undefined, messageId: string | undefined, isError: boolean) {\n if (messageUniqueId == null) return;\n if (!isError && messageId == null) return;\n\n router.push({ path: isError ? routeLinks.messages.failedMessage.link(messageUniqueId) : routeLinks.messages.successMessage.link(messageId!, messageUniqueId) });\n }\n\n return {\n startX,\n endpoints,\n handlers,\n routes,\n endpointCentrePoints,\n maxWidth,\n maxHeight,\n handlerLocations,\n highlightId,\n selectedId,\n isLoading,\n setStartX,\n setMaxWidth,\n setMaxHeight,\n setEndpointCentrePoints,\n setHandlerLocations,\n setHighlightId,\n refreshConversation,\n navigateTo,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useSequenceDiagramStore, import.meta.hot));\n}\n\nexport type SequenceDiagramStore = ReturnType;\n","\n\n\n\n\n","\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","import { useSequenceDiagramStore } from \"@/stores/SequenceDiagramStore\";\nimport { storeToRefs } from \"pinia\";\nimport { h, watch } from \"vue\";\nimport { useTippy } from \"vue-tippy\";\nimport EndpointTooltip from \"./EndpointTooltip.vue\";\nimport HandlerTooltip from \"./HandlerTooltip.vue\";\nimport RouteTooltip from \"./RouteTooltip.vue\";\nimport { HandlerState } from \"@/resources/SequenceDiagram/Handler\";\n\nexport default function useTooltips() {\n const store = useSequenceDiagramStore();\n const { endpoints, handlers, routes } = storeToRefs(store);\n\n watch(\n () => endpoints.value.map((endpoint) => endpoint.uiRef),\n () =>\n endpoints.value\n .filter((endpoint) => endpoint.uiRef)\n .forEach((endpoint) =>\n useTippy(endpoint.uiRef, {\n interactive: true,\n appendTo: () => document.body,\n content: h(EndpointTooltip, { endpoint }),\n placement: \"bottom\",\n delay: [800, null],\n })\n )\n );\n\n watch(\n () => handlers.value.map((handler) => handler.uiRef),\n () =>\n handlers.value\n .filter((handler) => handler.uiRef && handler.state !== HandlerState.Unknown)\n .forEach((handler) =>\n useTippy(handler.uiRef, {\n interactive: true,\n appendTo: () => document.body,\n content: h(HandlerTooltip, { handler }),\n delay: [800, null],\n })\n )\n );\n\n watch(\n () => routes.value.map((route) => route.uiRef),\n () =>\n routes.value\n .filter((route) => route.uiRef && route.fromRoutedMessage)\n .forEach((route) =>\n useTippy(route.uiRef, {\n interactive: true,\n appendTo: () => document.body,\n content: h(RouteTooltip, { routedMessage: route.fromRoutedMessage! }),\n delay: [800, null],\n maxWidth: 400,\n })\n )\n );\n}\n","\n\n\n\n\n","import { CodeLanguage } from \"@/components/codeEditorTypes\";\n\nfunction parseContentType(contentType: string | undefined): { isSupported: boolean; language?: CodeLanguage } {\n if (contentType === undefined) {\n return {\n isSupported: false,\n };\n }\n\n // remove content type parameter, e.g. charset=utf-8\n contentType = contentType.split(\";\")[0].trim();\n\n if (contentType === \"application/json\") {\n return {\n isSupported: true,\n language: \"json\",\n };\n }\n\n if (contentType === \"text/xml\") {\n return {\n isSupported: true,\n language: \"xml\",\n };\n }\n\n if (contentType.startsWith(\"text/\")) {\n return {\n isSupported: true,\n };\n }\n\n if (contentType === \"application/xml\") {\n return {\n isSupported: true,\n language: \"xml\",\n };\n }\n\n if (contentType.startsWith(\"application/\")) {\n // Some examples:\n // application/atom+xml\n // application/ld+json\n // application/vnd.masstransit+json\n if (contentType.endsWith(\"+json\")) {\n return {\n isSupported: true,\n language: \"json\",\n };\n } else if (contentType.endsWith(\"+xml\")) {\n return {\n isSupported: true,\n language: \"xml\",\n };\n }\n }\n\n return {\n isSupported: false,\n };\n}\n\nexport default parseContentType;\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","\n\n\n","\n\n\n\n\n","\n\n","import { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { ref, watch } from \"vue\";\nimport { SagaHistory, SagaMessage } from \"@/resources/SagaHistory\";\nimport Message from \"@/resources/Message\";\nimport { parse, stringify } from \"lossless-json\";\nimport xmlFormat from \"xml-formatter\";\nimport { DataContainer } from \"./DataContainer\";\nimport { useMessageStore } from \"./MessageStore\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\n\nexport interface SagaMessageData {\n message_id: string;\n body: DataContainer<{ value?: string; content_type?: string; no_content?: boolean }>;\n}\nexport const useSagaDiagramStore = defineStore(\"SagaDiagramStore\", () => {\n const sagaHistory = ref(null);\n const sagaId = ref(null);\n const loading = ref(false);\n const messageDataLoading = ref(false);\n const error = ref(null);\n const showMessageData = ref(false);\n const fetchedMessages = ref(new Set());\n const messagesData = ref([]);\n const selectedMessageId = ref(null);\n const scrollToTimeoutRequest = ref(false);\n const scrollToTimeout = ref(false);\n const MessageBodyEndpoint = \"messages/{0}/body\";\n const messageStore = useMessageStore();\n const serviceControlStore = useServiceControlStore();\n\n watch(\n () => messageStore.state.data.message_id,\n (newMessageId) => {\n if (newMessageId) {\n setSelectedMessageId(newMessageId);\n }\n },\n { immediate: true }\n );\n\n // Watch the sagaId and fetch saga history when it changes\n watch(sagaId, async (newSagaId) => {\n if (newSagaId) {\n await fetchSagaHistory(newSagaId);\n } else {\n clearSagaHistory();\n }\n });\n\n // Watch both showMessageData and sagaHistory together\n watch([showMessageData, sagaHistory], async ([show, history]) => {\n if (show && history) {\n await fetchMessagesData(history);\n }\n });\n\n function setSagaId(id: string | null) {\n sagaId.value = id;\n }\n\n async function fetchSagaHistory(id: string) {\n if (!id) return;\n\n loading.value = true;\n error.value = null;\n\n try {\n const response = await serviceControlStore.fetchFromServiceControl(`sagas/${id}`);\n\n if (response.status === 404) {\n sagaHistory.value = null;\n error.value = \"Saga history not found\";\n } else if (!response.ok) {\n sagaHistory.value = null;\n error.value = \"Failed to fetch saga history\";\n } else {\n const data = await response.json();\n sagaHistory.value = data;\n }\n } catch (e) {\n error.value = e instanceof Error ? e.message : \"Unknown error occurred\";\n sagaHistory.value = null;\n } finally {\n loading.value = false;\n }\n }\n\n async function fetchSagaMessageData(message: SagaMessage): Promise {\n const bodyUrl = (message.body_url ?? formatUrl(MessageBodyEndpoint, message.message_id)).replace(/^\\//, \"\");\n const result: SagaMessageData = {\n message_id: message.message_id,\n body: { data: {} },\n };\n\n result.body.loading = true;\n result.body.failed_to_load = false;\n\n try {\n const response = await serviceControlStore.fetchFromServiceControl(bodyUrl);\n if (response.status === 404) {\n result.body.not_found = true;\n return result;\n }\n\n if (response.status === 204) {\n result.body.data.no_content = true;\n return result;\n }\n\n const contentType = response.headers.get(\"content-type\");\n result.body.data.content_type = contentType ?? \"text/plain\";\n result.body.data.value = await response.text();\n\n if (contentType === \"application/json\" && result.body.data.value) {\n // Only format non-empty JSON objects\n result.body.data.value = result.body.data.value !== \"{}\" ? (stringify(parse(result.body.data.value), null, 2) ?? result.body.data.value) : \"\";\n } else if (contentType === \"text/xml\" && result.body.data.value) {\n // Format XML if it has content in the root element\n const xmlRootElement = getContentOfXmlRootElement(result.body.data.value);\n result.body.data.value = xmlRootElement ? xmlFormat(result.body.data.value, { indentation: \" \", collapseContent: true }) : \"\";\n }\n } catch {\n result.body.failed_to_load = true;\n } finally {\n result.body.loading = false;\n }\n\n return result;\n }\n\n function getContentOfXmlRootElement(xml: string): string {\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"text/xml\");\n const rootElement = doc.documentElement;\n if (rootElement) {\n const rootElementText = rootElement.textContent;\n if (rootElementText) {\n return rootElementText;\n }\n }\n return \"\";\n }\n\n async function getAuditMessages(sagaId: string) {\n try {\n const response = await serviceControlStore.fetchFromServiceControl(`messages/search?q=${sagaId}`);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error(\"Error fetching audit messages:\", error);\n return { result: [] };\n }\n }\n\n function clearSagaHistory() {\n sagaHistory.value = null;\n sagaId.value = null;\n error.value = null;\n fetchedMessages.value.clear();\n messagesData.value = [];\n selectedMessageId.value = null;\n scrollToTimeoutRequest.value = false;\n }\n\n function formatUrl(template: string, id: string): string {\n return template.replace(\"{0}\", id);\n }\n\n function toggleMessageData() {\n showMessageData.value = !showMessageData.value;\n }\n\n async function fetchMessagesData(history: SagaHistory) {\n messageDataLoading.value = true;\n error.value = null;\n\n try {\n // Get all messages from changes array - both initiating and outgoing\n const messagesToFetch = history.changes.flatMap((change) => {\n const messages: SagaMessage[] = [];\n\n // Add initiating message if it exists and hasn't been fetched\n if (change.initiating_message && !fetchedMessages.value.has(change.initiating_message.message_id)) {\n messages.push(change.initiating_message);\n }\n\n // Add all unfetched outgoing messages\n if (change.outgoing_messages) {\n messages.push(...change.outgoing_messages.filter((msg) => !fetchedMessages.value.has(msg.message_id)));\n }\n return messages;\n });\n\n // Check if any messages need body_url\n const needsBodyUrl = messagesToFetch.every((msg) => !msg.body_url);\n if (needsBodyUrl && messagesToFetch.length > 0) {\n const auditMessages = await getAuditMessages(sagaId.value!);\n messagesToFetch.forEach((message) => {\n const auditMessage = auditMessages.find((x: Message) => x.message_id === message.message_id);\n if (auditMessage) {\n message.body_url = auditMessage.body_url;\n }\n });\n }\n\n // Fetch data for each unfetched message in parallel and store results\n const fetchPromises = messagesToFetch.map(async (message) => {\n const data = await fetchSagaMessageData(message);\n fetchedMessages.value.add(message.message_id);\n return data;\n });\n\n const newMessageData = await Promise.all(fetchPromises);\n // Add new message data to the existing array\n messagesData.value = [...messagesData.value, ...newMessageData];\n } catch (e) {\n error.value = e instanceof Error ? e.message : \"Unknown error occurred\";\n } finally {\n messageDataLoading.value = false;\n }\n }\n\n function setSelectedMessageId(messageId: string | null) {\n selectedMessageId.value = messageId;\n }\n\n return {\n sagaHistory,\n sagaId,\n loading,\n messageDataLoading,\n error,\n showMessageData,\n messagesData,\n selectedMessageId,\n scrollToTimeoutRequest,\n scrollToTimeout,\n setSagaId,\n clearSagaHistory,\n toggleMessageData,\n setSelectedMessageId,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useSagaDiagramStore, import.meta.hot));\n}\n\nexport type SagaDiagramStore = ReturnType;\n","export function typeToName(type: string | null | undefined): string | null {\n if (!type) {\n return null;\n }\n\n const className = type.split(\",\")[0];\n let objectName = className.split(\".\").pop() || \"\";\n objectName = objectName.replace(/\\+/g, \".\");\n\n return objectName;\n}\n","export function parseDeliveryDelay(delay: string): { days: number; hours: number; minutes: number; seconds: number } {\n // Split on period first to handle multi-digit days\n const parts = delay.split(\".\");\n let days = 0;\n let timeComponent = delay;\n\n if (parts.length > 1) {\n days = parseInt(parts[0], 10);\n timeComponent = parts[1];\n }\n\n const [hours, minutes, seconds] = timeComponent.split(\":\").map(Number);\n return { days, hours, minutes, seconds };\n}\n\nfunction getFriendly(time: number, text: string): string {\n return time > 0 ? `${time}${text}` : \"\";\n}\n\nexport function getTimeoutFriendly(delivery_delay: string): string {\n const { days, hours, minutes, seconds } = parseDeliveryDelay(delivery_delay);\n\n return `${getFriendly(days, \"d\")}${getFriendly(hours, \"h\")}${getFriendly(minutes, \"m\")}${getFriendly(seconds, \"s\")}`;\n}\n","import { SagaHistory } from \"@/resources/SagaHistory\";\nimport { typeToName } from \"@/composables/typeHumanizer\";\nimport { SagaMessageData } from \"@/stores/SagaDiagramStore\";\nimport { getTimeoutFriendly } from \"@/composables/deliveryDelayParser\";\n\nexport interface SagaMessageViewModel {\n MessageId: string;\n FriendlyTypeName: string;\n FormattedTimeSent: string;\n Data: SagaMessageData;\n IsEventMessage: boolean;\n IsCommandMessage: boolean;\n}\nexport interface InitiatingMessageViewModel {\n FriendlyTypeName: string;\n IsSagaTimeoutMessage: boolean;\n FormattedMessageTimestamp: string;\n IsEventMessage: boolean;\n MessageData: SagaMessageData;\n HasRelatedTimeoutRequest?: boolean;\n MessageId: string;\n}\nexport interface SagaTimeoutMessageViewModel extends SagaMessageViewModel {\n TimeoutFriendly: string;\n HasBeenProcessed: boolean;\n}\n\nexport interface SagaUpdateViewModel {\n MessageId: string;\n StartTime: Date;\n FinishTime: Date;\n FormattedStartTime: string;\n InitiatingMessage: InitiatingMessageViewModel;\n Status: string;\n StatusDisplay: string;\n HasTimeout: boolean;\n IsFirstNode: boolean;\n OutgoingMessages: SagaMessageViewModel[];\n OutgoingTimeoutMessages: SagaTimeoutMessageViewModel[];\n HasOutgoingMessages: boolean;\n HasOutgoingTimeoutMessages: boolean;\n showUpdatedPropertiesOnly: boolean;\n stateAfterChange: string;\n previousStateAfterChange?: string;\n}\n\nexport interface SagaViewModel {\n SagaTitle: string;\n SagaGuid: string;\n ParticipatedInSaga: boolean;\n HasSagaData: boolean;\n ShowNoPluginActiveLegend: boolean;\n SagaCompleted: boolean;\n FormattedCompletionTime: string;\n SagaUpdates: SagaUpdateViewModel[];\n ShowMessageData: boolean;\n}\n\nexport function parseSagaUpdates(sagaHistory: SagaHistory | null, messagesData: SagaMessageData[]): SagaUpdateViewModel[] {\n if (!sagaHistory || !sagaHistory.changes || !sagaHistory.changes.length) return [];\n\n const timeoutMessageIds = new Set();\n sagaHistory.changes.forEach((update) => {\n if (update.outgoing_messages) {\n update.outgoing_messages.forEach((msg) => {\n const delivery_delay = msg.delivery_delay || \"00:00:00\";\n if (delivery_delay && delivery_delay !== \"00:00:00\") {\n timeoutMessageIds.add(msg.message_id);\n }\n });\n }\n });\n\n const updates = sagaHistory.changes\n .map((update) => {\n const startTime = new Date(update.start_time);\n const finishTime = new Date(update.finish_time);\n const initiatingMessageTimestamp = new Date(update.initiating_message?.time_sent || Date.now());\n\n // Find message data for initiating message\n const initiatingMessageData = update.initiating_message ? findMessageData(messagesData, update.initiating_message.message_id) : createEmptyMessageData();\n\n // Create common base message objects with shared properties\n const outgoingMessages = update.outgoing_messages.map((msg) => {\n const delivery_delay = msg.delivery_delay || \"00:00:00\";\n const timeSent = new Date(msg.time_sent);\n const hasTimeout = !!delivery_delay && delivery_delay !== \"00:00:00\";\n const timeoutSeconds = delivery_delay.split(\":\")[2] || \"0\";\n const isEventMessage = msg.intent === \"Publish\";\n\n // Find corresponding message data\n const messageData = findMessageData(messagesData, msg.message_id);\n return {\n MessageType: msg.message_type || \"\",\n MessageId: msg.message_id,\n FormattedTimeSent: timeSent.toLocaleString(),\n HasTimeout: hasTimeout,\n TimeoutSeconds: timeoutSeconds,\n TimeoutFriendly: getTimeoutFriendly(delivery_delay),\n FriendlyTypeName: typeToName(msg.message_type || \"\"),\n Data: messageData,\n IsEventMessage: isEventMessage,\n IsCommandMessage: !isEventMessage,\n };\n });\n\n const outgoingTimeoutMessages = outgoingMessages\n .filter((msg) => msg.HasTimeout)\n .map((msg) => {\n // Check if this timeout message has been processed by checking if there's an initiating message with matching ID\n const hasBeenProcessed = sagaHistory.changes.some((update) => update.initiating_message?.message_id === msg.MessageId);\n\n return {\n ...msg,\n TimeoutFriendly: `${msg.TimeoutFriendly}`,\n HasBeenProcessed: hasBeenProcessed,\n } as SagaTimeoutMessageViewModel;\n });\n\n const regularMessages = outgoingMessages.filter((msg) => !msg.HasTimeout) as SagaMessageViewModel[];\n\n const hasTimeout = outgoingTimeoutMessages.length > 0;\n\n // Check if initiating message is a timeout and if so, if it has a corresponding request in the diagram\n const hasRelatedTimeoutRequest = update.initiating_message?.is_saga_timeout_message && timeoutMessageIds.has(update.initiating_message?.message_id);\n\n return {\n MessageId: update.initiating_message?.message_id || \"\",\n StartTime: startTime,\n FinishTime: finishTime,\n FormattedStartTime: startTime.toLocaleString(),\n Status: update.status,\n StatusDisplay: update.status === \"new\" ? \"Saga Initiated\" : \"Saga Updated\",\n InitiatingMessage: {\n FriendlyTypeName: typeToName(update.initiating_message?.message_type || \"Unknown Message\") || \"\",\n MessageId: update.initiating_message?.message_id || \"\",\n FormattedMessageTimestamp: initiatingMessageTimestamp.toLocaleString(),\n MessageData: initiatingMessageData,\n IsEventMessage: update.initiating_message?.intent === \"Publish\",\n IsSagaTimeoutMessage: update.initiating_message?.is_saga_timeout_message || false,\n HasRelatedTimeoutRequest: hasRelatedTimeoutRequest,\n },\n HasTimeout: hasTimeout,\n IsFirstNode: update.status === \"new\",\n OutgoingTimeoutMessages: outgoingTimeoutMessages,\n OutgoingMessages: regularMessages,\n HasOutgoingMessages: regularMessages.length > 0,\n HasOutgoingTimeoutMessages: outgoingTimeoutMessages.length > 0,\n showUpdatedPropertiesOnly: true, // Default to showing only updated properties\n stateAfterChange: update.state_after_change || \"{}\",\n };\n })\n .sort((a, b) => a.StartTime.getTime() - b.StartTime.getTime())\n .sort((a, b) => a.FinishTime.getTime() - b.FinishTime.getTime());\n\n // Add reference to previous state for each update except the first one\n for (let i = 1; i < updates.length; i++) {\n updates[i].previousStateAfterChange = updates[i - 1].stateAfterChange;\n }\n\n return updates;\n}\n\n// Helper function to find message data or create empty data if not found\nfunction findMessageData(messagesData: SagaMessageData[], messageId: string): SagaMessageData {\n const messageData = messagesData.find((m) => m.message_id === messageId);\n return messageData || createEmptyMessageData();\n}\n\n// Helper function to create an empty message data object\nfunction createEmptyMessageData(): SagaMessageData {\n return {\n message_id: \"\",\n body: {\n data: {},\n loading: false,\n failed_to_load: false,\n not_found: false,\n },\n };\n}\n","export default \"data:image/svg+xml,%3csvg%20width='128'%20height='128'%20viewBox='0%200%20128%20128'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M44%2042.9C29.7%2037.2%2019.1%2027.3%2019.1%200h-16c0%2040.7%2020.6%2053.3%2040.9%2059.9V42.9z'%20fill='%23D3D3D3'%20fill-rule='nonzero'%20/%3e%3cpath%20d='M114.3%2097C110.1%2067.7%2093%2057.7%2075%2052.1V69c12%204.5%2020.4%2012%2023.3%2029.1l-9.4%200.2l18.5%2029.7L124%2097H114.3z'%20fill='%23D3D3D3'%20fill-rule='nonzero'%20/%3e%3cpolygon%20points='68,98%2068,0%2051,0%2051,98%2041.6,98%2059.1,128%2076.7,98'%20fill='%23E4E4E4'%20fill-rule='nonzero'%20/%3e%3c/svg%3e\"","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3%203V9H5V5H9V3H3ZM3%2021H9V19H5V15H3V21ZM21%203H15V5H19V9H21V3ZM15%2021H21V15H19V19H15V21Z'%20fill='currentColor'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206L6%2018M6%206L18%2018'%20stroke='currentColor'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","\n\n\n\n\n","\n\n\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='32'%20height='32'%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M21.8%2018.5H14V10h2.5v6h5.3L21.8%2018.5L21.8%2018.5z%20M25.1%2024.4c2-2.2%203.2-5.1%203.2-8.3%20c0-6.8-5.5-12.3-12.3-12.3C9.2%203.7%203.7%209.2%203.7%2016.1c0%203.2%201.2%206.1%203.2%208.3c-0.6%201.5-1.4%203.6-2%204.9c-0.1%200.2%200%200.4%200.2%200.6%20c0.2%200.1%200.4%200.2%200.6%200c1.3-0.8%203.1-2.1%204.5-3c1.7%200.9%203.7%201.5%205.9%201.5s4.1-0.5%205.9-1.5l4.5%203c0.2%200.1%200.4%200.1%200.6%200%20c0.2-0.1%200.2-0.4%200.2-0.6L25.1%2024.4z%20M16%2025.3c-5.1%200-9.3-4.1-9.3-9.3c0-5.1%204.1-9.3%209.3-9.3c5.1%200%209.3%204.1%209.3%209.3%20C25.3%2021.2%2021.1%2025.3%2016%2025.3z%20M10.5%202.8C9.6%202.3%208.6%202%207.6%202C4.5%202%202%204.5%202%207.6c0%201%200.3%202%200.8%202.8C4.2%207%207%204.2%2010.5%202.8z%20M29.2%2010.4C29.7%209.6%2030%208.6%2030%207.6C30%204.5%2027.5%202%2024.4%202c-1%200-2%200.3-2.9%200.8C25%204.2%2027.8%207%2029.2%2010.4z'%20fill='currentColor'%20fill-rule='nonzero'%20/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0'%20y='0'%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpath%20d='M10.986%208h-4V4h1v3h3V8z%20M7.486%203.201c-2.376%200-4.299%201.923-4.299%204.299%20c0%202.376%201.923%204.299%204.299%204.299c2.376%200%204.299-1.923%204.299-4.299C11.784%205.124%209.861%203.201%207.486%203.201%20M7.486%202%20c3.038%200%205.5%202.462%205.5%205.5s-2.462%205.5-5.5%205.5s-5.5-2.462-5.5-5.5S4.448%202%207.486%202z'%20fill='%23CCCCCC'%20fill-rule='nonzero'%20/%3e%3c/svg%3e\"","\n\n\n\n\n","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%206'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-540,-191)'%3e%3cg%20id='command'%3e%3cg%20transform='matrix(0,1,-1,0,542.944,197)'%3e%3cpath%20d='M-2.944,-3.056C-1.318,-3.056%20-0,-1.713%20-0,-0.056C-0,1.601%20-1.318,2.944%20-2.944,2.944C-4.57,2.944%20-6,1.601%20-6,-0.056C-6,-1.713%20-4.57,-3.056%20-2.944,-3.056'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,555,194)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-1268,-330)'%3e%3cg%20id='event'%3e%3cg%20transform='matrix(0,1,-1,0,1271.05,341)'%3e%3cpath%20d='M-3,-3C-1.374,-3%200,-1.657%200,0C0,1.657%20-1.374,3%20-3,3C-4.626,3%20-6,1.657%20-6,0C-6,-1.657%20-4.626,-3%20-3,-3'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1283.05,338)'%3e%3cpath%20d='M0,0L-4,3L-4,1L-8,1L-8,-1L-4,-1L-4,-3L0,0Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,335.879)'%3e%3cpath%20d='M0,5.879L-4,5.879L-3.05,4.243L-5.878,1.415L-4.464,0L-1.323,3.016L0,1.879L0,5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3cg%20transform='matrix(1,0,0,-1,1279.05,340.121)'%3e%3cpath%20d='M0,-5.879L0,-1.879L-1.636,-2.829L-4.465,0L-5.879,-1.414L-3.05,-4.243L-4,-5.879L0,-5.879Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","\n\n\n\n\n","export default class Diff {\n diff(oldStr, newStr, \n // Type below is not accurate/complete - see above for full possibilities - but it compiles\n options = {}) {\n let callback;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n else if ('callback' in options) {\n callback = options.callback;\n }\n // Allow subclasses to massage the input prior to running\n const oldString = this.castInput(oldStr, options);\n const newString = this.castInput(newStr, options);\n const oldTokens = this.removeEmpty(this.tokenize(oldString, options));\n const newTokens = this.removeEmpty(this.tokenize(newString, options));\n return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);\n }\n diffWithOptionsObj(oldTokens, newTokens, options, callback) {\n var _a;\n const done = (value) => {\n value = this.postProcess(value, options);\n if (callback) {\n setTimeout(function () { callback(value); }, 0);\n return undefined;\n }\n else {\n return value;\n }\n };\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let editLength = 1;\n let maxEditLength = newLen + oldLen;\n if (options.maxEditLength != null) {\n maxEditLength = Math.min(maxEditLength, options.maxEditLength);\n }\n const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;\n const abortAfterTimestamp = Date.now() + maxExecutionTime;\n const bestPath = [{ oldPos: -1, lastComponent: undefined }];\n // Seed editLength = 0, i.e. the content starts with the same values\n let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);\n if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // Identity per the equality and tokenizer\n return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));\n }\n // Once we hit the right edge of the edit graph on some diagonal k, we can\n // definitely reach the end of the edit graph in no more than k edits, so\n // there's no point in considering any moves to diagonal k+1 any more (from\n // which we're guaranteed to need at least k+1 more edits).\n // Similarly, once we've reached the bottom of the edit graph, there's no\n // point considering moves to lower diagonals.\n // We record this fact by setting minDiagonalToConsider and\n // maxDiagonalToConsider to some finite value once we've hit the edge of\n // the edit graph.\n // This optimization is not faithful to the original algorithm presented in\n // Myers's paper, which instead pointlessly extends D-paths off the end of\n // the edit graph - see page 7 of Myers's paper which notes this point\n // explicitly and illustrates it with a diagram. This has major performance\n // implications for some common scenarios. For instance, to compute a diff\n // where the new text simply appends d characters on the end of the\n // original text of length n, the true Myers algorithm will take O(n+d^2)\n // time while this optimization needs only O(n+d) time.\n let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;\n // Main worker method. checks all permutations of a given edit length for acceptance.\n const execEditLength = () => {\n for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {\n let basePath;\n const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];\n if (removePath) {\n // No one else is going to attempt to use this value, clear it\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath - 1] = undefined;\n }\n let canAdd = false;\n if (addPath) {\n // what newPos will be after we do an insertion:\n const addPathNewPos = addPath.oldPos - diagonalPath;\n canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;\n }\n const canRemove = removePath && removePath.oldPos + 1 < oldLen;\n if (!canAdd && !canRemove) {\n // If this path is a terminal then prune\n // @ts-expect-error - perf optimisation. This type-violating value will never be read.\n bestPath[diagonalPath] = undefined;\n continue;\n }\n // Select the diagonal that we want to branch from. We select the prior\n // path whose position in the old string is the farthest from the origin\n // and does not pass the bounds of the diff graph\n if (!canRemove || (canAdd && removePath.oldPos < addPath.oldPos)) {\n basePath = this.addToPath(addPath, true, false, 0, options);\n }\n else {\n basePath = this.addToPath(removePath, false, true, 1, options);\n }\n newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);\n if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) {\n // If we have hit the end of both strings, then we are done\n return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;\n }\n else {\n bestPath[diagonalPath] = basePath;\n if (basePath.oldPos + 1 >= oldLen) {\n maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);\n }\n if (newPos + 1 >= newLen) {\n minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);\n }\n }\n }\n editLength++;\n };\n // Performs the length of edit iteration. Is a bit fugly as this has to support the\n // sync and async mode which is never fun. Loops over execEditLength until a value\n // is produced, or until the edit length exceeds options.maxEditLength (if given),\n // in which case it will return undefined.\n if (callback) {\n (function exec() {\n setTimeout(function () {\n if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) {\n return callback(undefined);\n }\n if (!execEditLength()) {\n exec();\n }\n }, 0);\n }());\n }\n else {\n while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {\n const ret = execEditLength();\n if (ret) {\n return ret;\n }\n }\n }\n }\n addToPath(path, added, removed, oldPosInc, options) {\n const last = path.lastComponent;\n if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: last.count + 1, added: added, removed: removed, previousComponent: last.previousComponent }\n };\n }\n else {\n return {\n oldPos: path.oldPos + oldPosInc,\n lastComponent: { count: 1, added: added, removed: removed, previousComponent: last }\n };\n }\n }\n extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {\n const newLen = newTokens.length, oldLen = oldTokens.length;\n let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {\n newPos++;\n oldPos++;\n commonCount++;\n if (options.oneChangePerToken) {\n basePath.lastComponent = { count: 1, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n }\n if (commonCount && !options.oneChangePerToken) {\n basePath.lastComponent = { count: commonCount, previousComponent: basePath.lastComponent, added: false, removed: false };\n }\n basePath.oldPos = oldPos;\n return newPos;\n }\n equals(left, right, options) {\n if (options.comparator) {\n return options.comparator(left, right);\n }\n else {\n return left === right\n || (!!options.ignoreCase && left.toLowerCase() === right.toLowerCase());\n }\n }\n removeEmpty(array) {\n const ret = [];\n for (let i = 0; i < array.length; i++) {\n if (array[i]) {\n ret.push(array[i]);\n }\n }\n return ret;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n castInput(value, options) {\n return value;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n tokenize(value, options) {\n return Array.from(value);\n }\n join(chars) {\n // Assumes ValueT is string, which is the case for most subclasses.\n // When it's false, e.g. in diffArrays, this method needs to be overridden (e.g. with a no-op)\n // Yes, the casts are verbose and ugly, because this pattern - of having the base class SORT OF\n // assume tokens and values are strings, but not completely - is weird and janky.\n return chars.join('');\n }\n postProcess(changeObjects, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n options) {\n return changeObjects;\n }\n get useLongestToken() {\n return false;\n }\n buildValues(lastComponent, newTokens, oldTokens) {\n // First we convert our linked list of components in reverse order to an\n // array in the right order:\n const components = [];\n let nextComponent;\n while (lastComponent) {\n components.push(lastComponent);\n nextComponent = lastComponent.previousComponent;\n delete lastComponent.previousComponent;\n lastComponent = nextComponent;\n }\n components.reverse();\n const componentLen = components.length;\n let componentPos = 0, newPos = 0, oldPos = 0;\n for (; componentPos < componentLen; componentPos++) {\n const component = components[componentPos];\n if (!component.removed) {\n if (!component.added && this.useLongestToken) {\n let value = newTokens.slice(newPos, newPos + component.count);\n value = value.map(function (value, i) {\n const oldValue = oldTokens[oldPos + i];\n return oldValue.length > value.length ? oldValue : value;\n });\n component.value = this.join(value);\n }\n else {\n component.value = this.join(newTokens.slice(newPos, newPos + component.count));\n }\n newPos += component.count;\n // Common case\n if (!component.added) {\n oldPos += component.count;\n }\n }\n else {\n component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));\n oldPos += component.count;\n }\n }\n return components;\n }\n}\n","import Diff from './base.js';\nclass CharacterDiff extends Diff {\n}\nexport const characterDiff = new CharacterDiff();\nexport function diffChars(oldStr, newStr, options) {\n return characterDiff.diff(oldStr, newStr, options);\n}\n","export function longestCommonPrefix(str1, str2) {\n let i;\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[i] != str2[i]) {\n return str1.slice(0, i);\n }\n }\n return str1.slice(0, i);\n}\nexport function longestCommonSuffix(str1, str2) {\n let i;\n // Unlike longestCommonPrefix, we need a special case to handle all scenarios\n // where we return the empty string since str1.slice(-0) will return the\n // entire string.\n if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) {\n return '';\n }\n for (i = 0; i < str1.length && i < str2.length; i++) {\n if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) {\n return str1.slice(-i);\n }\n }\n return str1.slice(-i);\n}\nexport function replacePrefix(string, oldPrefix, newPrefix) {\n if (string.slice(0, oldPrefix.length) != oldPrefix) {\n throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);\n }\n return newPrefix + string.slice(oldPrefix.length);\n}\nexport function replaceSuffix(string, oldSuffix, newSuffix) {\n if (!oldSuffix) {\n return string + newSuffix;\n }\n if (string.slice(-oldSuffix.length) != oldSuffix) {\n throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);\n }\n return string.slice(0, -oldSuffix.length) + newSuffix;\n}\nexport function removePrefix(string, oldPrefix) {\n return replacePrefix(string, oldPrefix, '');\n}\nexport function removeSuffix(string, oldSuffix) {\n return replaceSuffix(string, oldSuffix, '');\n}\nexport function maximumOverlap(string1, string2) {\n return string2.slice(0, overlapCount(string1, string2));\n}\n// Nicked from https://stackoverflow.com/a/60422853/1709587\nfunction overlapCount(a, b) {\n // Deal with cases where the strings differ in length\n let startA = 0;\n if (a.length > b.length) {\n startA = a.length - b.length;\n }\n let endB = b.length;\n if (a.length < b.length) {\n endB = a.length;\n }\n // Create a back-reference for each index\n // that should be followed in case of a mismatch.\n // We only need B to make these references:\n const map = Array(endB);\n let k = 0; // Index that lags behind j\n map[0] = 0;\n for (let j = 1; j < endB; j++) {\n if (b[j] == b[k]) {\n map[j] = map[k]; // skip over the same character (optional optimisation)\n }\n else {\n map[j] = k;\n }\n while (k > 0 && b[j] != b[k]) {\n k = map[k];\n }\n if (b[j] == b[k]) {\n k++;\n }\n }\n // Phase 2: use these references while iterating over A\n k = 0;\n for (let i = startA; i < a.length; i++) {\n while (k > 0 && a[i] != b[k]) {\n k = map[k];\n }\n if (a[i] == b[k]) {\n k++;\n }\n }\n return k;\n}\n/**\n * Returns true if the string consistently uses Windows line endings.\n */\nexport function hasOnlyWinLineEndings(string) {\n return string.includes('\\r\\n') && !string.startsWith('\\n') && !string.match(/[^\\r]\\n/);\n}\n/**\n * Returns true if the string consistently uses Unix line endings.\n */\nexport function hasOnlyUnixLineEndings(string) {\n return !string.includes('\\r\\n') && string.includes('\\n');\n}\nexport function trailingWs(string) {\n // Yes, this looks overcomplicated and dumb - why not replace the whole function with\n // return string match(/\\s*$/)[0]\n // you ask? Because:\n // 1. the trap described at https://markamery.com/blog/quadratic-time-regexes/ would mean doing\n // this would cause this function to take O(n²) time in the worst case (specifically when\n // there is a massive run of NON-TRAILING whitespace in `string`), and\n // 2. the fix proposed in the same blog post, of using a negative lookbehind, is incompatible\n // with old Safari versions that we'd like to not break if possible (see\n // https://github.com/kpdecker/jsdiff/pull/550)\n // It feels absurd to do this with an explicit loop instead of a regex, but I really can't see a\n // better way that doesn't result in broken behaviour.\n let i;\n for (i = string.length - 1; i >= 0; i--) {\n if (!string[i].match(/\\s/)) {\n break;\n }\n }\n return string.substring(i + 1);\n}\nexport function leadingWs(string) {\n // Thankfully the annoying considerations described in trailingWs don't apply here:\n const match = string.match(/^\\s*/);\n return match ? match[0] : '';\n}\n","import Diff from './base.js';\nimport { longestCommonPrefix, longestCommonSuffix, replacePrefix, replaceSuffix, removePrefix, removeSuffix, maximumOverlap, leadingWs, trailingWs } from '../util/string.js';\n// Based on https://en.wikipedia.org/wiki/Latin_script_in_Unicode\n//\n// Ranges and exceptions:\n// Latin-1 Supplement, 0080–00FF\n// - U+00D7 × Multiplication sign\n// - U+00F7 ÷ Division sign\n// Latin Extended-A, 0100–017F\n// Latin Extended-B, 0180–024F\n// IPA Extensions, 0250–02AF\n// Spacing Modifier Letters, 02B0–02FF\n// - U+02C7 ˇ ˇ Caron\n// - U+02D8 ˘ ˘ Breve\n// - U+02D9 ˙ ˙ Dot Above\n// - U+02DA ˚ ˚ Ring Above\n// - U+02DB ˛ ˛ Ogonek\n// - U+02DC ˜ ˜ Small Tilde\n// - U+02DD ˝ ˝ Double Acute Accent\n// Latin Extended Additional, 1E00–1EFF\nconst extendedWordChars = 'a-zA-Z0-9_\\\\u{C0}-\\\\u{FF}\\\\u{D8}-\\\\u{F6}\\\\u{F8}-\\\\u{2C6}\\\\u{2C8}-\\\\u{2D7}\\\\u{2DE}-\\\\u{2FF}\\\\u{1E00}-\\\\u{1EFF}';\n// Each token is one of the following:\n// - A punctuation mark plus the surrounding whitespace\n// - A word plus the surrounding whitespace\n// - Pure whitespace (but only in the special case where this the entire text\n// is just whitespace)\n//\n// We have to include surrounding whitespace in the tokens because the two\n// alternative approaches produce horribly broken results:\n// * If we just discard the whitespace, we can't fully reproduce the original\n// text from the sequence of tokens and any attempt to render the diff will\n// get the whitespace wrong.\n// * If we have separate tokens for whitespace, then in a typical text every\n// second token will be a single space character. But this often results in\n// the optimal diff between two texts being a perverse one that preserves\n// the spaces between words but deletes and reinserts actual common words.\n// See https://github.com/kpdecker/jsdiff/issues/160#issuecomment-1866099640\n// for an example.\n//\n// Keeping the surrounding whitespace of course has implications for .equals\n// and .join, not just .tokenize.\n// This regex does NOT fully implement the tokenization rules described above.\n// Instead, it gives runs of whitespace their own \"token\". The tokenize method\n// then handles stitching whitespace tokens onto adjacent word or punctuation\n// tokens.\nconst tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\\\s+|[^${extendedWordChars}]`, 'ug');\nclass WordDiff extends Diff {\n equals(left, right, options) {\n if (options.ignoreCase) {\n left = left.toLowerCase();\n right = right.toLowerCase();\n }\n return left.trim() === right.trim();\n }\n tokenize(value, options = {}) {\n let parts;\n if (options.intlSegmenter) {\n const segmenter = options.intlSegmenter;\n if (segmenter.resolvedOptions().granularity != 'word') {\n throw new Error('The segmenter passed must have a granularity of \"word\"');\n }\n parts = Array.from(segmenter.segment(value), segment => segment.segment);\n }\n else {\n parts = value.match(tokenizeIncludingWhitespace) || [];\n }\n const tokens = [];\n let prevPart = null;\n parts.forEach(part => {\n if ((/\\s/).test(part)) {\n if (prevPart == null) {\n tokens.push(part);\n }\n else {\n tokens.push(tokens.pop() + part);\n }\n }\n else if (prevPart != null && (/\\s/).test(prevPart)) {\n if (tokens[tokens.length - 1] == prevPart) {\n tokens.push(tokens.pop() + part);\n }\n else {\n tokens.push(prevPart + part);\n }\n }\n else {\n tokens.push(part);\n }\n prevPart = part;\n });\n return tokens;\n }\n join(tokens) {\n // Tokens being joined here will always have appeared consecutively in the\n // same text, so we can simply strip off the leading whitespace from all the\n // tokens except the first (and except any whitespace-only tokens - but such\n // a token will always be the first and only token anyway) and then join them\n // and the whitespace around words and punctuation will end up correct.\n return tokens.map((token, i) => {\n if (i == 0) {\n return token;\n }\n else {\n return token.replace((/^\\s+/), '');\n }\n }).join('');\n }\n postProcess(changes, options) {\n if (!changes || options.oneChangePerToken) {\n return changes;\n }\n let lastKeep = null;\n // Change objects representing any insertion or deletion since the last\n // \"keep\" change object. There can be at most one of each.\n let insertion = null;\n let deletion = null;\n changes.forEach(change => {\n if (change.added) {\n insertion = change;\n }\n else if (change.removed) {\n deletion = change;\n }\n else {\n if (insertion || deletion) { // May be false at start of text\n dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change);\n }\n lastKeep = change;\n insertion = null;\n deletion = null;\n }\n });\n if (insertion || deletion) {\n dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null);\n }\n return changes;\n }\n}\nexport const wordDiff = new WordDiff();\nexport function diffWords(oldStr, newStr, options) {\n // This option has never been documented and never will be (it's clearer to\n // just call `diffWordsWithSpace` directly if you need that behavior), but\n // has existed in jsdiff for a long time, so we retain support for it here\n // for the sake of backwards compatibility.\n if ((options === null || options === void 0 ? void 0 : options.ignoreWhitespace) != null && !options.ignoreWhitespace) {\n return diffWordsWithSpace(oldStr, newStr, options);\n }\n return wordDiff.diff(oldStr, newStr, options);\n}\nfunction dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep) {\n // Before returning, we tidy up the leading and trailing whitespace of the\n // change objects to eliminate cases where trailing whitespace in one object\n // is repeated as leading whitespace in the next.\n // Below are examples of the outcomes we want here to explain the code.\n // I=insert, K=keep, D=delete\n // 1. diffing 'foo bar baz' vs 'foo baz'\n // Prior to cleanup, we have K:'foo ' D:' bar ' K:' baz'\n // After cleanup, we want: K:'foo ' D:'bar ' K:'baz'\n //\n // 2. Diffing 'foo bar baz' vs 'foo qux baz'\n // Prior to cleanup, we have K:'foo ' D:' bar ' I:' qux ' K:' baz'\n // After cleanup, we want K:'foo ' D:'bar' I:'qux' K:' baz'\n //\n // 3. Diffing 'foo\\nbar baz' vs 'foo baz'\n // Prior to cleanup, we have K:'foo ' D:'\\nbar ' K:' baz'\n // After cleanup, we want K'foo' D:'\\nbar' K:' baz'\n //\n // 4. Diffing 'foo baz' vs 'foo\\nbar baz'\n // Prior to cleanup, we have K:'foo\\n' I:'\\nbar ' K:' baz'\n // After cleanup, we ideally want K'foo' I:'\\nbar' K:' baz'\n // but don't actually manage this currently (the pre-cleanup change\n // objects don't contain enough information to make it possible).\n //\n // 5. Diffing 'foo bar baz' vs 'foo baz'\n // Prior to cleanup, we have K:'foo ' D:' bar ' K:' baz'\n // After cleanup, we want K:'foo ' D:' bar ' K:'baz'\n //\n // Our handling is unavoidably imperfect in the case where there's a single\n // indel between keeps and the whitespace has changed. For instance, consider\n // diffing 'foo\\tbar\\nbaz' vs 'foo baz'. Unless we create an extra change\n // object to represent the insertion of the space character (which isn't even\n // a token), we have no way to avoid losing information about the texts'\n // original whitespace in the result we return. Still, we do our best to\n // output something that will look sensible if we e.g. print it with\n // insertions in green and deletions in red.\n // Between two \"keep\" change objects (or before the first or after the last\n // change object), we can have either:\n // * A \"delete\" followed by an \"insert\"\n // * Just an \"insert\"\n // * Just a \"delete\"\n // We handle the three cases separately.\n if (deletion && insertion) {\n const oldWsPrefix = leadingWs(deletion.value);\n const oldWsSuffix = trailingWs(deletion.value);\n const newWsPrefix = leadingWs(insertion.value);\n const newWsSuffix = trailingWs(insertion.value);\n if (startKeep) {\n const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);\n startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);\n deletion.value = removePrefix(deletion.value, commonWsPrefix);\n insertion.value = removePrefix(insertion.value, commonWsPrefix);\n }\n if (endKeep) {\n const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);\n endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);\n deletion.value = removeSuffix(deletion.value, commonWsSuffix);\n insertion.value = removeSuffix(insertion.value, commonWsSuffix);\n }\n }\n else if (insertion) {\n // The whitespaces all reflect what was in the new text rather than\n // the old, so we essentially have no information about whitespace\n // insertion or deletion. We just want to dedupe the whitespace.\n // We do that by having each change object keep its trailing\n // whitespace and deleting duplicate leading whitespace where\n // present.\n if (startKeep) {\n const ws = leadingWs(insertion.value);\n insertion.value = insertion.value.substring(ws.length);\n }\n if (endKeep) {\n const ws = leadingWs(endKeep.value);\n endKeep.value = endKeep.value.substring(ws.length);\n }\n // otherwise we've got a deletion and no insertion\n }\n else if (startKeep && endKeep) {\n const newWsFull = leadingWs(endKeep.value), delWsStart = leadingWs(deletion.value), delWsEnd = trailingWs(deletion.value);\n // Any whitespace that comes straight after startKeep in both the old and\n // new texts, assign to startKeep and remove from the deletion.\n const newWsStart = longestCommonPrefix(newWsFull, delWsStart);\n deletion.value = removePrefix(deletion.value, newWsStart);\n // Any whitespace that comes straight before endKeep in both the old and\n // new texts, and hasn't already been assigned to startKeep, assign to\n // endKeep and remove from the deletion.\n const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);\n deletion.value = removeSuffix(deletion.value, newWsEnd);\n endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);\n // If there's any whitespace from the new text that HASN'T already been\n // assigned, assign it to the start:\n startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));\n }\n else if (endKeep) {\n // We are at the start of the text. Preserve all the whitespace on\n // endKeep, and just remove whitespace from the end of deletion to the\n // extent that it overlaps with the start of endKeep.\n const endKeepWsPrefix = leadingWs(endKeep.value);\n const deletionWsSuffix = trailingWs(deletion.value);\n const overlap = maximumOverlap(deletionWsSuffix, endKeepWsPrefix);\n deletion.value = removeSuffix(deletion.value, overlap);\n }\n else if (startKeep) {\n // We are at the END of the text. Preserve all the whitespace on\n // startKeep, and just remove whitespace from the start of deletion to\n // the extent that it overlaps with the end of startKeep.\n const startKeepWsSuffix = trailingWs(startKeep.value);\n const deletionWsPrefix = leadingWs(deletion.value);\n const overlap = maximumOverlap(startKeepWsSuffix, deletionWsPrefix);\n deletion.value = removePrefix(deletion.value, overlap);\n }\n}\nclass WordsWithSpaceDiff extends Diff {\n tokenize(value) {\n // Slightly different to the tokenizeIncludingWhitespace regex used above in\n // that this one treats each individual newline as a distinct tokens, rather\n // than merging them into other surrounding whitespace. This was requested\n // in https://github.com/kpdecker/jsdiff/issues/180 &\n // https://github.com/kpdecker/jsdiff/issues/211\n const regex = new RegExp(`(\\\\r?\\\\n)|[${extendedWordChars}]+|[^\\\\S\\\\n\\\\r]+|[^${extendedWordChars}]`, 'ug');\n return value.match(regex) || [];\n }\n}\nexport const wordsWithSpaceDiff = new WordsWithSpaceDiff();\nexport function diffWordsWithSpace(oldStr, newStr, options) {\n return wordsWithSpaceDiff.diff(oldStr, newStr, options);\n}\n","export function generateOptions(options, defaults) {\n if (typeof options === 'function') {\n defaults.callback = options;\n }\n else if (options) {\n for (const name in options) {\n /* istanbul ignore else */\n if (Object.prototype.hasOwnProperty.call(options, name)) {\n defaults[name] = options[name];\n }\n }\n }\n return defaults;\n}\n","import Diff from './base.js';\nimport { generateOptions } from '../util/params.js';\nclass LineDiff extends Diff {\n constructor() {\n super(...arguments);\n this.tokenize = tokenize;\n }\n equals(left, right, options) {\n // If we're ignoring whitespace, we need to normalise lines by stripping\n // whitespace before checking equality. (This has an annoying interaction\n // with newlineIsToken that requires special handling: if newlines get their\n // own token, then we DON'T want to trim the *newline* tokens down to empty\n // strings, since this would cause us to treat whitespace-only line content\n // as equal to a separator between lines, which would be weird and\n // inconsistent with the documented behavior of the options.)\n if (options.ignoreWhitespace) {\n if (!options.newlineIsToken || !left.includes('\\n')) {\n left = left.trim();\n }\n if (!options.newlineIsToken || !right.includes('\\n')) {\n right = right.trim();\n }\n }\n else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {\n if (left.endsWith('\\n')) {\n left = left.slice(0, -1);\n }\n if (right.endsWith('\\n')) {\n right = right.slice(0, -1);\n }\n }\n return super.equals(left, right, options);\n }\n}\nexport const lineDiff = new LineDiff();\nexport function diffLines(oldStr, newStr, options) {\n return lineDiff.diff(oldStr, newStr, options);\n}\nexport function diffTrimmedLines(oldStr, newStr, options) {\n options = generateOptions(options, { ignoreWhitespace: true });\n return lineDiff.diff(oldStr, newStr, options);\n}\n// Exported standalone so it can be used from jsonDiff too.\nexport function tokenize(value, options) {\n if (options.stripTrailingCr) {\n // remove one \\r before \\n to match GNU diff's --strip-trailing-cr behavior\n value = value.replace(/\\r\\n/g, '\\n');\n }\n const retLines = [], linesAndNewlines = value.split(/(\\n|\\r\\n)/);\n // Ignore the final empty token that occurs if the string ends with a new line\n if (!linesAndNewlines[linesAndNewlines.length - 1]) {\n linesAndNewlines.pop();\n }\n // Merge the content and line separators into single tokens\n for (let i = 0; i < linesAndNewlines.length; i++) {\n const line = linesAndNewlines[i];\n if (i % 2 && !options.newlineIsToken) {\n retLines[retLines.length - 1] += line;\n }\n else {\n retLines.push(line);\n }\n }\n return retLines;\n}\n","import Diff from './base.js';\nfunction isSentenceEndPunct(char) {\n return char == '.' || char == '!' || char == '?';\n}\nclass SentenceDiff extends Diff {\n tokenize(value) {\n var _a;\n // If in future we drop support for environments that don't support lookbehinds, we can replace\n // this entire function with:\n // return value.split(/(?<=[.!?])(\\s+|$)/);\n // but until then, for similar reasons to the trailingWs function in string.ts, we are forced\n // to do this verbosely \"by hand\" instead of using a regex.\n const result = [];\n let tokenStartI = 0;\n for (let i = 0; i < value.length; i++) {\n if (i == value.length - 1) {\n result.push(value.slice(tokenStartI));\n break;\n }\n if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\\s/)) {\n // We've hit a sentence break - i.e. a punctuation mark followed by whitespace.\n // We now want to push TWO tokens to the result:\n // 1. the sentence\n result.push(value.slice(tokenStartI, i + 1));\n // 2. the whitespace\n i = tokenStartI = i + 1;\n while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\\s/)) {\n i++;\n }\n result.push(value.slice(tokenStartI, i + 1));\n // Then the next token (a sentence) starts on the character after the whitespace.\n // (It's okay if this is off the end of the string - then the outer loop will terminate\n // here anyway.)\n tokenStartI = i + 1;\n }\n }\n return result;\n }\n}\nexport const sentenceDiff = new SentenceDiff();\nexport function diffSentences(oldStr, newStr, options) {\n return sentenceDiff.diff(oldStr, newStr, options);\n}\n","import Diff from './base.js';\nclass CssDiff extends Diff {\n tokenize(value) {\n return value.split(/([{}:;,]|\\s+)/);\n }\n}\nexport const cssDiff = new CssDiff();\nexport function diffCss(oldStr, newStr, options) {\n return cssDiff.diff(oldStr, newStr, options);\n}\n","\n\n\n\n\n","\n\n\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpolygon%20points='4.986,4%2011.048,7.5%204.986,11'%20fill='%23CCCCCC'%20fill-rule='nonzero'%20/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='15'%20height='15'%20viewBox='0%200%2015%2015'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3cpath%20fill='%23CCCCCC'%20fill-rule='nonzero'%20d='M3.612%205.274l2.74%200.885V3H8.62v3.159l2.74-0.885l0.616%201.953L9.183%208.086l1.822%202.609l-1.678%201.193L7.51%209.423l-1.879%202.464l-1.678-1.193l1.835-2.609L2.996%207.228L3.612%205.274z'%20/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2016'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20transform='matrix(1,0,0,1,-581,-742)'%3e%3cg%20id='timeout'%20transform='matrix(1,0,0,1,596.565,753.212)'%3e%3cpath%20d='M0,-6.402C0.276,-6.875%200.435,-7.425%200.435,-8.013C0.435,-9.78%20-0.997,-11.212%20-2.764,-11.212C-3.361,-11.212%20-3.919,-11.048%20-4.397,-10.764C-2.425,-9.938%20-0.841,-8.366%200,-6.402M-10.728,-10.764C-11.206,-11.048%20-11.764,-11.212%20-12.36,-11.212C-14.127,-11.212%20-15.56,-9.78%20-15.56,-8.013C-15.56,-7.425%20-15.401,-6.875%20-15.125,-6.402C-14.284,-8.366%20-12.699,-9.938%20-10.728,-10.764M-7.562,2.12C-10.489,2.12%20-12.858,-0.248%20-12.858,-3.176C-12.858,-6.103%20-10.49,-8.472%20-7.562,-8.472C-4.636,-8.472%20-2.266,-6.103%20-2.266,-3.176C-2.266,-0.249%20-4.635,2.12%20-7.562,2.12M-2.357,1.581C-1.211,0.327%20-0.511,-1.342%20-0.511,-3.176C-0.511,-7.07%20-3.668,-10.227%20-7.562,-10.227C-11.457,-10.227%20-14.614,-7.07%20-14.614,-3.176C-14.614,-1.342%20-13.914,0.327%20-12.767,1.581C-13.12,2.46%20-13.583,3.612%20-13.896,4.391C-13.944,4.508%20-13.909,4.643%20-13.81,4.723C-13.712,4.803%20-13.573,4.809%20-13.468,4.739C-12.75,4.259%20-11.683,3.545%20-10.913,3.03C-9.917,3.569%20-8.775,3.876%20-7.562,3.876C-6.349,3.876%20-5.208,3.569%20-4.211,3.03L-1.657,4.739C-1.552,4.81%20-1.413,4.803%20-1.314,4.723C-1.216,4.643%20-1.181,4.509%20-1.228,4.391L-2.357,1.581ZM-4.27,-1.802L-8.687,-1.802L-8.687,-6.655L-7.282,-6.655L-7.282,-3.206L-4.27,-3.206L-4.27,-1.802Z'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e\"","\n\n\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='15'%20height='15'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='0'%20y='0'%20width='15'%20height='15'%20fill='%23333333'%20/%3e%3crect%20x='4'%20y='4'%20width='7'%20height='7'%20fill='%23CCCCCC'%20/%3e%3c/svg%3e\"","\n\n\n\n\n","\n\n\n\n\n","\n\n\n\n\n"],"names":["tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","toValue","r","unref","isClient","isDef$1","val","toString","isObject","noop$3","createFilterWrapper","filter2","wrapper","args","resolve","reject","bypassFilter","invoke","pausableFilter","extendFilter","isActive","ref","pause","resume","eventFilter","readonly","promiseTimeout","ms","throwOnTimeout","reason","watchWithFilter","source","cb","options","watchOptions","watch","watchPausable","toRefs","objectRef","isRef","toRefs$1","result","key","customRef","v","_a","copy","newObject","createUntil","isNot","toMatch","condition","flush","deep","timeout2","stop","promises","toBe","value","v1","v2","toBeTruthy","toBeNull","toBeUndefined","toBeNaN","toContains","array2","changed","changedTimes","n","count","until","unrefElement","elRef","plain","defaultWindow","useEventListener","target","events","listeners","cleanups","cleanup","register","el","event","listener","options2","stopWatch","optionsClone","createKeyPredicate$1","keyFilter","onKeyStroke","handler","eventName","passive","dedupe","predicate","e","cloneFnJSON","useVModel","props","emit","_b","_c","clone","defaultValue","shouldEmit","vm","getCurrentInstance","_emit","cloneFn","getValue","triggerEmit","initialValue","proxy","isUpdating","nextTick","computed","noop$2","dispatch","i","_","t","Dispatch","parseTypenames$1","typenames","types","name","typename","callback","T","get$1","set$1","type","that","c","xhtml","namespaces","namespace","prefix","creatorInherit","document2","uri","creatorFixed","fullname","creator","none","selector","selector2","selection_select","select2","groups","m","subgroups","j","group","subgroup","node","subnode","Selection$1","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","match","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum2","child","next","constant$3","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","datum","selection_data","bind","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection2","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","a","b","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove$1","attrRemoveNS$1","attrConstant$1","attrConstantNS$1","attrFunction$1","attrFunctionNS$1","selection_attr","defaultView","styleRemove$1","styleConstant$1","priority","styleFunction$1","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant$1","textFunction$1","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create2","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","selection_cloneDeep","selection_clone","selection_datum","contextListener","parseTypenames","onRemove","on","o","onAdd","selection_on","dispatchEvent","params","window2","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection","selection_selection","select","sourceEvent","sourceEvent2","pointer","svg","point","rect","nonpassive","nonpassivecapture","nopropagation$1","noevent$1","dragDisable","view","root2","yesdrag","noclick","constant$2","DragEvent","subject","identifier","active","y","dx","dy","dispatch2","defaultFilter$1","defaultContainer","defaultSubject","d","defaultTouchable$1","drag","container","touchable","gestures","mousedownx","mousedowny","mousemoving","touchending","clickDistance2","drag2","mousedowned","touchstarted","touchmoved","touchended","gesture","beforestart","mousemoved","mouseupped","touches","container2","touch","p","s","event2","touch2","p0","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","l","rgbn","Rgb","rgba","hsla","g","rgbConvert","rgb","opacity","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h2","Hsl","min","max","hsl","m2","hsl2rgb","clamph","clampt","constant$1","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","color2","rgb$1","start2","end","numberArray","isNumberArray","genericArray","nb","na","interpolate$1","date","interpolateNumber","object","reA","reB","zero","one","interpolateString","bi","am","bm","bs","q","i2","degrees","identity$1","decompose","f","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom2","p1","ux0","uy0","w0","ux1","uy1","w1","d2","S","d1","b0","b1","r0","r1","coshr0","u","_1","_2","_4","frame","timeout$1","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","now2","t0","t1","t2","timeout","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","id2","index","timing","schedules","create","init","schedule2","get","set","self","tween","tick","interrupt","empty2","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","attrRemove","attrRemoveNS","attrConstant","interpolate2","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","start","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","children2","inherit2","Selection","transition_selection","styleNull","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove2","transition_style","styleInterpolate","styleTween","transition_styleTween","textConstant","textFunction","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","cancel","id","selection_prototype","cubicInOut","defaultTiming","inherit","selection_transition","constant","ZoomEvent","transform","Transform","location","identity","nopropagation","noevent","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","zoom","constrain","wheelDelta2","scaleExtent","duration","touchstarting","touchfirst","touchDelay","wheelDelay","tapDistance","wheeled","dblclicked","collection","k0","k1","centroid","extent2","w","clean","Gesture","wheelidled","currentTarget","x0","y0","started","l0","l1","dp","dl","Position","Position2","SelectionMode","SelectionMode2","ConnectionLineType","ConnectionLineType2","ConnectionMode","ConnectionMode2","MarkerType","MarkerType2","PanOnScrollMode","PanOnScrollMode2","PanelPosition","PanelPosition2","inputTags","defaultDoc","isInputDOMNode","hasAttribute","closest","wasModifierPressed","isKeyMatch","pressedKey","keyToMatch","pressedKeys","isKeyUp","keyCombination","isMatch","createKeyPredicate","keyOrCode","useKeyOrCode","code","keysToWatch","useKeyPress","toValue$1","isPressed","shallowRef","modifierPressed","currentFilter","createKeyFilterFn","nextKeyFilter","previousKeyFilter","reset","actInsideInputWithModifier","preventDefault","target2","isInteractiveElement","keyFilter2","ARIA_NODE_DESC_KEY","ARIA_EDGE_DESC_KEY","ARIA_LIVE_MESSAGE","elementSelectionKeys","arrowKeyDiffs","nodeToRect","getOverlappingArea","rectA","rectB","xOverlap","yOverlap","getDimensions","clamp","clampPosition","position","getHostForElement","element","doc","isEdge","isNode","isGraphNode","isNumeric","isRect","obj","parseNode","existingNode","parentNode","initialState","markRaw","isDef","parseEdge","edge","existingEdge","defaultEdgeOptions","getConnectedElements","nodeOrId","nodes","edges","dir","connectedIds","origin","getOutgoers","nodeOrId2","elements","nodeId","getIncomers","getEdgeId","sourceHandle","targetHandle","connectionExists","rendererPointToPoint","tx","ty","tScale","pointToRendererPoint","snapToGrid","snapGrid","snapPosition","getBoundsOfBoxes","box1","box2","rectToBox","width","height","boxToRect","x2","y2","getRectOfNodes","box","getNodesInside","viewport","partially","excludeNonSelectableNodes","paneRect","visibleNodes","dimensions","selectable","hidden","overlappingArea","notInitialized","partiallyVisible","area","getConnectedEdges","nodesOrId","nodeIds","parsePadding","padding","paddingValue","warn","parsePaddings","paddingY","paddingX","top","bottom","left","right","calculateAppliedPaddings","bounds","boundRight","boundBottom","getTransformForBounds","minZoom","maxZoom","xZoom","yZoom","clampedZoom","boundsCenterX","boundsCenterY","newPadding","offset","getXYZPos","parentPos","computedPosition","isParentSelected","nodeLookup","getMarkerId","marker","vueFlowId","wheelDelta","factor","isMacOs","calcAutoPanVelocity","calcAutoPan","pos","speed","distance2","xMovement","yMovement","handleParentExpand","updateItem","extendWidth","extendHeight","parentStyles","currWidth","xDiff","yDiff","styleFunc","applyChanges","changes","addRemoveChanges","change","elementIds","currentChange","createSelectionChange","selected","createAdditionChange","item","createNodeRemoveChange","createEdgeRemoveChange","getSelectionChanges","items","selectedIds","mutateItem","willBeSelected","noop$1","createExtendedEventHook","defaultHandler","emitter","hasEmitListeners","hasListeners","setEmitter","removeEmitter","setHasEmitListeners","removeHasEmitListeners","off","offFn","param","queue","hasSelector","current","getDragItems","nodesDraggable","mousePos","dragItems","getEventHandlerParams","findNode","extendedDragItems","dragItem","getExtentPadding","getParentExtent","currentExtent","getExtent","triggerError","parentExtent","VueFlowError","ErrorCode","parentX","parentY","clampNodeExtent","calcNextPosition","nextPosition","nodeExtent","clampedPos","getHandlePosition","handle","fallbackPosition","center","getNodeDimensions","getEdgeHandle","handleId","isEdgeVisible","sourcePos","targetPos","sourceWidth","sourceHeight","targetWidth","targetHeight","edgeBox","viewBox","getEdgeZIndex","elevateEdgesOnSelect","hasZIndex","z","ErrorCode2","messages","parentId","isMouseEvent","isUseDragEvent","getEventPosition","isMouse","evtX","evtY","alwaysValid$1","resetRecentHandle","handleDomNode","getNodesWithinDistance","ADDITIONAL_DISTANCE","getClosestHandle","connectionRadius","fromHandle","closestHandles","minDistance","closeNodes","allHandles","oppositeHandleType","isValidHandle","connectionMode","fromNodeId","fromHandleId","fromType","lib","flowId","isValidConnection","isTarget","handleBelow","handleToCheck","handleType","getHandleType","handleNodeId","connectable","connectableEnd","connection","isValid","getHandle","edgeUpdaterType","getConnectionStatus","isInsideConnectionRadius","isHandleValid","connectionStatus","isConnectionValid","withAbsolutePosition","handles","oppositePosition","productionEnvs","message","isDev","getHandleBounds","nodeElement","nodeBounds","handleBounds","handleNodeClick","multiSelectionActive","addSelectedNodes","removeSelectedNodes","nodesSelectionActive","unselect","nodeEl","addEdgeToStore","edgeParams","updateEdgeAction","newConnection","prevEdge","shouldReplaceId","rest","createGraphNodes","parentNodes","nextNodes","parsed","addConnectionToLookup","connectionKey","connectionLookup","nodeMap","typeMap","handleMap","updateConnectionLookup","edgeLookup","sourceNode","targetNode","sourceKey","targetKey","areSetsEqual","createGraphEdges","nextEdges","findEdge","onError","validEdges","edgeOrConnection","VueFlow","NodeId","NodeRef","EdgeId","EdgeRef","Slots","useDrag","vueFlowRef","noDragClassName","nodeDragThreshold","autoPanOnNodeDrag","autoPanSpeed","panBy","selectNodesOnDrag","removeSelectedElements","updateNodePositions","emits","useVueFlow","onStart","onDrag","onStop","onClick","disabled","dragHandle","dragging","dragHandler","containerBounds","lastPos","mousePosition","dragEvent","dragStarted","nodePositionsChanged","autoPanId","autoPanStarted","getPointerPosition","useGetPointerPosition","updateNodes","hasChange","currentNode","autoPan","nextPos","startDrag","pointerPos","eventStart","eventDrag","eventEnd","isClick","evt","isDisabled","onCleanup","unrefDragHandle","createEdgeHooks","useEdgeHooks","edgeHooks","hooks","xSnapped","ySnapped","alwaysValid","useHandle","onEdgeUpdate","onEdgeUpdateEnd","connectOnClick","connectionClickStartHandle","nodesConnectable","autoPanOnConnect","startConnection","updateConnection","endConnection","isValidConnectionProp","handlePointerDown","isMouseTriggered","clickedHandle","onPointerMove","connectionPosition","closestHandle","isValidConnectionHandler","newConnection2","previousConnection","connectingHandle","prevActiveHandle","onPointerUp","fromHandleInternal","fromNodeInternal","handleClick","isOwnHandle","useNodeId","inject","useNode","createNodeHooks","useNodeHooks","nodeHooks","useUpdateNodePositions","getSelectedNodes","positionDiff","isShiftPressed","xVelo","yVelo","positionDiffX","positionDiffY","nodeUpdates","DEFAULT_PADDING","defaultEase","noop","initialViewportHelper","useViewportHelper","state","transitionOptions","getD3Transition","transformViewport","zoom22","clampedX","clampedY","nextTransform","zoomLevel","nodesToFit","nextZoom","centerX","centerY","domX","domY","correctedPosition","ease","onEnd","hasDuration","useWatchProps","models","store","scope","effectScope","watchModelValue","pauseModel","pauseStore","immediateStore","watchNodesValue","watchEdgesValue","watchMaxZoom","watchMinZoom","watchTranslateExtent","watchNodeExtent","watchApplyDefault","watchAutoConnect","autoConnector","autoConnectEnabled","watchRest","skip","propKey","propValue","toRef","storeRef","nextValue","createHooks","err","useHooks","inst","onBeforeMount","hasVNodeListener","toHandlerKey","head","useState","storeOptionsToSkip","useActions","viewportHelper","updateNodeInternals","ids","updateIds","getIncomers$1","getOutgoers$1","getConnectedEdges$1","getHandleConnections","handleSuffix","updateNodeDimensions","updates","viewportNode","style","elementSelectionHandler","edgeIds","changedNodes","changedEdges","edgeId","nodeChanges","addSelectedEdges","addSelectedElements","removeSelectedEdges","edgeChanges","changes2","curr","selectionChange","setMinZoom","setMaxZoom","setTranslateExtent","setNodeExtent","setPaneClickDistance","clickDistance","setInteractive","isInteractive","setNodes","setEdges","setElements","nextElements","addNodes","graphNodes","addEdges","removeNodes","removeConnectedEdges","removeChildren","nodesToRemove","createEdgeRemovalChanges","nodes2","connectedEdges","createChildrenRemovalChanges","currNode","removeEdges","edgesToRemove","currEdge","updateEdge2","oldEdge","prevEdgeIndex","newEdge","validEdge","updateEdgeData","dataUpdate","nextData","applyNodeChanges2","applyEdgeChanges2","updateNode","nodeUpdate","nextNode","updateNodeData","startHandle","status","getNodeRect","nodeOrRect","isRectObj","getIntersectingNodes","nodeRect","isRect2","intersections","currNodeRect","isNodeIntersecting","delta","d3Zoom","d3Selection","constrainedTransform","transformChanged","setState","opts","exclude","setSkippedOptions","option","transitionOpts","__","___","____","_____","______","_______","_________","resetState","updatedTransform","bbox","_hoisted_1$9","__default__$f","_sfc_main$f","defineComponent","__props","__expose","createPropsRestProxy","connectionStartHandle","connectionEndHandle","noPanClassName","isConnectableStart","isConnectableEnd","isConnecting","_d","_e","_f","isClickConnecting","isConnectable","onMounted","existingBounds","nextBounds","onPointerDown","_ctx","_cache","openBlock","createElementBlock","normalizeClass","renderSlot","DefaultNode","sourcePosition","targetPosition","_label","isValidTargetPos","isValidSourcePos","label","h","Fragment","DefaultNode$1","OutputNode","OutputNode$1","InputNode","InputNode$1","_hoisted_1$8","_hoisted_2$2","_hoisted_3$1","__default__$e","_sfc_main$e","getBox","nextBox","normalizeStyle","createCommentVNode","createElementVNode","mergeProps","createBlock","resolveDynamicComponent","createTextVNode","toDisplayString","_hoisted_1$7","_hoisted_2$1","__default__$d","_sfc_main$d","pathEl","interactionEl","labelEl","attrs","useAttrs","getSimpleEdgeCenter","sourceX","sourceY","targetX","targetY","xOffset","yOffset","getBezierEdgeCenter","sourceControlX","sourceControlY","targetControlX","targetControlY","offsetX","offsetY","calculateControlOffset","curvature","getControlWithCurvature","x1","y1","ctX","ctY","getBezierPath","bezierPathParams","labelX","labelY","getControl","getSimpleBezierPath","simpleBezierPathParams","handleDirections","getDirection","distance","getPoints","sourceDir","targetDir","sourceGapped","targetGapped","dirAccessor","currDir","points","sourceGapOffset","targetGapOffset","defaultCenterX","defaultCenterY","defaultOffsetX","defaultOffsetY","verticalSplit","horizontalSplit","sourceTarget","targetSource","diff","gapOffset","dirAccessorOpposite","isSameDir","sourceGtTargetOppo","sourceLtTargetOppo","sourceGapPoint","targetGapPoint","maxXDistance","maxYDistance","getBend","bendSize","xDir2","yDir2","xDir","yDir","getSmoothStepPath","smoothStepPathParams","borderRadius","res","segment","getStraightPath","straightEdgeParams","StraightEdge","path","StraightEdge$1","SmoothStepEdge","SmoothStepEdge$1","StepEdge","StepEdge$1","BezierEdge","BezierEdge$1","SimpleBezierEdge","SimpleBezierEdge$1","defaultNodeTypes","defaultEdgeTypes","useGetters","getNode","getEdge","getEdgeTypes","edgeTypes","keys","getNodeTypes","nodeTypes","getNodes","getEdges","visibleEdges","getElements","selectedNodes","getSelectedEdges","selectedEdges","getSelectedElements","getNodesInitialized","initializedNodes","areNodesInitialized","Storage","vueApp","existingInstance","flow","preloadedState","reactiveState","reactive","hooksOn","nodesMap","edgesMap","getters","actions","idOrOpts","storage","isOptsObj","vueFlow","injectedState","shouldApplyDefault","nodesChangeHandler","edgesChangeHandler","storedInstance","provide","instance","useResizeHandler","viewportEl","resizeObserver","updateDimensions","onBeforeUnmount","__default__$c","_sfc_main$c","_hoisted_1$6","__default__$b","_sfc_main$b","disableKeyboardA11y","userSelectionActive","updatePositions","selectedNodesBBox","innerStyle","onContextMenu","onKeyDown","getMousePosition","__default__$a","_sfc_main$a","userSelectionRect","elementsSelectable","selectionMode","deleteKeyCode","multiSelectionKeyCode","selectedNodeIds","selectedEdgeIds","hasActiveSelection","connectionInProgress","selectionInProgress","selectionStarted","deleteKeyPressed","multiSelectKeyPressed","isKeyPressed","wrapHandler","containerRef","onWheel","mouseX","mouseY","startX","startY","nextUserSelectRect","prevSelectedNodeIds","prevSelectedEdgeIds","edgesSelectable","connections","$event","__default__$9","_sfc_main$9","fitViewOnInit","fitViewOnInitDone","isHidden","__default__$8","_sfc_main$8","defaultViewport","zoomActivationKeyCode","selectionKeyCode","panActivationKeyCode","panOnScroll","panOnScrollMode","panOnScrollSpeed","panOnDrag","zoomOnDoubleClick","zoomOnPinch","zoomOnScroll","preventScrolling","noWheelClassName","paneDragging","storeD3Zoom","storeD3Selection","storeD3ZoomHandler","viewportRef","paneClickDistance","isZoomingOrPanning","isPanScrolling","panScrollTimeout","zoomedWithRightMouseButton","mouseButton","prevTransform","panKeyPressed","selectionKeyPressed","zoomKeyPressed","shouldPanOnDrag","shouldPanOnScroll","isSelecting","viewportElement","d3ZoomHandler","flowTransform","eventToFlowTransform","isRightClickPan","viewChanged","zoomScroll","pinchZoom","eventButton","isWheelEvent","isWrappedWithClass","buttonAllowed","currentZoom","_isMacOs","pinchDelta","deltaNormalize","deltaX","deltaY","nextViewport","invalidEvent","pan","usedButton","prevViewport","eventTransform","className","createVNode","withCtx","_hoisted_1$5","_hoisted_2","_hoisted_3","__default__$7","_sfc_main$7","ariaLiveMessage","useOnInitHandler","vfInstance","isInitialized","shiftX","shift","shiftY","EdgeAnchor","radius","EdgeAnchor$1","EdgeWrapper","edgeUpdaterRadius","edgesUpdatable","edgesFocusable","slots","mouseOver","updating","edgeEl","isSelectable","isUpdatable","isFocusable","edgeClass","edgeStyle","edgeCmp","slot","edgeType","components","resolveComponent","pathOptions","sourceNodeHandles","targetNodeHandles","onEdgeClick","onEdgeContextMenu","onDoubleClick","onEdgeMouseEnter","onEdgeMouseMove","onEdgeMouseLeave","onEdgeUpdaterSourceMouseDown","onEdgeUpdaterMouseEnter","onEdgeUpdaterMouseOut","onEdgeUpdaterTargetMouseDown","handleEdgeUpdater","isSourceHandle","EdgeWrapper$1","ConnectionLine","connectionLineType","connectionLineStyle","connectionLineOptions","connectionLineComponent","fromNode","_a2","toNode","toXY","markerStart","markerEnd","startHandleId","fromHandleBounds","oppositeBounds","fromPosition","fromX","fromY","toHandle","_a3","toPosition","dAttr","pathParams","ConnectionLine$1","_hoisted_1$4","__default__$6","_sfc_main$6","_hoisted_1$3","__default__$5","_sfc_main$5","defaultColor","markers","markers2","createMarkers","markerId","renderList","__default__$4","_sfc_main$4","NodeWrapper","onUpdateNodeInternals","elevateNodesOnSelect","nodesFocusable","isDraggable","hasPointerEvents","isInit","nodeCmp","nodeType","onSelectNode","getClass","getStyle","styles","zIndex","updateInternals","newX","newY","parentZ","nodeZIndex","xyzPos","nodeExtent2","globalExtent","oldNodeExtent","oldGlobalExtent","clampPosition2","onMouseEnter","onMouseMove","onMouseLeave","NodeWrapper$1","useNodesInitialized","_hoisted_1$1","__default__$2","_sfc_main$2","nodesInitialized","entries","entry","_cached","_memo","isMemoSame","_item","useStylesLoadedWarning","pane","_hoisted_1","__default__$1","_sfc_main$1","useSlots","modelValue","modelNodes","modelEdges","disposeWatchers","onUnmounted","__default__","_sfc_main","positionClasses","NServiceBusHeaders","_export_sfc","sfc","_sfc_render","$props","$setup","$data","$options","ControlButton","_hoisted_2$4","_hoisted_3$4","render$4","PlusIcon","_hoisted_2$3","_hoisted_3$3","render$3","MinusIcon","_hoisted_1$2","_hoisted_3$2","render$2","FitView","render$1","Lock","render","Unlock","zoomIn","zoomOut","fitView","minZoomReached","maxZoomReached","onZoomInHandler","onZoomOutHandler","onFitViewHandler","onInteractiveChangeHandler","Panel","textContainer","tooltipText","updateTooltip","_createElementBlock","_normalizeClass","displayText","formatTypeName","_createVNode","TextEllipses","_createBlock","_resolveDynamicComponent","TypeNameDisplay","DEFAULT_EDGE_NAME","GRAPH_NODE","EDGE_KEY_DELIM","Graph","newDefault","vs","removeEdge","ancestor","predsV","sucsV","preds","union","succ","neighbors","findParent","valueSpecified","arg0","edgeArgsToId","edgeObj","edgeArgsToObj","incrementOrInitEntry","edgeObjToId","decrementOrRemoveEntry","inV","outV","inEdges","map","isDirected","v_","w_","tmp","graph","version","require$$0","require$$1","json","write","read","writeNodes","writeEdges","nodeValue","edgeValue","components_1","visited","cmpts","cmpt","dfs","PriorityQueue","keyIndices","arr","largest","origArrI","origArrJ","priorityQueue","dijkstra_1","dijkstra","DEFAULT_WEIGHT_FUNC","weightFn","edgeFn","runDijkstra","results","pq","vEntry","updateNeighbors","wEntry","weight","dijkstraAll_1","dijkstraAll","weightFunc","edgeFunc","acc","tarjan_1","tarjan","stack","findCycles_1","findCycles","floydWarshall_1","floydWarshall","runFloydWarshall","rowK","rowI","ik","kj","ij","altDistance","topsort","visit","CycleException","topsort_1","isAcyclic_1","isAcyclic","dfs_1","order","navigation","orderFunc","postOrderDfs","preOrderDfs","forEachRight","iteratee","length","postorder_1","postorder","preorder_1","preorder","prim_1","prim","pri","edgeWeight","alg","require$$2","require$$3","require$$4","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","graphlib","List","sentinel","unlink","strs","filterOutLinks","greedyFas","greedyFAS","DEFAULT_WEIGHT_FN","buildState","doGreedyFAS","buckets","zeroIdx","sources","sinks","removeNode","collectPredecessors","uEntry","assignBucket","fasGraph","maxIn","maxOut","prevWeight","range","limit","util","addBorderNode","addDummyNode","applyWithChunking","asNonCompoundGraph","buildLayerMatrix","intersectRect","mapValues","maxRank","normalizeRanks","notime","partition","pick","predecessorWeights","removeEmptyRanks","simplify","successorWeights","uniqueId","zipObject","simplified","simpleLabel","weightMap","sucs","sx","sy","layering","rank","nodeRanks","layers","nodeRankFactor","splitToChunks","chunkSize","CHUNKING_THRESHOLD","chunks","chunk","argsArray","idCounter","step","endCon","dest","funcOrProp","func","values","acyclic","run","undo","dfsFAS","fas","forwardName","normalize","normalizeEdge","vRank","wRank","edgeLabel","labelRank","dummy","origLabel","longestPath","slack","outEdgesMinLens","feasibleTree_1","feasibleTree","tightTree","findMinSlackEdge","shiftRanks","edgeV","edgeSlack","initRank","networkSimplex_1","networkSimplex","initLowLimValues","initCutValues","calcCutValue","leaveEdge","enterEdge","exchangeEdges","assignCutValue","childLab","childIsTail","graphEdge","cutValue","isOutEdge","other","pointsToHead","otherWeight","isTreeEdge","otherCutValue","tree","dfsAssignLowLim","nextLim","low","vLabel","wLabel","tailLabel","flip","candidates","isDescendant","updateRanks","flipped","rootLabel","rankUtil","rank_1","ranker","networkSimplexRanker","tightTreeRanker","longestPathRanker","parentDummyChains_1","parentDummyChains","postorderNums","pathData","findPath","lca","pathIdx","pathV","vPath","wPath","lim","nestingGraph","depths","treeDepths","depthsArr","nodeSep","sumWeights","childNode","childTop","childBottom","thisWeight","minlen","depth","graphLabel","addBorderSegments_1","addBorderSegments","prop","sg","sgNode","prev","coordinateSystem","adjust","rankDir","swapWidthHeight","reverseY","swapXY","swapWidthHeightOne","reverseYOne","swapXYOne","initOrder_1","initOrder","simpleNodes","simpleNodesRanks","crossCount_1","crossCount","cc","twoLayerCrossCount","northLayer","southLayer","southPos","southEntries","firstIndex","treeSize","weightSum","barycenter_1","barycenter","movable","nodeU","resolveConflicts_1","resolveConflicts","cg","mappedEntries","entryV","entryW","sourceSet","doResolveConflicts","handleIn","mergeEntries","handleOut","sum","sort_1","sort","biasRight","parts","sortable","unsortable","vsIndex","compareWithBias","consumeUnsortable","last","bias","sortSubgraph_1","sortSubgraph","bl","br","subgraphs","barycenters","subgraphResult","mergeBarycenters","expandSubgraphs","blPred","brPred","buildLayerGraph_1","buildLayerGraph","relationship","nodesWithRank","createRootNode","addSubgraphConstraints_1","addSubgraphConstraints","rootPrev","prevChild","order_1","downLayerGraphs","buildLayerGraphs","upLayerGraphs","assignOrder","bestCC","best","lastBest","sweepLayerGraphs","ranks","nodesByRank","addNodeToRank","layerGraphs","lg","sorted","layer","bk","positionX","findType1Conflicts","findType2Conflicts","addConflict","hasConflict","verticalAlignment","horizontalCompaction","alignCoordinates","findSmallestWidthAlignment","balance","conflicts","visitLayer","prevLayer","scanPos","prevLayerLength","lastNode","findOtherInnerSegmentNode","scanNode","uLabel","uPos","scan","south","southEnd","prevNorthBorder","nextNorthBorder","uNode","north","prevNorthPos","nextNorthPos","southLookahead","predecessors","conflictsV","neighborFn","align","prevIdx","ws","mp","il","reverseSep","xs","blockG","buildBlockGraph","borderType","iterate","setXsFunc","nextNodesFunc","elem","pass1","pass2","blockGraph","sepFn","sep","vRoot","uRoot","prevMax","xss","currentMinAndXs","halfWidth","newMin","alignTo","alignToVals","alignToMin","alignToMax","vert","horiz","alignment","xsVals","num","adjustedLayering","inner","smallestWidth","edgeSep","position_1","positionY","rankSep","prevY","maxHeight","layout_1","layout","layoutGraph","buildLayoutGraph","runLayout","updateInputGraph","makeSpaceForEdgeLabels","removeSelfEdges","injectEdgeLabelProxies","assignRankMinMax","removeEdgeLabelProxies","insertSelfEdges","positionSelfEdges","removeBorderNodes","fixupEdgeLabelCoords","translateGraph","assignNodeIntersects","reversePointsForReversedEdges","inputGraph","inputLabel","layoutLabel","graphNumAttrs","graphDefaults","graphAttrs","nodeNumAttrs","nodeDefaults","edgeNumAttrs","edgeDefaults","edgeAttrs","canonicalize","selectNumberAttrs","newNode","minX","maxX","minY","maxY","marginX","marginY","getExtremes","nodeV","nodeW","p2","orderShift","selfEdge","selfNode","newAttrs","debug","debugOrdering","layerMatrix","layerV","dagre","useLayout","dagreGraph","graphNode","nodeWithPosition","useMessageStore","conversationData","storeToRefs","getConversation","conversationId","SagaInvocation","saga","sagaIdHeader","getHeaderByKey","originatedSagaIdHeader","MessageNode","isPublished","MessageIntent","isTimeout","sagas","MessageStatus","constructNodes","messageMap","header","constructEdges","relatedTo","parentMessages","parentMessage","addConnection","childMessage","backLink","routeLinks","back","useRouter","errorColor","hexToCSSFilter","selectedErrorColor","_openBlock","_unref","LoadingSpinner","_withCtx","_createElementVNode","_hoisted_4","_normalizeStyle","_directive_tippy","_hoisted_5","_component_RouterLink","_hoisted_6","TimeSince","_hoisted_7","_Fragment","_renderList","SagaName","Controls","Direction","RoutedMessageType","createRoute","routedMessage","processingHandler","MessageProcessingRouteItem","createRoutedMessage","RoutedMessageItem","friendlyTypeName","createProcessingEndpoint","EndpointItem","createSendingEndpoint","EndpointRegistry","#store","endpoint","host","initialHost","Host","hostId","versions","HandlerState","ConversationStartHandlerName","createSendingHandler","sendingEndpoint","HandlerItem","createProcessingHandler","processingEndpoint","updateProcessingHandler","HandlerRegistry","endpointName","existing","hh","mm","ss","timeSent","messageType","ModelCreator","#endpoints","#handlers","#processingRoutes","endpointRegistry","handlerRegistry","firstOrderHandlers","messagesInOrder","MessageTreeNode","sendingHandler","sendingHandlerIsNew","processingHandlerIsNew","orderByHandledAt","#message","#parent","#children","resolved","Endpoint_Width","useSequenceDiagramStore","defineStore","messageStore","router","endpoints","handlers","routes","endpointCentrePoints","maxWidth","handlerLocations","highlightId","isLoading","selectedId","model","setStartX","newValue","setMaxWidth","setMaxHeight","setEndpointCentrePoints","centrePoints","setHandlerLocations","locations","setHighlightId","refreshConversation","navigateTo","messageUniqueId","messageId","isError","Endpoint_Gap","Endpoint_Image_Width","epTextRefs","endpointItems","previousEndpoint","lastEndpoint","setEndpointTextRef","_toDisplayString","timeline","Height_Per_Out","Handler_Gap","Handler_Width","messageTypeRefs","hasMadeVisible","selectedElement","onActivated","scrollToIfSelected","handlerItems","nextY","cp","messageTypeElement","fill","icon","iconSize","messageTypeOffset","setMessageTypeRef","handlerId","Arrow_Head_Width","Message_Type_Margin","arrows","route","fromHandler","fromHandlerLocation","hl","toHandlerLocation","messageTypeElementBounds","arrowIndex","out","toHandlerCentre","direction","arrow","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","formatTime","milliseconds","useFormatTime","useTooltips","useTippy","EndpointTooltip","HandlerTooltip","RouteTooltip","endpointYOffset","FAIcon","faInfoCircle","ev","Timeline","Handlers","Routes","Endpoints","parseContentType","contentType","bodyState","body","CodeEditor","headers","hoverStates","searchTerm","toggleHover","filteredHeaders","FilterInput","_hoisted_8","_hoisted_9","CopyToClipboard","languages","formattedStack","selectedLanguage","detectLanguagesInOrder","text","languageRegexes","detectedLanguages","lang","foundLang","formatStackTrace","stackTrace","selectedLang","lines","fileAndLineNumberRegEx","atRegex","line","spaces","methodWithType","paramsWithFile","method","paramType","paramName","matchFile","file","lineNumber","processStackTrace","rawContent","_createTextVNode","StacktraceFormatter","isConfirmDialogVisible","failureStatus","isVisible","handleConfirm","showToastAfterOperation","TYPE","FailedMessageStatus","ActionButton","faTrash","_Teleport","ConfirmDialog","faUndo","faRefresh","settings","origHeaderValue","headerValue","resetHeaderChanges","markHeaderAsRemoved","faLock","faExclamationTriangle","faPencil","_vModelText","__emit","panel","localMessage","showEditAndRetryConfirmation","showCancelConfirmation","showEditRetryGenericError","edit_and_retry_config","uneditedMessageBody","regExToPruneLineEndings","debounceBodyUpdate","useDebounceFn","close","confirmEditAndRetry","confirmCancel","resetBodyChanges","removeHeadersMarkedAsRemoved","retryEditedMessage","initializeMessageBodyAndHeaders","getHeaderValue","local","parsedContentType","messageIntent","togglePanel","panelNum","_hoisted_15","faExclamationCircle","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","MessageHeader","_hoisted_24","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","closeDialog","editRetryResponse","isEditIgnoredDialogVisible","handleIgnoreClose","useShowToast","openDialog","EditRetryDialog","EditIgnoredDialog","executing","exportMessage","exportedString","downloadFileFromString","faDownload","activePanel","activeComponent","newTabs","tab","_withModifiers","_KeepAlive","useSagaDiagramStore","sagaHistory","sagaId","loading","messageDataLoading","error","showMessageData","fetchedMessages","messagesData","selectedMessageId","scrollToTimeoutRequest","scrollToTimeout","MessageBodyEndpoint","serviceControlStore","useServiceControlStore","newMessageId","setSelectedMessageId","newSagaId","fetchSagaHistory","clearSagaHistory","show","history","fetchMessagesData","setSagaId","response","fetchSagaMessageData","bodyUrl","formatUrl","stringify","xmlRootElement","getContentOfXmlRootElement","xmlFormat","xml","rootElement","rootElementText","getAuditMessages","template","toggleMessageData","messagesToFetch","msg","auditMessages","auditMessage","fetchPromises","newMessageData","typeToName","objectName","parseDeliveryDelay","days","timeComponent","hours","minutes","seconds","getFriendly","getTimeoutFriendly","delivery_delay","parseSagaUpdates","timeoutMessageIds","startTime","finishTime","initiatingMessageTimestamp","initiatingMessageData","findMessageData","createEmptyMessageData","outgoingMessages","hasTimeout","timeoutSeconds","isEventMessage","messageData","outgoingTimeoutMessages","hasBeenProcessed","regularMessages","hasRelatedTimeoutRequest","NoSagaIcon","DiffMaximizeIcon","DiffCloseIcon","_useModel","showMaximizeModal","showMaximizeButton","toggleMaximizeModal","onEditorMouseEnter","onEditorMouseLeave","handleKeyDown","_renderSlot","modalTitle","sagaDiagramStore","MaximizableCodeEditor","TimeoutIcon$1","SagaTimeoutIcon","timeoutMessageRef","shouldBeActive","navigateToTimeout","scrollRequest","shouldScroll","refExists","_withDirectives","TimeoutIcon","MessageDataBox","CommandIcon","EventIcon","Diff","oldStr","newStr","oldString","newString","oldTokens","newTokens","done","newLen","oldLen","editLength","maxEditLength","maxExecutionTime","abortAfterTimestamp","bestPath","newPos","minDiagonalToConsider","maxDiagonalToConsider","execEditLength","diagonalPath","basePath","removePath","addPath","canAdd","addPathNewPos","canRemove","exec","ret","added","removed","oldPosInc","oldPos","commonCount","chars","changeObjects","lastComponent","nextComponent","componentLen","componentPos","component","oldValue","CharacterDiff","characterDiff","diffChars","longestCommonPrefix","str1","str2","longestCommonSuffix","replacePrefix","oldPrefix","newPrefix","replaceSuffix","oldSuffix","newSuffix","removePrefix","removeSuffix","maximumOverlap","string2","overlapCount","startA","endB","trailingWs","leadingWs","extendedWordChars","tokenizeIncludingWhitespace","WordDiff","segmenter","tokens","prevPart","part","token","lastKeep","insertion","deletion","dedupeWhitespaceInChangeObjects","wordDiff","diffWords","startKeep","endKeep","oldWsPrefix","oldWsSuffix","newWsPrefix","newWsSuffix","commonWsPrefix","commonWsSuffix","newWsFull","delWsStart","delWsEnd","newWsStart","newWsEnd","endKeepWsPrefix","deletionWsSuffix","overlap","startKeepWsSuffix","deletionWsPrefix","WordsWithSpaceDiff","regex","wordsWithSpaceDiff","diffWordsWithSpace","generateOptions","defaults","LineDiff","tokenize","lineDiff","diffLines","diffTrimmedLines","retLines","linesAndNewlines","isSentenceEndPunct","char","SentenceDiff","tokenStartI","sentenceDiff","diffSentences","CssDiff","cssDiff","diffCss","lineInformation","diffLineIndexes","expandedBlocks","computeDiff","compareMethod","diffOutput","diffLinesArray","leftLineNumber","rightLineNumber","counter","onBlockExpand","renderDiff","showDiffOnly","extraLinesSurroundingDiff","extraLines","skippedLines","currentDiffLines","diffBlockStart","currentPosition","itemIndex","onDiffMouseEnter","onDiffMouseLeave","DiffContent","SagaInitiatedIcon","SagaUpdatedIcon","monospaceTheme","EditorView","initiatingMessageRef","hasParsingError","navigateToTimeoutRequest","scrollTimeout","formatJsonValue","processState","stateObj","sagaUpdateStateChanges","currentState","previousState","isFirstNode","currentFormatted","hasStateChanges","DiffViewer","msgIndex","SagaOutgoingMessage","SagaOutgoingTimeoutMessage","SagaCompletedIcon","hasSaga","completedUpdate","completionTime","faListUl","SagaPluginNeeded","SagaHeader","SagaUpdateNode","SagaCompletedNode","NoSagaData","useRoute","configurationStore","useConfigurationStore","isMassTransitConnected","hasParticipatedInSaga","tabs","currentTabs","BodyView","HeadersView","StackTraceView","FlowDiagram","SequenceDiagram","SagaDiagram","oldId","oldMessageId","endpointColor","otherArgs","NoData","RouterLink","faChevronLeft","MetadataLabel","MetadataItem","faClockRotateLeft","faClock","faLaptop","DeleteMessageButton","RestoreMessageButton","RetryMessageButton","EditAndRetryButton","ExportMessageButton","TabsLayout"],"mappings":"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","x_google_ignoreList":[0,2,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,102,103,104,105,106,107,108,109]} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js b/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js new file mode 100644 index 0000000000..1e65cc9726 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js @@ -0,0 +1,2 @@ +import{e as o,m as s,n as a,p as n,t as c,Z as r,_ as m,U as i}from"./index-tFZp7u44.js";const _={class:"metadata"},d=o({__name:"MetadataItem",props:{icon:{}},setup(e){return(t,l)=>(a(),s("span",_,[e.icon?(a(),n(m,{key:0,icon:e.icon,class:"icon"},null,8,["icon"])):c("",!0),r(t.$slots,"default",{},void 0,!0)]))}}),u=i(d,[["__scopeId","data-v-2e0b1295"]]);export{u as M}; +//# sourceMappingURL=MetadataItem-CGsZJtRl.js.map diff --git a/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js.map b/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js.map new file mode 100644 index 0000000000..79bda59539 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MetadataItem-CGsZJtRl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MetadataItem-CGsZJtRl.js","sources":["../../../../frontend/src/components/MetadataItem.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","__props","_createBlock","FAIcon","_renderSlot","_ctx"],"mappings":"sLAYEA,EAAA,EAAAC,EAGO,OAHPC,EAGO,CAFSC,EAAA,UAAdC,EAAgDC,EAAA,OAA3B,KAAMF,EAAA,KAAM,MAAM,MAAA,6BACvCG,EAAQC,EAAA,OAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/MetadataItem-DN99PeIG.css b/src/ServiceControl/wwwroot/assets/MetadataItem-DN99PeIG.css new file mode 100644 index 0000000000..96fedd0ab9 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/MetadataItem-DN99PeIG.css @@ -0,0 +1 @@ +.metadata[data-v-2e0b1295]{display:inline-flex;align-items:center;gap:.25rem}.icon[data-v-2e0b1295]{margin-right:.25rem;color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js b/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js new file mode 100644 index 0000000000..642a90a50f --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js @@ -0,0 +1,2 @@ +import{e as c,m as i,n as a,q as t,U as l}from"./index-tFZp7u44.js";const f={class:"onoffswitch"},d=["id","name","aria-label","checked"],h=["for"],m=c({__name:"OnOffSwitch",props:{id:{},value:{type:[Boolean,null]}},emits:["toggle"],setup(e,{emit:n}){const s=n;return(r,o)=>(a(),i("div",f,[t("input",{type:"checkbox",id:`onoffswitch${e.id}`,name:`onoffswitch${e.id}`,"aria-label":`onoffswitch${e.id}`,class:"onoffswitch-checkbox",onClick:o[0]||(o[0]=w=>s("toggle")),checked:e.value??!1},null,8,d),t("label",{class:"onoffswitch-label",for:`onoffswitch${e.id}`},[...o[1]||(o[1]=[t("span",{class:"onoffswitch-inner"},null,-1),t("span",{class:"onoffswitch-switch"},null,-1)])],8,h)]))}}),b=l(m,[["__scopeId","data-v-96001b4f"]]);export{b as O}; +//# sourceMappingURL=OnOffSwitch-CICGC8TS.js.map diff --git a/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js.map b/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js.map new file mode 100644 index 0000000000..288e446eef --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OnOffSwitch-CICGC8TS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OnOffSwitch-CICGC8TS.js","sources":["../../../../frontend/src/components/OnOffSwitch.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["emit","__emit","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","__props"],"mappings":"0PAMA,MAAMA,EAAOC,gBAIXC,EAAA,EAAAC,EAMM,MANNC,EAMM,CALJC,EAA6L,QAAA,CAAtL,KAAK,WAAY,iBAAkBC,EAAA,EAAE,GAAK,mBAAoBA,EAAA,EAAE,GAAK,2BAA0BA,EAAA,EAAE,GAAI,MAAM,uBAAwB,uBAAON,EAAI,QAAA,GAAa,QAASM,EAAA,OAAK,EAAA,YAChLD,EAGQ,QAAA,CAHD,MAAM,oBAAqB,kBAAmBC,EAAA,EAAE,EAAA,mBACrDD,EAAuC,OAAA,CAAjC,MAAM,mBAAA,EAAmB,KAAA,EAAA,EAC/BA,EAAwC,OAAA,CAAlC,MAAM,oBAAA,EAAoB,KAAA,EAAA,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/OnOffSwitch-yDbBTf0a.css b/src/ServiceControl/wwwroot/assets/OnOffSwitch-yDbBTf0a.css new file mode 100644 index 0000000000..9edf50d056 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OnOffSwitch-yDbBTf0a.css @@ -0,0 +1 @@ +.onoffswitch[data-v-96001b4f]{-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;position:relative;width:76px}.onoffswitch-checkbox[data-v-96001b4f]{display:none}.onoffswitch-label[data-v-96001b4f]{border:2px solid var(--reduced-emphasis);border-radius:20px;cursor:pointer;display:block;margin-top:8px;overflow:hidden}.onoffswitch-inner[data-v-96001b4f]{display:block;margin-left:-100%;transition:margin .3s ease-in 0s;width:200%}.onoffswitch-inner[data-v-96001b4f]:before,.onoffswitch-inner[data-v-96001b4f]:after{box-sizing:border-box;color:#fff;display:block;float:left;font-family:Trebuchet,Arial,sans-serif;font-size:14px;font-weight:700;height:30px;line-height:30px;padding:0;width:50%}.onoffswitch-inner[data-v-96001b4f]:before{background-color:var(--sp-blue);color:#fff;content:"ON";padding-left:10px}.onoffswitch-inner[data-v-96001b4f]:after{background-color:#f2f6f7;color:var(--reduced-emphasis);content:"OFF";padding-right:10px;text-align:right}.onoffswitch-switch[data-v-96001b4f]{background:#fff;border:2px solid var(--reduced-emphasis);border-radius:20px;bottom:0;display:block;margin:6px;position:absolute;right:42px;top:0;transition:all .3s ease-in 0s;width:22px}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-inner[data-v-96001b4f]{margin-left:0}.onoffswitch-checkbox:checked+.onoffswitch-label .onoffswitch-switch[data-v-96001b4f]{right:0} diff --git a/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js b/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js new file mode 100644 index 0000000000..2d7dccc05c --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js @@ -0,0 +1,2 @@ +import{e as P,ay as $,r as w,o as B,a7 as h,a8 as U,n as d,m as l,q as n,y as p,B as u,K as L,L as N,z as g,S as i,v as _,_ as m,g as x,U as V}from"./index-tFZp7u44.js";const A={class:"msg-group-menu dropdown"},F={type:"button",class:"btn dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},q={class:"dropdown-menu"},z=["onClick"],E=["onClick"],I=P({__name:"OrderBy",props:{hideSort:{type:Boolean,default:!1},sortOptions:{},sortSavePrefix:{}},emits:["sortUpdated"],setup(D,{emit:O}){const f=O,o=D,r=$().cookies,a=w(o.sortOptions[0].description);function S(){return o.sortOptions}function b(t,e){r.set(`${o.sortSavePrefix?o.sortSavePrefix:""}sortCriteria`,t),r.set(`${o.sortSavePrefix?o.sortSavePrefix:""}sortDirection`,e)}function k(){const t=r.get(`${o.sortSavePrefix?o.sortSavePrefix:""}sortCriteria`),e=r.get(`${o.sortSavePrefix?o.sortSavePrefix:""}sortDirection`);if(t&&e){const s=S().find(c=>c.description.toLowerCase()===t.toLowerCase());if(s)return{...s,sort:x(s.selector,e),dir:e}}return o.sortOptions[0]}function v(t,e){a.value=t.description+(e===i.Descending?" (Descending)":""),b(t.description,e),f("sortUpdated",{...t,dir:e,sort:x(t.selector,e)})}function y(){const t=k();a.value=`${t.description}${t.dir===i.Descending?" (Descending)":""}`,f("sortUpdated",t)}return B(()=>{y()}),(t,e)=>h((d(),l("div",A,[e[2]||(e[2]=n("label",{class:"control-label"},"Sort by:",-1)),n("button",F,[p(u(a.value)+" ",1),e[0]||(e[0]=n("span",{class:"caret"},null,-1))]),n("ul",q,[(d(!0),l(L,null,N(S(),(s,c)=>(d(),l("span",{key:c},[n("li",null,[n("button",{onClick:C=>v(s,g(i).Ascending)},[_(m,{icon:s.iconAsc,class:"icon"},null,8,["icon"]),p(" "+u(s.description),1)],8,z)]),n("li",null,[n("button",{onClick:C=>v(s,g(i).Descending)},[_(m,{icon:s.iconDesc,class:"icon"},null,8,["icon"]),p(" "+u(s.description),1),e[1]||(e[1]=n("span",null," (Descending)",-1))],8,E)])]))),128))])],512)),[[U,!o.hideSort]])}}),M=V(I,[["__scopeId","data-v-214dc804"]]);export{M as O}; +//# sourceMappingURL=OrderBy-Bnnuz_3H.js.map diff --git a/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js.map b/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js.map new file mode 100644 index 0000000000..76f3753654 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OrderBy-Bnnuz_3H.js.map @@ -0,0 +1 @@ +{"version":3,"file":"OrderBy-Bnnuz_3H.js","sources":["../../../../frontend/src/components/OrderBy.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["emit","__emit","props","__props","cookies","useCookies","selectedSort","ref","getSortOptions","saveSortOption","sortCriteria","sortDirection","loadSavedSortOption","criteria","direction","sortBy","sort","getSortFunction","sortUpdated","dir","SortDirection","setSortOptions","savedSort","onMounted","_withDirectives","_openBlock","_createElementBlock","_hoisted_1","_cache","_createElementVNode","_hoisted_2","_createTextVNode","_toDisplayString","_hoisted_3","_Fragment","_renderList","index","_unref","_createVNode","FAIcon","_vShow"],"mappings":"whBAOA,MAAMA,EAAOC,EAIPC,EAAQC,EAWRC,EAAUC,IAAa,QAEvBC,EAAeC,EAAIL,EAAM,YAAY,CAAC,EAAE,WAAW,EAEzD,SAASM,GAAiB,CACxB,OAAON,EAAM,WACf,CAEA,SAASO,EAAeC,EAAsBC,EAA8B,CAC1EP,EAAQ,IAAI,GAAGF,EAAM,eAAiBA,EAAM,eAAiB,EAAE,eAAgBQ,CAAY,EAC3FN,EAAQ,IAAI,GAAGF,EAAM,eAAiBA,EAAM,eAAiB,EAAE,gBAAiBS,CAAa,CAC/F,CAEA,SAASC,GAAsB,CAC7B,MAAMC,EAAWT,EAAQ,IAAI,GAAGF,EAAM,eAAiBA,EAAM,eAAiB,EAAE,cAAc,EACxFY,EAAYV,EAAQ,IAAI,GAAGF,EAAM,eAAiBA,EAAM,eAAiB,EAAE,eAAe,EAEhG,GAAIW,GAAYC,EAAW,CACzB,MAAMC,EAASP,EAAA,EAAiB,KAAMQ,GAC7BA,EAAK,YAAY,YAAA,IAAkBH,EAAS,YAAA,CACpD,EACD,GAAIE,EACF,MAAO,CACL,GAAGA,EACH,KAAME,EAAgBF,EAAO,SAAUD,CAAS,EAChD,IAAKA,CAAA,CAGX,CAEA,OAAOZ,EAAM,YAAY,CAAC,CAC5B,CAEA,SAASgB,EAAYF,EAAsBG,EAAoB,CAC7Db,EAAa,MAAQU,EAAK,aAAeG,IAAQC,EAAc,WAAa,gBAAkB,IAC9FX,EAAeO,EAAK,YAAaG,CAAG,EAEpCnB,EAAK,cAAe,CAClB,GAAGgB,EACH,IAAAG,EACA,KAAMF,EAAmBD,EAAK,SAAUG,CAAG,CAAA,CAC5C,CACH,CAEA,SAASE,GAAiB,CACxB,MAAMC,EAAYV,EAAA,EAClBN,EAAa,MAAQ,GAAGgB,EAAU,WAAW,GAAGA,EAAU,MAAQF,EAAc,WAAa,gBAAkB,EAAE,GAEjHpB,EAAK,cAAesB,CAAS,CAC/B,CAEA,OAAAC,EAAU,IAAM,CACdF,EAAA,CACF,CAAC,SAICG,GAAAC,EAAA,EAAAC,EAgBM,MAhBNC,EAgBM,CAfJC,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAA6C,QAAA,CAAtC,MAAM,eAAA,EAAgB,WAAQ,EAAA,GACrCA,EAGS,SAHTC,EAGS,CAFJC,EAAAC,EAAA1B,EAAA,KAAY,EAAG,IAClB,CAAA,cAAAuB,EAA2B,OAAA,CAArB,MAAM,SAAO,KAAA,EAAA,EAAA,GAErBA,EASK,KATLI,EASK,EARHR,EAAA,EAAA,EAAAC,EAOOQ,EAAA,KAAAC,EAPuB3B,EAAA,EAAc,CAA9BQ,EAAMoB,SAApBV,EAOO,OAAA,CAP0C,IAAKU,GAAK,CACzDP,EAEK,KAAA,KAAA,CADHA,EAAwI,SAAA,CAA/H,WAAOX,EAAYF,EAAMqB,EAAAjB,CAAA,EAAc,SAAS,CAAA,GAAGkB,EAA4CC,EAAA,CAAnC,KAAMvB,EAAK,QAAS,MAAM,MAAA,qBAAS,IAACgB,EAAGhB,EAAK,WAAW,EAAA,CAAA,CAAA,SAE9Ha,EAEK,KAAA,KAAA,CADHA,EAAoK,SAAA,CAA3J,WAAOX,EAAYF,EAAMqB,EAAAjB,CAAA,EAAc,UAAU,CAAA,GAAGkB,EAA6CC,EAAA,CAApC,KAAMvB,EAAK,SAAU,MAAM,MAAA,qBAAS,IAACgB,EAAGhB,EAAK,WAAW,EAAA,CAAA,EAAGY,EAAA,CAAA,IAAAA,EAAA,CAAA,EAAAC,EAA0B,YAApB,gBAAa,EAAA,EAAA,6BAZ9G,CAAAW,EAAA,CAAAtC,EAAM,QAAQ,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/OrderBy-DU841xGD.css b/src/ServiceControl/wwwroot/assets/OrderBy-DU841xGD.css new file mode 100644 index 0000000000..878ca9b7e9 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/OrderBy-DU841xGD.css @@ -0,0 +1 @@ +.dropdown-menu[data-v-214dc804]{border-radius:4px;font-size:14px;font-weight:100;text-align:left;list-style:none}.dropdown-menu>span>li>button[data-v-214dc804]{border:none;background:none}.dropdown-menu>span>li>button[data-v-214dc804],.dropdown-menu>li>button[data-v-214dc804],.dropdown-menu>li>a[data-v-214dc804],.dropdown-menu>span>li>a[data-v-214dc804]{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}ul.dropdown-menu>span>li>a>span[data-v-214dc804]{color:#aaa}.dropdown-menu>span>li>a[data-v-214dc804]:hover,.dropdown-menu>span>li>a[data-v-214dc804]:focus,.dropdown-menu>li>a[data-v-214dc804]:hover,.dropdown-menu>li>a[data-v-214dc804]:focus,.dropdown-menu>span>li>button[data-v-214dc804]:hover,.dropdown-menu>span>li>button[data-v-214dc804]:focus,.dropdown-menu>li>button[data-v-214dc804]:hover,.dropdown-menu>li>button[data-v-214dc804]:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.msg-list-dropdown[data-v-214dc804]{margin:1px 0 0!important;padding-right:0}.msg-group-menu[data-v-214dc804]{margin:21px 0 0 6px;float:right;padding-top:12px}.msg-group-menu>.control-label[data-v-214dc804]{float:none}.btn.sp-btn-menu[data-v-214dc804]{padding-left:16px;background:none;border:none;color:var(--sp-blue);padding-right:0}.btn-toolbar>.btn-default[data-v-214dc804]:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.dropdown-menu .fa[data-v-214dc804]{padding-right:5px}.btn.sp-btn-menu[data-v-214dc804]{background:none;border:none;color:var(--sp-blue);padding-right:16px;padding-left:16px}.sp-btn-menu[data-v-214dc804]:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline}.msg-group-menu[data-v-214dc804]{margin:21px 0 0 6px;padding-right:15px;float:right}.btn.sp-btn-menu[data-v-214dc804]:active{background:none;border:none;color:var(--sp-blue);text-decoration:underline;-webkit-box-shadow:none;box-shadow:none}.sp-btn-menu>i[data-v-214dc804]{color:var(--sp-blue)}.dropdown-menu li button[data-v-214dc804]{width:100%;text-align:left}.icon[data-v-214dc804]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/PendingRetries-DCNPm-hn.css b/src/ServiceControl/wwwroot/assets/PendingRetries-DCNPm-hn.css new file mode 100644 index 0000000000..d702f3ac7a --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PendingRetries-DCNPm-hn.css @@ -0,0 +1 @@ +.lead[data-v-492585ac],.box p .lead[data-v-492585ac]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-492585ac]{cursor:pointer}.input-group-text[data-v-492585ac]{margin-bottom:0}.input-group-text>span[data-v-492585ac]{font-size:14px;color:#555}.input-group>select[data-v-492585ac]{font-size:14px;color:#777}.input-group>select[data-chosen=true][data-v-492585ac]{color:#212529}.input-group>select[data-v-492585ac]:hover{box-shadow:0 0 10px 100px var(--bs-btn-hover-bg) inset;color:#212529}.input-group-btn:last-child>.btn[data-v-492585ac]{border-top-left-radius:0;border-bottom-left-radius:0}.action-btns>.btn[data-v-492585ac]{margin-right:5px}.dropdown-toggle.btn-default[data-v-492585ac]:hover{background:none;border:none;color:var(--sp-blue)}.icon[data-v-492585ac]{color:var(--reduced-emphasis);padding-right:6px}.icon.info[data-v-492585ac]{color:#31708f} diff --git a/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js b/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js new file mode 100644 index 0000000000..f3005e338a --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js @@ -0,0 +1,2 @@ +import{e as me,u as ye,aD as we,s as be,ay as Se,r as a,ap as Ce,w as he,ad as ke,o as Ae,p as c,n as r,x as f,v as n,aq as De,q as t,m as T,t as p,y as g,_ as q,z as i,aE as Re,aF as $e,a7 as _e,aG as Ie,K,L as W,B as b,aH as Te,ah as S,aI as Me,ai as Fe,av as Z,aw as J,ar as Oe,as as xe,aJ as Y,aK as j,a5 as Pe,T as qe,C,ax as Ee,S as He,aC as Le,P as E,Q as H,U as Ne}from"./index-tFZp7u44.js";import{O as Be}from"./OrderBy-Bnnuz_3H.js";import{M as Ve}from"./MessageList-Crzvyqel.js";const Ue={name:"pending_retries"},Ge={class:"row"},Qe={class:"col-12"},ze={class:"alert alert-info"},Ke={href:"https://docs.particular.net/nservicebus/operations/auditing",target:"_blank"},We={key:0,class:"col-12"},Ze={class:"row"},Je={class:"col-6"},Ye={class:"filter-input"},je={class:"input-group mb-3"},Xe={class:"input-group-text"},es=["value"],ss={class:"input-group-btn"},ts={class:"col-6"},os={class:"msg-group-menu dropdown"},as={type:"button",class:"btn btn-default dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},ns={class:"dropdown-menu"},ls=["onClick"],rs={class:"row"},is={class:"col-6 col-xs-12 toolbar-menus"},ds={class:"action-btns"},us={class:"row"},cs={class:"col-12"},vs={class:"row"},X=50,fs=me({__name:"PendingRetries",setup(ps){const v=ye(),ee=we(),{isMassTransitConnected:se}=be(ee);let M,F;const L=Se().cookies,h=a("All Pending Retries"),N=a([]),l=Ce("messageList"),k=a([]),d=a("empty"),A=a(!1),D=a(!1),R=a(!1),$=a(!1),_=a(!1),I=a(1),B=a(0),V=a(!0),te=[{description:"Time of failure",iconAsc:J,iconDesc:Z},{description:"Message Type",iconAsc:xe,iconDesc:Oe},{description:"Time of retry request",iconAsc:J,iconDesc:Z}],U=["All Pending Retries","Retried in the last 2 Hours","Retried in the last 1 Day","Retried in the last 7 Days"];he(I,()=>u());async function oe(){const[,s]=await v.fetchTypedFromServiceControl("errors/queues/addresses");N.value=s.map(e=>e.physical_address)}function ae(){d.value="empty",u()}function u(){let s=new Date(0);const e=new Date;switch(h.value){case"Retried in the last 2 Hours":s=new Date,s.setHours(s.getHours()-2);break;case"Retried in the last 1 Day":s=new Date,s.setHours(s.getHours()-24);break;case"Retried in the last 7 days":s=new Date,s.setHours(s.getHours()-168);break}return ne(I.value,d.value,s,e,F?.description.replaceAll(" ","_").toLowerCase(),F?.dir)}async function ne(s,e,o,m,O,z){O??="time_of_failure",z??=He.Descending,e==="empty"&&(e="");try{const[x,P]=await v.fetchTypedFromServiceControl(`errors?status=${Le.RetryIssued}&page=${s}&per_page=${X}&sort=${O}&direction=${z}&queueaddress=${e}&modified=${o.toISOString()}...${m.toISOString()}`);B.value=parseInt(x.headers.get("Total-Count")??"0"),k.value.forEach(y=>{const w=P.find(ge=>ge.id===y.id);w&&(y.last_modified===w.last_modified&&(w.submittedForRetrial=y.submittedForRetrial,w.resolved=y.resolved),w.selected=y.selected)}),k.value=P}catch(x){return console.log(x),{message:"error"}}}function le(){return l.value?.numberDisplayed()}function re(){return l.value?.isAnythingDisplayed()}function G(){return l.value?.isAnythingSelected()}function Q(){return l.value?.getSelectedMessages()?.length??0}async function ie(){const s=l.value?.getSelectedMessages()??[];E(H.INFO,"Info","Selected messages were submitted for retry..."),await v.postToServiceControl("pendingretries/retry",s.map(e=>e.id)),l.value?.deselectAll(),s.forEach(e=>e.submittedForRetrial=!0)}async function de(){const s=l.value?.getSelectedMessages()??[];E(H.INFO,"Info","Selected messages were marked as resolved."),await v.patchToServiceControl("pendingretries/resolve",{uniquemessageids:s.map(e=>e.id)}),l.value?.deselectAll(),s.forEach(e=>e.resolved=!0)}async function ue(){E(H.INFO,"Info","All filtered messages were marked as resolved."),await v.patchToServiceControl("pendingretries/resolve",{from:new Date(0).toISOString(),to:new Date().toISOString()}),l.value?.deselectAll(),l.value?.resolveAll()}async function ce(){let s="pendingretries/retry";const e={from:new Date(0).toISOString(),to:new Date(0).toISOString()};d.value!=="empty"&&(s="pendingretries/queues/retry",e.queueaddress=d.value),await v.postToServiceControl(s,e),k.value.forEach(o=>{o.selected=!1,o.submittedForRetrial=!0,o.retried=!1})}function ve(){d.value==="empty"?$.value=!0:_.value=!0}function fe(s){F=s,V.value||u()}function pe(s){h.value=s,L.set("pending_retries_period",s),u()}return ke(()=>{M!=null&&window.clearInterval(M)}),Ae(()=>{let s=L.get("pending_retries_period");s||(s=U[0]),h.value=s,oe(),u(),M=window.setInterval(()=>{u()},5e3),V.value=!1}),(s,e)=>(r(),c(Ee,null,{default:f(()=>[n(De,null,{default:f(()=>[t("section",Ue,[t("div",Ge,[t("div",Qe,[t("div",ze,[n(q,{icon:i(Re),class:"icon info"},null,8,["icon"]),e[19]||(e[19]=g(" To check if a retried message was also processed successfully, enable ",-1)),t("a",Ke,[e[18]||(e[18]=g("message auditing ",-1)),n(q,{icon:i($e)},null,8,["icon"])])])]),i(se)?(r(),T("div",We,[...e[20]||(e[20]=[t("div",{class:"alert alert-info"},"MassTransit endpoints currently do not report when a pending retry has succeeded, and therefore any messages associated with those endpoints will need to be manually marked as resolved.",-1)])])):p("",!0)]),t("div",Ze,[t("div",Je,[t("div",Ye,[t("div",je,[t("label",Xe,[n(q,{icon:i(Ie),size:"sm",class:"icon"},null,8,["icon"]),e[21]||(e[21]=g()),e[22]||(e[22]=t("span",{class:"hidden-xs"},"Filter",-1))]),_e(t("select",{class:"form-select",id:"inputGroupSelect01",onchange:"this.dataset.chosen = true;",onChange:e[0]||(e[0]=o=>u()),"onUpdate:modelValue":e[1]||(e[1]=o=>d.value=o)},[e[23]||(e[23]=t("option",{selected:"",disabled:"",hidden:"",class:"placeholder",value:"empty"},"Select a queue...",-1)),(r(!0),T(K,null,W(N.value,(o,m)=>(r(),T("option",{key:m,value:o},b(o),9,es))),128))],544),[[Te,d.value]]),t("span",ss,[n(S,{onClick:e[2]||(e[2]=o=>ae()),icon:i(Me)},null,8,["icon"])])])])]),t("div",ts,[t("div",os,[e[25]||(e[25]=t("label",{class:"control-label"},"Period:",-1)),t("button",as,[g(b(h.value)+" ",1),e[24]||(e[24]=t("span",{class:"caret"},null,-1))]),t("ul",ns,[(r(),T(K,null,W(U,(o,m)=>t("li",{key:m},[t("a",{onClick:Fe(O=>pe(o),["prevent"])},b(o),9,ls)])),64))])]),n(Be,{onSortUpdated:fe,hideGroupBy:!0,sortOptions:te,sortSavePrefix:"pending_retries"})])]),t("div",rs,[t("div",is,[t("div",ds,[n(S,{icon:i(Y),disabled:!G(),onClick:e[3]||(e[3]=o=>A.value=!0)},{default:f(()=>[e[26]||(e[26]=t("span",null,"Retry",-1)),g(" ("+b(Q())+")",1)]),_:1},8,["icon","disabled"]),n(S,{icon:i(j),disabled:!G(),onClick:e[4]||(e[4]=o=>D.value=!0)},{default:f(()=>[e[27]||(e[27]=t("span",null,"Mark as resolved",-1)),g(" ("+b(Q())+")",1)]),_:1},8,["icon","disabled"]),n(S,{icon:i(Y),disabled:!re(),onClick:e[5]||(e[5]=o=>ve())},{default:f(()=>[...e[28]||(e[28]=[t("span",null,"Retry all",-1)])]),_:1},8,["icon","disabled"]),n(S,{icon:i(j),onClick:e[6]||(e[6]=o=>R.value=!0)},{default:f(()=>[...e[29]||(e[29]=[t("span",null,"Mark all as resolved",-1)])]),_:1},8,["icon"])])])]),t("div",us,[t("div",cs,[n(Ve,{messages:k.value,ref_key:"messageList",ref:l},null,8,["messages"])])]),t("div",vs,[n(Pe,{modelValue:I.value,"onUpdate:modelValue":e[7]||(e[7]=o=>I.value=o),"total-count":B.value,"items-per-page":X},null,8,["modelValue","total-count"])]),(r(),c(qe,{to:"#modalDisplay"},[A.value===!0?(r(),c(C,{key:0,onCancel:e[8]||(e[8]=o=>A.value=!1),onConfirm:e[9]||(e[9]=o=>{A.value=!1,ie()}),heading:"Are you sure you want to retry the selected messages?",body:"Ensure that the selected messages were not processed previously as this will create a duplicate message.","second-paragraph":"NOTE: If the selection includes messages to be processed via unaudited endpoints, those messages will need to be marked as resolved once the retry is manually verified"})):p("",!0),D.value===!0?(r(),c(C,{key:1,onCancel:e[10]||(e[10]=o=>D.value=!1),onConfirm:e[11]||(e[11]=o=>{D.value=!1,de()}),heading:"Are you sure you want to mark as resolved the selected messages?",body:"If you mark these messages as resolved they will not be available for Retry. Messages should only be marked as resolved only if they belong to unaudited endpoints."})):p("",!0),R.value===!0?(r(),c(C,{key:2,onCancel:e[12]||(e[12]=o=>R.value=!1),onConfirm:e[13]||(e[13]=o=>{R.value=!1,ue()}),heading:"Are you sure you want to resolve all messages?",body:`Are you sure you want to mark all ${le()} messages as resolved? If you do they will not be available for Retry.`},null,8,["body"])):p("",!0),$.value===!0?(r(),c(C,{key:3,onCancel:e[14]||(e[14]=o=>$.value=!1),onConfirm:e[15]||(e[15]=o=>$.value=!1),"hide-cancel":!0,heading:"Select a queue first",body:"Bulk retry of messages can only be done for one queue at the time to avoid producing unwanted message duplicates."})):p("",!0),_.value===!0?(r(),c(C,{key:4,onCancel:e[16]||(e[16]=o=>_.value=!1),onConfirm:e[17]||(e[17]=o=>{_.value=!1,ce()}),heading:"Confirm retry of all messages?",body:"Are you sure you want to retry all previously retried messages? If the selected messages were processed in the meanwhile, then duplicate messages will be produced."})):p("",!0)]))])]),_:1})]),_:1}))}}),ws=Ne(fs,[["__scopeId","data-v-492585ac"]]);export{ws as default}; +//# sourceMappingURL=PendingRetries-DOXP1zqO.js.map diff --git a/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js.map b/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js.map new file mode 100644 index 0000000000..582673b454 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PendingRetries-DOXP1zqO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PendingRetries-DOXP1zqO.js","sources":["../../../../frontend/src/components/failedmessages/PendingRetries.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["perPage","serviceControlStore","useServiceControlStore","configurationStore","useConfigurationStore","isMassTransitConnected","storeToRefs","refreshInterval","sortMethod","cookies","useCookies","selectedPeriod","ref","endpoints","messageList","useTemplateRef","messages","selectedQueue","showConfirmRetry","showConfirmResolve","showConfirmResolveAll","showCantRetryAll","showRetryAllConfirm","pageNumber","totalCount","isInitialLoad","sortOptions","faArrowDownShortWide","faArrowDownWideShort","faArrowDownAZ","faArrowDownZA","periodOptions","watch","loadPendingRetryMessages","loadEndpoints","data","endpoint","clearSelectedQueue","startDate","endDate","loadPagedPendingRetryMessages","page","searchPhrase","sortBy","direction","SortDirection","response","FailedMessageStatus","previousMessage","receivedMessage","m","err","numberDisplayed","isAnythingDisplayed","isAnythingSelected","numberSelected","retrySelectedMessages","selectedMessages","useShowToast","TYPE","resolveSelectedMessages","resolveAllMessages","retryAllMessages","url","message","retryAllClicked","sortGroups","sort","periodChanged","period","onUnmounted","onMounted","cookiePeriod","_createBlock","ServiceControlAvailable","_createVNode","LicenseNotExpired","_createElementVNode","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","FAIcon","_unref","faInfoCircle","_hoisted_5","faExternalLink","_openBlock","_createElementBlock","_hoisted_6","_cache","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","faFilter","$event","_Fragment","_renderList","index","_hoisted_12","_hoisted_13","ActionButton","faTimes","_hoisted_14","_hoisted_15","_hoisted_16","_createTextVNode","_toDisplayString","_hoisted_17","_withModifiers","_hoisted_18","OrderBy","_hoisted_19","_hoisted_20","_hoisted_21","faArrowRightRotate","faCheckSquare","_hoisted_22","_hoisted_23","MessageList","_hoisted_24","PaginationStrip","_Teleport","ConfirmDialog"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js b/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js new file mode 100644 index 0000000000..1e1f84a48d --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js @@ -0,0 +1,2 @@ +import{e as N,by as M,u as V,r as f,s as E,m as l,n as c,q as o,a7 as _,y as t,t as m,z as s,v as r,ao as g,_ as u,ae as I,E as O,a3 as C,a8 as y,U as P}from"./index-tFZp7u44.js";const q={name:"connections"},A={class:"box"},B={class:"row"},R={class:"col-12"},z={novalidate:""},D={class:"row connection"},L={class:"col-7 form-group"},W={for:"monitoringUrl"},$={key:0,class:"failed-validation"},X={class:"col-5 no-side-padding"},j=["disabled"],F={key:0,class:"connection-test connection-testing"},G={key:1,class:"connection-test connection-successful"},H={key:2,class:"connection-test connection-failed"},J={class:"connection-test connection-successful hide save-connection"},K={class:"connection-test connection-failed hide save-connection"},Q=N({__name:"PlatformConnections",setup(Y){const{store:h}=M(),S=h.monitoringConnectionState,p=V(),e=f(p.monitoringUrl),{isMonitoringDisabled:U}=E(p),a=f(!1),d=f(null),v=f(null);p.refresh();async function w(){if(e.value){a.value=!0,!e.value.endsWith("/")&&e.value!=="!"&&(e.value+="/");try{const i=await fetch(e.value+"monitored-endpoints");d.value=i.ok&&i.headers.has("X-Particular-Version")}catch{d.value=!1}finally{a.value=!1}}}function b(){return e.value&&e.value!=="!"}function k(){x(),v.value=!0}function x(){e.value?!e.value.endsWith("/")&&e.value!=="!"&&(e.value+="/"):e.value="!",window.localStorage.removeItem("mu");const i=`?mu=${e.value}`;console.debug("updateConnections - new query string: ",i),window.location.search=i}return(i,n)=>(c(),l("section",q,[o("div",A,[o("div",B,[o("div",R,[o("form",z,[o("div",D,[n[7]||(n[7]=o("h3",null,"ServiceControl Monitoring",-1)),o("div",L,[o("label",W,[n[2]||(n[2]=t(" CONNECTION URL ",-1)),n[3]||(n[3]=o("span",{class:"auxilliary-label"},"(OPTIONAL) (Enter ! to disable monitoring)",-1)),s(S).unableToConnect&&!s(U)?(c(),l("span",$,[r(u,{icon:s(g)},null,8,["icon"]),n[1]||(n[1]=t(" Unable to connect ",-1))])):m("",!0)]),_(o("input",{type:"text",id:"monitoringUrl",name:"monitoringUrl","onUpdate:modelValue":n[0]||(n[0]=T=>e.value=T),class:"form-control",required:""},null,512),[[I,e.value]])]),o("div",X,[o("button",{class:O(["btn btn-default btn-secondary btn-connection-test",{disabled:!b()}]),type:"button",onClick:w,disabled:!b()},"Test",10,j),a.value?(c(),l("span",F,[...n[4]||(n[4]=[o("i",{class:"glyphicon glyphicon-refresh rotate"},null,-1),t("Testing ",-1)])])):m("",!0),d.value===!0&&!a.value?(c(),l("span",G,[r(u,{icon:s(C)},null,8,["icon"]),n[5]||(n[5]=t(" Connection successful ",-1))])):m("",!0),d.value===!1&&!a.value?(c(),l("span",H,[r(u,{icon:s(g)},null,8,["icon"]),n[6]||(n[6]=t(" Connection failed ",-1))])):m("",!0)])]),o("button",{class:"btn btn-primary",type:"button",onClick:k},"Save"),_(o("span",J,[r(u,{icon:s(C)},null,8,["icon"]),n[8]||(n[8]=t(" Connection saved ",-1))],512),[[y,v.value]]),_(o("span",K,[r(u,{icon:s(g)},null,8,["icon"]),n[9]||(n[9]=t(" Unable to save ",-1))],512),[[y,v.value!=null&&!v.value]])])])])])]))}}),nn=P(Q,[["__scopeId","data-v-10908073"]]);export{nn as default}; +//# sourceMappingURL=PlatformConnections-B3qHhD6f.js.map diff --git a/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js.map b/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js.map new file mode 100644 index 0000000000..646f00e3a8 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformConnections-B3qHhD6f.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlatformConnections-B3qHhD6f.js","sources":["../../../../frontend/src/components/configuration/PlatformConnections.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["connectionStore","useConnectionsAndStatsAutoRefresh","monitoringConnectionState","serviceControlStore","useServiceControlStore","localMonitoringUrl","ref","isMonitoringDisabled","storeToRefs","testingMonitoring","monitoringValid","connectionSaved","testMonitoringUrl","response","isMonitoringUrlSpecified","saveConnections","updateServiceControlUrls","newSearch","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_cache","_hoisted_7","_hoisted_8","_unref","_hoisted_9","_createVNode","FAIcon","faExclamationTriangle","$event","_hoisted_10","_normalizeClass","_hoisted_11","_hoisted_12","_hoisted_13","faCheck","_hoisted_14","_withDirectives","_hoisted_15","_hoisted_16","_vShow"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/PlatformConnections-CBsejo1J.css b/src/ServiceControl/wwwroot/assets/PlatformConnections-CBsejo1J.css new file mode 100644 index 0000000000..abe5f64e9a --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformConnections-CBsejo1J.css @@ -0,0 +1 @@ +section[name=connections] .box[data-v-10908073]{padding-bottom:50px}form .connection h3[data-v-10908073]{margin-bottom:16px;margin-top:25px;padding-left:0}form .connection .form-group[data-v-10908073]{padding-left:0}.connection:nth-child(2) h3[data-v-10908073]{margin-top:40px}form .connection .form-group input[data-v-10908073]{font-size:16px;height:44px}.row.connection[data-v-10908073]{margin-left:0}span.connection-test.save-connection[data-v-10908073]{top:0}.btn-connection-test[data-v-10908073]{margin-top:25px;padding-top:11px;padding-bottom:11px} diff --git a/src/ServiceControl/wwwroot/assets/PlatformLicense-CjCpCyyD.css b/src/ServiceControl/wwwroot/assets/PlatformLicense-CjCpCyyD.css new file mode 100644 index 0000000000..6e15d406ae --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformLicense-CjCpCyyD.css @@ -0,0 +1 @@ +.license-info[data-v-2eadd4f4]{font-size:16px;padding:2em;line-height:3em}.license-install-info li[data-v-2eadd4f4]{line-height:1em}.need-help[data-v-2eadd4f4]{margin-top:38px;padding-top:20px;border-top:2px solid #f2f2f2} diff --git a/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js b/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js new file mode 100644 index 0000000000..325c96fbb2 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js @@ -0,0 +1,2 @@ +import{e as h,aD as S,s as _,bV as T,m as o,n,v as d,x as C,q as t,p as D,z as e,bf as U,t as a,y as l,B as r,bX as w,E as c,bY as p,bZ as u,_ as v,aF as b,ax as V,U as N}from"./index-tFZp7u44.js";const B={name:"license"},I={key:1,class:"box"},W={class:"row"},Y={class:"license-info"},z={role:"note","aria-label":"license-type"},q={key:0},A={role:"note","aria-label":"license-days-left"},F={key:0,class:"license-expired-text",role:"note","aria-label":"license-expired"},M={key:1},O={role:"note","aria-label":"license-days-left"},R={key:0,class:"license-expired-text",role:"note","aria-label":"license-expired"},X={key:1,class:"license-page-extend-trial"},Z=["href"],$={key:2},j={role:"note","aria-label":"license-days-left"},G={key:0,class:"license-expired-text",role:"note","aria-label":"license-expired"},H={key:1,class:"license-expired-text"},J={class:"need-help"},K={href:"https://particular.net/contactus"},Q=h({__name:"PlatformLicense",setup(ee){const g=S(),{configuration:m}=_(g),x=T(),{loading:P,licenseEdition:E,formattedExpirationDate:f,formattedUpgradeProtectionExpiration:k,formattedInstanceName:L}=_(x),{licenseStatus:s,license:y}=x;return(te,i)=>(n(),o("section",B,[d(V,null,{default:C(()=>[t("section",null,[e(P)?(n(),D(U,{key:0})):(n(),o("div",I,[t("div",W,[t("div",Y,[t("div",null,[i[0]||(i[0]=t("b",null,"Platform license type:",-1)),i[1]||(i[1]=l()),t("span",z,r(e(w)(e(y),e(m)))+r(e(E)),1)]),e(s).isSubscriptionLicense?(n(),o("div",q,[i[2]||(i[2]=t("b",null,"License expiry date: ",-1)),t("span",{role:"note","aria-label":"license-expiry-date",class:c({"license-expired":e(s).isPlatformExpired})},[l(r(e(f))+" ",1),t("span",A,r(e(s).subscriptionDaysLeft),1),d(p,{type:e(u)(e(s).warningLevel)},null,8,["type"])],2),e(s).isPlatformExpired?(n(),o("div",F,"Your license expired. Please update the license to continue using the Particular Service Platform.")):a("",!0)])):a("",!0),e(s).isTrialLicense?(n(),o("div",M,[i[4]||(i[4]=t("b",null,"License expiry date: ",-1)),t("span",{role:"note","aria-label":"license-expiry-date",class:c({"license-expired":e(s).isPlatformTrialExpired})},[l(r(e(f))+" ",1),t("span",O,r(e(s).trialDaysLeft),1),d(p,{type:e(u)(e(s).warningLevel)},null,8,["type"])],2),e(s).isPlatformTrialExpired?(n(),o("div",R," Your license expired. To continue using the Particular Service Platform you'll need to extend your license. ")):a("",!0),e(s).isPlatformTrialExpiring&&e(s).isPlatformTrialExpired?(n(),o("div",X,[t("a",{class:"btn btn-default btn-primary",href:e(y).license_extension_url,target:"_blank"},[i[3]||(i[3]=l("Extend your license ",-1)),d(v,{icon:e(b)},null,8,["icon"])],8,Z)])):a("",!0)])):a("",!0),e(s).isUpgradeProtectionLicense?(n(),o("div",$,[t("span",null,[i[5]||(i[5]=t("b",null,"Upgrade protection expiry date:",-1)),t("span",{role:"note","aria-label":"license-expiry-date",class:c({"license-expired":e(s).isInvalidDueToUpgradeProtectionExpired})},[l(r(e(k))+" ",1),t("span",j,r(e(s).upgradeDaysLeft),1),d(p,{type:e(u)(e(s).warningLevel)},null,8,["type"])],2)]),e(s).isValidWithExpiredUpgradeProtection||e(s).isValidWithExpiringUpgradeProtection?(n(),o("div",G,[...i[6]||(i[6]=[t("b",null,"Warning:",-1),l(" Once upgrade protection expires, you'll no longer have access to support or new product versions. ",-1)])])):a("",!0),e(s).isInvalidDueToUpgradeProtectionExpired?(n(),o("div",H,"Your license upgrade protection expired before this version of ServicePulse was released.")):a("",!0)])):a("",!0),t("div",null,[i[7]||(i[7]=t("b",null,"ServiceControl instance:",-1)),l(" "+r(e(L)),1)]),i[10]||(i[10]=t("ul",{class:"license-install-info"},[t("li",null,[t("a",{href:"https://docs.particular.net/servicecontrol/license",target:"_blank"},"Install or update a ServiceControl license")])],-1)),t("div",J,[i[9]||(i[9]=l(" Need help? ",-1)),t("a",K,[i[8]||(i[8]=l("Contact us ",-1)),d(v,{icon:e(b)},null,8,["icon"])])])])])]))])]),_:1})]))}}),se=N(Q,[["__scopeId","data-v-2eadd4f4"]]);export{se as default}; +//# sourceMappingURL=PlatformLicense-DPZXy5BJ.js.map diff --git a/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js.map b/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js.map new file mode 100644 index 0000000000..5fe232805d --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/PlatformLicense-DPZXy5BJ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"PlatformLicense-DPZXy5BJ.js","sources":["../../../../frontend/src/components/configuration/PlatformLicense.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["configurationStore","useConfigurationStore","configuration","storeToRefs","licenseStore","useLicenseStore","loading","licenseEdition","formattedExpirationDate","formattedUpgradeProtectionExpiration","formattedInstanceName","licenseStatus","license","_openBlock","_createElementBlock","_hoisted_1","_createVNode","ServiceControlAvailable","_createElementVNode","_unref","_createBlock","LoadingSpinner","_hoisted_2","_hoisted_3","_hoisted_4","_cache","_hoisted_5","_toDisplayString","typeText","_hoisted_6","_normalizeClass","_createTextVNode","_hoisted_7","ExclamationMark","convertToWarningLevel","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","FAIcon","faExternalLink","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/RetryRedirects-CvLwo3th.css b/src/ServiceControl/wwwroot/assets/RetryRedirects-CvLwo3th.css new file mode 100644 index 0000000000..b1107f4675 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/RetryRedirects-CvLwo3th.css @@ -0,0 +1 @@ +.modal-mask[data-v-2c4cd74a]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-2c4cd74a]{display:table-cell;vertical-align:middle}.modal-container[data-v-2c4cd74a]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-2c4cd74a]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-2c4cd74a]{margin:0;line-height:1.42857143}.modal-body[data-v-2c4cd74a]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-2c4cd74a]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-2c4cd74a]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-2c4cd74a]{padding:0;border-radius:5px}.modal-container .btn[data-v-2c4cd74a]{font-size:14px}.modal-content[data-v-2c4cd74a]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-2c4cd74a]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-2c4cd74a],.modal-open[data-v-2c4cd74a]{overflow-y:hidden}.modal .btn.btn-primary[data-v-2c4cd74a]{padding:8px 20px}.redirectForm[data-v-2c4cd74a]{display:flex;flex-direction:column;flex:1;min-height:0}p.control-label[data-v-2c4cd74a]{margin-bottom:2px}.info[data-v-2c4cd74a]{margin-left:4px;color:var(--info-icon)}.pa-redirect-source[data-v-9ed2a027]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(1,0,0,1,-1,-0)'%3e%3cg%20id='redirect-source'%20transform='matrix(-1,0,-0,1,15,0)'%3e%3cg%20transform='matrix(1.5,0,-1.11796e-32,0.69633,2,1.10453)'%3e%3cpath%20d='M1.333,8.466L0,8.466L0,18.519L1.333,15.63L1.333,8.466Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3cg%20transform='matrix(-1,0,0,1,16,0)'%3e%3cpath%20d='M4,6L2,6L5,0L8,6L6,6L6,8.586L11.414,14L8.586,14L4.293,9.707C4.254,9.666%204.254,9.666%204.218,9.623C4.184,9.578%204.152,9.533%204.125,9.484C4.042,9.334%204.005,9.17%204,9L4,6Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-redirect-small[data-v-9ed2a027]{position:relative;top:1px;height:14px;width:14px}.pa-redirect-destination[data-v-9ed2a027]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(1,0,0,1,-2,-0)'%3e%3cg%20id='redirect-destination'%20transform='matrix(1,5.66554e-16,5.66554e-16,-1,-3.55271e-15,14)'%3e%3cg%20transform='matrix(1.5,0,-1.11796e-32,0.69633,2,1.10453)'%3e%3cpath%20d='M1.333,8.466L0,8.466L0,18.519L1.333,15.63L1.333,8.466Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3cg%20transform='matrix(1,5.66554e-16,5.66554e-16,-1,1,14)'%3e%3cpath%20d='M9,8L9,5.414L3.586,0L6.414,0C8.081,1.667%209.04,2.626%2010.707,4.293C10.759,4.348%2010.807,4.404%2010.847,4.468C10.948,4.63%2010.995,4.811%2011,5L11,8L13,8L10,14L7,8L9,8Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.icon[data-v-9ed2a027]{color:var(--reduced-emphasis)} diff --git a/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js b/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js new file mode 100644 index 0000000000..43538901b1 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js @@ -0,0 +1,2 @@ +import{e as A,r as k,c as I,l as H,aM as G,m as c,n as r,q as s,t as v,a7 as S,v as m,_ as O,z as b,aE as B,E as T,aH as X,K as P,L,B as M,aN as j,p as C,x as w,y as p,ah as Q,U as K,bw as J,u as W,c1 as Z,o as ee,aq as se,bf as te,N as ae,ac as re,a6 as oe,T as U,C as le,am as ie,ax as de,P as f,Q as y}from"./index-tFZp7u44.js";const ue={class:"modal-mask"},ne={class:"modal-wrapper"},ce={class:"modal-container modal-content"},me={class:"modal-header"},ve={key:0,class:"modal-title"},_e={key:1,class:"modal-title"},fe={name:"redirectForm",class:"redirectForm",novalidate:""},ye={class:"modal-body"},pe={class:"row"},ge={class:"form-group"},he=["disabled"],Re=["value"],Ce={class:"form-group"},ke={class:"form-group"},we={class:"modal-footer"},qe="Choose a queue that is known to Service Control",be="Choose a queue that is known to Service Control or provide a custom queue",Qe=A({__name:"RetryRedirectEdit",props:{message_redirect_id:{},from_physical_address:{},to_physical_address:{},immediately_retry:{type:Boolean,default:!1},queues:{}},emits:["create","edit","cancel"],setup(z,{emit:x}){const $=x,o=z,u=k(o.from_physical_address),i=k(o.to_physical_address),g=k(o.immediately_retry),h=I(()=>!!u.value),_=I(()=>i.value&&i.value!==u.value),d=I(()=>h.value&&_.value),l=I(()=>!o.queues.includes(i.value)),q=I(()=>o.queues.length===0);function D(R){i.value=R}function V(){const R={redirectId:"",sourceQueue:u.value,targetQueue:i.value,immediatelyRetry:g.value};$("create",R)}function F(){const R={redirectId:o.message_redirect_id,sourceQueue:u.value,targetQueue:i.value,immediatelyRetry:g.value};$("edit",R)}function N(){$("cancel")}return(R,a)=>{const E=H("vue3-simple-typeahead"),t=G("tippy");return r(),c("div",ue,[s("div",ne,[s("div",ce,[s("div",me,[o.message_redirect_id?(r(),c("h3",ve,"Modify redirect")):v("",!0),o.message_redirect_id?v("",!0):(r(),c("h3",_e,"Create redirect"))]),s("form",fe,[s("div",ye,[s("div",pe,[s("div",ge,[a[3]||(a[3]=s("label",{for:"sourceQueue"},"From physical address",-1)),S(m(O,{icon:b(B),class:"info",size:"sm"},null,8,["icon"]),[[t,qe]]),s("div",{class:T({"has-error":!h.value,"has-success":h.value})},[S(s("select",{id:"sourceQueue",name:"sourceQueue","onUpdate:modelValue":a[0]||(a[0]=e=>u.value=e),class:"form-select",required:"",disabled:!!o.message_redirect_id},[(r(!0),c(P,null,L(o.queues,e=>(r(),c("option",{value:e,key:e},M(e),9,Re))),128))],8,he),[[X,u.value]])],2)]),a[8]||(a[8]=s("div",{class:"row"},null,-1)),s("div",Ce,[a[6]||(a[6]=s("label",{for:"targetQueue"},"To physical address",-1)),S(m(O,{icon:b(B),class:"info",size:"sm"},null,8,["icon"]),[[t,be]]),s("div",{class:T({"has-error":!_.value,"has-success":_.value})},[m(E,{id:"targetQueue",name:"targetQueue",defaultItem:o.to_physical_address,modelValue:i.value,"onUpdate:modelValue":a[1]||(a[1]=e=>i.value=e),onSelectItem:D,class:"form-control",required:"",placeholder:"Start writing...",items:o.queues,minInputLength:1},null,8,["defaultItem","modelValue","items"]),q.value?(r(),c("div",{key:0,class:T({"has-error":q.value})},[...a[4]||(a[4]=[s("p",{class:"control-label"},"No known queues found. You can enter a queue name manually, but if you don't provide a valid address, the redirected message will be lost.",-1)])],2)):v("",!0),l.value?(r(),c("div",{key:1,class:T({"has-error":l.value})},[...a[5]||(a[5]=[s("p",{class:"control-label"},"Target queue does not match any known queue. You can enter a queue name manually, but if you don't provide a valid address, the redirected message will be lost.",-1)])],2)):v("",!0)],2)]),s("div",ke,[S(s("input",{type:"checkbox","onUpdate:modelValue":a[2]||(a[2]=e=>g.value=e),class:"check-label",id:"immediatelyRetry"},null,512),[[j,g.value]]),a[7]||(a[7]=s("label",{for:"immediatelyRetry"},"Immediately retry any matching failed messages",-1))])])]),s("div",we,[o.message_redirect_id?(r(),C(Q,{key:0,variant:"primary",disabled:!d.value,onClick:F},{default:w(()=>[...a[9]||(a[9]=[p("Modify",-1)])]),_:1},8,["disabled"])):v("",!0),o.message_redirect_id?v("",!0):(r(),C(Q,{key:1,variant:"primary",disabled:!d.value,onClick:V},{default:w(()=>[...a[10]||(a[10]=[p("Create",-1)])]),_:1},8,["disabled"])),m(Q,{onClick:N},{default:w(()=>[...a[11]||(a[11]=[p("Cancel",-1)])]),_:1})])])])])])}}}),$e=K(Qe,[["__scopeId","data-v-2c4cd74a"]]),Ee={name:"redirects"},Ie={class:"row"},Se={class:"col-sm-12"},Te={class:"btn-toolbar"},xe={class:"row"},De={key:0,class:"col-sm-12"},Ve={class:"row",id:"{{redirect.from_physical_address}}"},Fe={class:"col-sm-12"},Ne=["title"],Oe=["title"],Me={class:"metadata"},ze={class:"row"},Be={class:"col-sm-12"},Ue={class:"small"},Ae=A({__name:"RetryRedirects",setup(z){const{store:x}=J(),$=x.serviceControlIsGreaterThan("5.2.0"),o=W(),u=Z(),i=k(!0),g=u.redirects,h=k(!1),_=k(!1),d=k({message_redirect_id:"",from_physical_address:"",to_physical_address:"",last_modified:"",queues:[]}),l=k(null);async function q(){i.value=!0,await u.refresh(),d.value.queues=u.redirects.queues,i.value=!1}function D(){l.value=null,d.value.message_redirect_id="",d.value.from_physical_address="",d.value.to_physical_address="",_.value=!0}function V(t){l.value=null,d.value.message_redirect_id=t.message_redirect_id,d.value.from_physical_address=t.from_physical_address,d.value.to_physical_address=t.to_physical_address,_.value=!0}async function F(t){l.value=null,_.value=!1;const e=E(await o.putToServiceControl(`redirects/${t.redirectId}`,{id:t.redirectId,fromphysicaladdress:t.sourceQueue,tophysicaladdress:t.targetQueue}));return e.message==="success"?(l.value=!0,f(y.INFO,"Info","Redirect updated successfully"),q()):(l.value=!1,e.status===409?f(y.ERROR,"Error","Failed to update a redirect, can not create redirect to a queue"+t.targetQueue+" as it already has a redirect. Provide a different queue or end the redirect."):f(y.ERROR,"Error",e.message)),e.message==="success"&&t.immediatelyRetry?u.retryPendingMessagesForQueue(t.sourceQueue):e}async function N(t){l.value=null,_.value=!1;const e=E(await o.postToServiceControl("redirects",{fromphysicaladdress:t.sourceQueue,tophysicaladdress:t.targetQueue}));e.message==="success"?(l.value=!0,f(y.INFO,"Info","Redirect created successfully"),q()):(l.value=!1,e.status===409&&e.statusText==="Duplicate"?f(y.ERROR,"Error","Failed to create a redirect, can not create more than one redirect for queue: "+t.sourceQueue):e.status===409&&e.statusText==="Dependents"?f(y.ERROR,"Error","Failed to create a redirect, can not create a redirect to a queue that already has a redirect or is a target of a redirect."):f(y.ERROR,"Error",e.message))}function R(t){l.value=null,d.value.message_redirect_id=t.message_redirect_id,h.value=!0}async function a(){const t=E(await o.deleteFromServiceControl(`redirects/${d.value.message_redirect_id}`));t.message==="success"?(l.value=!0,f(y.INFO,"Info","Redirect deleted"),await q()):(l.value=!1,f(y.ERROR,"Error",t.message))}ee(()=>{q()});function E(t){const e=$.value?t.headers.get("X-Particular-Reason"):t.statusText;return{message:t.ok?"success":`error:${t.statusText}`,status:t.status,statusText:e,data:t}}return(t,e)=>(r(),c("section",Ee,[m(de,null,{default:w(()=>[m(se,null,{default:w(()=>[s("section",null,[i.value?(r(),C(te,{key:0})):v("",!0),s("div",Ie,[s("div",Se,[s("div",Te,[m(Q,{onClick:D},{default:w(()=>[...e[3]||(e[3]=[s("i",{class:"fa pa-redirect-source pa-redirect-small"},null,-1),p(" Create Redirect",-1)])]),_:1}),e[4]||(e[4]=s("span",null,null,-1))])])]),b(g).total===0&&!i.value?(r(),C(ae,{key:1,title:"Redirects",message:"There are currently no redirects"})):v("",!0),s("div",xe,[b(g).total>0?(r(),c("div",De,[(r(!0),c(P,null,L(b(g).data,n=>(r(),c("div",{key:n.message_redirect_id,class:"row box repeat-modify"},[s("div",Ve,[s("div",Fe,[s("p",{class:"lead hard-wrap truncate",title:n.from_physical_address},[e[5]||(e[5]=s("i",{class:"fa pa-redirect-source pa-redirect-small",title:"Source queue name"},null,-1)),p(" "+M(n.from_physical_address),1)],8,Ne),s("p",{class:"lead hard-wrap truncate",title:n.to_physical_address},[e[6]||(e[6]=s("i",{class:"fa pa-redirect-destination pa-redirect-small",title:"Destination queue name"},null,-1)),p(" "+M(n.to_physical_address),1)],8,Oe),s("p",Me,[m(O,{icon:b(re),size:"sm",class:"icon"},null,8,["icon"]),e[7]||(e[7]=p(" Last modified: ",-1)),m(oe,{dateUtc:n.last_modified},null,8,["dateUtc"])])])]),s("div",ze,[s("div",Be,[s("p",Ue,[m(Q,{variant:"link",size:"sm",onClick:Y=>R(n)},{default:w(()=>[...e[8]||(e[8]=[p("End Redirect",-1)])]),_:1},8,["onClick"]),m(Q,{variant:"link",size:"sm",onClick:Y=>V(n)},{default:w(()=>[...e[9]||(e[9]=[p("Modify Redirect",-1)])]),_:1},8,["onClick"])])])])]))),128))])):v("",!0)]),(r(),C(U,{to:"#modalDisplay"},[h.value?(r(),C(le,{key:0,onCancel:e[0]||(e[0]=n=>h.value=!1),onConfirm:e[1]||(e[1]=n=>{h.value=!1,a()}),heading:"Are you sure you want to end the redirect?",body:"Once the redirect is ended, any affected messages will be sent to the original destination queue. Ensure this queue is ready to accept messages again."})):v("",!0)])),(r(),C(U,{to:"#modalDisplay"},[_.value?(r(),C($e,ie({key:0},d.value,{onCancel:e[2]||(e[2]=n=>_.value=!1),onCreate:N,onEdit:F}),null,16)):v("",!0)]))])]),_:1})]),_:1})]))}}),Le=K(Ae,[["__scopeId","data-v-9ed2a027"]]);export{Le as default}; +//# sourceMappingURL=RetryRedirects-DNdEUAMz.js.map diff --git a/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js.map b/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js.map new file mode 100644 index 0000000000..1805783b91 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/RetryRedirects-DNdEUAMz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"RetryRedirects-DNdEUAMz.js","sources":["../../../../frontend/src/components/configuration/RetryRedirectEdit.vue","../../../../frontend/src/components/configuration/RetryRedirects.vue"],"sourcesContent":["\n\n\n\n\n","\n\n\n\n\n"],"names":["sourceQueueTooltip","targetQueueTooltip","emit","__emit","model","__props","sourceQueue","ref","targetQueue","immediatelyRetry","sourceQueueIsValid","computed","targetQueueIsValid","formIsValid","notKnownQueue","noKnownQueues","selectToAddress","item","create","redirect","edit","close","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_cache","_createVNode","FAIcon","_unref","faInfoCircle","_normalizeClass","$event","_Fragment","_renderList","option","_hoisted_12","_hoisted_13","_component_vue3_simple_typeahead","_hoisted_14","_hoisted_15","_createBlock","ActionButton","environmentStore","useEnvironmentAndVersionsAutoRefresh","hasResponseStatusInHeader","serviceControlStore","useServiceControlStore","redirectsStore","useRedirectsStore","loadingData","redirects","showDelete","showEdit","selectedRedirect","redirectSaveSuccessful","getRedirect","createRedirect","editRedirect","saveUpdatedRedirect","result","handleResponse","useShowToast","TYPE","saveCreatedRedirect","deleteRedirect","saveDeletedRedirect","onMounted","response","responseStatusText","ServiceControlAvailable","LicenseNotExpired","LoadingSpinner","NoData","_toDisplayString","_hoisted_11","faClock","TimeSince","_Teleport","ConfirmDialog","RetryRedirectEdit","_mergeProps"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js b/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js new file mode 100644 index 0000000000..0469ebf231 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js @@ -0,0 +1,2 @@ +import{e as R,bS as T,s as y,u as V,l as _,p as I,n as i,x as l,q as s,m as u,t as f,z as o,v as e,y as n,_ as c,a3 as g,aI as h,K as b,k as r,B as S,E as m,bT as k,c2 as M,U as N}from"./index-tFZp7u44.js";const A={class:"box"},B={class:"row"},D={key:0,class:"intro"},E={key:0},F={key:1},L={key:0},Y={key:1},z={key:3},q={key:0},K={key:1},P={key:0},U={class:"row"},$={class:"col-sm-12"},j={class:"nav tabs"},G={class:"intro"},H=R({__name:"SetupView",setup(J){const{store:p}=T(),{testResults:d,isBrokerTransport:v}=y(p),x=V(),{isMonitoringEnabled:w}=y(x);return(O,t)=>{const a=_("RouterLink"),C=_("RouterView");return i(),I(M,null,{default:l(()=>[s("div",A,[s("div",B,[o(v)?(i(),u(b,{key:1},[o(d)?.broker_connection_result.connection_successful?(i(),u("div",q,[s("h6",null,[e(c,{icon:o(g),class:"text-success"},null,8,["icon"]),n(" Successfully connected to "+S(o(p).transportNameForInstructions())+" for usage collection.",1)])])):(i(),u("div",K,[s("h6",null,[e(c,{icon:o(h),class:"text-danger"},null,8,["icon"]),n(" The connection to "+S(o(p).transportNameForInstructions())+" was not successful.",1)]),s("p",null,[t[14]||(t[14]=n(" You may have not setup all the connection settings, have a look at the ",-1)),e(a,{to:o(r).throughput.setup.connectionSetup.link},{default:l(()=>[...t[12]||(t[12]=[n("Connection Setup",-1)])]),_:1},8,["to"]),t[15]||(t[15]=n(" tab.",-1)),t[16]||(t[16]=s("br",null,null,-1)),t[17]||(t[17]=n(" If you have set all the connection settings but are still having issues, look at the ",-1)),e(a,{to:o(r).throughput.setup.diagnostics.link},{default:l(()=>[...t[13]||(t[13]=[n("Diagnostics",-1)])]),_:1},8,["to"]),t[18]||(t[18]=n(" tab for more information on how to fix them. ",-1))])])),t[19]||(t[19]=s("div",{class:"alert alert-info"},[n(" Note: enabling "),s("a",{href:"https://docs.particular.net/servicecontrol/audit-instances/"},"Audit"),n(" or "),s("a",{href:"https://docs.particular.net/monitoring/metrics/"},"Monitoring"),n(" is not mandatory when usage is being collected from the broker, but doing so highly improves the accuracy of the usage data and Endpoint identification. ")],-1))],64)):(i(),u("div",D,[o(d)?.audit_connection_result.connection_successful?(i(),u("div",E,[s("h6",null,[e(c,{icon:o(g),class:"text-success"},null,8,["icon"]),t[0]||(t[0]=n(" Successfully connected to Audit instance(s) for usage collection.",-1))])])):(i(),u("div",F,[s("h6",null,[e(c,{icon:o(h),class:"text-danger"},null,8,["icon"]),t[1]||(t[1]=n(" The connection to one or more Audit instances was not successful.",-1))])])),o(w)?(i(),u(b,{key:2},[o(d)?.monitoring_connection_result.connection_successful?(i(),u("div",L,[s("h6",null,[e(c,{icon:o(g),class:"text-success"},null,8,["icon"]),t[2]||(t[2]=n(" Successfully connected to Monitoring for usage collection.",-1))])])):(i(),u("div",Y,[s("h6",null,[e(c,{icon:o(h),class:"text-danger"},null,8,["icon"]),t[3]||(t[3]=n(" The connection to Monitoring was not successful.",-1))])]))],64)):f("",!0),t[11]||(t[11]=s("p",null,[n(" You are using a transport that does not support automatic usage collection directly from the broker."),s("br"),n(" In order for ServicePulse to collect usage data from your endpoints, you need to ensure that either Audit or Monitoring (metrics) are enabled on all your endpoints."),s("br"),n(" Read the "),s("a",{href:"https://docs.particular.net/servicecontrol/audit-instances/"},"Audit documentation"),n(" and the "),s("a",{href:"https://docs.particular.net/monitoring/metrics/"},"Monitoring documentation"),n(" for setup instructions. ")],-1)),!o(d)?.audit_connection_result.connection_successful||!o(d)?.monitoring_connection_result.connection_successful?(i(),u("p",z,[t[6]||(t[6]=n(" You may have not setup all the connection settings, have a look at the ",-1)),e(a,{to:o(r).throughput.setup.connectionSetup.link},{default:l(()=>[...t[4]||(t[4]=[n("Connection Setup",-1)])]),_:1},8,["to"]),t[7]||(t[7]=n(" tab.",-1)),t[8]||(t[8]=s("br",null,null,-1)),t[9]||(t[9]=n(" If you have set all the connection settings but are still having issues, look at the ",-1)),e(a,{to:o(r).throughput.setup.diagnostics.link},{default:l(()=>[...t[5]||(t[5]=[n("Diagnostics",-1)])]),_:1},8,["to"]),t[10]||(t[10]=n(" tab for more information on how to fix them. ",-1))])):f("",!0)]))]),o(v)?(i(),u("br",P)):f("",!0),s("div",U,[s("div",$,[s("div",j,[s("h5",{class:m(["nav-item",{active:o(k)(o(r).throughput.setup.connectionSetup.link)}])},[e(a,{to:o(r).throughput.setup.connectionSetup.link},{default:l(()=>[...t[20]||(t[20]=[n("Connection Setup",-1)])]),_:1},8,["to"])],2),s("h5",{class:m(["nav-item",{active:o(k)(o(r).throughput.setup.diagnostics.link)}])},[e(a,{to:o(r).throughput.setup.diagnostics.link},{default:l(()=>[...t[21]||(t[21]=[n("Diagnostics",-1)])]),_:1},8,["to"])],2),s("h5",{class:m(["nav-item",{active:o(k)(o(r).throughput.setup.mask.link)}])},[e(a,{to:o(r).throughput.setup.mask.link},{default:l(()=>[...t[22]||(t[22]=[n("Mask Report Data",-1)])]),_:1},8,["to"])],2)])])]),s("div",G,[e(C)])])]),_:1})}}}),W=N(H,[["__scopeId","data-v-2b92e3d7"]]);export{W as default}; +//# sourceMappingURL=SetupView-CUhpZfX2.js.map diff --git a/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js.map b/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js.map new file mode 100644 index 0000000000..fd866f2ecc --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/SetupView-CUhpZfX2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"SetupView-CUhpZfX2.js","sources":["../../../../frontend/src/views/throughputreport/SetupView.vue"],"sourcesContent":["\n\n\n\n\n"],"names":["store","useThroughputStoreAutoRefresh","testResults","isBrokerTransport","storeToRefs","serviceControlStore","useServiceControlStore","isMonitoringEnabled","_createBlock","ThroughputSupported","_createElementVNode","_hoisted_1","_hoisted_2","_unref","_createElementBlock","_Fragment","_hoisted_9","_createVNode","FAIcon","faCheck","_createTextVNode","_toDisplayString","_hoisted_10","faTimes","_component_RouterLink","_cache","_openBlock","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_normalizeClass","isRouteSelected","routeLinks","_hoisted_15","_component_RouterView"],"mappings":"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"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/SetupView-T5TFNQfy.css b/src/ServiceControl/wwwroot/assets/SetupView-T5TFNQfy.css new file mode 100644 index 0000000000..a29fbc7f09 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/SetupView-T5TFNQfy.css @@ -0,0 +1 @@ +.intro[data-v-2b92e3d7]{margin:10px 0} diff --git a/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js b/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js new file mode 100644 index 0000000000..2a66df5421 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js @@ -0,0 +1,2 @@ +import{e as c,V as i,s as h,m as l,n as s,q as a,v as r,z as e,R as m,p,W as t,K as u,N as _}from"./index-tFZp7u44.js";import{H as y}from"./HeartbeatsList-BQfOAc76.js";import"./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js";import"./OnOffSwitch-CICGC8TS.js";const f={class:"row"},N={name:"unhealthy_endpoints","aria-label":"Unhealthy Endpoints"},g={key:1,class:"row"},k={class:"col-sm-12 no-side-padding"},C=c({__name:"UnhealthyEndpoints",setup(E){const{store:d}=i(),{unhealthyEndpoints:n,filteredUnhealthyEndpoints:o}=h(d);return(b,v)=>(s(),l(u,null,[a("div",f,[r(m,{displayed:e(o).length,total:e(n).length},null,8,["displayed","total"])]),a("section",N,[e(n).length===0?(s(),p(_,{key:0,message:"No unhealthy endpoints"})):(s(),l("div",g,[a("div",k,[r(y,{data:e(o),columns:[e(t).Name,e(t).InstancesDown,e(t).LastHeartbeat,e(t).Tracked,e(t).Muted]},null,8,["data","columns"])])]))])],64))}});export{C as default}; +//# sourceMappingURL=UnhealthyEndpoints-D9RSiqxE.js.map diff --git a/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js.map b/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js.map new file mode 100644 index 0000000000..bde682ebb3 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/UnhealthyEndpoints-D9RSiqxE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"UnhealthyEndpoints-D9RSiqxE.js","sources":["../../../../frontend/src/components/heartbeats/UnhealthyEndpoints.vue"],"sourcesContent":["\n\n\n"],"names":["store","useHeartbeatsStoreAutoRefresh","unhealthyEndpoints","filteredUnhealthyEndpoints","storeToRefs","_createElementVNode","_hoisted_1","_createVNode","ResultsCount","_unref","_hoisted_2","_createBlock","NoData","_openBlock","_createElementBlock","_hoisted_3","_hoisted_4","HeartbeatsList","ColumnNames"],"mappings":"gdAQA,KAAM,CAAE,MAAAA,CAAA,EAAUC,EAAA,EACZ,CAAE,mBAAAC,EAAoB,2BAAAC,GAA+BC,EAAYJ,CAAK,8BAI1EK,EAEM,MAFNC,EAEM,CADJC,EAAkGC,EAAA,CAAnF,UAAWC,EAAAN,CAAA,EAA2B,OAAS,MAAOM,EAAAP,CAAA,EAAmB,MAAA,kCAE1FG,EAOU,UAPVK,EAOU,CANOD,EAAAP,CAAA,EAAmB,SAAM,OAAxCS,EAA2FC,EAAA,OAA3C,QAAQ,wBAAA,KACxDC,EAAA,EAAAC,EAIM,MAJNC,EAIM,CAHJV,EAEM,MAFNW,EAEM,CADJT,EAAiLU,EAAA,CAAhK,KAAMR,EAAAN,CAAA,EAA6B,SAAUM,EAAAS,CAAA,EAAY,KAAMT,EAAAS,CAAA,EAAY,cAAeT,KAAY,cAAeA,EAAAS,CAAA,EAAY,QAAST,EAAAS,CAAA,EAAY,KAAK,CAAA"} \ No newline at end of file diff --git a/src/ServiceControl/wwwroot/assets/index-DYLvCw9q.css b/src/ServiceControl/wwwroot/assets/index-DYLvCw9q.css new file mode 100644 index 0000000000..f8e3b79186 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/index-DYLvCw9q.css @@ -0,0 +1 @@ +@charset "UTF-8";ul.dropdown-menu li a span[data-v-3b220daf]{color:#aaa}.btn.sp-btn-menu[data-v-3b220daf]:active,.btn-default.sp-btn-menu[data-v-3b220daf]:active,.btn-default.sp-btn-menu.active[data-v-3b220daf],.open>.dropdown-toggle.btn-default.sp-btn-menu[data-v-3b220daf]{background:none;border:none;color:var(--sp-blue);text-decoration:underline;box-shadow:none}.page-link[data-v-9326e548]{cursor:pointer}.page-link.disabled[data-v-9326e548]{cursor:not-allowed;pointer-events:all!important}.lead[data-v-a78cba63],.box p .lead[data-v-a78cba63]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-a78cba63]{cursor:pointer}.box[data-v-a78cba63]{padding-bottom:0}.box[data-v-a78cba63]:hover{cursor:pointer;background-color:#edf6f7;border:1px solid var(--sp-blue)}.row.box-event-item[data-v-a78cba63],.row.box-event-item .col-xs-12[data-v-a78cba63],.row.box.box-event-item .col-12[data-v-a78cba63]{padding-top:.5em;padding-bottom:.3em;width:100%}.col-icon[data-v-a78cba63]{width:4.5rem}.col-message[data-v-a78cba63]{display:table-cell;width:auto;vertical-align:middle}.col-message p.lead[data-v-a78cba63]{padding-bottom:.125em}.col-timestamp[data-v-a78cba63]{display:table-cell;width:8em;vertical-align:middle;padding-top:0;padding-bottom:.125em}.box[data-v-a78cba63]{box-shadow:none;margin:0!important;padding-bottom:.625em}.pa-redirect-source[data-v-a78cba63]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2012%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(1,0,0,1,-1,-0)'%3e%3cg%20id='redirect-source'%20transform='matrix(-1,0,-0,1,15,0)'%3e%3cg%20transform='matrix(1.5,0,-1.11796e-32,0.69633,2,1.10453)'%3e%3cpath%20d='M1.333,8.466L0,8.466L0,18.519L1.333,15.63L1.333,8.466Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3cg%20transform='matrix(-1,0,0,1,16,0)'%3e%3cpath%20d='M4,6L2,6L5,0L8,6L6,6L6,8.586L11.414,14L8.586,14L4.293,9.707C4.254,9.666%204.254,9.666%204.218,9.623C4.184,9.578%204.152,9.533%204.125,9.484C4.042,9.334%204.005,9.17%204,9L4,6Z'%20style='fill:rgb(146,158,158);'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-redirect-large[data-v-a78cba63]{height:24px;width:24px}.icon[data-v-a78cba63]{color:var(--reduced-emphasis)}.sub-item[data-v-a78cba63]{position:relative;bottom:-.5rem}.events[data-v-27d73168]{margin-top:2em}.btn.btn-all-events[data-v-27d73168]{width:12em;margin-top:2em}.action-toolbar[data-v-1d7ec2b7]{display:flex;gap:.5em;justify-content:center}.sp-loader[data-v-1d7ec2b7]{width:100%;height:90vh;margin-top:-6.25em;background-image:url(./sp-loader-xerIu_Om.gif);background-size:9.375em 9.375em;background-position:center center;background-repeat:no-repeat}.unsupported[data-v-1d7ec2b7]{margin:3.75em auto 7.5em;max-width:32.5em;line-height:1.625em}.unsupported h1[data-v-1d7ec2b7]{font-size:1.875em}.unsupported p[data-v-1d7ec2b7]{font-size:1em;margin-bottom:1.25em;margin-top:-1.125em}.unsupported ul[data-v-1d7ec2b7]{padding-left:0;text-align:left;font-size:1em;margin-bottom:1.875em}.unsupported .btn[data-v-1d7ec2b7]{font-size:1em}.unsupported a.btn.btn-default.btn-secondary[data-v-1d7ec2b7]{margin-left:.625em}.summary-item[data-v-bb977912]{background:#fff none repeat scroll 0 0;border:1px solid #fff;border-radius:4px;color:#777f7f;display:block;padding:25px 10px;position:relative;text-align:center}.summary-item .badge[data-v-bb977912],.summary-item .label[data-v-bb977912]{font-size:18px;margin-left:12px;position:absolute;top:2px}.summary-info[data-v-bb977912],.summary-info>.fa[data-v-bb977912],a.summary-info[data-v-bb977912]:hover{color:#777f7f}.summary-danger[data-v-bb977912],.summary-danger>.fa[data-v-bb977912],a.summary-danger[data-v-bb977912]:hover{color:#ce4844;font-weight:700}.summary-item[data-v-bb977912]:hover{background-color:#edf6f7;border-color:var(--sp-blue)!important;cursor:pointer}.system-status[data-v-852b13d5]:hover{background-color:#fff;border-color:#eee!important;cursor:default}.system-status .row[data-v-852b13d5]{display:flex}.system-status-item[data-v-852b13d5]{flex:1}.column-header[data-v-f51b5ae7]{background:none;border:none;padding:0;cursor:default;max-width:100%;display:flex;flex-wrap:wrap}.column-header span[data-v-f51b5ae7],.column-header-button span[data-v-f51b5ae7]{font-size:.75rem;text-transform:uppercase;display:inline-block;text-align:left}.column-header-button[data-v-f51b5ae7]{background:none;border:none;padding:0;cursor:pointer;max-width:100%;display:flex;flex-wrap:wrap;align-items:end}.column-header-button:hover span[data-v-f51b5ae7]{text-decoration:underline}.column-header-button div[data-v-f51b5ae7]{display:inline-block}.sort-up[data-v-f51b5ae7],.sort-down[data-v-f51b5ae7]{background-position:center;background-repeat:no-repeat;width:8px;height:14px;padding:0;margin-left:10px}.sort-up[data-v-f51b5ae7]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20320%20512'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M288,288l-256,0c-28.4,0%20-42.8,34.5%20-22.6,54.6l128,128c12.5,12.5%2032.8,12.5%2045.3,-0l128,-128c20,-20.1%205.7,-54.6%20-22.7,-54.6Zm-128,160l-128,-128l256,0l-128,128Z'%20style='fill:%23949e9e;fill-rule:nonzero;'/%3e%3cpath%20d='M32,224l256,0c28.4,0%2042.8,-34.5%2022.6,-54.6l-128,-128c-12.5,-12.5%20-32.8,-12.5%20-45.3,-0l-128,128c-20,20.1%20-5.7,54.6%2022.7,54.6Z'%20style='fill-rule:nonzero;'/%3e%3c/svg%3e")}.sort-down[data-v-f51b5ae7]{background:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20320%20512'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M32,224l256,0c28.4,0%2042.8,-34.5%2022.6,-54.6l-128,-128c-12.5,-12.5%20-32.8,-12.5%20-45.3,0l-128,128c-20,20.1%20-5.7,54.6%2022.7,54.6Zm128,-160l128,128l-256,0l128,-128Z'%20style='fill:%23949e9e;fill-rule:nonzero;'/%3e%3cpath%20d='M288,288l-256,0c-28.4,0%20-42.8,34.5%20-22.6,54.6l128,128c12.5,12.5%2032.8,12.5%2045.3,0l128,-128c20,-20.1%205.7,-54.6%20-22.7,-54.6Z'%20style='fill-rule:nonzero;'/%3e%3c/svg%3e")}.sort-up[data-v-f51b5ae7],.sort-down[data-v-f51b5ae7]{background-repeat:no-repeat;display:inline-block;vertical-align:middle}.info[data-v-f51b5ae7]{padding-left:.25rem;color:var(--info-icon)}div.avg-tooltip[data-v-3754e2bd]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-3754e2bd]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-3754e2bd]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-3754e2bd]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-3754e2bd]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-3754e2bd]{font-size:11px;font-weight:400}.queue-length[data-v-3754e2bd]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-3754e2bd]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-3754e2bd]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-3754e2bd]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-3754e2bd]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-3754e2bd]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-3754e2bd]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-3754e2bd]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-3754e2bd]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-3754e2bd]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-3754e2bd]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-3754e2bd]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-3754e2bd]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-3754e2bd]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-3754e2bd]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-3754e2bd]{color:#fff}.graph[data-v-3754e2bd]{position:relative;width:68%}.graph svg[data-v-3754e2bd]{position:relative;width:100%;height:50px}.padding[data-v-3754e2bd]{padding:6px 2px;height:50px;display:flex;flex-direction:column;background-color:#f2f6f7}svg[data-v-3754e2bd]{transform:scaleY(-1)}.graph .avg-tooltip[data-v-3754e2bd]{position:absolute;z-index:10;right:calc(100% + 1.3em);display:none}.graph.hover .avg-tooltip[data-v-3754e2bd]{display:block}.graph * .graph-data-line[data-v-3754e2bd]{stroke-width:1.75px;fill:none}.graph * .graph-data-fill[data-v-3754e2bd]{opacity:.8}.graph * .graph-avg-line[data-v-3754e2bd]{stroke-width:1px;opacity:.5;stroke-dasharray:5,5}.lead[data-v-2f01e4d1],.box p .lead[data-v-2f01e4d1]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-2f01e4d1]{cursor:pointer}div.avg-tooltip[data-v-2f01e4d1]{position:absolute;text-align:left;padding:.3rem;line-height:1;background:var(--avg-tooltip-background-color);color:#fff;border-radius:8px 1px 1px 8px;pointer-events:none;font-size:11px;white-space:nowrap}div.avg-tooltip.left[data-v-2f01e4d1]{border-radius:1px 8px 8px 1px}div.avg-tooltip[data-v-2f01e4d1]:before{content:"";display:block;z-index:-1;right:0;position:absolute;top:50%;background-color:var(--avg-tooltip-background-color);width:24px;height:24px;margin-top:-12px;margin-right:-12px;transform:rotate(45deg)}div.avg-tooltip.left[data-v-2f01e4d1]:before{right:inherit;margin-right:inherit;margin-left:-12px;left:0}div.avg-tooltip .value[data-v-2f01e4d1]{font-size:14px;font-weight:700}div.avg-tooltip .value span[data-v-2f01e4d1]{font-size:11px;font-weight:400}.queue-length[data-v-2f01e4d1]{color:var(--monitoring-queue-length);stroke:var(--monitoring-queue-length)}.queue-length .graph-data-fill[data-v-2f01e4d1]{fill:var(--monitoring-queue-length-light);stroke:none}.queue-length.avg-tooltip[data-v-2f01e4d1]{--avg-tooltip-background-color: var(--monitoring-queue-length)}.throughput[data-v-2f01e4d1]{color:var(--monitoring-throughput);stroke:var(--monitoring-throughput)}.throughput .graph-data-fill[data-v-2f01e4d1]{fill:var(--monitoring-throughput-light);stroke:none}.throughput.avg-tooltip[data-v-2f01e4d1]{--avg-tooltip-background-color: var(--monitoring-throughput)}.retries[data-v-2f01e4d1]{color:var(--monitoring-retries);stroke:var(--monitoring-retries)}.retries .graph-data-fill[data-v-2f01e4d1]{fill:var(--monitoring-retries-light);stroke:none}.retries.avg-tooltip[data-v-2f01e4d1]{--avg-tooltip-background-color: var(--monitoring-retries)}.processing-time[data-v-2f01e4d1]{color:var(--monitoring-processing-time);stroke:var(--monitoring-processing-time)}.processing-time .graph-data-fill[data-v-2f01e4d1]{fill:var(--monitoring-processing-time-light);stroke:none}.processing-time.avg-tooltip[data-v-2f01e4d1]{--avg-tooltip-background-color: var(--monitoring-processing-time)}.critical-time[data-v-2f01e4d1]{color:var(--monitoring-critical-time);stroke:var(--monitoring-critical-time)}.critical-time .graph-data-fill[data-v-2f01e4d1]{fill:var(--monitoring-critical-time-light);stroke:none}.critical-time.avg-tooltip[data-v-2f01e4d1]{--avg-tooltip-background-color: var(--monitoring-critical-time)}.avg-tooltip[data-v-2f01e4d1]{color:#fff}.endpoint-status[data-v-2f01e4d1]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-2f01e4d1]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-2f01e4d1]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-2f01e4d1]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-2f01e4d1]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-2f01e4d1]:hover{color:#23527c}.endpoint-status .badge[data-v-2f01e4d1]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-2f01e4d1]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-2f01e4d1]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-2f01e4d1]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-2f01e4d1]{top:-11px}.endpoint-status .badge[data-v-2f01e4d1]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-2f01e4d1],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-2f01e4d1],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-2f01e4d1],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-2f01e4d1]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-2f01e4d1],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-2f01e4d1]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-2f01e4d1]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-2f01e4d1]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-2f01e4d1]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-2f01e4d1]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-2f01e4d1]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-2f01e4d1]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-2f01e4d1]{margin-top:-8px}.endpoint-name>div>div>a[data-v-2f01e4d1]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-2f01e4d1]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-2f01e4d1]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-2f01e4d1],.endpoint-name>div[data-v-2f01e4d1]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-2f01e4d1]{gap:.25em}.endpoint-name .box-header.with-status[data-v-2f01e4d1]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-2f01e4d1]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-2f01e4d1]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-2f01e4d1],.sort-menu[data-v-2f01e4d1]{float:left!important}.sort-menu[data-v-2f01e4d1]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-2f01e4d1]{margin-bottom:6px}.msg-group-menu[data-v-2f01e4d1]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-2f01e4d1]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-2f01e4d1]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-2f01e4d1]{margin-right:0}.no-mobile-side-padding[data-v-2f01e4d1]{padding-right:0;padding-left:0}.tabs h5[data-v-2f01e4d1]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-2f01e4d1]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-2f01e4d1]{margin:3px 0 14px}.btn-toolbar .btn[data-v-2f01e4d1],.btn-toolbar .btn-group[data-v-2f01e4d1],.btn-toolbar .input-group[data-v-2f01e4d1]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-2f01e4d1]{margin-right:4px!important}div.btn-toolbar[data-v-2f01e4d1],div.form-inliner[data-v-2f01e4d1]{margin-bottom:12px}.filter-toolbar[data-v-2f01e4d1],.action-toolbar[data-v-2f01e4d1]{margin-top:2px}div.sp-pull-right[data-v-2f01e4d1]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-2f01e4d1]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-2f01e4d1],div.form-inliner[data-v-2f01e4d1]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-2f01e4d1],.endpoint-row .col-xl-7[data-v-2f01e4d1]{width:20%}.table-head-row .col-xl-8[data-v-2f01e4d1],.endpoint-row .col-xl-8[data-v-2f01e4d1]{width:36%}.table-head-row .col-xl-1[data-v-2f01e4d1],.endpoint-row .col-xl-1[data-v-2f01e4d1]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-2f01e4d1],.endpoint-row .col-xl-7[data-v-2f01e4d1]{width:30%}.table-head-row .col-xl-8[data-v-2f01e4d1],.endpoint-row .col-xl-8[data-v-2f01e4d1]{width:44%}.table-head-row .col-xl-1[data-v-2f01e4d1],.endpoint-row .col-xl-1[data-v-2f01e4d1]{width:14%}}.sparkline-value[data-v-2f01e4d1]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-2f01e4d1]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-2f01e4d1]{color:#00f}.sparkline-value.sec span[data-v-2f01e4d1]{color:#007aff}.sparkline-value.min[data-v-2f01e4d1]{color:#8b00d0}.sparkline-value.min span[data-v-2f01e4d1]{color:#b14ae4}.sparkline-value.hr[data-v-2f01e4d1]{color:#d601da}.sparkline-value.hr span[data-v-2f01e4d1]{color:#d764d9}.sparkline-value.d[data-v-2f01e4d1]{color:#ad0017}.sparkline-value.d span[data-v-2f01e4d1]{color:#ff0004}.graph-message-retries-throughputs[data-v-2f01e4d1],.graph-critical-processing-times[data-v-2f01e4d1]{margin-left:.5%}.monitoring-no-data[data-v-2f01e4d1]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-2f01e4d1]{font-size:30px}.monitoring-no-data-content[data-v-2f01e4d1]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-2f01e4d1]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-2f01e4d1]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-2f01e4d1]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-2f01e4d1]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-2f01e4d1]{margin-left:10px}[data-v-2f01e4d1] span.table-header-unit{color:#777f7f}.box-header[data-v-2f01e4d1]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-2f01e4d1]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-2f01e4d1]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-2f01e4d1]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-2f01e4d1]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-2f01e4d1],i.fa.pa-monitoring-lost.endpoints-overview[data-v-2f01e4d1],i.fa.pa-endpoint-lost.endpoint-details[data-v-2f01e4d1],i.fa.pa-monitoring-lost.endpoint-details[data-v-2f01e4d1]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-2f01e4d1]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-2f01e4d1]{top:4px}div[content="Unable to connect to instance"][data-v-2f01e4d1],div[content="Unable to connect to monitoring server"][data-v-2f01e4d1]{z-index:99999}.pull-left[data-v-2f01e4d1]{float:left}.table-head-row[data-v-2f01e4d1]{display:flex;padding-bottom:5px;padding-top:20px;border-bottom:1px solid #ced6d3;border-top:1px solid #eee;text-transform:uppercase;color:#181919}.table-first-col[data-v-2f01e4d1]{width:20%;padding-left:15px;padding-right:15px}.table-col[data-v-2f01e4d1]{width:16%}@media only screen and (min-width: 1730px){.table-first-col[data-v-2f01e4d1]{width:30%}.table-col[data-v-2f01e4d1]{width:14%}}.hackToPreventSafariFromShowingTooltip[data-v-2f01e4d1]:after{content:"";display:block}.lead.endpoint-details-link.righ-side-ellipsis[data-v-2f01e4d1]{color:#00729c;margin:0}.monitoring-lost-link i[data-v-2f01e4d1]{top:7px}.endpoint-count[data-v-2f01e4d1]{font-weight:700}.pa-warning[data-v-2f01e4d1]{padding-top:25px}.endpoint-status[data-v-549c8bea]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-549c8bea]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-549c8bea]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-549c8bea]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-549c8bea]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-549c8bea]:hover{color:#23527c}.endpoint-status .badge[data-v-549c8bea]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-549c8bea]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-549c8bea]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-549c8bea]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-549c8bea]{top:-11px}.endpoint-status .badge[data-v-549c8bea]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-549c8bea],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-549c8bea],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-549c8bea],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-549c8bea]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-549c8bea],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-549c8bea]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-549c8bea]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-549c8bea]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-549c8bea]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-549c8bea]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-549c8bea]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-549c8bea]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-549c8bea]{margin-top:-8px}.endpoint-name>div>div>a[data-v-549c8bea]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-549c8bea]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-549c8bea]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-549c8bea],.endpoint-name>div[data-v-549c8bea]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-549c8bea]{gap:.25em}.endpoint-name .box-header.with-status[data-v-549c8bea]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-549c8bea]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-549c8bea]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-549c8bea],.sort-menu[data-v-549c8bea]{float:left!important}.sort-menu[data-v-549c8bea]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-549c8bea]{margin-bottom:6px}.msg-group-menu[data-v-549c8bea]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-549c8bea]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-549c8bea]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-549c8bea]{margin-right:0}.no-mobile-side-padding[data-v-549c8bea]{padding-right:0;padding-left:0}.tabs h5[data-v-549c8bea]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-549c8bea]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-549c8bea]{margin:3px 0 14px}.btn-toolbar .btn[data-v-549c8bea],.btn-toolbar .btn-group[data-v-549c8bea],.btn-toolbar .input-group[data-v-549c8bea]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-549c8bea]{margin-right:4px!important}div.btn-toolbar[data-v-549c8bea],div.form-inliner[data-v-549c8bea]{margin-bottom:12px}.filter-toolbar[data-v-549c8bea],.action-toolbar[data-v-549c8bea]{margin-top:2px}div.sp-pull-right[data-v-549c8bea]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-549c8bea]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-549c8bea],div.form-inliner[data-v-549c8bea]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-549c8bea],.endpoint-row .col-xl-7[data-v-549c8bea]{width:20%}.table-head-row .col-xl-8[data-v-549c8bea],.endpoint-row .col-xl-8[data-v-549c8bea]{width:36%}.table-head-row .col-xl-1[data-v-549c8bea],.endpoint-row .col-xl-1[data-v-549c8bea]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-549c8bea],.endpoint-row .col-xl-7[data-v-549c8bea]{width:30%}.table-head-row .col-xl-8[data-v-549c8bea],.endpoint-row .col-xl-8[data-v-549c8bea]{width:44%}.table-head-row .col-xl-1[data-v-549c8bea],.endpoint-row .col-xl-1[data-v-549c8bea]{width:14%}}.sparkline-value[data-v-549c8bea]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-549c8bea]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-549c8bea]{color:#00f}.sparkline-value.sec span[data-v-549c8bea]{color:#007aff}.sparkline-value.min[data-v-549c8bea]{color:#8b00d0}.sparkline-value.min span[data-v-549c8bea]{color:#b14ae4}.sparkline-value.hr[data-v-549c8bea]{color:#d601da}.sparkline-value.hr span[data-v-549c8bea]{color:#d764d9}.sparkline-value.d[data-v-549c8bea]{color:#ad0017}.sparkline-value.d span[data-v-549c8bea]{color:#ff0004}.graph-message-retries-throughputs[data-v-549c8bea],.graph-critical-processing-times[data-v-549c8bea]{margin-left:.5%}.monitoring-no-data[data-v-549c8bea]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-549c8bea]{font-size:30px}.monitoring-no-data-content[data-v-549c8bea]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-549c8bea]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-549c8bea]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-549c8bea]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-549c8bea]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-549c8bea]{margin-left:10px}[data-v-549c8bea] span.table-header-unit{color:#777f7f}.box-header[data-v-549c8bea]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-549c8bea]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-549c8bea]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-549c8bea]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-549c8bea]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-549c8bea],i.fa.pa-monitoring-lost.endpoints-overview[data-v-549c8bea],i.fa.pa-endpoint-lost.endpoint-details[data-v-549c8bea],i.fa.pa-monitoring-lost.endpoint-details[data-v-549c8bea]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-549c8bea]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-549c8bea]{top:4px}div[content="Unable to connect to instance"][data-v-549c8bea],div[content="Unable to connect to monitoring server"][data-v-549c8bea]{z-index:99999}.pull-left[data-v-549c8bea]{float:left}.table-head-row[data-v-549c8bea]{display:flex;padding-bottom:5px;padding-top:20px;border-bottom:1px solid #ced6d3;border-top:1px solid #eee;text-transform:uppercase;color:#181919}.table-first-col[data-v-549c8bea]{width:20%;padding-left:15px;padding-right:15px}.table-col[data-v-549c8bea]{width:16%}@media only screen and (min-width: 1730px){.table-first-col[data-v-549c8bea]{width:30%}.table-col[data-v-549c8bea]{width:14%}}.endpoint-group-title[data-v-549c8bea]{font-size:14px;font-weight:700;margin:20px 0 10px 15px}.endpoint-status[data-v-a0ed2e86]{display:flex;top:1px;margin-left:7px;padding-left:0;align-items:baseline}.endpoint-status .warning[data-v-a0ed2e86]{display:block;position:relative}.endpoint-status .endpoint-status-icon[data-v-a0ed2e86]{font-size:20px;color:#ce4844}h1 .endpoint-status .endpoint-status-icon[data-v-a0ed2e86]{font-size:24px}.endpoint-status .endpoint-status-icon[data-v-a0ed2e86]{color:#777f7f}.endpoint-status .endpoint-status-icon[data-v-a0ed2e86]:hover{color:#23527c}.endpoint-status .badge[data-v-a0ed2e86]{position:relative;top:8px;font-size:10px;margin-right:0;left:-10px}.endpoint-status .endpoint-status-icon[data-v-a0ed2e86]{font-size:20px;margin-left:6px}.endpoint-status a[data-v-a0ed2e86]{position:relative;top:-4px;padding-left:5px}.endpoint-status a[data-v-a0ed2e86]:hover{text-decoration:none}.endpoint-status a[ng-if="endpoint.errorCount"][data-v-a0ed2e86]{top:-11px}.endpoint-status .badge[data-v-a0ed2e86]{position:relative;top:2px;left:-9px;font-size:10px}.endpoint-status .pa-endpoint-lost.endpoint-details[data-v-a0ed2e86],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-a0ed2e86],.endpoint-status .pa-endpoint-lost.endpoints-overview[data-v-a0ed2e86],.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-a0ed2e86]{display:inline-block;width:26px;height:26px;left:6px;position:relative}.endpoint-status .pa-monitoring-lost.endpoints-overview[data-v-a0ed2e86],.endpoint-status .pa-monitoring-lost.endpoint-details[data-v-a0ed2e86]{top:4px}.pa-endpoint-lost.endpoints-overview[data-v-a0ed2e86]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoints-overview[data-v-a0ed2e86]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-endpoint-lost.endpoint-details[data-v-a0ed2e86]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2022%2015'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='endpoint-lost'%3e%3cpath%20d='M19.054,11.155l1.937,-1.938l0.861,0.861l-1.937,1.937l1.937,1.938l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.938l-1.937,-1.937l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cg%3e%3cpath%20d='M11.395,10.953l0,-2.978l-3.971,-0l0,-4.964l3.971,0l0,-2.978l-10.92,0l0,10.92l10.92,0Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3crect%20x='8.417'%20y='4.004'%20width='5.956'%20height='2.978'%20style='fill:%23ce4844;'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-monitoring-lost.endpoint-details[data-v-a0ed2e86]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2023%2017'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cg%20id='monitoring-lost'%3e%3cpath%20d='M19.645,12.514l1.937,-1.938l0.861,0.861l-1.937,1.938l1.937,1.937l-0.861,0.861l-1.937,-1.938l-1.937,1.938l-0.861,-0.861l1.937,-1.937l-1.937,-1.938l0.861,-0.861l1.937,1.938Z'%20style='fill:%23ce4844;'/%3e%3cpath%20d='M12.448,2.782l-9.853,0l-0,4.106l2.59,0c0.078,0%200.149,0.044%200.183,0.113l0.511,1.022l1.275,-2.55c0.152,-0.303%200.583,-0.303%200.735,-0l0.707,1.415l1.799,0c0.227,0%200.411,0.184%200.411,0.411c-0,0.226%20-0.184,0.41%20-0.411,0.41l-2.306,0l-0.568,-1.135l-1.275,2.551c-0.151,0.302%20-0.583,0.302%20-0.734,-0l-0.708,-1.416l-2.209,0l-0,3.285l9.853,-0l0,-8.212Zm1.232,-2.463l-12.317,0c-0.68,0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.681%200.552,1.232%201.232,1.232l12.317,0c0.68,0%201.231,-0.551%201.231,-1.232l0,-10.674c0,-0.681%20-0.551,-1.232%20-1.231,-1.232Zm-0.411,11.496l-11.496,-0l0,-9.854l11.496,0l0,9.854Z'%20style='fill:%23ce4844;fill-rule:nonzero;'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat}.pa-warning[data-v-a0ed2e86]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;display:inline-block;width:20px;height:20px;margin-left:4px;padding-top:31px}.message-type-status .pa-warning[data-v-a0ed2e86]{margin-top:-3px}.endpoint-message-types .endpoint-status[data-v-a0ed2e86]{margin-top:-8px}.endpoint-name>div>div>a[data-v-a0ed2e86]{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#00729c;border-bottom:1px dotted lightgrey}.endpoint-name>div>div>a[data-v-a0ed2e86]:first-child:hover{border-bottom:1px solid #00729c;text-decoration:none!important}.endpoint-row[data-v-a0ed2e86]{display:flex;position:relative;padding:2px 0 4px;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;background-color:#fff;margin:0}.endpoint-name[data-v-a0ed2e86],.endpoint-name>div[data-v-a0ed2e86]{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:wrap;justify-content:center}.endpoint-name[data-v-a0ed2e86]{gap:.25em}.endpoint-name .box-header.with-status[data-v-a0ed2e86]{flex-direction:row;justify-content:flex-start;align-items:center;max-width:100%}.endpoint-name .box-header.with-status[data-v-a0ed2e86]>*:not(:first-child){margin-left:.25em}@media only screen and (min-width: 993px){.filter-period-menu[data-v-a0ed2e86]{margin-right:0}}@media only screen and (max-width: 992px){.filter-period-menu[data-v-a0ed2e86],.sort-menu[data-v-a0ed2e86]{float:left!important}.sort-menu[data-v-a0ed2e86]{margin-top:0;padding-top:0}}@media only screen and (max-width: 768px){.filter-toolbar .input-group[data-v-a0ed2e86]{margin-bottom:6px}.msg-group-menu[data-v-a0ed2e86]{float:left!important;margin-top:0;margin-left:15px}div.sp-pull-right[data-v-a0ed2e86]{display:inline-block;float:none;margin-top:0}button.btn.btn-default[data-v-a0ed2e86]{margin-left:0;margin-right:6px;margin-bottom:6px}.input-group-btn button.btn.btn-default[data-v-a0ed2e86]{margin-right:0}.no-mobile-side-padding[data-v-a0ed2e86]{padding-right:0;padding-left:0}.tabs h5[data-v-a0ed2e86]{padding-bottom:4px;margin-bottom:10px}.navbar-collapse.collapse.in[data-v-a0ed2e86]{padding:0 0 0 16px!important}}@media only screen and (max-width: 480px){.sidebar-label[data-v-a0ed2e86]{margin:3px 0 14px}.btn-toolbar .btn[data-v-a0ed2e86],.btn-toolbar .btn-group[data-v-a0ed2e86],.btn-toolbar .input-group[data-v-a0ed2e86]{float:left!important}button.btn.btn-default.ng-binding.ng-isolate-scope[data-v-a0ed2e86]{margin-right:4px!important}div.btn-toolbar[data-v-a0ed2e86],div.form-inliner[data-v-a0ed2e86]{margin-bottom:12px}.filter-toolbar[data-v-a0ed2e86],.action-toolbar[data-v-a0ed2e86]{margin-top:2px}div.sp-pull-right[data-v-a0ed2e86]{display:inline-block;float:none;margin-top:4px}.progress.bulk-retry-progress[data-v-a0ed2e86]{margin-top:6px}}@media only screen and (max-width: 320px){div.btn-toolbar[data-v-a0ed2e86],div.form-inliner[data-v-a0ed2e86]{margin-bottom:0}}.table-head-row .col-xl-7[data-v-a0ed2e86],.endpoint-row .col-xl-7[data-v-a0ed2e86]{width:20%}.table-head-row .col-xl-8[data-v-a0ed2e86],.endpoint-row .col-xl-8[data-v-a0ed2e86]{width:36%}.table-head-row .col-xl-1[data-v-a0ed2e86],.endpoint-row .col-xl-1[data-v-a0ed2e86]{width:16%}@media only screen and (min-width: 1730px){.table-head-row .col-xl-7[data-v-a0ed2e86],.endpoint-row .col-xl-7[data-v-a0ed2e86]{width:30%}.table-head-row .col-xl-8[data-v-a0ed2e86],.endpoint-row .col-xl-8[data-v-a0ed2e86]{width:44%}.table-head-row .col-xl-1[data-v-a0ed2e86],.endpoint-row .col-xl-1[data-v-a0ed2e86]{width:14%}}.sparkline-value[data-v-a0ed2e86]{top:16px;left:-.6em;position:relative;font-weight:400;float:right;width:25%}.sparkline-value span[data-v-a0ed2e86]{color:#777f7f;text-transform:uppercase;font-size:11px}.sparkline-value.sec[data-v-a0ed2e86]{color:#00f}.sparkline-value.sec span[data-v-a0ed2e86]{color:#007aff}.sparkline-value.min[data-v-a0ed2e86]{color:#8b00d0}.sparkline-value.min span[data-v-a0ed2e86]{color:#b14ae4}.sparkline-value.hr[data-v-a0ed2e86]{color:#d601da}.sparkline-value.hr span[data-v-a0ed2e86]{color:#d764d9}.sparkline-value.d[data-v-a0ed2e86]{color:#ad0017}.sparkline-value.d span[data-v-a0ed2e86]{color:#ff0004}.graph-message-retries-throughputs[data-v-a0ed2e86],.graph-critical-processing-times[data-v-a0ed2e86]{margin-left:.5%}.monitoring-no-data[data-v-a0ed2e86]{margin:60px auto 120px;max-width:520px;line-height:26px}.monitoring-no-data h1[data-v-a0ed2e86]{font-size:30px}.monitoring-no-data-content[data-v-a0ed2e86]{width:80%;display:inline-block;margin:0 auto;padding:3px}.monitoring-no-data-list[data-v-a0ed2e86]{text-align:left;list-style-type:circle}.monitoring-no-data p[data-v-a0ed2e86]{font-size:16px;margin-bottom:20px;margin-top:-18px}.monitoring-no-data ul[data-v-a0ed2e86]{padding-left:0;text-align:left;font-size:16px;margin-bottom:30px}.monitoring-no-data .btn[data-v-a0ed2e86]{font-size:16px}.monitoring-no-data a.btn.btn-default.btn-secondary[data-v-a0ed2e86]{margin-left:10px}[data-v-a0ed2e86] span.table-header-unit{color:#777f7f}.box-header[data-v-a0ed2e86]{padding-bottom:3px;padding-top:2px}.box-header ul[data-v-a0ed2e86]{list-style-type:none;margin:0;padding:0}.righ-side-ellipsis[data-v-a0ed2e86]{direction:rtl;text-align:left}@supports (-ms-ime-align: auto){.righ-side-ellipsis[data-v-a0ed2e86]{direction:ltr}}@media all and (-ms-high-contrast: none),(-ms-high-contrast: active){.righ-side-ellipsis[data-v-a0ed2e86]{direction:ltr}}i.fa.pa-endpoint-lost.endpoints-overview[data-v-a0ed2e86],i.fa.pa-monitoring-lost.endpoints-overview[data-v-a0ed2e86],i.fa.pa-endpoint-lost.endpoint-details[data-v-a0ed2e86],i.fa.pa-monitoring-lost.endpoint-details[data-v-a0ed2e86]{position:relative;margin-right:4px;top:4px}i.fa.pa-endpoint-lost.endpoints-overview[data-v-a0ed2e86]{top:8px}.endpoint-instances .fa.pa-endpoint-lost.endpoint-details[data-v-a0ed2e86]{top:4px}div[content="Unable to connect to instance"][data-v-a0ed2e86],div[content="Unable to connect to monitoring server"][data-v-a0ed2e86]{z-index:99999}.pull-left[data-v-a0ed2e86]{float:left}.filter-input input[data-v-31c05a4f]{display:inline-block;width:100%;padding-right:.625rem;padding-left:2em;border:1px solid #aaa;border-radius:4px;height:100%}div.filter-input[data-v-31c05a4f]{position:relative;height:2.6em}.filter-input .icon[data-v-31c05a4f]{position:absolute;left:.75em;top:calc(50% - .5em);color:var(--reduced-emphasis)}.dropdown[data-v-97697e23]{width:250px}.btn.btn-dropdown[data-v-97697e23]{padding:8px 16px}.btn.dropdown-toggle[data-v-97697e23]:after{vertical-align:middle}.period-selector[data-v-2f8db728]{color:var(--sp-blue)}.nav li[data-v-2f8db728]{display:flex}.nav-pills.period-selector>li>a[data-v-2f8db728]{border-radius:0;border-bottom:3px solid transparent;padding:10px 6px}.nav-pills.period-selector>li>a[data-v-2f8db728]:hover{color:var(--sp-blue);font-weight:400;background-color:initial;border-bottom-color:var(--sp-blue)}.nav.period-selector>li>a[data-v-2f8db728]{padding:10px 6px}.nav-pills.period-selector>li.active>a[data-v-2f8db728],.nav-pills.period-selector>li.active>a[data-v-2f8db728]:hover,.nav-pills.period-selector>li.active>a[data-v-2f8db728]:focus{color:#000;font-weight:700;background-color:initial;border-bottom-color:#000}.nav-pills.period-selector>li>a[data-v-2f8db728]:hover{text-decoration:none}.nav-pills>li+li[data-v-2f8db728]{margin-left:2px}.filter-group.filter-monitoring[data-v-802936b1]{width:100%;margin-top:.5em}.filter-group[data-v-802936b1]{display:flex;justify-content:flex-end;align-items:center;width:50%;position:relative;top:-3px;margin-top:-26px}.filter-group[data-v-802936b1]>*:not(:first-child){margin-left:1.5em}.filter-input input[data-v-802936b1]{display:inline-block;width:100%;padding-right:10px;padding-left:30px;border:1px solid #aaa;border-radius:4px}div.filter-input[data-v-802936b1]{position:relative;width:280px}.monitoring-head h1[data-v-2e8a082d]{margin-bottom:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.danger[data-v-678b2a06],.warning[data-v-678b2a06]{margin:0 2px}.danger[data-v-678b2a06]{color:#ce4844!important;background:linear-gradient(#fff,#fff) center/20% 72% no-repeat}.warning[data-v-678b2a06]{color:var(--reduced-emphasis)}.lead[data-v-bad811e7],.box p .lead[data-v-bad811e7]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-bad811e7]{cursor:pointer}.lead[data-v-b3e3b1e3],.box p .lead[data-v-b3e3b1e3]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-b3e3b1e3]{cursor:pointer}.custom-check-row[data-v-b3e3b1e3]{display:flex;justify-content:space-between;align-items:center;gap:1em}.custom-check-row-detail[data-v-b3e3b1e3]{min-width:0}.custom-check-row-detail .lead[data-v-b3e3b1e3]{text-wrap:wrap}.icon[data-v-b3e3b1e3]{color:var(--reduced-emphasis)}.pa-endpoint[data-v-b3e3b1e3]{position:relative;display:inline-block;top:3px;background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2015%2013'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;'%3e%3cg%20transform='matrix(-1,0,0,-1,15,13)'%3e%3cg%20id='endpoint'%20transform='matrix(-0.777778,2.50152e-16,-2.50152e-16,-0.777778,332.889,66.8889)'%3e%3cpath%20d='M424.129,84.652L424.11,80.864L417.632,80.88L417.728,73.087L424.079,73.103L424.091,69.328L410,69.27L409.945,84.711L424.129,84.652Z'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3cg%20transform='matrix(1,-8.74748e-18,-1.16633e-17,1.28571,1.68478e-13,-22)'%3e%3crect%20x='419'%20y='75'%20width='9'%20height='4'%20fill='currentColor'%20style='fill-rule:nonzero;'/%3e%3c/g%3e%3c/g%3e%3c/g%3e%3c/svg%3e");background-position:center;background-repeat:no-repeat;height:15px;width:15px}.dropdown-menu[data-v-c91e1c77]{border-radius:4px;font-size:14px;font-weight:100;text-align:left;list-style:none}.dropdown-menu>span>li>button[data-v-c91e1c77]{border:none;background:none}.dropdown-menu>span>li>button[data-v-c91e1c77],.dropdown-menu>li>button[data-v-c91e1c77],.dropdown-menu>li>a[data-v-c91e1c77],.dropdown-menu>span>li>a[data-v-c91e1c77]{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}ul.dropdown-menu>span>li>a>span[data-v-c91e1c77]{color:#aaa}.dropdown-menu>span>li>a[data-v-c91e1c77]:hover,.dropdown-menu>span>li>a[data-v-c91e1c77]:focus,.dropdown-menu>li>a[data-v-c91e1c77]:hover,.dropdown-menu>li>a[data-v-c91e1c77]:focus,.dropdown-menu>span>li>button[data-v-c91e1c77]:hover,.dropdown-menu>span>li>button[data-v-c91e1c77]:focus,.dropdown-menu>li>button[data-v-c91e1c77]:hover,.dropdown-menu>li>button[data-v-c91e1c77]:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.msg-list-dropdown[data-v-c91e1c77]{margin:1px 0 0!important;padding-right:0}.msg-group-menu[data-v-c91e1c77]{margin:21px 0 0 6px;float:right;padding-top:12px}.msg-group-menu>.control-label[data-v-c91e1c77]{float:none}.btn.sp-btn-menu[data-v-c91e1c77]{padding-left:16px;background:none;border:none;color:var(--sp-blue);padding-right:0}.sp-btn-menu[data-v-c91e1c77]:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline}.btn-toolbar>.btn-default[data-v-c91e1c77]:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.tabs[data-v-c91e1c77]{display:flex;justify-content:space-between;align-items:end;flex-wrap:wrap}.tabs .dropdown-menu li a[data-v-c91e1c77]{font-size:14px}.filter-group[data-v-c91e1c77]{display:flex;padding:2px 0}.msg-group-menu[data-v-c91e1c77]{margin:0;padding:0}.filter-group[data-v-c91e1c77]>*:not(:first-child){margin-left:1.5em}.not-supported[data-v-5b7721dc]{font-size:1rem}.not-supported div[data-v-5b7721dc]:has(>.message){display:flex;align-items:center;justify-content:center}.not-supported .message[data-v-5b7721dc]{margin-top:2em;max-width:30em;line-height:1.6em}.not-supported .message h1[data-v-5b7721dc]{font-size:1.9em}.not-supported .message ul[data-v-5b7721dc]{padding-left:0;text-align:left;margin-bottom:1.9rem}.not-supported .message .btn[data-v-5b7721dc]{font-size:1rem}.btn[data-v-ec130789]{display:inline-flex;align-items:center;gap:.375rem;cursor:pointer}.btn.disabled[data-v-ec130789]{cursor:not-allowed;opacity:.65}.icon-left[data-v-ec130789],.icon-right[data-v-ec130789]{color:var(--reduced-emphasis)}.icon-left[data-v-ec130789]{margin-right:.25rem}.icon-right[data-v-ec130789]{margin-left:.25rem}.rotate[data-v-ec130789]{animation:spin-ec130789 1s linear infinite}@keyframes spin-ec130789{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.button-text[data-v-ec130789]{flex:1}.modal-mask[data-v-58cd5913]{position:fixed;z-index:9998;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:table;transition:opacity .3s ease}.modal-wrapper[data-v-58cd5913]{display:table-cell;vertical-align:middle}.modal-container[data-v-58cd5913]{width:600px;margin:0 auto;padding:20px 30px;background-color:#fff;border-radius:2px;box-shadow:0 2px 8px #00000054;transition:all .3s ease}.modal-header[data-v-58cd5913]{padding:15px;border-bottom:1px solid #e5e5e5}.modal-title[data-v-58cd5913]{margin:0;line-height:1.42857143}.modal-body[data-v-58cd5913]{position:relative;padding:15px;overflow:auto;min-height:0}.modal-footer .btn+.btn[data-v-58cd5913]{margin-bottom:0;margin-left:5px}.modal-footer[data-v-58cd5913]{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-container[data-v-58cd5913]{padding:0;border-radius:5px}.modal-container .btn[data-v-58cd5913]{font-size:14px}.modal-content[data-v-58cd5913]{position:relative;background-color:#fff;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgb(0 0 0 / 50%);box-shadow:0 3px 9px #0000007f;outline:0;max-height:95vh}@media (min-width: 768px){.modal-dialog[data-v-58cd5913]{width:600px;margin:30px auto}}.modal-open .modal.modal-msg-editor[data-v-58cd5913],.modal-open[data-v-58cd5913]{overflow-y:hidden}.modal .btn.btn-primary[data-v-58cd5913]{padding:8px 20px}.reason[data-v-1cb20a0d]{margin-left:5px;margin-right:5px}.format-showing-results[data-v-74d609a2]{display:flex;align-items:flex-end;font-style:italic}.wrap-text[data-v-6054341f]{max-width:18em;word-wrap:break-word}.wrapper[data-v-6054341f]{padding:.5rem;min-width:12.5rem}.instructions[data-v-6054341f]{font-weight:700;margin-bottom:.5rem}.items-container[data-v-6054341f]{max-height:18rem;max-width:25rem;overflow-y:auto}.item[data-v-6054341f]{font-size:.875rem;padding-left:1.25rem;font-weight:400;color:#262626;text-decoration:none;width:100%;display:flex;overflow-wrap:anywhere}.item-container[data-v-6054341f]{padding:.25rem 0;display:flex;place-items:center;cursor:pointer;max-width:100%;width:max-content}.item-container[data-v-6054341f]:hover{background-color:#f5f5f5}.filter-input[data-v-6054341f]{margin-bottom:.5rem}.clear[data-v-6054341f]{color:#262626;font-weight:400;margin-left:.375rem}.selected[data-v-6054341f]{padding-left:.375rem}.dropdown .btn[data-v-6054341f]{padding-left:.5rem}.side-icon[data-v-6054341f]{color:var(--reduced-emphasis)}.dp__input_wrap{position:relative;width:100%;box-sizing:unset}.dp__input_wrap:focus{border-color:var(--dp-border-color-hover);outline:none}.dp__input_valid{box-shadow:0 0 var(--dp-border-radius) var(--dp-success-color);border-color:var(--dp-success-color)}.dp__input_valid:hover{border-color:var(--dp-success-color)}.dp__input_invalid{box-shadow:0 0 var(--dp-border-radius) var(--dp-danger-color);border-color:var(--dp-danger-color)}.dp__input_invalid:hover{border-color:var(--dp-danger-color)}.dp__input{background-color:var(--dp-background-color);border-radius:var(--dp-border-radius);font-family:var(--dp-font-family);border:1px solid var(--dp-border-color);outline:none;transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size)*1.5);padding:var(--dp-input-padding);color:var(--dp-text-color);box-sizing:border-box}.dp__input::placeholder{opacity:.7}.dp__input:hover:not(.dp__input_focus){border-color:var(--dp-border-color-hover)}.dp__input_not_clearable{padding-inline-end:var(--dp-input-not-clearable-padding)!important}.dp__input_reg{caret-color:#0000}.dp__input_focus{border-color:var(--dp-border-color-focus)}.dp__disabled{background:var(--dp-disabled-color)}.dp__disabled::placeholder{color:var(--dp-disabled-color-text)}.dp__input_icons{display:inline-block;width:var(--dp-font-size);height:var(--dp-font-size);stroke-width:0;font-size:var(--dp-font-size);line-height:calc(var(--dp-font-size)*1.5);padding:6px 12px;color:var(--dp-icon-color);box-sizing:content-box}.dp__input_icon{cursor:pointer;position:absolute;top:50%;inset-inline-start:0;transform:translateY(-50%);color:var(--dp-icon-color)}.dp--clear-btn{position:absolute;top:50%;inset-inline-end:0;transform:translateY(-50%);cursor:pointer;color:var(--dp-icon-color);background:#0000;border:none;display:inline-flex;align-items:center;padding:0;margin:0}.dp__input_icon_pad{padding-inline-start:var(--dp-input-icon-padding)}.dp__menu{background:var(--dp-background-color);border-radius:var(--dp-border-radius);min-width:var(--dp-menu-min-width);font-family:var(--dp-font-family);font-size:var(--dp-font-size);-webkit-user-select:none;user-select:none;border:1px solid var(--dp-menu-border-color);box-sizing:border-box}.dp__menu:after{box-sizing:border-box}.dp__menu:before{box-sizing:border-box}.dp__menu:focus{border:1px solid var(--dp-menu-border-color);outline:none}.dp--menu-wrapper{position:absolute;z-index:99999}.dp__menu_inner{padding:var(--dp-menu-padding)}.dp--menu--inner-stretched{padding:6px 0}.dp__menu_index{z-index:99999}.dp-menu-loading,.dp__menu_readonly,.dp__menu_disabled{position:absolute;inset:0;z-index:999999}.dp__menu_disabled{background:#ffffff80;cursor:not-allowed}.dp__menu_readonly{background:#0000;cursor:default}.dp-menu-loading{background:#ffffff80;cursor:default}.dp--menu-load-container{display:flex;height:100%;width:100%;justify-content:center;align-items:center}.dp--menu-loader{width:48px;height:48px;border:var(--dp-loader);border-bottom-color:#0000;border-radius:50%;display:inline-block;box-sizing:border-box;animation:dp-load-rotation 1s linear infinite;position:absolute}@keyframes dp-load-rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dp__arrow_top{height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-top:1px solid var(--dp-menu-border-color);transform:translateY(-50%) rotate(-45deg)}.dp__arrow_bottom{left:var(--dp-arrow-left);bottom:0;height:12px;width:12px;background-color:var(--dp-background-color);position:absolute;border-inline-end:1px solid var(--dp-menu-border-color);border-bottom:1px solid var(--dp-menu-border-color);transform:translate(-50%,50%) rotate(45deg)}.dp__action_extra{text-align:center;padding:2px 0}.dp--preset-dates{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.dp--preset-dates[data-dp-mobile],.dp--preset-dates-collapsed{display:flex;align-self:center;border:none;overflow-x:auto;max-width:calc(var(--dp-menu-width) - var(--dp-action-row-padding)*2)}.dp__sidebar_left{padding:5px;border-inline-end:1px solid var(--dp-border-color)}.dp__sidebar_right{padding:5px;margin-inline-end:1px solid var(--dp-border-color)}.dp--preset-range{display:block;width:100%;padding:5px;text-align:left;white-space:nowrap;color:var(--dp-text-color);border-radius:var(--dp-border-radius);transition:var(--dp-common-transition)}.dp--preset-range:hover{background-color:var(--dp-hover-color);color:var(--dp-hover-text-color);cursor:pointer}.dp--preset-range[data-dp-mobile]{border:1px solid var(--dp-border-color);margin:0 3px}.dp--preset-range[data-dp-mobile]:first-child{margin-left:0}.dp--preset-range[data-dp-mobile]:last-child{margin-right:0}.dp--preset-range-collapsed{border:1px solid var(--dp-border-color);margin:0 3px}.dp--preset-range-collapsed:first-child{margin-left:0}.dp--preset-range-collapsed:last-child{margin-right:0}.dp__menu_content_wrapper{display:flex}.dp__menu_content_wrapper[data-dp-mobile],.dp--menu-content-wrapper-collapsed{flex-direction:column-reverse}.dp__calendar_header{position:relative;display:flex;justify-content:center;align-items:center;color:var(--dp-text-color);white-space:nowrap;font-weight:700}.dp__calendar_header_item{text-align:center;flex-grow:1;height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);box-sizing:border-box}.dp__calendar_row{display:flex;justify-content:center;align-items:center;margin:var(--dp-row-margin)}.dp__calendar_item{text-align:center;flex-grow:1;box-sizing:border-box;color:var(--dp-text-color)}.dp__calendar{position:relative}.dp__calendar_header_cell{border-bottom:thin solid var(--dp-border-color);padding:var(--dp-calendar-header-cell-padding)}.dp__cell_inner{display:flex;align-items:center;text-align:center;justify-content:center;border-radius:var(--dp-cell-border-radius);height:var(--dp-cell-size);padding:var(--dp-cell-padding);width:var(--dp-cell-size);border:1px solid rgba(0,0,0,0);box-sizing:border-box;position:relative}.dp__cell_inner:hover{transition:all .2s}.dp__cell_auto_range_start,.dp__date_hover_start:hover,.dp__range_start{border-end-end-radius:0;border-start-end-radius:0}.dp__cell_auto_range_end,.dp__date_hover_end:hover,.dp__range_end{border-end-start-radius:0;border-start-start-radius:0}.dp__range_end,.dp__range_start,.dp__active_date{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__date_hover_end:hover,.dp__date_hover_start:hover,.dp__date_hover:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__cell_offset{color:var(--dp-secondary-color)}.dp__cell_disabled{color:var(--dp-secondary-color);cursor:not-allowed}.dp__range_between{background:var(--dp-range-between-dates-background-color);color:var(--dp-range-between-dates-text-color);border-radius:0;border:1px solid var(--dp-range-between-border-color)}.dp__range_between_week{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border-radius:0;border-top:1px solid var(--dp-primary-color);border-bottom:1px solid var(--dp-primary-color)}.dp__today{border:1px solid var(--dp-primary-color)}.dp__week_num{color:var(--dp-secondary-color);text-align:center}.dp__cell_auto_range{border-radius:0;border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.dp__cell_auto_range_start{border-start-start-radius:var(--dp-cell-border-radius);border-end-start-radius:var(--dp-cell-border-radius);border-inline-start:1px dashed var(--dp-primary-color);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color)}.dp__cell_auto_range_end{border-start-end-radius:var(--dp-cell-border-radius);border-end-end-radius:var(--dp-cell-border-radius);border-top:1px dashed var(--dp-primary-color);border-bottom:1px dashed var(--dp-primary-color);border-inline-end:1px dashed var(--dp-primary-color)}.dp__calendar_header_separator{width:100%;height:1px;background:var(--dp-border-color)}.dp__calendar_next{margin-inline-start:var(--dp-multi-calendars-spacing)}.dp__marker_line,.dp__marker_dot{height:5px;background-color:var(--dp-marker-color);position:absolute;bottom:0}.dp__marker_dot{width:5px;border-radius:50%;left:50%;transform:translate(-50%)}.dp__marker_line{width:100%;left:0}.dp__marker_tooltip{position:absolute;border-radius:var(--dp-border-radius);background-color:var(--dp-tooltip-color);padding:5px;border:1px solid var(--dp-border-color);z-index:99999;box-sizing:border-box;cursor:default}.dp__tooltip_content{white-space:nowrap}.dp__tooltip_text{display:flex;align-items:center;flex-flow:row nowrap;color:var(--dp-text-color)}.dp__tooltip_mark{height:5px;width:5px;border-radius:50%;background-color:var(--dp-text-color);color:var(--dp-text-color);margin-inline-end:5px}.dp__arrow_bottom_tp{bottom:0;height:8px;width:8px;background-color:var(--dp-tooltip-color);position:absolute;border-inline-end:1px solid var(--dp-border-color);border-bottom:1px solid var(--dp-border-color);transform:translate(-50%,50%) rotate(45deg)}.dp__instance_calendar{position:relative;width:100%}.dp__flex_display[data-dp-mobile],.dp--flex-display-collapsed{flex-direction:column}.dp__cell_highlight{background-color:var(--dp-highlight-color)}.dp__month_year_row{display:flex;align-items:center;height:var(--dp-month-year-row-height);color:var(--dp-text-color);box-sizing:border-box}.dp__inner_nav{display:flex;align-items:center;justify-content:center;cursor:pointer;height:var(--dp-month-year-row-button-size);width:var(--dp-month-year-row-button-size);color:var(--dp-icon-color);text-align:center;border-radius:50%}.dp__inner_nav svg{height:var(--dp-button-icon-height);width:var(--dp-button-icon-height)}.dp__inner_nav:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}[dir=rtl] .dp__inner_nav{transform:rotate(180deg)}.dp__inner_nav_disabled:hover,.dp__inner_nav_disabled{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.dp--year-select,.dp__month_year_select{text-align:center;cursor:pointer;height:var(--dp-month-year-row-height);display:flex;align-items:center;justify-content:center;border-radius:var(--dp-border-radius);box-sizing:border-box;color:var(--dp-text-color)}.dp--year-select:hover,.dp__month_year_select:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp__month_year_select{width:50%}.dp--year-select{width:100%}.dp__month_year_wrap{display:flex;flex-direction:row;width:100%}.dp__year_disable_select{justify-content:space-around}.dp--header-wrap{display:flex;width:100%;flex-direction:column}.dp__overlay{width:100%;background:var(--dp-background-color);transition:opacity 1s ease-out;z-index:99999;font-family:var(--dp-font-family);color:var(--dp-text-color);box-sizing:border-box}.dp--overlay-absolute{position:absolute;height:100%;top:0;left:0}.dp--overlay-relative{position:relative}.dp__overlay_container::-webkit-scrollbar-track{box-shadow:var(--dp-scroll-bar-background);background-color:var(--dp-scroll-bar-background)}.dp__overlay_container::-webkit-scrollbar{width:5px;background-color:var(--dp-scroll-bar-background)}.dp__overlay_container::-webkit-scrollbar-thumb{background-color:var(--dp-scroll-bar-color);border-radius:10px}.dp__overlay:focus{border:none;outline:none}.dp__container_flex{display:flex}.dp__container_block{display:block}.dp__overlay_container{flex-direction:column;overflow-y:auto;height:var(--dp-overlay-height)}.dp__time_picker_overlay_container{height:100%}.dp__overlay_row{padding:0;box-sizing:border-box;display:flex;margin-inline:auto;flex-wrap:wrap;max-width:100%;width:100%;align-items:center}.dp__flex_row{flex:1}.dp__overlay_col{box-sizing:border-box;width:33%;padding:var(--dp-overlay-col-padding);white-space:nowrap}.dp__overlay_cell_pad{padding:var(--dp-common-padding) 0}.dp__overlay_cell_active{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center;background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__overlay_cell{cursor:pointer;border-radius:var(--dp-border-radius);text-align:center}.dp__overlay_cell:hover{background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp__cell_in_between{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__over_action_scroll{right:5px;box-sizing:border-box}.dp__overlay_cell_disabled{cursor:not-allowed;background:var(--dp-disabled-color)}.dp__overlay_cell_disabled:hover{background:var(--dp-disabled-color)}.dp__overlay_cell_active_disabled{cursor:not-allowed;background:var(--dp-primary-disabled-color)}.dp__overlay_cell_active_disabled:hover{background:var(--dp-primary-disabled-color)}.dp__btn,.dp--qr-btn,.dp--time-overlay-btn,.dp--time-invalid{border:none;font:inherit;transition:var(--dp-common-transition);line-height:normal}.dp--year-mode-picker{display:flex;width:100%;align-items:center;justify-content:space-between;height:var(--dp-cell-size)}.dp--tp-wrap{width:100%}.dp--tp-wrap[data-dp-mobile]{max-width:100%}.dp__time_input{width:100%;display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;font-family:var(--dp-font-family);color:var(--dp-text-color)}.dp__time_col_reg_block{padding:0 20px}.dp__time_col_reg_inline{padding:0 10px}.dp__time_col_reg_with_button{padding:0 15px}.dp__time_col_reg_with_button[data-compact~=true]{padding:0 5px}.dp__time_col_sec{padding:0 10px}.dp__time_col_sec_with_button{padding:0 5px}.dp__time_col_sec_with_button[data-collapsed~=true]{padding:0}.dp__time_col{text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column}.dp__time_col_block{font-size:var(--dp-time-font-size)}.dp__time_display_block{padding:0 3px}.dp__time_display_inline{padding:5px}.dp__time_picker_inline_container{display:flex;width:100%;justify-content:center}.dp__inc_dec_button{padding:5px;margin:0;height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size);display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:50%;color:var(--dp-icon-color);box-sizing:border-box}.dp__inc_dec_button svg{height:var(--dp-time-inc-dec-button-size);width:var(--dp-time-inc-dec-button-size)}.dp__inc_dec_button:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.dp__time_display{cursor:pointer;color:var(--dp-text-color);border-radius:var(--dp-border-radius);display:flex;align-items:center;justify-content:center}.dp__time_display:hover:enabled{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}.dp__inc_dec_button_inline{width:100%;padding:0;height:8px;cursor:pointer;display:flex;align-items:center}.dp__inc_dec_button_disabled,.dp__inc_dec_button_disabled:hover{background:var(--dp-disabled-color);color:var(--dp-disabled-color-text);cursor:not-allowed}.dp__pm_am_button{background:var(--dp-primary-color);color:var(--dp-primary-text-color);border:none;padding:var(--dp-common-padding);border-radius:var(--dp-border-radius);cursor:pointer}.dp__pm_am_button[data-compact~=true]{padding:7px}.dp__tp_inline_btn_bar{width:100%;height:4px;background-color:var(--dp-secondary-color);transition:var(--dp-common-transition);border-collapse:collapse}.dp__tp_inline_btn_top:hover .dp__tp_btn_in_r{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.dp__tp_inline_btn_top:hover .dp__tp_btn_in_l,.dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_r{background-color:var(--dp-primary-color);transform:rotate(-12deg) scale(1.15) translateY(-2px)}.dp__tp_inline_btn_bottom:hover .dp__tp_btn_in_l{background-color:var(--dp-primary-color);transform:rotate(12deg) scale(1.15) translateY(-2px)}.dp--time-overlay-btn{background:none}.dp--time-invalid{background-color:var(--dp-disabled-color)}.dp__action_row{display:flex;align-items:center;width:100%;padding:var(--dp-action-row-padding);box-sizing:border-box;color:var(--dp-text-color);flex-flow:row nowrap}.dp__action_row svg{height:var(--dp-button-icon-height);width:auto}.dp__selection_preview{display:block;color:var(--dp-text-color);font-size:var(--dp-preview-font-size);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dp__action_buttons{display:flex;flex:0;white-space:nowrap;align-items:center;justify-content:flex-end;margin-inline-start:auto}.dp__action_button{display:inline-flex;align-items:center;background:#0000;border:1px solid rgba(0,0,0,0);padding:var(--dp-action-buttons-padding);line-height:var(--dp-action-button-height);margin-inline-start:3px;height:var(--dp-action-button-height);cursor:pointer;border-radius:var(--dp-border-radius);font-size:var(--dp-preview-font-size);font-family:var(--dp-font-family)}.dp__action_cancel{color:var(--dp-text-color);border:1px solid var(--dp-border-color)}.dp__action_cancel:hover{border-color:var(--dp-primary-color);transition:var(--dp-action-row-transition)}.dp__action_buttons .dp__action_select{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp__action_buttons .dp__action_select:hover{background:var(--dp-primary-color);transition:var(--dp-action-row-transition)}.dp__action_buttons .dp__action_select:disabled{background:var(--dp-primary-disabled-color);cursor:not-allowed}.dp-quarter-picker-wrap{display:flex;flex-direction:column;height:100%;min-width:var(--dp-menu-min-width)}.dp--qr-btn-disabled{cursor:not-allowed;background:var(--dp-disabled-color)}.dp--qr-btn-disabled:hover{background:var(--dp-disabled-color)}.dp--qr-btn{width:100%;padding:var(--dp-common-padding)}.dp--qr-btn:not(.dp--highlighted,.dp--qr-btn-active,.dp--qr-btn-disabled,.dp--qr-btn-between){background:none}.dp--qr-btn:hover:not(.dp--qr-btn-active,.dp--qr-btn-disabled){background:var(--dp-hover-color);color:var(--dp-hover-text-color);transition:var(--dp-common-transition)}.dp--quarter-items{display:flex;flex-direction:column;flex:1;width:100%;height:100%;justify-content:space-evenly}.dp--qr-btn-active{background:var(--dp-primary-color);color:var(--dp-primary-text-color)}.dp--qr-btn-between{background:var(--dp-hover-color);color:var(--dp-hover-text-color)}:root{--dp-common-transition: all .1s ease-in;--dp-menu-padding: 6px 8px;--dp-animation-duration: .1s;--dp-menu-appear-transition-timing: cubic-bezier(.4, 0, 1, 1);--dp-transition-timing: ease-out;--dp-action-row-transition: all .2s ease-in;--dp-font-family: -apple-system, blinkmacsystemfont, "Segoe UI", roboto, oxygen, ubuntu, cantarell, "Open Sans", "Helvetica Neue", sans-serif;--dp-border-radius: 4px;--dp-cell-border-radius: 4px;--dp-transition-length: 22px;--dp-transition-timing-general: .1s;--dp-button-height: 35px;--dp-month-year-row-height: 35px;--dp-month-year-row-button-size: 25px;--dp-button-icon-height: 20px;--dp-calendar-wrap-padding: 0 5px;--dp-cell-size: 35px;--dp-cell-padding: 5px;--dp-common-padding: 10px;--dp-input-icon-padding: 35px;--dp-input-padding: 6px 30px 6px 12px;--dp-input-not-clearable-padding: 12px;--dp-menu-min-width: 260px;--dp-action-buttons-padding: 1px 6px;--dp-row-margin: 5px 0;--dp-calendar-header-cell-padding: .5rem;--dp-multi-calendars-spacing: 10px;--dp-overlay-col-padding: 3px;--dp-time-inc-dec-button-size: 32px;--dp-font-size: 1rem;--dp-preview-font-size: .8rem;--dp-time-font-size: 2rem;--dp-action-button-height: 22px;--dp-action-row-padding: 8px;--dp-direction: ltr}.dp__theme_dark{--dp-background-color: #212121;--dp-text-color: #fff;--dp-hover-color: #484848;--dp-hover-text-color: #fff;--dp-hover-icon-color: #959595;--dp-primary-color: #005cb2;--dp-primary-disabled-color: #61a8ea;--dp-primary-text-color: #fff;--dp-secondary-color: #a9a9a9;--dp-border-color: #2d2d2d;--dp-menu-border-color: #2d2d2d;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #737373;--dp-disabled-color-text: #d0d0d0;--dp-scroll-bar-background: #212121;--dp-scroll-bar-color: #484848;--dp-success-color: #00701a;--dp-success-color-disabled: #428f59;--dp-icon-color: #959595;--dp-danger-color: #e53935;--dp-marker-color: #e53935;--dp-tooltip-color: #3e3e3e;--dp-highlight-color: rgb(0 92 178 / 20%);--dp-range-between-dates-background-color: var(--dp-hover-color, #484848);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #fff);--dp-range-between-border-color: var(--dp-hover-color, #fff);--dp-loader: 5px solid #005cb2}.dp__theme_light{--dp-background-color: #fff;--dp-text-color: #212121;--dp-hover-color: #f3f3f3;--dp-hover-text-color: #212121;--dp-hover-icon-color: #959595;--dp-primary-color: #1976d2;--dp-primary-disabled-color: #6bacea;--dp-primary-text-color: #fff;--dp-secondary-color: #c0c4cc;--dp-border-color: #ddd;--dp-menu-border-color: #ddd;--dp-border-color-hover: #aaaeb7;--dp-border-color-focus: #aaaeb7;--dp-disabled-color: #f6f6f6;--dp-scroll-bar-background: #f3f3f3;--dp-scroll-bar-color: #959595;--dp-success-color: #76d275;--dp-success-color-disabled: #a3d9b1;--dp-icon-color: #959595;--dp-danger-color: #ff6f60;--dp-marker-color: #ff6f60;--dp-tooltip-color: #fafafa;--dp-disabled-color-text: #8e8e8e;--dp-highlight-color: rgb(25 118 210 / 10%);--dp-range-between-dates-background-color: var(--dp-hover-color, #f3f3f3);--dp-range-between-dates-text-color: var(--dp-hover-text-color, #212121);--dp-range-between-border-color: var(--dp-hover-color, #f3f3f3);--dp-loader: 5px solid #1976d2}.dp__flex{display:flex;align-items:center}.dp__btn{background:none}.dp__main{font-family:var(--dp-font-family);-webkit-user-select:none;user-select:none;box-sizing:border-box;position:relative;width:100%}.dp__main *{direction:var(--dp-direction, ltr)}.dp__pointer{cursor:pointer}.dp__icon{stroke:currentcolor;fill:currentcolor}.dp__button{width:100%;text-align:center;color:var(--dp-icon-color);cursor:pointer;display:flex;align-items:center;place-content:center center;padding:var(--dp-common-padding);box-sizing:border-box;height:var(--dp-button-height)}.dp__button.dp__overlay_action{position:absolute;bottom:0}.dp__button:hover{background:var(--dp-hover-color);color:var(--dp-hover-icon-color)}.dp__button svg{height:var(--dp-button-icon-height);width:auto}.dp__button_bottom{border-bottom-left-radius:var(--dp-border-radius);border-bottom-right-radius:var(--dp-border-radius)}.dp__flex_display{display:flex}.dp__flex_display_with_input{flex-direction:column;align-items:flex-start}.dp__relative{position:relative}.calendar-next-enter-active,.calendar-next-leave-active,.calendar-prev-enter-active,.calendar-prev-leave-active{transition:all var(--dp-transition-timing-general) ease-out}.calendar-next-enter-from{opacity:0;transform:translate(var(--dp-transition-length))}.calendar-next-leave-to,.calendar-prev-enter-from{opacity:0;transform:translate(calc(var(--dp-transition-length) * -1))}.calendar-prev-leave-to{opacity:0;transform:translate(var(--dp-transition-length))}.dp-menu-appear-bottom-enter-active,.dp-menu-appear-bottom-leave-active,.dp-menu-appear-top-enter-active,.dp-menu-appear-top-leave-active,.dp-slide-up-enter-active,.dp-slide-up-leave-active,.dp-slide-down-enter-active,.dp-slide-down-leave-active{transition:all var(--dp-animation-duration) var(--dp-transition-timing)}.dp-menu-appear-top-enter-from,.dp-menu-appear-top-leave-to,.dp-slide-down-leave-to,.dp-slide-up-enter-from{opacity:0;transform:translateY(var(--dp-transition-length))}.dp-menu-appear-bottom-enter-from,.dp-menu-appear-bottom-leave-to,.dp-slide-down-enter-from,.dp-slide-up-leave-to{opacity:0;transform:translateY(calc(var(--dp-transition-length) * -1))}.dp--arrow-btn-nav{transition:var(--dp-common-transition)}.dp--highlighted{background-color:var(--dp-highlight-color)}.dp--hidden-el{visibility:hidden}.dp--centered{top:50%;left:50%;transform:translate(-50%,-50%);position:fixed}.dropdown .btn{padding-left:.5rem}.filters[data-v-e4b64397]{background-color:#f3f3f3;border:#8c8c8c 1px solid;border-radius:3px;padding:.3125rem;display:flex;gap:1.1rem;flex-wrap:wrap}.filter[data-v-e4b64397]{display:flex;align-items:start}.filter[data-v-e4b64397]:last-child{flex-grow:1;place-content:flex-end}.filter-label[data-v-e4b64397]{font-weight:700;padding-block:.375rem}.text-search-container[data-v-e4b64397]{width:25rem}.note[data-v-e4b64397]{font-size:.875em;color:var(--bs-secondary-color)}.status-container[data-v-aa3a38ec]{color:#fff;width:1.4em;height:1.4em;position:relative}.status-icon[data-v-aa3a38ec]{background-position:center;background-repeat:no-repeat;height:1.4em;width:1.4em}.warning[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2024%2024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20d='M12,1L0,23L24,23L12,1Z'%20style='fill:rgb(255,192,50);fill-rule:nonzero;'/%3e%3crect%20x='11'%20y='9'%20width='2'%20height='7'/%3e%3cg%20transform='matrix(1.25658,0,0,1.25658,-3.07895,-4.875)'%3e%3ccircle%20cx='12'%20cy='19'%20r='1'/%3e%3c/g%3e%3c/svg%3e");background-position:bottom;background-repeat:no-repeat;height:.93em;width:.93em;position:absolute;right:0;bottom:0}.successful[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'%20style='fill:%235eaa37;'/%3e%3cpath%20d='M279.224,263.224c-26.985,26.988%20-53.721,53.725%20-80.786,80.792c-33.455,-33.493%20-66.721,-66.796%20-100.069,-100.181c13.776,-13.836%2027.814,-27.935%2041.447,-41.626c19.089,19.092%2037.868,37.874%2057.587,57.596c45.08,-45.08%2089.027,-89.027%20132.728,-132.728c14.133,14.296%2028.019,28.341%2042.378,42.865c-30.449,30.448%20-61.742,61.74%20-93.285,93.282Z'%20style='fill:%23fff;'/%3e%3c/svg%3e")}.resolved-successfully[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'%20style='fill:%235eaa37;'/%3e%3cpath%20style='fill:%23ffffff;'%20d='M274.305,139.763c-48.229,-11.816%20-93.369,8.998%20-115.252,52.899c-4.411,8.849%20-6.998,18.317%20-8.593,28.038c-0.828,5.049%200.194,6.094%205.589,6.139c8.33,0.068%2016.662,-0.008%2024.992,0.042c1.778,0.011%203.665,-0.451%206.262,1.4c-20.462,28.539%20-40.9,57.044%20-61.952,86.405c-20.951,-29.324%20-41.285,-57.785%20-61.567,-86.172c2.11,-2.16%204.046,-1.593%205.792,-1.607c8.997,-0.071%2017.995,-0.141%2026.991,-0.017c3.453,0.047%205.029,-1.066%205.421,-4.742c2.39,-22.448%208.686,-43.655%2020.634,-62.998c23.195,-37.546%2056.525,-61.088%2099.887,-68.267c53.905,-8.924%20100.051,7.168%20136.593,48.301c21.363,24.047%2032.964,52.527%2035.23,84.618c3.245,45.945%20-11.729,85.339%20-44.759,117.193c-26.503,25.561%20-58.635,39.088%20-95.741,40.471c-29.467,1.098%20-56.671,-6.011%20-81.856,-21.18c-1.265,-0.761%20-2.456,-1.644%20-3.492,-2.342c-0.405,-1.891%200.735,-2.772%201.575,-3.75c8.358,-9.731%2016.841,-19.358%2025.048,-29.215c2.715,-3.262%204.937,-3.714%208.865,-1.744c48.803,24.475%20107.363,5.123%20132.354,-43.557c28.372,-55.267%20-1.66,-123.374%20-62.021,-139.915Z'/%3e%3c/svg%3e")}.failed[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'%20style='fill:%23c63f3f;'/%3e%3cpath%20d='M341.61,154.395c3.019,2.615%205.787,4.979%208.705,7.47c-24.808,24.8%20-48.701,48.685%20-72.783,72.758c24.333,24.324%2048.315,48.297%2072.061,72.034c-14.066,14.071%20-27.591,27.599%20-41.116,41.129c-23.621,-23.643%20-47.559,-47.603%20-71.732,-71.799c-24.775,24.784%20-48.755,48.774%20-72.505,72.533c-13.992,-13.982%20-27.525,-27.506%20-41.026,-40.998c23.666,-23.659%2047.624,-47.609%2071.874,-71.852c-24.771,-24.736%20-48.761,-48.692%20-72.645,-72.541c14.084,-14.004%2027.655,-27.498%2041.405,-41.171c23.683,23.69%2047.641,47.656%2071.705,71.728c24.478,-24.487%2048.352,-48.369%2072.681,-72.707c11.327,11.34%2022.226,22.253%2033.376,33.416Z'%20style='fill:%23fffefe;'/%3e%3c/svg%3e")}.archived[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'/%3e%3cpath%20d='M323,352l-205.067,0l0,-233.75l233.494,-0l-0,233.75l-28.427,0m-59.583,-88.82c-0.21,0.195%20-0.353,0.431%20-1.334,0.962l-56.7,0l-0,-28.907l-58.243,0l0,57.983l174.907,0l-0,-57.929l-58.261,0c-0,9.424%20-0,18.559%20-0.369,27.891m-1.099,-86.738l-57.285,-0l-0,-29.012l-57.868,0l-0,58.071l174.758,0l-0,-58.096l-58.138,-0c0,9.347%200,18.463%20-0.384,27.794c-0.226,0.207%20-0.365,0.461%20-1.083,1.243Z'%20style='fill:%23fff;'/%3e%3cpath%20d='M263.785,174.984l0,-27.579l58.138,-0l-0,58.096l-174.758,0l-0,-58.071l57.868,0l-0,29.012c19.46,-0%2038.373,-0%2057.897,-0.256c0.693,-0.571%200.774,-0.887%200.855,-1.202Z'/%3e%3cpath%20d='M263.786,262.983l-0,-27.694l58.261,0l-0,57.929l-174.907,0l0,-57.983l58.243,0l-0,28.907c19.154,0%2037.927,0%2057.43,-0.109c0.811,-0.423%200.892,-0.736%200.973,-1.05Z'/%3e%3c/svg%3e")}.repeated-failure[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'%20style='fill:%23c63f3f;'/%3e%3cpath%20d='M237.009,290.515c-1.444,0.913%20-3.11,1.602%20-4.298,2.776c-9.237,9.124%20-18.382,18.341%20-27.658,27.632c-18.269,-18.284%20-36.332,-36.363%20-54.448,-54.494c-18.629,18.644%20-36.706,36.734%20-54.464,54.505c-10.915,-10.897%20-21.243,-21.208%20-31.614,-31.562c17.695,-17.689%2035.701,-35.689%2053.481,-53.464c-18.418,-18.374%20-36.527,-36.442%20-54.208,-54.081c11.193,-11.212%2021.486,-21.523%2032.145,-32.2c17.51,17.535%2035.577,35.627%2053.566,53.641c18.295,-18.331%2036.275,-36.347%2054.547,-54.655c11.09,10.769%2021.637,21.011%2032.551,31.482c0.386,0.412%200.405,0.595%200.059,0.742c-1.293,0.599%20-2.35,1.106%20-3.133,1.887c-16.76,16.707%20-33.493,33.442%20-50.211,50.192c-0.659,0.661%20-1.117,1.524%20-1.801,2.477c17.628,17.599%2035.069,35.029%2052.562,52.407c0.734,0.729%201.96,0.962%202.95,1.641c-0.014,0.501%20-0.021,0.787%20-0.026,1.074Z'%20style='fill:%23fffdfd;'/%3e%3cpath%20d='M237.033,180.873c-0.019,-0.183%20-0.038,-0.366%20-0.086,-0.823c10.315,-10.134%2020.659,-19.994%2031.197,-30.038c17.282,17.304%2035.335,35.38%2053.422,53.49c18.516,-18.547%2036.582,-36.643%2054.28,-54.37c10.899,10.909%2021.197,21.216%2031.775,31.802c-17.612,17.603%20-35.703,35.684%20-53.958,53.93c18.373,18.364%2036.459,36.44%2054.228,54.201c-10.635,10.661%20-20.837,20.888%20-30.996,31.071c-17.581,-17.679%20-35.617,-35.814%20-53.48,-53.777c-18.867,18.895%20-36.948,37.003%20-55.295,55.377c-10.758,-10.714%20-20.75,-20.665%20-30.926,-30.918c-0.18,-0.59%20-0.173,-0.876%20-0.001,-1.68c18.002,-18.171%2035.839,-35.823%2054.821,-54.609c-2.464,-1.731%20-4.309,-2.668%20-5.699,-4.06c-16.467,-16.492%20-32.866,-33.053%20-49.282,-49.596Z'%20style='fill:%23fffdfd;'/%3e%3c/svg%3e")}.retry-issued[data-v-aa3a38ec]{background-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%20470%20470'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3ccircle%20cx='235'%20cy='235'%20r='234'%20style='fill:%23ccc;'/%3e%3cpath%20d='M274.305,139.763c-48.229,-11.816%20-93.369,8.998%20-115.252,52.899c-4.411,8.849%20-6.998,18.317%20-8.593,28.038c-0.828,5.049%200.194,6.094%205.589,6.139c8.33,0.068%2016.662,-0.008%2024.992,0.042c1.778,0.011%203.665,-0.451%206.262,1.4c-20.462,28.539%20-40.9,57.044%20-61.952,86.405c-20.951,-29.324%20-41.285,-57.785%20-61.567,-86.172c2.11,-2.16%204.046,-1.593%205.792,-1.607c8.997,-0.071%2017.995,-0.141%2026.991,-0.017c3.453,0.047%205.029,-1.066%205.421,-4.742c2.39,-22.448%208.686,-43.655%2020.634,-62.998c23.195,-37.546%2056.525,-61.088%2099.887,-68.267c53.905,-8.924%20100.051,7.168%20136.593,48.301c21.363,24.047%2032.964,52.527%2035.23,84.618c3.245,45.945%20-11.729,85.339%20-44.759,117.193c-26.503,25.561%20-58.635,39.088%20-95.741,40.471c-29.467,1.098%20-56.671,-6.011%20-81.856,-21.18c-1.265,-0.761%20-2.456,-1.644%20-3.492,-2.342c-0.405,-1.891%200.735,-2.772%201.575,-3.75c8.358,-9.731%2016.841,-19.358%2025.048,-29.215c2.715,-3.262%204.937,-3.714%208.865,-1.744c48.803,24.475%20107.363,5.123%20132.354,-43.557c28.372,-55.267%20-1.66,-123.374%20-62.021,-139.915Z'/%3e%3c/svg%3e")}.unknown-status[data-v-aa3a38ec]:after{content:"?";color:#fff;font-weight:700;border-radius:50%;width:1.4em;line-height:1.4em;background-color:var(--reduced-emphasis);display:flex;align-items:center;justify-content:center}.item[data-v-a4087cf3]{color:inherit;text-decoration:none;padding:.3rem .2rem;border:1px solid #ffffff;border-bottom:1px solid #eee;display:grid;grid-template-columns:1.8em 1fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:.375rem;grid-template-areas:"status message-type message-type message-type time-sent" "status message-id processing-time critical-time delivery-time"}.item[data-v-a4087cf3]:not(:first-child){border-top-color:#eee}.item[data-v-a4087cf3]:hover{border-color:var(--sp-blue);background-color:#edf6f7}.label-name[data-v-a4087cf3]{margin-right:.25rem;color:#777f7f}.status[data-v-a4087cf3]{grid-area:status}.message-id[data-v-a4087cf3]{grid-area:message-id}.time-sent[data-v-a4087cf3]{grid-area:time-sent}.message-type[data-v-a4087cf3]{grid-area:message-type;font-weight:700;overflow-wrap:break-word}.processing-time[data-v-a4087cf3]{grid-area:processing-time}.critical-time[data-v-a4087cf3]{grid-area:critical-time}.delivery-time[data-v-a4087cf3]{grid-area:delivery-time}.refresh-config[data-v-b5828d4c]{display:flex;align-items:center;gap:1em;margin-bottom:.5em}.filter[data-v-b5828d4c]{display:flex;align-items:center}.filter-label[data-v-b5828d4c]{font-weight:700}.lead[data-v-c5cef6cc],.box p .lead[data-v-c5cef6cc]{word-wrap:break-word;color:#181919;font-size:1em;font-weight:700;margin-bottom:.2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a[data-v-c5cef6cc]{cursor:pointer}.header[data-v-c5cef6cc]{position:sticky;top:-3rem;background:#f2f6f7;z-index:100;padding-top:.5rem;margin-top:-.5rem}.results-table[data-v-c5cef6cc]{margin-top:1rem;margin-bottom:5rem;background-color:#fff}.container[data-v-eb90df02],.row[data-v-eb90df02]{display:flex;flex-direction:column;max-height:100%;flex:1;min-height:0}.row.title[data-v-eb90df02]{flex:0;min-height:fit-content}.not-supported[data-v-eb90df02]{display:flex;align-items:center;justify-content:center;flex-direction:column}.footer-icon[data-v-7da8a29f]{color:var(--sp-blue);margin-right:4px}[data-v-03bdab59]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-03bdab59]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-03bdab59]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-03bdab59]{margin-right:-15px}.navbar-brand[data-v-03bdab59]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-03bdab59]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-03bdab59]{margin-left:8px}.nav>li>a[data-v-03bdab59]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-03bdab59]:hover,.nav>li>a[data-v-03bdab59]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-03bdab59]{margin:0}.nav>li>a .navbar-toggle[data-v-03bdab59]{margin-top:13px}.navbar a[data-v-03bdab59]{font-weight:400;text-decoration:none}.navbar a[data-v-03bdab59]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-03bdab59],.navbar-inverse .navbar-nav>.active>a[data-v-03bdab59]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-03bdab59]:focus{color:#fff}.label-important[data-v-03bdab59],.badge-important[data-v-03bdab59]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-03bdab59]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-03bdab59]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-03bdab59]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-03bdab59]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-03bdab59]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-03bdab59]{float:none}.navbar-toggle[data-v-03bdab59]{display:block}.navbar-collapse[data-v-03bdab59]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-03bdab59]{display:none!important}.navbar-nav[data-v-03bdab59]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-03bdab59]{float:none}.navbar-nav>li>a[data-v-03bdab59]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-03bdab59]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-03bdab59]{display:block!important;padding:0 32px 16px}.collapsing[data-v-03bdab59]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-03bdab59]{display:none}.nav>li>a .icon-white[data-v-03bdab59]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-03bdab59],.nav>li>a:focus .icon-white[data-v-03bdab59]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-03bdab59],.nav>li>a:focus .pa-monitoring[data-v-03bdab59]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-03bdab59]{position:sticky}div.navbar-header[data-v-03bdab59]{float:left}ul.navbar-nav[data-v-03bdab59]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-03bdab59]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-03bdab59]{display:block!important}.navbar-nav>li[data-v-03bdab59],.navbar-nav[data-v-03bdab59]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-03bdab59]:last-child{margin-right:-15px!important}.navbar-right[data-v-03bdab59]{float:right!important}.navbar-nav>li.active>a[data-v-03bdab59]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-03bdab59]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-03bdab59]{margin-top:0}}.pa-monitoring[data-v-03bdab59]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-03bdab59]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-03bdab59]{margin:0 1em}#navbar .router-link-active[data-v-03bdab59]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-c9cb36ef]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-c9cb36ef]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-c9cb36ef]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-c9cb36ef]{margin-right:-15px}.navbar-brand[data-v-c9cb36ef]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-c9cb36ef]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-c9cb36ef]{margin-left:8px}.nav>li>a[data-v-c9cb36ef]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-c9cb36ef]:hover,.nav>li>a[data-v-c9cb36ef]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-c9cb36ef]{margin:0}.nav>li>a .navbar-toggle[data-v-c9cb36ef]{margin-top:13px}.navbar a[data-v-c9cb36ef]{font-weight:400;text-decoration:none}.navbar a[data-v-c9cb36ef]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-c9cb36ef],.navbar-inverse .navbar-nav>.active>a[data-v-c9cb36ef]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-c9cb36ef]:focus{color:#fff}.label-important[data-v-c9cb36ef],.badge-important[data-v-c9cb36ef]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-c9cb36ef]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-c9cb36ef]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-c9cb36ef]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-c9cb36ef]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-c9cb36ef]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-c9cb36ef]{float:none}.navbar-toggle[data-v-c9cb36ef]{display:block}.navbar-collapse[data-v-c9cb36ef]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-c9cb36ef]{display:none!important}.navbar-nav[data-v-c9cb36ef]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-c9cb36ef]{float:none}.navbar-nav>li>a[data-v-c9cb36ef]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-c9cb36ef]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-c9cb36ef]{display:block!important;padding:0 32px 16px}.collapsing[data-v-c9cb36ef]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-c9cb36ef]{display:none}.nav>li>a .icon-white[data-v-c9cb36ef]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-c9cb36ef],.nav>li>a:focus .icon-white[data-v-c9cb36ef]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-c9cb36ef],.nav>li>a:focus .pa-monitoring[data-v-c9cb36ef]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-c9cb36ef]{position:sticky}div.navbar-header[data-v-c9cb36ef]{float:left}ul.navbar-nav[data-v-c9cb36ef]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-c9cb36ef]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-c9cb36ef]{display:block!important}.navbar-nav>li[data-v-c9cb36ef],.navbar-nav[data-v-c9cb36ef]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-c9cb36ef]:last-child{margin-right:-15px!important}.navbar-right[data-v-c9cb36ef]{float:right!important}.navbar-nav>li.active>a[data-v-c9cb36ef]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-c9cb36ef]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-c9cb36ef]{margin-top:0}}.pa-monitoring[data-v-c9cb36ef]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-c9cb36ef]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-c9cb36ef]{margin:0 1em}#navbar .router-link-active[data-v-c9cb36ef]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-b8a34205]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-b8a34205]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-b8a34205]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-b8a34205]{margin-right:-15px}.navbar-brand[data-v-b8a34205]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-b8a34205]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-b8a34205]{margin-left:8px}.nav>li>a[data-v-b8a34205]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-b8a34205]:hover,.nav>li>a[data-v-b8a34205]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-b8a34205]{margin:0}.nav>li>a .navbar-toggle[data-v-b8a34205]{margin-top:13px}.navbar a[data-v-b8a34205]{font-weight:400;text-decoration:none}.navbar a[data-v-b8a34205]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-b8a34205],.navbar-inverse .navbar-nav>.active>a[data-v-b8a34205]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-b8a34205]:focus{color:#fff}.label-important[data-v-b8a34205],.badge-important[data-v-b8a34205]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-b8a34205]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-b8a34205]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-b8a34205]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-b8a34205]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-b8a34205]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-b8a34205]{float:none}.navbar-toggle[data-v-b8a34205]{display:block}.navbar-collapse[data-v-b8a34205]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-b8a34205]{display:none!important}.navbar-nav[data-v-b8a34205]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-b8a34205]{float:none}.navbar-nav>li>a[data-v-b8a34205]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-b8a34205]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-b8a34205]{display:block!important;padding:0 32px 16px}.collapsing[data-v-b8a34205]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-b8a34205]{display:none}.nav>li>a .icon-white[data-v-b8a34205]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-b8a34205],.nav>li>a:focus .icon-white[data-v-b8a34205]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-b8a34205],.nav>li>a:focus .pa-monitoring[data-v-b8a34205]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-b8a34205]{position:sticky}div.navbar-header[data-v-b8a34205]{float:left}ul.navbar-nav[data-v-b8a34205]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-b8a34205]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-b8a34205]{display:block!important}.navbar-nav>li[data-v-b8a34205],.navbar-nav[data-v-b8a34205]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-b8a34205]:last-child{margin-right:-15px!important}.navbar-right[data-v-b8a34205]{float:right!important}.navbar-nav>li.active>a[data-v-b8a34205]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-b8a34205]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-b8a34205]{margin-top:0}}.pa-monitoring[data-v-b8a34205]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-b8a34205]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-b8a34205]{margin:0 1em}#navbar .router-link-active[data-v-b8a34205]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-f2752348]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-f2752348]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-f2752348]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-f2752348]{margin-right:-15px}.navbar-brand[data-v-f2752348]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-f2752348]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-f2752348]{margin-left:8px}.nav>li>a[data-v-f2752348]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-f2752348]:hover,.nav>li>a[data-v-f2752348]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-f2752348]{margin:0}.nav>li>a .navbar-toggle[data-v-f2752348]{margin-top:13px}.navbar a[data-v-f2752348]{font-weight:400;text-decoration:none}.navbar a[data-v-f2752348]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-f2752348],.navbar-inverse .navbar-nav>.active>a[data-v-f2752348]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-f2752348]:focus{color:#fff}.label-important[data-v-f2752348],.badge-important[data-v-f2752348]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-f2752348]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-f2752348]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-f2752348]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-f2752348]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-f2752348]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-f2752348]{float:none}.navbar-toggle[data-v-f2752348]{display:block}.navbar-collapse[data-v-f2752348]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-f2752348]{display:none!important}.navbar-nav[data-v-f2752348]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-f2752348]{float:none}.navbar-nav>li>a[data-v-f2752348]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-f2752348]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-f2752348]{display:block!important;padding:0 32px 16px}.collapsing[data-v-f2752348]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-f2752348]{display:none}.nav>li>a .icon-white[data-v-f2752348]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-f2752348],.nav>li>a:focus .icon-white[data-v-f2752348]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-f2752348],.nav>li>a:focus .pa-monitoring[data-v-f2752348]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-f2752348]{position:sticky}div.navbar-header[data-v-f2752348]{float:left}ul.navbar-nav[data-v-f2752348]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-f2752348]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-f2752348]{display:block!important}.navbar-nav>li[data-v-f2752348],.navbar-nav[data-v-f2752348]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-f2752348]:last-child{margin-right:-15px!important}.navbar-right[data-v-f2752348]{float:right!important}.navbar-nav>li.active>a[data-v-f2752348]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-f2752348]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-f2752348]{margin-top:0}}.pa-monitoring[data-v-f2752348]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-f2752348]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-f2752348]{margin:0 1em}#navbar .router-link-active[data-v-f2752348]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-1b2a2976]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-1b2a2976]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-1b2a2976]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-1b2a2976]{margin-right:-15px}.navbar-brand[data-v-1b2a2976]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-1b2a2976]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-1b2a2976]{margin-left:8px}.nav>li>a[data-v-1b2a2976]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-1b2a2976]:hover,.nav>li>a[data-v-1b2a2976]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-1b2a2976]{margin:0}.nav>li>a .navbar-toggle[data-v-1b2a2976]{margin-top:13px}.navbar a[data-v-1b2a2976]{font-weight:400;text-decoration:none}.navbar a[data-v-1b2a2976]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-1b2a2976],.navbar-inverse .navbar-nav>.active>a[data-v-1b2a2976]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-1b2a2976]:focus{color:#fff}.label-important[data-v-1b2a2976],.badge-important[data-v-1b2a2976]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-1b2a2976]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-1b2a2976]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-1b2a2976]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-1b2a2976]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-1b2a2976]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-1b2a2976]{float:none}.navbar-toggle[data-v-1b2a2976]{display:block}.navbar-collapse[data-v-1b2a2976]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-1b2a2976]{display:none!important}.navbar-nav[data-v-1b2a2976]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-1b2a2976]{float:none}.navbar-nav>li>a[data-v-1b2a2976]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-1b2a2976]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-1b2a2976]{display:block!important;padding:0 32px 16px}.collapsing[data-v-1b2a2976]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-1b2a2976]{display:none}.nav>li>a .icon-white[data-v-1b2a2976]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-1b2a2976],.nav>li>a:focus .icon-white[data-v-1b2a2976]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-1b2a2976],.nav>li>a:focus .pa-monitoring[data-v-1b2a2976]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-1b2a2976]{position:sticky}div.navbar-header[data-v-1b2a2976]{float:left}ul.navbar-nav[data-v-1b2a2976]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-1b2a2976]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-1b2a2976]{display:block!important}.navbar-nav>li[data-v-1b2a2976],.navbar-nav[data-v-1b2a2976]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-1b2a2976]:last-child{margin-right:-15px!important}.navbar-right[data-v-1b2a2976]{float:right!important}.navbar-nav>li.active>a[data-v-1b2a2976]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-1b2a2976]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-1b2a2976]{margin-top:0}}.pa-monitoring[data-v-1b2a2976]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-1b2a2976]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-1b2a2976]{margin:0 1em}#navbar .router-link-active[data-v-1b2a2976]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-bdb743cd]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-bdb743cd]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-bdb743cd]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-bdb743cd]{margin-right:-15px}.navbar-brand[data-v-bdb743cd]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-bdb743cd]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-bdb743cd]{margin-left:8px}.nav>li>a[data-v-bdb743cd]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-bdb743cd]:hover,.nav>li>a[data-v-bdb743cd]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-bdb743cd]{margin:0}.nav>li>a .navbar-toggle[data-v-bdb743cd]{margin-top:13px}.navbar a[data-v-bdb743cd]{font-weight:400;text-decoration:none}.navbar a[data-v-bdb743cd]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-bdb743cd],.navbar-inverse .navbar-nav>.active>a[data-v-bdb743cd]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-bdb743cd]:focus{color:#fff}.label-important[data-v-bdb743cd],.badge-important[data-v-bdb743cd]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-bdb743cd]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-bdb743cd]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-bdb743cd]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-bdb743cd]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-bdb743cd]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-bdb743cd]{float:none}.navbar-toggle[data-v-bdb743cd]{display:block}.navbar-collapse[data-v-bdb743cd]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-bdb743cd]{display:none!important}.navbar-nav[data-v-bdb743cd]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-bdb743cd]{float:none}.navbar-nav>li>a[data-v-bdb743cd]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-bdb743cd]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-bdb743cd]{display:block!important;padding:0 32px 16px}.collapsing[data-v-bdb743cd]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-bdb743cd]{display:none}.nav>li>a .icon-white[data-v-bdb743cd]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-bdb743cd],.nav>li>a:focus .icon-white[data-v-bdb743cd]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-bdb743cd],.nav>li>a:focus .pa-monitoring[data-v-bdb743cd]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-bdb743cd]{position:sticky}div.navbar-header[data-v-bdb743cd]{float:left}ul.navbar-nav[data-v-bdb743cd]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-bdb743cd]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-bdb743cd]{display:block!important}.navbar-nav>li[data-v-bdb743cd],.navbar-nav[data-v-bdb743cd]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-bdb743cd]:last-child{margin-right:-15px!important}.navbar-right[data-v-bdb743cd]{float:right!important}.navbar-nav>li.active>a[data-v-bdb743cd]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-bdb743cd]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-bdb743cd]{margin-top:0}}.pa-monitoring[data-v-bdb743cd]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-bdb743cd]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-bdb743cd]{margin:0 1em}#navbar .router-link-active[data-v-bdb743cd]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-4016ba80]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-4016ba80]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-4016ba80]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-4016ba80]{margin-right:-15px}.navbar-brand[data-v-4016ba80]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-4016ba80]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-4016ba80]{margin-left:8px}.nav>li>a[data-v-4016ba80]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-4016ba80]:hover,.nav>li>a[data-v-4016ba80]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-4016ba80]{margin:0}.nav>li>a .navbar-toggle[data-v-4016ba80]{margin-top:13px}.navbar a[data-v-4016ba80]{font-weight:400;text-decoration:none}.navbar a[data-v-4016ba80]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-4016ba80],.navbar-inverse .navbar-nav>.active>a[data-v-4016ba80]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-4016ba80]:focus{color:#fff}.label-important[data-v-4016ba80],.badge-important[data-v-4016ba80]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-4016ba80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-4016ba80]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-4016ba80]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-4016ba80]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-4016ba80]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-4016ba80]{float:none}.navbar-toggle[data-v-4016ba80]{display:block}.navbar-collapse[data-v-4016ba80]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-4016ba80]{display:none!important}.navbar-nav[data-v-4016ba80]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-4016ba80]{float:none}.navbar-nav>li>a[data-v-4016ba80]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-4016ba80]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-4016ba80]{display:block!important;padding:0 32px 16px}.collapsing[data-v-4016ba80]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-4016ba80]{display:none}.nav>li>a .icon-white[data-v-4016ba80]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-4016ba80],.nav>li>a:focus .icon-white[data-v-4016ba80]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-4016ba80],.nav>li>a:focus .pa-monitoring[data-v-4016ba80]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-4016ba80]{position:sticky}div.navbar-header[data-v-4016ba80]{float:left}ul.navbar-nav[data-v-4016ba80]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-4016ba80]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-4016ba80]{display:block!important}.navbar-nav>li[data-v-4016ba80],.navbar-nav[data-v-4016ba80]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-4016ba80]:last-child{margin-right:-15px!important}.navbar-right[data-v-4016ba80]{float:right!important}.navbar-nav>li.active>a[data-v-4016ba80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-4016ba80]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-4016ba80]{margin-top:0}}.pa-monitoring[data-v-4016ba80]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-4016ba80]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-4016ba80]{margin:0 1em}#navbar .router-link-active[data-v-4016ba80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-1a682c80]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-1a682c80]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-1a682c80]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-1a682c80]{margin-right:-15px}.navbar-brand[data-v-1a682c80]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-1a682c80]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-1a682c80]{margin-left:8px}.nav>li>a[data-v-1a682c80]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-1a682c80]:hover,.nav>li>a[data-v-1a682c80]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-1a682c80]{margin:0}.nav>li>a .navbar-toggle[data-v-1a682c80]{margin-top:13px}.navbar a[data-v-1a682c80]{font-weight:400;text-decoration:none}.navbar a[data-v-1a682c80]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-1a682c80],.navbar-inverse .navbar-nav>.active>a[data-v-1a682c80]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-1a682c80]:focus{color:#fff}.label-important[data-v-1a682c80],.badge-important[data-v-1a682c80]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-1a682c80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-1a682c80]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-1a682c80]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-1a682c80]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-1a682c80]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-1a682c80]{float:none}.navbar-toggle[data-v-1a682c80]{display:block}.navbar-collapse[data-v-1a682c80]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-1a682c80]{display:none!important}.navbar-nav[data-v-1a682c80]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-1a682c80]{float:none}.navbar-nav>li>a[data-v-1a682c80]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-1a682c80]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-1a682c80]{display:block!important;padding:0 32px 16px}.collapsing[data-v-1a682c80]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-1a682c80]{display:none}.nav>li>a .icon-white[data-v-1a682c80]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-1a682c80],.nav>li>a:focus .icon-white[data-v-1a682c80]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-1a682c80],.nav>li>a:focus .pa-monitoring[data-v-1a682c80]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-1a682c80]{position:sticky}div.navbar-header[data-v-1a682c80]{float:left}ul.navbar-nav[data-v-1a682c80]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-1a682c80]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-1a682c80]{display:block!important}.navbar-nav>li[data-v-1a682c80],.navbar-nav[data-v-1a682c80]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-1a682c80]:last-child{margin-right:-15px!important}.navbar-right[data-v-1a682c80]{float:right!important}.navbar-nav>li.active>a[data-v-1a682c80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-1a682c80]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-1a682c80]{margin-top:0}}.pa-monitoring[data-v-1a682c80]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-1a682c80]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-1a682c80]{margin:0 1em}#navbar .router-link-active[data-v-1a682c80]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}a.btn-feedback[data-v-1a682c80],a.btn-feedback[data-v-1a682c80]:visited,a.btn-feedback[data-v-1a682c80]:focus{color:#fff!important;background-color:var(--sp-blue)!important;padding:6px 16px!important;margin:14px 0 0;border-radius:3px}a.btn-feedback[data-v-1a682c80]:hover,a.btn-feedback[data-v-1a682c80]:focus{background-color:#3dcefa!important}a.btn-feedback .navbar-label[data-v-1a682c80]{font-weight:700}.btn-feedback .icon[data-v-1a682c80]{color:#fff}[data-v-71d0ccb8]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-71d0ccb8]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-71d0ccb8]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-71d0ccb8]{margin-right:-15px}.navbar-brand[data-v-71d0ccb8]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-71d0ccb8]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-71d0ccb8]{margin-left:8px}.nav>li>a[data-v-71d0ccb8]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-71d0ccb8]:hover,.nav>li>a[data-v-71d0ccb8]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-71d0ccb8]{margin:0}.nav>li>a .navbar-toggle[data-v-71d0ccb8]{margin-top:13px}.navbar a[data-v-71d0ccb8]{font-weight:400;text-decoration:none}.navbar a[data-v-71d0ccb8]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-71d0ccb8],.navbar-inverse .navbar-nav>.active>a[data-v-71d0ccb8]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-71d0ccb8]:focus{color:#fff}.label-important[data-v-71d0ccb8],.badge-important[data-v-71d0ccb8]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-71d0ccb8]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-71d0ccb8]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-71d0ccb8]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-71d0ccb8]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-71d0ccb8]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-71d0ccb8]{float:none}.navbar-toggle[data-v-71d0ccb8]{display:block}.navbar-collapse[data-v-71d0ccb8]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-71d0ccb8]{display:none!important}.navbar-nav[data-v-71d0ccb8]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-71d0ccb8]{float:none}.navbar-nav>li>a[data-v-71d0ccb8]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-71d0ccb8]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-71d0ccb8]{display:block!important;padding:0 32px 16px}.collapsing[data-v-71d0ccb8]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-71d0ccb8]{display:none}.nav>li>a .icon-white[data-v-71d0ccb8]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-71d0ccb8],.nav>li>a:focus .icon-white[data-v-71d0ccb8]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-71d0ccb8],.nav>li>a:focus .pa-monitoring[data-v-71d0ccb8]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-71d0ccb8]{position:sticky}div.navbar-header[data-v-71d0ccb8]{float:left}ul.navbar-nav[data-v-71d0ccb8]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-71d0ccb8]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-71d0ccb8]{display:block!important}.navbar-nav>li[data-v-71d0ccb8],.navbar-nav[data-v-71d0ccb8]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-71d0ccb8]:last-child{margin-right:-15px!important}.navbar-right[data-v-71d0ccb8]{float:right!important}.navbar-nav>li.active>a[data-v-71d0ccb8]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-71d0ccb8]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-71d0ccb8]{margin-top:0}}.pa-monitoring[data-v-71d0ccb8]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-71d0ccb8]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-71d0ccb8]{margin:0 1em}#navbar .router-link-active[data-v-71d0ccb8]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-fb9ccc81]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-fb9ccc81]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-fb9ccc81]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-fb9ccc81]{margin-right:-15px}.navbar-brand[data-v-fb9ccc81]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-fb9ccc81]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-fb9ccc81]{margin-left:8px}.nav>li>a[data-v-fb9ccc81]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-fb9ccc81]:hover,.nav>li>a[data-v-fb9ccc81]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-fb9ccc81]{margin:0}.nav>li>a .navbar-toggle[data-v-fb9ccc81]{margin-top:13px}.navbar a[data-v-fb9ccc81]{font-weight:400;text-decoration:none}.navbar a[data-v-fb9ccc81]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-fb9ccc81],.navbar-inverse .navbar-nav>.active>a[data-v-fb9ccc81]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-fb9ccc81]:focus{color:#fff}.label-important[data-v-fb9ccc81],.badge-important[data-v-fb9ccc81]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-fb9ccc81]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-fb9ccc81]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-fb9ccc81]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-fb9ccc81]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-fb9ccc81]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-fb9ccc81]{float:none}.navbar-toggle[data-v-fb9ccc81]{display:block}.navbar-collapse[data-v-fb9ccc81]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-fb9ccc81]{display:none!important}.navbar-nav[data-v-fb9ccc81]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-fb9ccc81]{float:none}.navbar-nav>li>a[data-v-fb9ccc81]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-fb9ccc81]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-fb9ccc81]{display:block!important;padding:0 32px 16px}.collapsing[data-v-fb9ccc81]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-fb9ccc81]{display:none}.nav>li>a .icon-white[data-v-fb9ccc81]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-fb9ccc81],.nav>li>a:focus .icon-white[data-v-fb9ccc81]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-fb9ccc81],.nav>li>a:focus .pa-monitoring[data-v-fb9ccc81]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-fb9ccc81]{position:sticky}div.navbar-header[data-v-fb9ccc81]{float:left}ul.navbar-nav[data-v-fb9ccc81]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-fb9ccc81]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-fb9ccc81]{display:block!important}.navbar-nav>li[data-v-fb9ccc81],.navbar-nav[data-v-fb9ccc81]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-fb9ccc81]:last-child{margin-right:-15px!important}.navbar-right[data-v-fb9ccc81]{float:right!important}.navbar-nav>li.active>a[data-v-fb9ccc81]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-fb9ccc81]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-fb9ccc81]{margin-top:0}}.pa-monitoring[data-v-fb9ccc81]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-fb9ccc81]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-fb9ccc81]{margin:0 1em}#navbar .router-link-active[data-v-fb9ccc81]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}[data-v-eb40b86d]:root{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar[data-v-eb40b86d]{height:60px;flex-wrap:nowrap}.navbar-inverse[data-v-eb40b86d]{background-color:#1a1a1a}.navbar>.navbar-right[data-v-eb40b86d]{margin-right:-15px}.navbar-brand[data-v-eb40b86d]{height:60px;padding-bottom:9px;padding-top:10px}.navbar-brand img[data-v-eb40b86d]{width:160px;margin-left:3px}.navbar-nav>li>a>span[data-v-eb40b86d]{margin-left:8px}.nav>li>a[data-v-eb40b86d]{position:relative;display:block;padding:10px 15px;color:var(--bs-link-color);text-decoration:none}.nav>li>a[data-v-eb40b86d]:hover,.nav>li>a[data-v-eb40b86d]:focus{color:#fff}.navbar-nav>li>a>span.no-margin[data-v-eb40b86d]{margin:0}.nav>li>a .navbar-toggle[data-v-eb40b86d]{margin-top:13px}.navbar a[data-v-eb40b86d]{font-weight:400;text-decoration:none}.navbar a[data-v-eb40b86d]:hover{font-weight:400}.navbar-inverse .navbar-nav>.active>a[data-v-eb40b86d],.navbar-inverse .navbar-nav>.active>a[data-v-eb40b86d]:hover,.navbar-inverse .navbar-nav>.active>a[data-v-eb40b86d]:focus{color:#fff}.label-important[data-v-eb40b86d],.badge-important[data-v-eb40b86d]{background-color:#fa603d;border-color:#fa5833}@media (min-width: 768px){.navbar-nav>li.active>a[data-v-eb40b86d]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.navbar-nav>li>a[data-v-eb40b86d]{padding-bottom:15px;padding-top:20px}.graph-values .col-sm-6[data-v-eb40b86d]{width:45%}}@media only screen and (min-width: 1072px){.navbar-label[data-v-eb40b86d]{display:inline}}@media only screen and (max-width: 768px){.navbar-collapse.collapse.in[data-v-eb40b86d]{padding:0 0 0 16px!important}}@media (max-width: 1199px){.navbar-header[data-v-eb40b86d]{float:none}.navbar-toggle[data-v-eb40b86d]{display:block}.navbar-collapse[data-v-eb40b86d]{border-top:1px solid transparent;box-shadow:inset 0 1px #ffffff1a}.navbar-collapse.collapse[data-v-eb40b86d]{display:none!important}.navbar-nav[data-v-eb40b86d]{float:none!important;margin:7.5px -15px}.navbar-nav>li[data-v-eb40b86d]{float:none}.navbar-nav>li>a[data-v-eb40b86d]{padding-top:10px;padding-bottom:10px}.navbar-text[data-v-eb40b86d]{float:none;margin:15px 0}.navbar-collapse.collapse.in[data-v-eb40b86d]{display:block!important;padding:0 32px 16px}.collapsing[data-v-eb40b86d]{overflow:hidden!important}}@media (max-width: 1450px){.navbar-label[data-v-eb40b86d]{display:none}.nav>li>a .icon-white[data-v-eb40b86d]{color:#929e9e}.nav>li>a:hover .icon-white[data-v-eb40b86d],.nav>li>a:focus .icon-white[data-v-eb40b86d]{color:#fff}.nav>li>a:hover .pa-monitoring[data-v-eb40b86d],.nav>li>a:focus .pa-monitoring[data-v-eb40b86d]{background-color:#fff}}@media (max-width: 1439px){nav.navbar[data-v-eb40b86d]{position:sticky}div.navbar-header[data-v-eb40b86d]{float:left}ul.navbar-nav[data-v-eb40b86d]{margin:0 8px 0 0;display:block}.navbar-nav>li>a[data-v-eb40b86d]{padding-top:18px;padding-bottom:17px}.navbar-collapse.collapse[data-v-eb40b86d]{display:block!important}.navbar-nav>li[data-v-eb40b86d],.navbar-nav[data-v-eb40b86d]{float:left!important;height:59px}.navbar-nav.navbar-right[data-v-eb40b86d]:last-child{margin-right:-15px!important}.navbar-right[data-v-eb40b86d]{float:right!important}.navbar-nav>li.active>a[data-v-eb40b86d]{background:transparent!important;border-bottom:5px solid var(--sp-blue)!important}.tabs h5[data-v-eb40b86d]{margin-bottom:0;padding-bottom:10px}}@media (max-width: 1439px) and (-ms-high-contrast: active),(-ms-high-contrast: none){nav.navbar[data-v-eb40b86d]{margin-top:0}}.pa-monitoring[data-v-eb40b86d]{-webkit-mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20width='100%25'%20height='100%25'%20viewBox='0%200%2016%2014'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20xml:space='preserve'%20xmlns:serif='http://www.serif.com/'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;'%3e%3cpath%20id='monitoring'%20d='M12.681,2.935l-9.853,0l-0,4.106l2.59,-0c0.078,-0%200.149,0.044%200.184,0.113l0.51,1.022l1.275,-2.551c0.152,-0.302%200.583,-0.302%200.735,0l0.707,1.416l1.799,-0c0.227,-0%200.411,0.184%200.411,0.41c-0,0.227%20-0.184,0.411%20-0.411,0.411l-2.306,-0l-0.568,-1.135l-1.275,2.55c-0.151,0.303%20-0.583,0.303%20-0.734,0l-0.708,-1.415l-2.209,-0l-0,3.284l9.853,0l0,-8.211Zm1.232,-2.463l-12.317,-0c-0.68,-0%20-1.232,0.551%20-1.232,1.232l0,10.674c0,0.68%200.552,1.232%201.232,1.232l12.317,-0c0.68,-0%201.232,-0.552%201.232,-1.232l-0,-10.674c-0,-0.681%20-0.552,-1.232%20-1.232,-1.232Zm-0.411,11.496l-11.495,-0l-0,-9.854l11.495,0l0,9.854Z'%20style='fill:%23919e9e;fill-rule:nonzero;'/%3e%3c/svg%3e");background-color:#929e9e;background-position:center;background-repeat:no-repeat;width:16px;height:14px;position:relative;top:2px}.nav[data-v-eb40b86d]{--bs-link-color: #9d9d9d;--bs-link-hover-color: #fff}.navbar>.container-fluid>div[data-v-eb40b86d]{margin:0 1em}#navbar .router-link-active[data-v-eb40b86d]{background:transparent!important;border-bottom:5px solid var(--sp-blue)}.Vue-Toastification__container{z-index:9999;position:fixed;padding:4px;width:600px;box-sizing:border-box;display:flex;min-height:100%;color:#fff;flex-direction:column;pointer-events:none}@media only screen and (min-width : 600px){.Vue-Toastification__container.top-left,.Vue-Toastification__container.top-right,.Vue-Toastification__container.top-center{top:1em}.Vue-Toastification__container.bottom-left,.Vue-Toastification__container.bottom-right,.Vue-Toastification__container.bottom-center{bottom:1em;flex-direction:column-reverse}.Vue-Toastification__container.top-left,.Vue-Toastification__container.bottom-left{left:1em}.Vue-Toastification__container.top-left .Vue-Toastification__toast,.Vue-Toastification__container.bottom-left .Vue-Toastification__toast{margin-right:auto}@supports not (-moz-appearance: none){.Vue-Toastification__container.top-left .Vue-Toastification__toast--rtl,.Vue-Toastification__container.bottom-left .Vue-Toastification__toast--rtl{margin-right:unset;margin-left:auto}}.Vue-Toastification__container.top-right,.Vue-Toastification__container.bottom-right{right:1em}.Vue-Toastification__container.top-right .Vue-Toastification__toast,.Vue-Toastification__container.bottom-right .Vue-Toastification__toast{margin-left:auto}@supports not (-moz-appearance: none){.Vue-Toastification__container.top-right .Vue-Toastification__toast--rtl,.Vue-Toastification__container.bottom-right .Vue-Toastification__toast--rtl{margin-left:unset;margin-right:auto}}.Vue-Toastification__container.top-center,.Vue-Toastification__container.bottom-center{left:50%;margin-left:-300px}.Vue-Toastification__container.top-center .Vue-Toastification__toast,.Vue-Toastification__container.bottom-center .Vue-Toastification__toast{margin-left:auto;margin-right:auto}}@media only screen and (max-width : 600px){.Vue-Toastification__container{width:100vw;padding:0;left:0;margin:0}.Vue-Toastification__container .Vue-Toastification__toast{width:100%}.Vue-Toastification__container.top-left,.Vue-Toastification__container.top-right,.Vue-Toastification__container.top-center{top:0}.Vue-Toastification__container.bottom-left,.Vue-Toastification__container.bottom-right,.Vue-Toastification__container.bottom-center{bottom:0;flex-direction:column-reverse}}.Vue-Toastification__toast{display:inline-flex;position:relative;max-height:800px;min-height:64px;box-sizing:border-box;margin-bottom:1rem;padding:22px 24px;border-radius:8px;box-shadow:0 1px 10px #0000001a,0 2px 15px #0000000d;justify-content:space-between;font-family:Lato,Helvetica,Roboto,Arial,sans-serif;max-width:600px;min-width:326px;pointer-events:auto;overflow:hidden;transform:translateZ(0);direction:ltr}.Vue-Toastification__toast--rtl{direction:rtl}.Vue-Toastification__toast--default{background-color:#1976d2;color:#fff}.Vue-Toastification__toast--info{background-color:#2196f3;color:#fff}.Vue-Toastification__toast--success{background-color:#4caf50;color:#fff}.Vue-Toastification__toast--error{background-color:#ff5252;color:#fff}.Vue-Toastification__toast--warning{background-color:#ffc107;color:#fff}@media only screen and (max-width : 600px){.Vue-Toastification__toast{border-radius:0;margin-bottom:.5rem}}.Vue-Toastification__toast-body{flex:1;line-height:24px;font-size:16px;word-break:break-word;white-space:pre-wrap}.Vue-Toastification__toast-component-body{flex:1}.Vue-Toastification__toast.disable-transition{animation:none!important}.Vue-Toastification__close-button{font-weight:700;font-size:24px;line-height:24px;background:transparent;outline:none;border:none;padding:0 0 0 10px;cursor:pointer;transition:.3s ease;align-items:center;color:#fff;opacity:.3;transition:visibility 0s,opacity .2s linear}.Vue-Toastification__close-button:hover,.Vue-Toastification__close-button:focus{opacity:1}.Vue-Toastification__toast:not(:hover) .Vue-Toastification__close-button.show-on-hover{opacity:0}.Vue-Toastification__toast--rtl .Vue-Toastification__close-button{padding-left:unset;padding-right:10px}@keyframes scale-x-frames{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Vue-Toastification__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:10000;background-color:#ffffffb3;transform-origin:left;animation:scale-x-frames linear 1 forwards}.Vue-Toastification__toast--rtl .Vue-Toastification__progress-bar{right:0;left:unset;transform-origin:right}.Vue-Toastification__icon{margin:auto 18px auto 0;background:transparent;outline:none;border:none;padding:0;transition:.3s ease;align-items:center;width:20px;height:100%}.Vue-Toastification__toast--rtl .Vue-Toastification__icon{margin:auto 0 auto 18px}@keyframes bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes bounceOutRight{40%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(1000px,0,0)}}@keyframes bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Vue-Toastification__bounce-enter-active.top-left,.Vue-Toastification__bounce-enter-active.bottom-left{animation-name:bounceInLeft}.Vue-Toastification__bounce-enter-active.top-right,.Vue-Toastification__bounce-enter-active.bottom-right{animation-name:bounceInRight}.Vue-Toastification__bounce-enter-active.top-center{animation-name:bounceInDown}.Vue-Toastification__bounce-enter-active.bottom-center{animation-name:bounceInUp}.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-left,.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-left{animation-name:bounceOutLeft}.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-right,.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-right{animation-name:bounceOutRight}.Vue-Toastification__bounce-leave-active:not(.disable-transition).top-center{animation-name:bounceOutUp}.Vue-Toastification__bounce-leave-active:not(.disable-transition).bottom-center{animation-name:bounceOutDown}.Vue-Toastification__bounce-leave-active,.Vue-Toastification__bounce-enter-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__bounce-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}@keyframes fadeOutTop{0%{transform:translateY(0);opacity:1}to{transform:translateY(-50px);opacity:0}}@keyframes fadeOutLeft{0%{transform:translate(0);opacity:1}to{transform:translate(-50px);opacity:0}}@keyframes fadeOutBottom{0%{transform:translateY(0);opacity:1}to{transform:translateY(50px);opacity:0}}@keyframes fadeOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(50px);opacity:0}}@keyframes fadeInLeft{0%{transform:translate(-50px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeInRight{0%{transform:translate(50px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeInTop{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeInBottom{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.Vue-Toastification__fade-enter-active.top-left,.Vue-Toastification__fade-enter-active.bottom-left{animation-name:fadeInLeft}.Vue-Toastification__fade-enter-active.top-right,.Vue-Toastification__fade-enter-active.bottom-right{animation-name:fadeInRight}.Vue-Toastification__fade-enter-active.top-center{animation-name:fadeInTop}.Vue-Toastification__fade-enter-active.bottom-center{animation-name:fadeInBottom}.Vue-Toastification__fade-leave-active:not(.disable-transition).top-left,.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-left{animation-name:fadeOutLeft}.Vue-Toastification__fade-leave-active:not(.disable-transition).top-right,.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-right{animation-name:fadeOutRight}.Vue-Toastification__fade-leave-active:not(.disable-transition).top-center{animation-name:fadeOutTop}.Vue-Toastification__fade-leave-active:not(.disable-transition).bottom-center{animation-name:fadeOutBottom}.Vue-Toastification__fade-leave-active,.Vue-Toastification__fade-enter-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__fade-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}@keyframes slideInBlurredLeft{0%{transform:translate(-1000px) scaleX(2.5) scaleY(.2);transform-origin:100% 50%;filter:blur(40px);opacity:0}to{transform:translate(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredTop{0%{transform:translateY(-1000px) scaleY(2.5) scaleX(.2);transform-origin:50% 0%;filter:blur(240px);opacity:0}to{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredRight{0%{transform:translate(1000px) scaleX(2.5) scaleY(.2);transform-origin:0% 50%;filter:blur(40px);opacity:0}to{transform:translate(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideInBlurredBottom{0%{transform:translateY(1000px) scaleY(2.5) scaleX(.2);transform-origin:50% 100%;filter:blur(240px);opacity:0}to{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}}@keyframes slideOutBlurredTop{0%{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 0%;filter:blur(0);opacity:1}to{transform:translateY(-1000px) scaleY(2) scaleX(.2);transform-origin:50% 0%;filter:blur(240px);opacity:0}}@keyframes slideOutBlurredBottom{0%{transform:translateY(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translateY(1000px) scaleY(2) scaleX(.2);transform-origin:50% 100%;filter:blur(240px);opacity:0}}@keyframes slideOutBlurredLeft{0%{transform:translate(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translate(-1000px) scaleX(2) scaleY(.2);transform-origin:100% 50%;filter:blur(40px);opacity:0}}@keyframes slideOutBlurredRight{0%{transform:translate(0) scaleY(1) scaleX(1);transform-origin:50% 50%;filter:blur(0);opacity:1}to{transform:translate(1000px) scaleX(2) scaleY(.2);transform-origin:0% 50%;filter:blur(40px);opacity:0}}.Vue-Toastification__slideBlurred-enter-active.top-left,.Vue-Toastification__slideBlurred-enter-active.bottom-left{animation-name:slideInBlurredLeft}.Vue-Toastification__slideBlurred-enter-active.top-right,.Vue-Toastification__slideBlurred-enter-active.bottom-right{animation-name:slideInBlurredRight}.Vue-Toastification__slideBlurred-enter-active.top-center{animation-name:slideInBlurredTop}.Vue-Toastification__slideBlurred-enter-active.bottom-center{animation-name:slideInBlurredBottom}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-left,.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-left{animation-name:slideOutBlurredLeft}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-right,.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-right{animation-name:slideOutBlurredRight}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).top-center{animation-name:slideOutBlurredTop}.Vue-Toastification__slideBlurred-leave-active:not(.disable-transition).bottom-center{animation-name:slideOutBlurredBottom}.Vue-Toastification__slideBlurred-leave-active,.Vue-Toastification__slideBlurred-enter-active{animation-duration:.75s;animation-fill-mode:both}.Vue-Toastification__slideBlurred-move{transition-timing-function:ease-in-out;transition-property:all;transition-duration:.4s}.simple-typeahead[data-v-f81ca714]{position:relative;width:100%}.simple-typeahead>input[data-v-f81ca714]{margin-bottom:0}.simple-typeahead .simple-typeahead-list[data-v-f81ca714]{position:absolute;width:100%;border:none;max-height:400px;overflow-y:auto;border-bottom:.1rem solid #d1d1d1;z-index:9}.simple-typeahead .simple-typeahead-list .simple-typeahead-list-header[data-v-f81ca714]{background-color:#fafafa;padding:.6rem 1rem;border-bottom:.1rem solid #d1d1d1;border-left:.1rem solid #d1d1d1;border-right:.1rem solid #d1d1d1}.simple-typeahead .simple-typeahead-list .simple-typeahead-list-footer[data-v-f81ca714]{background-color:#fafafa;padding:.6rem 1rem;border-left:.1rem solid #d1d1d1;border-right:.1rem solid #d1d1d1}.simple-typeahead .simple-typeahead-list .simple-typeahead-list-item[data-v-f81ca714]{cursor:pointer;background-color:#fafafa;padding:.6rem 1rem;border-bottom:.1rem solid #d1d1d1;border-left:.1rem solid #d1d1d1;border-right:.1rem solid #d1d1d1}.simple-typeahead .simple-typeahead-list .simple-typeahead-list-item[data-v-f81ca714]:last-child{border-bottom:none}.simple-typeahead .simple-typeahead-list .simple-typeahead-list-item.simple-typeahead-list-item-active[data-v-f81ca714]{background-color:#e1e1e1}:root,[data-bs-theme=light]{--bs-blue: #0d6efd;--bs-indigo: #6610f2;--bs-purple: #6f42c1;--bs-pink: #d63384;--bs-red: #dc3545;--bs-orange: #fd7e14;--bs-yellow: #ffc107;--bs-green: #198754;--bs-teal: #20c997;--bs-cyan: #0dcaf0;--bs-black: #000;--bs-white: #fff;--bs-gray: #6c757d;--bs-gray-dark: #343a40;--bs-gray-100: #f8f9fa;--bs-gray-200: #e9ecef;--bs-gray-300: #dee2e6;--bs-gray-400: #ced4da;--bs-gray-500: #adb5bd;--bs-gray-600: #6c757d;--bs-gray-700: #495057;--bs-gray-800: #343a40;--bs-gray-900: #212529;--bs-primary: #0d6efd;--bs-secondary: #6c757d;--bs-success: #198754;--bs-info: #0dcaf0;--bs-warning: #ffc107;--bs-danger: #dc3545;--bs-light: #f8f9fa;--bs-dark: #212529;--bs-primary-rgb: 13, 110, 253;--bs-secondary-rgb: 108, 117, 125;--bs-success-rgb: 25, 135, 84;--bs-info-rgb: 13, 202, 240;--bs-warning-rgb: 255, 193, 7;--bs-danger-rgb: 220, 53, 69;--bs-light-rgb: 248, 249, 250;--bs-dark-rgb: 33, 37, 41;--bs-primary-text-emphasis: #052c65;--bs-secondary-text-emphasis: #2b2f32;--bs-success-text-emphasis: #0a3622;--bs-info-text-emphasis: #055160;--bs-warning-text-emphasis: #664d03;--bs-danger-text-emphasis: #58151c;--bs-light-text-emphasis: #495057;--bs-dark-text-emphasis: #495057;--bs-primary-bg-subtle: #cfe2ff;--bs-secondary-bg-subtle: #e2e3e5;--bs-success-bg-subtle: #d1e7dd;--bs-info-bg-subtle: #cff4fc;--bs-warning-bg-subtle: #fff3cd;--bs-danger-bg-subtle: #f8d7da;--bs-light-bg-subtle: #fcfcfd;--bs-dark-bg-subtle: #ced4da;--bs-primary-border-subtle: #9ec5fe;--bs-secondary-border-subtle: #c4c8cb;--bs-success-border-subtle: #a3cfbb;--bs-info-border-subtle: #9eeaf9;--bs-warning-border-subtle: #ffe69c;--bs-danger-border-subtle: #f1aeb5;--bs-light-border-subtle: #e9ecef;--bs-dark-border-subtle: #adb5bd;--bs-white-rgb: 255, 255, 255;--bs-black-rgb: 0, 0, 0;--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, .15), rgba(255, 255, 255, 0));--bs-body-font-family: var(--bs-font-sans-serif);--bs-body-font-size: 1rem;--bs-body-font-weight: 400;--bs-body-line-height: 1.5;--bs-body-color: #212529;--bs-body-color-rgb: 33, 37, 41;--bs-body-bg: #fff;--bs-body-bg-rgb: 255, 255, 255;--bs-emphasis-color: #000;--bs-emphasis-color-rgb: 0, 0, 0;--bs-secondary-color: rgba(33, 37, 41, .75);--bs-secondary-color-rgb: 33, 37, 41;--bs-secondary-bg: #e9ecef;--bs-secondary-bg-rgb: 233, 236, 239;--bs-tertiary-color: rgba(33, 37, 41, .5);--bs-tertiary-color-rgb: 33, 37, 41;--bs-tertiary-bg: #f8f9fa;--bs-tertiary-bg-rgb: 248, 249, 250;--bs-heading-color: inherit;--bs-link-color: #0d6efd;--bs-link-color-rgb: 13, 110, 253;--bs-link-decoration: underline;--bs-link-hover-color: #0a58ca;--bs-link-hover-color-rgb: 10, 88, 202;--bs-code-color: #d63384;--bs-highlight-color: #212529;--bs-highlight-bg: #fff3cd;--bs-border-width: 1px;--bs-border-style: solid;--bs-border-color: #dee2e6;--bs-border-color-translucent: rgba(0, 0, 0, .175);--bs-border-radius: .375rem;--bs-border-radius-sm: .25rem;--bs-border-radius-lg: .5rem;--bs-border-radius-xl: 1rem;--bs-border-radius-xxl: 2rem;--bs-border-radius-2xl: var(--bs-border-radius-xxl);--bs-border-radius-pill: 50rem;--bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);--bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);--bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);--bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);--bs-focus-ring-width: .25rem;--bs-focus-ring-opacity: .25;--bs-focus-ring-color: rgba(13, 110, 253, .25);--bs-form-valid-color: #198754;--bs-form-valid-border-color: #198754;--bs-form-invalid-color: #dc3545;--bs-form-invalid-border-color: #dc3545}[data-bs-theme=dark]{color-scheme:dark;--bs-body-color: #dee2e6;--bs-body-color-rgb: 222, 226, 230;--bs-body-bg: #212529;--bs-body-bg-rgb: 33, 37, 41;--bs-emphasis-color: #fff;--bs-emphasis-color-rgb: 255, 255, 255;--bs-secondary-color: rgba(222, 226, 230, .75);--bs-secondary-color-rgb: 222, 226, 230;--bs-secondary-bg: #343a40;--bs-secondary-bg-rgb: 52, 58, 64;--bs-tertiary-color: rgba(222, 226, 230, .5);--bs-tertiary-color-rgb: 222, 226, 230;--bs-tertiary-bg: #2b3035;--bs-tertiary-bg-rgb: 43, 48, 53;--bs-primary-text-emphasis: #6ea8fe;--bs-secondary-text-emphasis: #a7acb1;--bs-success-text-emphasis: #75b798;--bs-info-text-emphasis: #6edff6;--bs-warning-text-emphasis: #ffda6a;--bs-danger-text-emphasis: #ea868f;--bs-light-text-emphasis: #f8f9fa;--bs-dark-text-emphasis: #dee2e6;--bs-primary-bg-subtle: #031633;--bs-secondary-bg-subtle: #161719;--bs-success-bg-subtle: #051b11;--bs-info-bg-subtle: #032830;--bs-warning-bg-subtle: #332701;--bs-danger-bg-subtle: #2c0b0e;--bs-light-bg-subtle: #343a40;--bs-dark-bg-subtle: #1a1d20;--bs-primary-border-subtle: #084298;--bs-secondary-border-subtle: #41464b;--bs-success-border-subtle: #0f5132;--bs-info-border-subtle: #087990;--bs-warning-border-subtle: #997404;--bs-danger-border-subtle: #842029;--bs-light-border-subtle: #495057;--bs-dark-border-subtle: #343a40;--bs-heading-color: inherit;--bs-link-color: #6ea8fe;--bs-link-hover-color: #8bb9fe;--bs-link-color-rgb: 110, 168, 254;--bs-link-hover-color-rgb: 139, 185, 254;--bs-code-color: #e685b5;--bs-highlight-color: #dee2e6;--bs-highlight-bg: #664d03;--bs-border-color: #495057;--bs-border-color-translucent: rgba(255, 255, 255, .15);--bs-form-valid-color: #75b798;--bs-form-valid-border-color: #75b798;--bs-form-invalid-color: #ea868f;--bs-form-invalid-border-color: #ea868f}*,*:before,*:after{box-sizing:border-box}@media (prefers-reduced-motion: no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}hr{margin:1rem 0;color:inherit;border:0;border-top:var(--bs-border-width) solid;opacity:.25}h6,.h6,h5,.h5,h4,.h4,h3,.h3,h2,.h2,h1,.h1{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2;color:var(--bs-heading-color)}h1,.h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){h1,.h1{font-size:2.5rem}}h2,.h2{font-size:calc(1.325rem + .9vw)}@media (min-width: 1200px){h2,.h2{font-size:2rem}}h3,.h3{font-size:calc(1.3rem + .6vw)}@media (min-width: 1200px){h3,.h3{font-size:1.75rem}}h4,.h4{font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){h4,.h4{font-size:1.5rem}}h5,.h5{font-size:1.25rem}h6,.h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small,.small{font-size:.875em}mark,.mark{padding:.1875em;color:var(--bs-highlight-color);background-color:var(--bs-highlight-bg)}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, 1));text-decoration:underline}a:hover{--bs-link-color-rgb: var(--bs-link-hover-color-rgb)}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}pre,code,kbd,samp{font-family:var(--bs-font-monospace);font-size:1em}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:var(--bs-code-color);word-wrap:break-word}a>code{color:inherit}kbd{padding:.1875rem .375rem;font-size:.875em;color:var(--bs-body-bg);background-color:var(--bs-body-color);border-radius:.25rem}kbd kbd{padding:0;font-size:1em}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-secondary-color);text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}thead,tbody,tfoot,tr,td,th{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}input,button,select,optgroup,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]:not([type=date]):not([type=datetime-local]):not([type=month]):not([type=week]):not([type=time])::-webkit-calendar-picker-indicator{display:none!important}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:not(:disabled),[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;line-height:inherit;font-size:calc(1.275rem + .3vw)}@media (min-width: 1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-text,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button{cursor:pointer;filter:grayscale(1)}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}::file-selector-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-weight:300;line-height:1.2;font-size:calc(1.625rem + 4.5vw)}@media (min-width: 1200px){.display-1{font-size:5rem}}.display-2{font-weight:300;line-height:1.2;font-size:calc(1.575rem + 3.9vw)}@media (min-width: 1200px){.display-2{font-size:4.5rem}}.display-3{font-weight:300;line-height:1.2;font-size:calc(1.525rem + 3.3vw)}@media (min-width: 1200px){.display-3{font-size:4rem}}.display-4{font-weight:300;line-height:1.2;font-size:calc(1.475rem + 2.7vw)}@media (min-width: 1200px){.display-4{font-size:3.5rem}}.display-5{font-weight:300;line-height:1.2;font-size:calc(1.425rem + 2.1vw)}@media (min-width: 1200px){.display-5{font-size:3rem}}.display-6{font-weight:300;line-height:1.2;font-size:calc(1.375rem + 1.5vw)}@media (min-width: 1200px){.display-6{font-size:2.5rem}}.list-unstyled,.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer:before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:var(--bs-body-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:var(--bs-secondary-color)}.container,.container-fluid,.container-xxl,.container-xl,.container-lg,.container-md,.container-sm{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-right:auto;margin-left:auto}@media (min-width: 576px){.container-sm,.container{max-width:540px}}@media (min-width: 768px){.container-md,.container-sm,.container{max-width:720px}}@media (min-width: 992px){.container-lg,.container-md,.container-sm,.container{max-width:960px}}@media (min-width: 1200px){.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1140px}}@media (min-width: 1400px){.container-xxl,.container-xl,.container-lg,.container-md,.container-sm,.container{max-width:1320px}}:root{--bs-breakpoint-xs: 0;--bs-breakpoint-sm: 576px;--bs-breakpoint-md: 768px;--bs-breakpoint-lg: 992px;--bs-breakpoint-xl: 1200px;--bs-breakpoint-xxl: 1400px}.row{--bs-gutter-x: 1.5rem;--bs-gutter-y: 0;display:flex;flex-wrap:wrap;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x))}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.66666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x: 0}.g-0,.gy-0{--bs-gutter-y: 0}.g-1,.gx-1{--bs-gutter-x: .25rem}.g-1,.gy-1{--bs-gutter-y: .25rem}.g-2,.gx-2{--bs-gutter-x: .5rem}.g-2,.gy-2{--bs-gutter-y: .5rem}.g-3,.gx-3{--bs-gutter-x: 1rem}.g-3,.gy-3{--bs-gutter-y: 1rem}.g-4,.gx-4{--bs-gutter-x: 1.5rem}.g-4,.gy-4{--bs-gutter-y: 1.5rem}.g-5,.gx-5{--bs-gutter-x: 3rem}.g-5,.gy-5{--bs-gutter-y: 3rem}@media (min-width: 576px){.col-sm{flex:1 0 0}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.66666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x: 0}.g-sm-0,.gy-sm-0{--bs-gutter-y: 0}.g-sm-1,.gx-sm-1{--bs-gutter-x: .25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y: .25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x: .5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y: .5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x: 1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y: 1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x: 1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y: 1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x: 3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y: 3rem}}@media (min-width: 768px){.col-md{flex:1 0 0}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.66666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x: 0}.g-md-0,.gy-md-0{--bs-gutter-y: 0}.g-md-1,.gx-md-1{--bs-gutter-x: .25rem}.g-md-1,.gy-md-1{--bs-gutter-y: .25rem}.g-md-2,.gx-md-2{--bs-gutter-x: .5rem}.g-md-2,.gy-md-2{--bs-gutter-y: .5rem}.g-md-3,.gx-md-3{--bs-gutter-x: 1rem}.g-md-3,.gy-md-3{--bs-gutter-y: 1rem}.g-md-4,.gx-md-4{--bs-gutter-x: 1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y: 1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x: 3rem}.g-md-5,.gy-md-5{--bs-gutter-y: 3rem}}@media (min-width: 992px){.col-lg{flex:1 0 0}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.66666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x: 0}.g-lg-0,.gy-lg-0{--bs-gutter-y: 0}.g-lg-1,.gx-lg-1{--bs-gutter-x: .25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y: .25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x: .5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y: .5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x: 1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y: 1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x: 1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y: 1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x: 3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y: 3rem}}@media (min-width: 1200px){.col-xl{flex:1 0 0}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.66666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x: 0}.g-xl-0,.gy-xl-0{--bs-gutter-y: 0}.g-xl-1,.gx-xl-1{--bs-gutter-x: .25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y: .25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x: .5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y: .5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x: 1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y: 1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x: 1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y: 1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x: 3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y: 3rem}}@media (min-width: 1400px){.col-xxl{flex:1 0 0}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.33333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.66666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x: 0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y: 0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x: .25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y: .25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x: .5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y: .5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x: 1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y: 1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x: 1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y: 1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x: 3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y: 3rem}}.table{--bs-table-color-type: initial;--bs-table-bg-type: initial;--bs-table-color-state: initial;--bs-table-bg-state: initial;--bs-table-color: var(--bs-emphasis-color);--bs-table-bg: var(--bs-body-bg);--bs-table-border-color: var(--bs-border-color);--bs-table-accent-bg: transparent;--bs-table-striped-color: var(--bs-emphasis-color);--bs-table-striped-bg: rgba(var(--bs-emphasis-color-rgb), .05);--bs-table-active-color: var(--bs-emphasis-color);--bs-table-active-bg: rgba(var(--bs-emphasis-color-rgb), .1);--bs-table-hover-color: var(--bs-emphasis-color);--bs-table-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:var(--bs-table-border-color)}.table>:not(caption)>*>*{padding:.5rem;color:var(--bs-table-color-state, var(--bs-table-color-type, var(--bs-table-color)));background-color:var(--bs-table-bg);border-bottom-width:var(--bs-border-width);box-shadow:inset 0 0 0 9999px var(--bs-table-bg-state, var(--bs-table-bg-type, var(--bs-table-accent-bg)))}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table-group-divider{border-top:calc(var(--bs-border-width) * 2) solid currentcolor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:var(--bs-border-width) 0}.table-bordered>:not(caption)>*>*{border-width:0 var(--bs-border-width)}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-borderless>:not(:first-child){border-top-width:0}.table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-striped-columns>:not(caption)>tr>:nth-child(2n){--bs-table-color-type: var(--bs-table-striped-color);--bs-table-bg-type: var(--bs-table-striped-bg)}.table-active{--bs-table-color-state: var(--bs-table-active-color);--bs-table-bg-state: var(--bs-table-active-bg)}.table-hover>tbody>tr:hover>*{--bs-table-color-state: var(--bs-table-hover-color);--bs-table-bg-state: var(--bs-table-hover-bg)}.table-primary{--bs-table-color: #000;--bs-table-bg: #cfe2ff;--bs-table-border-color: #a6b5cc;--bs-table-striped-bg: #c5d7f2;--bs-table-striped-color: #000;--bs-table-active-bg: #bacbe6;--bs-table-active-color: #000;--bs-table-hover-bg: #bfd1ec;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-secondary{--bs-table-color: #000;--bs-table-bg: #e2e3e5;--bs-table-border-color: #b5b6b7;--bs-table-striped-bg: #d7d8da;--bs-table-striped-color: #000;--bs-table-active-bg: #cbccce;--bs-table-active-color: #000;--bs-table-hover-bg: #d1d2d4;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-success{--bs-table-color: #000;--bs-table-bg: #d1e7dd;--bs-table-border-color: #a7b9b1;--bs-table-striped-bg: #c7dbd2;--bs-table-striped-color: #000;--bs-table-active-bg: #bcd0c7;--bs-table-active-color: #000;--bs-table-hover-bg: #c1d6cc;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-info{--bs-table-color: #000;--bs-table-bg: #cff4fc;--bs-table-border-color: #a6c3ca;--bs-table-striped-bg: #c5e8ef;--bs-table-striped-color: #000;--bs-table-active-bg: #badce3;--bs-table-active-color: #000;--bs-table-hover-bg: #bfe2e9;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-warning{--bs-table-color: #000;--bs-table-bg: #fff3cd;--bs-table-border-color: #ccc2a4;--bs-table-striped-bg: #f2e7c3;--bs-table-striped-color: #000;--bs-table-active-bg: #e6dbb9;--bs-table-active-color: #000;--bs-table-hover-bg: #ece1be;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-danger{--bs-table-color: #000;--bs-table-bg: #f8d7da;--bs-table-border-color: #c6acae;--bs-table-striped-bg: #eccccf;--bs-table-striped-color: #000;--bs-table-active-bg: #dfc2c4;--bs-table-active-color: #000;--bs-table-hover-bg: #e5c7ca;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-light{--bs-table-color: #000;--bs-table-bg: #f8f9fa;--bs-table-border-color: #c6c7c8;--bs-table-striped-bg: #ecedee;--bs-table-striped-color: #000;--bs-table-active-bg: #dfe0e1;--bs-table-active-color: #000;--bs-table-hover-bg: #e5e6e7;--bs-table-hover-color: #000;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-dark{--bs-table-color: #fff;--bs-table-bg: #212529;--bs-table-border-color: #4d5154;--bs-table-striped-bg: #2c3034;--bs-table-striped-color: #fff;--bs-table-active-bg: #373b3e;--bs-table-active-color: #fff;--bs-table-hover-bg: #323539;--bs-table-hover-color: #fff;color:var(--bs-table-color);border-color:var(--bs-table-border-color)}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width: 1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + var(--bs-border-width));padding-bottom:calc(.375rem + var(--bs-border-width));margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + var(--bs-border-width));padding-bottom:calc(.5rem + var(--bs-border-width));font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + var(--bs-border-width));padding-bottom:calc(.25rem + var(--bs-border-width));font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:var(--bs-secondary-color)}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-clip:padding-box;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:var(--bs-body-color);background-color:var(--bs-body-bg);border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-control::-webkit-date-and-time-value{min-width:85px;height:1.5em;margin:0}.form-control::-webkit-datetime-edit{display:block;padding:0}.form-control::placeholder{color:var(--bs-secondary-color);opacity:1}.form-control:disabled{background-color:var(--bs-secondary-bg);opacity:1}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:var(--bs-body-color);background-color:var(--bs-tertiary-bg);pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:var(--bs-border-width);border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:var(--bs-secondary-bg)}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:var(--bs-secondary-bg)}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:var(--bs-body-color);background-color:transparent;border:solid transparent;border-width:var(--bs-border-width) 0}.form-control-plaintext:focus{outline:0}.form-control-plaintext.form-control-sm,.form-control-plaintext.form-control-lg{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2));padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2));padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2))}textarea.form-control-sm{min-height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}textarea.form-control-lg{min-height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-control-color{width:3rem;height:calc(1.5em + .75rem + calc(var(--bs-border-width) * 2));padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color::-webkit-color-swatch{border:0!important;border-radius:var(--bs-border-radius)}.form-control-color.form-control-sm{height:calc(1.5em + .5rem + calc(var(--bs-border-width) * 2))}.form-control-color.form-control-lg{height:calc(1.5em + 1rem + calc(var(--bs-border-width) * 2))}.form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-body-bg);background-image:var(--bs-form-select-bg-img),var(--bs-form-select-bg-icon, none);background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:var(--bs-secondary-bg)}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 var(--bs-body-color)}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}[data-bs-theme=dark] .form-select{--bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e")}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-reverse{padding-right:1.5em;padding-left:0;text-align:right}.form-check-reverse .form-check-input{float:right;margin-right:-1.5em;margin-left:0}.form-check-input{--bs-form-check-bg: var(--bs-body-bg);flex-shrink:0;width:1em;height:1em;margin-top:.25em;vertical-align:top;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bs-form-check-bg);background-image:var(--bs-form-check-bg-image);background-repeat:no-repeat;background-position:center;background-size:contain;border:var(--bs-border-width) solid var(--bs-border-color);-webkit-print-color-adjust:exact;color-adjust:exact;print-color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='m6 10 3 3 6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;--bs-form-check-bg-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input[disabled]~.form-check-label,.form-check-input:disabled~.form-check-label{cursor:default;opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");width:2em;margin-left:-2.5em;background-image:var(--bs-form-switch-bg);background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-switch.form-check-reverse{padding-right:2.5em;padding-left:0}.form-switch.form-check-reverse .form-check-input{margin-right:-2.5em;margin-left:0}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check[disabled]+.btn,.btn-check:disabled+.btn{pointer-events:none;filter:none;opacity:.65}[data-bs-theme=dark] .form-switch .form-check-input:not(:checked):not(:focus){--bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255, 255, 255, 0.25%29'/%3e%3c/svg%3e")}.form-range{width:100%;height:1.5rem;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:transparent}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem #0d6efd40}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;-webkit-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;-moz-appearance:none;appearance:none;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:var(--bs-secondary-bg);border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:var(--bs-secondary-color)}.form-range:disabled::-moz-range-thumb{background-color:var(--bs-secondary-color)}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-control-plaintext,.form-floating>.form-select{height:calc(3.5rem + calc(var(--bs-border-width) * 2));min-height:calc(3.5rem + calc(var(--bs-border-width) * 2));line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;z-index:2;max-width:100%;height:100%;padding:1rem .75rem;overflow:hidden;color:rgba(var(--bs-body-color-rgb),.65);text-align:start;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;border:var(--bs-border-width) solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion: reduce){.form-floating>label{transition:none}}.form-floating>.form-control,.form-floating>.form-control-plaintext{padding:1rem .75rem}.form-floating>.form-control::placeholder,.form-floating>.form-control-plaintext::placeholder{color:transparent}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown),.form-floating>.form-control-plaintext:focus,.form-floating>.form-control-plaintext:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill,.form-floating>.form-control-plaintext:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem;padding-left:.75rem}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-control-plaintext~label,.form-floating>.form-select~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>.form-control:-webkit-autofill~label{transform:scale(.85) translateY(-.5rem) translate(.15rem)}.form-floating>textarea:focus~label:after,.form-floating>textarea:not(:placeholder-shown)~label:after{position:absolute;inset:1rem .375rem;z-index:-1;height:1.5em;content:"";background-color:var(--bs-body-bg);border-radius:var(--bs-border-radius)}.form-floating>textarea:disabled~label:after{background-color:var(--bs-secondary-bg)}.form-floating>.form-control-plaintext~label{border-width:var(--bs-border-width) 0}.form-floating>:disabled~label,.form-floating>.form-control:disabled~label{color:#6c757d}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select,.input-group>.form-floating{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus,.input-group>.form-floating:focus-within{z-index:5}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:5}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:var(--bs-body-color);text-align:center;white-space:nowrap;background-color:var(--bs-tertiary-bg);border:var(--bs-border-width) solid var(--bs-border-color);border-radius:var(--bs-border-radius)}.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text,.input-group-lg>.btn{padding:.5rem 1rem;font-size:1.25rem;border-radius:var(--bs-border-radius-lg)}.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text,.input-group-sm>.btn{padding:.25rem .5rem;font-size:.875rem;border-radius:var(--bs-border-radius-sm)}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-control,.input-group:not(.has-validation)>.form-floating:not(:last-child)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating),.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-control,.input-group.has-validation>.form-floating:nth-last-child(n+3)>.form-select{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:calc(-1 * var(--bs-border-width));border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.form-floating:not(:first-child)>.form-control,.input-group>.form-floating:not(:first-child)>.form-select{border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-valid-color)}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-success);border-radius:var(--bs-border-radius)}.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip,.is-valid~.valid-feedback,.is-valid~.valid-tooltip{display:block}.was-validated .form-control:valid,.form-control.is-valid{border-color:var(--bs-form-valid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:valid:focus,.form-control.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:valid,.form-select.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"],.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:valid:focus,.form-select.is-valid:focus{border-color:var(--bs-form-valid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-control-color:valid,.form-control-color.is-valid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:valid,.form-check-input.is-valid{border-color:var(--bs-form-valid-border-color)}.was-validated .form-check-input:valid:checked,.form-check-input.is-valid:checked{background-color:var(--bs-form-valid-color)}.was-validated .form-check-input:valid:focus,.form-check-input.is-valid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-success-rgb),.25)}.was-validated .form-check-input:valid~.form-check-label,.form-check-input.is-valid~.form-check-label{color:var(--bs-form-valid-color)}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):valid,.input-group>.form-control:not(:focus).is-valid,.was-validated .input-group>.form-select:not(:focus):valid,.input-group>.form-select:not(:focus).is-valid,.was-validated .input-group>.form-floating:not(:focus-within):valid,.input-group>.form-floating:not(:focus-within).is-valid{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:var(--bs-form-invalid-color)}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:var(--bs-danger);border-radius:var(--bs-border-radius)}.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip{display:block}.was-validated .form-control:invalid,.form-control.is-invalid{border-color:var(--bs-form-invalid-border-color);padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-control:invalid:focus,.form-control.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.was-validated .form-select:invalid,.form-select.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"],.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"]{--bs-form-select-bg-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");padding-right:4.125rem;background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.was-validated .form-select:invalid:focus,.form-select.is-invalid:focus{border-color:var(--bs-form-invalid-border-color);box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-control-color:invalid,.form-control-color.is-invalid{width:calc(3.75rem + 1.5em)}.was-validated .form-check-input:invalid,.form-check-input.is-invalid{border-color:var(--bs-form-invalid-border-color)}.was-validated .form-check-input:invalid:checked,.form-check-input.is-invalid:checked{background-color:var(--bs-form-invalid-color)}.was-validated .form-check-input:invalid:focus,.form-check-input.is-invalid:focus{box-shadow:0 0 0 .25rem rgba(var(--bs-danger-rgb),.25)}.was-validated .form-check-input:invalid~.form-check-label,.form-check-input.is-invalid~.form-check-label{color:var(--bs-form-invalid-color)}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.was-validated .input-group>.form-control:not(:focus):invalid,.input-group>.form-control:not(:focus).is-invalid,.was-validated .input-group>.form-select:not(:focus):invalid,.input-group>.form-select:not(:focus).is-invalid,.was-validated .input-group>.form-floating:not(:focus-within):invalid,.input-group>.form-floating:not(:focus-within).is-invalid{z-index:4}.btn{--bs-btn-padding-x: .75rem;--bs-btn-padding-y: .375rem;--bs-btn-font-family: ;--bs-btn-font-size: 1rem;--bs-btn-font-weight: 400;--bs-btn-line-height: 1.5;--bs-btn-color: var(--bs-body-color);--bs-btn-bg: transparent;--bs-btn-border-width: var(--bs-border-width);--bs-btn-border-color: transparent;--bs-btn-border-radius: var(--bs-border-radius);--bs-btn-hover-border-color: transparent;--bs-btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);--bs-btn-disabled-opacity: .65;--bs-btn-focus-box-shadow: 0 0 0 .25rem rgba(var(--bs-btn-focus-shadow-rgb), .5);display:inline-block;padding:var(--bs-btn-padding-y) var(--bs-btn-padding-x);font-family:var(--bs-btn-font-family);font-size:var(--bs-btn-font-size);font-weight:var(--bs-btn-font-weight);line-height:var(--bs-btn-line-height);color:var(--bs-btn-color);text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;border:var(--bs-btn-border-width) solid var(--bs-btn-border-color);border-radius:var(--bs-btn-border-radius);background-color:var(--bs-btn-bg);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.btn{transition:none}}.btn:hover{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color)}.btn-check+.btn:hover{color:var(--bs-btn-color);background-color:var(--bs-btn-bg);border-color:var(--bs-btn-border-color)}.btn:focus-visible{color:var(--bs-btn-hover-color);background-color:var(--bs-btn-hover-bg);border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:focus-visible+.btn{border-color:var(--bs-btn-hover-border-color);outline:0;box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked+.btn,:not(.btn-check)+.btn:active,.btn:first-child:active,.btn.active,.btn.show{color:var(--bs-btn-active-color);background-color:var(--bs-btn-active-bg);border-color:var(--bs-btn-active-border-color)}.btn-check:checked+.btn:focus-visible,:not(.btn-check)+.btn:active:focus-visible,.btn:first-child:active:focus-visible,.btn.active:focus-visible,.btn.show:focus-visible{box-shadow:var(--bs-btn-focus-box-shadow)}.btn-check:checked:focus-visible+.btn{box-shadow:var(--bs-btn-focus-box-shadow)}.btn:disabled,.btn.disabled,fieldset:disabled .btn{color:var(--bs-btn-disabled-color);pointer-events:none;background-color:var(--bs-btn-disabled-bg);border-color:var(--bs-btn-disabled-border-color);opacity:var(--bs-btn-disabled-opacity)}.btn-primary{--bs-btn-color: #fff;--bs-btn-bg: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0b5ed7;--bs-btn-hover-border-color: #0a58ca;--bs-btn-focus-shadow-rgb: 49, 132, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0a58ca;--bs-btn-active-border-color: #0a53be;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #0d6efd;--bs-btn-disabled-border-color: #0d6efd}.btn-secondary{--bs-btn-color: #fff;--bs-btn-bg: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #5c636a;--bs-btn-hover-border-color: #565e64;--bs-btn-focus-shadow-rgb: 130, 138, 145;--bs-btn-active-color: #fff;--bs-btn-active-bg: #565e64;--bs-btn-active-border-color: #51585e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #6c757d;--bs-btn-disabled-border-color: #6c757d}.btn-success{--bs-btn-color: #fff;--bs-btn-bg: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #157347;--bs-btn-hover-border-color: #146c43;--bs-btn-focus-shadow-rgb: 60, 153, 110;--bs-btn-active-color: #fff;--bs-btn-active-bg: #146c43;--bs-btn-active-border-color: #13653f;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #198754;--bs-btn-disabled-border-color: #198754}.btn-info{--bs-btn-color: #000;--bs-btn-bg: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #31d2f2;--bs-btn-hover-border-color: #25cff2;--bs-btn-focus-shadow-rgb: 11, 172, 204;--bs-btn-active-color: #000;--bs-btn-active-bg: #3dd5f3;--bs-btn-active-border-color: #25cff2;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #0dcaf0;--bs-btn-disabled-border-color: #0dcaf0}.btn-warning{--bs-btn-color: #000;--bs-btn-bg: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffca2c;--bs-btn-hover-border-color: #ffc720;--bs-btn-focus-shadow-rgb: 217, 164, 6;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffcd39;--bs-btn-active-border-color: #ffc720;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #ffc107;--bs-btn-disabled-border-color: #ffc107}.btn-danger{--bs-btn-color: #fff;--bs-btn-bg: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #bb2d3b;--bs-btn-hover-border-color: #b02a37;--bs-btn-focus-shadow-rgb: 225, 83, 97;--bs-btn-active-color: #fff;--bs-btn-active-bg: #b02a37;--bs-btn-active-border-color: #a52834;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #dc3545;--bs-btn-disabled-border-color: #dc3545}.btn-light{--bs-btn-color: #000;--bs-btn-bg: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #d3d4d5;--bs-btn-hover-border-color: #c6c7c8;--bs-btn-focus-shadow-rgb: 211, 212, 213;--bs-btn-active-color: #000;--bs-btn-active-bg: #c6c7c8;--bs-btn-active-border-color: #babbbc;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #000;--bs-btn-disabled-bg: #f8f9fa;--bs-btn-disabled-border-color: #f8f9fa}.btn-dark{--bs-btn-color: #fff;--bs-btn-bg: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #424649;--bs-btn-hover-border-color: #373b3e;--bs-btn-focus-shadow-rgb: 66, 70, 73;--bs-btn-active-color: #fff;--bs-btn-active-bg: #4d5154;--bs-btn-active-border-color: #373b3e;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #fff;--bs-btn-disabled-bg: #212529;--bs-btn-disabled-border-color: #212529}.btn-outline-primary{--bs-btn-color: #0d6efd;--bs-btn-border-color: #0d6efd;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #0d6efd;--bs-btn-hover-border-color: #0d6efd;--bs-btn-focus-shadow-rgb: 13, 110, 253;--bs-btn-active-color: #fff;--bs-btn-active-bg: #0d6efd;--bs-btn-active-border-color: #0d6efd;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0d6efd;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0d6efd;--bs-gradient: none}.btn-outline-secondary{--bs-btn-color: #6c757d;--bs-btn-border-color: #6c757d;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #6c757d;--bs-btn-hover-border-color: #6c757d;--bs-btn-focus-shadow-rgb: 108, 117, 125;--bs-btn-active-color: #fff;--bs-btn-active-bg: #6c757d;--bs-btn-active-border-color: #6c757d;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #6c757d;--bs-gradient: none}.btn-outline-success{--bs-btn-color: #198754;--bs-btn-border-color: #198754;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #198754;--bs-btn-hover-border-color: #198754;--bs-btn-focus-shadow-rgb: 25, 135, 84;--bs-btn-active-color: #fff;--bs-btn-active-bg: #198754;--bs-btn-active-border-color: #198754;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #198754;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #198754;--bs-gradient: none}.btn-outline-info{--bs-btn-color: #0dcaf0;--bs-btn-border-color: #0dcaf0;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #0dcaf0;--bs-btn-hover-border-color: #0dcaf0;--bs-btn-focus-shadow-rgb: 13, 202, 240;--bs-btn-active-color: #000;--bs-btn-active-bg: #0dcaf0;--bs-btn-active-border-color: #0dcaf0;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #0dcaf0;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #0dcaf0;--bs-gradient: none}.btn-outline-warning{--bs-btn-color: #ffc107;--bs-btn-border-color: #ffc107;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #ffc107;--bs-btn-hover-border-color: #ffc107;--bs-btn-focus-shadow-rgb: 255, 193, 7;--bs-btn-active-color: #000;--bs-btn-active-bg: #ffc107;--bs-btn-active-border-color: #ffc107;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #ffc107;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #ffc107;--bs-gradient: none}.btn-outline-danger{--bs-btn-color: #dc3545;--bs-btn-border-color: #dc3545;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #dc3545;--bs-btn-hover-border-color: #dc3545;--bs-btn-focus-shadow-rgb: 220, 53, 69;--bs-btn-active-color: #fff;--bs-btn-active-bg: #dc3545;--bs-btn-active-border-color: #dc3545;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #dc3545;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #dc3545;--bs-gradient: none}.btn-outline-light{--bs-btn-color: #f8f9fa;--bs-btn-border-color: #f8f9fa;--bs-btn-hover-color: #000;--bs-btn-hover-bg: #f8f9fa;--bs-btn-hover-border-color: #f8f9fa;--bs-btn-focus-shadow-rgb: 248, 249, 250;--bs-btn-active-color: #000;--bs-btn-active-bg: #f8f9fa;--bs-btn-active-border-color: #f8f9fa;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #f8f9fa;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #f8f9fa;--bs-gradient: none}.btn-outline-dark{--bs-btn-color: #212529;--bs-btn-border-color: #212529;--bs-btn-hover-color: #fff;--bs-btn-hover-bg: #212529;--bs-btn-hover-border-color: #212529;--bs-btn-focus-shadow-rgb: 33, 37, 41;--bs-btn-active-color: #fff;--bs-btn-active-bg: #212529;--bs-btn-active-border-color: #212529;--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);--bs-btn-disabled-color: #212529;--bs-btn-disabled-bg: transparent;--bs-btn-disabled-border-color: #212529;--bs-gradient: none}.btn-link{--bs-btn-font-weight: 400;--bs-btn-color: var(--bs-link-color);--bs-btn-bg: transparent;--bs-btn-border-color: transparent;--bs-btn-hover-color: var(--bs-link-hover-color);--bs-btn-hover-border-color: transparent;--bs-btn-active-color: var(--bs-link-hover-color);--bs-btn-active-border-color: transparent;--bs-btn-disabled-color: #6c757d;--bs-btn-disabled-border-color: transparent;--bs-btn-box-shadow: 0 0 0 #000;--bs-btn-focus-shadow-rgb: 49, 132, 253;text-decoration:underline}.btn-link:focus-visible{color:var(--bs-btn-color)}.btn-link:hover{color:var(--bs-btn-hover-color)}.btn-lg,.btn-group-lg>.btn{--bs-btn-padding-y: .5rem;--bs-btn-padding-x: 1rem;--bs-btn-font-size: 1.25rem;--bs-btn-border-radius: var(--bs-border-radius-lg)}.btn-sm,.btn-group-sm>.btn{--bs-btn-padding-y: .25rem;--bs-btn-padding-x: .5rem;--bs-btn-font-size: .875rem;--bs-btn-border-radius: var(--bs-border-radius-sm)}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion: reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion: reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion: reduce){.collapsing.collapse-horizontal{transition:none}}.dropup,.dropend,.dropdown,.dropstart,.dropup-center,.dropdown-center{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{--bs-dropdown-zindex: 1000;--bs-dropdown-min-width: 10rem;--bs-dropdown-padding-x: 0;--bs-dropdown-padding-y: .5rem;--bs-dropdown-spacer: .125rem;--bs-dropdown-font-size: 1rem;--bs-dropdown-color: var(--bs-body-color);--bs-dropdown-bg: var(--bs-body-bg);--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-border-radius: var(--bs-border-radius);--bs-dropdown-border-width: var(--bs-border-width);--bs-dropdown-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-divider-margin-y: .5rem;--bs-dropdown-box-shadow: var(--bs-box-shadow);--bs-dropdown-link-color: var(--bs-body-color);--bs-dropdown-link-hover-color: var(--bs-body-color);--bs-dropdown-link-hover-bg: var(--bs-tertiary-bg);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: var(--bs-tertiary-color);--bs-dropdown-item-padding-x: 1rem;--bs-dropdown-item-padding-y: .25rem;--bs-dropdown-header-color: #6c757d;--bs-dropdown-header-padding-x: 1rem;--bs-dropdown-header-padding-y: .5rem;position:absolute;z-index:var(--bs-dropdown-zindex);display:none;min-width:var(--bs-dropdown-min-width);padding:var(--bs-dropdown-padding-y) var(--bs-dropdown-padding-x);margin:0;font-size:var(--bs-dropdown-font-size);color:var(--bs-dropdown-color);text-align:left;list-style:none;background-color:var(--bs-dropdown-bg);background-clip:padding-box;border:var(--bs-dropdown-border-width) solid var(--bs-dropdown-border-color);border-radius:var(--bs-dropdown-border-radius)}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:var(--bs-dropdown-spacer)}.dropdown-menu-start{--bs-position: start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position: end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width: 576px){.dropdown-menu-sm-start{--bs-position: start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position: end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 768px){.dropdown-menu-md-start{--bs-position: start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position: end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 992px){.dropdown-menu-lg-start{--bs-position: start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position: end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1200px){.dropdown-menu-xl-start{--bs-position: start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position: end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width: 1400px){.dropdown-menu-xxl-start{--bs-position: start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position: end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:var(--bs-dropdown-spacer)}.dropup .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:var(--bs-dropdown-spacer)}.dropend .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty:after{margin-left:0}.dropend .dropdown-toggle:after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:var(--bs-dropdown-spacer)}.dropstart .dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle:after{display:none}.dropstart .dropdown-toggle:before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty:after{margin-left:0}.dropstart .dropdown-toggle:before{vertical-align:0}.dropdown-divider{height:0;margin:var(--bs-dropdown-divider-margin-y) 0;overflow:hidden;border-top:1px solid var(--bs-dropdown-divider-bg);opacity:1}.dropdown-item{display:block;width:100%;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);clear:both;font-weight:400;color:var(--bs-dropdown-link-color);text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0;border-radius:var(--bs-dropdown-item-border-radius, 0)}.dropdown-item:hover,.dropdown-item:focus{color:var(--bs-dropdown-link-hover-color);background-color:var(--bs-dropdown-link-hover-bg)}.dropdown-item.active,.dropdown-item:active{color:var(--bs-dropdown-link-active-color);text-decoration:none;background-color:var(--bs-dropdown-link-active-bg)}.dropdown-item.disabled,.dropdown-item:disabled{color:var(--bs-dropdown-link-disabled-color);pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:var(--bs-dropdown-header-padding-y) var(--bs-dropdown-header-padding-x);margin-bottom:0;font-size:.875rem;color:var(--bs-dropdown-header-color);white-space:nowrap}.dropdown-item-text{display:block;padding:var(--bs-dropdown-item-padding-y) var(--bs-dropdown-item-padding-x);color:var(--bs-dropdown-link-color)}.dropdown-menu-dark{--bs-dropdown-color: #dee2e6;--bs-dropdown-bg: #343a40;--bs-dropdown-border-color: var(--bs-border-color-translucent);--bs-dropdown-box-shadow: ;--bs-dropdown-link-color: #dee2e6;--bs-dropdown-link-hover-color: #fff;--bs-dropdown-divider-bg: var(--bs-border-color-translucent);--bs-dropdown-link-hover-bg: rgba(255, 255, 255, .15);--bs-dropdown-link-active-color: #fff;--bs-dropdown-link-active-bg: #0d6efd;--bs-dropdown-link-disabled-color: #adb5bd;--bs-dropdown-header-color: #adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;flex:1 1 auto}.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn:hover,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn.active{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group{border-radius:var(--bs-border-radius)}.btn-group>:not(.btn-check:first-child)+.btn,.btn-group>.btn-group:not(:first-child){margin-left:calc(-1 * var(--bs-border-width))}.btn-group>.btn:not(:last-child):not(.dropdown-toggle),.btn-group>.btn.dropdown-toggle-split:first-child,.btn-group>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn,.btn-group>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split:after,.dropup .dropdown-toggle-split:after,.dropend .dropdown-toggle-split:after{margin-left:0}.dropstart .dropdown-toggle-split:before{margin-right:0}.btn-sm+.dropdown-toggle-split,.btn-group-sm>.btn+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-lg+.dropdown-toggle-split,.btn-group-lg>.btn+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn:not(:first-child),.btn-group-vertical>.btn-group:not(:first-child){margin-top:calc(-1 * var(--bs-border-width))}.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle),.btn-group-vertical>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:nth-child(n+3),.btn-group-vertical>:not(.btn-check)+.btn,.btn-group-vertical>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{--bs-nav-link-padding-x: 1rem;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-link-color);--bs-nav-link-hover-color: var(--bs-link-hover-color);--bs-nav-link-disabled-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:var(--bs-nav-link-padding-y) var(--bs-nav-link-padding-x);font-size:var(--bs-nav-link-font-size);font-weight:var(--bs-nav-link-font-weight);color:var(--bs-nav-link-color);text-decoration:none;background:none;border:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion: reduce){.nav-link{transition:none}}.nav-link:hover,.nav-link:focus{color:var(--bs-nav-link-hover-color)}.nav-link:focus-visible{outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.nav-link.disabled,.nav-link:disabled{color:var(--bs-nav-link-disabled-color);pointer-events:none;cursor:default}.nav-tabs{--bs-nav-tabs-border-width: var(--bs-border-width);--bs-nav-tabs-border-color: var(--bs-border-color);--bs-nav-tabs-border-radius: var(--bs-border-radius);--bs-nav-tabs-link-hover-border-color: var(--bs-secondary-bg) var(--bs-secondary-bg) var(--bs-border-color);--bs-nav-tabs-link-active-color: var(--bs-emphasis-color);--bs-nav-tabs-link-active-bg: var(--bs-body-bg);--bs-nav-tabs-link-active-border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);border-bottom:var(--bs-nav-tabs-border-width) solid var(--bs-nav-tabs-border-color)}.nav-tabs .nav-link{margin-bottom:calc(-1 * var(--bs-nav-tabs-border-width));border:var(--bs-nav-tabs-border-width) solid transparent;border-top-left-radius:var(--bs-nav-tabs-border-radius);border-top-right-radius:var(--bs-nav-tabs-border-radius)}.nav-tabs .nav-link:hover,.nav-tabs .nav-link:focus{isolation:isolate;border-color:var(--bs-nav-tabs-link-hover-border-color)}.nav-tabs .nav-link.active,.nav-tabs .nav-item.show .nav-link{color:var(--bs-nav-tabs-link-active-color);background-color:var(--bs-nav-tabs-link-active-bg);border-color:var(--bs-nav-tabs-link-active-border-color)}.nav-tabs .dropdown-menu{margin-top:calc(-1 * var(--bs-nav-tabs-border-width));border-top-left-radius:0;border-top-right-radius:0}.nav-pills{--bs-nav-pills-border-radius: var(--bs-border-radius);--bs-nav-pills-link-active-color: #fff;--bs-nav-pills-link-active-bg: #0d6efd}.nav-pills .nav-link{border-radius:var(--bs-nav-pills-border-radius)}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:var(--bs-nav-pills-link-active-color);background-color:var(--bs-nav-pills-link-active-bg)}.nav-underline{--bs-nav-underline-gap: 1rem;--bs-nav-underline-border-width: .125rem;--bs-nav-underline-link-active-color: var(--bs-emphasis-color);gap:var(--bs-nav-underline-gap)}.nav-underline .nav-link{padding-right:0;padding-left:0;border-bottom:var(--bs-nav-underline-border-width) solid transparent}.nav-underline .nav-link:hover,.nav-underline .nav-link:focus{border-bottom-color:currentcolor}.nav-underline .nav-link.active,.nav-underline .show>.nav-link{font-weight:700;color:var(--bs-nav-underline-link-active-color);border-bottom-color:currentcolor}.nav-fill>.nav-link,.nav-fill .nav-item{flex:1 1 auto;text-align:center}.nav-justified>.nav-link,.nav-justified .nav-item{flex-grow:1;flex-basis:0;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{--bs-navbar-padding-x: 0;--bs-navbar-padding-y: .5rem;--bs-navbar-color: rgba(var(--bs-emphasis-color-rgb), .65);--bs-navbar-hover-color: rgba(var(--bs-emphasis-color-rgb), .8);--bs-navbar-disabled-color: rgba(var(--bs-emphasis-color-rgb), .3);--bs-navbar-active-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-padding-y: .3125rem;--bs-navbar-brand-margin-end: 1rem;--bs-navbar-brand-font-size: 1.25rem;--bs-navbar-brand-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-brand-hover-color: rgba(var(--bs-emphasis-color-rgb), 1);--bs-navbar-nav-link-padding-x: .5rem;--bs-navbar-toggler-padding-y: .25rem;--bs-navbar-toggler-padding-x: .75rem;--bs-navbar-toggler-font-size: 1.25rem;--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");--bs-navbar-toggler-border-color: rgba(var(--bs-emphasis-color-rgb), .15);--bs-navbar-toggler-border-radius: var(--bs-border-radius);--bs-navbar-toggler-focus-width: .25rem;--bs-navbar-toggler-transition: box-shadow .15s ease-in-out;position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:var(--bs-navbar-padding-y) var(--bs-navbar-padding-x)}.navbar>.container,.navbar>.container-fluid,.navbar>.container-sm,.navbar>.container-md,.navbar>.container-lg,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:var(--bs-navbar-brand-padding-y);padding-bottom:var(--bs-navbar-brand-padding-y);margin-right:var(--bs-navbar-brand-margin-end);font-size:var(--bs-navbar-brand-font-size);color:var(--bs-navbar-brand-color);text-decoration:none;white-space:nowrap}.navbar-brand:hover,.navbar-brand:focus{color:var(--bs-navbar-brand-hover-color)}.navbar-nav{--bs-nav-link-padding-x: 0;--bs-nav-link-padding-y: .5rem;--bs-nav-link-font-weight: ;--bs-nav-link-color: var(--bs-navbar-color);--bs-nav-link-hover-color: var(--bs-navbar-hover-color);--bs-nav-link-disabled-color: var(--bs-navbar-disabled-color);display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link.active,.navbar-nav .nav-link.show{color:var(--bs-navbar-active-color)}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem;color:var(--bs-navbar-color)}.navbar-text a,.navbar-text a:hover,.navbar-text a:focus{color:var(--bs-navbar-active-color)}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.navbar-toggler{padding:var(--bs-navbar-toggler-padding-y) var(--bs-navbar-toggler-padding-x);font-size:var(--bs-navbar-toggler-font-size);line-height:1;color:var(--bs-navbar-color);background-color:transparent;border:var(--bs-border-width) solid var(--bs-navbar-toggler-border-color);border-radius:var(--bs-navbar-toggler-border-radius);transition:var(--bs-navbar-toggler-transition)}@media (prefers-reduced-motion: reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 var(--bs-navbar-toggler-focus-width)}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-image:var(--bs-navbar-toggler-icon-bg);background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height, 75vh);overflow-y:auto}@media (min-width: 576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-sm .offcanvas .offcanvas-header{display:none}.navbar-expand-sm .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-md .offcanvas .offcanvas-header{display:none}.navbar-expand-md .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-lg .offcanvas .offcanvas-header{display:none}.navbar-expand-lg .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xl .offcanvas .offcanvas-header{display:none}.navbar-expand-xl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width: 1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand-xxl .offcanvas .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:var(--bs-navbar-nav-link-padding-x);padding-left:var(--bs-navbar-nav-link-padding-x)}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas{position:static;z-index:auto;flex-grow:1;width:auto!important;height:auto!important;visibility:visible!important;background-color:transparent!important;border:0!important;transform:none!important;transition:none}.navbar-expand .offcanvas .offcanvas-header{display:none}.navbar-expand .offcanvas .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-dark,.navbar[data-bs-theme=dark]{--bs-navbar-color: rgba(255, 255, 255, .55);--bs-navbar-hover-color: rgba(255, 255, 255, .75);--bs-navbar-disabled-color: rgba(255, 255, 255, .25);--bs-navbar-active-color: #fff;--bs-navbar-brand-color: #fff;--bs-navbar-brand-hover-color: #fff;--bs-navbar-toggler-border-color: rgba(255, 255, 255, .1);--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}[data-bs-theme=dark] .navbar-toggler-icon{--bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.card{--bs-card-spacer-y: 1rem;--bs-card-spacer-x: 1rem;--bs-card-title-spacer-y: .5rem;--bs-card-title-color: ;--bs-card-subtitle-color: ;--bs-card-border-width: var(--bs-border-width);--bs-card-border-color: var(--bs-border-color-translucent);--bs-card-border-radius: var(--bs-border-radius);--bs-card-box-shadow: ;--bs-card-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-card-cap-padding-y: .5rem;--bs-card-cap-padding-x: 1rem;--bs-card-cap-bg: rgba(var(--bs-body-color-rgb), .03);--bs-card-cap-color: ;--bs-card-height: ;--bs-card-color: ;--bs-card-bg: var(--bs-body-bg);--bs-card-img-overlay-padding: 1rem;--bs-card-group-margin: .75rem;position:relative;display:flex;flex-direction:column;min-width:0;height:var(--bs-card-height);color:var(--bs-body-color);word-wrap:break-word;background-color:var(--bs-card-bg);background-clip:border-box;border:var(--bs-card-border-width) solid var(--bs-card-border-color);border-radius:var(--bs-card-border-radius)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:var(--bs-card-spacer-y) var(--bs-card-spacer-x);color:var(--bs-card-color)}.card-title{margin-bottom:var(--bs-card-title-spacer-y);color:var(--bs-card-title-color)}.card-subtitle{margin-top:calc(-.5 * var(--bs-card-title-spacer-y));margin-bottom:0;color:var(--bs-card-subtitle-color)}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:var(--bs-card-spacer-x)}.card-header{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);margin-bottom:0;color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-bottom:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-header:first-child{border-radius:var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0}.card-footer{padding:var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);color:var(--bs-card-cap-color);background-color:var(--bs-card-cap-bg);border-top:var(--bs-card-border-width) solid var(--bs-card-border-color)}.card-footer:last-child{border-radius:0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius)}.card-header-tabs{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-bottom:calc(-1 * var(--bs-card-cap-padding-y));margin-left:calc(-.5 * var(--bs-card-cap-padding-x));border-bottom:0}.card-header-tabs .nav-link.active{background-color:var(--bs-card-bg);border-bottom-color:var(--bs-card-bg)}.card-header-pills{margin-right:calc(-.5 * var(--bs-card-cap-padding-x));margin-left:calc(-.5 * var(--bs-card-cap-padding-x))}.card-img-overlay{position:absolute;inset:0;padding:var(--bs-card-img-overlay-padding);border-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-top,.card-img-bottom{width:100%}.card-img,.card-img-top{border-top-left-radius:var(--bs-card-inner-border-radius);border-top-right-radius:var(--bs-card-inner-border-radius)}.card-img,.card-img-bottom{border-bottom-right-radius:var(--bs-card-inner-border-radius);border-bottom-left-radius:var(--bs-card-inner-border-radius)}.card-group>.card{margin-bottom:var(--bs-card-group-margin)}@media (min-width: 576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child)>.card-img-top,.card-group>.card:not(:last-child)>.card-header{border-top-right-radius:0}.card-group>.card:not(:last-child)>.card-img-bottom,.card-group>.card:not(:last-child)>.card-footer{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child)>.card-img-top,.card-group>.card:not(:first-child)>.card-header{border-top-left-radius:0}.card-group>.card:not(:first-child)>.card-img-bottom,.card-group>.card:not(:first-child)>.card-footer{border-bottom-left-radius:0}}.accordion{--bs-accordion-color: var(--bs-body-color);--bs-accordion-bg: var(--bs-body-bg);--bs-accordion-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, border-radius .15s ease;--bs-accordion-border-color: var(--bs-border-color);--bs-accordion-border-width: var(--bs-border-width);--bs-accordion-border-radius: var(--bs-border-radius);--bs-accordion-inner-border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));--bs-accordion-btn-padding-x: 1.25rem;--bs-accordion-btn-padding-y: 1rem;--bs-accordion-btn-color: var(--bs-body-color);--bs-accordion-btn-bg: var(--bs-accordion-bg);--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23212529' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-accordion-btn-icon-width: 1.25rem;--bs-accordion-btn-icon-transform: rotate(-180deg);--bs-accordion-btn-icon-transition: transform .2s ease-in-out;--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23052c65' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m2 5 6 6 6-6'/%3e%3c/svg%3e");--bs-accordion-btn-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-accordion-body-padding-x: 1.25rem;--bs-accordion-body-padding-y: 1rem;--bs-accordion-active-color: var(--bs-primary-text-emphasis);--bs-accordion-active-bg: var(--bs-primary-bg-subtle)}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);font-size:1rem;color:var(--bs-accordion-btn-color);text-align:left;background-color:var(--bs-accordion-btn-bg);border:0;border-radius:0;overflow-anchor:none;transition:var(--bs-accordion-transition)}@media (prefers-reduced-motion: reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:var(--bs-accordion-active-color);background-color:var(--bs-accordion-active-bg);box-shadow:inset 0 calc(-1 * var(--bs-accordion-border-width)) 0 var(--bs-accordion-border-color)}.accordion-button:not(.collapsed):after{background-image:var(--bs-accordion-btn-active-icon);transform:var(--bs-accordion-btn-icon-transform)}.accordion-button:after{flex-shrink:0;width:var(--bs-accordion-btn-icon-width);height:var(--bs-accordion-btn-icon-width);margin-left:auto;content:"";background-image:var(--bs-accordion-btn-icon);background-repeat:no-repeat;background-size:var(--bs-accordion-btn-icon-width);transition:var(--bs-accordion-btn-icon-transition)}@media (prefers-reduced-motion: reduce){.accordion-button:after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;outline:0;box-shadow:var(--bs-accordion-btn-focus-box-shadow)}.accordion-header{margin-bottom:0}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:var(--bs-accordion-border-width) solid var(--bs-accordion-border-color)}.accordion-item:first-of-type{border-top-left-radius:var(--bs-accordion-border-radius);border-top-right-radius:var(--bs-accordion-border-radius)}.accordion-item:first-of-type>.accordion-header .accordion-button{border-top-left-radius:var(--bs-accordion-inner-border-radius);border-top-right-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-item:last-of-type>.accordion-header .accordion-button.collapsed{border-bottom-right-radius:var(--bs-accordion-inner-border-radius);border-bottom-left-radius:var(--bs-accordion-inner-border-radius)}.accordion-item:last-of-type>.accordion-collapse{border-bottom-right-radius:var(--bs-accordion-border-radius);border-bottom-left-radius:var(--bs-accordion-border-radius)}.accordion-body{padding:var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x)}.accordion-flush>.accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush>.accordion-item:first-child{border-top:0}.accordion-flush>.accordion-item:last-child{border-bottom:0}.accordion-flush>.accordion-item>.accordion-collapse,.accordion-flush>.accordion-item>.accordion-header .accordion-button,.accordion-flush>.accordion-item>.accordion-header .accordion-button.collapsed{border-radius:0}[data-bs-theme=dark] .accordion-button:after{--bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e");--bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236ea8fe'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e")}.breadcrumb{--bs-breadcrumb-padding-x: 0;--bs-breadcrumb-padding-y: 0;--bs-breadcrumb-margin-bottom: 1rem;--bs-breadcrumb-bg: ;--bs-breadcrumb-border-radius: ;--bs-breadcrumb-divider-color: var(--bs-secondary-color);--bs-breadcrumb-item-padding-x: .5rem;--bs-breadcrumb-item-active-color: var(--bs-secondary-color);display:flex;flex-wrap:wrap;padding:var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);margin-bottom:var(--bs-breadcrumb-margin-bottom);font-size:var(--bs-breadcrumb-font-size);list-style:none;background-color:var(--bs-breadcrumb-bg);border-radius:var(--bs-breadcrumb-border-radius)}.breadcrumb-item+.breadcrumb-item{padding-left:var(--bs-breadcrumb-item-padding-x)}.breadcrumb-item+.breadcrumb-item:before{float:left;padding-right:var(--bs-breadcrumb-item-padding-x);color:var(--bs-breadcrumb-divider-color);content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:var(--bs-breadcrumb-item-active-color)}.pagination{--bs-pagination-padding-x: .75rem;--bs-pagination-padding-y: .375rem;--bs-pagination-font-size: 1rem;--bs-pagination-color: var(--bs-link-color);--bs-pagination-bg: var(--bs-body-bg);--bs-pagination-border-width: var(--bs-border-width);--bs-pagination-border-color: var(--bs-border-color);--bs-pagination-border-radius: var(--bs-border-radius);--bs-pagination-hover-color: var(--bs-link-hover-color);--bs-pagination-hover-bg: var(--bs-tertiary-bg);--bs-pagination-hover-border-color: var(--bs-border-color);--bs-pagination-focus-color: var(--bs-link-hover-color);--bs-pagination-focus-bg: var(--bs-secondary-bg);--bs-pagination-focus-box-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-pagination-active-color: #fff;--bs-pagination-active-bg: #0d6efd;--bs-pagination-active-border-color: #0d6efd;--bs-pagination-disabled-color: var(--bs-secondary-color);--bs-pagination-disabled-bg: var(--bs-secondary-bg);--bs-pagination-disabled-border-color: var(--bs-border-color);display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:var(--bs-pagination-padding-y) var(--bs-pagination-padding-x);font-size:var(--bs-pagination-font-size);color:var(--bs-pagination-color);text-decoration:none;background-color:var(--bs-pagination-bg);border:var(--bs-pagination-border-width) solid var(--bs-pagination-border-color);transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion: reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:var(--bs-pagination-hover-color);background-color:var(--bs-pagination-hover-bg);border-color:var(--bs-pagination-hover-border-color)}.page-link:focus{z-index:3;color:var(--bs-pagination-focus-color);background-color:var(--bs-pagination-focus-bg);outline:0;box-shadow:var(--bs-pagination-focus-box-shadow)}.page-link.active,.active>.page-link{z-index:3;color:var(--bs-pagination-active-color);background-color:var(--bs-pagination-active-bg);border-color:var(--bs-pagination-active-border-color)}.page-link.disabled,.disabled>.page-link{color:var(--bs-pagination-disabled-color);pointer-events:none;background-color:var(--bs-pagination-disabled-bg);border-color:var(--bs-pagination-disabled-border-color)}.page-item:not(:first-child) .page-link{margin-left:calc(-1 * var(--bs-border-width))}.page-item:first-child .page-link{border-top-left-radius:var(--bs-pagination-border-radius);border-bottom-left-radius:var(--bs-pagination-border-radius)}.page-item:last-child .page-link{border-top-right-radius:var(--bs-pagination-border-radius);border-bottom-right-radius:var(--bs-pagination-border-radius)}.pagination-lg{--bs-pagination-padding-x: 1.5rem;--bs-pagination-padding-y: .75rem;--bs-pagination-font-size: 1.25rem;--bs-pagination-border-radius: var(--bs-border-radius-lg)}.pagination-sm{--bs-pagination-padding-x: .5rem;--bs-pagination-padding-y: .25rem;--bs-pagination-font-size: .875rem;--bs-pagination-border-radius: var(--bs-border-radius-sm)}.badge{--bs-badge-padding-x: .65em;--bs-badge-padding-y: .35em;--bs-badge-font-size: .75em;--bs-badge-font-weight: 700;--bs-badge-color: #fff;--bs-badge-border-radius: var(--bs-border-radius);display:inline-block;padding:var(--bs-badge-padding-y) var(--bs-badge-padding-x);font-size:var(--bs-badge-font-size);font-weight:var(--bs-badge-font-weight);line-height:1;color:var(--bs-badge-color);text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:var(--bs-badge-border-radius)}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{--bs-alert-bg: transparent;--bs-alert-padding-x: 1rem;--bs-alert-padding-y: 1rem;--bs-alert-margin-bottom: 1rem;--bs-alert-color: inherit;--bs-alert-border-color: transparent;--bs-alert-border: var(--bs-border-width) solid var(--bs-alert-border-color);--bs-alert-border-radius: var(--bs-border-radius);--bs-alert-link-color: inherit;position:relative;padding:var(--bs-alert-padding-y) var(--bs-alert-padding-x);margin-bottom:var(--bs-alert-margin-bottom);color:var(--bs-alert-color);background-color:var(--bs-alert-bg);border:var(--bs-alert-border);border-radius:var(--bs-alert-border-radius)}.alert-heading{color:inherit}.alert-link{font-weight:700;color:var(--bs-alert-link-color)}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{--bs-alert-color: var(--bs-primary-text-emphasis);--bs-alert-bg: var(--bs-primary-bg-subtle);--bs-alert-border-color: var(--bs-primary-border-subtle);--bs-alert-link-color: var(--bs-primary-text-emphasis)}.alert-secondary{--bs-alert-color: var(--bs-secondary-text-emphasis);--bs-alert-bg: var(--bs-secondary-bg-subtle);--bs-alert-border-color: var(--bs-secondary-border-subtle);--bs-alert-link-color: var(--bs-secondary-text-emphasis)}.alert-success{--bs-alert-color: var(--bs-success-text-emphasis);--bs-alert-bg: var(--bs-success-bg-subtle);--bs-alert-border-color: var(--bs-success-border-subtle);--bs-alert-link-color: var(--bs-success-text-emphasis)}.alert-info{--bs-alert-color: var(--bs-info-text-emphasis);--bs-alert-bg: var(--bs-info-bg-subtle);--bs-alert-border-color: var(--bs-info-border-subtle);--bs-alert-link-color: var(--bs-info-text-emphasis)}.alert-warning{--bs-alert-color: var(--bs-warning-text-emphasis);--bs-alert-bg: var(--bs-warning-bg-subtle);--bs-alert-border-color: var(--bs-warning-border-subtle);--bs-alert-link-color: var(--bs-warning-text-emphasis)}.alert-danger{--bs-alert-color: var(--bs-danger-text-emphasis);--bs-alert-bg: var(--bs-danger-bg-subtle);--bs-alert-border-color: var(--bs-danger-border-subtle);--bs-alert-link-color: var(--bs-danger-text-emphasis)}.alert-light{--bs-alert-color: var(--bs-light-text-emphasis);--bs-alert-bg: var(--bs-light-bg-subtle);--bs-alert-border-color: var(--bs-light-border-subtle);--bs-alert-link-color: var(--bs-light-text-emphasis)}.alert-dark{--bs-alert-color: var(--bs-dark-text-emphasis);--bs-alert-bg: var(--bs-dark-bg-subtle);--bs-alert-border-color: var(--bs-dark-border-subtle);--bs-alert-link-color: var(--bs-dark-text-emphasis)}@keyframes progress-bar-stripes{0%{background-position-x:var(--bs-progress-height)}}.progress,.progress-stacked{--bs-progress-height: 1rem;--bs-progress-font-size: .75rem;--bs-progress-bg: var(--bs-secondary-bg);--bs-progress-border-radius: var(--bs-border-radius);--bs-progress-box-shadow: var(--bs-box-shadow-inset);--bs-progress-bar-color: #fff;--bs-progress-bar-bg: #0d6efd;--bs-progress-bar-transition: width .6s ease;display:flex;height:var(--bs-progress-height);overflow:hidden;font-size:var(--bs-progress-font-size);background-color:var(--bs-progress-bg);border-radius:var(--bs-progress-border-radius)}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--bs-progress-bar-color);text-align:center;white-space:nowrap;background-color:var(--bs-progress-bar-bg);transition:var(--bs-progress-bar-transition)}@media (prefers-reduced-motion: reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:var(--bs-progress-height) var(--bs-progress-height)}.progress-stacked>.progress{overflow:visible}.progress-stacked>.progress>.progress-bar{width:100%}.progress-bar-animated{animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion: reduce){.progress-bar-animated{animation:none}}.list-group{--bs-list-group-color: var(--bs-body-color);--bs-list-group-bg: var(--bs-body-bg);--bs-list-group-border-color: var(--bs-border-color);--bs-list-group-border-width: var(--bs-border-width);--bs-list-group-border-radius: var(--bs-border-radius);--bs-list-group-item-padding-x: 1rem;--bs-list-group-item-padding-y: .5rem;--bs-list-group-action-color: var(--bs-secondary-color);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-tertiary-bg);--bs-list-group-action-active-color: var(--bs-body-color);--bs-list-group-action-active-bg: var(--bs-secondary-bg);--bs-list-group-disabled-color: var(--bs-secondary-color);--bs-list-group-disabled-bg: var(--bs-body-bg);--bs-list-group-active-color: #fff;--bs-list-group-active-bg: #0d6efd;--bs-list-group-active-border-color: #0d6efd;display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:var(--bs-list-group-border-radius)}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>.list-group-item:before{content:counters(section,".") ". ";counter-increment:section}.list-group-item{position:relative;display:block;padding:var(--bs-list-group-item-padding-y) var(--bs-list-group-item-padding-x);color:var(--bs-list-group-color);text-decoration:none;background-color:var(--bs-list-group-bg);border:var(--bs-list-group-border-width) solid var(--bs-list-group-border-color)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:var(--bs-list-group-disabled-color);pointer-events:none;background-color:var(--bs-list-group-disabled-bg)}.list-group-item.active{z-index:2;color:var(--bs-list-group-active-color);background-color:var(--bs-list-group-active-bg);border-color:var(--bs-list-group-active-border-color)}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:calc(-1 * var(--bs-list-group-border-width));border-top-width:var(--bs-list-group-border-width)}.list-group-item-action{width:100%;color:var(--bs-list-group-action-color);text-align:inherit}.list-group-item-action:not(.active):hover,.list-group-item-action:not(.active):focus{z-index:1;color:var(--bs-list-group-action-hover-color);text-decoration:none;background-color:var(--bs-list-group-action-hover-bg)}.list-group-item-action:not(.active):active{color:var(--bs-list-group-action-active-color);background-color:var(--bs-list-group-action-active-bg)}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}@media (min-width: 576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}@media (min-width: 1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child:not(:last-child){border-bottom-left-radius:var(--bs-list-group-border-radius);border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child:not(:first-child){border-top-right-radius:var(--bs-list-group-border-radius);border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:var(--bs-list-group-border-width);border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:calc(-1 * var(--bs-list-group-border-width));border-left-width:var(--bs-list-group-border-width)}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 var(--bs-list-group-border-width)}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{--bs-list-group-color: var(--bs-primary-text-emphasis);--bs-list-group-bg: var(--bs-primary-bg-subtle);--bs-list-group-border-color: var(--bs-primary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-primary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-primary-border-subtle);--bs-list-group-active-color: var(--bs-primary-bg-subtle);--bs-list-group-active-bg: var(--bs-primary-text-emphasis);--bs-list-group-active-border-color: var(--bs-primary-text-emphasis)}.list-group-item-secondary{--bs-list-group-color: var(--bs-secondary-text-emphasis);--bs-list-group-bg: var(--bs-secondary-bg-subtle);--bs-list-group-border-color: var(--bs-secondary-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-secondary-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-secondary-border-subtle);--bs-list-group-active-color: var(--bs-secondary-bg-subtle);--bs-list-group-active-bg: var(--bs-secondary-text-emphasis);--bs-list-group-active-border-color: var(--bs-secondary-text-emphasis)}.list-group-item-success{--bs-list-group-color: var(--bs-success-text-emphasis);--bs-list-group-bg: var(--bs-success-bg-subtle);--bs-list-group-border-color: var(--bs-success-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-success-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-success-border-subtle);--bs-list-group-active-color: var(--bs-success-bg-subtle);--bs-list-group-active-bg: var(--bs-success-text-emphasis);--bs-list-group-active-border-color: var(--bs-success-text-emphasis)}.list-group-item-info{--bs-list-group-color: var(--bs-info-text-emphasis);--bs-list-group-bg: var(--bs-info-bg-subtle);--bs-list-group-border-color: var(--bs-info-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-info-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-info-border-subtle);--bs-list-group-active-color: var(--bs-info-bg-subtle);--bs-list-group-active-bg: var(--bs-info-text-emphasis);--bs-list-group-active-border-color: var(--bs-info-text-emphasis)}.list-group-item-warning{--bs-list-group-color: var(--bs-warning-text-emphasis);--bs-list-group-bg: var(--bs-warning-bg-subtle);--bs-list-group-border-color: var(--bs-warning-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-warning-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-warning-border-subtle);--bs-list-group-active-color: var(--bs-warning-bg-subtle);--bs-list-group-active-bg: var(--bs-warning-text-emphasis);--bs-list-group-active-border-color: var(--bs-warning-text-emphasis)}.list-group-item-danger{--bs-list-group-color: var(--bs-danger-text-emphasis);--bs-list-group-bg: var(--bs-danger-bg-subtle);--bs-list-group-border-color: var(--bs-danger-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-danger-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-danger-border-subtle);--bs-list-group-active-color: var(--bs-danger-bg-subtle);--bs-list-group-active-bg: var(--bs-danger-text-emphasis);--bs-list-group-active-border-color: var(--bs-danger-text-emphasis)}.list-group-item-light{--bs-list-group-color: var(--bs-light-text-emphasis);--bs-list-group-bg: var(--bs-light-bg-subtle);--bs-list-group-border-color: var(--bs-light-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-light-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-light-border-subtle);--bs-list-group-active-color: var(--bs-light-bg-subtle);--bs-list-group-active-bg: var(--bs-light-text-emphasis);--bs-list-group-active-border-color: var(--bs-light-text-emphasis)}.list-group-item-dark{--bs-list-group-color: var(--bs-dark-text-emphasis);--bs-list-group-bg: var(--bs-dark-bg-subtle);--bs-list-group-border-color: var(--bs-dark-border-subtle);--bs-list-group-action-hover-color: var(--bs-emphasis-color);--bs-list-group-action-hover-bg: var(--bs-dark-border-subtle);--bs-list-group-action-active-color: var(--bs-emphasis-color);--bs-list-group-action-active-bg: var(--bs-dark-border-subtle);--bs-list-group-active-color: var(--bs-dark-bg-subtle);--bs-list-group-active-bg: var(--bs-dark-text-emphasis);--bs-list-group-active-border-color: var(--bs-dark-text-emphasis)}.btn-close{--bs-btn-close-color: #000;--bs-btn-close-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414'/%3e%3c/svg%3e");--bs-btn-close-opacity: .5;--bs-btn-close-hover-opacity: .75;--bs-btn-close-focus-shadow: 0 0 0 .25rem rgba(13, 110, 253, .25);--bs-btn-close-focus-opacity: 1;--bs-btn-close-disabled-opacity: .25;box-sizing:content-box;width:1em;height:1em;padding:.25em;color:var(--bs-btn-close-color);background:transparent var(--bs-btn-close-bg) center/1em auto no-repeat;filter:var(--bs-btn-close-filter);border:0;border-radius:.375rem;opacity:var(--bs-btn-close-opacity)}.btn-close:hover{color:var(--bs-btn-close-color);text-decoration:none;opacity:var(--bs-btn-close-hover-opacity)}.btn-close:focus{outline:0;box-shadow:var(--bs-btn-close-focus-shadow);opacity:var(--bs-btn-close-focus-opacity)}.btn-close:disabled,.btn-close.disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:var(--bs-btn-close-disabled-opacity)}.btn-close-white{--bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%)}:root,[data-bs-theme=light]{--bs-btn-close-filter: }[data-bs-theme=dark]{--bs-btn-close-filter: invert(1) grayscale(100%) brightness(200%)}.toast{--bs-toast-zindex: 1090;--bs-toast-padding-x: .75rem;--bs-toast-padding-y: .5rem;--bs-toast-spacing: 1.5rem;--bs-toast-max-width: 350px;--bs-toast-font-size: .875rem;--bs-toast-color: ;--bs-toast-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-border-width: var(--bs-border-width);--bs-toast-border-color: var(--bs-border-color-translucent);--bs-toast-border-radius: var(--bs-border-radius);--bs-toast-box-shadow: var(--bs-box-shadow);--bs-toast-header-color: var(--bs-secondary-color);--bs-toast-header-bg: rgba(var(--bs-body-bg-rgb), .85);--bs-toast-header-border-color: var(--bs-border-color-translucent);width:var(--bs-toast-max-width);max-width:100%;font-size:var(--bs-toast-font-size);color:var(--bs-toast-color);pointer-events:auto;background-color:var(--bs-toast-bg);background-clip:padding-box;border:var(--bs-toast-border-width) solid var(--bs-toast-border-color);box-shadow:var(--bs-toast-box-shadow);border-radius:var(--bs-toast-border-radius)}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{--bs-toast-zindex: 1090;position:absolute;z-index:var(--bs-toast-zindex);width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:var(--bs-toast-spacing)}.toast-header{display:flex;align-items:center;padding:var(--bs-toast-padding-y) var(--bs-toast-padding-x);color:var(--bs-toast-header-color);background-color:var(--bs-toast-header-bg);background-clip:padding-box;border-bottom:var(--bs-toast-border-width) solid var(--bs-toast-header-border-color);border-top-left-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width));border-top-right-radius:calc(var(--bs-toast-border-radius) - var(--bs-toast-border-width))}.toast-header .btn-close{margin-right:calc(-.5 * var(--bs-toast-padding-x));margin-left:var(--bs-toast-padding-x)}.toast-body{padding:var(--bs-toast-padding-x);word-wrap:break-word}.modal{--bs-modal-zindex: 1055;--bs-modal-width: 500px;--bs-modal-padding: 1rem;--bs-modal-margin: .5rem;--bs-modal-color: var(--bs-body-color);--bs-modal-bg: var(--bs-body-bg);--bs-modal-border-color: var(--bs-border-color-translucent);--bs-modal-border-width: var(--bs-border-width);--bs-modal-border-radius: var(--bs-border-radius-lg);--bs-modal-box-shadow: var(--bs-box-shadow-sm);--bs-modal-inner-border-radius: calc(var(--bs-border-radius-lg) - (var(--bs-border-width)));--bs-modal-header-padding-x: 1rem;--bs-modal-header-padding-y: 1rem;--bs-modal-header-padding: 1rem 1rem;--bs-modal-header-border-color: var(--bs-border-color);--bs-modal-header-border-width: var(--bs-border-width);--bs-modal-title-line-height: 1.5;--bs-modal-footer-gap: .5rem;--bs-modal-footer-bg: ;--bs-modal-footer-border-color: var(--bs-border-color);--bs-modal-footer-border-width: var(--bs-border-width);position:fixed;top:0;left:0;z-index:var(--bs-modal-zindex);display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:var(--bs-modal-margin);pointer-events:none}.modal.fade .modal-dialog{transform:translateY(-50px);transition:transform .3s ease-out}@media (prefers-reduced-motion: reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - var(--bs-modal-margin) * 2)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - var(--bs-modal-margin) * 2)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;color:var(--bs-modal-color);pointer-events:auto;background-color:var(--bs-modal-bg);background-clip:padding-box;border:var(--bs-modal-border-width) solid var(--bs-modal-border-color);border-radius:var(--bs-modal-border-radius);outline:0}.modal-backdrop{--bs-backdrop-zindex: 1050;--bs-backdrop-bg: #000;--bs-backdrop-opacity: .5;position:fixed;top:0;left:0;z-index:var(--bs-backdrop-zindex);width:100vw;height:100vh;background-color:var(--bs-backdrop-bg)}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:var(--bs-backdrop-opacity)}.modal-header{display:flex;flex-shrink:0;align-items:center;padding:var(--bs-modal-header-padding);border-bottom:var(--bs-modal-header-border-width) solid var(--bs-modal-header-border-color);border-top-left-radius:var(--bs-modal-inner-border-radius);border-top-right-radius:var(--bs-modal-inner-border-radius)}.modal-header .btn-close{padding:calc(var(--bs-modal-header-padding-y) * .5) calc(var(--bs-modal-header-padding-x) * .5);margin-top:calc(-.5 * var(--bs-modal-header-padding-y));margin-right:calc(-.5 * var(--bs-modal-header-padding-x));margin-bottom:calc(-.5 * var(--bs-modal-header-padding-y));margin-left:auto}.modal-title{margin-bottom:0;line-height:var(--bs-modal-title-line-height)}.modal-body{position:relative;flex:1 1 auto;padding:var(--bs-modal-padding)}.modal-footer{display:flex;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;padding:calc(var(--bs-modal-padding) - var(--bs-modal-footer-gap) * .5);background-color:var(--bs-modal-footer-bg);border-top:var(--bs-modal-footer-border-width) solid var(--bs-modal-footer-border-color);border-bottom-right-radius:var(--bs-modal-inner-border-radius);border-bottom-left-radius:var(--bs-modal-inner-border-radius)}.modal-footer>*{margin:calc(var(--bs-modal-footer-gap) * .5)}@media (min-width: 576px){.modal{--bs-modal-margin: 1.75rem;--bs-modal-box-shadow: var(--bs-box-shadow)}.modal-dialog{max-width:var(--bs-modal-width);margin-right:auto;margin-left:auto}.modal-sm{--bs-modal-width: 300px}}@media (min-width: 992px){.modal-lg,.modal-xl{--bs-modal-width: 800px}}@media (min-width: 1200px){.modal-xl{--bs-modal-width: 1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header,.modal-fullscreen .modal-footer{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}@media (max-width: 575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header,.modal-fullscreen-sm-down .modal-footer{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width: 767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header,.modal-fullscreen-md-down .modal-footer{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width: 991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header,.modal-fullscreen-lg-down .modal-footer{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width: 1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header,.modal-fullscreen-xl-down .modal-footer{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width: 1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header,.modal-fullscreen-xxl-down .modal-footer{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{--bs-tooltip-zindex: 1080;--bs-tooltip-max-width: 200px;--bs-tooltip-padding-x: .5rem;--bs-tooltip-padding-y: .25rem;--bs-tooltip-margin: ;--bs-tooltip-font-size: .875rem;--bs-tooltip-color: var(--bs-body-bg);--bs-tooltip-bg: var(--bs-emphasis-color);--bs-tooltip-border-radius: var(--bs-border-radius);--bs-tooltip-opacity: .9;--bs-tooltip-arrow-width: .8rem;--bs-tooltip-arrow-height: .4rem;z-index:var(--bs-tooltip-zindex);display:block;margin:var(--bs-tooltip-margin);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-tooltip-font-size);word-wrap:break-word;opacity:0}.tooltip.show{opacity:var(--bs-tooltip-opacity)}.tooltip .tooltip-arrow{display:block;width:var(--bs-tooltip-arrow-width);height:var(--bs-tooltip-arrow-height)}.tooltip .tooltip-arrow:before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-top .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow{bottom:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-top .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow:before{top:-1px;border-width:var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-top-color:var(--bs-tooltip-bg)}.bs-tooltip-end .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow{left:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-end .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow:before{right:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height) calc(var(--bs-tooltip-arrow-width) * .5) 0;border-right-color:var(--bs-tooltip-bg)}.bs-tooltip-bottom .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow{top:calc(-1 * var(--bs-tooltip-arrow-height))}.bs-tooltip-bottom .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow:before{bottom:-1px;border-width:0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-bottom-color:var(--bs-tooltip-bg)}.bs-tooltip-start .tooltip-arrow,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow{right:calc(-1 * var(--bs-tooltip-arrow-height));width:var(--bs-tooltip-arrow-height);height:var(--bs-tooltip-arrow-width)}.bs-tooltip-start .tooltip-arrow:before,.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow:before{left:-1px;border-width:calc(var(--bs-tooltip-arrow-width) * .5) 0 calc(var(--bs-tooltip-arrow-width) * .5) var(--bs-tooltip-arrow-height);border-left-color:var(--bs-tooltip-bg)}.tooltip-inner{max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);color:var(--bs-tooltip-color);text-align:center;background-color:var(--bs-tooltip-bg);border-radius:var(--bs-tooltip-border-radius)}.popover{--bs-popover-zindex: 1070;--bs-popover-max-width: 276px;--bs-popover-font-size: .875rem;--bs-popover-bg: var(--bs-body-bg);--bs-popover-border-width: var(--bs-border-width);--bs-popover-border-color: var(--bs-border-color-translucent);--bs-popover-border-radius: var(--bs-border-radius-lg);--bs-popover-inner-border-radius: calc(var(--bs-border-radius-lg) - var(--bs-border-width));--bs-popover-box-shadow: var(--bs-box-shadow);--bs-popover-header-padding-x: 1rem;--bs-popover-header-padding-y: .5rem;--bs-popover-header-font-size: 1rem;--bs-popover-header-color: inherit;--bs-popover-header-bg: var(--bs-secondary-bg);--bs-popover-body-padding-x: 1rem;--bs-popover-body-padding-y: 1rem;--bs-popover-body-color: var(--bs-body-color);--bs-popover-arrow-width: 1rem;--bs-popover-arrow-height: .5rem;--bs-popover-arrow-border: var(--bs-popover-border-color);z-index:var(--bs-popover-zindex);display:block;max-width:var(--bs-popover-max-width);font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--bs-popover-font-size);word-wrap:break-word;background-color:var(--bs-popover-bg);background-clip:padding-box;border:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-radius:var(--bs-popover-border-radius)}.popover .popover-arrow{display:block;width:var(--bs-popover-arrow-width);height:var(--bs-popover-arrow-height)}.popover .popover-arrow:before,.popover .popover-arrow:after{position:absolute;display:block;content:"";border-color:transparent;border-style:solid;border-width:0}.bs-popover-top>.popover-arrow,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow{bottom:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before,.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{border-width:var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-top>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:before{bottom:0;border-top-color:var(--bs-popover-arrow-border)}.bs-popover-top>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=top]>.popover-arrow:after{bottom:var(--bs-popover-border-width);border-top-color:var(--bs-popover-bg)}.bs-popover-end>.popover-arrow,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow{left:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before,.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height) calc(var(--bs-popover-arrow-width) * .5) 0}.bs-popover-end>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:before{left:0;border-right-color:var(--bs-popover-arrow-border)}.bs-popover-end>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=right]>.popover-arrow:after{left:var(--bs-popover-border-width);border-right-color:var(--bs-popover-bg)}.bs-popover-bottom>.popover-arrow,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow{top:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width))}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before,.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{border-width:0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-bottom>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:before{top:0;border-bottom-color:var(--bs-popover-arrow-border)}.bs-popover-bottom>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow:after{top:var(--bs-popover-border-width);border-bottom-color:var(--bs-popover-bg)}.bs-popover-bottom .popover-header:before,.bs-popover-auto[data-popper-placement^=bottom] .popover-header:before{position:absolute;top:0;left:50%;display:block;width:var(--bs-popover-arrow-width);margin-left:calc(-.5 * var(--bs-popover-arrow-width));content:"";border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-header-bg)}.bs-popover-start>.popover-arrow,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow{right:calc(-1 * (var(--bs-popover-arrow-height)) - var(--bs-popover-border-width));width:var(--bs-popover-arrow-height);height:var(--bs-popover-arrow-width)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before,.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{border-width:calc(var(--bs-popover-arrow-width) * .5) 0 calc(var(--bs-popover-arrow-width) * .5) var(--bs-popover-arrow-height)}.bs-popover-start>.popover-arrow:before,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:before{right:0;border-left-color:var(--bs-popover-arrow-border)}.bs-popover-start>.popover-arrow:after,.bs-popover-auto[data-popper-placement^=left]>.popover-arrow:after{right:var(--bs-popover-border-width);border-left-color:var(--bs-popover-bg)}.popover-header{padding:var(--bs-popover-header-padding-y) var(--bs-popover-header-padding-x);margin-bottom:0;font-size:var(--bs-popover-header-font-size);color:var(--bs-popover-header-color);background-color:var(--bs-popover-header-bg);border-bottom:var(--bs-popover-border-width) solid var(--bs-popover-border-color);border-top-left-radius:var(--bs-popover-inner-border-radius);border-top-right-radius:var(--bs-popover-inner-border-radius)}.popover-header:empty{display:none}.popover-body{padding:var(--bs-popover-body-padding-y) var(--bs-popover-body-padding-x);color:var(--bs-popover-body-color)}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner:after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){.carousel-item{transition:none}}.carousel-item.active,.carousel-item-next,.carousel-item-prev{display:block}.carousel-item-next:not(.carousel-item-start),.active.carousel-item-end{transform:translate(100%)}.carousel-item-prev:not(.carousel-item-end),.active.carousel-item-start{transform:translate(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item.active,.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){.carousel-fade .active.carousel-item-start,.carousel-fade .active.carousel-item-end{transition:none}}.carousel-control-prev,.carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;filter:var(--bs-carousel-control-icon-filter);border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){.carousel-control-prev,.carousel-control-next{transition:none}}.carousel-control-prev:hover,.carousel-control-prev:focus,.carousel-control-next:hover,.carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-prev-icon,.carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:var(--bs-carousel-indicator-active-bg);background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:var(--bs-carousel-caption-color);text-align:center}.carousel-dark{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}:root,[data-bs-theme=light]{--bs-carousel-indicator-active-bg: #fff;--bs-carousel-caption-color: #fff;--bs-carousel-control-icon-filter: }[data-bs-theme=dark]{--bs-carousel-indicator-active-bg: #000;--bs-carousel-caption-color: #000;--bs-carousel-control-icon-filter: invert(1) grayscale(100)}.spinner-grow,.spinner-border{display:inline-block;flex-shrink:0;width:var(--bs-spinner-width);height:var(--bs-spinner-height);vertical-align:var(--bs-spinner-vertical-align);border-radius:50%;animation:var(--bs-spinner-animation-speed) linear infinite var(--bs-spinner-animation-name)}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-border-width: .25em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-border;border:var(--bs-spinner-border-width) solid currentcolor;border-right-color:transparent}.spinner-border-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem;--bs-spinner-border-width: .2em}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{--bs-spinner-width: 2rem;--bs-spinner-height: 2rem;--bs-spinner-vertical-align: -.125em;--bs-spinner-animation-speed: .75s;--bs-spinner-animation-name: spinner-grow;background-color:currentcolor;opacity:0}.spinner-grow-sm{--bs-spinner-width: 1rem;--bs-spinner-height: 1rem}@media (prefers-reduced-motion: reduce){.spinner-border,.spinner-grow{--bs-spinner-animation-speed: 1.5s}}.offcanvas,.offcanvas-xxl,.offcanvas-xl,.offcanvas-lg,.offcanvas-md,.offcanvas-sm{--bs-offcanvas-zindex: 1045;--bs-offcanvas-width: 400px;--bs-offcanvas-height: 30vh;--bs-offcanvas-padding-x: 1rem;--bs-offcanvas-padding-y: 1rem;--bs-offcanvas-color: var(--bs-body-color);--bs-offcanvas-bg: var(--bs-body-bg);--bs-offcanvas-border-width: var(--bs-border-width);--bs-offcanvas-border-color: var(--bs-border-color-translucent);--bs-offcanvas-box-shadow: var(--bs-box-shadow-sm);--bs-offcanvas-transition: transform .3s ease-in-out;--bs-offcanvas-title-line-height: 1.5}@media (max-width: 575.98px){.offcanvas-sm{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 575.98px) and (prefers-reduced-motion: reduce){.offcanvas-sm{transition:none}}@media (max-width: 575.98px){.offcanvas-sm.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-sm.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-sm.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-sm.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-sm.showing,.offcanvas-sm.show:not(.hiding){transform:none}.offcanvas-sm.showing,.offcanvas-sm.hiding,.offcanvas-sm.show{visibility:visible}}@media (min-width: 576px){.offcanvas-sm{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-sm .offcanvas-header{display:none}.offcanvas-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 767.98px){.offcanvas-md{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 767.98px) and (prefers-reduced-motion: reduce){.offcanvas-md{transition:none}}@media (max-width: 767.98px){.offcanvas-md.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-md.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-md.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-md.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-md.showing,.offcanvas-md.show:not(.hiding){transform:none}.offcanvas-md.showing,.offcanvas-md.hiding,.offcanvas-md.show{visibility:visible}}@media (min-width: 768px){.offcanvas-md{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-md .offcanvas-header{display:none}.offcanvas-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 991.98px){.offcanvas-lg{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 991.98px) and (prefers-reduced-motion: reduce){.offcanvas-lg{transition:none}}@media (max-width: 991.98px){.offcanvas-lg.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-lg.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-lg.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-lg.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-lg.showing,.offcanvas-lg.show:not(.hiding){transform:none}.offcanvas-lg.showing,.offcanvas-lg.hiding,.offcanvas-lg.show{visibility:visible}}@media (min-width: 992px){.offcanvas-lg{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-lg .offcanvas-header{display:none}.offcanvas-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1199.98px){.offcanvas-xl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1199.98px) and (prefers-reduced-motion: reduce){.offcanvas-xl{transition:none}}@media (max-width: 1199.98px){.offcanvas-xl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xl.showing,.offcanvas-xl.show:not(.hiding){transform:none}.offcanvas-xl.showing,.offcanvas-xl.hiding,.offcanvas-xl.show{visibility:visible}}@media (min-width: 1200px){.offcanvas-xl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xl .offcanvas-header{display:none}.offcanvas-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}@media (max-width: 1399.98px){.offcanvas-xxl{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}}@media (max-width: 1399.98px) and (prefers-reduced-motion: reduce){.offcanvas-xxl{transition:none}}@media (max-width: 1399.98px){.offcanvas-xxl.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas-xxl.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas-xxl.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas-xxl.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas-xxl.showing,.offcanvas-xxl.show:not(.hiding){transform:none}.offcanvas-xxl.showing,.offcanvas-xxl.hiding,.offcanvas-xxl.show{visibility:visible}}@media (min-width: 1400px){.offcanvas-xxl{--bs-offcanvas-height: auto;--bs-offcanvas-border-width: 0;background-color:transparent!important}.offcanvas-xxl .offcanvas-header{display:none}.offcanvas-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible;background-color:transparent!important}}.offcanvas{position:fixed;bottom:0;z-index:var(--bs-offcanvas-zindex);display:flex;flex-direction:column;max-width:100%;color:var(--bs-offcanvas-color);visibility:hidden;background-color:var(--bs-offcanvas-bg);background-clip:padding-box;outline:0;transition:var(--bs-offcanvas-transition)}@media (prefers-reduced-motion: reduce){.offcanvas{transition:none}}.offcanvas.offcanvas-start{top:0;left:0;width:var(--bs-offcanvas-width);border-right:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(-100%)}.offcanvas.offcanvas-end{top:0;right:0;width:var(--bs-offcanvas-width);border-left:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translate(100%)}.offcanvas.offcanvas-top{top:0;right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-bottom:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(-100%)}.offcanvas.offcanvas-bottom{right:0;left:0;height:var(--bs-offcanvas-height);max-height:100%;border-top:var(--bs-offcanvas-border-width) solid var(--bs-offcanvas-border-color);transform:translateY(100%)}.offcanvas.showing,.offcanvas.show:not(.hiding){transform:none}.offcanvas.showing,.offcanvas.hiding,.offcanvas.show{visibility:visible}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x)}.offcanvas-header .btn-close{padding:calc(var(--bs-offcanvas-padding-y) * .5) calc(var(--bs-offcanvas-padding-x) * .5);margin-top:calc(-.5 * var(--bs-offcanvas-padding-y));margin-right:calc(-.5 * var(--bs-offcanvas-padding-x));margin-bottom:calc(-.5 * var(--bs-offcanvas-padding-y));margin-left:auto}.offcanvas-title{margin-bottom:0;line-height:var(--bs-offcanvas-title-line-height)}.offcanvas-body{flex-grow:1;padding:var(--bs-offcanvas-padding-y) var(--bs-offcanvas-padding-x);overflow-y:auto}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentcolor;opacity:.5}.placeholder.btn:before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{animation:placeholder-glow 2s ease-in-out infinite}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,#000c,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;animation:placeholder-wave 2s linear infinite}@keyframes placeholder-wave{to{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix:after{display:block;clear:both;content:""}.text-bg-primary{color:#fff!important;background-color:RGBA(var(--bs-primary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-secondary{color:#fff!important;background-color:RGBA(var(--bs-secondary-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-success{color:#fff!important;background-color:RGBA(var(--bs-success-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-info{color:#000!important;background-color:RGBA(var(--bs-info-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-warning{color:#000!important;background-color:RGBA(var(--bs-warning-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-danger{color:#fff!important;background-color:RGBA(var(--bs-danger-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-light{color:#000!important;background-color:RGBA(var(--bs-light-rgb),var(--bs-bg-opacity, 1))!important}.text-bg-dark{color:#fff!important;background-color:RGBA(var(--bs-dark-rgb),var(--bs-bg-opacity, 1))!important}.link-primary{color:RGBA(var(--bs-primary-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-primary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-primary:hover,.link-primary:focus{color:RGBA(10,88,202,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(10,88,202,var(--bs-link-underline-opacity, 1))!important}.link-secondary{color:RGBA(var(--bs-secondary-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-secondary-rgb),var(--bs-link-underline-opacity, 1))!important}.link-secondary:hover,.link-secondary:focus{color:RGBA(86,94,100,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(86,94,100,var(--bs-link-underline-opacity, 1))!important}.link-success{color:RGBA(var(--bs-success-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-success-rgb),var(--bs-link-underline-opacity, 1))!important}.link-success:hover,.link-success:focus{color:RGBA(20,108,67,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(20,108,67,var(--bs-link-underline-opacity, 1))!important}.link-info{color:RGBA(var(--bs-info-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-info-rgb),var(--bs-link-underline-opacity, 1))!important}.link-info:hover,.link-info:focus{color:RGBA(61,213,243,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(61,213,243,var(--bs-link-underline-opacity, 1))!important}.link-warning{color:RGBA(var(--bs-warning-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-warning-rgb),var(--bs-link-underline-opacity, 1))!important}.link-warning:hover,.link-warning:focus{color:RGBA(255,205,57,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(255,205,57,var(--bs-link-underline-opacity, 1))!important}.link-danger{color:RGBA(var(--bs-danger-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-danger-rgb),var(--bs-link-underline-opacity, 1))!important}.link-danger:hover,.link-danger:focus{color:RGBA(176,42,55,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(176,42,55,var(--bs-link-underline-opacity, 1))!important}.link-light{color:RGBA(var(--bs-light-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-light-rgb),var(--bs-link-underline-opacity, 1))!important}.link-light:hover,.link-light:focus{color:RGBA(249,250,251,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(249,250,251,var(--bs-link-underline-opacity, 1))!important}.link-dark{color:RGBA(var(--bs-dark-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-dark-rgb),var(--bs-link-underline-opacity, 1))!important}.link-dark:hover,.link-dark:focus{color:RGBA(26,30,33,var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(26,30,33,var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, 1))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-body-emphasis:hover,.link-body-emphasis:focus{color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-opacity, .75))!important;-webkit-text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important;text-decoration-color:RGBA(var(--bs-emphasis-color-rgb),var(--bs-link-underline-opacity, .75))!important}.focus-ring:focus{outline:0;box-shadow:var(--bs-focus-ring-x, 0) var(--bs-focus-ring-y, 0) var(--bs-focus-ring-blur, 0) var(--bs-focus-ring-width) var(--bs-focus-ring-color)}.icon-link{display:inline-flex;gap:.375rem;align-items:center;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-opacity, .5));text-underline-offset:.25em;-webkit-backface-visibility:hidden;backface-visibility:hidden}.icon-link>.bi{flex-shrink:0;width:1em;height:1em;fill:currentcolor;transition:.2s ease-in-out transform}@media (prefers-reduced-motion: reduce){.icon-link>.bi{transition:none}}.icon-link-hover:hover>.bi,.icon-link-hover:focus-visible>.bi{transform:var(--bs-icon-link-transform, translate3d(.25em, 0, 0))}.ratio{position:relative;width:100%}.ratio:before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio: 100%}.ratio-4x3{--bs-aspect-ratio: 75%}.ratio-16x9{--bs-aspect-ratio: 56.25%}.ratio-21x9{--bs-aspect-ratio: 42.8571428571%}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}@media (min-width: 576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-sm-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-md-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-lg-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}@media (min-width: 1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}.sticky-xxl-bottom{position:-webkit-sticky;position:sticky;bottom:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.visually-hidden *,.visually-hidden-focusable:not(:focus):not(:focus-within) *{overflow:hidden!important}.stretched-link:after{position:absolute;inset:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:var(--bs-border-width);min-height:1em;background-color:currentcolor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.object-fit-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-none{-o-object-fit:none!important;object-fit:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-visible{overflow-x:visible!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-visible{overflow-y:visible!important}.overflow-y-scroll{overflow-y:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-inline-grid{display:inline-grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:var(--bs-box-shadow)!important}.shadow-sm{box-shadow:var(--bs-box-shadow-sm)!important}.shadow-lg{box-shadow:var(--bs-box-shadow-lg)!important}.shadow-none{box-shadow:none!important}.focus-ring-primary{--bs-focus-ring-color: rgba(var(--bs-primary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-secondary{--bs-focus-ring-color: rgba(var(--bs-secondary-rgb), var(--bs-focus-ring-opacity))}.focus-ring-success{--bs-focus-ring-color: rgba(var(--bs-success-rgb), var(--bs-focus-ring-opacity))}.focus-ring-info{--bs-focus-ring-color: rgba(var(--bs-info-rgb), var(--bs-focus-ring-opacity))}.focus-ring-warning{--bs-focus-ring-color: rgba(var(--bs-warning-rgb), var(--bs-focus-ring-opacity))}.focus-ring-danger{--bs-focus-ring-color: rgba(var(--bs-danger-rgb), var(--bs-focus-ring-opacity))}.focus-ring-light{--bs-focus-ring-color: rgba(var(--bs-light-rgb), var(--bs-focus-ring-opacity))}.focus-ring-dark{--bs-focus-ring-color: rgba(var(--bs-dark-rgb), var(--bs-focus-ring-opacity))}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translate(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-0{border:0!important}.border-top{border-top:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-top-0{border-top:0!important}.border-end{border-right:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:var(--bs-border-width) var(--bs-border-style) var(--bs-border-color)!important}.border-start-0{border-left:0!important}.border-primary{--bs-border-opacity: 1;border-color:rgba(var(--bs-primary-rgb),var(--bs-border-opacity))!important}.border-secondary{--bs-border-opacity: 1;border-color:rgba(var(--bs-secondary-rgb),var(--bs-border-opacity))!important}.border-success{--bs-border-opacity: 1;border-color:rgba(var(--bs-success-rgb),var(--bs-border-opacity))!important}.border-info{--bs-border-opacity: 1;border-color:rgba(var(--bs-info-rgb),var(--bs-border-opacity))!important}.border-warning{--bs-border-opacity: 1;border-color:rgba(var(--bs-warning-rgb),var(--bs-border-opacity))!important}.border-danger{--bs-border-opacity: 1;border-color:rgba(var(--bs-danger-rgb),var(--bs-border-opacity))!important}.border-light{--bs-border-opacity: 1;border-color:rgba(var(--bs-light-rgb),var(--bs-border-opacity))!important}.border-dark{--bs-border-opacity: 1;border-color:rgba(var(--bs-dark-rgb),var(--bs-border-opacity))!important}.border-black{--bs-border-opacity: 1;border-color:rgba(var(--bs-black-rgb),var(--bs-border-opacity))!important}.border-white{--bs-border-opacity: 1;border-color:rgba(var(--bs-white-rgb),var(--bs-border-opacity))!important}.border-primary-subtle{border-color:var(--bs-primary-border-subtle)!important}.border-secondary-subtle{border-color:var(--bs-secondary-border-subtle)!important}.border-success-subtle{border-color:var(--bs-success-border-subtle)!important}.border-info-subtle{border-color:var(--bs-info-border-subtle)!important}.border-warning-subtle{border-color:var(--bs-warning-border-subtle)!important}.border-danger-subtle{border-color:var(--bs-danger-border-subtle)!important}.border-light-subtle{border-color:var(--bs-light-border-subtle)!important}.border-dark-subtle{border-color:var(--bs-dark-border-subtle)!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.border-opacity-10{--bs-border-opacity: .1}.border-opacity-25{--bs-border-opacity: .25}.border-opacity-50{--bs-border-opacity: .5}.border-opacity-75{--bs-border-opacity: .75}.border-opacity-100{--bs-border-opacity: 1}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.row-gap-0{row-gap:0!important}.row-gap-1{row-gap:.25rem!important}.row-gap-2{row-gap:.5rem!important}.row-gap-3{row-gap:1rem!important}.row-gap-4{row-gap:1.5rem!important}.row-gap-5{row-gap:3rem!important}.column-gap-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-lighter{font-weight:lighter!important}.fw-light{font-weight:300!important}.fw-normal{font-weight:400!important}.fw-medium{font-weight:500!important}.fw-semibold{font-weight:600!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity: 1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity: 1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity: 1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity: 1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity: 1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity: 1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity: 1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity: 1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity: 1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity: 1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity: 1;color:rgba(var(--bs-body-color-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-black-50{--bs-text-opacity: 1;color:#00000080!important}.text-white-50{--bs-text-opacity: 1;color:#ffffff80!important}.text-body-secondary{--bs-text-opacity: 1;color:var(--bs-secondary-color)!important}.text-body-tertiary{--bs-text-opacity: 1;color:var(--bs-tertiary-color)!important}.text-body-emphasis{--bs-text-opacity: 1;color:var(--bs-emphasis-color)!important}.text-reset{--bs-text-opacity: 1;color:inherit!important}.text-opacity-25{--bs-text-opacity: .25}.text-opacity-50{--bs-text-opacity: .5}.text-opacity-75{--bs-text-opacity: .75}.text-opacity-100{--bs-text-opacity: 1}.text-primary-emphasis{color:var(--bs-primary-text-emphasis)!important}.text-secondary-emphasis{color:var(--bs-secondary-text-emphasis)!important}.text-success-emphasis{color:var(--bs-success-text-emphasis)!important}.text-info-emphasis{color:var(--bs-info-text-emphasis)!important}.text-warning-emphasis{color:var(--bs-warning-text-emphasis)!important}.text-danger-emphasis{color:var(--bs-danger-text-emphasis)!important}.text-light-emphasis{color:var(--bs-light-text-emphasis)!important}.text-dark-emphasis{color:var(--bs-dark-text-emphasis)!important}.link-opacity-10,.link-opacity-10-hover:hover{--bs-link-opacity: .1}.link-opacity-25,.link-opacity-25-hover:hover{--bs-link-opacity: .25}.link-opacity-50,.link-opacity-50-hover:hover{--bs-link-opacity: .5}.link-opacity-75,.link-opacity-75-hover:hover{--bs-link-opacity: .75}.link-opacity-100,.link-opacity-100-hover:hover{--bs-link-opacity: 1}.link-offset-1,.link-offset-1-hover:hover{text-underline-offset:.125em!important}.link-offset-2,.link-offset-2-hover:hover{text-underline-offset:.25em!important}.link-offset-3,.link-offset-3-hover:hover{text-underline-offset:.375em!important}.link-underline-primary{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-primary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-secondary{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-secondary-rgb),var(--bs-link-underline-opacity))!important}.link-underline-success{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-success-rgb),var(--bs-link-underline-opacity))!important}.link-underline-info{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-info-rgb),var(--bs-link-underline-opacity))!important}.link-underline-warning{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-warning-rgb),var(--bs-link-underline-opacity))!important}.link-underline-danger{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-danger-rgb),var(--bs-link-underline-opacity))!important}.link-underline-light{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-light-rgb),var(--bs-link-underline-opacity))!important}.link-underline-dark{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important;text-decoration-color:rgba(var(--bs-dark-rgb),var(--bs-link-underline-opacity))!important}.link-underline{--bs-link-underline-opacity: 1;-webkit-text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important;text-decoration-color:rgba(var(--bs-link-color-rgb),var(--bs-link-underline-opacity, 1))!important}.link-underline-opacity-0,.link-underline-opacity-0-hover:hover{--bs-link-underline-opacity: 0}.link-underline-opacity-10,.link-underline-opacity-10-hover:hover{--bs-link-underline-opacity: .1}.link-underline-opacity-25,.link-underline-opacity-25-hover:hover{--bs-link-underline-opacity: .25}.link-underline-opacity-50,.link-underline-opacity-50-hover:hover{--bs-link-underline-opacity: .5}.link-underline-opacity-75,.link-underline-opacity-75-hover:hover{--bs-link-underline-opacity: .75}.link-underline-opacity-100,.link-underline-opacity-100-hover:hover{--bs-link-underline-opacity: 1}.bg-primary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity: 1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity: 1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity: 1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity: 1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity: 1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity: 1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity: 1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity: 1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity: 1;background-color:rgba(var(--bs-body-bg-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity: 1;background-color:transparent!important}.bg-body-secondary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-secondary-bg-rgb),var(--bs-bg-opacity))!important}.bg-body-tertiary{--bs-bg-opacity: 1;background-color:rgba(var(--bs-tertiary-bg-rgb),var(--bs-bg-opacity))!important}.bg-opacity-10{--bs-bg-opacity: .1}.bg-opacity-25{--bs-bg-opacity: .25}.bg-opacity-50{--bs-bg-opacity: .5}.bg-opacity-75{--bs-bg-opacity: .75}.bg-opacity-100{--bs-bg-opacity: 1}.bg-primary-subtle{background-color:var(--bs-primary-bg-subtle)!important}.bg-secondary-subtle{background-color:var(--bs-secondary-bg-subtle)!important}.bg-success-subtle{background-color:var(--bs-success-bg-subtle)!important}.bg-info-subtle{background-color:var(--bs-info-bg-subtle)!important}.bg-warning-subtle{background-color:var(--bs-warning-bg-subtle)!important}.bg-danger-subtle{background-color:var(--bs-danger-bg-subtle)!important}.bg-light-subtle{background-color:var(--bs-light-bg-subtle)!important}.bg-dark-subtle{background-color:var(--bs-dark-bg-subtle)!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:var(--bs-border-radius)!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:var(--bs-border-radius-sm)!important}.rounded-2{border-radius:var(--bs-border-radius)!important}.rounded-3{border-radius:var(--bs-border-radius-lg)!important}.rounded-4{border-radius:var(--bs-border-radius-xl)!important}.rounded-5{border-radius:var(--bs-border-radius-xxl)!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:var(--bs-border-radius-pill)!important}.rounded-top{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-top-1{border-top-left-radius:var(--bs-border-radius-sm)!important;border-top-right-radius:var(--bs-border-radius-sm)!important}.rounded-top-2{border-top-left-radius:var(--bs-border-radius)!important;border-top-right-radius:var(--bs-border-radius)!important}.rounded-top-3{border-top-left-radius:var(--bs-border-radius-lg)!important;border-top-right-radius:var(--bs-border-radius-lg)!important}.rounded-top-4{border-top-left-radius:var(--bs-border-radius-xl)!important;border-top-right-radius:var(--bs-border-radius-xl)!important}.rounded-top-5{border-top-left-radius:var(--bs-border-radius-xxl)!important;border-top-right-radius:var(--bs-border-radius-xxl)!important}.rounded-top-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-top-pill{border-top-left-radius:var(--bs-border-radius-pill)!important;border-top-right-radius:var(--bs-border-radius-pill)!important}.rounded-end{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.rounded-end-1{border-top-right-radius:var(--bs-border-radius-sm)!important;border-bottom-right-radius:var(--bs-border-radius-sm)!important}.rounded-end-2{border-top-right-radius:var(--bs-border-radius)!important;border-bottom-right-radius:var(--bs-border-radius)!important}.rounded-end-3{border-top-right-radius:var(--bs-border-radius-lg)!important;border-bottom-right-radius:var(--bs-border-radius-lg)!important}.rounded-end-4{border-top-right-radius:var(--bs-border-radius-xl)!important;border-bottom-right-radius:var(--bs-border-radius-xl)!important}.rounded-end-5{border-top-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-right-radius:var(--bs-border-radius-xxl)!important}.rounded-end-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-end-pill{border-top-right-radius:var(--bs-border-radius-pill)!important;border-bottom-right-radius:var(--bs-border-radius-pill)!important}.rounded-bottom{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-0{border-bottom-right-radius:0!important;border-bottom-left-radius:0!important}.rounded-bottom-1{border-bottom-right-radius:var(--bs-border-radius-sm)!important;border-bottom-left-radius:var(--bs-border-radius-sm)!important}.rounded-bottom-2{border-bottom-right-radius:var(--bs-border-radius)!important;border-bottom-left-radius:var(--bs-border-radius)!important}.rounded-bottom-3{border-bottom-right-radius:var(--bs-border-radius-lg)!important;border-bottom-left-radius:var(--bs-border-radius-lg)!important}.rounded-bottom-4{border-bottom-right-radius:var(--bs-border-radius-xl)!important;border-bottom-left-radius:var(--bs-border-radius-xl)!important}.rounded-bottom-5{border-bottom-right-radius:var(--bs-border-radius-xxl)!important;border-bottom-left-radius:var(--bs-border-radius-xxl)!important}.rounded-bottom-circle{border-bottom-right-radius:50%!important;border-bottom-left-radius:50%!important}.rounded-bottom-pill{border-bottom-right-radius:var(--bs-border-radius-pill)!important;border-bottom-left-radius:var(--bs-border-radius-pill)!important}.rounded-start{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-0{border-bottom-left-radius:0!important;border-top-left-radius:0!important}.rounded-start-1{border-bottom-left-radius:var(--bs-border-radius-sm)!important;border-top-left-radius:var(--bs-border-radius-sm)!important}.rounded-start-2{border-bottom-left-radius:var(--bs-border-radius)!important;border-top-left-radius:var(--bs-border-radius)!important}.rounded-start-3{border-bottom-left-radius:var(--bs-border-radius-lg)!important;border-top-left-radius:var(--bs-border-radius-lg)!important}.rounded-start-4{border-bottom-left-radius:var(--bs-border-radius-xl)!important;border-top-left-radius:var(--bs-border-radius-xl)!important}.rounded-start-5{border-bottom-left-radius:var(--bs-border-radius-xxl)!important;border-top-left-radius:var(--bs-border-radius-xxl)!important}.rounded-start-circle{border-bottom-left-radius:50%!important;border-top-left-radius:50%!important}.rounded-start-pill{border-bottom-left-radius:var(--bs-border-radius-pill)!important;border-top-left-radius:var(--bs-border-radius-pill)!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}.z-n1{z-index:-1!important}.z-0{z-index:0!important}.z-1{z-index:1!important}.z-2{z-index:2!important}.z-3{z-index:3!important}@media (min-width: 576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.object-fit-sm-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-sm-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-sm-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-sm-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-sm-none{-o-object-fit:none!important;object-fit:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-inline-grid{display:inline-grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.row-gap-sm-0{row-gap:0!important}.row-gap-sm-1{row-gap:.25rem!important}.row-gap-sm-2{row-gap:.5rem!important}.row-gap-sm-3{row-gap:1rem!important}.row-gap-sm-4{row-gap:1.5rem!important}.row-gap-sm-5{row-gap:3rem!important}.column-gap-sm-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-sm-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-sm-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-sm-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-sm-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-sm-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width: 768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.object-fit-md-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-md-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-md-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-md-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-md-none{-o-object-fit:none!important;object-fit:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-inline-grid{display:inline-grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.row-gap-md-0{row-gap:0!important}.row-gap-md-1{row-gap:.25rem!important}.row-gap-md-2{row-gap:.5rem!important}.row-gap-md-3{row-gap:1rem!important}.row-gap-md-4{row-gap:1.5rem!important}.row-gap-md-5{row-gap:3rem!important}.column-gap-md-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-md-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-md-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-md-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-md-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-md-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width: 992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.object-fit-lg-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-lg-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-lg-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-lg-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-lg-none{-o-object-fit:none!important;object-fit:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-inline-grid{display:inline-grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.row-gap-lg-0{row-gap:0!important}.row-gap-lg-1{row-gap:.25rem!important}.row-gap-lg-2{row-gap:.5rem!important}.row-gap-lg-3{row-gap:1rem!important}.row-gap-lg-4{row-gap:1.5rem!important}.row-gap-lg-5{row-gap:3rem!important}.column-gap-lg-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-lg-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-lg-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-lg-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-lg-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-lg-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width: 1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.object-fit-xl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xl-none{-o-object-fit:none!important;object-fit:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-inline-grid{display:inline-grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.row-gap-xl-0{row-gap:0!important}.row-gap-xl-1{row-gap:.25rem!important}.row-gap-xl-2{row-gap:.5rem!important}.row-gap-xl-3{row-gap:1rem!important}.row-gap-xl-4{row-gap:1.5rem!important}.row-gap-xl-5{row-gap:3rem!important}.column-gap-xl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width: 1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.object-fit-xxl-contain{-o-object-fit:contain!important;object-fit:contain!important}.object-fit-xxl-cover{-o-object-fit:cover!important;object-fit:cover!important}.object-fit-xxl-fill{-o-object-fit:fill!important;object-fit:fill!important}.object-fit-xxl-scale{-o-object-fit:scale-down!important;object-fit:scale-down!important}.object-fit-xxl-none{-o-object-fit:none!important;object-fit:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-inline-grid{display:inline-grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.row-gap-xxl-0{row-gap:0!important}.row-gap-xxl-1{row-gap:.25rem!important}.row-gap-xxl-2{row-gap:.5rem!important}.row-gap-xxl-3{row-gap:1rem!important}.row-gap-xxl-4{row-gap:1.5rem!important}.row-gap-xxl-5{row-gap:3rem!important}.column-gap-xxl-0{-moz-column-gap:0!important;column-gap:0!important}.column-gap-xxl-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.column-gap-xxl-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.column-gap-xxl-3{-moz-column-gap:1rem!important;column-gap:1rem!important}.column-gap-xxl-4{-moz-column-gap:1.5rem!important;column-gap:1.5rem!important}.column-gap-xxl-5{-moz-column-gap:3rem!important;column-gap:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width: 1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-inline-grid{display:inline-grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}footer{color:#bcc6c2;font-size:14px;font-weight:400;margin-top:100px;text-align:left;text-align:center;width:100%;background-color:#fff;position:fixed;bottom:0;border-top:1px solid #ddd;box-shadow:0 -10px 16px #f2f6f7;padding-top:7px;z-index:999}footer .row{display:flex;justify-content:space-between}footer span{padding-left:0;padding-right:32px}footer span.connected-status{color:#000;padding-right:0}footer span.newscversion{padding-right:0}.versionnumber,footer span.monitoring-connected,footer span.monitoring-connected span{padding-right:0}.footer .container{width:100%}footer span{color:#777f7f;display:inline-block;padding:0 8px}footer a{font-weight:400}footer a:hover{font-weight:400}@media (max-width: 1550px){footer{font-size:12px}}.connectivity-status div,.connectivity-status span,.connectivity-status span span{display:inline-block;color:#777f7f}.connectivity-status i,.connectivity-status div.pa-connection-success,.connectivity-status div.pa-connection-failed{width:10px;height:10px;border-radius:50%}.connectivity-status .connection-failed{color:#ce4844}.connectivity-status .pa-connection-failed{background:#ce4844}.connectivity-status .pa-connection-success{background:#00c468}.connectivity-status .secondary{display:none}@media (min-width: 960px){.connectivity-status .secondary{display:inline-block}}.trialLicenseBar{background-color:#b22222;color:#fff}.nav-item.active{border-bottom:3px solid #181919;color:#181919}.nav-item{padding-bottom:10px;margin-bottom:0}.nav-item a{color:var(--sp-blue);cursor:pointer;font-size:16px}h5.nav-item{color:#929e9e;display:inline-block!important;font-size:14px;font-weight:700;margin:0 30px 0 0;text-transform:uppercase}.box{box-shadow:none;margin:0;background-color:#fff;border-top:1px solid #eee;border-right:1px solid #fff;border-bottom:1px solid #eee;border-left:1px solid #fff;margin:.5rem 0 1rem;margin-bottom:5px;padding:20px}.box-no-click{background:none;border-bottom:1px solid #ced6d3;border-left:none;border-right:none;cursor:default}.no-side-padding{padding-right:0;padding-left:0}.tabs{border-bottom:1px solid #e6e6e6;padding:0;margin-bottom:-1px}.tabs h5{display:inline;padding-bottom:10px;margin-bottom:0}.tabs h5 a:hover{text-decoration:none}.tabs h5.active{border-bottom:3px solid #181919;color:#181919}.tabs h5.active a{color:#181919;text-decoration:none}.tabs a{color:var(--sp-blue);cursor:pointer;font-size:16px}.tabs a:hover{color:#00729c}.tabs h5.active>a:hover{color:#181919;cursor:default;text-decoration:none}.tabs h5.disabled>a{color:#aaa;cursor:default;text-decoration:none}.tabs h5.disabled>a:hover{cursor:not-allowed}.dropdown-menu{border-radius:4px;font-size:14px;font-weight:100;text-align:left;list-style:none}.dropdown-menu>span>li>button{border:none;background:none}.dropdown-menu>span>li>button,.dropdown-menu>li>button,.dropdown-menu>li>a,.dropdown-menu>span>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}ul.dropdown-menu>span>li>a>span{color:#aaa}.dropdown-menu>span>li>a:hover,.dropdown-menu>span>li>a:focus,.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-menu>span>li>button:hover,.dropdown-menu>span>li>button:focus,.dropdown-menu>li>button:hover,.dropdown-menu>li>button:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.msg-list-dropdown{margin:1px 0 0!important;padding-right:0}.msg-group-menu{margin:21px 0 0 6px;float:right;padding-top:12px}.msg-group-menu>.control-label{float:none}.btn.sp-btn-menu{padding-left:16px;background:none;border:none;color:var(--sp-blue);padding-right:0}.sp-btn-menu:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline}.btn-toolbar>.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.Vue-Toastification__toast{border-radius:5px;width:100%;height:100%;padding:12px 12px 24px 15px;color:#fff}.Vue-Toastification__toast-component-body{flex:1;margin-top:15px}.Vue-Toastification__toast p{margin-bottom:0}.Vue-Toastification__toast--default.vue-toast{background-color:#030303}.Vue-Toastification__toast--success.vue-toast{background-color:#00c468}.Vue-Toastification__toast--error.vue-toast{background-color:#ce4844}.Vue-Toastification__toast--info.vue-toast{background-color:#1b809e}.Vue-Toastification__toast--warning.vue-toast{background-color:#f3bc52}.Vue-Toastification__fade-leave-active{height:auto!important}.Vue-Toastification__icon{vertical-align:top;align-items:top;margin:18px 10px auto 0;color:#fff}.toast-close-button{vertical-align:top;height:100%;padding-left:0;color:#fff}@keyframes fadeInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-container{width:400px;padding-bottom:24px;padding-right:0;position:fixed}.toast-container>:not(:last-child){margin-bottom:1rem}.toast-message a.btn:hover{opacity:.85;text-decoration:none}.toast-message a{color:navy}.toast-message a:hover{color:navy;text-decoration:underline}.toast-message a.btn.btn-light{margin-top:16px;margin-left:10px;color:#000;border:1px solid #000;background-color:#0000}.toast-message a.btn.btn-light:hover{background-color:#0000001a;text-decoration:none}.toast-message a.btn.btn-warning{margin-top:16px;color:#f3bc52;border:1px solid #000;background-color:#000}.toast-message a.btn.btn-error{margin-top:16px;color:#ce4844;border:1px solid #000;background-color:#000}.toast-error a.btn.btn-default{color:#bd362f;padding-right:20px;padding-left:20px;border:none;margin-top:16px}.toast-message a.btn.btn-info{margin-top:16px;color:#1b809e;border:1px solid #000;background-color:#000}.toast-message a.btn.btn-success{margin-top:16px;color:#00c468;border:1px solid #000;background-color:#000}.Vue-Toastification__toast--default{color:#fff}.toast-default a.btn.btn-default{margin-top:16px;color:#000;border:1px solid #fff;background-color:#fff}.toast-default a.btn.btn-light{margin-top:16px;margin-left:10px;color:#fff;border:1px solid #fff;background-color:#fff0}.toast-default a.btn.btn-light:hover{background-color:#ffffff1a;text-decoration:none}.toast-default a{color:var(--sp-blue)}.toast-default a:hover{color:var(--sp-blue);text-decoration:underline}.Vue-Toastification__toast--default .toast-close-button{color:#fff;opacity:.5}.Vue-Toastification__toast--default .toast-close-button:hover{color:#fff;opacity:.8}.Vue-Toastification__toast--default .Vue-Toastification__icon{color:#fff}.pagination button.active,.pagination .active>span,.pagination button.active:hover,.pagination .active>span:hover,.pagination button.active:focus,.pagination .active>span:focus{background-color:var(--sp-blue);border-color:#ddd;color:var(--bs-pagination-active-color);outline:none;box-shadow:none}.pagination{--bs-link-color: #00729c;--bs-pagination-font-size: 14px}.pagination{margin:1.5em}.pagination>li>button:hover,.pagination>li>span:hover,.pagination>li>button:focus,.pagination>li>span:focus{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd;outline:none;box-shadow:none}.pagination .dropdown button:hover{background:none;border:none;color:var(--sp-blue);text-decoration:underline}:root{--bs-btn-hover-color: #333;--bs-btn-hover-bg: #e6e6e6;--bs-btn-hover-border-color: #adadad;--monitoring-queue-length: #ea7e00;--monitoring-queue-length-light: #eaddce;--monitoring-throughput: #176397;--monitoring-throughput-light: #cadce8;--monitoring-retries: #cc1252;--monitoring-retries-light: #e9c4d1;--monitoring-processing-time: #258135;--monitoring-processing-time-light: #bee6c5;--monitoring-critical-time: #2700cb;--monitoring-critical-time-light: #c4bce5;--sp-blue: #00a3c4;--info-icon: #0d6efd;--reduced-emphasis: #929e9e;--fa-width: auto}body{padding-top:0;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;background-color:#f2f6f7!important}#app{display:flex;flex-direction:column;height:100vh;min-width:930px}.fa{color:#929e9e}.badge.badge-important{background-color:#ce4844;background-image:none;border:none}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.container{width:92%;max-width:inherit;padding:0}.container-fluid{padding-left:0;padding-right:0}#main-content{padding-top:40px;padding-bottom:40px;overflow:auto;flex:1}h1{font-size:30px;font-weight:700;margin:0 0 32px}h3{font-size:20px;font-weight:700}h4{font-size:18px}h5{color:#929e9e;display:inline-block!important;font-size:14px;font-weight:700;margin:0 30px 14px 0;text-transform:uppercase}h6{font-size:18px;font-weight:700;color:#181919}h6 a:hover{cursor:pointer}a{text-decoration:none;color:var(--sp-blue);outline:none;border:none}a:hover{color:var(--sp-blue);text-decoration:underline}body{padding-top:0}span.connection-successful,span.connection-successful i{color:#00c468!important}span.connection-failed,span.connection-failed i,.failed-validation,.failed-validation i{color:#ce4844!important}.failed-validation{margin-left:5px}span.connection-test{position:relative;top:14px;left:10px;text-transform:uppercase;font-weight:700;color:#000}form .connection h3{margin-bottom:16px}form .connection .form-group{padding-left:0}.connection:nth-child(2) h3{margin-top:40px}form .connection .form-group input{font-size:16px;height:44px}.form-group{margin-bottom:15px}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label-info,.badge-info{background-color:#1b809e;border-color:#1b809e}.label-warning,.badge-warning{background-color:#aa6708;border-color:#aa6708}.label-important,.badge-important{background-color:#fa603d;border-color:#fa5833}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px #00000013}.form-control{width:100%!important;font-size:14px}.btn-default{padding:8px 16px;color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn.btn-default.disabled{opacity:.4}.btn.btn-default.disabled:hover{border-color:var(--sp-blue)}.btn.btn-primary{padding:8px 16px;background-color:var(--sp-blue);border-color:#0686aa;color:#fff}.btn-primary:hover{background-color:#0db3c8;border-color:var(--sp-blue);color:#fff}.btn-primary i{color:#fff;font-size:12px}.btn-secondary{background-color:#fff;color:var(--sp-blue);border-color:var(--sp-blue)}.btn-secondary:hover{color:var(--sp-blue);border-color:var(--sp-blue);background-color:#fff;opacity:.7}.btn-secondary.disabled{border-color:var(--sp-blue)}.row{margin-right:0;margin-left:0}.danger{color:#ce4844!important;font-weight:700!important}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}input.check-label{margin:4px 6px 0 0;float:left}.btn{font-size:14px}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.control-label{float:left;padding-top:7.5px;margin-right:-10px}.btn-toolbar{padding:12px 0 0;margin-left:0}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group,.action-btns .btn{margin-left:0;margin-right:5px}.metadata .label-important{border-radius:3px;color:#fff;font-size:13px;font-weight:700;margin-right:20px}.metadata>.btn-sm>i{color:var(--sp-blue)}.metadata:first-child{padding-left:0}span.metadata{display:inline-block;padding:0 20px 2px 0;color:#777f7f}span.metadata.metadata-link i.fa{color:var(--sp-blue)}.metadata>.in-progress{font-style:italic;color:#fff}.metadata-label{margin-right:24px;position:relative;top:-1px}.metadata>.metadata-label{padding:6px 10px}.btn-xs,.btn-group-xs>.btn{border-radius:3px}.btn-retry-dismiss{position:relative;height:28px;width:74px;top:-2px;left:11px;line-height:1}.btn.btn-retry-dismiss{border-radius:4px;padding:8px 16px}.btn.btn-xs{font-size:12px}.btn.disabled,.btn[disabled],fieldset[disabled]{color:#333;background-color:#e6e6e6;border-color:#adadad;pointer-events:all}.btn.disabled:hover,.btn[disabled]:hover,fieldset[disabled]:hover{cursor:not-allowed}.box-group:hover{background-color:#edf6f7;border:1px solid var(--sp-blue);cursor:pointer}.box-group{border-top:1px solid transparent;border-bottom:1px solid #eee;padding:15px 40px}.box-container{padding:0;background-color:#fff}.box-container .list-section .col-12.form-group{margin-bottom:0}.select-all{width:127px}.group-message-count,h3.group-message-count{color:#a8b3b1;font-size:16px;margin:4px 0 12px;display:block}.group-title{display:block;font-size:30px;margin:10px 0 0}h2.group-title,h3.group-title{font-weight:700;line-height:28px}div.alert.alert-warning strong{text-transform:uppercase}.sticky-warning.alert.alert-warning,.alert.alert-warning,.alert.alert-danger{font-size:16px;margin:25px 0 0;height:unset}.fake-link{color:var(--sp-blue)!important;text-decoration:none!important}.tooltip{font-size:12px}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} diff --git a/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js b/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js new file mode 100644 index 0000000000..4911d27690 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js @@ -0,0 +1,564 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./EndpointInstances-CHxxJzJ9.js","./LastHeartbeat.vue_vue_type_script_setup_true_lang-UPMrHroj.js","./OnOffSwitch-CICGC8TS.js","./OnOffSwitch-yDbBTf0a.css","./EndpointInstances-DsDaoxL9.css","./UnhealthyEndpoints-D9RSiqxE.js","./HeartbeatsList-BQfOAc76.js","./HeartbeatsList-B2qXJyQY.css","./HealthyEndpoints-DOFa-eMD.js","./HeartbeatConfiguration-CC5Ux6W_.js","./HeartbeatConfiguration-SfJKQ15w.css","./FailedMessageGroups-Bhk9iJUQ.js","./messageGroupClient-MAkYdcH-.js","./OrderBy-Bnnuz_3H.js","./OrderBy-DU841xGD.css","./FailedMessageGroups-DUpcj7S6.css","./FailedMessages-CjUU1kVn.js","./MessageList-Crzvyqel.js","./MessageList-BVa8WCK7.css","./MessageStore-TKRBN2N2.js","./DeletedMessageGroups-BAQ0AfoJ.js","./MetadataItem-CGsZJtRl.js","./MetadataItem-DN99PeIG.css","./DeletedMessageGroups-Db-93Q4_.css","./DeletedMessages-DtYZBHSl.js","./DeletedMessages-CsEvcZRt.css","./PendingRetries-DOXP1zqO.js","./PendingRetries-DCNPm-hn.css","./MessageView-OH0ESeUy.js","./CodeEditor-tk58yQKj.js","./CodeEditor-aAfC1_1i.css","./MessageView-D2wqOVrV.css","./EndpointDetails-Dtkn0G1f.js","./EndpointDetails-K56jytJD.css","./EndpointsView-FDgb5e07.js","./userIndicatorMapper-CH8_AcCf.js","./DetectedEndpointsView-BQXpsrAA.js","./DetectedListView-xcFbL_bi.js","./DropDown-BS-2gDTG.js","./DropDown-THVkZnRN.css","./DetectedListView-Bu_kDOke.css","./DetectedEndpointsView-BUJX0h-6.css","./DetectedBrokerQueuesView-56ONzp-e.js","./DetectedBrokerQueuesView-95Iu1-qH.css","./PlatformLicense-DPZXy5BJ.js","./PlatformLicense-CjCpCyyD.css","./MassTransitConnector-DTmCIuZW.js","./MassTransitConnector-MVnKaG5d.css","./HealthCheckNotifications-DxnGQy31.js","./HealthCheckNotifications-CdYq7EGf.css","./RetryRedirects-DNdEUAMz.js","./RetryRedirects-CvLwo3th.css","./PlatformConnections-B3qHhD6f.js","./PlatformConnections-CBsejo1J.css","./EndpointConnection-DyxHhuiM.js","./EndpointConnection-DTPPrqX8.css","./SetupView-CUhpZfX2.js","./SetupView-T5TFNQfy.css","./ConnectionSetupView-D5oAgYeV.js","./ConnectionSetupView-BPgGivlX.css","./DiagnosticsView-D55zsMZT.js","./DiagnosticsView-DrEl_R4b.css"])))=>i.map(i=>d[i]); +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const s of a)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(a){const s={};return a.integrity&&(s.integrity=a.integrity),a.referrerPolicy&&(s.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?s.credentials="include":a.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(a){if(a.ep)return;a.ep=!0;const s=n(a);fetch(a.href,s)}})();const _T="modulepreload",bT=function(e,t){return new URL(e,t).href},Gv={},kt=function(t,n,r){let a=Promise.resolve();if(n&&n.length>0){let c=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};const o=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),l=i?.nonce||i?.getAttribute("nonce");a=c(n.map(u=>{if(u=bT(u,r),u in Gv)return;Gv[u]=!0;const d=u.endsWith(".css"),p=d?'[rel="stylesheet"]':"";if(r)for(let _=o.length-1;_>=0;_--){const y=o[_];if(y.href===u&&(!d||y.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${p}`))return;const m=document.createElement("link");if(m.rel=d?"stylesheet":_T,d||(m.as="script"),m.crossOrigin="",m.href=u,l&&m.setAttribute("nonce",l),document.head.appendChild(m),d)return new Promise((_,y)=>{m.addEventListener("load",_),m.addEventListener("error",()=>y(new Error(`Unable to preload CSS for ${u}`)))})}))}function s(o){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o}return a.then(o=>{for(const i of o||[])i.status==="rejected"&&s(i.reason);return t().catch(s)})};function Qh(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const dt={},ni=[],ra=()=>{},E1=()=>!1,hd=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Xh=e=>e.startsWith("onUpdate:"),Zt=Object.assign,Zh=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},wT=Object.prototype.hasOwnProperty,yt=(e,t)=>wT.call(e,t),Fe=Array.isArray,ri=e=>Li(e)==="[object Map]",Ni=e=>Li(e)==="[object Set]",qv=e=>Li(e)==="[object Date]",ST=e=>Li(e)==="[object RegExp]",Ge=e=>typeof e=="function",$t=e=>typeof e=="string",Or=e=>typeof e=="symbol",wt=e=>e!==null&&typeof e=="object",x1=e=>(wt(e)||Ge(e))&&Ge(e.then)&&Ge(e.catch),k1=Object.prototype.toString,Li=e=>k1.call(e),TT=e=>Li(e).slice(8,-1),C1=e=>Li(e)==="[object Object]",Jh=e=>$t(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,wl=Qh(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),md=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ET=/-\w/g,zn=md(e=>e.replace(ET,t=>t.slice(1).toUpperCase())),xT=/\B([A-Z])/g,Ga=md(e=>e.replace(xT,"-$1").toLowerCase()),vd=md(e=>e.charAt(0).toUpperCase()+e.slice(1)),uc=md(e=>e?`on${vd(e)}`:""),On=(e,t)=>!Object.is(e,t),ai=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},gd=e=>{const t=parseFloat(e);return isNaN(t)?e:t},kT=e=>{const t=$t(e)?Number(e):NaN;return isNaN(t)?e:t};let Kv;const yd=()=>Kv||(Kv=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Gt(e){if(Fe(e)){const t={};for(let n=0;n{if(n){const r=n.split(AT);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function xe(e){let t="";if($t(e))t=e;else if(Fe(e))for(let n=0;niu(n,t))}const M1=e=>!!(e&&e.__v_isRef===!0),me=e=>$t(e)?e:e==null?"":Fe(e)||wt(e)&&(e.toString===k1||!Ge(e.toString))?M1(e)?me(e.value):JSON.stringify(e,O1,2):String(e),O1=(e,t)=>M1(t)?O1(e,t.value):ri(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,a],s)=>(n[Df(r,s)+" =>"]=a,n),{})}:Ni(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Df(n))}:Or(t)?Df(t):wt(t)&&!Fe(t)&&!C1(t)?String(t):t,Df=(e,t="")=>{var n;return Or(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let wn;class P1{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=wn,!t&&wn&&(this.index=(wn.scopes||(wn.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(wn=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(Tl){let t=Tl;for(Tl=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Sl;){let t=Sl;for(Sl=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function L1(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function F1(e){let t,n=e.depsTail,r=n;for(;r;){const a=r.prevDep;r.version===-1?(r===n&&(n=a),am(r),IT(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=a}e.deps=t,e.depsTail=n}function Vp(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(V1(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function V1(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Wl)||(e.globalVersion=Wl,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Vp(e))))return;e.flags|=2;const t=e.dep,n=At,r=Dr;At=e,Dr=!0;try{L1(e);const a=e.fn(e._value);(t.version===0||On(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{At=n,Dr=r,F1(e),e.flags&=-3}}function am(e,t=!1){const{dep:n,prevSub:r,nextSub:a}=e;if(r&&(r.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let s=n.computed.deps;s;s=s.nextDep)am(s,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function IT(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let Dr=!0;const Y1=[];function Fa(){Y1.push(Dr),Dr=!1}function Va(){const e=Y1.pop();Dr=e===void 0?!0:e}function Qv(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=At;At=void 0;try{t()}finally{At=n}}}let Wl=0;class RT{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class bd{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!At||!Dr||At===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==At)n=this.activeLink=new RT(At,this),At.deps?(n.prevDep=At.depsTail,At.depsTail.nextDep=n,At.depsTail=n):At.deps=At.depsTail=n,W1(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=At.depsTail,n.nextDep=void 0,At.depsTail.nextDep=n,At.depsTail=n,At.deps===n&&(At.deps=r)}return n}trigger(t){this.version++,Wl++,this.notify(t)}notify(t){nm();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{rm()}}}function W1(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)W1(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Dc=new WeakMap,io=Symbol(""),Yp=Symbol(""),Hl=Symbol("");function Sn(e,t,n){if(Dr&&At){let r=Dc.get(e);r||Dc.set(e,r=new Map);let a=r.get(n);a||(r.set(n,a=new bd),a.map=r,a.key=n),a.track()}}function Ca(e,t,n,r,a,s){const o=Dc.get(e);if(!o){Wl++;return}const i=l=>{l&&l.trigger()};if(nm(),t==="clear")o.forEach(i);else{const l=Fe(e),c=l&&Jh(n);if(l&&n==="length"){const u=Number(r);o.forEach((d,p)=>{(p==="length"||p===Hl||!Or(p)&&p>=u)&&i(d)})}else switch((n!==void 0||o.has(void 0))&&i(o.get(n)),c&&i(o.get(Hl)),t){case"add":l?c&&i(o.get("length")):(i(o.get(io)),ri(e)&&i(o.get(Yp)));break;case"delete":l||(i(o.get(io)),ri(e)&&i(o.get(Yp)));break;case"set":ri(e)&&i(o.get(io));break}}rm()}function NT(e,t){const n=Dc.get(e);return n&&n.get(t)}function Io(e){const t=st(e);return t===e?t:(Sn(t,"iterate",Hl),ar(e)?t:t.map(un))}function wd(e){return Sn(e=st(e),"iterate",Hl),e}const LT={__proto__:null,[Symbol.iterator](){return Of(this,Symbol.iterator,un)},concat(...e){return Io(this).concat(...e.map(t=>Fe(t)?Io(t):t))},entries(){return Of(this,"entries",e=>(e[1]=un(e[1]),e))},every(e,t){return _a(this,"every",e,t,void 0,arguments)},filter(e,t){return _a(this,"filter",e,t,n=>n.map(un),arguments)},find(e,t){return _a(this,"find",e,t,un,arguments)},findIndex(e,t){return _a(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return _a(this,"findLast",e,t,un,arguments)},findLastIndex(e,t){return _a(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return _a(this,"forEach",e,t,void 0,arguments)},includes(...e){return Pf(this,"includes",e)},indexOf(...e){return Pf(this,"indexOf",e)},join(e){return Io(this).join(e)},lastIndexOf(...e){return Pf(this,"lastIndexOf",e)},map(e,t){return _a(this,"map",e,t,void 0,arguments)},pop(){return tl(this,"pop")},push(...e){return tl(this,"push",e)},reduce(e,...t){return Xv(this,"reduce",e,t)},reduceRight(e,...t){return Xv(this,"reduceRight",e,t)},shift(){return tl(this,"shift")},some(e,t){return _a(this,"some",e,t,void 0,arguments)},splice(...e){return tl(this,"splice",e)},toReversed(){return Io(this).toReversed()},toSorted(e){return Io(this).toSorted(e)},toSpliced(...e){return Io(this).toSpliced(...e)},unshift(...e){return tl(this,"unshift",e)},values(){return Of(this,"values",un)}};function Of(e,t,n){const r=wd(e),a=r[t]();return r!==e&&!ar(e)&&(a._next=a.next,a.next=()=>{const s=a._next();return s.done||(s.value=n(s.value)),s}),a}const FT=Array.prototype;function _a(e,t,n,r,a,s){const o=wd(e),i=o!==e&&!ar(e),l=o[t];if(l!==FT[t]){const d=l.apply(e,s);return i?un(d):d}let c=n;o!==e&&(i?c=function(d,p){return n.call(this,un(d),p,e)}:n.length>2&&(c=function(d,p){return n.call(this,d,p,e)}));const u=l.call(o,c,r);return i&&a?a(u):u}function Xv(e,t,n,r){const a=wd(e);let s=n;return a!==e&&(ar(e)?n.length>3&&(s=function(o,i,l){return n.call(this,o,i,l,e)}):s=function(o,i,l){return n.call(this,o,un(i),l,e)}),a[t](s,...r)}function Pf(e,t,n){const r=st(e);Sn(r,"iterate",Hl);const a=r[t](...n);return(a===-1||a===!1)&&om(n[0])?(n[0]=st(n[0]),r[t](...n)):a}function tl(e,t,n=[]){Fa(),nm();const r=st(e)[t].apply(e,n);return rm(),Va(),r}const VT=Qh("__proto__,__v_isRef,__isVue"),H1=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Or));function YT(e){Or(e)||(e=String(e));const t=st(this);return Sn(t,"has",e),t.hasOwnProperty(e)}class B1{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,s=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return s;if(n==="__v_raw")return r===(a?s?K1:q1:s?G1:z1).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=Fe(t);if(!a){let l;if(o&&(l=LT[n]))return l;if(n==="hasOwnProperty")return YT}const i=Reflect.get(t,n,Qe(t)?t:r);if((Or(n)?H1.has(n):VT(n))||(a||Sn(t,"get",n),s))return i;if(Qe(i)){const l=o&&Jh(n)?i:i.value;return a&&wt(l)?Mc(l):l}return wt(i)?a?Mc(i):Qt(i):i}}class j1 extends B1{constructor(t=!1){super(!1,t)}set(t,n,r,a){let s=t[n];if(!this._isShallow){const l=_s(s);if(!ar(r)&&!_s(r)&&(s=st(s),r=st(r)),!Fe(t)&&Qe(s)&&!Qe(r))return l||(s.value=r),!0}const o=Fe(t)&&Jh(n)?Number(n)e,Yu=e=>Reflect.getPrototypeOf(e);function UT(e,t,n){return function(...r){const a=this.__v_raw,s=st(a),o=ri(s),i=e==="entries"||e===Symbol.iterator&&o,l=e==="keys"&&o,c=a[e](...r),u=n?Wp:t?Oc:un;return!t&&Sn(s,"iterate",l?Yp:io),{next(){const{value:d,done:p}=c.next();return p?{value:d,done:p}:{value:i?[u(d[0]),u(d[1])]:u(d),done:p}},[Symbol.iterator](){return this}}}}function Wu(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function zT(e,t){const n={get(a){const s=this.__v_raw,o=st(s),i=st(a);e||(On(a,i)&&Sn(o,"get",a),Sn(o,"get",i));const{has:l}=Yu(o),c=t?Wp:e?Oc:un;if(l.call(o,a))return c(s.get(a));if(l.call(o,i))return c(s.get(i));s!==o&&s.get(a)},get size(){const a=this.__v_raw;return!e&&Sn(st(a),"iterate",io),a.size},has(a){const s=this.__v_raw,o=st(s),i=st(a);return e||(On(a,i)&&Sn(o,"has",a),Sn(o,"has",i)),a===i?s.has(a):s.has(a)||s.has(i)},forEach(a,s){const o=this,i=o.__v_raw,l=st(i),c=t?Wp:e?Oc:un;return!e&&Sn(l,"iterate",io),i.forEach((u,d)=>a.call(s,c(u),c(d),o))}};return Zt(n,e?{add:Wu("add"),set:Wu("set"),delete:Wu("delete"),clear:Wu("clear")}:{add(a){!t&&!ar(a)&&!_s(a)&&(a=st(a));const s=st(this);return Yu(s).has.call(s,a)||(s.add(a),Ca(s,"add",a,a)),this},set(a,s){!t&&!ar(s)&&!_s(s)&&(s=st(s));const o=st(this),{has:i,get:l}=Yu(o);let c=i.call(o,a);c||(a=st(a),c=i.call(o,a));const u=l.call(o,a);return o.set(a,s),c?On(s,u)&&Ca(o,"set",a,s):Ca(o,"add",a,s),this},delete(a){const s=st(this),{has:o,get:i}=Yu(s);let l=o.call(s,a);l||(a=st(a),l=o.call(s,a)),i&&i.call(s,a);const c=s.delete(a);return l&&Ca(s,"delete",a,void 0),c},clear(){const a=st(this),s=a.size!==0,o=a.clear();return s&&Ca(a,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=UT(a,e,t)}),n}function Sd(e,t){const n=zT(e,t);return(r,a,s)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?r:Reflect.get(yt(n,a)&&a in r?n:r,a,s)}const GT={get:Sd(!1,!1)},qT={get:Sd(!1,!0)},KT={get:Sd(!0,!1)},QT={get:Sd(!0,!0)},z1=new WeakMap,G1=new WeakMap,q1=new WeakMap,K1=new WeakMap;function XT(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ZT(e){return e.__v_skip||!Object.isExtensible(e)?0:XT(TT(e))}function Qt(e){return _s(e)?e:Td(e,!1,WT,GT,z1)}function sm(e){return Td(e,!1,BT,qT,G1)}function Mc(e){return Td(e,!0,HT,KT,q1)}function xa(e){return Td(e,!0,jT,QT,K1)}function Td(e,t,n,r,a){if(!wt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const s=ZT(e);if(s===0)return e;const o=a.get(e);if(o)return o;const i=new Proxy(e,s===2?r:n);return a.set(e,i),i}function Mr(e){return _s(e)?Mr(e.__v_raw):!!(e&&e.__v_isReactive)}function _s(e){return!!(e&&e.__v_isReadonly)}function ar(e){return!!(e&&e.__v_isShallow)}function om(e){return e?!!e.__v_raw:!1}function st(e){const t=e&&e.__v_raw;return t?st(t):e}function im(e){return!yt(e,"__v_skip")&&Object.isExtensible(e)&&A1(e,"__v_skip",!0),e}const un=e=>wt(e)?Qt(e):e,Oc=e=>wt(e)?Mc(e):e;function Qe(e){return e?e.__v_isRef===!0:!1}function oe(e){return Q1(e,!1)}function ur(e){return Q1(e,!0)}function Q1(e,t){return Qe(e)?e:new JT(e,t)}class JT{constructor(t,n){this.dep=new bd,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:st(t),this._value=n?t:un(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||ar(t)||_s(t);t=r?t:st(t),On(t,n)&&(this._rawValue=t,this._value=r?t:un(t),this.dep.trigger())}}function f(e){return Qe(e)?e.value:e}function Yn(e){return Ge(e)?e():f(e)}const eE={get:(e,t,n)=>t==="__v_raw"?e:f(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const a=e[t];return Qe(a)&&!Qe(n)?(a.value=n,!0):Reflect.set(e,t,n,r)}};function X1(e){return Mr(e)?e:new Proxy(e,eE)}class tE{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new bd,{get:r,set:a}=t(n.track.bind(n),n.trigger.bind(n));this._get=r,this._set=a}get value(){return this._value=this._get()}set value(t){this._set(t)}}function nE(e){return new tE(e)}function rE(e){const t=Fe(e)?new Array(e.length):{};for(const n in e)t[n]=Z1(e,n);return t}class aE{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return NT(st(this._object),this._key)}}class sE{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Hp(e,t,n){return Qe(e)?e:Ge(e)?new sE(e):wt(e)&&arguments.length>1?Z1(e,t,n):oe(e)}function Z1(e,t,n){const r=e[t];return Qe(r)?r:new aE(e,t,n)}class oE{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new bd(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Wl-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&At!==this)return N1(this,!0),!0}get value(){const t=this.dep.track();return V1(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function iE(e,t,n=!1){let r,a;return Ge(e)?r=e:(r=e.get,a=e.set),new oE(r,a,n)}const Hu={},Pc=new WeakMap;let Bs;function lE(e,t=!1,n=Bs){if(n){let r=Pc.get(n);r||Pc.set(n,r=[]),r.push(e)}}function uE(e,t,n=dt){const{immediate:r,deep:a,once:s,scheduler:o,augmentJob:i,call:l}=n,c=v=>a?v:ar(v)||a===!1||a===0?Aa(v,1):Aa(v);let u,d,p,m,_=!1,y=!1;if(Qe(e)?(d=()=>e.value,_=ar(e)):Mr(e)?(d=()=>c(e),_=!0):Fe(e)?(y=!0,_=e.some(v=>Mr(v)||ar(v)),d=()=>e.map(v=>{if(Qe(v))return v.value;if(Mr(v))return c(v);if(Ge(v))return l?l(v,2):v()})):Ge(e)?t?d=l?()=>l(e,2):e:d=()=>{if(p){Fa();try{p()}finally{Va()}}const v=Bs;Bs=u;try{return l?l(e,3,[m]):e(m)}finally{Bs=v}}:d=ra,t&&a){const v=d,k=a===!0?1/0:a;d=()=>Aa(v(),k)}const b=_d(),h=()=>{u.stop(),b&&b.active&&Zh(b.effects,u)};if(s&&t){const v=t;t=(...k)=>{v(...k),h()}}let g=y?new Array(e.length).fill(Hu):Hu;const w=v=>{if(!(!(u.flags&1)||!u.dirty&&!v))if(t){const k=u.run();if(a||_||(y?k.some(($,S)=>On($,g[S])):On(k,g))){p&&p();const $=Bs;Bs=u;try{const S=[k,g===Hu?void 0:y&&g[0]===Hu?[]:g,m];g=k,l?l(t,3,S):t(...S)}finally{Bs=$}}}else u.run()};return i&&i(w),u=new I1(d),u.scheduler=o?()=>o(w,!1):w,m=v=>lE(v,!1,u),p=u.onStop=()=>{const v=Pc.get(u);if(v){if(l)l(v,4);else for(const k of v)k();Pc.delete(u)}},t?r?w(!0):g=u.run():o?o(w.bind(null,!0),!0):u.run(),h.pause=u.pause.bind(u),h.resume=u.resume.bind(u),h.stop=h,h}function Aa(e,t=1/0,n){if(t<=0||!wt(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Qe(e))Aa(e.value,t,n);else if(Fe(e))for(let r=0;r{Aa(r,t,n)});else if(C1(e)){for(const r in e)Aa(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Aa(e[r],t,n)}return e}function lu(e,t,n,r){try{return r?e(...r):e()}catch(a){Ed(a,t,n)}}function Pr(e,t,n,r){if(Ge(e)){const a=lu(e,t,n,r);return a&&x1(a)&&a.catch(s=>{Ed(s,t,n)}),a}if(Fe(e)){const a=[];for(let s=0;s>>1,a=Pn[r],s=Bl(a);s=Bl(n)?Pn.push(e):Pn.splice(dE(t),0,e),e.flags|=1,e_()}}function e_(){$c||($c=J1.then(n_))}function fE(e){Fe(e)?si.push(...e):us&&e.id===-1?us.splice(Ho+1,0,e):e.flags&1||(si.push(e),e.flags|=1),e_()}function Zv(e,t,n=zr+1){for(;nBl(n)-Bl(r));if(si.length=0,us){us.push(...t);return}for(us=t,Ho=0;Hoe.id==null?e.flags&2?-1:1/0:e.id;function n_(e){try{for(zr=0;zr{r._d&&Vc(-1);const s=Ic(t);let o;try{o=e(...a)}finally{Ic(s),r._d&&Vc(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function Ot(e,t){if(fn===null)return e;const n=Od(fn),r=e.dirs||(e.dirs=[]);for(let a=0;ae.__isTeleport,El=e=>e&&(e.disabled||e.disabled===""),Jv=e=>e&&(e.defer||e.defer===""),eg=e=>typeof SVGElement<"u"&&e instanceof SVGElement,tg=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,Bp=(e,t)=>{const n=e&&e.to;return $t(n)?t?t(n):null:n},s_={name:"Teleport",__isTeleport:!0,process(e,t,n,r,a,s,o,i,l,c){const{mc:u,pc:d,pbc:p,o:{insert:m,querySelector:_,createText:y,createComment:b}}=c,h=El(t.props);let{shapeFlag:g,children:w,dynamicChildren:v}=t;if(e==null){const k=t.el=y(""),$=t.anchor=y("");m(k,n,r),m($,n,r);const S=(P,R)=>{g&16&&u(w,P,R,a,s,o,i,l)},x=()=>{const P=t.target=Bp(t.props,_),R=i_(P,t,y,m);P&&(o!=="svg"&&eg(P)?o="svg":o!=="mathml"&&tg(P)&&(o="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(P),h||(S(P,R),cc(t,!1)))};h&&(S(n,$),cc(t,!0)),Jv(t.props)?(t.el.__isMounted=!1,nn(()=>{x(),delete t.el.__isMounted},s)):x()}else{if(Jv(t.props)&&e.el.__isMounted===!1){nn(()=>{s_.process(e,t,n,r,a,s,o,i,l,c)},s);return}t.el=e.el,t.targetStart=e.targetStart;const k=t.anchor=e.anchor,$=t.target=e.target,S=t.targetAnchor=e.targetAnchor,x=El(e.props),P=x?n:$,R=x?k:S;if(o==="svg"||eg($)?o="svg":(o==="mathml"||tg($))&&(o="mathml"),v?(p(e.dynamicChildren,v,P,a,s,o,i),vm(e,t,!0)):l||d(e,t,P,R,a,s,o,i,!1),h)x?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Bu(t,n,k,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const K=t.target=Bp(t.props,_);K&&Bu(t,K,null,c,0)}else x&&Bu(t,$,S,c,1);cc(t,h)}},remove(e,t,n,{um:r,o:{remove:a}},s){const{shapeFlag:o,children:i,anchor:l,targetStart:c,targetAnchor:u,target:d,props:p}=e;if(d&&(a(c),a(u)),s&&a(l),o&16){const m=s||!El(p);for(let _=0;_{e.isMounted=!0}),dm(()=>{e.isUnmounting=!0}),e}const Jn=[Function,Array],u_={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Jn,onEnter:Jn,onAfterEnter:Jn,onEnterCancelled:Jn,onBeforeLeave:Jn,onLeave:Jn,onAfterLeave:Jn,onLeaveCancelled:Jn,onBeforeAppear:Jn,onAppear:Jn,onAfterAppear:Jn,onAppearCancelled:Jn},c_=e=>{const t=e.subTree;return t.component?c_(t.component):t},vE={name:"BaseTransition",props:u_,setup(e,{slots:t}){const n=Vr(),r=l_();return()=>{const a=t.default&&um(t.default(),!0);if(!a||!a.length)return;const s=d_(a),o=st(e),{mode:i}=o;if(r.isLeaving)return $f(s);const l=ng(s);if(!l)return $f(s);let c=jl(l,o,r,n,d=>c=d);l.type!==cn&&bs(l,c);let u=n.subTree&&ng(n.subTree);if(u&&u.type!==cn&&!ps(u,l)&&c_(n).type!==cn){let d=jl(u,o,r,n);if(bs(u,d),i==="out-in"&&l.type!==cn)return r.isLeaving=!0,d.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete d.afterLeave,u=void 0},$f(s);i==="in-out"&&l.type!==cn?d.delayLeave=(p,m,_)=>{const y=f_(r,u);y[String(u.key)]=u,p[ka]=()=>{m(),p[ka]=void 0,delete c.delayedLeave,u=void 0},c.delayedLeave=()=>{_(),delete c.delayedLeave,u=void 0}}:u=void 0}else u&&(u=void 0);return s}}};function d_(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==cn){t=n;break}}return t}const gE=vE;function f_(e,t){const{leavingVNodes:n}=e;let r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function jl(e,t,n,r,a){const{appear:s,mode:o,persisted:i=!1,onBeforeEnter:l,onEnter:c,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:m,onAfterLeave:_,onLeaveCancelled:y,onBeforeAppear:b,onAppear:h,onAfterAppear:g,onAppearCancelled:w}=t,v=String(e.key),k=f_(n,e),$=(P,R)=>{P&&Pr(P,r,9,R)},S=(P,R)=>{const K=R[1];$(P,R),Fe(P)?P.every(W=>W.length<=1)&&K():P.length<=1&&K()},x={mode:o,persisted:i,beforeEnter(P){let R=l;if(!n.isMounted)if(s)R=b||l;else return;P[ka]&&P[ka](!0);const K=k[v];K&&ps(e,K)&&K.el[ka]&&K.el[ka](),$(R,[P])},enter(P){let R=c,K=u,W=d;if(!n.isMounted)if(s)R=h||c,K=g||u,W=w||d;else return;let X=!1;const ce=P[ju]=ie=>{X||(X=!0,ie?$(W,[P]):$(K,[P]),x.delayedLeave&&x.delayedLeave(),P[ju]=void 0)};R?S(R,[P,ce]):ce()},leave(P,R){const K=String(e.key);if(P[ju]&&P[ju](!0),n.isUnmounting)return R();$(p,[P]);let W=!1;const X=P[ka]=ce=>{W||(W=!0,R(),ce?$(y,[P]):$(_,[P]),P[ka]=void 0,k[K]===e&&delete k[K])};k[K]=e,m?S(m,[P,X]):X()},clone(P){const R=jl(P,t,n,r,a);return a&&a(R),R}};return x}function $f(e){if(kd(e))return e=Wa(e),e.children=null,e}function ng(e){if(!kd(e))return a_(e.type)&&e.children?d_(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ge(n.default))return n.default()}}function bs(e,t){e.shapeFlag&6&&e.component?(e.transition=t,bs(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function um(e,t=!1,n){let r=[],a=0;for(let s=0;s1)for(let s=0;sn.value,set:s=>n.value=s})}return n}const Rc=new WeakMap;function xl(e,t,n,r,a=!1){if(Fe(e)){e.forEach((_,y)=>xl(_,t&&(Fe(t)?t[y]:t),n,r,a));return}if(lo(r)&&!a){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&xl(e,t,n,r.component.subTree);return}const s=r.shapeFlag&4?Od(r.component):r.el,o=a?null:s,{i,r:l}=e,c=t&&t.r,u=i.refs===dt?i.refs={}:i.refs,d=i.setupState,p=st(d),m=d===dt?E1:_=>yt(p,_);if(c!=null&&c!==l){if(rg(t),$t(c))u[c]=null,m(c)&&(d[c]=null);else if(Qe(c)){c.value=null;const _=t;_.k&&(u[_.k]=null)}}if(Ge(l))lu(l,i,12,[o,u]);else{const _=$t(l),y=Qe(l);if(_||y){const b=()=>{if(e.f){const h=_?m(l)?d[l]:u[l]:l.value;if(a)Fe(h)&&Zh(h,s);else if(Fe(h))h.includes(s)||h.push(s);else if(_)u[l]=[s],m(l)&&(d[l]=u[l]);else{const g=[s];l.value=g,e.k&&(u[e.k]=g)}}else _?(u[l]=o,m(l)&&(d[l]=o)):y&&(l.value=o,e.k&&(u[e.k]=o))};if(o){const h=()=>{b(),Rc.delete(e)};h.id=-1,Rc.set(e,h),nn(h,n)}else rg(e),b()}}}function rg(e){const t=Rc.get(e);t&&(t.flags|=8,Rc.delete(e))}yd().requestIdleCallback;yd().cancelIdleCallback;const lo=e=>!!e.type.__asyncLoader,kd=e=>e.type.__isKeepAlive,yE={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=Vr(),r=n.ctx;if(!r.renderer)return()=>{const g=t.default&&t.default();return g&&g.length===1?g[0]:g};const a=new Map,s=new Set;let o=null;const i=n.suspense,{renderer:{p:l,m:c,um:u,o:{createElement:d}}}=r,p=d("div");r.activate=(g,w,v,k,$)=>{const S=g.component;c(g,w,v,0,i),l(S.vnode,g,w,v,S,i,k,g.slotScopeIds,$),nn(()=>{S.isDeactivated=!1,S.a&&ai(S.a);const x=g.props&&g.props.onVnodeMounted;x&&er(x,S.parent,g)},i)},r.deactivate=g=>{const w=g.component;Lc(w.m),Lc(w.a),c(g,p,null,1,i),nn(()=>{w.da&&ai(w.da);const v=g.props&&g.props.onVnodeUnmounted;v&&er(v,w.parent,g),w.isDeactivated=!0},i)};function m(g){If(g),u(g,n,i,!0)}function _(g){a.forEach((w,v)=>{const k=Kp(w.type);k&&!g(k)&&y(v)})}function y(g){const w=a.get(g);w&&(!o||!ps(w,o))?m(w):o&&If(o),a.delete(g),s.delete(g)}Ue(()=>[e.include,e.exclude],([g,w])=>{g&&_(v=>vl(g,v)),w&&_(v=>!vl(w,v))},{flush:"post",deep:!0});let b=null;const h=()=>{b!=null&&(Fc(n.subTree.type)?nn(()=>{a.set(b,Uu(n.subTree))},n.subTree.suspense):a.set(b,Uu(n.subTree)))};return ut(h),cm(h),dm(()=>{a.forEach(g=>{const{subTree:w,suspense:v}=n,k=Uu(w);if(g.type===k.type&&g.key===k.key){If(k);const $=k.component.da;$&&nn($,v);return}m(g)})}),()=>{if(b=null,!t.default)return o=null;const g=t.default(),w=g[0];if(g.length>1)return o=null,g;if(!yo(w)||!(w.shapeFlag&4)&&!(w.shapeFlag&128))return o=null,w;let v=Uu(w);if(v.type===cn)return o=null,v;const k=v.type,$=Kp(lo(v)?v.type.__asyncResolved||{}:k),{include:S,exclude:x,max:P}=e;if(S&&(!$||!vl(S,$))||x&&$&&vl(x,$))return v.shapeFlag&=-257,o=v,w;const R=v.key==null?k:v.key,K=a.get(R);return v.el&&(v=Wa(v),w.shapeFlag&128&&(w.ssContent=v)),b=R,K?(v.el=K.el,v.component=K.component,v.transition&&bs(v,v.transition),v.shapeFlag|=512,s.delete(R),s.add(R)):(s.add(R),P&&s.size>parseInt(P,10)&&y(s.values().next().value)),v.shapeFlag|=256,o=v,Fc(w.type)?w:v}}},IQ=yE;function vl(e,t){return Fe(e)?e.some(n=>vl(n,t)):$t(e)?e.split(",").includes(t):ST(e)?(e.lastIndex=0,e.test(t)):!1}function h_(e,t){v_(e,"a",t)}function m_(e,t){v_(e,"da",t)}function v_(e,t,n=Tn){const r=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Cd(t,r,n),n){let a=n.parent;for(;a&&a.parent;)kd(a.parent.vnode)&&_E(r,t,n,a),a=a.parent}}function _E(e,t,n,r){const a=Cd(t,e,r,!0);xn(()=>{Zh(r[t],a)},n)}function If(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Uu(e){return e.shapeFlag&128?e.ssContent:e}function Cd(e,t,n=Tn,r=!1){if(n){const a=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...o)=>{Fa();const i=uu(n),l=Pr(t,n,e,o);return i(),Va(),l});return r?a.unshift(s):a.push(s),s}}const qa=e=>(t,n=Tn)=>{(!zl||e==="sp")&&Cd(e,(...r)=>t(...r),n)},g_=qa("bm"),ut=qa("m"),y_=qa("bu"),cm=qa("u"),dm=qa("bum"),xn=qa("um"),bE=qa("sp"),wE=qa("rtg"),SE=qa("rtc");function TE(e,t=Tn){Cd("ec",e,t)}const fm="components",EE="directives";function sr(e,t){return pm(fm,e,!0,t)||e}const __=Symbol.for("v-ndc");function ko(e){return $t(e)?pm(fm,e,!1)||e:e||__}function Fi(e){return pm(EE,e)}function pm(e,t,n=!0,r=!1){const a=fn||Tn;if(a){const s=a.type;if(e===fm){const i=Kp(s,!1);if(i&&(i===t||i===zn(t)||i===vd(zn(t))))return s}const o=ag(a[e]||s[e],t)||ag(a.appContext[e],t);return!o&&r?s:o}}function ag(e,t){return e&&(e[t]||e[zn(t)]||e[vd(zn(t))])}function Xe(e,t,n,r){let a;const s=n&&n[r],o=Fe(e);if(o||$t(e)){const i=o&&Mr(e);let l=!1,c=!1;i&&(l=!ar(e),c=_s(e),e=wd(e)),a=new Array(e.length);for(let u=0,d=e.length;ut(i,l,void 0,s&&s[l]));else{const i=Object.keys(e);a=new Array(i.length);for(let l=0,c=i.length;l{const s=r.fn(...a);return s&&(s.key=r.key),s}:r.fn)}return e}function Ee(e,t,n={},r,a){if(fn.ce||fn.parent&&lo(fn.parent)&&fn.parent.ce){const c=Object.keys(n).length>0;return t!=="default"&&(n.name=t),D(),ge(Me,null,[ae("slot",n,r&&r())],c?-2:64)}let s=e[t];s&&s._c&&(s._d=!1),D();const o=s&&b_(s(n)),i=n.key||o&&o.key,l=ge(Me,{key:(i&&!Or(i)?i:`_${t}`)+(!o&&r?"_fb":"")},o||(r?r():[]),o&&e._===1?64:-2);return!a&&l.scopeId&&(l.slotScopeIds=[l.scopeId+"-s"]),s&&s._c&&(s._d=!0),l}function b_(e){return e.some(t=>yo(t)?!(t.type===cn||t.type===Me&&!b_(t.children)):!0)?e:null}function xE(e,t){const n={};for(const r in e)n[uc(r)]=e[r];return n}const jp=e=>e?W_(e)?Od(e):jp(e.parent):null,kl=Zt(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>jp(e.parent),$root:e=>jp(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>E_(e),$forceUpdate:e=>e.f||(e.f=()=>{lm(e.update)}),$nextTick:e=>e.n||(e.n=Xt.bind(e.proxy)),$watch:e=>qE.bind(e)}),Rf=(e,t)=>e!==dt&&!e.__isScriptSetup&&yt(e,t),kE={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:a,props:s,accessCache:o,type:i,appContext:l}=e;let c;if(t[0]!=="$"){const m=o[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return a[t];case 4:return n[t];case 3:return s[t]}else{if(Rf(r,t))return o[t]=1,r[t];if(a!==dt&&yt(a,t))return o[t]=2,a[t];if((c=e.propsOptions[0])&&yt(c,t))return o[t]=3,s[t];if(n!==dt&&yt(n,t))return o[t]=4,n[t];Up&&(o[t]=0)}}const u=kl[t];let d,p;if(u)return t==="$attrs"&&Sn(e.attrs,"get",""),u(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(n!==dt&&yt(n,t))return o[t]=4,n[t];if(p=l.config.globalProperties,yt(p,t))return p[t]},set({_:e},t,n){const{data:r,setupState:a,ctx:s}=e;return Rf(a,t)?(a[t]=n,!0):r!==dt&&yt(r,t)?(r[t]=n,!0):yt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:a,propsOptions:s,type:o}},i){let l,c;return!!(n[i]||e!==dt&&i[0]!=="$"&&yt(e,i)||Rf(t,i)||(l=s[0])&&yt(l,i)||yt(r,i)||yt(kl,i)||yt(a.config.globalProperties,i)||(c=o.__cssModules)&&c[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:yt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Ds(){return w_().slots}function RQ(){return w_().attrs}function w_(e){const t=Vr();return t.setupContext||(t.setupContext=B_(t))}function Ul(e){return Fe(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}function S_(e,t){const n=Ul(e);for(const r in t){if(r.startsWith("__skip"))continue;let a=n[r];a?Fe(a)||Ge(a)?a=n[r]={type:a,default:t[r]}:a.default=t[r]:a===null&&(a=n[r]={default:t[r]}),a&&t[`__skip_${r}`]&&(a.skipFactory=!0)}return n}function Ya(e,t){return!e||!t?e||t:Fe(e)&&Fe(t)?e.concat(t):Zt({},Ul(e),Ul(t))}function NQ(e,t){const n={};for(const r in e)t.includes(r)||Object.defineProperty(n,r,{enumerable:!0,get:()=>e[r]});return n}let Up=!0;function CE(e){const t=E_(e),n=e.proxy,r=e.ctx;Up=!1,t.beforeCreate&&sg(t.beforeCreate,e,"bc");const{data:a,computed:s,methods:o,watch:i,provide:l,inject:c,created:u,beforeMount:d,mounted:p,beforeUpdate:m,updated:_,activated:y,deactivated:b,beforeDestroy:h,beforeUnmount:g,destroyed:w,unmounted:v,render:k,renderTracked:$,renderTriggered:S,errorCaptured:x,serverPrefetch:P,expose:R,inheritAttrs:K,components:W,directives:X,filters:ce}=t;if(c&&AE(c,r,null),o)for(const j in o){const ne=o[j];Ge(ne)&&(r[j]=ne.bind(n))}if(a){const j=a.call(n,n);wt(j)&&(e.data=Qt(j))}if(Up=!0,s)for(const j in s){const ne=s[j],le=Ge(ne)?ne.bind(n,n):Ge(ne.get)?ne.get.bind(n,n):ra,re=!Ge(ne)&&Ge(ne.set)?ne.set.bind(n):ra,he=G({get:le,set:re});Object.defineProperty(r,j,{enumerable:!0,configurable:!0,get:()=>he.value,set:ke=>he.value=ke})}if(i)for(const j in i)T_(i[j],r,n,j);if(l){const j=Ge(l)?l.call(n):l;Reflect.ownKeys(j).forEach(ne=>{Cl(ne,j[ne])})}u&&sg(u,e,"c");function fe(j,ne){Fe(ne)?ne.forEach(le=>j(le.bind(n))):ne&&j(ne.bind(n))}if(fe(g_,d),fe(ut,p),fe(y_,m),fe(cm,_),fe(h_,y),fe(m_,b),fe(TE,x),fe(SE,$),fe(wE,S),fe(dm,g),fe(xn,v),fe(bE,P),Fe(R))if(R.length){const j=e.exposed||(e.exposed={});R.forEach(ne=>{Object.defineProperty(j,ne,{get:()=>n[ne],set:le=>n[ne]=le,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===ra&&(e.render=k),K!=null&&(e.inheritAttrs=K),W&&(e.components=W),X&&(e.directives=X),P&&p_(e)}function AE(e,t,n=ra){Fe(e)&&(e=zp(e));for(const r in e){const a=e[r];let s;wt(a)?"default"in a?s=In(a.from||r,a.default,!0):s=In(a.from||r):s=In(a),Qe(s)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>s.value,set:o=>s.value=o}):t[r]=s}}function sg(e,t,n){Pr(Fe(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function T_(e,t,n,r){let a=r.includes(".")?N_(n,r):()=>n[r];if($t(e)){const s=t[e];Ge(s)&&Ue(a,s)}else if(Ge(e))Ue(a,e.bind(n));else if(wt(e))if(Fe(e))e.forEach(s=>T_(s,t,n,r));else{const s=Ge(e.handler)?e.handler.bind(n):t[e.handler];Ge(s)&&Ue(a,s,e)}}function E_(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:a,optionsCache:s,config:{optionMergeStrategies:o}}=e.appContext,i=s.get(t);let l;return i?l=i:!a.length&&!n&&!r?l=t:(l={},a.length&&a.forEach(c=>Nc(l,c,o,!0)),Nc(l,t,o)),wt(t)&&s.set(t,l),l}function Nc(e,t,n,r=!1){const{mixins:a,extends:s}=t;s&&Nc(e,s,n,!0),a&&a.forEach(o=>Nc(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const i=DE[o]||n&&n[o];e[o]=i?i(e[o],t[o]):t[o]}return e}const DE={data:og,props:ig,emits:ig,methods:gl,computed:gl,beforeCreate:Cn,created:Cn,beforeMount:Cn,mounted:Cn,beforeUpdate:Cn,updated:Cn,beforeDestroy:Cn,beforeUnmount:Cn,destroyed:Cn,unmounted:Cn,activated:Cn,deactivated:Cn,errorCaptured:Cn,serverPrefetch:Cn,components:gl,directives:gl,watch:OE,provide:og,inject:ME};function og(e,t){return t?e?function(){return Zt(Ge(e)?e.call(this,this):e,Ge(t)?t.call(this,this):t)}:t:e}function ME(e,t){return gl(zp(e),zp(t))}function zp(e){if(Fe(e)){const t={};for(let n=0;n1)return n&&Ge(t)?t.call(r&&r.proxy):t}}function IE(){return!!(Vr()||uo)}const k_={},C_=()=>Object.create(k_),A_=e=>Object.getPrototypeOf(e)===k_;function RE(e,t,n,r=!1){const a={},s=C_();e.propsDefaults=Object.create(null),D_(e,t,a,s);for(const o in e.propsOptions[0])o in a||(a[o]=void 0);n?e.props=r?a:sm(a):e.type.props?e.props=a:e.props=s,e.attrs=s}function NE(e,t,n,r){const{props:a,attrs:s,vnode:{patchFlag:o}}=e,i=st(a),[l]=e.propsOptions;let c=!1;if((r||o>0)&&!(o&16)){if(o&8){const u=e.vnode.dynamicProps;for(let d=0;d{l=!0;const[p,m]=M_(d,t,!0);Zt(o,p),m&&i.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!s&&!l)return wt(e)&&r.set(e,ni),ni;if(Fe(s))for(let u=0;ue==="_"||e==="_ctx"||e==="$stable",mm=e=>Fe(e)?e.map(qr):[qr(e)],FE=(e,t,n)=>{if(t._n)return t;const r=de((...a)=>mm(t(...a)),n);return r._c=!1,r},O_=(e,t,n)=>{const r=e._ctx;for(const a in e){if(hm(a))continue;const s=e[a];if(Ge(s))t[a]=FE(a,s,r);else if(s!=null){const o=mm(s);t[a]=()=>o}}},P_=(e,t)=>{const n=mm(t);e.slots.default=()=>n},$_=(e,t,n)=>{for(const r in t)(n||!hm(r))&&(e[r]=t[r])},VE=(e,t,n)=>{const r=e.slots=C_();if(e.vnode.shapeFlag&32){const a=t._;a?($_(r,t,n),n&&A1(r,"_",a,!0)):O_(t,r)}else t&&P_(e,t)},YE=(e,t,n)=>{const{vnode:r,slots:a}=e;let s=!0,o=dt;if(r.shapeFlag&32){const i=t._;i?n&&i===1?s=!1:$_(a,t,n):(s=!t.$stable,O_(t,a)),o=t}else t&&(P_(e,t),o={default:1});if(s)for(const i in a)!hm(i)&&o[i]==null&&delete a[i]},nn=tx;function WE(e){return HE(e)}function HE(e,t){const n=yd();n.__VUE__=!0;const{insert:r,remove:a,patchProp:s,createElement:o,createText:i,createComment:l,setText:c,setElementText:u,parentNode:d,nextSibling:p,setScopeId:m=ra,insertStaticContent:_}=e,y=(O,T,C,E=null,I=null,H=null,Z=void 0,Y=null,z=!!T.dynamicChildren)=>{if(O===T)return;O&&!ps(O,T)&&(E=B(O),ke(O,I,H,!0),O=null),T.patchFlag===-2&&(z=!1,T.dynamicChildren=null);const{type:N,ref:U,shapeFlag:M}=T;switch(N){case Md:b(O,T,C,E);break;case cn:h(O,T,C,E);break;case dc:O==null&&g(T,C,E,Z);break;case Me:W(O,T,C,E,I,H,Z,Y,z);break;default:M&1?k(O,T,C,E,I,H,Z,Y,z):M&6?X(O,T,C,E,I,H,Z,Y,z):(M&64||M&128)&&N.process(O,T,C,E,I,H,Z,Y,z,F)}U!=null&&I?xl(U,O&&O.ref,H,T||O,!T):U==null&&O&&O.ref!=null&&xl(O.ref,null,H,O,!0)},b=(O,T,C,E)=>{if(O==null)r(T.el=i(T.children),C,E);else{const I=T.el=O.el;T.children!==O.children&&c(I,T.children)}},h=(O,T,C,E)=>{O==null?r(T.el=l(T.children||""),C,E):T.el=O.el},g=(O,T,C,E)=>{[O.el,O.anchor]=_(O.children,T,C,E,O.el,O.anchor)},w=({el:O,anchor:T},C,E)=>{let I;for(;O&&O!==T;)I=p(O),r(O,C,E),O=I;r(T,C,E)},v=({el:O,anchor:T})=>{let C;for(;O&&O!==T;)C=p(O),a(O),O=C;a(T)},k=(O,T,C,E,I,H,Z,Y,z)=>{if(T.type==="svg"?Z="svg":T.type==="math"&&(Z="mathml"),O==null)$(T,C,E,I,H,Z,Y,z);else{const N=O.el&&O.el._isVueCE?O.el:null;try{N&&N._beginPatch(),P(O,T,I,H,Z,Y,z)}finally{N&&N._endPatch()}}},$=(O,T,C,E,I,H,Z,Y)=>{let z,N;const{props:U,shapeFlag:M,transition:te,dirs:Q}=O;if(z=O.el=o(O.type,H,U&&U.is,U),M&8?u(z,O.children):M&16&&x(O.children,z,null,E,I,Nf(O,H),Z,Y),Q&&Vs(O,null,E,"created"),S(z,O,O.scopeId,Z,E),U){for(const Ce in U)Ce!=="value"&&!wl(Ce)&&s(z,Ce,null,U[Ce],H,E);"value"in U&&s(z,"value",null,U.value,H),(N=U.onVnodeBeforeMount)&&er(N,E,O)}Q&&Vs(O,null,E,"beforeMount");const we=BE(I,te);we&&te.beforeEnter(z),r(z,T,C),((N=U&&U.onVnodeMounted)||we||Q)&&nn(()=>{N&&er(N,E,O),we&&te.enter(z),Q&&Vs(O,null,E,"mounted")},I)},S=(O,T,C,E,I)=>{if(C&&m(O,C),E)for(let H=0;H{for(let N=z;N{const Y=T.el=O.el;let{patchFlag:z,dynamicChildren:N,dirs:U}=T;z|=O.patchFlag&16;const M=O.props||dt,te=T.props||dt;let Q;if(C&&Ys(C,!1),(Q=te.onVnodeBeforeUpdate)&&er(Q,C,T,O),U&&Vs(T,O,C,"beforeUpdate"),C&&Ys(C,!0),(M.innerHTML&&te.innerHTML==null||M.textContent&&te.textContent==null)&&u(Y,""),N?R(O.dynamicChildren,N,Y,C,E,Nf(T,I),H):Z||ne(O,T,Y,null,C,E,Nf(T,I),H,!1),z>0){if(z&16)K(Y,M,te,C,I);else if(z&2&&M.class!==te.class&&s(Y,"class",null,te.class,I),z&4&&s(Y,"style",M.style,te.style,I),z&8){const we=T.dynamicProps;for(let Ce=0;Ce{Q&&er(Q,C,T,O),U&&Vs(T,O,C,"updated")},E)},R=(O,T,C,E,I,H,Z)=>{for(let Y=0;Y{if(T!==C){if(T!==dt)for(const H in T)!wl(H)&&!(H in C)&&s(O,H,T[H],null,I,E);for(const H in C){if(wl(H))continue;const Z=C[H],Y=T[H];Z!==Y&&H!=="value"&&s(O,H,Y,Z,I,E)}"value"in C&&s(O,"value",T.value,C.value,I)}},W=(O,T,C,E,I,H,Z,Y,z)=>{const N=T.el=O?O.el:i(""),U=T.anchor=O?O.anchor:i("");let{patchFlag:M,dynamicChildren:te,slotScopeIds:Q}=T;Q&&(Y=Y?Y.concat(Q):Q),O==null?(r(N,C,E),r(U,C,E),x(T.children||[],C,U,I,H,Z,Y,z)):M>0&&M&64&&te&&O.dynamicChildren?(R(O.dynamicChildren,te,C,I,H,Z,Y),(T.key!=null||I&&T===I.subTree)&&vm(O,T,!0)):ne(O,T,C,U,I,H,Z,Y,z)},X=(O,T,C,E,I,H,Z,Y,z)=>{T.slotScopeIds=Y,O==null?T.shapeFlag&512?I.ctx.activate(T,C,E,Z,z):ce(T,C,E,I,H,Z,z):ie(O,T,z)},ce=(O,T,C,E,I,H,Z)=>{const Y=O.component=ix(O,E,I);if(kd(O)&&(Y.ctx.renderer=F),lx(Y,!1,Z),Y.asyncDep){if(I&&I.registerDep(Y,fe,Z),!O.el){const z=Y.subTree=ae(cn);h(null,z,T,C),O.placeholder=z.el}}else fe(Y,O,T,C,I,H,Z)},ie=(O,T,C)=>{const E=T.component=O.component;if(JE(O,T,C))if(E.asyncDep&&!E.asyncResolved){j(E,T,C);return}else E.next=T,E.update();else T.el=O.el,E.vnode=T},fe=(O,T,C,E,I,H,Z)=>{const Y=()=>{if(O.isMounted){let{next:M,bu:te,u:Q,parent:we,vnode:Ce}=O;{const gn=I_(O);if(gn){M&&(M.el=Ce.el,j(O,M,Z)),gn.asyncDep.then(()=>{O.isUnmounted||Y()});return}}let Ve=M,lt;Ys(O,!1),M?(M.el=Ce.el,j(O,M,Z)):M=Ce,te&&ai(te),(lt=M.props&&M.props.onVnodeBeforeUpdate)&&er(lt,we,M,Ce),Ys(O,!0);const Ft=ug(O),on=O.subTree;O.subTree=Ft,y(on,Ft,d(on.el),B(on),O,I,H),M.el=Ft.el,Ve===null&&ex(O,Ft.el),Q&&nn(Q,I),(lt=M.props&&M.props.onVnodeUpdated)&&nn(()=>er(lt,we,M,Ce),I)}else{let M;const{el:te,props:Q}=T,{bm:we,m:Ce,parent:Ve,root:lt,type:Ft}=O,on=lo(T);Ys(O,!1),we&&ai(we),!on&&(M=Q&&Q.onVnodeBeforeMount)&&er(M,Ve,T),Ys(O,!0);{lt.ce&<.ce._def.shadowRoot!==!1&<.ce._injectChildStyle(Ft);const gn=O.subTree=ug(O);y(null,gn,C,E,O,I,H),T.el=gn.el}if(Ce&&nn(Ce,I),!on&&(M=Q&&Q.onVnodeMounted)){const gn=T;nn(()=>er(M,Ve,gn),I)}(T.shapeFlag&256||Ve&&lo(Ve.vnode)&&Ve.vnode.shapeFlag&256)&&O.a&&nn(O.a,I),O.isMounted=!0,T=C=E=null}};O.scope.on();const z=O.effect=new I1(Y);O.scope.off();const N=O.update=z.run.bind(z),U=O.job=z.runIfDirty.bind(z);U.i=O,U.id=O.uid,z.scheduler=()=>lm(U),Ys(O,!0),N()},j=(O,T,C)=>{T.component=O;const E=O.vnode.props;O.vnode=T,O.next=null,NE(O,T.props,E,C),YE(O,T.children,C),Fa(),Zv(O),Va()},ne=(O,T,C,E,I,H,Z,Y,z=!1)=>{const N=O&&O.children,U=O?O.shapeFlag:0,M=T.children,{patchFlag:te,shapeFlag:Q}=T;if(te>0){if(te&128){re(N,M,C,E,I,H,Z,Y,z);return}else if(te&256){le(N,M,C,E,I,H,Z,Y,z);return}}Q&8?(U&16&&Ie(N,I,H),M!==N&&u(C,M)):U&16?Q&16?re(N,M,C,E,I,H,Z,Y,z):Ie(N,I,H,!0):(U&8&&u(C,""),Q&16&&x(M,C,E,I,H,Z,Y,z))},le=(O,T,C,E,I,H,Z,Y,z)=>{O=O||ni,T=T||ni;const N=O.length,U=T.length,M=Math.min(N,U);let te;for(te=0;teU?Ie(O,I,H,!0,!1,M):x(T,C,E,I,H,Z,Y,z,M)},re=(O,T,C,E,I,H,Z,Y,z)=>{let N=0;const U=T.length;let M=O.length-1,te=U-1;for(;N<=M&&N<=te;){const Q=O[N],we=T[N]=z?cs(T[N]):qr(T[N]);if(ps(Q,we))y(Q,we,C,null,I,H,Z,Y,z);else break;N++}for(;N<=M&&N<=te;){const Q=O[M],we=T[te]=z?cs(T[te]):qr(T[te]);if(ps(Q,we))y(Q,we,C,null,I,H,Z,Y,z);else break;M--,te--}if(N>M){if(N<=te){const Q=te+1,we=Qte)for(;N<=M;)ke(O[N],I,H,!0),N++;else{const Q=N,we=N,Ce=new Map;for(N=we;N<=te;N++){const De=T[N]=z?cs(T[N]):qr(T[N]);De.key!=null&&Ce.set(De.key,N)}let Ve,lt=0;const Ft=te-we+1;let on=!1,gn=0;const _r=new Array(Ft);for(N=0;N=Ft){ke(De,I,H,!0);continue}let Ne;if(De.key!=null)Ne=Ce.get(De.key);else for(Ve=we;Ve<=te;Ve++)if(_r[Ve-we]===0&&ps(De,T[Ve])){Ne=Ve;break}Ne===void 0?ke(De,I,H,!0):(_r[Ne-we]=N+1,Ne>=gn?gn=Ne:on=!0,y(De,T[Ne],C,null,I,H,Z,Y,z),lt++)}const ue=on?jE(_r):ni;for(Ve=ue.length-1,N=Ft-1;N>=0;N--){const De=we+N,Ne=T[De],rt=T[De+1],Ze=De+1{const{el:H,type:Z,transition:Y,children:z,shapeFlag:N}=O;if(N&6){he(O.component.subTree,T,C,E);return}if(N&128){O.suspense.move(T,C,E);return}if(N&64){Z.move(O,T,C,F);return}if(Z===Me){r(H,T,C);for(let M=0;MY.enter(H),I);else{const{leave:M,delayLeave:te,afterLeave:Q}=Y,we=()=>{O.ctx.isUnmounted?a(H):r(H,T,C)},Ce=()=>{H._isLeaving&&H[ka](!0),M(H,()=>{we(),Q&&Q()})};te?te(H,we,Ce):Ce()}else r(H,T,C)},ke=(O,T,C,E=!1,I=!1)=>{const{type:H,props:Z,ref:Y,children:z,dynamicChildren:N,shapeFlag:U,patchFlag:M,dirs:te,cacheIndex:Q}=O;if(M===-2&&(I=!1),Y!=null&&(Fa(),xl(Y,null,C,O,!0),Va()),Q!=null&&(T.renderCache[Q]=void 0),U&256){T.ctx.deactivate(O);return}const we=U&1&&te,Ce=!lo(O);let Ve;if(Ce&&(Ve=Z&&Z.onVnodeBeforeUnmount)&&er(Ve,T,O),U&6)Re(O.component,C,E);else{if(U&128){O.suspense.unmount(C,E);return}we&&Vs(O,null,T,"beforeUnmount"),U&64?O.type.remove(O,T,C,F,E):N&&!N.hasOnce&&(H!==Me||M>0&&M&64)?Ie(N,T,C,!1,!0):(H===Me&&M&384||!I&&U&16)&&Ie(z,T,C),E&&Oe(O)}(Ce&&(Ve=Z&&Z.onVnodeUnmounted)||we)&&nn(()=>{Ve&&er(Ve,T,O),we&&Vs(O,null,T,"unmounted")},C)},Oe=O=>{const{type:T,el:C,anchor:E,transition:I}=O;if(T===Me){Pe(C,E);return}if(T===dc){v(O);return}const H=()=>{a(C),I&&!I.persisted&&I.afterLeave&&I.afterLeave()};if(O.shapeFlag&1&&I&&!I.persisted){const{leave:Z,delayLeave:Y}=I,z=()=>Z(C,H);Y?Y(O.el,H,z):z()}else H()},Pe=(O,T)=>{let C;for(;O!==T;)C=p(O),a(O),O=C;a(T)},Re=(O,T,C)=>{const{bum:E,scope:I,job:H,subTree:Z,um:Y,m:z,a:N}=O;Lc(z),Lc(N),E&&ai(E),I.stop(),H&&(H.flags|=8,ke(Z,O,T,C)),Y&&nn(Y,T),nn(()=>{O.isUnmounted=!0},T)},Ie=(O,T,C,E=!1,I=!1,H=0)=>{for(let Z=H;Z{if(O.shapeFlag&6)return B(O.component.subTree);if(O.shapeFlag&128)return O.suspense.next();const T=p(O.anchor||O.el),C=T&&T[r_];return C?p(C):T};let se=!1;const V=(O,T,C)=>{O==null?T._vnode&&ke(T._vnode,null,null,!0):y(T._vnode||null,O,T,null,null,null,C),T._vnode=O,se||(se=!0,Zv(),t_(),se=!1)},F={p:y,um:ke,m:he,r:Oe,mt:ce,mc:x,pc:ne,pbc:R,n:B,o:e};return{render:V,hydrate:void 0,createApp:$E(V)}}function Nf({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Ys({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function BE(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function vm(e,t,n=!1){const r=e.children,a=t.children;if(Fe(r)&&Fe(a))for(let s=0;s>1,e[n[i]]0&&(t[r]=n[s-1]),n[s]=r)}}for(s=n.length,o=n[s-1];s-- >0;)n[s]=o,o=t[o];return n}function I_(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:I_(t)}function Lc(e){if(e)for(let t=0;tIn(UE);function R_(e,t){return Ad(e,null,t)}function GE(e,t){return Ad(e,null,{flush:"sync"})}function Ue(e,t,n){return Ad(e,t,n)}function Ad(e,t,n=dt){const{immediate:r,deep:a,flush:s,once:o}=n,i=Zt({},n),l=t&&r||!t&&s!=="post";let c;if(zl){if(s==="sync"){const m=zE();c=m.__watcherHandles||(m.__watcherHandles=[])}else if(!l){const m=()=>{};return m.stop=ra,m.resume=ra,m.pause=ra,m}}const u=Tn;i.call=(m,_,y)=>Pr(m,u,_,y);let d=!1;s==="post"?i.scheduler=m=>{nn(m,u&&u.suspense)}:s!=="sync"&&(d=!0,i.scheduler=(m,_)=>{_?m():lm(m)}),i.augmentJob=m=>{t&&(m.flags|=4),d&&(m.flags|=2,u&&(m.id=u.uid,m.i=u))};const p=uE(e,t,i);return zl&&(c?c.push(p):l&&p()),p}function qE(e,t,n){const r=this.proxy,a=$t(e)?e.includes(".")?N_(r,e):()=>r[e]:e.bind(r,r);let s;Ge(t)?s=t:(s=t.handler,n=t);const o=uu(this),i=Ad(a,s.bind(r),n);return o(),i}function N_(e,t){const n=t.split(".");return()=>{let r=e;for(let a=0;a{let u,d=dt,p;return GE(()=>{const m=e[a];On(u,m)&&(u=m,c())}),{get(){return l(),n.get?n.get(u):u},set(m){const _=n.set?n.set(m):m;if(!On(_,u)&&!(d!==dt&&On(m,d)))return;const y=r.vnode.props;y&&(t in y||a in y||s in y)&&(`onUpdate:${t}`in y||`onUpdate:${a}`in y||`onUpdate:${s}`in y)||(u=m,c()),r.emit(`update:${t}`,_),On(m,_)&&On(m,d)&&!On(_,p)&&c(),d=m,p=_}}});return i[Symbol.iterator]=()=>{let l=0;return{next(){return l<2?{value:l++?o||dt:i,done:!1}:{done:!0}}}},i}const L_=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${zn(t)}Modifiers`]||e[`${Ga(t)}Modifiers`];function KE(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||dt;let a=n;const s=t.startsWith("update:"),o=s&&L_(r,t.slice(7));o&&(o.trim&&(a=n.map(u=>$t(u)?u.trim():u)),o.number&&(a=n.map(gd)));let i,l=r[i=uc(t)]||r[i=uc(zn(t))];!l&&s&&(l=r[i=uc(Ga(t))]),l&&Pr(l,e,6,a);const c=r[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Pr(c,e,6,a)}}const QE=new WeakMap;function F_(e,t,n=!1){const r=n?QE:t.emitsCache,a=r.get(e);if(a!==void 0)return a;const s=e.emits;let o={},i=!1;if(!Ge(e)){const l=c=>{const u=F_(c,t,!0);u&&(i=!0,Zt(o,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!s&&!i?(wt(e)&&r.set(e,null),null):(Fe(s)?s.forEach(l=>o[l]=null):Zt(o,s),wt(e)&&r.set(e,o),o)}function Dd(e,t){return!e||!hd(t)?!1:(t=t.slice(2).replace(/Once$/,""),yt(e,t[0].toLowerCase()+t.slice(1))||yt(e,Ga(t))||yt(e,t))}function ug(e){const{type:t,vnode:n,proxy:r,withProxy:a,propsOptions:[s],slots:o,attrs:i,emit:l,render:c,renderCache:u,props:d,data:p,setupState:m,ctx:_,inheritAttrs:y}=e,b=Ic(e);let h,g;try{if(n.shapeFlag&4){const v=a||r,k=v;h=qr(c.call(k,v,u,d,m,p,_)),g=i}else{const v=t;h=qr(v.length>1?v(d,{attrs:i,slots:o,emit:l}):v(d,null)),g=t.props?i:XE(i)}}catch(v){Al.length=0,Ed(v,e,1),h=ae(cn)}let w=h;if(g&&y!==!1){const v=Object.keys(g),{shapeFlag:k}=w;v.length&&k&7&&(s&&v.some(Xh)&&(g=ZE(g,s)),w=Wa(w,g,!1,!0))}return n.dirs&&(w=Wa(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&bs(w,n.transition),h=w,Ic(b),h}const XE=e=>{let t;for(const n in e)(n==="class"||n==="style"||hd(n))&&((t||(t={}))[n]=e[n]);return t},ZE=(e,t)=>{const n={};for(const r in e)(!Xh(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function JE(e,t,n){const{props:r,children:a,component:s}=e,{props:o,children:i,patchFlag:l}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?cg(r,o,c):!!o;if(l&8){const u=t.dynamicProps;for(let d=0;de.__isSuspense;function tx(e,t){t&&t.pendingBranch?Fe(e)?t.effects.push(...e):t.effects.push(e):fE(e)}const Me=Symbol.for("v-fgt"),Md=Symbol.for("v-txt"),cn=Symbol.for("v-cmt"),dc=Symbol.for("v-stc"),Al=[];let $n=null;function D(e=!1){Al.push($n=e?null:[])}function nx(){Al.pop(),$n=Al[Al.length-1]||null}let fi=1;function Vc(e,t=!1){fi+=e,e<0&&$n&&t&&($n.hasOnce=!0)}function V_(e){return e.dynamicChildren=fi>0?$n||ni:null,nx(),fi>0&&$n&&$n.push(e),e}function L(e,t,n,r,a,s){return V_(A(e,t,n,r,a,s,!0))}function ge(e,t,n,r,a){return V_(ae(e,t,n,r,a,!0))}function yo(e){return e?e.__v_isVNode===!0:!1}function ps(e,t){return e.type===t.type&&e.key===t.key}const Y_=({key:e})=>e??null,fc=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?$t(e)||Qe(e)||Ge(e)?{i:fn,r:e,k:t,f:!!n}:e:null);function A(e,t=null,n=null,r=0,a=null,s=e===Me?0:1,o=!1,i=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Y_(t),ref:t&&fc(t),scopeId:xd,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:fn};return i?(gm(l,n),s&128&&e.normalize(l)):n&&(l.shapeFlag|=$t(n)?8:16),fi>0&&!o&&$n&&(l.patchFlag>0||s&6)&&l.patchFlag!==32&&$n.push(l),l}const ae=rx;function rx(e,t=null,n=null,r=0,a=null,s=!1){if((!e||e===__)&&(e=cn),yo(e)){const i=Wa(e,t,!0);return n&&gm(i,n),fi>0&&!s&&$n&&(i.shapeFlag&6?$n[$n.indexOf(e)]=i:$n.push(i)),i.patchFlag=-2,i}if(dx(e)&&(e=e.__vccOpts),t){t=Tr(t);let{class:i,style:l}=t;i&&!$t(i)&&(t.class=xe(i)),wt(l)&&(om(l)&&!Fe(l)&&(l=Zt({},l)),t.style=Gt(l))}const o=$t(e)?1:Fc(e)?128:a_(e)?64:wt(e)?4:Ge(e)?2:0;return A(e,t,n,r,a,o,s,!0)}function Tr(e){return e?om(e)||A_(e)?Zt({},e):e:null}function Wa(e,t,n=!1,r=!1){const{props:a,ref:s,patchFlag:o,children:i,transition:l}=e,c=t?hn(a||{},t):a,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Y_(c),ref:t&&t.ref?n&&s?Fe(s)?s.concat(fc(t)):[s,fc(t)]:fc(t):s,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Me?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wa(e.ssContent),ssFallback:e.ssFallback&&Wa(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&bs(u,l.clone(u)),u}function _e(e=" ",t=0){return ae(Md,null,e,t)}function ax(e,t){const n=ae(dc,null,e);return n.staticCount=t,n}function q(e="",t=!1){return t?(D(),ge(cn,null,e)):ae(cn,null,e)}function qr(e){return e==null||typeof e=="boolean"?ae(cn):Fe(e)?ae(Me,null,e.slice()):yo(e)?cs(e):ae(Md,null,String(e))}function cs(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wa(e)}function gm(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Fe(t))n=16;else if(typeof t=="object")if(r&65){const a=t.default;a&&(a._c&&(a._d=!1),gm(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!A_(t)?t._ctx=fn:a===3&&fn&&(fn.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ge(t)?(t={default:t,_ctx:fn},n=32):(t=String(t),r&64?(n=16,t=[_e(t)]):n=8);e.children=t,e.shapeFlag|=n}function hn(...e){const t={};for(let n=0;nTn||fn;let Yc,qp;{const e=yd(),t=(n,r)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(r),s=>{a.length>1?a.forEach(o=>o(s)):a[0](s)}};Yc=t("__VUE_INSTANCE_SETTERS__",n=>Tn=n),qp=t("__VUE_SSR_SETTERS__",n=>zl=n)}const uu=e=>{const t=Tn;return Yc(e),e.scope.on(),()=>{e.scope.off(),Yc(t)}},dg=()=>{Tn&&Tn.scope.off(),Yc(null)};function W_(e){return e.vnode.shapeFlag&4}let zl=!1;function lx(e,t=!1,n=!1){t&&qp(t);const{props:r,children:a}=e.vnode,s=W_(e);RE(e,r,s,t),VE(e,a,n||t);const o=s?ux(e,t):void 0;return t&&qp(!1),o}function ux(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,kE);const{setup:r}=n;if(r){Fa();const a=e.setupContext=r.length>1?B_(e):null,s=uu(e),o=lu(r,e,0,[e.props,a]),i=x1(o);if(Va(),s(),(i||e.sp)&&!lo(e)&&p_(e),i){if(o.then(dg,dg),t)return o.then(l=>{fg(e,l)}).catch(l=>{Ed(l,e,0)});e.asyncDep=o}else fg(e,o)}else H_(e)}function fg(e,t,n){Ge(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:wt(t)&&(e.setupState=X1(t)),H_(e)}function H_(e,t,n){const r=e.type;e.render||(e.render=r.render||ra);{const a=uu(e);Fa();try{CE(e)}finally{Va(),a()}}}const cx={get(e,t){return Sn(e,"get",""),e[t]}};function B_(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,cx),slots:e.slots,emit:e.emit,expose:t}}function Od(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(X1(im(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in kl)return kl[n](e)},has(t,n){return n in t||n in kl}})):e.proxy}function Kp(e,t=!0){return Ge(e)?e.displayName||e.name:e.name||t&&e.__name}function dx(e){return Ge(e)&&"__vccOpts"in e}const G=(e,t)=>iE(e,t,zl);function bt(e,t,n){try{Vc(-1);const r=arguments.length;return r===2?wt(t)&&!Fe(t)?yo(t)?ae(e,null,[t]):ae(e,t):ae(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&yo(n)&&(n=[n]),ae(e,t,n))}finally{Vc(1)}}function LQ(e,t){const n=e.memo;if(n.length!=t.length)return!1;for(let r=0;r0&&$n&&$n.push(e),!0}const fx="3.5.24";let Qp;const pg=typeof window<"u"&&window.trustedTypes;if(pg)try{Qp=pg.createPolicy("vue",{createHTML:e=>e})}catch{}const j_=Qp?e=>Qp.createHTML(e):e=>e,px="http://www.w3.org/2000/svg",hx="http://www.w3.org/1998/Math/MathML",Ta=typeof document<"u"?document:null,hg=Ta&&Ta.createElement("template"),mx={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const a=t==="svg"?Ta.createElementNS(px,e):t==="mathml"?Ta.createElementNS(hx,e):n?Ta.createElement(e,{is:n}):Ta.createElement(e);return e==="select"&&r&&r.multiple!=null&&a.setAttribute("multiple",r.multiple),a},createText:e=>Ta.createTextNode(e),createComment:e=>Ta.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Ta.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,a,s){const o=n?n.previousSibling:t.lastChild;if(a&&(a===s||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===s||!(a=a.nextSibling)););else{hg.innerHTML=j_(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const i=hg.content;if(r==="svg"||r==="mathml"){const l=i.firstChild;for(;l.firstChild;)i.appendChild(l.firstChild);i.removeChild(l)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},ts="transition",nl="animation",pi=Symbol("_vtc"),U_={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},z_=Zt({},u_,U_),vx=e=>(e.displayName="Transition",e.props=z_,e),Vi=vx((e,{slots:t})=>bt(gE,G_(e),t)),Ws=(e,t=[])=>{Fe(e)?e.forEach(n=>n(...t)):e&&e(...t)},mg=e=>e?Fe(e)?e.some(t=>t.length>1):e.length>1:!1;function G_(e){const t={};for(const W in e)W in U_||(t[W]=e[W]);if(e.css===!1)return t;const{name:n="v",type:r,duration:a,enterFromClass:s=`${n}-enter-from`,enterActiveClass:o=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:l=s,appearActiveClass:c=o,appearToClass:u=i,leaveFromClass:d=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,_=gx(a),y=_&&_[0],b=_&&_[1],{onBeforeEnter:h,onEnter:g,onEnterCancelled:w,onLeave:v,onLeaveCancelled:k,onBeforeAppear:$=h,onAppear:S=g,onAppearCancelled:x=w}=t,P=(W,X,ce,ie)=>{W._enterCancelled=ie,os(W,X?u:i),os(W,X?c:o),ce&&ce()},R=(W,X)=>{W._isLeaving=!1,os(W,d),os(W,m),os(W,p),X&&X()},K=W=>(X,ce)=>{const ie=W?S:g,fe=()=>P(X,W,ce);Ws(ie,[X,fe]),vg(()=>{os(X,W?l:s),Ur(X,W?u:i),mg(ie)||gg(X,r,y,fe)})};return Zt(t,{onBeforeEnter(W){Ws(h,[W]),Ur(W,s),Ur(W,o)},onBeforeAppear(W){Ws($,[W]),Ur(W,l),Ur(W,c)},onEnter:K(!1),onAppear:K(!0),onLeave(W,X){W._isLeaving=!0;const ce=()=>R(W,X);Ur(W,d),W._enterCancelled?(Ur(W,p),Xp(W)):(Xp(W),Ur(W,p)),vg(()=>{W._isLeaving&&(os(W,d),Ur(W,m),mg(v)||gg(W,r,b,ce))}),Ws(v,[W,ce])},onEnterCancelled(W){P(W,!1,void 0,!0),Ws(w,[W])},onAppearCancelled(W){P(W,!0,void 0,!0),Ws(x,[W])},onLeaveCancelled(W){R(W),Ws(k,[W])}})}function gx(e){if(e==null)return null;if(wt(e))return[Lf(e.enter),Lf(e.leave)];{const t=Lf(e);return[t,t]}}function Lf(e){return kT(e)}function Ur(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[pi]||(e[pi]=new Set)).add(t)}function os(e,t){t.split(/\s+/).forEach(r=>r&&e.classList.remove(r));const n=e[pi];n&&(n.delete(t),n.size||(e[pi]=void 0))}function vg(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let yx=0;function gg(e,t,n,r){const a=e._endId=++yx,s=()=>{a===e._endId&&r()};if(n!=null)return setTimeout(s,n);const{type:o,timeout:i,propCount:l}=q_(e,t);if(!o)return r();const c=o+"end";let u=0;const d=()=>{e.removeEventListener(c,p),s()},p=m=>{m.target===e&&++u>=l&&d()};setTimeout(()=>{u(n[_]||"").split(", "),a=r(`${ts}Delay`),s=r(`${ts}Duration`),o=yg(a,s),i=r(`${nl}Delay`),l=r(`${nl}Duration`),c=yg(i,l);let u=null,d=0,p=0;t===ts?o>0&&(u=ts,d=o,p=s.length):t===nl?c>0&&(u=nl,d=c,p=l.length):(d=Math.max(o,c),u=d>0?o>c?ts:nl:null,p=u?u===ts?s.length:l.length:0);const m=u===ts&&/\b(?:transform|all)(?:,|$)/.test(r(`${ts}Property`).toString());return{type:u,timeout:d,propCount:p,hasTransform:m}}function yg(e,t){for(;e.length_g(n)+_g(e[r])))}function _g(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Xp(e){return(e?e.ownerDocument:document).body.offsetHeight}function _x(e,t,n){const r=e[pi];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Wc=Symbol("_vod"),K_=Symbol("_vsh"),Dl={name:"show",beforeMount(e,{value:t},{transition:n}){e[Wc]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):rl(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),rl(e,!0),r.enter(e)):r.leave(e,()=>{rl(e,!1)}):rl(e,t))},beforeUnmount(e,{value:t}){rl(e,t)}};function rl(e,t){e.style.display=t?e[Wc]:"none",e[K_]=!t}const bx=Symbol(""),wx=/(?:^|;)\s*display\s*:/;function Sx(e,t,n){const r=e.style,a=$t(n);let s=!1;if(n&&!a){if(t)if($t(t))for(const o of t.split(";")){const i=o.slice(0,o.indexOf(":")).trim();n[i]==null&&pc(r,i,"")}else for(const o in t)n[o]==null&&pc(r,o,"");for(const o in n)o==="display"&&(s=!0),pc(r,o,n[o])}else if(a){if(t!==n){const o=r[bx];o&&(n+=";"+o),r.cssText=n,s=wx.test(n)}}else t&&e.removeAttribute("style");Wc in e&&(e[Wc]=s?r.display:"",e[K_]&&(r.display="none"))}const bg=/\s*!important$/;function pc(e,t,n){if(Fe(n))n.forEach(r=>pc(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Tx(e,t);bg.test(n)?e.setProperty(Ga(r),n.replace(bg,""),"important"):e[r]=n}}const wg=["Webkit","Moz","ms"],Ff={};function Tx(e,t){const n=Ff[t];if(n)return n;let r=zn(t);if(r!=="filter"&&r in e)return Ff[t]=r;r=vd(r);for(let a=0;aVf||(Cx.then(()=>Vf=0),Vf=Date.now());function Dx(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Pr(Mx(r,n.value),t,5,[r])};return n.value=e,n.attached=Ax(),n}function Mx(e,t){if(Fe(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>a=>!a._stopped&&r&&r(a))}else return t}const Cg=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Ox=(e,t,n,r,a,s)=>{const o=a==="svg";t==="class"?_x(e,r,o):t==="style"?Sx(e,n,r):hd(t)?Xh(t)||xx(e,t,n,r,s):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Px(e,t,r,o))?(Eg(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Tg(e,t,r,o,s,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!$t(r))?Eg(e,zn(t),r,s,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Tg(e,t,r,o))};function Px(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&Cg(t)&&Ge(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return Cg(t)&&$t(n)?!1:t in e}const Q_=new WeakMap,X_=new WeakMap,Hc=Symbol("_moveCb"),Ag=Symbol("_enterCb"),$x=e=>(delete e.props.mode,e),Ix=$x({name:"TransitionGroup",props:Zt({},z_,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Vr(),r=l_();let a,s;return cm(()=>{if(!a.length)return;const o=e.moveClass||`${e.name||"v"}-move`;if(!Vx(a[0].el,n.vnode.el,o)){a=[];return}a.forEach(Nx),a.forEach(Lx);const i=a.filter(Fx);Xp(n.vnode.el),i.forEach(l=>{const c=l.el,u=c.style;Ur(c,o),u.transform=u.webkitTransform=u.transitionDuration="";const d=c[Hc]=p=>{p&&p.target!==c||(!p||p.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",d),c[Hc]=null,os(c,o))};c.addEventListener("transitionend",d)}),a=[]}),()=>{const o=st(e),i=G_(o);let l=o.tag||Me;if(a=[],s)for(let c=0;c{i.split(/\s+/).forEach(l=>l&&r.classList.remove(l))}),n.split(/\s+/).forEach(i=>i&&r.classList.add(i)),r.style.display="none";const s=t.nodeType===1?t:t.parentNode;s.appendChild(r);const{hasTransform:o}=q_(r);return s.removeChild(r),o}const hi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Fe(t)?n=>ai(t,n):t};function Yx(e){e.target.composing=!0}function Dg(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Pa=Symbol("_assign");function Mg(e,t,n){return t&&(e=e.trim()),n&&(e=gd(e)),e}const Z_={created(e,{modifiers:{lazy:t,trim:n,number:r}},a){e[Pa]=hi(a);const s=r||a.props&&a.props.type==="number";hs(e,t?"change":"input",o=>{o.target.composing||e[Pa](Mg(e.value,n,s))}),(n||s)&&hs(e,"change",()=>{e.value=Mg(e.value,n,s)}),t||(hs(e,"compositionstart",Yx),hs(e,"compositionend",Dg),hs(e,"change",Dg))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:a,number:s}},o){if(e[Pa]=hi(o),e.composing)return;const i=(s||e.type==="number")&&!/^0\d/.test(e.value)?gd(e.value):e.value,l=t??"";i!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||a&&e.value.trim()===l)||(e.value=l))}},FQ={deep:!0,created(e,t,n){e[Pa]=hi(n),hs(e,"change",()=>{const r=e._modelValue,a=Gl(e),s=e.checked,o=e[Pa];if(Fe(r)){const i=em(r,a),l=i!==-1;if(s&&!l)o(r.concat(a));else if(!s&&l){const c=[...r];c.splice(i,1),o(c)}}else if(Ni(r)){const i=new Set(r);s?i.add(a):i.delete(a),o(i)}else o(J_(e,s))})},mounted:Og,beforeUpdate(e,t,n){e[Pa]=hi(n),Og(e,t,n)}};function Og(e,{value:t,oldValue:n},r){e._modelValue=t;let a;if(Fe(t))a=em(t,r.props.value)>-1;else if(Ni(t))a=t.has(r.props.value);else{if(t===n)return;a=iu(t,J_(e,!0))}e.checked!==a&&(e.checked=a)}const VQ={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const a=Ni(t);hs(e,"change",()=>{const s=Array.prototype.filter.call(e.options,o=>o.selected).map(o=>n?gd(Gl(o)):Gl(o));e[Pa](e.multiple?a?new Set(s):s:s[0]),e._assigning=!0,Xt(()=>{e._assigning=!1})}),e[Pa]=hi(r)},mounted(e,{value:t}){Pg(e,t)},beforeUpdate(e,t,n){e[Pa]=hi(n)},updated(e,{value:t}){e._assigning||Pg(e,t)}};function Pg(e,t){const n=e.multiple,r=Fe(t);if(!(n&&!r&&!Ni(t))){for(let a=0,s=e.options.length;aString(c)===String(i)):o.selected=em(t,i)>-1}else o.selected=t.has(i);else if(iu(Gl(o),t)){e.selectedIndex!==a&&(e.selectedIndex=a);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Gl(e){return"_value"in e?e._value:e.value}function J_(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const Wx=["ctrl","shift","alt","meta"],Hx={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>Wx.some(n=>e[`${n}Key`]&&!t.includes(n))},dn=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((a,...s)=>{for(let o=0;o{const n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(a=>{if(!("key"in a))return;const s=Ga(a.key);if(t.some(o=>o===s||Bx[o]===s))return e(a)}))},jx=Zt({patchProp:Ox},mx);let $g;function Ux(){return $g||($g=WE(jx))}const Bc=((...e)=>{const t=Ux().createApp(...e),{mount:n}=t;return t.mount=r=>{const a=Gx(r);if(!a)return;const s=t._component;!Ge(s)&&!s.render&&!s.template&&(s.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const o=n(a,!1,zx(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),o},t});function zx(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Gx(e){return $t(e)?document.querySelector(e):e}const Bo=typeof document<"u";function eb(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function qx(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&eb(e.default)}const gt=Object.assign;function Yf(e,t){const n={};for(const r in t){const a=t[r];n[r]=$r(a)?a.map(e):e(a)}return n}const Ml=()=>{},$r=Array.isArray;function Ig(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}const tb=/#/g,Kx=/&/g,Qx=/\//g,Xx=/=/g,Zx=/\?/g,nb=/\+/g,Jx=/%5B/g,ek=/%5D/g,rb=/%5E/g,tk=/%60/g,ab=/%7B/g,nk=/%7C/g,sb=/%7D/g,rk=/%20/g;function ym(e){return e==null?"":encodeURI(""+e).replace(nk,"|").replace(Jx,"[").replace(ek,"]")}function ak(e){return ym(e).replace(ab,"{").replace(sb,"}").replace(rb,"^")}function Zp(e){return ym(e).replace(nb,"%2B").replace(rk,"+").replace(tb,"%23").replace(Kx,"%26").replace(tk,"`").replace(ab,"{").replace(sb,"}").replace(rb,"^")}function sk(e){return Zp(e).replace(Xx,"%3D")}function ok(e){return ym(e).replace(tb,"%23").replace(Zx,"%3F")}function ik(e){return ok(e).replace(Qx,"%2F")}function ql(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const lk=/\/$/,uk=e=>e.replace(lk,"");function Wf(e,t,n="/"){let r,a={},s="",o="";const i=t.indexOf("#");let l=t.indexOf("?");return l=i>=0&&l>i?-1:l,l>=0&&(r=t.slice(0,l),s=t.slice(l,i>0?i:t.length),a=e(s.slice(1))),i>=0&&(r=r||t.slice(0,i),o=t.slice(i,t.length)),r=pk(r??t,n),{fullPath:r+s+o,path:r,query:a,hash:ql(o)}}function ck(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Rg(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function dk(e,t,n){const r=t.matched.length-1,a=n.matched.length-1;return r>-1&&r===a&&mi(t.matched[r],n.matched[a])&&ob(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function mi(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ob(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!fk(e[n],t[n]))return!1;return!0}function fk(e,t){return $r(e)?Ng(e,t):$r(t)?Ng(t,e):e===t}function Ng(e,t){return $r(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function pk(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),a=r[r.length-1];(a===".."||a===".")&&r.push("");let s=n.length-1,o,i;for(o=0;o1&&s--;else break;return n.slice(0,s).join("/")+"/"+r.slice(o).join("/")}const ns={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Jp=(function(e){return e.pop="pop",e.push="push",e})({}),Hf=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function hk(e){if(!e)if(Bo){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),uk(e)}const mk=/^[^#]+#/;function vk(e,t){return e.replace(mk,"#")+t}function gk(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const Pd=()=>({left:window.scrollX,top:window.scrollY});function yk(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),a=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!a)return;t=gk(a,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Lg(e,t){return(history.state?history.state.position-t:-1)+e}const eh=new Map;function _k(e,t){eh.set(e,t)}function bk(e){const t=eh.get(e);return eh.delete(e),t}function wk(e){return typeof e=="string"||e&&typeof e=="object"}function ib(e){return typeof e=="string"||typeof e=="symbol"}let Bt=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const lb=Symbol("");Bt.MATCHER_NOT_FOUND+"",Bt.NAVIGATION_GUARD_REDIRECT+"",Bt.NAVIGATION_ABORTED+"",Bt.NAVIGATION_CANCELLED+"",Bt.NAVIGATION_DUPLICATED+"";function vi(e,t){return gt(new Error,{type:e,[lb]:!0},t)}function ba(e,t){return e instanceof Error&&lb in e&&(t==null||!!(e.type&t))}const Sk=["params","query","hash"];function Tk(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of Sk)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Ek(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;ra&&Zp(a)):[r&&Zp(r)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function xk(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=$r(r)?r.map(a=>a==null?null:""+a):r==null?r:""+r)}return t}const ub=Symbol(""),Vg=Symbol(""),$d=Symbol(""),_m=Symbol(""),th=Symbol("");function al(){let e=[];function t(r){return e.push(r),()=>{const a=e.indexOf(r);a>-1&&e.splice(a,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function kk(e,t,n){const r=()=>{e[t].delete(n)};xn(r),m_(r),h_(()=>{e[t].add(n)}),e[t].add(n)}function YQ(e){const t=In(ub,{}).value;t&&kk(t,"leaveGuards",e)}function ds(e,t,n,r,a,s=o=>o()){const o=r&&(r.enterCallbacks[a]=r.enterCallbacks[a]||[]);return()=>new Promise((i,l)=>{const c=p=>{p===!1?l(vi(Bt.NAVIGATION_ABORTED,{from:n,to:t})):p instanceof Error?l(p):wk(p)?l(vi(Bt.NAVIGATION_GUARD_REDIRECT,{from:t,to:p})):(o&&r.enterCallbacks[a]===o&&typeof p=="function"&&o.push(p),i())},u=s(()=>e.call(r&&r.instances[a],t,n,c));let d=Promise.resolve(u);e.length<3&&(d=d.then(c)),d.catch(p=>l(p))})}function Bf(e,t,n,r,a=s=>s()){const s=[];for(const o of e)for(const i in o.components){let l=o.components[i];if(!(t!=="beforeRouteEnter"&&!o.instances[i]))if(eb(l)){const c=(l.__vccOpts||l)[t];c&&s.push(ds(c,n,r,o,i,a))}else{let c=l();s.push(()=>c.then(u=>{if(!u)throw new Error(`Couldn't resolve component "${i}" at "${o.path}"`);const d=qx(u)?u.default:u;o.mods[i]=u,o.components[i]=d;const p=(d.__vccOpts||d)[t];return p&&ds(p,n,r,o,i,a)()}))}}return s}function Ck(e,t){const n=[],r=[],a=[],s=Math.max(t.matched.length,e.matched.length);for(let o=0;omi(c,i))?r.push(i):n.push(i));const l=e.matched[o];l&&(t.matched.find(c=>mi(c,l))||a.push(l))}return[n,r,a]}let Ak=()=>location.protocol+"//"+location.host;function cb(e,t){const{pathname:n,search:r,hash:a}=t,s=e.indexOf("#");if(s>-1){let o=a.includes(e.slice(s))?e.slice(s).length:1,i=a.slice(o);return i[0]!=="/"&&(i="/"+i),Rg(i,"")}return Rg(n,e)+r+a}function Dk(e,t,n,r){let a=[],s=[],o=null;const i=({state:p})=>{const m=cb(e,location),_=n.value,y=t.value;let b=0;if(p){if(n.value=m,t.value=p,o&&o===_){o=null;return}b=y?p.position-y.position:0}else r(m);a.forEach(h=>{h(n.value,_,{delta:b,type:Jp.pop,direction:b?b>0?Hf.forward:Hf.back:Hf.unknown})})};function l(){o=n.value}function c(p){a.push(p);const m=()=>{const _=a.indexOf(p);_>-1&&a.splice(_,1)};return s.push(m),m}function u(){if(document.visibilityState==="hidden"){const{history:p}=window;if(!p.state)return;p.replaceState(gt({},p.state,{scroll:Pd()}),"")}}function d(){for(const p of s)p();s=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:l,listen:c,destroy:d}}function Yg(e,t,n,r=!1,a=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:a?Pd():null}}function Mk(e){const{history:t,location:n}=window,r={value:cb(e,n)},a={value:t.state};a.value||s(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(l,c,u){const d=e.indexOf("#"),p=d>-1?(n.host&&document.querySelector("base")?e:e.slice(d))+l:Ak()+e+l;try{t[u?"replaceState":"pushState"](c,"",p),a.value=c}catch(m){console.error(m),n[u?"replace":"assign"](p)}}function o(l,c){s(l,gt({},t.state,Yg(a.value.back,l,a.value.forward,!0),c,{position:a.value.position}),!0),r.value=l}function i(l,c){const u=gt({},a.value,t.state,{forward:l,scroll:Pd()});s(u.current,u,!0),s(l,gt({},Yg(r.value,l,null),{position:u.position+1},c),!1),r.value=l}return{location:r,state:a,push:i,replace:o}}function Ok(e){e=hk(e);const t=Mk(e),n=Dk(e,t.state,t.location,t.replace);function r(s,o=!0){o||n.pauseListeners(),history.go(s)}const a=gt({location:"",base:e,go:r,createHref:vk.bind(null,e)},t,n);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function Pk(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),Ok(e)}let Zs=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var tn=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(tn||{});const $k={type:Zs.Static,value:""},Ik=/[a-zA-Z0-9_]/;function Rk(e){if(!e)return[[]];if(e==="/")return[[$k]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=tn.Static,r=n;const a=[];let s;function o(){s&&a.push(s),s=[]}let i=0,l,c="",u="";function d(){c&&(n===tn.Static?s.push({type:Zs.Static,value:c}):n===tn.Param||n===tn.ParamRegExp||n===tn.ParamRegExpEnd?(s.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:Zs.Param,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function p(){c+=l}for(;it.length?t.length===1&&t[0]===Dn.Static+Dn.Segment?1:-1:0}function db(e,t){let n=0;const r=e.score,a=t.score;for(;n0&&t[t.length-1]<0}const Yk={strict:!1,end:!0,sensitive:!1};function Wk(e,t,n){const r=Fk(Rk(e.path),n),a=gt(r,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function Hk(e,t){const n=[],r=new Map;t=Ig(Yk,t);function a(d){return r.get(d)}function s(d,p,m){const _=!m,y=jg(d);y.aliasOf=m&&m.record;const b=Ig(t,d),h=[y];if("alias"in d){const v=typeof d.alias=="string"?[d.alias]:d.alias;for(const k of v)h.push(jg(gt({},y,{components:m?m.record.components:y.components,path:k,aliasOf:m?m.record:y})))}let g,w;for(const v of h){const{path:k}=v;if(p&&k[0]!=="/"){const $=p.record.path,S=$[$.length-1]==="/"?"":"/";v.path=p.record.path+(k&&S+k)}if(g=Wk(v,p,b),m?m.alias.push(g):(w=w||g,w!==g&&w.alias.push(g),_&&d.name&&!Ug(g)&&o(d.name)),fb(g)&&l(g),y.children){const $=y.children;for(let S=0;S<$.length;S++)s($[S],g,m&&m.children[S])}m=m||g}return w?()=>{o(w)}:Ml}function o(d){if(ib(d)){const p=r.get(d);p&&(r.delete(d),n.splice(n.indexOf(p),1),p.children.forEach(o),p.alias.forEach(o))}else{const p=n.indexOf(d);p>-1&&(n.splice(p,1),d.record.name&&r.delete(d.record.name),d.children.forEach(o),d.alias.forEach(o))}}function i(){return n}function l(d){const p=Uk(d,n);n.splice(p,0,d),d.record.name&&!Ug(d)&&r.set(d.record.name,d)}function c(d,p){let m,_={},y,b;if("name"in d&&d.name){if(m=r.get(d.name),!m)throw vi(Bt.MATCHER_NOT_FOUND,{location:d});b=m.record.name,_=gt(Bg(p.params,m.keys.filter(w=>!w.optional).concat(m.parent?m.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),d.params&&Bg(d.params,m.keys.map(w=>w.name))),y=m.stringify(_)}else if(d.path!=null)y=d.path,m=n.find(w=>w.re.test(y)),m&&(_=m.parse(y),b=m.record.name);else{if(m=p.name?r.get(p.name):n.find(w=>w.re.test(p.path)),!m)throw vi(Bt.MATCHER_NOT_FOUND,{location:d,currentLocation:p});b=m.record.name,_=gt({},p.params,d.params),y=m.stringify(_)}const h=[];let g=m;for(;g;)h.unshift(g.record),g=g.parent;return{name:b,path:y,params:_,matched:h,meta:jk(h)}}e.forEach(d=>s(d));function u(){n.length=0,r.clear()}return{addRoute:s,resolve:c,removeRoute:o,clearRoutes:u,getRoutes:i,getRecordMatcher:a}}function Bg(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function jg(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Bk(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Bk(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function Ug(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function jk(e){return e.reduce((t,n)=>gt(t,n.meta),{})}function Uk(e,t){let n=0,r=t.length;for(;n!==r;){const s=n+r>>1;db(e,t[s])<0?r=s:n=s+1}const a=zk(e);return a&&(r=t.lastIndexOf(a,r-1)),r}function zk(e){let t=e;for(;t=t.parent;)if(fb(t)&&db(e,t)===0)return t}function fb({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jc(e){const t=In($d),n=In(_m),r=G(()=>{const l=f(e.to);return t.resolve(l)}),a=G(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],d=n.matched;if(!u||!d.length)return-1;const p=d.findIndex(mi.bind(null,u));if(p>-1)return p;const m=zg(l[c-2]);return c>1&&zg(u)===m&&d[d.length-1].path!==m?d.findIndex(mi.bind(null,l[c-2])):p}),s=G(()=>a.value>-1&&Qk(n.params,r.value.params)),o=G(()=>a.value>-1&&a.value===n.matched.length-1&&ob(n.params,r.value.params));function i(l={}){if(Kk(l)){const c=t[f(e.replace)?"replace":"push"](f(e.to)).catch(Ml);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:r,href:G(()=>r.value.href),isActive:s,isExactActive:o,navigate:i}}function Gk(e){return e.length===1?e[0]:e}const qk=ye({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:jc,setup(e,{slots:t}){const n=Qt(jc(e)),{options:r}=In($d),a=G(()=>({[Gg(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[Gg(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const s=t.default&&Gk(t.default(n));return e.custom?s:bt("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},s)}}}),Lt=qk;function Kk(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Qk(e,t){for(const n in t){const r=t[n],a=e[n];if(typeof r=="string"){if(r!==a)return!1}else if(!$r(a)||a.length!==r.length||r.some((s,o)=>s!==a[o]))return!1}return!0}function zg(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Gg=(e,t,n)=>e??t??n,Xk=ye({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=In(th),a=G(()=>e.route||r.value),s=In(Vg,0),o=G(()=>{let c=f(s);const{matched:u}=a.value;let d;for(;(d=u[c])&&!d.components;)c++;return c}),i=G(()=>a.value.matched[o.value]);Cl(Vg,G(()=>o.value+1)),Cl(ub,i),Cl(th,a);const l=oe();return Ue(()=>[l.value,i.value,e.name],([c,u,d],[p,m,_])=>{u&&(u.instances[d]=c,m&&m!==u&&c&&c===p&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!mi(u,m)||!p)&&(u.enterCallbacks[d]||[]).forEach(y=>y(c))},{flush:"post"}),()=>{const c=a.value,u=e.name,d=i.value,p=d&&d.components[u];if(!p)return qg(n.default,{Component:p,route:c});const m=d.props[u],_=m?m===!0?c.params:typeof m=="function"?m(c):m:null,b=bt(p,gt({},_,t,{onVnodeUnmounted:h=>{h.component.isUnmounted&&(d.instances[u]=null)},ref:l}));return qg(n.default,{Component:b,route:c})||b}}});function qg(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Id=Xk;function Zk(e){const t=Hk(e.routes,e),n=e.parseQuery||Ek,r=e.stringifyQuery||Fg,a=e.history,s=al(),o=al(),i=al(),l=ur(ns);let c=ns;Bo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Yf.bind(null,B=>""+B),d=Yf.bind(null,ik),p=Yf.bind(null,ql);function m(B,se){let V,F;return ib(B)?(V=t.getRecordMatcher(B),F=se):F=B,t.addRoute(F,V)}function _(B){const se=t.getRecordMatcher(B);se&&t.removeRoute(se)}function y(){return t.getRoutes().map(B=>B.record)}function b(B){return!!t.getRecordMatcher(B)}function h(B,se){if(se=gt({},se||l.value),typeof B=="string"){const C=Wf(n,B,se.path),E=t.resolve({path:C.path},se),I=a.createHref(C.fullPath);return gt(C,E,{params:p(E.params),hash:ql(C.hash),redirectedFrom:void 0,href:I})}let V;if(B.path!=null)V=gt({},B,{path:Wf(n,B.path,se.path).path});else{const C=gt({},B.params);for(const E in C)C[E]==null&&delete C[E];V=gt({},B,{params:d(C)}),se.params=d(se.params)}const F=t.resolve(V,se),J=B.hash||"";F.params=u(p(F.params));const O=ck(r,gt({},B,{hash:ak(J),path:F.path})),T=a.createHref(O);return gt({fullPath:O,hash:J,query:r===Fg?xk(B.query):B.query||{}},F,{redirectedFrom:void 0,href:T})}function g(B){return typeof B=="string"?Wf(n,B,l.value.path):gt({},B)}function w(B,se){if(c!==B)return vi(Bt.NAVIGATION_CANCELLED,{from:se,to:B})}function v(B){return S(B)}function k(B){return v(gt(g(B),{replace:!0}))}function $(B,se){const V=B.matched[B.matched.length-1];if(V&&V.redirect){const{redirect:F}=V;let J=typeof F=="function"?F(B,se):F;return typeof J=="string"&&(J=J.includes("?")||J.includes("#")?J=g(J):{path:J},J.params={}),gt({query:B.query,hash:B.hash,params:J.path!=null?{}:B.params},J)}}function S(B,se){const V=c=h(B),F=l.value,J=B.state,O=B.force,T=B.replace===!0,C=$(V,F);if(C)return S(gt(g(C),{state:typeof C=="object"?gt({},J,C.state):J,force:O,replace:T}),se||V);const E=V;E.redirectedFrom=se;let I;return!O&&dk(r,F,V)&&(I=vi(Bt.NAVIGATION_DUPLICATED,{to:E,from:F}),he(F,F,!0,!1)),(I?Promise.resolve(I):R(E,F)).catch(H=>ba(H)?ba(H,Bt.NAVIGATION_GUARD_REDIRECT)?H:re(H):ne(H,E,F)).then(H=>{if(H){if(ba(H,Bt.NAVIGATION_GUARD_REDIRECT))return S(gt({replace:T},g(H.to),{state:typeof H.to=="object"?gt({},J,H.to.state):J,force:O}),se||E)}else H=W(E,F,!0,T,J);return K(E,F,H),H})}function x(B,se){const V=w(B,se);return V?Promise.reject(V):Promise.resolve()}function P(B){const se=Pe.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(B):B()}function R(B,se){let V;const[F,J,O]=Ck(B,se);V=Bf(F.reverse(),"beforeRouteLeave",B,se);for(const C of F)C.leaveGuards.forEach(E=>{V.push(ds(E,B,se))});const T=x.bind(null,B,se);return V.push(T),Ie(V).then(()=>{V=[];for(const C of s.list())V.push(ds(C,B,se));return V.push(T),Ie(V)}).then(()=>{V=Bf(J,"beforeRouteUpdate",B,se);for(const C of J)C.updateGuards.forEach(E=>{V.push(ds(E,B,se))});return V.push(T),Ie(V)}).then(()=>{V=[];for(const C of O)if(C.beforeEnter)if($r(C.beforeEnter))for(const E of C.beforeEnter)V.push(ds(E,B,se));else V.push(ds(C.beforeEnter,B,se));return V.push(T),Ie(V)}).then(()=>(B.matched.forEach(C=>C.enterCallbacks={}),V=Bf(O,"beforeRouteEnter",B,se,P),V.push(T),Ie(V))).then(()=>{V=[];for(const C of o.list())V.push(ds(C,B,se));return V.push(T),Ie(V)}).catch(C=>ba(C,Bt.NAVIGATION_CANCELLED)?C:Promise.reject(C))}function K(B,se,V){i.list().forEach(F=>P(()=>F(B,se,V)))}function W(B,se,V,F,J){const O=w(B,se);if(O)return O;const T=se===ns,C=Bo?history.state:{};V&&(F||T?a.replace(B.fullPath,gt({scroll:T&&C&&C.scroll},J)):a.push(B.fullPath,J)),l.value=B,he(B,se,V,T),re()}let X;function ce(){X||(X=a.listen((B,se,V)=>{if(!Re.listening)return;const F=h(B),J=$(F,Re.currentRoute.value);if(J){S(gt(J,{replace:!0,force:!0}),F).catch(Ml);return}c=F;const O=l.value;Bo&&_k(Lg(O.fullPath,V.delta),Pd()),R(F,O).catch(T=>ba(T,Bt.NAVIGATION_ABORTED|Bt.NAVIGATION_CANCELLED)?T:ba(T,Bt.NAVIGATION_GUARD_REDIRECT)?(S(gt(g(T.to),{force:!0}),F).then(C=>{ba(C,Bt.NAVIGATION_ABORTED|Bt.NAVIGATION_DUPLICATED)&&!V.delta&&V.type===Jp.pop&&a.go(-1,!1)}).catch(Ml),Promise.reject()):(V.delta&&a.go(-V.delta,!1),ne(T,F,O))).then(T=>{T=T||W(F,O,!1),T&&(V.delta&&!ba(T,Bt.NAVIGATION_CANCELLED)?a.go(-V.delta,!1):V.type===Jp.pop&&ba(T,Bt.NAVIGATION_ABORTED|Bt.NAVIGATION_DUPLICATED)&&a.go(-1,!1)),K(F,O,T)}).catch(Ml)}))}let ie=al(),fe=al(),j;function ne(B,se,V){re(B);const F=fe.list();return F.length?F.forEach(J=>J(B,se,V)):console.error(B),Promise.reject(B)}function le(){return j&&l.value!==ns?Promise.resolve():new Promise((B,se)=>{ie.add([B,se])})}function re(B){return j||(j=!B,ce(),ie.list().forEach(([se,V])=>B?V(B):se()),ie.reset()),B}function he(B,se,V,F){const{scrollBehavior:J}=e;if(!Bo||!J)return Promise.resolve();const O=!V&&bk(Lg(B.fullPath,0))||(F||!V)&&history.state&&history.state.scroll||null;return Xt().then(()=>J(B,se,O)).then(T=>T&&yk(T)).catch(T=>ne(T,B,se))}const ke=B=>a.go(B);let Oe;const Pe=new Set,Re={currentRoute:l,listening:!0,addRoute:m,removeRoute:_,clearRoutes:t.clearRoutes,hasRoute:b,getRoutes:y,resolve:h,options:e,push:v,replace:k,go:ke,back:()=>ke(-1),forward:()=>ke(1),beforeEach:s.add,beforeResolve:o.add,afterEach:i.add,onError:fe.add,isReady:le,install(B){B.component("RouterLink",Lt),B.component("RouterView",Id),B.config.globalProperties.$router=Re,Object.defineProperty(B.config.globalProperties,"$route",{enumerable:!0,get:()=>f(l)}),Bo&&!Oe&&l.value===ns&&(Oe=!0,v(a.location).catch(F=>{}));const se={};for(const F in ns)Object.defineProperty(se,F,{get:()=>l.value[F],enumerable:!0});B.provide($d,Re),B.provide(_m,sm(se)),B.provide(th,l);const V=B.unmount;Pe.add(B),B.unmount=function(){Pe.delete(B),Pe.size<1&&(c=ns,X&&X(),X=null,l.value=ns,Oe=!1,j=!1),V()}}};function Ie(B){return B.reduce((se,V)=>se.then(()=>P(V)),Promise.resolve())}return Re}function Os(){return In($d)}function cu(e){return In(_m)}const Jk={class:"pagination col-md-2"},e4={class:"dropdown"},t4={type:"button",class:"btn btn-default dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},n4={class:"dropdown-menu"},r4=["onClick"],a4=ye({__name:"ItemsPerPage",props:Ya({options:{default:()=>[20,35,50,75]}},{modelValue:{default:50},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=Ms(e,"modelValue");return(n,r)=>(D(),L("div",Jk,[A("div",e4,[r[1]||(r[1]=A("label",{class:"control-label"},"Items Per Page:",-1)),A("button",t4,[_e(me(t.value)+" ",1),r[0]||(r[0]=A("span",{class:"caret"},null,-1))]),A("ul",n4,[(D(!0),L(Me,null,Xe(e.options,a=>(D(),L("li",{key:a},[A("a",{onClick:dn(s=>t.value=a,["prevent"]),href:"#"},me(a),9,r4)]))),128))])])]))}}),Ke=(e,t)=>{const n=e.__vccOpts||e;for(const[r,a]of t)n[r]=a;return n},s4=Ke(a4,[["__scopeId","data-v-3b220daf"]]),o4={key:0,class:"col align-self-center"},i4={"aria-label":"pagination",class:"pagination justify-content-center"},l4=["aria-pressed","disabled","aria-label","onClick"],u4=ye({__name:"PaginationStrip",props:Ya({itemsPerPage:{},totalCount:{},pageBuffer:{default:5}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=Ms(e,"modelValue"),r=G(()=>Math.ceil(t.totalCount/t.itemsPerPage)),a=G(()=>r.value>1),s=G(()=>t.pageBuffer*2);Ue(r,i=>{i{const i=[];i.push({label:"Previous",page:Math.max(n.value-1,1),key:"Previous Page",class:{disabled:n.value===1}}),n.value>t.pageBuffer+1&&r.value>=s.value&&i.push({label:"1",page:1,key:"First Page"},{label:"...",page:n.value-t.pageBuffer,key:`Back ${t.pageBuffer}`});let l=n.value-t.pageBuffer,c=n.value+t.pageBuffer;l<1&&(c-=l,l=1);let u=!1;c>=r.value&&(c=r.value,u=!0);for(let d=l;d<=c;d++)i.push({label:`${d}`,page:d,key:`Page ${d}`,class:{active:d===n.value}});return u||i.push({label:"...",page:n.value+t.pageBuffer,key:`Forward ${t.pageBuffer}`},{label:`${r.value}`,page:r.value,key:"Last Page"}),i.push({label:"Next",page:Math.min(n.value+1,r.value),key:"Next Page",class:{disabled:n.value===r.value}}),i});return(i,l)=>a.value?(D(),L("div",o4,[A("ul",i4,[(D(!0),L(Me,null,Xe(o.value,c=>(D(),L("li",{class:"page-item",key:c.key},[A("button",{"aria-pressed":c.class?.active,disabled:c.class?.disabled,"aria-label":c.key,class:xe(["page-link",c.class]),onClick:u=>n.value=c.page},me(c.label),11,l4)]))),128))])])):q("",!0)}}),pb=Ke(u4,[["__scopeId","data-v-9326e548"]]);let hb;const Rd=e=>hb=e,mb=Symbol();function nh(e){return e&&typeof e=="object"&&Object.prototype.toString.call(e)==="[object Object]"&&typeof e.toJSON!="function"}var Ol;(function(e){e.direct="direct",e.patchObject="patch object",e.patchFunction="patch function"})(Ol||(Ol={}));function c4(){const e=$1(!0),t=e.run(()=>oe({}));let n=[],r=[];const a=im({install(s){Rd(a),a._a=s,s.provide(mb,a),s.config.globalProperties.$pinia=a,r.forEach(o=>n.push(o)),r=[]},use(s){return this._a?n.push(s):r.push(s),this},_p:n,_a:null,_e:e,_s:new Map,state:t});return a}const vb=()=>{};function Kg(e,t,n,r=vb){e.add(t);const a=()=>{e.delete(t)&&r()};return!n&&_d()&&tm(a),a}function Ro(e,...t){e.forEach(n=>{n(...t)})}const d4=e=>e(),Qg=Symbol(),jf=Symbol();function rh(e,t){e instanceof Map&&t instanceof Map?t.forEach((n,r)=>e.set(r,n)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(const n in t){if(!t.hasOwnProperty(n))continue;const r=t[n],a=e[n];nh(a)&&nh(r)&&e.hasOwnProperty(n)&&!Qe(r)&&!Mr(r)?e[n]=rh(a,r):e[n]=r}return e}const f4=Symbol();function p4(e){return!nh(e)||!Object.prototype.hasOwnProperty.call(e,f4)}const{assign:is}=Object;function h4(e){return!!(Qe(e)&&e.effect)}function m4(e,t,n,r){const{state:a,actions:s,getters:o}=t,i=n.state.value[e];let l;function c(){i||(n.state.value[e]=a?a():{});const u=rE(n.state.value[e]);return is(u,s,Object.keys(o||{}).reduce((d,p)=>(d[p]=im(G(()=>{Rd(n);const m=n._s.get(e);return o[p].call(m,m)})),d),{}))}return l=gb(e,c,t,n,r,!0),l}function gb(e,t,n={},r,a,s){let o;const i=is({actions:{}},n),l={deep:!0};let c,u,d=new Set,p=new Set,m;const _=r.state.value[e];!s&&!_&&(r.state.value[e]={}),oe({});let y;function b(x){let P;c=u=!1,typeof x=="function"?(x(r.state.value[e]),P={type:Ol.patchFunction,storeId:e,events:m}):(rh(r.state.value[e],x),P={type:Ol.patchObject,payload:x,storeId:e,events:m});const R=y=Symbol();Xt().then(()=>{y===R&&(c=!0)}),u=!0,Ro(d,P,r.state.value[e])}const h=s?function(){const{state:P}=n,R=P?P():{};this.$patch(K=>{is(K,R)})}:vb;function g(){o.stop(),d.clear(),p.clear(),r._s.delete(e)}const w=(x,P="")=>{if(Qg in x)return x[jf]=P,x;const R=function(){Rd(r);const K=Array.from(arguments),W=new Set,X=new Set;function ce(j){W.add(j)}function ie(j){X.add(j)}Ro(p,{args:K,name:R[jf],store:k,after:ce,onError:ie});let fe;try{fe=x.apply(this&&this.$id===e?this:k,K)}catch(j){throw Ro(X,j),j}return fe instanceof Promise?fe.then(j=>(Ro(W,j),j)).catch(j=>(Ro(X,j),Promise.reject(j))):(Ro(W,fe),fe)};return R[Qg]=!0,R[jf]=P,R},v={_p:r,$id:e,$onAction:Kg.bind(null,p),$patch:b,$reset:h,$subscribe(x,P={}){const R=Kg(d,x,P.detached,()=>K()),K=o.run(()=>Ue(()=>r.state.value[e],W=>{(P.flush==="sync"?u:c)&&x({storeId:e,type:Ol.direct,events:m},W)},is({},l,P)));return R},$dispose:g},k=Qt(v);r._s.set(e,k);const S=(r._a&&r._a.runWithContext||d4)(()=>r._e.run(()=>(o=$1()).run(()=>t({action:w}))));for(const x in S){const P=S[x];if(Qe(P)&&!h4(P)||Mr(P))s||(_&&p4(P)&&(Qe(P)?P.value=_[x]:rh(P,_[x])),r.state.value[e][x]=P);else if(typeof P=="function"){const R=w(P,x);S[x]=R,i.actions[x]=P}}return is(k,S),is(st(k),S),Object.defineProperty(k,"$state",{get:()=>r.state.value[e],set:x=>{b(P=>{is(P,x)})}}),r._p.forEach(x=>{is(k,o.run(()=>x({store:k,app:r._a,pinia:r,options:i})))}),_&&s&&n.hydrate&&n.hydrate(k.$state,_),c=!0,u=!0,k}function Qn(e,t,n){let r;const a=typeof t=="function";r=a?n:t;function s(o,i){const l=IE();return o=o||(l?In(mb,null):null),o&&Rd(o),o=hb,o._s.has(e)||(a?gb(e,t,r,o):m4(e,r,o)),o._s.get(e)}return s.$id=e,s}function Et(e){const t=st(e),n={};for(const r in t){const a=t[r];a.effect?n[r]=G({get:()=>e[r],set(s){e[r]=s}}):(Qe(a)||Mr(a))&&(n[r]=Hp(e,r))}return n}let ah=null;function v4(e){ah=e}function du(){if(!ah)throw new Error("defaultConfig has not been initialized");return ah}const vn=Qn("ServiceControlStore",()=>{const e=oe(),t=oe(),n=G(()=>t.value==null||t.value===""||t.value==="!"),r=G(()=>!n.value);function a(){if(e.value||o(),!e.value)throw new Error("Service Control URL is not configured");return e.value}function s(){return t.value||o(),t.value}function o(){const h=new URLSearchParams(window.location.search).get("mu"),g=du();g.service_control_url?(e.value=g.service_control_url,console.debug(`setting ServiceControl Url to its default value: ${g.service_control_url}`)):console.warn("ServiceControl Url is not defined."),h?(t.value=h,window.localStorage.setItem("mu",t.value),console.debug(`Monitoring Url found in QS and stored in local storage: ${t.value}`)):window.localStorage.getItem("mu")?(t.value=window.localStorage.getItem("mu"),console.debug(`Monitoring Url, not in QS, found in local storage: ${t.value}`)):g.monitoring_url?(t.value=g.monitoring_url,console.debug(`setting Monitoring Url to its default value: ${g.monitoring_url}`)):console.warn("Monitoring Url is not defined.")}async function i(b,h){const g={method:"GET",cache:h?.cache??"default",headers:{Accept:"application/json"}};return await fetch(`${a()}${b}`,g)}async function l(b){const h=await fetch(`${a()}${b}`);if(!h.ok)throw new Error(h.statusText??"No response");const g=await h.json();return[h,g]}async function c(b){if(n.value)return[];const h=await fetch(`${s()}${b}`),g=await h.json();return[h,g]}async function u(b,h=null){const g={method:"POST"};return h!=null&&(g.headers={"Content-Type":"application/json"},g.body=JSON.stringify(h)),await fetch(`${a()}${b}`,g)}async function d(b,h){const g={method:"PUT"};return h!=null&&(g.headers={"Content-Type":"application/json"},g.body=JSON.stringify(h)),await fetch(`${a()}${b}`,g)}async function p(b){const h={method:"DELETE"};return await fetch(`${a()}${b}`,h)}async function m(b){const h={method:"DELETE"};return await fetch(`${s()}${b}`,h)}async function _(){if(n.value)return Promise.resolve(null);const b={method:"OPTIONS"};return await fetch(s()??"",b)}async function y(b,h){const g={method:"PATCH"};return h!=null&&(g.headers={"Content-Type":"application/json"},g.body=JSON.stringify(h)),await fetch(`${a()}${b}`,g)}return{refresh:o,serviceControlUrl:e,monitoringUrl:t,isMonitoringDisabled:n,isMonitoringEnabled:r,fetchFromServiceControl:i,fetchTypedFromServiceControl:l,fetchTypedFromMonitoring:c,putToServiceControl:d,postToServiceControl:u,patchToServiceControl:y,deleteFromServiceControl:p,deleteFromMonitoring:m,optionsFromMonitoring:_}}),g4={class:"row"},yb=ye({__name:"AutoRefreshDataView",props:Ya({apiUrl:{},itemsPerPageOptions:{default:()=>[20,35,50,75]},itemsPerPage:{default:50},autoRefreshSeconds:{},showPagination:{type:Boolean,default:!0},showItemsPerPage:{type:Boolean,default:!1}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e;let n;const r=Ms(e,"modelValue"),a=vn(),s=oe(1),o=oe(t.itemsPerPage);Ue(()=>t.autoRefreshSeconds,()=>{c(),l()}),Ue(o,()=>i()),Ue(s,()=>i());async function i(){const[u,d]=await a.fetchTypedFromServiceControl(`${t.apiUrl}?page=${s.value}&per_page=${o.value}`);u.ok&&(r.value.totalCount=parseInt(u.headers.get("Total-Count")??"0"),r.value.data=d)}function l(){t.autoRefreshSeconds&&(n=window.setInterval(()=>{i()},t.autoRefreshSeconds*1e3))}function c(){window.clearInterval(n)}return ut(()=>{l(),i()}),xn(()=>{c()}),(u,d)=>(D(),L(Me,null,[Ee(u.$slots,"data"),A("div",g4,[e.showItemsPerPage?(D(),ge(s4,{key:0,modelValue:o.value,"onUpdate:modelValue":d[0]||(d[0]=p=>o.value=p),options:e.itemsPerPageOptions},null,8,["modelValue","options"])):q("",!0),e.showPagination?(D(),ge(pb,{key:1,modelValue:s.value,"onUpdate:modelValue":d[1]||(d[1]=p=>s.value=p),totalCount:r.value.totalCount,itemsPerPage:o.value},null,8,["modelValue","totalCount","itemsPerPage"])):q("",!0)]),Ee(u.$slots,"footer")],64))}});var _b;function Ae(){return _b.apply(null,arguments)}function y4(e){_b=e}function Ir(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function co(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function ht(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function bm(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(ht(e,t))return!1;return!0}function Fn(e){return e===void 0}function Ha(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function fu(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function bb(e,t){var n=[],r,a=e.length;for(r=0;r>>0,r;for(r=0;r0)for(n=0;n=0;return(s?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var Em=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,zu=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,zf={},oi={};function He(e,t,n,r){var a=r;typeof r=="string"&&(a=function(){return this[r]()}),e&&(oi[e]=a),t&&(oi[t[0]]=function(){return ua(a.apply(this,arguments),t[1],t[2])}),n&&(oi[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function T4(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function E4(e){var t=e.match(Em),n,r;for(n=0,r=t.length;n=0&&zu.test(e);)e=e.replace(zu,r),zu.lastIndex=0,n-=1;return e}var x4={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function k4(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(Em).map(function(r){return r==="MMMM"||r==="MM"||r==="DD"||r==="dddd"?r.slice(1):r}).join(""),this._longDateFormat[e])}var C4="Invalid date";function A4(){return this._invalidDate}var D4="%d",M4=/\d{1,2}/;function O4(e){return this._ordinal.replace("%d",e)}var P4={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function $4(e,t,n,r){var a=this._relativeTime[n];return va(a)?a(e,t,n,r):a.replace(/%d/i,e)}function I4(e,t){var n=this._relativeTime[e>0?"future":"past"];return va(n)?n(t):n.replace(/%s/i,t)}var Jg={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function vr(e){return typeof e=="string"?Jg[e]||Jg[e.toLowerCase()]:void 0}function xm(e){var t={},n,r;for(r in e)ht(e,r)&&(n=vr(r),n&&(t[n]=e[r]));return t}var R4={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function N4(e){var t=[],n;for(n in e)ht(e,n)&&t.push({unit:n,priority:R4[n]});return t.sort(function(r,a){return r.priority-a.priority}),t}var Eb=/\d/,Xn=/\d\d/,xb=/\d{3}/,km=/\d{4}/,Ld=/[+-]?\d{6}/,Rt=/\d\d?/,kb=/\d\d\d\d?/,Cb=/\d\d\d\d\d\d?/,Fd=/\d{1,3}/,Cm=/\d{1,4}/,Vd=/[+-]?\d{1,6}/,Yi=/\d+/,Yd=/[+-]?\d+/,L4=/Z|[+-]\d\d:?\d\d/gi,Wd=/Z|[+-]\d\d(?::?\d\d)?/gi,F4=/[+-]?\d+(\.\d{1,3})?/,hu=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,Wi=/^[1-9]\d?/,Am=/^([1-9]\d|\d)/,Uc;Uc={};function $e(e,t,n){Uc[e]=va(t)?t:function(r,a){return r&&n?n:t}}function V4(e,t){return ht(Uc,e)?Uc[e](t._strict,t._locale):new RegExp(Y4(e))}function Y4(e){return $a(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,n,r,a,s){return n||r||a||s}))}function $a(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function nr(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function ot(e){var t=+e,n=0;return t!==0&&isFinite(t)&&(n=nr(t)),n}var lh={};function xt(e,t){var n,r=t,a;for(typeof e=="string"&&(e=[e]),Ha(t)&&(r=function(s,o){o[t]=ot(s)}),a=e.length,n=0;n68?1900:2e3)};var Ab=Hi("FullYear",!0);function j4(){return Hd(this.year())}function Hi(e,t){return function(n){return n!=null?(Db(this,e,n),Ae.updateOffset(this,t),this):Kl(this,e)}}function Kl(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function Db(e,t,n){var r,a,s,o,i;if(!(!e.isValid()||isNaN(n))){switch(r=e._d,a=e._isUTC,t){case"Milliseconds":return void(a?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(a?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(a?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(a?r.setUTCHours(n):r.setHours(n));case"Date":return void(a?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}s=n,o=e.month(),i=e.date(),i=i===29&&o===1&&!Hd(s)?28:i,a?r.setUTCFullYear(s,o,i):r.setFullYear(s,o,i)}}function U4(e){return e=vr(e),va(this[e])?this[e]():this}function z4(e,t){if(typeof e=="object"){e=xm(e);var n=N4(e),r,a=n.length;for(r=0;r=0?(i=new Date(e+400,t,n,r,a,s,o),isFinite(i.getFullYear())&&i.setFullYear(e)):i=new Date(e,t,n,r,a,s,o),i}function Ql(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function zc(e,t,n){var r=7+t-n,a=(7+Ql(e,0,r).getUTCDay()-t)%7;return-a+r-1}function Rb(e,t,n,r,a){var s=(7+n-r)%7,o=zc(e,r,a),i=1+7*(t-1)+s+o,l,c;return i<=0?(l=e-1,c=Pl(l)+i):i>Pl(e)?(l=e+1,c=i-Pl(e)):(l=e,c=i),{year:l,dayOfYear:c}}function Xl(e,t,n){var r=zc(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1,s,o;return a<1?(o=e.year()-1,s=a+Ia(o,t,n)):a>Ia(e.year(),t,n)?(s=a-Ia(e.year(),t,n),o=e.year()+1):(o=e.year(),s=a),{week:s,year:o}}function Ia(e,t,n){var r=zc(e,t,n),a=zc(e+1,t,n);return(Pl(e)-r+a)/7}He("w",["ww",2],"wo","week");He("W",["WW",2],"Wo","isoWeek");$e("w",Rt,Wi);$e("ww",Rt,Xn);$e("W",Rt,Wi);$e("WW",Rt,Xn);mu(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=ot(e)});function sC(e){return Xl(e,this._week.dow,this._week.doy).week}var oC={dow:0,doy:6};function iC(){return this._week.dow}function lC(){return this._week.doy}function uC(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function cC(e){var t=Xl(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}He("d",0,"do","day");He("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});He("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});He("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});He("e",0,0,"weekday");He("E",0,0,"isoWeekday");$e("d",Rt);$e("e",Rt);$e("E",Rt);$e("dd",function(e,t){return t.weekdaysMinRegex(e)});$e("ddd",function(e,t){return t.weekdaysShortRegex(e)});$e("dddd",function(e,t){return t.weekdaysRegex(e)});mu(["dd","ddd","dddd"],function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);a!=null?t.d=a:et(n).invalidWeekday=e});mu(["d","e","E"],function(e,t,n,r){t[r]=ot(e)});function dC(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function fC(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Mm(e,t){return e.slice(t,7).concat(e.slice(0,t))}var pC="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Nb="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),hC="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),mC=hu,vC=hu,gC=hu;function yC(e,t){var n=Ir(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?Mm(n,this._week.dow):e?n[e.day()]:n}function _C(e){return e===!0?Mm(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function bC(e){return e===!0?Mm(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function wC(e,t,n){var r,a,s,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)s=ma([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(s,"").toLocaleLowerCase();return n?t==="dddd"?(a=zt.call(this._weekdaysParse,o),a!==-1?a:null):t==="ddd"?(a=zt.call(this._shortWeekdaysParse,o),a!==-1?a:null):(a=zt.call(this._minWeekdaysParse,o),a!==-1?a:null):t==="dddd"?(a=zt.call(this._weekdaysParse,o),a!==-1||(a=zt.call(this._shortWeekdaysParse,o),a!==-1)?a:(a=zt.call(this._minWeekdaysParse,o),a!==-1?a:null)):t==="ddd"?(a=zt.call(this._shortWeekdaysParse,o),a!==-1||(a=zt.call(this._weekdaysParse,o),a!==-1)?a:(a=zt.call(this._minWeekdaysParse,o),a!==-1?a:null)):(a=zt.call(this._minWeekdaysParse,o),a!==-1||(a=zt.call(this._weekdaysParse,o),a!==-1)?a:(a=zt.call(this._shortWeekdaysParse,o),a!==-1?a:null))}function SC(e,t,n){var r,a,s;if(this._weekdaysParseExact)return wC.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=ma([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(s="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(s.replace(".",""),"i")),n&&t==="dddd"&&this._fullWeekdaysParse[r].test(e))return r;if(n&&t==="ddd"&&this._shortWeekdaysParse[r].test(e))return r;if(n&&t==="dd"&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function TC(e){if(!this.isValid())return e!=null?this:NaN;var t=Kl(this,"Day");return e!=null?(e=dC(e,this.localeData()),this.add(e-t,"d")):t}function EC(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function xC(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=fC(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function kC(e){return this._weekdaysParseExact?(ht(this,"_weekdaysRegex")||Om.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(ht(this,"_weekdaysRegex")||(this._weekdaysRegex=mC),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function CC(e){return this._weekdaysParseExact?(ht(this,"_weekdaysRegex")||Om.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(ht(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=vC),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function AC(e){return this._weekdaysParseExact?(ht(this,"_weekdaysRegex")||Om.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(ht(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=gC),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Om(){function e(u,d){return d.length-u.length}var t=[],n=[],r=[],a=[],s,o,i,l,c;for(s=0;s<7;s++)o=ma([2e3,1]).day(s),i=$a(this.weekdaysMin(o,"")),l=$a(this.weekdaysShort(o,"")),c=$a(this.weekdays(o,"")),t.push(i),n.push(l),r.push(c),a.push(i),a.push(l),a.push(c);t.sort(e),n.sort(e),r.sort(e),a.sort(e),this._weekdaysRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function Pm(){return this.hours()%12||12}function DC(){return this.hours()||24}He("H",["HH",2],0,"hour");He("h",["hh",2],0,Pm);He("k",["kk",2],0,DC);He("hmm",0,0,function(){return""+Pm.apply(this)+ua(this.minutes(),2)});He("hmmss",0,0,function(){return""+Pm.apply(this)+ua(this.minutes(),2)+ua(this.seconds(),2)});He("Hmm",0,0,function(){return""+this.hours()+ua(this.minutes(),2)});He("Hmmss",0,0,function(){return""+this.hours()+ua(this.minutes(),2)+ua(this.seconds(),2)});function Lb(e,t){He(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}Lb("a",!0);Lb("A",!1);function Fb(e,t){return t._meridiemParse}$e("a",Fb);$e("A",Fb);$e("H",Rt,Am);$e("h",Rt,Wi);$e("k",Rt,Wi);$e("HH",Rt,Xn);$e("hh",Rt,Xn);$e("kk",Rt,Xn);$e("hmm",kb);$e("hmmss",Cb);$e("Hmm",kb);$e("Hmmss",Cb);xt(["H","HH"],an);xt(["k","kk"],function(e,t,n){var r=ot(e);t[an]=r===24?0:r});xt(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e});xt(["h","hh"],function(e,t,n){t[an]=ot(e),et(n).bigHour=!0});xt("hmm",function(e,t,n){var r=e.length-2;t[an]=ot(e.substr(0,r)),t[Er]=ot(e.substr(r)),et(n).bigHour=!0});xt("hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[an]=ot(e.substr(0,r)),t[Er]=ot(e.substr(r,2)),t[Oa]=ot(e.substr(a)),et(n).bigHour=!0});xt("Hmm",function(e,t,n){var r=e.length-2;t[an]=ot(e.substr(0,r)),t[Er]=ot(e.substr(r))});xt("Hmmss",function(e,t,n){var r=e.length-4,a=e.length-2;t[an]=ot(e.substr(0,r)),t[Er]=ot(e.substr(r,2)),t[Oa]=ot(e.substr(a))});function MC(e){return(e+"").toLowerCase().charAt(0)==="p"}var OC=/[ap]\.?m?\.?/i,PC=Hi("Hours",!0);function $C(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var Vb={calendar:w4,longDateFormat:x4,invalidDate:C4,ordinal:D4,dayOfMonthOrdinalParse:M4,relativeTime:P4,months:q4,monthsShort:Mb,week:oC,weekdays:pC,weekdaysMin:hC,weekdaysShort:Nb,meridiemParse:OC},Nt={},sl={},Zl;function IC(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(a=Bd(s.slice(0,n).join("-")),a)return a;if(r&&r.length>=n&&IC(s,r)>=n-1)break;n--}t++}return Zl}function NC(e){return!!(e&&e.match("^[^/\\\\]*$"))}function Bd(e){var t=null,n;if(Nt[e]===void 0&&typeof module<"u"&&module&&module.exports&&NC(e))try{t=Zl._abbr,n=require,n("./locale/"+e),ys(t)}catch{Nt[e]=null}return Nt[e]}function ys(e,t){var n;return e&&(Fn(t)?n=Ka(e):n=$m(e,t),n?Zl=n:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Zl._abbr}function $m(e,t){if(t!==null){var n,r=Vb;if(t.abbr=e,Nt[e]!=null)Sb("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=Nt[e]._config;else if(t.parentLocale!=null)if(Nt[t.parentLocale]!=null)r=Nt[t.parentLocale]._config;else if(n=Bd(t.parentLocale),n!=null)r=n._config;else return sl[t.parentLocale]||(sl[t.parentLocale]=[]),sl[t.parentLocale].push({name:e,config:t}),null;return Nt[e]=new Tm(oh(r,t)),sl[e]&&sl[e].forEach(function(a){$m(a.name,a.config)}),ys(e),Nt[e]}else return delete Nt[e],null}function LC(e,t){if(t!=null){var n,r,a=Vb;Nt[e]!=null&&Nt[e].parentLocale!=null?Nt[e].set(oh(Nt[e]._config,t)):(r=Bd(e),r!=null&&(a=r._config),t=oh(a,t),r==null&&(t.abbr=e),n=new Tm(t),n.parentLocale=Nt[e],Nt[e]=n),ys(e)}else Nt[e]!=null&&(Nt[e].parentLocale!=null?(Nt[e]=Nt[e].parentLocale,e===ys()&&ys(e)):Nt[e]!=null&&delete Nt[e]);return Nt[e]}function Ka(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Zl;if(!Ir(e)){if(t=Bd(e),t)return t;e=[e]}return RC(e)}function FC(){return ih(Nt)}function Im(e){var t,n=e._a;return n&&et(e).overflow===-2&&(t=n[Ma]<0||n[Ma]>11?Ma:n[Qr]<1||n[Qr]>Dm(n[En],n[Ma])?Qr:n[an]<0||n[an]>24||n[an]===24&&(n[Er]!==0||n[Oa]!==0||n[Js]!==0)?an:n[Er]<0||n[Er]>59?Er:n[Oa]<0||n[Oa]>59?Oa:n[Js]<0||n[Js]>999?Js:-1,et(e)._overflowDayOfYear&&(tQr)&&(t=Qr),et(e)._overflowWeeks&&t===-1&&(t=H4),et(e)._overflowWeekday&&t===-1&&(t=B4),et(e).overflow=t),e}var VC=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,YC=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,WC=/Z|[+-]\d\d(?::?\d\d)?/,Gu=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Gf=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],HC=/^\/?Date\((-?\d+)/i,BC=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,jC={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Yb(e){var t,n,r=e._i,a=VC.exec(r)||YC.exec(r),s,o,i,l,c=Gu.length,u=Gf.length;if(a){for(et(e).iso=!0,t=0,n=c;tPl(o)||e._dayOfYear===0)&&(et(e)._overflowDayOfYear=!0),n=Ql(o,0,e._dayOfYear),e._a[Ma]=n.getUTCMonth(),e._a[Qr]=n.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=r[t]=a[t];for(;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[an]===24&&e._a[Er]===0&&e._a[Oa]===0&&e._a[Js]===0&&(e._nextDay=!0,e._a[an]=0),e._d=(e._useUTC?Ql:aC).apply(null,r),s=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[an]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==s&&(et(e).weekdayMismatch=!0)}}function ZC(e){var t,n,r,a,s,o,i,l,c;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(s=1,o=4,n=jo(t.GG,e._a[En],Xl(It(),1,4).year),r=jo(t.W,1),a=jo(t.E,1),(a<1||a>7)&&(l=!0)):(s=e._locale._week.dow,o=e._locale._week.doy,c=Xl(It(),s,o),n=jo(t.gg,e._a[En],c.year),r=jo(t.w,c.week),t.d!=null?(a=t.d,(a<0||a>6)&&(l=!0)):t.e!=null?(a=t.e+s,(t.e<0||t.e>6)&&(l=!0)):a=s),r<1||r>Ia(n,s,o)?et(e)._overflowWeeks=!0:l!=null?et(e)._overflowWeekday=!0:(i=Rb(n,r,a,s,o),e._a[En]=i.year,e._dayOfYear=i.dayOfYear)}Ae.ISO_8601=function(){};Ae.RFC_2822=function(){};function Nm(e){if(e._f===Ae.ISO_8601){Yb(e);return}if(e._f===Ae.RFC_2822){Wb(e);return}e._a=[],et(e).empty=!0;var t=""+e._i,n,r,a,s,o,i=t.length,l=0,c,u;for(a=Tb(e._f,e._locale).match(Em)||[],u=a.length,n=0;n0&&et(e).unusedInput.push(o),t=t.slice(t.indexOf(r)+r.length),l+=r.length),oi[s]?(r?et(e).empty=!1:et(e).unusedTokens.push(s),W4(s,r,e)):e._strict&&!r&&et(e).unusedTokens.push(s);et(e).charsLeftOver=i-l,t.length>0&&et(e).unusedInput.push(t),e._a[an]<=12&&et(e).bigHour===!0&&e._a[an]>0&&(et(e).bigHour=void 0),et(e).parsedDateParts=e._a.slice(0),et(e).meridiem=e._meridiem,e._a[an]=JC(e._locale,e._a[an],e._meridiem),c=et(e).era,c!==null&&(e._a[En]=e._locale.erasConvertYear(c,e._a[En])),Rm(e),Im(e)}function JC(e,t,n){var r;return n==null?t:e.meridiemHour!=null?e.meridiemHour(t,n):(e.isPM!=null&&(r=e.isPM(n),r&&t<12&&(t+=12),!r&&t===12&&(t=0)),t)}function eA(e){var t,n,r,a,s,o,i=!1,l=e._f.length;if(l===0){et(e).invalidFormat=!0,e._d=new Date(NaN);return}for(a=0;athis?this:e:Nd()});function jb(e,t){var n,r;if(t.length===1&&Ir(t[0])&&(t=t[0]),!t.length)return It();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function wA(){if(!Fn(this._isDSTShifted))return this._isDSTShifted;var e={},t;return Sm(e,this),e=Hb(e),e._a?(t=e._isUTC?ma(e._a):It(e._a),this._isDSTShifted=this.isValid()&&fA(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function SA(){return this.isValid()?!this._isUTC:!1}function TA(){return this.isValid()?this._isUTC:!1}function zb(){return this.isValid()?this._isUTC&&this._offset===0:!1}var EA=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,xA=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Yr(e,t){var n=e,r=null,a,s,o;return mc(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:Ha(e)||!isNaN(+e)?(n={},t?n[t]=+e:n.milliseconds=+e):(r=EA.exec(e))?(a=r[1]==="-"?-1:1,n={y:0,d:ot(r[Qr])*a,h:ot(r[an])*a,m:ot(r[Er])*a,s:ot(r[Oa])*a,ms:ot(uh(r[Js]*1e3))*a}):(r=xA.exec(e))?(a=r[1]==="-"?-1:1,n={y:Hs(r[2],a),M:Hs(r[3],a),w:Hs(r[4],a),d:Hs(r[5],a),h:Hs(r[6],a),m:Hs(r[7],a),s:Hs(r[8],a)}):n==null?n={}:typeof n=="object"&&("from"in n||"to"in n)&&(o=kA(It(n.from),It(n.to)),n={},n.ms=o.milliseconds,n.M=o.months),s=new jd(n),mc(e)&&ht(e,"_locale")&&(s._locale=e._locale),mc(e)&&ht(e,"_isValid")&&(s._isValid=e._isValid),s}Yr.fn=jd.prototype;Yr.invalid=dA;function Hs(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function ty(e,t){var n={};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function kA(e,t){var n;return e.isValid()&&t.isValid()?(t=Fm(t,e),e.isBefore(t)?n=ty(e,t):(n=ty(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Gb(e,t){return function(n,r){var a,s;return r!==null&&!isNaN(+r)&&(Sb(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=n,n=r,r=s),a=Yr(n,r),qb(this,a,e),this}}function qb(e,t,n,r){var a=t._milliseconds,s=uh(t._days),o=uh(t._months);e.isValid()&&(r=r??!0,o&&Pb(e,Kl(e,"Month")+o*n),s&&Db(e,"Date",Kl(e,"Date")+s*n),a&&e._d.setTime(e._d.valueOf()+a*n),r&&Ae.updateOffset(e,s||o))}var CA=Gb(1,"add"),AA=Gb(-1,"subtract");function Kb(e){return typeof e=="string"||e instanceof String}function DA(e){return Rr(e)||fu(e)||Kb(e)||Ha(e)||OA(e)||MA(e)||e===null||e===void 0}function MA(e){var t=co(e)&&!bm(e),n=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],a,s,o=r.length;for(a=0;an.valueOf():n.valueOf()9999?hc(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):va(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",hc(n,"Z")):hc(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function UA(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",n,r,a,s;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a="-MM-DD[T]HH:mm:ss.SSS",s=t+'[")]',this.format(n+r+a+s)}function zA(e){e||(e=this.isUtc()?Ae.defaultFormatUtc:Ae.defaultFormat);var t=hc(this,e);return this.localeData().postformat(t)}function GA(e,t){return this.isValid()&&(Rr(e)&&e.isValid()||It(e).isValid())?Yr({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function qA(e){return this.from(It(),e)}function KA(e,t){return this.isValid()&&(Rr(e)&&e.isValid()||It(e).isValid())?Yr({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function QA(e){return this.to(It(),e)}function Qb(e){var t;return e===void 0?this._locale._abbr:(t=Ka(e),t!=null&&(this._locale=t),this)}var Xb=mr("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Zb(){return this._locale}var Gc=1e3,ii=60*Gc,qc=60*ii,Jb=(365*400+97)*24*qc;function li(e,t){return(e%t+t)%t}function ew(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-Jb:new Date(e,t,n).valueOf()}function tw(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-Jb:Date.UTC(e,t,n)}function XA(e){var t,n;if(e=vr(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?tw:ew,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=li(t+(this._isUTC?0:this.utcOffset()*ii),qc);break;case"minute":t=this._d.valueOf(),t-=li(t,ii);break;case"second":t=this._d.valueOf(),t-=li(t,Gc);break}return this._d.setTime(t),Ae.updateOffset(this,!0),this}function ZA(e){var t,n;if(e=vr(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?tw:ew,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=qc-li(t+(this._isUTC?0:this.utcOffset()*ii),qc)-1;break;case"minute":t=this._d.valueOf(),t+=ii-li(t,ii)-1;break;case"second":t=this._d.valueOf(),t+=Gc-li(t,Gc)-1;break}return this._d.setTime(t),Ae.updateOffset(this,!0),this}function JA(){return this._d.valueOf()-(this._offset||0)*6e4}function eD(){return Math.floor(this.valueOf()/1e3)}function tD(){return new Date(this.valueOf())}function nD(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function rD(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function aD(){return this.isValid()?this.toISOString():null}function sD(){return wm(this)}function oD(){return ms({},et(this))}function iD(){return et(this).overflow}function lD(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}He("N",0,0,"eraAbbr");He("NN",0,0,"eraAbbr");He("NNN",0,0,"eraAbbr");He("NNNN",0,0,"eraName");He("NNNNN",0,0,"eraNarrow");He("y",["y",1],"yo","eraYear");He("y",["yy",2],0,"eraYear");He("y",["yyy",3],0,"eraYear");He("y",["yyyy",4],0,"eraYear");$e("N",Vm);$e("NN",Vm);$e("NNN",Vm);$e("NNNN",_D);$e("NNNNN",bD);xt(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var a=n._locale.erasParse(e,r,n._strict);a?et(n).era=a:et(n).invalidEra=e});$e("y",Yi);$e("yy",Yi);$e("yyy",Yi);$e("yyyy",Yi);$e("yo",wD);xt(["y","yy","yyy","yyyy"],En);xt(["yo"],function(e,t,n,r){var a;n._locale._eraYearOrdinalRegex&&(a=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[En]=n._locale.eraYearOrdinalParse(e,a):t[En]=parseInt(e,10)});function uD(e,t){var n,r,a,s=this._eras||Ka("en")._eras;for(n=0,r=s.length;n=0)return s[r]}function dD(e,t){var n=e.since<=e.until?1:-1;return t===void 0?Ae(e.since).year():Ae(e.since).year()+(t-e.offset)*n}function fD(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;es&&(t=s),AD.call(this,e,t,n,r,a))}function AD(e,t,n,r,a){var s=Rb(e,t,n,r,a),o=Ql(s.year,0,s.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}He("Q",0,"Qo","quarter");$e("Q",Eb);xt("Q",function(e,t){t[Ma]=(ot(e)-1)*3});function DD(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}He("D",["DD",2],"Do","date");$e("D",Rt,Wi);$e("DD",Rt,Xn);$e("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});xt(["D","DD"],Qr);xt("Do",function(e,t){t[Qr]=ot(e.match(Rt)[0])});var rw=Hi("Date",!0);He("DDD",["DDDD",3],"DDDo","dayOfYear");$e("DDD",Fd);$e("DDDD",xb);xt(["DDD","DDDD"],function(e,t,n){n._dayOfYear=ot(e)});function MD(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}He("m",["mm",2],0,"minute");$e("m",Rt,Am);$e("mm",Rt,Xn);xt(["m","mm"],Er);var OD=Hi("Minutes",!1);He("s",["ss",2],0,"second");$e("s",Rt,Am);$e("ss",Rt,Xn);xt(["s","ss"],Oa);var PD=Hi("Seconds",!1);He("S",0,0,function(){return~~(this.millisecond()/100)});He(0,["SS",2],0,function(){return~~(this.millisecond()/10)});He(0,["SSS",3],0,"millisecond");He(0,["SSSS",4],0,function(){return this.millisecond()*10});He(0,["SSSSS",5],0,function(){return this.millisecond()*100});He(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});He(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});He(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});He(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});$e("S",Fd,Eb);$e("SS",Fd,Xn);$e("SSS",Fd,xb);var vs,aw;for(vs="SSSS";vs.length<=9;vs+="S")$e(vs,Yi);function $D(e,t){t[Js]=ot(("0."+e)*1e3)}for(vs="S";vs.length<=9;vs+="S")xt(vs,$D);aw=Hi("Milliseconds",!1);He("z",0,0,"zoneAbbr");He("zz",0,0,"zoneName");function ID(){return this._isUTC?"UTC":""}function RD(){return this._isUTC?"Coordinated Universal Time":""}var be=pu.prototype;be.add=CA;be.calendar=IA;be.clone=RA;be.diff=HA;be.endOf=ZA;be.format=zA;be.from=GA;be.fromNow=qA;be.to=KA;be.toNow=QA;be.get=U4;be.invalidAt=iD;be.isAfter=NA;be.isBefore=LA;be.isBetween=FA;be.isSame=VA;be.isSameOrAfter=YA;be.isSameOrBefore=WA;be.isValid=sD;be.lang=Xb;be.locale=Qb;be.localeData=Zb;be.max=sA;be.min=aA;be.parsingFlags=oD;be.set=z4;be.startOf=XA;be.subtract=AA;be.toArray=nD;be.toObject=rD;be.toDate=tD;be.toISOString=jA;be.inspect=UA;typeof Symbol<"u"&&Symbol.for!=null&&(be[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});be.toJSON=aD;be.toString=BA;be.unix=eD;be.valueOf=JA;be.creationData=lD;be.eraName=fD;be.eraNarrow=pD;be.eraAbbr=hD;be.eraYear=mD;be.year=Ab;be.isLeapYear=j4;be.weekYear=SD;be.isoWeekYear=TD;be.quarter=be.quarters=DD;be.month=$b;be.daysInMonth=tC;be.week=be.weeks=uC;be.isoWeek=be.isoWeeks=cC;be.weeksInYear=kD;be.weeksInWeekYear=CD;be.isoWeeksInYear=ED;be.isoWeeksInISOWeekYear=xD;be.date=rw;be.day=be.days=TC;be.weekday=EC;be.isoWeekday=xC;be.dayOfYear=MD;be.hour=be.hours=PC;be.minute=be.minutes=OD;be.second=be.seconds=PD;be.millisecond=be.milliseconds=aw;be.utcOffset=hA;be.utc=vA;be.local=gA;be.parseZone=yA;be.hasAlignedHourOffset=_A;be.isDST=bA;be.isLocal=SA;be.isUtcOffset=TA;be.isUtc=zb;be.isUTC=zb;be.zoneAbbr=ID;be.zoneName=RD;be.dates=mr("dates accessor is deprecated. Use date instead.",rw);be.months=mr("months accessor is deprecated. Use month instead",$b);be.years=mr("years accessor is deprecated. Use year instead",Ab);be.zone=mr("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",mA);be.isDSTShifted=mr("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",wA);function ND(e){return It(e*1e3)}function LD(){return It.apply(null,arguments).parseZone()}function sw(e){return e}var mt=Tm.prototype;mt.calendar=S4;mt.longDateFormat=k4;mt.invalidDate=A4;mt.ordinal=O4;mt.preparse=sw;mt.postformat=sw;mt.relativeTime=$4;mt.pastFuture=I4;mt.set=b4;mt.eras=uD;mt.erasParse=cD;mt.erasConvertYear=dD;mt.erasAbbrRegex=gD;mt.erasNameRegex=vD;mt.erasNarrowRegex=yD;mt.months=X4;mt.monthsShort=Z4;mt.monthsParse=eC;mt.monthsRegex=rC;mt.monthsShortRegex=nC;mt.week=sC;mt.firstDayOfYear=lC;mt.firstDayOfWeek=iC;mt.weekdays=yC;mt.weekdaysMin=bC;mt.weekdaysShort=_C;mt.weekdaysParse=SC;mt.weekdaysRegex=kC;mt.weekdaysShortRegex=CC;mt.weekdaysMinRegex=AC;mt.isPM=MC;mt.meridiem=$C;function Kc(e,t,n,r){var a=Ka(),s=ma().set(r,t);return a[n](s,e)}function ow(e,t,n){if(Ha(e)&&(t=e,e=void 0),e=e||"",t!=null)return Kc(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=Kc(e,r,n,"month");return a}function Wm(e,t,n,r){typeof e=="boolean"?(Ha(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,Ha(t)&&(n=t,t=void 0),t=t||"");var a=Ka(),s=e?a._week.dow:0,o,i=[];if(n!=null)return Kc(t,(n+s)%7,r,"day");for(o=0;o<7;o++)i[o]=Kc(t,(o+s)%7,r,"day");return i}function FD(e,t){return ow(e,t,"months")}function VD(e,t){return ow(e,t,"monthsShort")}function YD(e,t,n){return Wm(e,t,n,"weekdays")}function WD(e,t,n){return Wm(e,t,n,"weekdaysShort")}function HD(e,t,n){return Wm(e,t,n,"weekdaysMin")}ys("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=ot(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}});Ae.lang=mr("moment.lang is deprecated. Use moment.locale instead.",ys);Ae.langData=mr("moment.langData is deprecated. Use moment.localeData instead.",Ka);var wa=Math.abs;function BD(){var e=this._data;return this._milliseconds=wa(this._milliseconds),this._days=wa(this._days),this._months=wa(this._months),e.milliseconds=wa(e.milliseconds),e.seconds=wa(e.seconds),e.minutes=wa(e.minutes),e.hours=wa(e.hours),e.months=wa(e.months),e.years=wa(e.years),this}function iw(e,t,n,r){var a=Yr(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function jD(e,t){return iw(this,e,t,1)}function UD(e,t){return iw(this,e,t,-1)}function ny(e){return e<0?Math.floor(e):Math.ceil(e)}function zD(){var e=this._milliseconds,t=this._days,n=this._months,r=this._data,a,s,o,i,l;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=ny(dh(n)+t)*864e5,t=0,n=0),r.milliseconds=e%1e3,a=nr(e/1e3),r.seconds=a%60,s=nr(a/60),r.minutes=s%60,o=nr(s/60),r.hours=o%24,t+=nr(o/24),l=nr(lw(t)),n+=l,t-=ny(dh(l)),i=nr(n/12),n%=12,r.days=t,r.months=n,r.years=i,this}function lw(e){return e*4800/146097}function dh(e){return e*146097/4800}function GD(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=vr(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+r/864e5,n=this._months+lw(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(dh(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return t*24+r/36e5;case"minute":return t*1440+r/6e4;case"second":return t*86400+r/1e3;case"millisecond":return Math.floor(t*864e5)+r;default:throw new Error("Unknown unit "+e)}}function Qa(e){return function(){return this.as(e)}}var uw=Qa("ms"),qD=Qa("s"),KD=Qa("m"),QD=Qa("h"),XD=Qa("d"),ZD=Qa("w"),JD=Qa("M"),eM=Qa("Q"),tM=Qa("y"),nM=uw;function rM(){return Yr(this)}function aM(e){return e=vr(e),this.isValid()?this[e+"s"]():NaN}function Co(e){return function(){return this.isValid()?this._data[e]:NaN}}var sM=Co("milliseconds"),oM=Co("seconds"),iM=Co("minutes"),lM=Co("hours"),uM=Co("days"),cM=Co("months"),dM=Co("years");function fM(){return nr(this.days()/7)}var Ea=Math.round,Ko={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function pM(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}function hM(e,t,n,r){var a=Yr(e).abs(),s=Ea(a.as("s")),o=Ea(a.as("m")),i=Ea(a.as("h")),l=Ea(a.as("d")),c=Ea(a.as("M")),u=Ea(a.as("w")),d=Ea(a.as("y")),p=s<=n.ss&&["s",s]||s0,p[4]=r,pM.apply(null,p)}function mM(e){return e===void 0?Ea:typeof e=="function"?(Ea=e,!0):!1}function vM(e,t){return Ko[e]===void 0?!1:t===void 0?Ko[e]:(Ko[e]=t,e==="s"&&(Ko.ss=t-1),!0)}function gM(e,t){if(!this.isValid())return this.localeData().invalidDate();var n=!1,r=Ko,a,s;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(n=e),typeof t=="object"&&(r=Object.assign({},Ko,t),t.s!=null&&t.ss==null&&(r.ss=t.s-1)),a=this.localeData(),s=hM(this,!n,r,a),n&&(s=a.pastFuture(+this,s)),a.postformat(s)}var qf=Math.abs;function No(e){return(e>0)-(e<0)||+e}function zd(){if(!this.isValid())return this.localeData().invalidDate();var e=qf(this._milliseconds)/1e3,t=qf(this._days),n=qf(this._months),r,a,s,o,i=this.asSeconds(),l,c,u,d;return i?(r=nr(e/60),a=nr(r/60),e%=60,r%=60,s=nr(n/12),n%=12,o=e?e.toFixed(3).replace(/\.?0+$/,""):"",l=i<0?"-":"",c=No(this._months)!==No(i)?"-":"",u=No(this._days)!==No(i)?"-":"",d=No(this._milliseconds)!==No(i)?"-":"",l+"P"+(s?c+s+"Y":"")+(n?c+n+"M":"")+(t?u+t+"D":"")+(a||r||e?"T":"")+(a?d+a+"H":"")+(r?d+r+"M":"")+(e?d+o+"S":"")):"P0D"}var ct=jd.prototype;ct.isValid=cA;ct.abs=BD;ct.add=jD;ct.subtract=UD;ct.as=GD;ct.asMilliseconds=uw;ct.asSeconds=qD;ct.asMinutes=KD;ct.asHours=QD;ct.asDays=XD;ct.asWeeks=ZD;ct.asMonths=JD;ct.asQuarters=eM;ct.asYears=tM;ct.valueOf=nM;ct._bubble=zD;ct.clone=rM;ct.get=aM;ct.milliseconds=sM;ct.seconds=oM;ct.minutes=iM;ct.hours=lM;ct.days=uM;ct.weeks=fM;ct.months=cM;ct.years=dM;ct.humanize=gM;ct.toISOString=zd;ct.toString=zd;ct.toJSON=zd;ct.locale=Qb;ct.localeData=Zb;ct.toIsoString=mr("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",zd);ct.lang=Xb;He("X",0,0,"unix");He("x",0,0,"valueOf");$e("x",Yd);$e("X",F4);xt("X",function(e,t,n){n._d=new Date(parseFloat(e)*1e3)});xt("x",function(e,t,n){n._d=new Date(ot(e))});Ae.version="2.30.1";y4(It);Ae.fn=be;Ae.min=oA;Ae.max=iA;Ae.now=lA;Ae.utc=ma;Ae.unix=ND;Ae.months=FD;Ae.isDate=fu;Ae.locale=ys;Ae.invalid=Nd;Ae.duration=Yr;Ae.isMoment=Rr;Ae.weekdays=YD;Ae.parseZone=LD;Ae.localeData=Ka;Ae.isDuration=mc;Ae.monthsShort=VD;Ae.weekdaysMin=HD;Ae.defineLocale=$m;Ae.updateLocale=LC;Ae.locales=FC;Ae.weekdaysShort=WD;Ae.normalizeUnits=vr;Ae.relativeTimeRounding=mM;Ae.relativeTimeThreshold=vM;Ae.calendarFormat=$A;Ae.prototype=be;Ae.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};function cw(){const e="0001-01-01T00:00:00";function t(i,l={}){const{emptyText:c="No dates"}=l;if(i.length===0)return c;const[u,d]=i;return d&&d>new Date?"Date cannot be in the future":u&&d?`${u.toLocaleString()} - ${d.toLocaleString()}`:u?u.toLocaleString():c}function n(i,l={}){const{showLocalTime:c=!0,showUtcTime:u=!1,showRelative:d=!1,format:p="LLLL",emptyText:m="n/a"}=l;if(!i||i===e)return m;const _=Ae.utc(i);return d?_.fromNow():c&&u?`${_.local().format(p)} (local) +${_.utc().format(p)} (UTC)`:u?_.utc().format(p):_.local().format(p)}function r(i,l){if(l)return l;if(!i||i===e)return"";const c=Ae.utc(i);return`${c.local().format("LLLL")} (local) +${c.utc().format("LLLL")} (UTC)`}function a(i,l={}){const{emptyText:c="n/a"}=l;return!i||i===e?c:Ae.utc(i).fromNow()}function s(i){return i?new Date(i.replace("Z","")).toLocaleDateString():""}function o(i){if(i.length===0)return!0;const[l,c]=i;return c&&c>new Date?!1:l&&!c?!0:l&&c?l<=c:!0}return{formatDate:n,formatDateRange:t,formatDateTooltip:r,formatRelativeTime:a,formatLicenseDate:s,isValidDateRange:o,emptyDate:e}}const yM=["title"],dw=ye({__name:"TimeSince",props:{dateUtc:{default:"0001-01-01T00:00:00"},defaultTextOnFailure:{default:"n/a"},titleValue:{default:void 0}},setup(e){const t=e,{formatRelativeTime:n,formatDateTooltip:r,emptyDate:a}=cw();let s;const o=oe(""),i=oe("");function l(){t.dateUtc!=null&&t.dateUtc!==a?(i.value=n(t.dateUtc,{emptyText:t.defaultTextOnFailure}),o.value=r(t.dateUtc,t.titleValue)):(i.value=t.defaultTextOnFailure,o.value=t.titleValue??t.defaultTextOnFailure)}return Ue(()=>t.dateUtc,l,{immediate:!0}),ut(()=>{s=window.setInterval(l,5e3)}),xn(()=>window.clearInterval(s)),(c,u)=>(D(),L("span",{title:o.value},me(i.value),9,yM))}});var gc=(e=>(e.Critical="critical",e.Error="error",e.Warning="warning",e.Info="info",e))(gc||{});const _M=e=>{function t(n){return{link:`${e}/${n}`,template:n}}return{root:e,unhealthy:t("unhealthy"),healthy:t("healthy"),configuration:t("configuration"),instances:{link:n=>`${e}/instances/${encodeURIComponent(n)}`,template:"/heartbeats/instances/:endpointName"}}},bM=e=>{function t(n){return{link:`${e}/${n}`,template:n}}return{root:e,failedMessagesGroups:t("failed-message-groups"),failedMessages:t("all-failed-messages"),deletedMessagesGroup:t("deleted-message-groups"),deletedMessages:t("all-deleted-messages"),pendingRetries:t("pending-retries"),group:{link:n=>`${e}/group/${n}`,template:"group/:groupId"},deletedGroup:{link:n=>`${e}/deleted-messages/group/${n}`,template:"deleted-messages/group/:groupId"},message:{link:n=>`${e}/message/${n}`,template:"message/:id"}}},wM=e=>({root:e,failedMessage:{link:t=>`${e}/${t}`,template:"/messages/:id"},successMessage:{link:(t,n)=>`${e}/${t}/${n}`,template:"/messages/:messageId/:id"}}),SM=e=>{function t(n){return{link:`${e}/${n}`,template:n}}return{root:e,license:t("license"),massTransitConnector:t("mass-transit-connector"),healthCheckNotifications:t("health-check-notifications"),retryRedirects:t("retry-redirects"),connections:t("connections"),endpointConnection:t("endpoint-connection")}},TM=e=>({root:e,endpoints:xM(`${e}/endpoints`),setup:EM(`${e}/setup`)}),EM=e=>{function t(n){return{link:`${e}/${n}`,template:n}}return{root:e,connectionSetup:t("connection-setup"),mask:t("mask"),diagnostics:t("diagnostics")}},xM=e=>{function t(n){return{link:`${e}/${n}`,template:n}}return{root:e,detectedEndpoints:t("known"),detectedBrokerQueues:t("broker")}},kM=e=>({root:e,endpointDetails:{link:(t,n,r)=>`${e}/endpoint/${encodeURIComponent(t)}?historyPeriod=${n}${(r&&`&tab=${r}`)??""}`,template:"/monitoring/endpoint/:endpointName"}}),pe={dashboard:"/dashboard",heartbeats:_M("/heartbeats"),monitoring:kM("/monitoring"),failedMessage:bM("/failed-messages"),customChecks:"/custom-checks",events:"/events",messages:wM("/messages"),configuration:SM("/configuration"),throughput:TM("/usage")};function fh(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(l){throw l},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s,o=!0,i=!1;return{s:function(){n=n.call(e)},n:function(){var l=n.next();return o=l.done,l},e:function(l){i=!0,s=l},f:function(){try{o||n.return==null||n.return()}finally{if(i)throw s}}}}function Je(e,t,n){return(t=fw(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function PM(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function $M(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,s,o,i=[],l=!0,c=!1;try{if(s=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=s.call(n)).done)&&(i.push(r.value),i.length!==t);l=!0);}catch(u){c=!0,a=u}finally{try{if(!l&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(c)throw a}}return i}}function IM(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function RM(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ry(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Se(e){for(var t=1;t-1;a--){var s=n[a],o=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(o)>-1&&(r=s)}return Pt.head.insertBefore(t,r),e}}var kP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function fy(){for(var e=12,t="";e-- >0;)t+=kP[Math.random()*62|0];return t}function Bi(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function Gm(e){return e.classList?Bi(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(t){return t})}function zw(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function CP(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(zw(e[n]),'" ')},"").trim()}function qd(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function qm(e){return e.size!==ea.size||e.x!==ea.x||e.y!==ea.y||e.rotate!==ea.rotate||e.flipX||e.flipY}function AP(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,a={transform:"translate(".concat(n/2," 256)")},s="translate(".concat(t.x*32,", ").concat(t.y*32,") "),o="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),i="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(s," ").concat(o," ").concat(i)},c={transform:"translate(".concat(r/2*-1," -256)")};return{outer:a,inner:l,path:c}}function DP(e){var t=e.transform,n=e.width,r=n===void 0?hh:n,a=e.height,s=a===void 0?hh:a,o="";return vw?o+="translate(".concat(t.x/Lo-r/2,"em, ").concat(t.y/Lo-s/2,"em) "):o+="translate(calc(-50% + ".concat(t.x/Lo,"em), calc(-50% + ").concat(t.y/Lo,"em)) "),o+="scale(".concat(t.size/Lo*(t.flipX?-1:1),", ").concat(t.size/Lo*(t.flipY?-1:1),") "),o+="rotate(".concat(t.rotate,"deg) "),o}var MP=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab"; + --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press"; + --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard"; + --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint"; + --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog"; + --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo"; + --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch"; + --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly"; + --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill"; + --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo"; + --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel"; + --fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility"; + --fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo"; + --fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"; +} + +.svg-inline--fa { + box-sizing: content-box; + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285714em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left, +.svg-inline--fa .fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-pull-right, +.svg-inline--fa .fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */ +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.fa-layers .svg-inline--fa { + inset: 0; + margin: auto; + position: absolute; + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.fa-1x { + font-size: 1em; +} + +.fa-2x { + font-size: 2em; +} + +.fa-3x { + font-size: 3em; +} + +.fa-4x { + font-size: 4em; +} + +.fa-5x { + font-size: 5em; +} + +.fa-6x { + font-size: 6em; +} + +.fa-7x { + font-size: 7em; +} + +.fa-8x { + font-size: 8em; +} + +.fa-9x { + font-size: 9em; +} + +.fa-10x { + font-size: 10em; +} + +.fa-2xs { + font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xs { + font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-sm { + font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-lg { + font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xl { + font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-2xl { + font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-width-auto { + --fa-width: auto; +} + +.fa-fw, +.fa-width-fixed { + --fa-width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-inline-start: var(--fa-li-margin, 2.5em); + padding-inline-start: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +/* Heads Up: Bordered Icons will not be supported in the future! + - This feature will be deprecated in the next major release of Font Awesome (v8)! + - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8. +*/ +/* Notes: +* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size) +* --@{v.$css-prefix}-border-padding = + ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment) + ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon) +*/ +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.0625em); + box-sizing: var(--fa-border-box-sizing, content-box); + padding: var(--fa-border-padding, 0.1875em 0.25em); +} + +.fa-pull-left, +.fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right, +.fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation: none !important; + transition: none !important; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +} + +.svg-inline--fa.fa-inverse { + fill: var(--fa-inverse, #fff); +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.svg-inline--fa.fa-stack-1x { + --fa-width: 1.25em; + height: 1em; + width: var(--fa-width); +} +.svg-inline--fa.fa-stack-2x { + --fa-width: 2.5em; + height: 2em; + width: var(--fa-width); +} + +.fa-stack-1x, +.fa-stack-2x { + inset: 0; + margin: auto; + position: absolute; + z-index: var(--fa-stack-z-index, auto); +}`;function Gw(){var e=Vw,t=Yw,n=We.cssPrefix,r=We.replacementClass,a=MP;if(n!==e||r!==t){var s=new RegExp("\\.".concat(e,"\\-"),"g"),o=new RegExp("\\--".concat(e,"\\-"),"g"),i=new RegExp("\\.".concat(t),"g");a=a.replace(s,".".concat(n,"-")).replace(o,"--".concat(n,"-")).replace(i,".".concat(r))}return a}var py=!1;function Zf(){We.autoAddCss&&!py&&(xP(Gw()),py=!0)}var OP={mixout:function(){return{dom:{css:Gw,insertCss:Zf}}},hooks:function(){return{beforeDOMElementCreation:function(){Zf()},beforeI2svg:function(){Zf()}}}},ja=ws||{};ja[Ba]||(ja[Ba]={});ja[Ba].styles||(ja[Ba].styles={});ja[Ba].hooks||(ja[Ba].hooks={});ja[Ba].shims||(ja[Ba].shims=[]);var xr=ja[Ba],qw=[],Kw=function(){Pt.removeEventListener("DOMContentLoaded",Kw),Xc=1,qw.map(function(t){return t()})},Xc=!1;Xa&&(Xc=(Pt.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Pt.readyState),Xc||Pt.addEventListener("DOMContentLoaded",Kw));function PP(e){Xa&&(Xc?setTimeout(e,0):qw.push(e))}function yu(e){var t=e.tag,n=e.attributes,r=n===void 0?{}:n,a=e.children,s=a===void 0?[]:a;return typeof e=="string"?zw(e):"<".concat(t," ").concat(CP(r),">").concat(s.map(yu).join(""),"")}function hy(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}var Jf=function(t,n,r,a){var s=Object.keys(t),o=s.length,i=n,l,c,u;for(r===void 0?(l=1,u=t[s[0]]):(l=0,u=r);l2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,a=r===void 0?!1:r,s=my(t);typeof xr.hooks.addPack=="function"&&!a?xr.hooks.addPack(e,my(t)):xr.styles[e]=Se(Se({},xr.styles[e]||{}),s),e==="fas"&&_h("fa",t)}var Jl=xr.styles,$P=xr.shims,Xw=Object.keys(zm),IP=Xw.reduce(function(e,t){return e[t]=Object.keys(zm[t]),e},{}),Km=null,Zw={},Jw={},e2={},t2={},n2={};function RP(e){return~bP.indexOf(e)}function NP(e,t){var n=t.split("-"),r=n[0],a=n.slice(1).join("-");return r===e&&a!==""&&!RP(a)?a:null}var r2=function(){var t=function(s){return Jf(Jl,function(o,i,l){return o[l]=Jf(i,s,{}),o},{})};Zw=t(function(a,s,o){if(s[3]&&(a[s[3]]=o),s[2]){var i=s[2].filter(function(l){return typeof l=="number"});i.forEach(function(l){a[l.toString(16)]=o})}return a}),Jw=t(function(a,s,o){if(a[o]=o,s[2]){var i=s[2].filter(function(l){return typeof l=="string"});i.forEach(function(l){a[l]=o})}return a}),n2=t(function(a,s,o){var i=s[2];return a[o]=o,i.forEach(function(l){a[l]=o}),a});var n="far"in Jl||We.autoFetchSvg,r=Jf($P,function(a,s){var o=s[0],i=s[1],l=s[2];return i==="far"&&!n&&(i="fas"),typeof o=="string"&&(a.names[o]={prefix:i,iconName:l}),typeof o=="number"&&(a.unicodes[o.toString(16)]={prefix:i,iconName:l}),a},{names:{},unicodes:{}});e2=r.names,t2=r.unicodes,Km=Kd(We.styleDefault,{family:We.familyDefault})};EP(function(e){Km=Kd(e.styleDefault,{family:We.familyDefault})});r2();function Qm(e,t){return(Zw[e]||{})[t]}function LP(e,t){return(Jw[e]||{})[t]}function eo(e,t){return(n2[e]||{})[t]}function a2(e){return e2[e]||{prefix:null,iconName:null}}function FP(e){var t=t2[e],n=Qm("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function Ss(){return Km}var s2=function(){return{prefix:null,iconName:null,rest:[]}};function VP(e){var t=mn,n=Xw.reduce(function(r,a){return r[a]="".concat(We.cssPrefix,"-").concat(a),r},{});return Rw.forEach(function(r){(e.includes(n[r])||e.some(function(a){return IP[r].includes(a)}))&&(t=r)}),t}function Kd(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.family,r=n===void 0?mn:n,a=mP[r][e];if(r===vu&&!e)return"fad";var s=dy[r][e]||dy[r][a],o=e in xr.styles?e:null,i=s||o||null;return i}function YP(e){var t=[],n=null;return e.forEach(function(r){var a=NP(We.cssPrefix,r);a?n=a:r&&t.push(r)}),{iconName:n,rest:t}}function vy(e){return e.sort().filter(function(t,n,r){return r.indexOf(t)===n})}var gy=Lw.concat(Nw);function Qd(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.skipLookups,r=n===void 0?!1:n,a=null,s=vy(e.filter(function(m){return gy.includes(m)})),o=vy(e.filter(function(m){return!gy.includes(m)})),i=s.filter(function(m){return a=m,!yw.includes(m)}),l=Gd(i,1),c=l[0],u=c===void 0?null:c,d=VP(s),p=Se(Se({},YP(o)),{},{prefix:Kd(u,{family:d})});return Se(Se(Se({},p),jP({values:e,family:d,styles:Jl,config:We,canonical:p,givenPrefix:a})),WP(r,a,p))}function WP(e,t,n){var r=n.prefix,a=n.iconName;if(e||!r||!a)return{prefix:r,iconName:a};var s=t==="fa"?a2(a):{},o=eo(r,a);return a=s.iconName||o||a,r=s.prefix||r,r==="far"&&!Jl.far&&Jl.fas&&!We.autoFetchSvg&&(r="fas"),{prefix:r,iconName:a}}var HP=Rw.filter(function(e){return e!==mn||e!==vu}),BP=Object.keys(ph).filter(function(e){return e!==mn}).map(function(e){return Object.keys(ph[e])}).flat();function jP(e){var t=e.values,n=e.family,r=e.canonical,a=e.givenPrefix,s=a===void 0?"":a,o=e.styles,i=o===void 0?{}:o,l=e.config,c=l===void 0?{}:l,u=n===vu,d=t.includes("fa-duotone")||t.includes("fad"),p=c.familyDefault==="duotone",m=r.prefix==="fad"||r.prefix==="fa-duotone";if(!u&&(d||p||m)&&(r.prefix="fad"),(t.includes("fa-brands")||t.includes("fab"))&&(r.prefix="fab"),!r.prefix&&HP.includes(n)){var _=Object.keys(i).find(function(b){return BP.includes(b)});if(_||c.autoFetchSvg){var y=iO.get(n).defaultShortPrefixId;r.prefix=y,r.iconName=eo(r.prefix,r.iconName)||r.iconName}}return(r.prefix==="fa"||s==="fa")&&(r.prefix=Ss()||"fas"),r}var UP=(function(){function e(){DM(this,e),this.definitions={}}return OM(e,[{key:"add",value:function(){for(var n=this,r=arguments.length,a=new Array(r),s=0;s0&&u.forEach(function(d){typeof d=="string"&&(n[i][d]=c)}),n[i][l]=c}),n}}])})(),yy=[],Qo={},ui={},zP=Object.keys(ui);function GP(e,t){var n=t.mixoutsTo;return yy=e,Qo={},Object.keys(ui).forEach(function(r){zP.indexOf(r)===-1&&delete ui[r]}),yy.forEach(function(r){var a=r.mixout?r.mixout():{};if(Object.keys(a).forEach(function(o){typeof a[o]=="function"&&(n[o]=a[o]),Qc(a[o])==="object"&&Object.keys(a[o]).forEach(function(i){n[o]||(n[o]={}),n[o][i]=a[o][i]})}),r.hooks){var s=r.hooks();Object.keys(s).forEach(function(o){Qo[o]||(Qo[o]=[]),Qo[o].push(s[o])})}r.provides&&r.provides(ui)}),n}function bh(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a1?t-1:0),r=1;r0&&arguments[0]!==void 0?arguments[0]:{};return Xa?(bo("beforeI2svg",t),Ts("pseudoElements2svg",t),Ts("i2svg",t)):Promise.reject(new Error("Operation requires a DOM of some kind."))},watch:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot;We.autoReplaceSvg===!1&&(We.autoReplaceSvg=!0),We.observeMutations=!0,PP(function(){XP({autoReplaceSvgRoot:n}),bo("watch",t)})}},QP={icon:function(t){if(t===null)return null;if(Qc(t)==="object"&&t.prefix&&t.iconName)return{prefix:t.prefix,iconName:eo(t.prefix,t.iconName)||t.iconName};if(Array.isArray(t)&&t.length===2){var n=t[1].indexOf("fa-")===0?t[1].slice(3):t[1],r=Kd(t[0]);return{prefix:r,iconName:eo(r,n)||n}}if(typeof t=="string"&&(t.indexOf("".concat(We.cssPrefix,"-"))>-1||t.match(vP))){var a=Qd(t.split(" "),{skipLookups:!0});return{prefix:a.prefix||Ss(),iconName:eo(a.prefix,a.iconName)||a.iconName}}if(typeof t=="string"){var s=Ss();return{prefix:s,iconName:eo(s,t)||t}}}},Zn={noAuto:qP,config:We,dom:KP,parse:QP,library:o2,findIconDefinition:wh,toHtml:yu},XP=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot,r=n===void 0?Pt:n;(Object.keys(xr.styles).length>0||We.autoFetchSvg)&&Xa&&We.autoReplaceSvg&&Zn.dom.i2svg({node:r})};function Xd(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(r){return yu(r)})}}),Object.defineProperty(e,"node",{get:function(){if(Xa){var r=Pt.createElement("div");return r.innerHTML=e.html,r.children}}}),e}function ZP(e){var t=e.children,n=e.main,r=e.mask,a=e.attributes,s=e.styles,o=e.transform;if(qm(o)&&n.found&&!r.found){var i=n.width,l=n.height,c={x:i/l/2,y:.5};a.style=qd(Se(Se({},s),{},{"transform-origin":"".concat(c.x+o.x/16,"em ").concat(c.y+o.y/16,"em")}))}return[{tag:"svg",attributes:a,children:t}]}function JP(e){var t=e.prefix,n=e.iconName,r=e.children,a=e.attributes,s=e.symbol,o=s===!0?"".concat(t,"-").concat(We.cssPrefix,"-").concat(n):s;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:Se(Se({},a),{},{id:o}),children:r}]}]}function e6(e){var t=["aria-label","aria-labelledby","title","role"];return t.some(function(n){return n in e})}function Xm(e){var t=e.icons,n=t.main,r=t.mask,a=e.prefix,s=e.iconName,o=e.transform,i=e.symbol,l=e.maskId,c=e.extra,u=e.watchable,d=u===void 0?!1:u,p=r.found?r:n,m=p.width,_=p.height,y=[We.replacementClass,s?"".concat(We.cssPrefix,"-").concat(s):""].filter(function(k){return c.classes.indexOf(k)===-1}).filter(function(k){return k!==""||!!k}).concat(c.classes).join(" "),b={children:[],attributes:Se(Se({},c.attributes),{},{"data-prefix":a,"data-icon":s,class:y,role:c.attributes.role||"img",viewBox:"0 0 ".concat(m," ").concat(_)})};!e6(c.attributes)&&!c.attributes["aria-hidden"]&&(b.attributes["aria-hidden"]="true"),d&&(b.attributes[_o]="");var h=Se(Se({},b),{},{prefix:a,iconName:s,main:n,mask:r,maskId:l,transform:o,symbol:i,styles:Se({},c.styles)}),g=r.found&&n.found?Ts("generateAbstractMask",h)||{children:[],attributes:{}}:Ts("generateAbstractIcon",h)||{children:[],attributes:{}},w=g.children,v=g.attributes;return h.children=w,h.attributes=v,i?JP(h):ZP(h)}function _y(e){var t=e.content,n=e.width,r=e.height,a=e.transform,s=e.extra,o=e.watchable,i=o===void 0?!1:o,l=Se(Se({},s.attributes),{},{class:s.classes.join(" ")});i&&(l[_o]="");var c=Se({},s.styles);qm(a)&&(c.transform=DP({transform:a,width:n,height:r}),c["-webkit-transform"]=c.transform);var u=qd(c);u.length>0&&(l.style=u);var d=[];return d.push({tag:"span",attributes:l,children:[t]}),d}function t6(e){var t=e.content,n=e.extra,r=Se(Se({},n.attributes),{},{class:n.classes.join(" ")}),a=qd(n.styles);a.length>0&&(r.style=a);var s=[];return s.push({tag:"span",attributes:r,children:[t]}),s}var ep=xr.styles;function Sh(e){var t=e[0],n=e[1],r=e.slice(4),a=Gd(r,1),s=a[0],o=null;return Array.isArray(s)?o={tag:"g",attributes:{class:"".concat(We.cssPrefix,"-").concat(Xf.GROUP)},children:[{tag:"path",attributes:{class:"".concat(We.cssPrefix,"-").concat(Xf.SECONDARY),fill:"currentColor",d:s[0]}},{tag:"path",attributes:{class:"".concat(We.cssPrefix,"-").concat(Xf.PRIMARY),fill:"currentColor",d:s[1]}}]}:o={tag:"path",attributes:{fill:"currentColor",d:s}},{found:!0,width:t,height:n,icon:o}}var n6={found:!1,width:512,height:512};function r6(e,t){!Hw&&!We.showMissingIcons&&e&&console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}function Th(e,t){var n=t;return t==="fa"&&We.styleDefault!==null&&(t=Ss()),new Promise(function(r,a){if(n==="fa"){var s=a2(e)||{};e=s.iconName||e,t=s.prefix||t}if(e&&t&&ep[t]&&ep[t][e]){var o=ep[t][e];return r(Sh(o))}r6(e,t),r(Se(Se({},n6),{},{icon:We.showMissingIcons&&e?Ts("missingIconAbstract")||{}:{}}))})}var by=function(){},Eh=We.measurePerformance&&qu&&qu.mark&&qu.measure?qu:{mark:by,measure:by},_l='FA "7.1.0"',a6=function(t){return Eh.mark("".concat(_l," ").concat(t," begins")),function(){return i2(t)}},i2=function(t){Eh.mark("".concat(_l," ").concat(t," ends")),Eh.measure("".concat(_l," ").concat(t),"".concat(_l," ").concat(t," begins"),"".concat(_l," ").concat(t," ends"))},Zm={begin:a6,end:i2},_c=function(){};function wy(e){var t=e.getAttribute?e.getAttribute(_o):null;return typeof t=="string"}function s6(e){var t=e.getAttribute?e.getAttribute(jm):null,n=e.getAttribute?e.getAttribute(Um):null;return t&&n}function o6(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(We.replacementClass)}function i6(){if(We.autoReplaceSvg===!0)return bc.replace;var e=bc[We.autoReplaceSvg];return e||bc.replace}function l6(e){return Pt.createElementNS("http://www.w3.org/2000/svg",e)}function u6(e){return Pt.createElement(e)}function l2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.ceFn,r=n===void 0?e.tag==="svg"?l6:u6:n;if(typeof e=="string")return Pt.createTextNode(e);var a=r(e.tag);Object.keys(e.attributes||[]).forEach(function(o){a.setAttribute(o,e.attributes[o])});var s=e.children||[];return s.forEach(function(o){a.appendChild(l2(o,{ceFn:r}))}),a}function c6(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com "),t}var bc={replace:function(t){var n=t[0];if(n.parentNode)if(t[1].forEach(function(a){n.parentNode.insertBefore(l2(a),n)}),n.getAttribute(_o)===null&&We.keepOriginalSource){var r=Pt.createComment(c6(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(t){var n=t[0],r=t[1];if(~Gm(n).indexOf(We.replacementClass))return bc.replace(t);var a=new RegExp("".concat(We.cssPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var s=r[0].attributes.class.split(" ").reduce(function(i,l){return l===We.replacementClass||l.match(a)?i.toSvg.push(l):i.toNode.push(l),i},{toNode:[],toSvg:[]});r[0].attributes.class=s.toSvg.join(" "),s.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",s.toNode.join(" "))}var o=r.map(function(i){return yu(i)}).join(` +`);n.setAttribute(_o,""),n.innerHTML=o}};function Sy(e){e()}function u2(e,t){var n=typeof t=="function"?t:_c;if(e.length===0)n();else{var r=Sy;We.mutateApproach===pP&&(r=ws.requestAnimationFrame||Sy),r(function(){var a=i6(),s=Zm.begin("mutate");e.map(a),s(),n()})}}var Jm=!1;function c2(){Jm=!0}function xh(){Jm=!1}var Zc=null;function Ty(e){if(iy&&We.observeMutations){var t=e.treeCallback,n=t===void 0?_c:t,r=e.nodeCallback,a=r===void 0?_c:r,s=e.pseudoElementsCallback,o=s===void 0?_c:s,i=e.observeMutationsRoot,l=i===void 0?Pt:i;Zc=new iy(function(c){if(!Jm){var u=Ss();Bi(c).forEach(function(d){if(d.type==="childList"&&d.addedNodes.length>0&&!wy(d.addedNodes[0])&&(We.searchPseudoElements&&o(d.target),n(d.target)),d.type==="attributes"&&d.target.parentNode&&We.searchPseudoElements&&o([d.target],!0),d.type==="attributes"&&wy(d.target)&&~_P.indexOf(d.attributeName))if(d.attributeName==="class"&&s6(d.target)){var p=Qd(Gm(d.target)),m=p.prefix,_=p.iconName;d.target.setAttribute(jm,m||u),_&&d.target.setAttribute(Um,_)}else o6(d.target)&&a(d.target)})}}),Xa&&Zc.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function d6(){Zc&&Zc.disconnect()}function f6(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(r,a){var s=a.split(":"),o=s[0],i=s.slice(1);return o&&i.length>0&&(r[o]=i.join(":").trim()),r},{})),n}function p6(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=e.innerText!==void 0?e.innerText.trim():"",a=Qd(Gm(e));return a.prefix||(a.prefix=Ss()),t&&n&&(a.prefix=t,a.iconName=n),a.iconName&&a.prefix||(a.prefix&&r.length>0&&(a.iconName=LP(a.prefix,e.innerText)||Qm(a.prefix,Qw(e.innerText))),!a.iconName&&We.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(a.iconName=e.firstChild.data)),a}function h6(e){var t=Bi(e.attributes).reduce(function(n,r){return n.name!=="class"&&n.name!=="style"&&(n[r.name]=r.value),n},{});return t}function m6(){return{iconName:null,prefix:null,transform:ea,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function Ey(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=p6(e),r=n.iconName,a=n.prefix,s=n.rest,o=h6(e),i=bh("parseNodeAttributes",{},e),l=t.styleParser?f6(e):[];return Se({iconName:r,prefix:a,transform:ea,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:s,styles:l,attributes:o}},i)}var v6=xr.styles;function d2(e){var t=We.autoReplaceSvg==="nest"?Ey(e,{styleParser:!1}):Ey(e);return~t.extra.classes.indexOf(jw)?Ts("generateLayersText",e,t):Ts("generateSvgReplacementMutation",e,t)}function g6(){return[].concat(Nr(Nw),Nr(Lw))}function xy(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Xa)return Promise.resolve();var n=Pt.documentElement.classList,r=function(d){return n.add("".concat(cy,"-").concat(d))},a=function(d){return n.remove("".concat(cy,"-").concat(d))},s=We.autoFetchSvg?g6():yw.concat(Object.keys(v6));s.includes("fa")||s.push("fa");var o=[".".concat(jw,":not([").concat(_o,"])")].concat(s.map(function(u){return".".concat(u,":not([").concat(_o,"])")})).join(", ");if(o.length===0)return Promise.resolve();var i=[];try{i=Bi(e.querySelectorAll(o))}catch{}if(i.length>0)r("pending"),a("complete");else return Promise.resolve();var l=Zm.begin("onTree"),c=i.reduce(function(u,d){try{var p=d2(d);p&&u.push(p)}catch(m){Hw||m.name==="MissingIcon"&&console.error(m)}return u},[]);return new Promise(function(u,d){Promise.all(c).then(function(p){u2(p,function(){r("active"),r("complete"),a("pending"),typeof t=="function"&&t(),l(),u()})}).catch(function(p){l(),d(p)})})}function y6(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;d2(e).then(function(n){n&&u2([n],t)})}function _6(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(t||{}).icon?t:wh(t||{}),a=n.mask;return a&&(a=(a||{}).icon?a:wh(a||{})),e(r,Se(Se({},n),{},{mask:a}))}}var b6=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,a=r===void 0?ea:r,s=n.symbol,o=s===void 0?!1:s,i=n.mask,l=i===void 0?null:i,c=n.maskId,u=c===void 0?null:c,d=n.classes,p=d===void 0?[]:d,m=n.attributes,_=m===void 0?{}:m,y=n.styles,b=y===void 0?{}:y;if(t){var h=t.prefix,g=t.iconName,w=t.icon;return Xd(Se({type:"icon"},t),function(){return bo("beforeDOMElementCreation",{iconDefinition:t,params:n}),Xm({icons:{main:Sh(w),mask:l?Sh(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:h,iconName:g,transform:Se(Se({},ea),a),symbol:o,maskId:u,extra:{attributes:_,styles:b,classes:p}})})}},w6={mixout:function(){return{icon:_6(b6)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=xy,n.nodeCallback=y6,n}}},provides:function(t){t.i2svg=function(n){var r=n.node,a=r===void 0?Pt:r,s=n.callback,o=s===void 0?function(){}:s;return xy(a,o)},t.generateSvgReplacementMutation=function(n,r){var a=r.iconName,s=r.prefix,o=r.transform,i=r.symbol,l=r.mask,c=r.maskId,u=r.extra;return new Promise(function(d,p){Promise.all([Th(a,s),l.iconName?Th(l.iconName,l.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(m){var _=Gd(m,2),y=_[0],b=_[1];d([n,Xm({icons:{main:y,mask:b},prefix:s,iconName:a,transform:o,symbol:i,maskId:c,extra:u,watchable:!0})])}).catch(p)})},t.generateAbstractIcon=function(n){var r=n.children,a=n.attributes,s=n.main,o=n.transform,i=n.styles,l=qd(i);l.length>0&&(a.style=l);var c;return qm(o)&&(c=Ts("generateAbstractTransformGrouping",{main:s,transform:o,containerWidth:s.width,iconWidth:s.width})),r.push(c||s.icon),{children:r,attributes:a}}}},S6={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.classes,s=a===void 0?[]:a;return Xd({type:"layer"},function(){bo("beforeDOMElementCreation",{assembler:n,params:r});var o=[];return n(function(i){Array.isArray(i)?i.map(function(l){o=o.concat(l.abstract)}):o=o.concat(i.abstract)}),[{tag:"span",attributes:{class:["".concat(We.cssPrefix,"-layers")].concat(Nr(s)).join(" ")},children:o}]})}}}},T6={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};r.title;var a=r.classes,s=a===void 0?[]:a,o=r.attributes,i=o===void 0?{}:o,l=r.styles,c=l===void 0?{}:l;return Xd({type:"counter",content:n},function(){return bo("beforeDOMElementCreation",{content:n,params:r}),t6({content:n.toString(),extra:{attributes:i,styles:c,classes:["".concat(We.cssPrefix,"-layers-counter")].concat(Nr(s))}})})}}}},E6={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=r.transform,s=a===void 0?ea:a,o=r.classes,i=o===void 0?[]:o,l=r.attributes,c=l===void 0?{}:l,u=r.styles,d=u===void 0?{}:u;return Xd({type:"text",content:n},function(){return bo("beforeDOMElementCreation",{content:n,params:r}),_y({content:n,transform:Se(Se({},ea),s),extra:{attributes:c,styles:d,classes:["".concat(We.cssPrefix,"-layers-text")].concat(Nr(i))}})})}}},provides:function(t){t.generateLayersText=function(n,r){var a=r.transform,s=r.extra,o=null,i=null;if(vw){var l=parseInt(getComputedStyle(n).fontSize,10),c=n.getBoundingClientRect();o=c.width/l,i=c.height/l}return Promise.resolve([n,_y({content:n.innerHTML,width:o,height:i,transform:a,extra:s,watchable:!0})])}}},f2=new RegExp('"',"ug"),ky=[1105920,1112319],Cy=Se(Se(Se(Se({},{FontAwesome:{normal:"fas",400:"fas"}}),oO),dP),mO),kh=Object.keys(Cy).reduce(function(e,t){return e[t.toLowerCase()]=Cy[t],e},{}),x6=Object.keys(kh).reduce(function(e,t){var n=kh[t];return e[t]=n[900]||Nr(Object.entries(n))[0][1],e},{});function k6(e){var t=e.replace(f2,"");return Qw(Nr(t)[0]||"")}function C6(e){var t=e.getPropertyValue("font-feature-settings").includes("ss01"),n=e.getPropertyValue("content"),r=n.replace(f2,""),a=r.codePointAt(0),s=a>=ky[0]&&a<=ky[1],o=r.length===2?r[0]===r[1]:!1;return s||o||t}function A6(e,t){var n=e.replace(/^['"]|['"]$/g,"").toLowerCase(),r=parseInt(t),a=isNaN(r)?"normal":r;return(kh[n]||{})[a]||x6[n]}function Ay(e,t){var n="".concat(fP).concat(t.replace(":","-"));return new Promise(function(r,a){if(e.getAttribute(n)!==null)return r();var s=Bi(e.children),o=s.filter(function($){return $.getAttribute(mh)===t})[0],i=ws.getComputedStyle(e,t),l=i.getPropertyValue("font-family"),c=l.match(gP),u=i.getPropertyValue("font-weight"),d=i.getPropertyValue("content");if(o&&!c)return e.removeChild(o),r();if(c&&d!=="none"&&d!==""){var p=i.getPropertyValue("content"),m=A6(l,u),_=k6(p),y=c[0].startsWith("FontAwesome"),b=C6(i),h=Qm(m,_),g=h;if(y){var w=FP(_);w.iconName&&w.prefix&&(h=w.iconName,m=w.prefix)}if(h&&!b&&(!o||o.getAttribute(jm)!==m||o.getAttribute(Um)!==g)){e.setAttribute(n,g),o&&e.removeChild(o);var v=m6(),k=v.extra;k.attributes[mh]=t,Th(h,m).then(function($){var S=Xm(Se(Se({},v),{},{icons:{main:$,mask:s2()},prefix:m,iconName:g,extra:k,watchable:!0})),x=Pt.createElementNS("http://www.w3.org/2000/svg","svg");t==="::before"?e.insertBefore(x,e.firstChild):e.appendChild(x),x.outerHTML=S.map(function(P){return yu(P)}).join(` +`),e.removeAttribute(n),r()}).catch(a)}else r()}else r()})}function D6(e){return Promise.all([Ay(e,"::before"),Ay(e,"::after")])}function M6(e){return e.parentNode!==document.head&&!~hP.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(mh)&&(!e.parentNode||e.parentNode.tagName!=="svg")}var O6=function(t){return!!t&&Ww.some(function(n){return t.includes(n)})},P6=function(t){if(!t)return[];var n=new Set,r=t.split(/,(?![^()]*\))/).map(function(l){return l.trim()});r=r.flatMap(function(l){return l.includes("(")?l:l.split(",").map(function(c){return c.trim()})});var a=yc(r),s;try{for(a.s();!(s=a.n()).done;){var o=s.value;if(O6(o)){var i=Ww.reduce(function(l,c){return l.replace(c,"")},o);i!==""&&i!=="*"&&n.add(i)}}}catch(l){a.e(l)}finally{a.f()}return n};function Dy(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(Xa){var n;if(t)n=e;else if(We.searchPseudoElementsFullScan)n=e.querySelectorAll("*");else{var r=new Set,a=yc(document.styleSheets),s;try{for(a.s();!(s=a.n()).done;){var o=s.value;try{var i=yc(o.cssRules),l;try{for(i.s();!(l=i.n()).done;){var c=l.value,u=P6(c.selectorText),d=yc(u),p;try{for(d.s();!(p=d.n()).done;){var m=p.value;r.add(m)}}catch(y){d.e(y)}finally{d.f()}}}catch(y){i.e(y)}finally{i.f()}}catch(y){We.searchPseudoElementsWarnings&&console.warn("Font Awesome: cannot parse stylesheet: ".concat(o.href," (").concat(y.message,`) +If it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.`))}}}catch(y){a.e(y)}finally{a.f()}if(!r.size)return;var _=Array.from(r).join(", ");try{n=e.querySelectorAll(_)}catch{}}return new Promise(function(y,b){var h=Bi(n).filter(M6).map(D6),g=Zm.begin("searchPseudoElements");c2(),Promise.all(h).then(function(){g(),xh(),y()}).catch(function(){g(),xh(),b()})})}}var $6={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=Dy,n}}},provides:function(t){t.pseudoElements2svg=function(n){var r=n.node,a=r===void 0?Pt:r;We.searchPseudoElements&&Dy(a)}}},My=!1,I6={mixout:function(){return{dom:{unwatch:function(){c2(),My=!0}}}},hooks:function(){return{bootstrap:function(){Ty(bh("mutationObserverCallbacks",{}))},noAuto:function(){d6()},watch:function(n){var r=n.observeMutationsRoot;My?xh():Ty(bh("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},Oy=function(t){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t.toLowerCase().split(" ").reduce(function(r,a){var s=a.toLowerCase().split("-"),o=s[0],i=s.slice(1).join("-");if(o&&i==="h")return r.flipX=!0,r;if(o&&i==="v")return r.flipY=!0,r;if(i=parseFloat(i),isNaN(i))return r;switch(o){case"grow":r.size=r.size+i;break;case"shrink":r.size=r.size-i;break;case"left":r.x=r.x-i;break;case"right":r.x=r.x+i;break;case"up":r.y=r.y-i;break;case"down":r.y=r.y+i;break;case"rotate":r.rotate=r.rotate+i;break}return r},n)},R6={mixout:function(){return{parse:{transform:function(n){return Oy(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var a=r.getAttribute("data-fa-transform");return a&&(n.transform=Oy(a)),n}}},provides:function(t){t.generateAbstractTransformGrouping=function(n){var r=n.main,a=n.transform,s=n.containerWidth,o=n.iconWidth,i={transform:"translate(".concat(s/2," 256)")},l="translate(".concat(a.x*32,", ").concat(a.y*32,") "),c="scale(".concat(a.size/16*(a.flipX?-1:1),", ").concat(a.size/16*(a.flipY?-1:1),") "),u="rotate(".concat(a.rotate," 0 0)"),d={transform:"".concat(l," ").concat(c," ").concat(u)},p={transform:"translate(".concat(o/2*-1," -256)")},m={outer:i,inner:d,path:p};return{tag:"g",attributes:Se({},m.outer),children:[{tag:"g",attributes:Se({},m.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:Se(Se({},r.icon.attributes),m.path)}]}]}}}},tp={x:0,y:0,width:"100%",height:"100%"};function Py(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function N6(e){return e.tag==="g"?e.children:[e]}var L6={hooks:function(){return{parseNodeAttributes:function(n,r){var a=r.getAttribute("data-fa-mask"),s=a?Qd(a.split(" ").map(function(o){return o.trim()})):s2();return s.prefix||(s.prefix=Ss()),n.mask=s,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(t){t.generateAbstractMask=function(n){var r=n.children,a=n.attributes,s=n.main,o=n.mask,i=n.maskId,l=n.transform,c=s.width,u=s.icon,d=o.width,p=o.icon,m=AP({transform:l,containerWidth:d,iconWidth:c}),_={tag:"rect",attributes:Se(Se({},tp),{},{fill:"white"})},y=u.children?{children:u.children.map(Py)}:{},b={tag:"g",attributes:Se({},m.inner),children:[Py(Se({tag:u.tag,attributes:Se(Se({},u.attributes),m.path)},y))]},h={tag:"g",attributes:Se({},m.outer),children:[b]},g="mask-".concat(i||fy()),w="clip-".concat(i||fy()),v={tag:"mask",attributes:Se(Se({},tp),{},{id:g,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[_,h]},k={tag:"defs",children:[{tag:"clipPath",attributes:{id:w},children:N6(p)},v]};return r.push(k,{tag:"rect",attributes:Se({fill:"currentColor","clip-path":"url(#".concat(w,")"),mask:"url(#".concat(g,")")},tp)}),{children:r,attributes:a}}}},F6={provides:function(t){var n=!1;ws.matchMedia&&(n=ws.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){var r=[],a={fill:"currentColor"},s={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:Se(Se({},a),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var o=Se(Se({},s),{},{attributeName:"opacity"}),i={tag:"circle",attributes:Se(Se({},a),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||i.children.push({tag:"animate",attributes:Se(Se({},s),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Se(Se({},o),{},{values:"1;0;1;1;0;1;"})}),r.push(i),r.push({tag:"path",attributes:Se(Se({},a),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:Se(Se({},o),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:Se(Se({},a),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Se(Se({},o),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},V6={hooks:function(){return{parseNodeAttributes:function(n,r){var a=r.getAttribute("data-fa-symbol"),s=a===null?!1:a===""?!0:a;return n.symbol=s,n}}}},Y6=[OP,w6,S6,T6,E6,$6,I6,R6,L6,F6,V6];GP(Y6,{mixoutsTo:Zn});Zn.noAuto;Zn.config;Zn.library;Zn.dom;var Ch=Zn.parse;Zn.findIconDefinition;Zn.toHtml;var W6=Zn.icon;Zn.layer;Zn.text;Zn.counter;function bn(e,t,n){return(t=U6(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),n.push.apply(n,r)}return n}function Da(e){for(var t=1;t0||!Array.isArray(t)&&t?bn({},e,t):{}}function z6(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":e.flip===!0,"fa-flip-horizontal":e.flip==="horizontal"||e.flip==="both","fa-flip-vertical":e.flip==="vertical"||e.flip==="both"},bn(bn(bn(bn(bn(bn(bn(bn(bn(bn(t,"fa-".concat(e.size),e.size!==null),"fa-rotate-".concat(e.rotation),e.rotation!==null),"fa-rotate-by",e.rotateBy),"fa-pull-".concat(e.pull),e.pull!==null),"fa-swap-opacity",e.swapOpacity),"fa-bounce",e.bounce),"fa-shake",e.shake),"fa-beat",e.beat),"fa-fade",e.fade),"fa-beat-fade",e.beatFade),bn(bn(bn(bn(t,"fa-flash",e.flash),"fa-spin-pulse",e.spinPulse),"fa-spin-reverse",e.spinReverse),"fa-width-auto",e.widthAuto));return Object.keys(n).map(function(r){return n[r]?r:null}).filter(function(r){return r})}var G6=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},p2={exports:{}};(function(e){(function(t){var n=function(h,g,w){if(!c(g)||d(g)||p(g)||m(g)||l(g))return g;var v,k=0,$=0;if(u(g))for(v=[],$=g.length;k<$;k++)v.push(n(h,g[k],w));else{v={};for(var S in g)Object.prototype.hasOwnProperty.call(g,S)&&(v[h(S,w)]=n(h,g[S],w))}return v},r=function(h,g){g=g||{};var w=g.separator||"_",v=g.split||/(?=[A-Z])/;return h.split(v).join(w)},a=function(h){return _(h)?h:(h=h.replace(/[\-_\s]+(.)?/g,function(g,w){return w?w.toUpperCase():""}),h.substr(0,1).toLowerCase()+h.substr(1))},s=function(h){var g=a(h);return g.substr(0,1).toUpperCase()+g.substr(1)},o=function(h,g){return r(h,g).toLowerCase()},i=Object.prototype.toString,l=function(h){return typeof h=="function"},c=function(h){return h===Object(h)},u=function(h){return i.call(h)=="[object Array]"},d=function(h){return i.call(h)=="[object Date]"},p=function(h){return i.call(h)=="[object RegExp]"},m=function(h){return i.call(h)=="[object Boolean]"},_=function(h){return h=h-0,h===h},y=function(h,g){var w=g&&"process"in g?g.process:g;return typeof w!="function"?h:function(v,k){return w(v,h,k)}},b={camelize:a,decamelize:o,pascalize:s,depascalize:o,camelizeKeys:function(h,g){return n(y(a,g),h)},decamelizeKeys:function(h,g){return n(y(o,g),h,g)},pascalizeKeys:function(h,g){return n(y(s,g),h)},depascalizeKeys:function(){return this.decamelizeKeys.apply(this,arguments)}};e.exports?e.exports=b:t.humps=b})(G6)})(p2);var q6=p2.exports,K6=["class","style"];function Q6(e){return e.split(";").map(function(t){return t.trim()}).filter(function(t){return t}).reduce(function(t,n){var r=n.indexOf(":"),a=q6.camelize(n.slice(0,r)),s=n.slice(r+1).trim();return t[a]=s,t},{})}function X6(e){return e.split(/\s+/).reduce(function(t,n){return t[n]=!0,t},{})}function h2(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string")return e;var r=(e.children||[]).map(function(l){return h2(l)}),a=Object.keys(e.attributes||{}).reduce(function(l,c){var u=e.attributes[c];switch(c){case"class":l.class=X6(u);break;case"style":l.style=Q6(u);break;default:l.attrs[c]=u}return l},{attrs:{},class:{},style:{}});n.class;var s=n.style,o=s===void 0?{}:s,i=H6(n,K6);return bt(e.tag,Da(Da(Da({},t),{},{class:a.class,style:Da(Da({},a.style),o)},a.attrs),i),r)}var m2=!1;try{m2=!0}catch{}function Z6(){if(!m2&&console&&typeof console.error=="function"){var e;(e=console).error.apply(e,arguments)}}function Iy(e){if(e&&Jc(e)==="object"&&e.prefix&&e.iconName&&e.icon)return e;if(Ch.icon)return Ch.icon(e);if(e===null)return null;if(Jc(e)==="object"&&e.prefix&&e.iconName)return e;if(Array.isArray(e)&&e.length===2)return{prefix:e[0],iconName:e[1]};if(typeof e=="string")return{prefix:"fas",iconName:e}}var J6=ye({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(t){return[!0,!1,"horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(Number.parseInt(t,10))>-1}},rotateBy:{type:Boolean,default:!1},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(t){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1},widthAuto:{type:Boolean,default:!1}},setup:function(t,n){var r=n.attrs,a=G(function(){return Iy(t.icon)}),s=G(function(){return np("classes",z6(t))}),o=G(function(){return np("transform",typeof t.transform=="string"?Ch.transform(t.transform):t.transform)}),i=G(function(){return np("mask",Iy(t.mask))}),l=G(function(){var u=Da(Da(Da(Da({},s.value),o.value),i.value),{},{symbol:t.symbol,maskId:t.maskId});return u.title=t.title,u.titleId=t.titleId,W6(a.value,u)});Ue(l,function(u){if(!u)return Z6("Could not find one or more icon(s)",a.value,i.value)},{immediate:!0});var c=G(function(){return l.value?h2(l.value.abstract[0],{},r):null});return function(){return c.value}}});const pt=ye({__name:"FAIcon",props:{icon:{},title:{},size:{default:"1x"}},setup(e){return(t,n)=>{const r=Fi("tippy");return Ot((D(),ge(f(J6),{icon:e.icon,size:e.size},null,8,["icon","size"])),[[r,e.title]])}}});var e5={prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z"]},Zd={prefix:"fas",iconName:"envelope",icon:[512,512,[128386,9993,61443],"f0e0","M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z"]},WQ={prefix:"fas",iconName:"bell",icon:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z"]},t5={prefix:"fas",iconName:"exclamation",icon:[128,512,[10069,10071,61738],"21","M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z"]},n5={prefix:"fas",iconName:"gauge",icon:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},r5={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z"]},a5={prefix:"fas",iconName:"note-sticky",icon:[448,512,[62026,"sticky-note"],"f249","M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z"]},HQ=a5,s5={prefix:"fas",iconName:"pen-to-square",icon:[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"]},BQ=s5,jQ={prefix:"fas",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},o5={prefix:"fas",iconName:"comment",icon:[512,512,[128489,61669],"f075","M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z"]},v2={prefix:"fas",iconName:"heart-pulse",icon:[512,512,["heartbeat"],"f21e","M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z"]},g2=v2,UQ={prefix:"fas",iconName:"laptop",icon:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z"]},i5={prefix:"fas",iconName:"envelope-open",icon:[512,512,[62135],"f2b6","M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z"]},l5={prefix:"fas",iconName:"pencil",icon:[512,512,[9999,61504,"pencil-alt"],"f303","M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z"]},zQ={prefix:"fas",iconName:"angle-right",icon:[256,512,[8250],"f105","M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"]},GQ={prefix:"fas",iconName:"cloud",icon:[576,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z"]},u5={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"]},qQ=u5,c5={prefix:"fas",iconName:"chart-line",icon:[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"]},Ry={prefix:"fas",iconName:"arrow-turn-up",icon:[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"]},d5={prefix:"fas",iconName:"gear",icon:[512,512,[9881,"cog"],"f013","M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z"]},KQ={prefix:"fas",iconName:"eraser",icon:[576,512,[],"f12d","M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z"]},_u={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z"]},f5={prefix:"fas",iconName:"server",icon:[448,512,[],"f233","M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"]},QQ={prefix:"fas",iconName:"arrow-right",icon:[512,512,[8594],"f061","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"]},p5={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"]},y2=p5,h5={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"]},XQ={prefix:"fas",iconName:"rotate-right",icon:[512,512,["redo-alt","rotate-forward"],"f2f9","M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z"]},m5={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"]},ZQ={prefix:"fas",iconName:"clock-rotate-left",icon:[576,512,["history"],"f1da","M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z"]},JQ={prefix:"fas",iconName:"angle-down",icon:[384,512,[8964],"f107","M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"]},eX={prefix:"fas",iconName:"arrow-down-short-wide",icon:[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"]},tX={prefix:"fas",iconName:"chevron-left",icon:[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"]},nX={prefix:"fas",iconName:"arrow-down-1-9",icon:[512,512,["sort-numeric-asc","sort-numeric-down"],"f162","M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z"]},rX={prefix:"fas",iconName:"bell-slash",icon:[576,512,[128277,61943],"f1f6","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z"]},aX={prefix:"fas",iconName:"arrow-down-z-a",icon:[512,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z"]},_2={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"]},v5=_2,sX=_2,oX={prefix:"fas",iconName:"lock",icon:[384,512,[128274],"f023","M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z"]},g5={prefix:"fas",iconName:"download",icon:[448,512,[],"f019","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"]},iX={prefix:"fas",iconName:"arrow-down-9-1",icon:[512,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z"]},b2={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z"]},y5={prefix:"fas",iconName:"arrow-rotate-right",icon:[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z"]},lX=y5,uX={prefix:"fas",iconName:"arrow-down-wide-short",icon:[576,512,["sort-amount-asc","sort-amount-down"],"f160","M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z"]},cX={prefix:"fas",iconName:"recycle",icon:[512,512,[9842,9850,9851],"f1b8","M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z"]},_5={prefix:"fas",iconName:"arrow-rotate-left",icon:[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z"]},dX=_5,b5={prefix:"fas",iconName:"arrow-up-right-from-square",icon:[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z"]},w5=b5,S5={prefix:"fas",iconName:"arrows-rotate",icon:[512,512,[128472,"refresh","sync"],"f021","M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z"]},w2=S5,T5={prefix:"fas",iconName:"list-ul",icon:[512,512,["list-dots"],"f0ca","M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"]},fX={prefix:"fas",iconName:"arrow-down-a-z",icon:[512,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z"]},E5={prefix:"fas",iconName:"circle-info",icon:[512,512,["info-circle"],"f05a","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Ny=E5;const x5={class:"row box box-event-item"},k5={class:"row"},C5={class:"col-auto col-icon"},A5={key:1,class:"icon pa-redirect-source pa-redirect-large"},D5={class:"col-9"},M5={class:"row box-header"},O5={class:"col-12"},P5={class:"lead"},$5={class:"col-2"},I5=ye({__name:"EventLogItem",props:{eventLogItem:{}},setup(e){const t=e,n=Os();function r(){switch(t.eventLogItem.category){case"Endpoints":n.push(pe.configuration.endpointConnection.link);break;case"HeartbeatMonitoring":n.push(pe.heartbeats.root);break;case"CustomChecks":n.push(pe.customChecks);break;case"EndpointControl":n.push(pe.heartbeats.root);break;case"MessageFailures":if(t.eventLogItem.related_to?.length&&t.eventLogItem.related_to[0].search("message")>0){const o=t.eventLogItem.related_to[0].substring(9);n.push({path:pe.messages.failedMessage.link(o)})}else n.push(pe.failedMessage.root);break;case"Recoverability":n.push(pe.failedMessage.root);break;case"MessageRedirects":n.push(pe.configuration.retryRedirects.link);break}}const a=G(()=>{switch(t.eventLogItem.category){case"Endpoints":case"EndpointControl":case"HeartbeatMonitoring":return g2;case"CustomChecks":return _u;case"MessageFailures":case"Recoverability":return Zd;case"ExternalIntegrations":return t5;default:return null}}),s=G(()=>{if(t.eventLogItem.severity===gc.Error)return y2;if(t.eventLogItem.category==="MessageRedirects")switch(t.eventLogItem.event_type){case"MessageRedirectChanged":return l5;case"MessageRedirectCreated":return b2;case"MessageRedirectRemoved":return r5}return null});return(o,i)=>(D(),L("div",x5,[A("div",{class:"col-12",onClick:r},[A("div",k5,[A("div",C5,[a.value?(D(),ge(pt,{key:0,class:xe(["icon",{danger:t.eventLogItem.severity===f(gc).Error}]),icon:a.value,size:"2x"},null,8,["class","icon"])):(D(),L("i",A5)),s.value?(D(),ge(pt,{key:2,class:xe(["icon sub-item",{danger:e.eventLogItem.severity===f(gc).Error}]),icon:s.value},null,8,["class","icon"])):q("",!0)]),A("div",D5,[A("div",M5,[A("div",O5,[A("p",P5,me(e.eventLogItem.description),1)])])]),A("div",$5,[ae(dw,{"date-utc":e.eventLogItem.raised_at},null,8,["date-utc"])])])])]))}}),S2=Ke(I5,[["__scopeId","data-v-a78cba63"]]),R5={class:"events"},N5={class:"col-12"},L5={key:0,class:"row text-center"},F5={class:"col-12"},V5=ye({__name:"EventItemShort",setup(e){const t=oe({data:[],totalCount:0});return(n,r)=>(D(),L("div",R5,[ae(yb,{"api-url":"eventlogitems",modelValue:t.value,"onUpdate:modelValue":r[0]||(r[0]=a=>t.value=a),"auto-refresh-seconds":5,itemsPerPage:10,"show-pagination":!1},{data:de(()=>[A("div",N5,[r[1]||(r[1]=A("h6",null,"Last 10 events",-1)),(D(!0),L(Me,null,Xe(t.value.data,a=>(D(),ge(S2,{eventLogItem:a,key:a.id},null,8,["eventLogItem"]))),128))])]),footer:de(()=>[t.value.totalCount>10?(D(),L("div",L5,[A("div",F5,[ae(f(Lt),{to:f(pe).events,class:"btn btn-default btn-secondary btn-all-events"},{default:de(()=>[...r[2]||(r[2]=[_e("View all events",-1)])]),_:1},8,["to"])])])):q("",!0)]),_:1},8,["modelValue"])]))}}),Y5=Ke(V5,[["__scopeId","data-v-27d73168"]]),Jd=ye({__name:"ConditionalRender",props:{supported:{type:Boolean}},setup(e){const t=e;return(n,r)=>t.supported?Ee(n.$slots,"default",{key:1}):Ee(n.$slots,"unsupported",{key:0})}});function pX(e,t){if(e.trial_license&&t?.mass_transit_connector)return"Early Access "}var Tt=(e=>(e.Valid="Valid",e.Unavailable="Unavailable",e.InvalidDueToExpiredSubscription="InvalidDueToExpiredSubscription",e.ValidWithExpiringTrial="ValidWithExpiringTrial",e.InvalidDueToExpiredTrial="InvalidDueToExpiredTrial",e.InvalidDueToExpiredUpgradeProtection="InvalidDueToExpiredUpgradeProtection",e.ValidWithExpiredUpgradeProtection="ValidWithExpiredUpgradeProtection",e.ValidWithExpiringUpgradeProtection="ValidWithExpiringUpgradeProtection",e.ValidWithExpiringSubscription="ValidWithExpiringSubscription",e))(Tt||{}),ta=(e=>(e.None="none",e.Warning="warning",e.Danger="danger",e))(ta||{});const W5=Ae.duration(1e3),H5=Ae.duration(60*1e3),B5=Ae.duration(3600*1e3),j5=Ae.duration(1440*60*1e3);function ed(e){const t={value:"0",unit:"ms"};if(e){const n=Ae.duration(e);n>=j5?t.value=rs(n.days())+" d "+rs(n.hours())+" hrs":n>=B5?(t.value=rs(n.hours(),!0)+":"+rs(n.minutes(),!0),t.unit="hr"):n>=H5?(t.value=rs(n.minutes())+":"+rs(n.seconds()),t.unit="min"):n>=W5?(t.value=rs(n.seconds()),t.unit="sec"):(t.value=rs(n.asMilliseconds()),t.unit="ms")}return t}function Ly(e){const t=new Date;t.setHours(0,0,0,0);const n=new Date(e.replace("Z","")).getTime()-t.getTime();return Math.round(n/1e3/60/60/24)}function T2(e,t){const n=["k","M","G","T","P","E"];if(isNaN(e))return"";if(e<1e6)return Fy(e,t).toLocaleString();const r=Math.floor(Math.log(e)/Math.log(1e3));return`${Fy(e/Math.pow(1e3,r),t).toLocaleString()}${n[r-1]}`}function Fy(e,t){return Number(e.toFixed(t))}function rs(e,t=!1){const n=Math.floor(e);return`${t?("0"+n).slice(-2):n.toLocaleString()}`}const ji=Qn("LicenseStore",()=>{const e=vn(),t=Qt({edition:"",expiration_date:"",upgrade_protection_expiration:"",license_type:"",instance_name:"",trial_license:!0,registered_to:"",status:"",license_status:Tt.Unavailable,license_extension_url:""}),n=Qt({isSubscriptionLicense:!1,isUpgradeProtectionLicense:!1,isTrialLicense:!1,isPlatformExpired:!1,isPlatformTrialExpired:!1,isPlatformTrialExpiring:!1,isInvalidDueToUpgradeProtectionExpired:!1,isValidWithExpiredUpgradeProtection:!1,isValidWithExpiringUpgradeProtection:!1,isExpired:!1,upgradeDaysLeft:"",subscriptionDaysLeft:"",trialDaysLeft:"",warningLevel:ta.None,licenseExtensionUrl:""}),r=oe(!1),a=G(()=>`${t.license_type}${t.edition?`, ${t.edition}`:""}`),s=G(()=>t.instance_name||"Upgrade ServiceControl to v3.4.0+ to see more information about this license"),o=G(()=>t.expiration_date?new Date(t.expiration_date.replace("Z","")).toLocaleDateString():""),i=G(()=>t.upgrade_protection_expiration?new Date(t.upgrade_protection_expiration.replace("Z","")).toLocaleDateString():"");async function l(){r.value=!0;try{const h=await c();if(h===null)return;t.license_type=h.license_type,t.expiration_date=h.expiration_date,t.trial_license=h.trial_license,t.edition=h.edition,t.license_status=h.license_status,t.instance_name=h.instance_name,t.registered_to=h.registered_to,t.status=h.status,t.license_extension_url=h.license_extension_url??"https://particular.net/extend-your-trial?p=servicepulse",t.upgrade_protection_expiration=h.upgrade_protection_expiration,n.isSubscriptionLicense=p(),n.isUpgradeProtectionLicense=d(),n.isTrialLicense=t.trial_license,n.isPlatformExpired=t.license_status===Tt.InvalidDueToExpiredSubscription,n.isPlatformTrialExpiring=t.license_status===Tt.ValidWithExpiringTrial,n.isPlatformTrialExpired=t.license_status===Tt.InvalidDueToExpiredTrial,n.isInvalidDueToUpgradeProtectionExpired=t.license_status===Tt.InvalidDueToExpiredUpgradeProtection,n.isValidWithExpiredUpgradeProtection=t.license_status===Tt.ValidWithExpiredUpgradeProtection,n.isValidWithExpiringUpgradeProtection=t.license_status===Tt.ValidWithExpiringUpgradeProtection,n.upgradeDaysLeft=b(),n.subscriptionDaysLeft=m(),n.trialDaysLeft=_(),n.warningLevel=u(),n.isExpired=n.isPlatformExpired||n.isPlatformTrialExpired||n.isInvalidDueToUpgradeProtectionExpired,n.licenseExtensionUrl=t.license_extension_url}finally{r.value=!1}}async function c(){try{const[,h]=await e.fetchTypedFromServiceControl("license?refresh=true&clientName=servicepulse");return h}catch(h){return console.error("Error fetching license information",h),null}}function u(){switch(t.license_status){case Tt.InvalidDueToExpiredTrial:case Tt.InvalidDueToExpiredSubscription:case Tt.InvalidDueToExpiredUpgradeProtection:return ta.Danger;case Tt.ValidWithExpiringUpgradeProtection:case Tt.ValidWithExpiringTrial:case Tt.ValidWithExpiredUpgradeProtection:case Tt.ValidWithExpiringSubscription:return ta.Warning;default:return ta.None}}function d(){return t.upgrade_protection_expiration!==void 0&&t.upgrade_protection_expiration!==""}function p(){return t.expiration_date!==void 0&&t.expiration_date!==""&&!t.trial_license}function m(){if(t.license_status===Tt.InvalidDueToExpiredSubscription)return" - expired";const h=t.license_status===Tt.ValidWithExpiringSubscription;return y(h,t.expiration_date)}function _(){if(t.license_status===Tt.InvalidDueToExpiredTrial)return" - expired";const h=t.license_status===Tt.ValidWithExpiringTrial;return y(h,t.expiration_date)}function y(h,g){const w=Ly(g);return isNaN(w)?"":h?w===0?" - expiring today":w===1?" - expiring tomorrow":` - expiring in ${w} days`:` - ${w} days left`}function b(){if(t.license_status===Tt.InvalidDueToExpiredUpgradeProtection)return" - expired";const h=Ly(t.upgrade_protection_expiration);return isNaN(h)?"":h<=0?" - expired":h===0?" - expiring today":h===1?" - 1 day left":" - "+h+" days left"}return{refresh:l,license:t,licenseStatus:n,loading:r,licenseEdition:a,formattedInstanceName:s,formattedExpirationDate:o,formattedUpgradeProtectionExpiration:i}}),U5={key:0,class:"text-center monitoring-no-data"},z5={class:"action-toolbar"},G5={key:1,class:"text-center monitoring-no-data"},q5={class:"action-toolbar"},K5=["href"],Q5={key:2,class:"text-center monitoring-no-data"},X5={class:"action-toolbar"},Z5=ye({__name:"LicenseExpired",setup(e){const t=ji(),{licenseStatus:n,license:r}=t;return(a,s)=>{const o=sr("RouterLink");return D(),L(Me,null,[f(n).isPlatformExpired?(D(),L("div",U5,[s[1]||(s[1]=A("h1",null,"Platform license expired",-1)),s[2]||(s[2]=A("p",null,"Please update your license to continue using the Particular Service Platform",-1)),A("div",z5,[ae(o,{class:"btn btn-default btn-primary",to:f(pe).configuration.license.link},{default:de(()=>[...s[0]||(s[0]=[_e("View license details",-1)])]),_:1},8,["to"])])])):q("",!0),f(n).isPlatformTrialExpired?(D(),L("div",G5,[s[5]||(s[5]=A("h1",null,"License expired",-1)),s[6]||(s[6]=A("p",null,"To continue using the Particular Service Platform, please extend your license",-1)),A("div",q5,[A("a",{class:"btn btn-default btn-primary",href:f(r).license_extension_url,target:"_blank"},[s[3]||(s[3]=_e("Extend your license ",-1)),ae(pt,{icon:f(w5)},null,8,["icon"])],8,K5),ae(o,{class:"btn btn-default btn-secondary",to:f(pe).configuration.license.link},{default:de(()=>[...s[4]||(s[4]=[_e("View license details",-1)])]),_:1},8,["to"])])])):q("",!0),f(n).isInvalidDueToUpgradeProtectionExpired?(D(),L("div",Q5,[s[8]||(s[8]=A("h1",null,"Platform license expired",-1)),s[9]||(s[9]=A("p",null,"Your upgrade protection period has elapsed and your license is not valid for this version of ServicePulse.",-1)),A("div",X5,[ae(o,{class:"btn btn-default btn-primary",to:f(pe).configuration.license.link},{default:de(()=>[...s[7]||(s[7]=[_e("View license details",-1)])]),_:1},8,["to"])])])):q("",!0)],64)}}}),Ui=ye({__name:"LicenseNotExpired",setup(e){const t=ji(),{licenseStatus:n}=t;return(r,a)=>(D(),ge(Jd,{supported:!f(n).isExpired},{unsupported:de(()=>[ae(Z5)]),default:de(()=>[Ee(r.$slots,"default")]),_:3},8,["supported"]))}});var wc=(e=>(e.Unresolved="unresolved",e.Resolved="resolved",e.RetryIssued="retryIssued",e.Archived="archived",e))(wc||{});function ev(e,t){return _d()?(tm(e,t),!0):!1}const ef=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const J5=Object.prototype.toString,e$=e=>J5.call(e)==="[object Object]",to=()=>{};function t$(e,t){function n(...r){return new Promise((a,s)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(a).catch(s)})}return n}function n$(e,t={}){let n,r,a=to;const s=l=>{clearTimeout(l),a(),a=to};let o;return l=>{const c=Yn(e),u=Yn(t.maxWait);return n&&s(n),c<=0||u!==void 0&&u<=0?(r&&(s(r),r=void 0),Promise.resolve(l())):new Promise((d,p)=>{a=t.rejectOnCancel?p:d,o=l,u&&!r&&(r=setTimeout(()=>{n&&s(n),r=void 0,d(o())},u)),n=setTimeout(()=>{r&&s(r),r=void 0,d(l())},c)})}}function rp(e){return Array.isArray(e)?e:[e]}function r$(e,t=200,n={}){return t$(n$(t,n),e)}function tv(e=0,t={}){let n=f(e);const r=ur(e),{max:a=Number.POSITIVE_INFINITY,min:s=Number.NEGATIVE_INFINITY}=t,o=(d=1)=>r.value=Math.max(Math.min(a,r.value+d),s),i=(d=1)=>r.value=Math.min(Math.max(s,r.value-d),a),l=()=>r.value,c=d=>r.value=Math.max(s,Math.min(a,d)),u=(d=n)=>(n=d,c(d));return{count:xa(r),inc:o,dec:i,get:l,set:c,reset:u}}function a$(e,t,n={}){const{immediate:r=!0,immediateCallback:a=!1}=n,s=ur(!1);let o;function i(){o&&(clearTimeout(o),o=void 0)}function l(){s.value=!1,i()}function c(...u){a&&e(),i(),s.value=!0,o=setTimeout(()=>{s.value=!1,o=void 0,e(...u)},Yn(t))}return r&&(s.value=!0,ef&&c()),ev(l),{isPending:xa(s),start:c,stop:l}}function s$(e,t,n){return Ue(e,t,{...n,immediate:!0})}function o$(e,t,n){var r;let a;Qe(n)?a={evaluating:n}:a=n||{};const{lazy:s=!1,flush:o="sync",evaluating:i=void 0,shallow:l=!0,onError:c=(r=globalThis.reportError)!==null&&r!==void 0?r:to}=a,u=ur(!s),d=l?ur(t):oe(t);let p=0;return R_(async m=>{if(!u.value)return;p++;const _=p;let y=!1;i&&Promise.resolve().then(()=>{i.value=!0});try{const b=await e(h=>{m(()=>{i&&(i.value=!1),y||h()})});_===p&&(d.value=b)}catch(b){c(b)}finally{i&&_===p&&(i.value=!1),y=!0}},{flush:o}),s?G(()=>(u.value=!0,d.value)):d}const E2=ef?window:void 0,i$=ef?window.document:void 0;function rn(e){var t;const n=Yn(e);return(t=n?.$el)!==null&&t!==void 0?t:n}function fo(...e){const t=[],n=()=>{t.forEach(i=>i()),t.length=0},r=(i,l,c,u)=>(i.addEventListener(l,c,u),()=>i.removeEventListener(l,c,u)),a=G(()=>{const i=rp(Yn(e[0])).filter(l=>l!=null);return i.every(l=>typeof l!="string")?i:void 0}),s=s$(()=>{var i,l;return[(i=(l=a.value)===null||l===void 0?void 0:l.map(c=>rn(c)))!==null&&i!==void 0?i:[E2].filter(c=>c!=null),rp(Yn(a.value?e[1]:e[0])),rp(f(a.value?e[2]:e[1])),Yn(a.value?e[3]:e[2])]},([i,l,c,u])=>{if(n(),!i?.length||!l?.length||!c?.length)return;const d=e$(u)?{...u}:u;t.push(...i.flatMap(p=>l.flatMap(m=>c.map(_=>r(p,m,_,d)))))},{flush:"post"}),o=()=>{s(),n()};return ev(n),o}function l$(e,t,n={}){const{window:r=E2,ignore:a=[],capture:s=!0,detectIframe:o=!1,controls:i=!1}=n;if(!r)return i?{stop:to,cancel:to,trigger:to}:to;let l=!0;const c=b=>Yn(a).some(h=>{if(typeof h=="string")return Array.from(r.document.querySelectorAll(h)).some(g=>g===b.target||b.composedPath().includes(g));{const g=rn(h);return g&&(b.target===g||b.composedPath().includes(g))}});function u(b){const h=Yn(b);return h&&h.$.subTree.shapeFlag===16}function d(b,h){const g=Yn(b),w=g.$.subTree&&g.$.subTree.children;return w==null||!Array.isArray(w)?!1:w.some(v=>v.el===h.target||h.composedPath().includes(v.el))}const p=b=>{const h=rn(e);if(b.target!=null&&!(!(h instanceof Element)&&u(e)&&d(e,b))&&!(!h||h===b.target||b.composedPath().includes(h))){if("detail"in b&&b.detail===0&&(l=!c(b)),!l){l=!0;return}t(b)}};let m=!1;const _=[fo(r,"click",b=>{m||(m=!0,setTimeout(()=>{m=!1},0),p(b))},{passive:!0,capture:s}),fo(r,"pointerdown",b=>{const h=rn(e);l=!c(b)&&!!(h&&!b.composedPath().includes(h))},{passive:!0}),o&&fo(r,"blur",b=>{setTimeout(()=>{var h;const g=rn(e);((h=r.document.activeElement)===null||h===void 0?void 0:h.tagName)==="IFRAME"&&!g?.contains(r.document.activeElement)&&t(b)},0)},{passive:!0})].filter(Boolean),y=()=>_.forEach(b=>b());return i?{stop:y,cancel:()=>{l=!1},trigger:b=>{l=!0,p(b),l=!1}}:y}function u$(e={}){const{document:t=i$}=e;if(!t)return ur("visible");const n=ur(t.visibilityState);return fo(t,"visibilitychange",()=>{n.value=t.visibilityState},{passive:!0}),n}function c$(e,t){const r=sm(new Map),a=(...u)=>JSON.stringify(u),s=(u,...d)=>(r.set(u,e(...d)),r.get(u)),o=(...u)=>s(a(...u),...u),i=(...u)=>{r.delete(a(...u))},l=()=>{r.clear()},c=(...u)=>{const d=a(...u);return r.has(d)?r.get(d):s(d,...u)};return c.load=o,c.delete=i,c.clear=l,c.generateKey=a,c.cache=r,c}function d$(e,t={}){const{threshold:n=50,onSwipe:r,onSwipeEnd:a,onSwipeStart:s,passive:o=!0}=t,i=Qt({x:0,y:0}),l=Qt({x:0,y:0}),c=G(()=>i.x-l.x),u=G(()=>i.y-l.y),{max:d,abs:p}=Math,m=G(()=>d(p(c.value),p(u.value))>=n),_=ur(!1),y=G(()=>m.value?p(c.value)>p(u.value)?c.value>0?"left":"right":u.value>0?"up":"down":"none"),b=S=>[S.touches[0].clientX,S.touches[0].clientY],h=(S,x)=>{i.x=S,i.y=x},g=(S,x)=>{l.x=S,l.y=x},w={passive:o,capture:!o},v=S=>{_.value&&a?.(S,y.value),_.value=!1},k=[fo(e,"touchstart",S=>{if(S.touches.length!==1)return;const[x,P]=b(S);h(x,P),g(x,P),s?.(S)},w),fo(e,"touchmove",S=>{if(S.touches.length!==1)return;const[x,P]=b(S);g(x,P),w.capture&&!w.passive&&Math.abs(c.value)>Math.abs(u.value)&&S.preventDefault(),!_.value&&m.value&&(_.value=!0),_.value&&r?.(S)},w),fo(e,["touchend","touchcancel"],v,w)];return{isSwiping:_,direction:y,coordsStart:i,coordsEnd:l,lengthX:c,lengthY:u,stop:()=>k.forEach(S=>S())}}function f$(e,t,n={}){const{immediate:r=!0,immediateCallback:a=!1}=n,{start:s}=a$(i,t,{immediate:r}),o=ur(!1);async function i(){o.value&&(await e(),s())}function l(){o.value||(o.value=!0,a&&e(),s())}function c(){o.value=!1}return r&&ef&&l(),ev(c),{isActive:o,pause:c,resume:l}}const p$=Qn("ConnectionsAndStatsStore",()=>{const e=vn(),{isMonitoringEnabled:t}=Et(e),n=oe(0),r=oe(0),a=oe(0),s=oe(0),{count:o,inc:i,dec:l}=tv(0);function c(){ut(()=>i()),xn(()=>l())}const u=Qt({connected:!1,connecting:!1,connectedRecently:!1,unableToConnect:null}),d=Qt({connected:!1,connecting:!1,connectedRecently:!1,unableToConnect:null}),p=G(()=>(u.unableToConnect||d.unableToConnect&&t.value)??!1);async function m(){const b=_(wc.Unresolved),h=o.value>0?_(wc.Archived):0,g=o.value>0?_(wc.RetryIssued):0,w=y(),[v,k,$,S]=await Promise.all([b,h,g,w]);n.value=v,r.value=k,a.value=$,s.value=S}function _(b){return Vy(()=>e.fetchTypedFromServiceControl(`errors?status=${b}`),u,h=>parseInt(h.headers.get("Total-Count")??"0"),0)}function y(){return Vy(()=>e.fetchTypedFromMonitoring("monitored-endpoints/disconnected"),d,(b,h)=>h,0)}return{refresh:m,failedMessageCount:n,requiresFullFailureDetails:c,archivedMessageCount:r,pendingRetriesMessageCount:a,disconnectedEndpointsCount:s,connectionState:u,monitoringConnectionState:d,displayConnectionsWarning:p}});async function Vy(e,t,n,r){if(t.connecting)try{const[a,s]=await e();if(a!=null&&s!=null)return await n(a,s)}catch(a){return console.log(a),r}try{t.connected||(t.connecting=!0,t.connected=!1);try{const[a,s]=await e();let o=null;if(a!=null&&s!=null&&(o=await n(a,s)),t.unableToConnect=!1,t.connectedRecently=!0,t.connected=!0,t.connecting=!1,o)return o}catch(a){t.connected=!1,t.unableToConnect=!0,t.connectedRecently=!1,t.connecting=!1,console.log(a)}}catch{t.connecting=!1,t.connected=!1}return r}function x2(e,t,n){let r=null;const{count:a,inc:s,dec:o,reset:i}=tv(0),l=oe(n),c=oe(!1),u=async()=>{c.value||(c.value=!0,await t(),c.value=!1)},{pause:d,resume:p}=f$(u,l,{immediate:!1,immediateCallback:!0}),m=u$(),_=async()=>{s(),a.value===1?(console.debug(`[AutoRefresh] Starting auto-refresh for ${e} every ${l.value}ms`),p(),r=Ue(m,(h,g)=>{h==="visible"&&g==="hidden"&&(console.debug(`[AutoRefresh] Resuming auto-refresh for ${e} as document became visible`),p()),h==="hidden"&&g==="visible"&&(console.debug(`[AutoRefresh] Pausing auto-refresh for ${e} as document became hidden`),d())})):(console.debug(`[AutoRefresh] Incremented refCount for ${e} to ${a.value}`),await u())},y=()=>{o(),a.value<=0?(console.debug(`[AutoRefresh] Stopping auto-refresh for ${e}`),d(),r?.(),r=null,i()):console.debug(`[AutoRefresh] Decremented refCount for ${e} to ${a.value}`)},b=h=>{l.value=h};return{refreshNow:u,isRefreshing:xa(c),updateInterval:b,start:_,stop:y}}function h$(e,t,n){const{start:r,stop:a}=x2(e,t,n);function s(){Vr()&&(ut(r),xn(a))}return s}function bu(e,t,n){const r=()=>a?a.refresh():Promise.resolve();let a=null;const s=h$(e,r,n);return()=>(a=t(),s(),{store:a})}const ga=bu("connectionsAndStats",p$,5e3),m$={key:0,class:"sp-loader"},v$={class:"text-center unsupported"},g$={id:"serviceControlUrl"},y$=ye({__name:"ServiceControlAvailable",setup(e){const{store:t}=ga(),n=t.connectionState,r=vn(),{serviceControlUrl:a}=Et(r);return(s,o)=>f(n).connecting&&!f(n).unableToConnect?(D(),L("div",m$)):(D(),ge(Jd,{key:1,supported:!f(n).unableToConnect},{unsupported:de(()=>[A("div",v$,[o[2]||(o[2]=A("h1",null,"Cannot connect to ServiceControl",-1)),A("p",null,[o[0]||(o[0]=_e(" ServicePulse is unable to connect to the ServiceControl instance at ",-1)),A("span",g$,me(f(a)),1),o[1]||(o[1]=_e(". Please ensure that ServiceControl is running and accessible from your machine. ",-1))])])]),default:de(()=>[Ee(s.$slots,"default",{},void 0,!0)]),_:3},8,["supported"]))}}),zi=Ke(y$,[["__scopeId","data-v-1d7ec2b7"]]),_$={key:0,"aria-label":"Alert Count",class:"badge badge-important"},b$=ye({__name:"DashboardItem",props:{counter:{},url:{},icon:{}},setup(e){return(t,n)=>{const r=sr("RouterLink");return D(),ge(r,{"aria-label":"Dashboard Item",class:xe(["summary-item",{"summary-danger":e.counter>0,"summary-info":e.counter===0||!e.counter}]),to:e.url},{default:de(()=>[ae(pt,{icon:e.icon,size:"3x"},null,8,["icon"]),e.counter>0?(D(),L("span",_$,me(e.counter),1)):q("",!0),A("h4",null,[Ee(t.$slots,"default",{},void 0,!0)])]),_:3},8,["class","to"])}}}),nv=Ke(b$,[["__scopeId","data-v-bb977912"]]),w$=Qn("CustomChecksStore",()=>{const e="customchecks/",t=vn(),n=oe(1),r=oe(0),a=oe([]),{count:s,inc:o,dec:i}=tv(0),l=G(()=>s.value>0),c=async()=>{if(!l.value)try{const[d,p]=await t.fetchTypedFromServiceControl(`customchecks?status=fail&page=${n.value}`);a.value=p,r.value=parseInt(d.headers.get("Total-Count")??"0")}catch(d){throw a.value=[],r.value=0,d}};Ue(n,()=>c());async function u(d){try{o(),a.value=a.value.filter(m=>m.id!==d),r.value--;const p=d.toLocaleLowerCase().startsWith(e)?d.substring(e.length):d;await t.deleteFromServiceControl(`${e}${p}`)}finally{i()}}return{refresh:c,dismissCustomCheck:u,pageNumber:n,failingCount:r,failedChecks:a}}),tf=bu("customChecks",w$,5e3),S$=ye({__name:"CustomChecksDashboardItem",setup(e){const{store:t}=tf(),{failingCount:n}=Et(t);return(r,a)=>(D(),ge(nv,{counter:f(n),url:f(pe).customChecks,icon:f(_u)},{default:de(()=>[...a[0]||(a[0]=[_e("Custom Checks",-1)])]),_:1},8,["counter","url","icon"]))}});var ls=(e=>(e.Alive="beating",e.Dead="dead",e))(ls||{}),td=(e=>(e.Ascending="asc",e.Descending="desc",e))(td||{});function T$(e,t){if(!e)return()=>0;const n=(r,a)=>{const s=e(r),o=e(a);return s>o?1:s-n(r,a)}const E$=/^v?((\d+)\.(\d+)\.(\d+))(?:-([\dA-Za-z\-_]+(?:\.[\dA-Za-z\-_]+)*))?(?:\+([\dA-Za-z\-_]+(?:\.[\dA-Za-z\-_]+)*))?$/;function ap(e,t){const n=nd(t.split("-")[0]),r=nd(e.split("-")[0]);return n==null||r==null?!1:n.major!==r.major?n.major>r.major:n.minor!==r.minor?n.minor>r.minor:n.patch!==r.patch?n.patch>r.patch:!1}function Yy(e,t){const n=nd(t),r=nd(e);return r==null?!1:n==null?!0:n.major!==r.major?n.major<=r.major:n.minor!==r.minor?n.minor<=r.minor:n.patch!==r.patch?n.patch<=r.patch:!0}function nd(e){const t=E$.exec(e)||[];function n(r){const a=parseInt(r,10);return isNaN(a)?0:a}return t.length===0?null:{semver:t[0],version:t[1],major:n(t[2]),minor:n(t[3]),patch:n(t[4]),release:t[5],build:t[6]}}const x$=Qn("EnvironmentAndVersionsStore",()=>{const e=vn(),t=Qt({monitoring_version:"",sc_version:"",minimum_supported_sc_version:"6.6.0",is_compatible_with_sc:!0,sp_version:du().version,supportsArchiveGroups:!1,endpoints_error_url:"",known_endpoints_url:"",endpoints_message_search_url:"",endpoints_messages_url:"",endpoints_url:"",errors_url:"",configuration:"",message_search_url:"",sagas_url:""}),n=Qt({newSPVersion:{newspversion:!1,newspversionlink:"",newspversionnumber:""},newSCVersion:{newscversion:!1,newscversionlink:"",newscversionnumber:""},newMVersion:{newmversion:!1,newmversionlink:"",newmversionnumber:""}}),r=c$(i=>G(()=>Yy(t.sc_version,i)));async function a(){const i=k$(),l=s(),c=o(),[u,d]=await Promise.all([i,l,c]);d&&(t.supportsArchiveGroups=!!d.archived_groups_url,t.is_compatible_with_sc=Yy(t.sc_version,t.minimum_supported_sc_version),t.endpoints_error_url=d&&d.endpoints_error_url,t.known_endpoints_url=d&&d.known_endpoints_url,t.endpoints_message_search_url=d.endpoints_message_search_url,t.endpoints_messages_url=d.endpoints_messages_url,t.endpoints_url=d.endpoints_url,t.errors_url=d.errors_url,t.configuration=d.configuration,t.message_search_url=d.message_search_url,t.sagas_url=d.sagas_url),u.latestSP&&ap(t.sp_version,u.latestSP.tag)&&(n.newSPVersion.newspversion=!0,n.newSPVersion.newspversionlink=u.latestSP.release,n.newSPVersion.newspversionnumber=u.latestSP.tag),u.latestSC&&ap(t.sc_version,u.latestSC.tag)&&(n.newSCVersion.newscversion=!0,n.newSCVersion.newscversionlink=u.latestSC.release,n.newSCVersion.newscversionnumber=u.latestSC.tag),u.latestSC&&ap(t.monitoring_version,u.latestSC.tag)&&(n.newMVersion.newmversion=!0,n.newMVersion.newmversionlink=u.latestSC.release,n.newMVersion.newmversionnumber=u.latestSC.tag)}async function s(){try{const[i,l]=await e.fetchTypedFromServiceControl("");return t.sc_version=i.headers.get("X-Particular-Version")??"",l}catch{return null}}async function o(){try{const[i]=await e.fetchTypedFromMonitoring("");i&&(t.monitoring_version=i.headers.get("X-Particular-Version")??"")}catch{t.monitoring_version=""}}return{refresh:a,environment:t,newVersions:n,serviceControlIsGreaterThan:r}});async function Wy(e){try{return await(await fetch(e)).json()}catch(t){return console.log(t),[{tag:"Unknown",release:"Unknown",published:"Unknown"}]}}async function k$(){const e="https://platformupdate.particular.net/servicepulse.txt",t="https://platformupdate.particular.net/servicecontrol.txt",n=Wy(e),r=Wy(t),[a,s]=await Promise.all([n,r]),o=a[0],i=s[0];return{latestSP:o,latestSC:i}}const wu=bu("environmentAndVersions",x$,5e3),C$="5.9.0";function A$(){const{store:e}=wu();return e.serviceControlIsGreaterThan(C$)}const D$=Qn("EndpointSettingsStore",()=>{const e={name:"",track_instances:!0},t=vn(),n=A$();async function r(){if(!n.value)return[e];const[,a]=await t.fetchTypedFromServiceControl("endpointssettings");return a}return{defaultEndpointSettingsValue:e,getEndpointSettings:r}});var M$=(e=>(e.Name="name",e.InstancesDown="instancesDown",e.InstancesTotal="instancesTotal",e.LastHeartbeat="latestHeartbeat",e.Muted="muted",e.Tracked="instancesTracked",e.TrackToggle="toggleInstancesTracked",e))(M$||{});const O$=new Map([["name",e=>e.name],["instancesDown",e=>e.alive_count-e.down_count],["instancesTotal",e=>e.alive_count+e.down_count],["latestHeartbeat",e=>Ae.utc(e.heartbeat_information?.last_report_at??"1975-01-01T00:00:00")],["muted",e=>{switch(e.muted_count){case 0:return 0;case e.alive_count+e.down_count:return 2;default:return 1}}],["instancesTracked",e=>e.track_instances],["toggleInstancesTracked",e=>e.track_instances]]),P$=Qn("HeartbeatsStore",()=>{const e=vn(),t=D$(),n=oe({property:"name",isAscending:!0}),r=oe(t.defaultEndpointSettingsValue.track_instances),a=oe(""),s=oe(20),o=oe([]),i=oe([]),l=G(()=>v(o.value,i.value).sort(T$(O$.get(n.value.property),n.value.isAscending?td.Ascending:td.Descending))),c=G(()=>l.value.filter(k=>!a.value||k.name.toLowerCase().includes(a.value.toLowerCase()))),u=G(()=>l.value.filter(function(k){return k.monitor_heartbeat&&k.heartbeat_information?.reported_status===ls.Alive&&(k.track_instances&&k.down_count===0||!k.track_instances&&k.alive_count>0)})),d=G(()=>u.value.filter(k=>!a.value||k.name.toLowerCase().includes(a.value.toLowerCase()))),p=G(()=>l.value.filter(function(k){return!k.monitor_heartbeat||k.heartbeat_information?.reported_status===ls.Dead||k.track_instances&&k.down_count>0||!k.track_instances&&k.alive_count===0})),m=G(()=>p.value.filter(k=>!a.value||k.name.toLowerCase().includes(a.value.toLowerCase()))),_=G(()=>{let k=0;for(const $ of l.value){const S=o.value.filter(x=>x.name===$.name&&x.monitor_heartbeat);$.track_instances?S.some(x=>x.heartbeat_information?.reported_status!==ls.Alive)&&k++:S.some(x=>x.heartbeat_information?.reported_status===ls.Alive)||k++}return k});Ue(a,k=>{g(k)});const y=async()=>{try{const[[,k],$]=await Promise.all([e.fetchTypedFromServiceControl("endpoints"),t.getEndpointSettings()]);o.value=k,i.value=$,r.value=$.find(S=>S.name==="").track_instances}catch(k){throw o.value=i.value=[],k}};async function b(k){await Promise.all(k.map($=>e.patchToServiceControl(`endpointssettings/${$.name}`,{track_instances:!$.track_instances}))),await y()}function h(k){const $=k.alive_count+k.down_count;return k.track_instances?`${k.alive_count}/${$}`:`${k.alive_count}`}function g(k){a.value=k}function w(k){s.value=k}function v(k,$){return[...new Set(k.map(x=>x.name))].map(x=>{const P=k.filter(X=>X.name===x),K=P.filter(X=>X.heartbeat_information&&X.heartbeat_information.reported_status===ls.Alive).length,W=P.length-K;return{id:x,name:x,alive_count:K,down_count:W,muted_count:P.filter(X=>!X.monitor_heartbeat).length,track_instances:$.find(X=>X.name===x)?.track_instances??r.value,heartbeat_information:{reported_status:K>0?ls.Alive:ls.Dead,last_report_at:P.reduce((X,ce)=>ce.heartbeat_information?X?Ae.utc(ce.heartbeat_information.last_report_at)>Ae.utc(X.heartbeat_information.last_report_at)?ce:X:ce:X,null)?.heartbeat_information?.last_report_at},monitor_heartbeat:P.every(X=>X.monitor_heartbeat)}})}return{refresh:y,defaultTrackingInstancesValue:r,updateEndpointSettings:b,sortedEndpoints:l,filteredEndpoints:c,endpointInstances:o,healthyEndpoints:u,filteredHealthyEndpoints:d,unhealthyEndpoints:p,filteredUnhealthyEndpoints:m,failedHeartbeatsCount:_,instanceDisplayText:h,sortByInstances:n,endpointFilterString:a,itemsPerPage:s,setItemsPerPage:w}}),rv=bu("heartbeats",P$,5e3),$$=ye({__name:"HeartbeatsDashboardItem",setup(e){const{store:t}=rv();return(n,r)=>(D(),ge(nv,{counter:f(t).failedHeartbeatsCount,url:f(pe).heartbeats.root,icon:f(g2)},{default:de(()=>[...r[0]||(r[0]=[_e("Heartbeats",-1)])]),_:1},8,["counter","url","icon"]))}}),I$=ye({__name:"FailedMessagesDashboardItem",setup(e){const{store:t}=ga(),{failedMessageCount:n}=Et(t);return(r,a)=>(D(),ge(nv,{counter:f(n),url:f(pe).failedMessage.root,icon:f(Zd)},{default:de(()=>[...a[0]||(a[0]=[_e("Failed Messages",-1)])]),_:1},8,["counter","url","icon"]))}}),R$={class:"container"},N$={class:"row"},L$={class:"col-12"},F$={class:"row box system-status"},V$={class:"col-12"},Y$={class:"row"},W$={class:"system-status-item"},H$={class:"system-status-item"},B$={class:"system-status-item"},j$=ye({__name:"DashboardView",setup(e){return(t,n)=>(D(),L("div",R$,[ae(zi,null,{default:de(()=>[ae(Ui,null,{default:de(()=>[A("div",N$,[A("div",L$,[n[0]||(n[0]=A("h6",null,"System status",-1)),A("div",F$,[A("div",V$,[A("div",Y$,[A("div",W$,[ae($$)]),A("div",H$,[ae(I$)]),A("div",B$,[ae(S$)])])])])]),ae(Y5)])]),_:1})]),_:1})]))}}),U$=Ke(j$,[["__scopeId","data-v-852b13d5"]]);function Vt(e){const t=cu(),n=jc({to:e}).route.value;return t.matched.some(r=>r.name===n.name)}const z$={class:"container"},G$={class:"row"},q$={class:"col-sm-12"},K$={class:"tabs"},Q$={key:0,title:"There's varying numbers of failed message groups depending on group type",class:"badge badge-important"},X$={key:0,class:"badge badge-important"},Z$={key:0,title:"There's varying numbers of deleted message groups depending on group type",class:"badge badge-important"},J$={key:0,class:"badge badge-important"},eI={key:0,class:"badge badge-important"},tI=ye({__name:"FailedMessagesView",setup(e){const t=du().showPendingRetry,{store:n}=ga();n.requiresFullFailureDetails();const r=n.connectionState,{failedMessageCount:a,archivedMessageCount:s,pendingRetriesMessageCount:o}=Et(n);return(i,l)=>(D(),ge(Ui,null,{default:de(()=>[A("div",z$,[l[5]||(l[5]=A("div",{class:"row"},[A("div",{class:"col-12"},[A("h1",null,"Failed Messages")])],-1)),A("div",G$,[A("div",q$,[A("div",K$,[A("h5",{class:xe({active:f(Vt)(f(pe).failedMessage.failedMessagesGroups.link)||f(Vt)(f(pe).failedMessage.group.link("id")),disabled:!f(r).connected&&!f(r).connectedRecently})},[ae(f(Lt),{to:f(pe).failedMessage.failedMessagesGroups.link},{default:de(()=>[l[0]||(l[0]=_e(" Failed Message Groups ",-1)),Ot(A("span",null," (0) ",512),[[Dl,f(a)===0]])]),_:1},8,["to"]),f(a)!==0?(D(),L("span",Q$,"!")):q("",!0)],2),A("h5",{class:xe({active:f(Vt)(f(pe).failedMessage.failedMessages.link),disabled:!f(r).connected&&!f(r).connectedRecently})},[ae(f(Lt),{to:f(pe).failedMessage.failedMessages.link},{default:de(()=>[...l[1]||(l[1]=[_e("All Failed Messages ",-1)])]),_:1},8,["to"]),f(a)!==0?(D(),L("span",X$,me(f(a)),1)):q("",!0)],2),A("h5",{class:xe({active:f(Vt)(f(pe).failedMessage.deletedMessagesGroup.link)||f(Vt)(f(pe).failedMessage.deletedGroup.link("id")),disabled:!f(r).connected&&!f(r).connectedRecently})},[ae(f(Lt),{to:f(pe).failedMessage.deletedMessagesGroup.link},{default:de(()=>[...l[2]||(l[2]=[_e("Deleted Message Groups ",-1)])]),_:1},8,["to"]),f(s)!==0?(D(),L("span",Z$,"!")):q("",!0)],2),A("h5",{class:xe({active:f(Vt)(f(pe).failedMessage.deletedMessages.link),disabled:!f(r).connected&&!f(r).connectedRecently})},[ae(f(Lt),{to:f(pe).failedMessage.deletedMessages.link},{default:de(()=>[...l[3]||(l[3]=[_e("All Deleted Messages ",-1)])]),_:1},8,["to"]),f(s)!==0?(D(),L("span",J$,me(f(s)),1)):q("",!0)],2),f(t)?(D(),L("h5",{key:0,class:xe({active:f(Vt)(f(pe).failedMessage.pendingRetries.link),disabled:!f(r).connected&&!f(r).connectedRecently})},[ae(f(Lt),{to:f(pe).failedMessage.pendingRetries.link},{default:de(()=>[...l[4]||(l[4]=[_e("Pending Retries ",-1)])]),_:1},8,["to"]),f(o)!==0?(D(),L("span",eI,me(f(o)),1)):q("",!0)],2)):q("",!0)])])]),ae(f(Id))])]),_:1}))}});var Hy={expireTimes:"1d",path:"; path=/",domain:"",secure:!1,sameSite:"; SameSite=Lax"},nI=(function(){function e(){this.current_default_config=Hy}return e.prototype.config=function(t){for(var n in this.current_default_config)this.current_default_config[n]=t[n]?t[n]:Hy[n]},e.prototype.get=function(t){var n=decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null;if(n&&n.substring(0,1)==="{"&&n.substring(n.length-1,n.length)==="}")try{n=JSON.parse(n)}catch{return n}return n},e.prototype.set=function(t,n,r,a,s,o,i){if(t){if(/^(?:expires|max-age|path|domain|secure|SameSite)$/i.test(t))throw new Error('Cookie name illegality. Cannot be set to ["expires","max-age","path","domain","secure","SameSite"] current key name: '+t)}else throw new Error("Cookie name is not found in the first argument.");n&&n.constructor===Object&&(n=JSON.stringify(n));var l="";if(r==null&&(r=this.current_default_config.expireTimes?this.current_default_config.expireTimes:""),r&&r!=0)switch(r.constructor){case Number:r===1/0||r===-1?l="; expires=Fri, 31 Dec 9999 23:59:59 GMT":l="; max-age="+r;break;case String:if(/^(?:\d+(y|m|d|h|min|s))$/i.test(r)){var c=r.replace(/^(\d+)(?:y|m|d|h|min|s)$/i,"$1");switch(r.replace(/^(?:\d+)(y|m|d|h|min|s)$/i,"$1").toLowerCase()){case"m":l="; max-age="+ +c*2592e3;break;case"d":l="; max-age="+ +c*86400;break;case"h":l="; max-age="+ +c*3600;break;case"min":l="; max-age="+ +c*60;break;case"s":l="; max-age="+c;break;case"y":l="; max-age="+ +c*31104e3;break}}else l="; expires="+r;break;case Date:l="; expires="+r.toUTCString();break}return document.cookie=encodeURIComponent(t)+"="+encodeURIComponent(n)+l+(s?"; domain="+s:this.current_default_config.domain?this.current_default_config.domain:"")+(a?"; path="+a:this.current_default_config.path?this.current_default_config.path:"; path=/")+(o==null?this.current_default_config.secure?"; Secure":"":o?"; Secure":"")+(i==null?this.current_default_config.sameSite?"; SameSute="+this.current_default_config.sameSite:"":i?"; SameSite="+i:""),this},e.prototype.remove=function(t,n,r){return!t||!this.isKey(t)?!1:(document.cookie=encodeURIComponent(t)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT"+(r?"; domain="+r:this.current_default_config.domain?this.current_default_config.domain:"")+(n?"; path="+n:this.current_default_config.path?this.current_default_config.path:"; path=/")+"; SameSite=Lax",!0)},e.prototype.isKey=function(t){return new RegExp("(?:^|;\\s*)"+encodeURIComponent(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=").test(document.cookie)},e.prototype.keys=function(){if(!document.cookie)return[];for(var t=document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g,"").split(/\s*(?:\=[^;]*)?;\s*/),n=0;n{const{cookies:e}=k2(),t=cu(),n=Os(),r=[{pVal:1,text:"1m",refreshIntervalVal:1*1e3,refreshIntervalText:"Show data from the last minute. Refreshes every 1 second"},{pVal:5,text:"5m",refreshIntervalVal:5*1e3,refreshIntervalText:"Show data from the last 5 minutes. Refreshes every 5 seconds"},{pVal:10,text:"10m",refreshIntervalVal:10*1e3,refreshIntervalText:"Show data from the last 10 minutes. Refreshes every 10 seconds"},{pVal:15,text:"15m",refreshIntervalVal:15*1e3,refreshIntervalText:"Show data from the last 15 minutes. Refreshes every 15 seconds"},{pVal:30,text:"30m",refreshIntervalVal:30*1e3,refreshIntervalText:"Show data from the last 30 minutes. Refreshes every 30 seconds"},{pVal:60,text:"1h",refreshIntervalVal:60*1e3,refreshIntervalText:"Show data from the last hour. Refreshes every 1 minute"}];function a(l,c){const u=c??(l?.query?.historyPeriod?.toString()||e.get("history_period"));return s.value.find(d=>d.pVal===parseInt(u))??r[0]}const s=oe(r),o=oe(a(t));async function i(l){o.value=a(t,l),e.set("history_period",o.value.pVal.toString()),await n.replace({query:{...t.query,historyPeriod:o.value.pVal}})}return{allPeriods:s,historyPeriod:o,setHistoryPeriod:i}}),Su=Qn("MonitoringStore",()=>{const e=nf(),t=cu(),n=Os(),{store:r}=ga(),a=vn(),s=oe({groupedEndpoints:[],groupSegments:0,selectedGrouping:0}),o=oe({property:"name",isAscending:!0}),i=oe([]),l=oe(0),c=oe(""),u=G(()=>i.value.length),d=G(()=>u.value===0),p=G(()=>s.value.selectedGrouping!==0),m=G(()=>c.value?i.value.filter(S=>S.name.toLowerCase().includes(c.value.toLowerCase())):i.value);Ue(o,async()=>await y(),{deep:!0}),Ue(c,async S=>{await _(S)});async function _(S=null){if(c.value=S??t.query.filter?.toString()??"",c.value===""){const{filter:x,...P}=t.query;await n.replace({query:P})}else await n.replace({query:{...t.query,filter:c.value}});w()}async function y(){r.monitoringConnectionState.unableToConnect?i.value=[]:i.value=await b(),d.value||(g(),p.value?w():k())}async function b(){let S=[];if(a.isMonitoringEnabled)try{const[,x]=await a.fetchTypedFromMonitoring(`monitored-endpoints?history=${e.historyPeriod.pVal}`);S=x??[];const[,P]=await a.fetchTypedFromServiceControl("recoverability/groups/Endpoint Name");P.length>0&&(P.sort((R,K)=>R.title>K.title?1:R.titleR.operation_status!=="ArchiveCompleted").forEach(R=>{const K=S.find(W=>W.name===R.title);K&&(K.serviceControlId=R.id,K.errorCount=R.count)}))}catch(x){console.error(x)}return S}function h(S){s.value.selectedGrouping=S,S===0?k():w()}function g(){s.value.groupSegments=i.value.reduce((S,x)=>Math.max(S,x.name.split(".").length-1),0)}function w(){const S=new Map;for(const x of m.value){const P=v(x,s.value.selectedGrouping),R=S.get(P.groupName)??{group:P.groupName,endpoints:[]};R.endpoints.push(P),S.set(P.groupName,R)}s.value.groupedEndpoints=[...S.values()],$()}function v(S,x){if(x===0)return{groupName:"Ungrouped",shortName:S.name,endpoint:S};const P=S.name.split("."),R=P.slice(0,x),K=P.slice(x);return K.length===0?v(S,x-1):{groupName:R.join("."),shortName:K.join("."),endpoint:S}}function k(){const S=o.value.property==="name"?(x,P)=>o.value.isAscending?x.name.localeCompare(P.name):P.name.localeCompare(x.name):(x,P)=>{const R=x.metrics[o.value.property].average,K=P.metrics[o.value.property].average;return o.value.isAscending?R-K:K-R};i.value.sort(S)}function $(){let S;const x=(P,R)=>o.value.isAscending?P.shortName.localeCompare(R.shortName):R.shortName.localeCompare(P.shortName);o.value.property==="name"&&(S=(P,R)=>{const K=P.group,W=R.group,X=P.endpoints,ce=R.endpoints;return X.sort(x),ce.sort(x),o.value.isAscending?K.localeCompare(W):W.localeCompare(K)}),s.value.groupedEndpoints.length>1?s.value.groupedEndpoints.sort(S):s.value.groupedEndpoints.length===1&&s.value.groupedEndpoints[0].endpoints.sort(x)}return{grouping:s,endpointList:i,disconnectedEndpointCount:l,filterString:c,sortBy:o,endpointListCount:u,endpointListIsEmpty:d,endpointListIsGrouped:p,getEndpointList:m,updateSelectedGrouping:h,updateEndpointList:y,updateFilterString:_}}),rI=["aria-label"],aI={class:"box-header"},sI=["aria-label"],oI={key:0,class:"table-header-unit"},iI={key:1},lI=["aria-label"],uI={key:1,class:"column-header"},cI={key:0,class:"table-header-unit"},dI=ye({__name:"ColumnHeader",props:Ya({name:{},label:{},unit:{},sortable:{type:Boolean,default:!1},sortBy:{},sortState:{},defaultAscending:{type:Boolean,default:!1},interactiveHelp:{type:Boolean,default:!1}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=e,n=G(()=>t.sortBy||t.name),r=Ms(e,"modelValue"),a=G(()=>r?.value?.property===n.value),s=G(()=>r?.value?.isAscending?"sort-up":"sort-down");function o(){r.value={property:n.value,isAscending:a.value?!r?.value?.isAscending:t.defaultAscending}}return(i,l)=>{const c=sr("tippy");return D(),L("div",{role:"columnheader","aria-label":t.name},[A("div",aI,[t.sortable?(D(),L("button",{key:0,onClick:o,class:"column-header-button","aria-label":t.name},[A("span",null,[_e(me(t.label)+" ",1),t.unit?(D(),L("span",oI,me(t.unit),1)):q("",!0),a.value?(D(),L("span",iI,[A("i",{role:"img",class:xe(s.value),"aria-label":s.value},null,10,lI)])):q("",!0),i.$slots.help?(D(),ge(c,{key:2,"max-width":"400px",interactive:t.interactiveHelp},{content:de(()=>[Ee(i.$slots,"help",{},void 0,!0)]),default:de(()=>[ae(pt,{icon:f(Ny),class:"info"},null,8,["icon"])]),_:3},8,["interactive"])):q("",!0)])],8,sI)):(D(),L("div",uI,[A("span",null,[_e(me(t.label)+" ",1),t.unit?(D(),L("span",cI,me(t.unit),1)):q("",!0)]),i.$slots.help?(D(),ge(c,{key:0,"max-width":"400px",interactive:t.interactiveHelp},{content:de(()=>[Ee(i.$slots,"help",{},void 0,!0)]),default:de(()=>[ae(pt,{icon:f(Ny),class:"info"},null,8,["icon"])]),_:3},8,["interactive"])):q("",!0)]))])],8,rI)}}}),Fo=Ke(dI,[["__scopeId","data-v-f51b5ae7"]]);function By(e){if(e!=null){const t=e.points.length>0?e.points[e.points.length-1]:0;return ed(t)}return{value:"0",unit:""}}function fI(e,t){e=e??0;let n=0;return(e<10||e>1e6)&&(n=2),T2(e,t||n)}function op(e,t){e=e??{points:[],average:0};const n=e.points.length>0?e.points[e.points.length-1]:0;return fI(n,t)}const hX=Object.freeze({queueLength:10,throughputRetries:10,processingCritical:10}),il=Object.freeze({queueLength:10,throughput:10,retries:10,processingTime:10,criticalTime:10});function pI(e,t,n=()=>10){const r=oe(""),a=oe(""),s=oe(10),o=oe(0),i=oe(""),l=()=>{const c=Yn(e)??{points:[],average:0},u=(()=>{let y=c.points;return y.length===0&&(y=new Array(Yn(n)).fill(0)),y})(),d=100/(u.length-1),p=u.reduce((y,b,h)=>[...y,[h*d,b]],[]);r.value=new ip().startAt(p[0]).followCoordinates(p.slice(1)).toString(),a.value=new ip().startAt([0,0]).followCoordinates(p).lineTo([100,0]).close().toString(),o.value=c.average;const m=Yn(t)??10,_=isNaN(m)?10:Number(m);s.value=Math.max(...u,o.value*1.5,_),i.value=new ip().startAt([0,o.value]).lineTo([100,o.value]).toString()};return R_(()=>l()),{valuesPath:r,valuesArea:a,maxYaxis:s,average:o,averageLine:i}}class ip{#e=[];#t=!1;startAt([t,n]){if(this.#e.length>0)throw new Error("startAt must be the first call on a path");return this.moveTo([t,n])}moveTo([t,n]){if(this.#t)throw new Error("Path is already closed");return this.#e.push(`M${t} ${n}`),this}lineTo([t,n]){if(this.#t)throw new Error("Path is already closed");return this.#e.push(`L${t} ${n}`),this}followCoordinates(t){for(const n of t)this.lineTo(n);return this}close(){if(this.#t)throw new Error("Path is already closed");if(this.#e.length===0)throw new Error("Cannot close an empty path");return this.#e.push("Z"),this.#t=!0,this}toString(){return this.#e.join(" ")}}const hI={class:"padding"},mI=["viewBox"],vI=["d"],gI=["d"],yI=["d"],_I={role:"text","aria-label":"average-value",class:"value"},bI=ye({__name:"SmallGraph",props:{plotdata:{},minimumyaxis:{},isdurationgraph:{type:Boolean},metricsuffix:{},type:{}},setup(e){const t=e,n=oe(!1),{valuesPath:r,valuesArea:a,maxYaxis:s,average:o,averageLine:i}=pI(()=>t.plotdata,()=>t.minimumyaxis),l=G(()=>t.isdurationgraph?ed(o.value).value:T2(o.value,2)),c=G(()=>t.isdurationgraph?ed(o.value).unit.toUpperCase():t.metricsuffix??""),u=G(()=>`calc(${o.value/s.value*38}px - 1em)`);return(d,p)=>(D(),L("div",{class:xe(["graph pull-left ng-isolate-scope",[n.value?"hover":""]]),onMouseover:p[0]||(p[0]=m=>n.value=!0),onMouseout:p[1]||(p[1]=m=>n.value=!1)},[A("div",hI,[(D(),L("svg",{"aria-label":"graph",viewBox:`0 0 100 ${f(s)}`,preserveAspectRatio:"none"},[A("g",{class:xe(e.type)},[A("path",{d:f(a),class:"graph-data-fill"},null,8,vI),A("path",{d:f(r),"vector-effect":"non-scaling-stroke",class:"graph-data-line"},null,8,gI),A("path",{d:f(i),"vector-effect":"non-scaling-stroke",class:"graph-avg-line"},null,8,yI)],2)],8,mI))]),A("div",{class:xe(["avg-tooltip",e.type]),style:Gt({bottom:u.value})},[p[2]||(p[2]=A("div",null,"AVG",-1)),A("div",_I,[_e(me(l.value)+" ",1),A("span",null,me(c.value),1)])],6)],34))}}),ll=Ke(bI,[["__scopeId","data-v-3754e2bd"]]);var Wn="top",cr="bottom",dr="right",Hn="left",av="auto",Tu=[Wn,cr,dr,Hn],yi="start",eu="end",wI="clippingParents",C2="viewport",ul="popper",SI="reference",jy=Tu.reduce(function(e,t){return e.concat([t+"-"+yi,t+"-"+eu])},[]),A2=[].concat(Tu,[av]).reduce(function(e,t){return e.concat([t,t+"-"+yi,t+"-"+eu])},[]),TI="beforeRead",EI="read",xI="afterRead",kI="beforeMain",CI="main",AI="afterMain",DI="beforeWrite",MI="write",OI="afterWrite",PI=[TI,EI,xI,kI,CI,AI,DI,MI,OI];function ca(e){return e?(e.nodeName||"").toLowerCase():null}function Wr(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function _i(e){var t=Wr(e).Element;return e instanceof t||e instanceof Element}function or(e){var t=Wr(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function D2(e){if(typeof ShadowRoot>"u")return!1;var t=Wr(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function $I(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},a=t.attributes[n]||{},s=t.elements[n];!or(s)||!ca(s)||(Object.assign(s.style,r),Object.keys(a).forEach(function(o){var i=a[o];i===!1?s.removeAttribute(o):s.setAttribute(o,i===!0?"":i)}))})}function II(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var a=t.elements[r],s=t.attributes[r]||{},o=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),i=o.reduce(function(l,c){return l[c]="",l},{});!or(a)||!ca(a)||(Object.assign(a.style,i),Object.keys(s).forEach(function(l){a.removeAttribute(l)}))})}}var M2={name:"applyStyles",enabled:!0,phase:"write",fn:$I,effect:II,requires:["computeStyles"]};function aa(e){return e.split("-")[0]}var po=Math.max,rd=Math.min,bi=Math.round;function wi(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),r=1,a=1;if(or(e)&&t){var s=e.offsetHeight,o=e.offsetWidth;o>0&&(r=bi(n.width)/o||1),s>0&&(a=bi(n.height)/s||1)}return{width:n.width/r,height:n.height/a,top:n.top/a,right:n.right/r,bottom:n.bottom/a,left:n.left/r,x:n.left/r,y:n.top/a}}function sv(e){var t=wi(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function O2(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&D2(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function da(e){return Wr(e).getComputedStyle(e)}function RI(e){return["table","td","th"].indexOf(ca(e))>=0}function Ps(e){return((_i(e)?e.ownerDocument:e.document)||window.document).documentElement}function rf(e){return ca(e)==="html"?e:e.assignedSlot||e.parentNode||(D2(e)?e.host:null)||Ps(e)}function Uy(e){return!or(e)||da(e).position==="fixed"?null:e.offsetParent}function NI(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&or(e)){var r=da(e);if(r.position==="fixed")return null}for(var a=rf(e);or(a)&&["html","body"].indexOf(ca(a))<0;){var s=da(a);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return a;a=a.parentNode}return null}function Eu(e){for(var t=Wr(e),n=Uy(e);n&&RI(n)&&da(n).position==="static";)n=Uy(n);return n&&(ca(n)==="html"||ca(n)==="body"&&da(n).position==="static")?t:n||NI(e)||t}function ov(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Rl(e,t,n){return po(e,rd(t,n))}function LI(e,t,n){var r=Rl(e,t,n);return r>n?n:r}function P2(){return{top:0,right:0,bottom:0,left:0}}function $2(e){return Object.assign({},P2(),e)}function I2(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var FI=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,$2(typeof t!="number"?t:I2(t,Tu))};function VI(e){var t,n=e.state,r=e.name,a=e.options,s=n.elements.arrow,o=n.modifiersData.popperOffsets,i=aa(n.placement),l=ov(i),c=[Hn,dr].indexOf(i)>=0,u=c?"height":"width";if(!(!s||!o)){var d=FI(a.padding,n),p=sv(s),m=l==="y"?Wn:Hn,_=l==="y"?cr:dr,y=n.rects.reference[u]+n.rects.reference[l]-o[l]-n.rects.popper[u],b=o[l]-n.rects.reference[l],h=Eu(s),g=h?l==="y"?h.clientHeight||0:h.clientWidth||0:0,w=y/2-b/2,v=d[m],k=g-p[u]-d[_],$=g/2-p[u]/2+w,S=Rl(v,$,k),x=l;n.modifiersData[r]=(t={},t[x]=S,t.centerOffset=S-$,t)}}function YI(e){var t=e.state,n=e.options,r=n.element,a=r===void 0?"[data-popper-arrow]":r;a!=null&&(typeof a=="string"&&(a=t.elements.popper.querySelector(a),!a)||O2(t.elements.popper,a)&&(t.elements.arrow=a))}var WI={name:"arrow",enabled:!0,phase:"main",fn:VI,effect:YI,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Si(e){return e.split("-")[1]}var HI={top:"auto",right:"auto",bottom:"auto",left:"auto"};function BI(e){var t=e.x,n=e.y,r=window,a=r.devicePixelRatio||1;return{x:bi(t*a)/a||0,y:bi(n*a)/a||0}}function zy(e){var t,n=e.popper,r=e.popperRect,a=e.placement,s=e.variation,o=e.offsets,i=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,p=u===!0?BI(o):typeof u=="function"?u(o):o,m=p.x,_=m===void 0?0:m,y=p.y,b=y===void 0?0:y,h=o.hasOwnProperty("x"),g=o.hasOwnProperty("y"),w=Hn,v=Wn,k=window;if(c){var $=Eu(n),S="clientHeight",x="clientWidth";if($===Wr(n)&&($=Ps(n),da($).position!=="static"&&i==="absolute"&&(S="scrollHeight",x="scrollWidth")),$=$,a===Wn||(a===Hn||a===dr)&&s===eu){v=cr;var P=d&&k.visualViewport?k.visualViewport.height:$[S];b-=P-r.height,b*=l?1:-1}if(a===Hn||(a===Wn||a===cr)&&s===eu){w=dr;var R=d&&k.visualViewport?k.visualViewport.width:$[x];_-=R-r.width,_*=l?1:-1}}var K=Object.assign({position:i},c&&HI);if(l){var W;return Object.assign({},K,(W={},W[v]=g?"0":"",W[w]=h?"0":"",W.transform=(k.devicePixelRatio||1)<=1?"translate("+_+"px, "+b+"px)":"translate3d("+_+"px, "+b+"px, 0)",W))}return Object.assign({},K,(t={},t[v]=g?b+"px":"",t[w]=h?_+"px":"",t.transform="",t))}function jI(e){var t=e.state,n=e.options,r=n.gpuAcceleration,a=r===void 0?!0:r,s=n.adaptive,o=s===void 0?!0:s,i=n.roundOffsets,l=i===void 0?!0:i,c={placement:aa(t.placement),variation:Si(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,zy(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,zy(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var UI={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:jI,data:{}},Qu={passive:!0};function zI(e){var t=e.state,n=e.instance,r=e.options,a=r.scroll,s=a===void 0?!0:a,o=r.resize,i=o===void 0?!0:o,l=Wr(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&c.forEach(function(u){u.addEventListener("scroll",n.update,Qu)}),i&&l.addEventListener("resize",n.update,Qu),function(){s&&c.forEach(function(u){u.removeEventListener("scroll",n.update,Qu)}),i&&l.removeEventListener("resize",n.update,Qu)}}var GI={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:zI,data:{}},qI={left:"right",right:"left",bottom:"top",top:"bottom"};function Sc(e){return e.replace(/left|right|bottom|top/g,function(t){return qI[t]})}var KI={start:"end",end:"start"};function Gy(e){return e.replace(/start|end/g,function(t){return KI[t]})}function iv(e){var t=Wr(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function lv(e){return wi(Ps(e)).left+iv(e).scrollLeft}function QI(e){var t=Wr(e),n=Ps(e),r=t.visualViewport,a=n.clientWidth,s=n.clientHeight,o=0,i=0;return r&&(a=r.width,s=r.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(o=r.offsetLeft,i=r.offsetTop)),{width:a,height:s,x:o+lv(e),y:i}}function XI(e){var t,n=Ps(e),r=iv(e),a=(t=e.ownerDocument)==null?void 0:t.body,s=po(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),o=po(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-r.scrollLeft+lv(e),l=-r.scrollTop;return da(a||n).direction==="rtl"&&(i+=po(n.clientWidth,a?a.clientWidth:0)-s),{width:s,height:o,x:i,y:l}}function uv(e){var t=da(e),n=t.overflow,r=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+r)}function R2(e){return["html","body","#document"].indexOf(ca(e))>=0?e.ownerDocument.body:or(e)&&uv(e)?e:R2(rf(e))}function Nl(e,t){var n;t===void 0&&(t=[]);var r=R2(e),a=r===((n=e.ownerDocument)==null?void 0:n.body),s=Wr(r),o=a?[s].concat(s.visualViewport||[],uv(r)?r:[]):r,i=t.concat(o);return a?i:i.concat(Nl(rf(o)))}function Ah(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function ZI(e){var t=wi(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function qy(e,t){return t===C2?Ah(QI(e)):_i(t)?ZI(t):Ah(XI(Ps(e)))}function JI(e){var t=Nl(rf(e)),n=["absolute","fixed"].indexOf(da(e).position)>=0,r=n&&or(e)?Eu(e):e;return _i(r)?t.filter(function(a){return _i(a)&&O2(a,r)&&ca(a)!=="body"&&(n?da(a).position!=="static":!0)}):[]}function e8(e,t,n){var r=t==="clippingParents"?JI(e):[].concat(t),a=[].concat(r,[n]),s=a[0],o=a.reduce(function(i,l){var c=qy(e,l);return i.top=po(c.top,i.top),i.right=rd(c.right,i.right),i.bottom=rd(c.bottom,i.bottom),i.left=po(c.left,i.left),i},qy(e,s));return o.width=o.right-o.left,o.height=o.bottom-o.top,o.x=o.left,o.y=o.top,o}function N2(e){var t=e.reference,n=e.element,r=e.placement,a=r?aa(r):null,s=r?Si(r):null,o=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,l;switch(a){case Wn:l={x:o,y:t.y-n.height};break;case cr:l={x:o,y:t.y+t.height};break;case dr:l={x:t.x+t.width,y:i};break;case Hn:l={x:t.x-n.width,y:i};break;default:l={x:t.x,y:t.y}}var c=a?ov(a):null;if(c!=null){var u=c==="y"?"height":"width";switch(s){case yi:l[c]=l[c]-(t[u]/2-n[u]/2);break;case eu:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function tu(e,t){t===void 0&&(t={});var n=t,r=n.placement,a=r===void 0?e.placement:r,s=n.boundary,o=s===void 0?wI:s,i=n.rootBoundary,l=i===void 0?C2:i,c=n.elementContext,u=c===void 0?ul:c,d=n.altBoundary,p=d===void 0?!1:d,m=n.padding,_=m===void 0?0:m,y=$2(typeof _!="number"?_:I2(_,Tu)),b=u===ul?SI:ul,h=e.rects.popper,g=e.elements[p?b:u],w=e8(_i(g)?g:g.contextElement||Ps(e.elements.popper),o,l),v=wi(e.elements.reference),k=N2({reference:v,element:h,placement:a}),$=Ah(Object.assign({},h,k)),S=u===ul?$:v,x={top:w.top-S.top+y.top,bottom:S.bottom-w.bottom+y.bottom,left:w.left-S.left+y.left,right:S.right-w.right+y.right},P=e.modifiersData.offset;if(u===ul&&P){var R=P[a];Object.keys(x).forEach(function(K){var W=[dr,cr].indexOf(K)>=0?1:-1,X=[Wn,cr].indexOf(K)>=0?"y":"x";x[K]+=R[X]*W})}return x}function t8(e,t){t===void 0&&(t={});var n=t,r=n.placement,a=n.boundary,s=n.rootBoundary,o=n.padding,i=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?A2:l,u=Si(r),d=u?i?jy:jy.filter(function(_){return Si(_)===u}):Tu,p=d.filter(function(_){return c.indexOf(_)>=0});p.length===0&&(p=d);var m=p.reduce(function(_,y){return _[y]=tu(e,{placement:y,boundary:a,rootBoundary:s,padding:o})[aa(y)],_},{});return Object.keys(m).sort(function(_,y){return m[_]-m[y]})}function n8(e){if(aa(e)===av)return[];var t=Sc(e);return[Gy(e),t,Gy(t)]}function r8(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var a=n.mainAxis,s=a===void 0?!0:a,o=n.altAxis,i=o===void 0?!0:o,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,p=n.altBoundary,m=n.flipVariations,_=m===void 0?!0:m,y=n.allowedAutoPlacements,b=t.options.placement,h=aa(b),g=h===b,w=l||(g||!_?[Sc(b)]:n8(b)),v=[b].concat(w).reduce(function(Pe,Re){return Pe.concat(aa(Re)===av?t8(t,{placement:Re,boundary:u,rootBoundary:d,padding:c,flipVariations:_,allowedAutoPlacements:y}):Re)},[]),k=t.rects.reference,$=t.rects.popper,S=new Map,x=!0,P=v[0],R=0;R=0,ie=ce?"width":"height",fe=tu(t,{placement:K,boundary:u,rootBoundary:d,altBoundary:p,padding:c}),j=ce?X?dr:Hn:X?cr:Wn;k[ie]>$[ie]&&(j=Sc(j));var ne=Sc(j),le=[];if(s&&le.push(fe[W]<=0),i&&le.push(fe[j]<=0,fe[ne]<=0),le.every(function(Pe){return Pe})){P=K,x=!1;break}S.set(K,le)}if(x)for(var re=_?3:1,he=function(Re){var Ie=v.find(function(B){var se=S.get(B);if(se)return se.slice(0,Re).every(function(V){return V})});if(Ie)return P=Ie,"break"},ke=re;ke>0;ke--){var Oe=he(ke);if(Oe==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}var a8={name:"flip",enabled:!0,phase:"main",fn:r8,requiresIfExists:["offset"],data:{_skip:!1}};function Ky(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function Qy(e){return[Wn,dr,cr,Hn].some(function(t){return e[t]>=0})}function s8(e){var t=e.state,n=e.name,r=t.rects.reference,a=t.rects.popper,s=t.modifiersData.preventOverflow,o=tu(t,{elementContext:"reference"}),i=tu(t,{altBoundary:!0}),l=Ky(o,r),c=Ky(i,a,s),u=Qy(l),d=Qy(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}var o8={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:s8};function i8(e,t,n){var r=aa(e),a=[Hn,Wn].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,o=s[0],i=s[1];return o=o||0,i=(i||0)*a,[Hn,dr].indexOf(r)>=0?{x:i,y:o}:{x:o,y:i}}function l8(e){var t=e.state,n=e.options,r=e.name,a=n.offset,s=a===void 0?[0,0]:a,o=A2.reduce(function(u,d){return u[d]=i8(d,t.rects,s),u},{}),i=o[t.placement],l=i.x,c=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=o}var u8={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:l8};function c8(e){var t=e.state,n=e.name;t.modifiersData[n]=N2({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var d8={name:"popperOffsets",enabled:!0,phase:"read",fn:c8,data:{}};function f8(e){return e==="x"?"y":"x"}function p8(e){var t=e.state,n=e.options,r=e.name,a=n.mainAxis,s=a===void 0?!0:a,o=n.altAxis,i=o===void 0?!1:o,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,p=n.tether,m=p===void 0?!0:p,_=n.tetherOffset,y=_===void 0?0:_,b=tu(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),h=aa(t.placement),g=Si(t.placement),w=!g,v=ov(h),k=f8(v),$=t.modifiersData.popperOffsets,S=t.rects.reference,x=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,R=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),K=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if($){if(s){var X,ce=v==="y"?Wn:Hn,ie=v==="y"?cr:dr,fe=v==="y"?"height":"width",j=$[v],ne=j+b[ce],le=j-b[ie],re=m?-x[fe]/2:0,he=g===yi?S[fe]:x[fe],ke=g===yi?-x[fe]:-S[fe],Oe=t.elements.arrow,Pe=m&&Oe?sv(Oe):{width:0,height:0},Re=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:P2(),Ie=Re[ce],B=Re[ie],se=Rl(0,S[fe],Pe[fe]),V=w?S[fe]/2-re-se-Ie-R.mainAxis:he-se-Ie-R.mainAxis,F=w?-S[fe]/2+re+se+B+R.mainAxis:ke+se+B+R.mainAxis,J=t.elements.arrow&&Eu(t.elements.arrow),O=J?v==="y"?J.clientTop||0:J.clientLeft||0:0,T=(X=K?.[v])!=null?X:0,C=j+V-T-O,E=j+F-T,I=Rl(m?rd(ne,C):ne,j,m?po(le,E):le);$[v]=I,W[v]=I-j}if(i){var H,Z=v==="x"?Wn:Hn,Y=v==="x"?cr:dr,z=$[k],N=k==="y"?"height":"width",U=z+b[Z],M=z-b[Y],te=[Wn,Hn].indexOf(h)!==-1,Q=(H=K?.[k])!=null?H:0,we=te?U:z-S[N]-x[N]-Q+R.altAxis,Ce=te?z+S[N]+x[N]-Q-R.altAxis:M,Ve=m&&te?LI(we,z,Ce):Rl(m?we:U,z,m?Ce:M);$[k]=Ve,W[k]=Ve-z}t.modifiersData[r]=W}}var h8={name:"preventOverflow",enabled:!0,phase:"main",fn:p8,requiresIfExists:["offset"]};function m8(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function v8(e){return e===Wr(e)||!or(e)?iv(e):m8(e)}function g8(e){var t=e.getBoundingClientRect(),n=bi(t.width)/e.offsetWidth||1,r=bi(t.height)/e.offsetHeight||1;return n!==1||r!==1}function y8(e,t,n){n===void 0&&(n=!1);var r=or(t),a=or(t)&&g8(t),s=Ps(t),o=wi(e,a),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ca(t)!=="body"||uv(s))&&(i=v8(t)),or(t)?(l=wi(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=lv(s))),{x:o.left+i.scrollLeft-l.x,y:o.top+i.scrollTop-l.y,width:o.width,height:o.height}}function _8(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function a(s){n.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(i){if(!n.has(i)){var l=t.get(i);l&&a(l)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||a(s)}),r}function b8(e){var t=_8(e);return PI.reduce(function(n,r){return n.concat(t.filter(function(a){return a.phase===r}))},[])}function w8(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function S8(e){var t=e.reduce(function(n,r){var a=n[r.name];return n[r.name]=a?Object.assign({},a,r,{options:Object.assign({},a.options,r.options),data:Object.assign({},a.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var Xy={placement:"bottom",modifiers:[],strategy:"absolute"};function Zy(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function H2(e,t){return typeof e=="function"?e.apply(void 0,t):e}function Jy(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function C8(e,t){var n=Object.assign({},e);return t.forEach(function(r){delete n[r]}),n}function A8(e){return e.split(/\s+/).filter(Boolean)}function zs(e){return[].concat(e)}function e0(e,t){e.indexOf(t)===-1&&e.push(t)}function D8(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function B2(e){return e.split("-")[0]}function Ti(e){return[].slice.call(e)}function t0(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function ho(){return document.createElement("div")}function af(e){return["Element","Fragment"].some(function(t){return cv(e,t)})}function M8(e){return cv(e,"NodeList")}function dv(e){return cv(e,"MouseEvent")}function O8(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function P8(e){return af(e)?[e]:M8(e)?Ti(e):Array.isArray(e)?e:Ti(document.querySelectorAll(e))}function up(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+"ms")})}function nu(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}function j2(e){var t,n=zs(e),r=n[0];return r!=null&&(t=r.ownerDocument)!=null&&t.body?r.ownerDocument:document}function $8(e,t){var n=t.clientX,r=t.clientY;return e.every(function(a){var s=a.popperRect,o=a.popperState,i=a.props,l=i.interactiveBorder,c=B2(o.placement),u=o.modifiersData.offset;if(!u)return!0;var d=c==="bottom"?u.top.y:0,p=c==="top"?u.bottom.y:0,m=c==="right"?u.left.x:0,_=c==="left"?u.right.x:0,y=s.top-r+d>l,b=r-s.bottom-p>l,h=s.left-n+m>l,g=n-s.right-_>l;return y||b||h||g})}function cp(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(a){e[r](a,n)})}function n0(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=n.getRootNode==null||(r=n.getRootNode())==null?void 0:r.host}return!1}var Kr={isTouch:!1},r0=0;function I8(){Kr.isTouch||(Kr.isTouch=!0,window.performance&&document.addEventListener("mousemove",U2))}function U2(){var e=performance.now();e-r0<20&&(Kr.isTouch=!1,document.removeEventListener("mousemove",U2)),r0=e}function R8(){var e=document.activeElement;if(O8(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function N8(){document.addEventListener("touchstart",I8,js),window.addEventListener("blur",R8)}var L8=typeof window<"u"&&typeof document<"u",F8=L8?!!window.msCrypto:!1,V8={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},Y8={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},kr=Object.assign({appendTo:W2,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},V8,Y8),W8=Object.keys(kr),H8=function(t){var n=Object.keys(t);n.forEach(function(r){kr[r]=t[r]})};function z2(e){var t=e.plugins||[],n=t.reduce(function(r,a){var s=a.name,o=a.defaultValue;if(s){var i;r[s]=e[s]!==void 0?e[s]:(i=kr[s])!=null?i:o}return r},{});return Object.assign({},e,n)}function B8(e,t){var n=t?Object.keys(z2(Object.assign({},kr,{plugins:t}))):W8,r=n.reduce(function(a,s){var o=(e.getAttribute("data-tippy-"+s)||"").trim();if(!o)return a;if(s==="content")a[s]=o;else try{a[s]=JSON.parse(o)}catch{a[s]=o}return a},{});return r}function a0(e,t){var n=Object.assign({},t,{content:H2(t.content,[e])},t.ignoreAttributes?{}:B8(e,t.plugins));return n.aria=Object.assign({},kr.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?t.interactive:n.aria.expanded,content:n.aria.content==="auto"?t.interactive?null:"describedby":n.aria.content},n}var j8=function(){return"innerHTML"};function Dh(e,t){e[j8()]=t}function s0(e){var t=ho();return e===!0?t.className=V2:(t.className=Y2,af(e)?t.appendChild(e):Dh(t,e)),t}function o0(e,t){af(t.content)?(Dh(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?Dh(e,t.content):e.textContent=t.content)}function ad(e){var t=e.firstElementChild,n=Ti(t.children);return{box:t,content:n.find(function(r){return r.classList.contains(L2)}),arrow:n.find(function(r){return r.classList.contains(V2)||r.classList.contains(Y2)}),backdrop:n.find(function(r){return r.classList.contains(F2)})}}function G2(e){var t=ho(),n=ho();n.className=k8,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=ho();r.className=L2,r.setAttribute("data-state","hidden"),o0(r,e.props),t.appendChild(n),n.appendChild(r),a(e.props,e.props);function a(s,o){var i=ad(t),l=i.box,c=i.content,u=i.arrow;o.theme?l.setAttribute("data-theme",o.theme):l.removeAttribute("data-theme"),typeof o.animation=="string"?l.setAttribute("data-animation",o.animation):l.removeAttribute("data-animation"),o.inertia?l.setAttribute("data-inertia",""):l.removeAttribute("data-inertia"),l.style.maxWidth=typeof o.maxWidth=="number"?o.maxWidth+"px":o.maxWidth,o.role?l.setAttribute("role",o.role):l.removeAttribute("role"),(s.content!==o.content||s.allowHTML!==o.allowHTML)&&o0(c,e.props),o.arrow?u?s.arrow!==o.arrow&&(l.removeChild(u),l.appendChild(s0(o.arrow))):l.appendChild(s0(o.arrow)):u&&l.removeChild(u)}return{popper:t,onUpdate:a}}G2.$$tippy=!0;var U8=1,Xu=[],dp=[];function z8(e,t){var n=a0(e,Object.assign({},kr,z2(t0(t)))),r,a,s,o=!1,i=!1,l=!1,c=!1,u,d,p,m=[],_=Jy(C,n.interactiveDebounce),y,b=U8++,h=null,g=D8(n.plugins),w={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},v={id:b,reference:e,popper:ho(),popperInstance:h,props:n,state:w,plugins:g,clearDelayTimeouts:we,setProps:Ce,setContent:Ve,show:lt,hide:Ft,hideWithInteractivity:on,enable:te,disable:Q,unmount:gn,destroy:_r};if(!n.render)return v;var k=n.render(v),$=k.popper,S=k.onUpdate;$.setAttribute("data-tippy-root",""),$.id="tippy-"+v.id,v.popper=$,e._tippy=v,$._tippy=v;var x=g.map(function(ue){return ue.fn(v)}),P=e.hasAttribute("aria-expanded");return J(),re(),j(),ne("onCreate",[v]),n.showOnCreate&&U(),$.addEventListener("mouseenter",function(){v.props.interactive&&v.state.isVisible&&v.clearDelayTimeouts()}),$.addEventListener("mouseleave",function(){v.props.interactive&&v.props.trigger.indexOf("mouseenter")>=0&&ce().addEventListener("mousemove",_)}),v;function R(){var ue=v.props.touch;return Array.isArray(ue)?ue:[ue,0]}function K(){return R()[0]==="hold"}function W(){var ue;return!!((ue=v.props.render)!=null&&ue.$$tippy)}function X(){return y||e}function ce(){var ue=X().parentNode;return ue?j2(ue):document}function ie(){return ad($)}function fe(ue){return v.state.isMounted&&!v.state.isVisible||Kr.isTouch||u&&u.type==="focus"?0:lp(v.props.delay,ue?0:1,kr.delay)}function j(ue){ue===void 0&&(ue=!1),$.style.pointerEvents=v.props.interactive&&!ue?"":"none",$.style.zIndex=""+v.props.zIndex}function ne(ue,De,Ne){if(Ne===void 0&&(Ne=!0),x.forEach(function(Ze){Ze[ue]&&Ze[ue].apply(Ze,De)}),Ne){var rt;(rt=v.props)[ue].apply(rt,De)}}function le(){var ue=v.props.aria;if(ue.content){var De="aria-"+ue.content,Ne=$.id,rt=zs(v.props.triggerTarget||e);rt.forEach(function(Ze){var Jt=Ze.getAttribute(De);if(v.state.isVisible)Ze.setAttribute(De,Jt?Jt+" "+Ne:Ne);else{var yn=Jt&&Jt.replace(Ne,"").trim();yn?Ze.setAttribute(De,yn):Ze.removeAttribute(De)}})}}function re(){if(!(P||!v.props.aria.expanded)){var ue=zs(v.props.triggerTarget||e);ue.forEach(function(De){v.props.interactive?De.setAttribute("aria-expanded",v.state.isVisible&&De===X()?"true":"false"):De.removeAttribute("aria-expanded")})}}function he(){ce().removeEventListener("mousemove",_),Xu=Xu.filter(function(ue){return ue!==_})}function ke(ue){if(!(Kr.isTouch&&(l||ue.type==="mousedown"))){var De=ue.composedPath&&ue.composedPath()[0]||ue.target;if(!(v.props.interactive&&n0($,De))){if(zs(v.props.triggerTarget||e).some(function(Ne){return n0(Ne,De)})){if(Kr.isTouch||v.state.isVisible&&v.props.trigger.indexOf("click")>=0)return}else ne("onClickOutside",[v,ue]);v.props.hideOnClick===!0&&(v.clearDelayTimeouts(),v.hide(),i=!0,setTimeout(function(){i=!1}),v.state.isMounted||Ie())}}}function Oe(){l=!0}function Pe(){l=!1}function Re(){var ue=ce();ue.addEventListener("mousedown",ke,!0),ue.addEventListener("touchend",ke,js),ue.addEventListener("touchstart",Pe,js),ue.addEventListener("touchmove",Oe,js)}function Ie(){var ue=ce();ue.removeEventListener("mousedown",ke,!0),ue.removeEventListener("touchend",ke,js),ue.removeEventListener("touchstart",Pe,js),ue.removeEventListener("touchmove",Oe,js)}function B(ue,De){V(ue,function(){!v.state.isVisible&&$.parentNode&&$.parentNode.contains($)&&De()})}function se(ue,De){V(ue,De)}function V(ue,De){var Ne=ie().box;function rt(Ze){Ze.target===Ne&&(cp(Ne,"remove",rt),De())}if(ue===0)return De();cp(Ne,"remove",d),cp(Ne,"add",rt),d=rt}function F(ue,De,Ne){Ne===void 0&&(Ne=!1);var rt=zs(v.props.triggerTarget||e);rt.forEach(function(Ze){Ze.addEventListener(ue,De,Ne),m.push({node:Ze,eventType:ue,handler:De,options:Ne})})}function J(){K()&&(F("touchstart",T,{passive:!0}),F("touchend",E,{passive:!0})),A8(v.props.trigger).forEach(function(ue){if(ue!=="manual")switch(F(ue,T),ue){case"mouseenter":F("mouseleave",E);break;case"focus":F(F8?"focusout":"blur",I);break;case"focusin":F("focusout",I);break}})}function O(){m.forEach(function(ue){var De=ue.node,Ne=ue.eventType,rt=ue.handler,Ze=ue.options;De.removeEventListener(Ne,rt,Ze)}),m=[]}function T(ue){var De,Ne=!1;if(!(!v.state.isEnabled||H(ue)||i)){var rt=((De=u)==null?void 0:De.type)==="focus";u=ue,y=ue.currentTarget,re(),!v.state.isVisible&&dv(ue)&&Xu.forEach(function(Ze){return Ze(ue)}),ue.type==="click"&&(v.props.trigger.indexOf("mouseenter")<0||o)&&v.props.hideOnClick!==!1&&v.state.isVisible?Ne=!0:U(ue),ue.type==="click"&&(o=!Ne),Ne&&!rt&&M(ue)}}function C(ue){var De=ue.target,Ne=X().contains(De)||$.contains(De);if(!(ue.type==="mousemove"&&Ne)){var rt=N().concat($).map(function(Ze){var Jt,yn=Ze._tippy,Le=(Jt=yn.popperInstance)==null?void 0:Jt.state;return Le?{popperRect:Ze.getBoundingClientRect(),popperState:Le,props:n}:null}).filter(Boolean);$8(rt,ue)&&(he(),M(ue))}}function E(ue){var De=H(ue)||v.props.trigger.indexOf("click")>=0&&o;if(!De){if(v.props.interactive){v.hideWithInteractivity(ue);return}M(ue)}}function I(ue){v.props.trigger.indexOf("focusin")<0&&ue.target!==X()||v.props.interactive&&ue.relatedTarget&&$.contains(ue.relatedTarget)||M(ue)}function H(ue){return Kr.isTouch?K()!==ue.type.indexOf("touch")>=0:!1}function Z(){Y();var ue=v.props,De=ue.popperOptions,Ne=ue.placement,rt=ue.offset,Ze=ue.getReferenceClientRect,Jt=ue.moveTransition,yn=W()?ad($).arrow:null,Le=Ze?{getBoundingClientRect:Ze,contextElement:Ze.contextElement||X()}:e,ln={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(Ln){var jr=Ln.state;if(W()){var Cf=ie(),Zi=Cf.box;["placement","reference-hidden","escaped"].forEach(function(Po){Po==="placement"?Zi.setAttribute("data-placement",jr.placement):jr.attributes.popper["data-popper-"+Po]?Zi.setAttribute("data-"+Po,""):Zi.removeAttribute("data-"+Po)}),jr.attributes.popper={}}}},en=[{name:"offset",options:{offset:rt}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Jt}},ln];W()&&yn&&en.push({name:"arrow",options:{element:yn,padding:3}}),en.push.apply(en,De?.modifiers||[]),v.popperInstance=x8(Le,$,Object.assign({},De,{placement:Ne,onFirstUpdate:p,modifiers:en}))}function Y(){v.popperInstance&&(v.popperInstance.destroy(),v.popperInstance=null)}function z(){var ue=v.props.appendTo,De,Ne=X();v.props.interactive&&ue===W2||ue==="parent"?De=Ne.parentNode:De=H2(ue,[Ne]),De.contains($)||De.appendChild($),v.state.isMounted=!0,Z()}function N(){return Ti($.querySelectorAll("[data-tippy-root]"))}function U(ue){v.clearDelayTimeouts(),ue&&ne("onTrigger",[v,ue]),Re();var De=fe(!0),Ne=R(),rt=Ne[0],Ze=Ne[1];Kr.isTouch&&rt==="hold"&&Ze&&(De=Ze),De?r=setTimeout(function(){v.show()},De):v.show()}function M(ue){if(v.clearDelayTimeouts(),ne("onUntrigger",[v,ue]),!v.state.isVisible){Ie();return}if(!(v.props.trigger.indexOf("mouseenter")>=0&&v.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(ue.type)>=0&&o)){var De=fe(!1);De?a=setTimeout(function(){v.state.isVisible&&v.hide()},De):s=requestAnimationFrame(function(){v.hide()})}}function te(){v.state.isEnabled=!0}function Q(){v.hide(),v.state.isEnabled=!1}function we(){clearTimeout(r),clearTimeout(a),cancelAnimationFrame(s)}function Ce(ue){if(!v.state.isDestroyed){ne("onBeforeUpdate",[v,ue]),O();var De=v.props,Ne=a0(e,Object.assign({},De,t0(ue),{ignoreAttributes:!0}));v.props=Ne,J(),De.interactiveDebounce!==Ne.interactiveDebounce&&(he(),_=Jy(C,Ne.interactiveDebounce)),De.triggerTarget&&!Ne.triggerTarget?zs(De.triggerTarget).forEach(function(rt){rt.removeAttribute("aria-expanded")}):Ne.triggerTarget&&e.removeAttribute("aria-expanded"),re(),j(),S&&S(De,Ne),v.popperInstance&&(Z(),N().forEach(function(rt){requestAnimationFrame(rt._tippy.popperInstance.forceUpdate)})),ne("onAfterUpdate",[v,ue])}}function Ve(ue){v.setProps({content:ue})}function lt(){var ue=v.state.isVisible,De=v.state.isDestroyed,Ne=!v.state.isEnabled,rt=Kr.isTouch&&!v.props.touch,Ze=lp(v.props.duration,0,kr.duration);if(!(ue||De||Ne||rt)&&!X().hasAttribute("disabled")&&(ne("onShow",[v],!1),v.props.onShow(v)!==!1)){if(v.state.isVisible=!0,W()&&($.style.visibility="visible"),j(),Re(),v.state.isMounted||($.style.transition="none"),W()){var Jt=ie(),yn=Jt.box,Le=Jt.content;up([yn,Le],0)}p=function(){var en;if(!(!v.state.isVisible||c)){if(c=!0,$.offsetHeight,$.style.transition=v.props.moveTransition,W()&&v.props.animation){var Br=ie(),Ln=Br.box,jr=Br.content;up([Ln,jr],Ze),nu([Ln,jr],"visible")}le(),re(),e0(dp,v),(en=v.popperInstance)==null||en.forceUpdate(),ne("onMount",[v]),v.props.animation&&W()&&se(Ze,function(){v.state.isShown=!0,ne("onShown",[v])})}},z()}}function Ft(){var ue=!v.state.isVisible,De=v.state.isDestroyed,Ne=!v.state.isEnabled,rt=lp(v.props.duration,1,kr.duration);if(!(ue||De||Ne)&&(ne("onHide",[v],!1),v.props.onHide(v)!==!1)){if(v.state.isVisible=!1,v.state.isShown=!1,c=!1,o=!1,W()&&($.style.visibility="hidden"),he(),Ie(),j(!0),W()){var Ze=ie(),Jt=Ze.box,yn=Ze.content;v.props.animation&&(up([Jt,yn],rt),nu([Jt,yn],"hidden"))}le(),re(),v.props.animation?W()&&B(rt,v.unmount):v.unmount()}}function on(ue){ce().addEventListener("mousemove",_),e0(Xu,_),_(ue)}function gn(){v.state.isVisible&&v.hide(),v.state.isMounted&&(Y(),N().forEach(function(ue){ue._tippy.unmount()}),$.parentNode&&$.parentNode.removeChild($),dp=dp.filter(function(ue){return ue!==v}),v.state.isMounted=!1,ne("onHidden",[v]))}function _r(){v.state.isDestroyed||(v.clearDelayTimeouts(),v.unmount(),O(),delete e._tippy,v.state.isDestroyed=!0,ne("onDestroy",[v]))}}function Ye(e,t){t===void 0&&(t={});var n=kr.plugins.concat(t.plugins||[]);N8();var r=Object.assign({},t,{plugins:n}),a=P8(e),s=a.reduce(function(o,i){var l=i&&z8(i,r);return l&&o.push(l),o},[]);return af(e)?s[0]:s}Ye.defaultProps=kr;Ye.setDefaultProps=H8;Ye.currentInput=Kr;var G8=Object.assign({},M2,{effect:function(t){var n=t.state,r={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,r.popper),n.styles=r,n.elements.arrow&&Object.assign(n.elements.arrow.style,r.arrow)}}),q8=function(t,n){var r;n===void 0&&(n={});var a=t,s=[],o=[],i,l=n.overrides,c=[],u=!1;function d(){o=a.map(function(v){return zs(v.props.triggerTarget||v.reference)}).reduce(function(v,k){return v.concat(k)},[])}function p(){s=a.map(function(v){return v.reference})}function m(v){a.forEach(function(k){v?k.enable():k.disable()})}function _(v){return a.map(function(k){var $=k.setProps;return k.setProps=function(S){$(S),k.reference===i&&v.setProps(S)},function(){k.setProps=$}})}function y(v,k){var $=o.indexOf(k);if(k!==i){i=k;var S=(l||[]).concat("content").reduce(function(x,P){return x[P]=a[$].props[P],x},{});v.setProps(Object.assign({},S,{getReferenceClientRect:typeof S.getReferenceClientRect=="function"?S.getReferenceClientRect:function(){var x;return(x=s[$])==null?void 0:x.getBoundingClientRect()}}))}}m(!1),p(),d();var b={fn:function(){return{onDestroy:function(){m(!0)},onHidden:function(){i=null},onClickOutside:function($){$.props.showOnCreate&&!u&&(u=!0,i=null)},onShow:function($){$.props.showOnCreate&&!u&&(u=!0,y($,s[0]))},onTrigger:function($,S){y($,S.currentTarget)}}}},h=Ye(ho(),Object.assign({},C8(n,["overrides"]),{plugins:[b].concat(n.plugins||[]),triggerTarget:o,popperOptions:Object.assign({},n.popperOptions,{modifiers:[].concat(((r=n.popperOptions)==null?void 0:r.modifiers)||[],[G8])})})),g=h.show;h.show=function(v){if(g(),!i&&v==null)return y(h,s[0]);if(!(i&&v==null)){if(typeof v=="number")return s[v]&&y(h,s[v]);if(a.indexOf(v)>=0){var k=v.reference;return y(h,k)}if(s.indexOf(v)>=0)return y(h,v)}},h.showNext=function(){var v=s[0];if(!i)return h.show(0);var k=s.indexOf(i);h.show(s[k+1]||v)},h.showPrevious=function(){var v=s[s.length-1];if(!i)return h.show(v);var k=s.indexOf(i),$=s[k-1]||v;h.show($)};var w=h.setProps;return h.setProps=function(v){l=v.overrides||l,w(v)},h.setInstances=function(v){m(!0),c.forEach(function(k){return k()}),a=v,m(!1),p(),d(),c=_(h),h.setProps({triggerTarget:o})},c=_(h),h},K8={name:"animateFill",defaultValue:!1,fn:function(t){var n;if(!((n=t.props.render)!=null&&n.$$tippy))return{};var r=ad(t.popper),a=r.box,s=r.content,o=t.props.animateFill?Q8():null;return{onCreate:function(){o&&(a.insertBefore(o,a.firstElementChild),a.setAttribute("data-animatefill",""),a.style.overflow="hidden",t.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if(o){var l=a.style.transitionDuration,c=Number(l.replace("ms",""));s.style.transitionDelay=Math.round(c/10)+"ms",o.style.transitionDuration=l,nu([o],"visible")}},onShow:function(){o&&(o.style.transitionDuration="0ms")},onHide:function(){o&&nu([o],"hidden")}}}};function Q8(){var e=ho();return e.className=F2,nu([e],"hidden"),e}var Mh={clientX:0,clientY:0},Zu=[];function q2(e){var t=e.clientX,n=e.clientY;Mh={clientX:t,clientY:n}}function X8(e){e.addEventListener("mousemove",q2)}function Z8(e){e.removeEventListener("mousemove",q2)}var J8={name:"followCursor",defaultValue:!1,fn:function(t){var n=t.reference,r=j2(t.props.triggerTarget||n),a=!1,s=!1,o=!0,i=t.props;function l(){return t.props.followCursor==="initial"&&t.state.isVisible}function c(){r.addEventListener("mousemove",p)}function u(){r.removeEventListener("mousemove",p)}function d(){a=!0,t.setProps({getReferenceClientRect:null}),a=!1}function p(y){var b=y.target?n.contains(y.target):!0,h=t.props.followCursor,g=y.clientX,w=y.clientY,v=n.getBoundingClientRect(),k=g-v.left,$=w-v.top;(b||!t.props.interactive)&&t.setProps({getReferenceClientRect:function(){var x=n.getBoundingClientRect(),P=g,R=w;h==="initial"&&(P=x.left+k,R=x.top+$);var K=h==="horizontal"?x.top:R,W=h==="vertical"?x.right:P,X=h==="horizontal"?x.bottom:R,ce=h==="vertical"?x.left:P;return{width:W-ce,height:X-K,top:K,right:W,bottom:X,left:ce}}})}function m(){t.props.followCursor&&(Zu.push({instance:t,doc:r}),X8(r))}function _(){Zu=Zu.filter(function(y){return y.instance!==t}),Zu.filter(function(y){return y.doc===r}).length===0&&Z8(r)}return{onCreate:m,onDestroy:_,onBeforeUpdate:function(){i=t.props},onAfterUpdate:function(b,h){var g=h.followCursor;a||g!==void 0&&i.followCursor!==g&&(_(),g?(m(),t.state.isMounted&&!s&&!l()&&c()):(u(),d()))},onMount:function(){t.props.followCursor&&!s&&(o&&(p(Mh),o=!1),l()||c())},onTrigger:function(b,h){dv(h)&&(Mh={clientX:h.clientX,clientY:h.clientY}),s=h.type==="focus"},onHidden:function(){t.props.followCursor&&(d(),u(),o=!0)}}}};function eR(e,t){var n;return{popperOptions:Object.assign({},e.popperOptions,{modifiers:[].concat((((n=e.popperOptions)==null?void 0:n.modifiers)||[]).filter(function(r){var a=r.name;return a!==t.name}),[t])})}}var tR={name:"inlinePositioning",defaultValue:!1,fn:function(t){var n=t.reference;function r(){return!!t.props.inlinePositioning}var a,s=-1,o=!1,i=[],l={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(m){var _=m.state;r()&&(i.indexOf(_.placement)!==-1&&(i=[]),a!==_.placement&&i.indexOf(_.placement)===-1&&(i.push(_.placement),t.setProps({getReferenceClientRect:function(){return c(_.placement)}})),a=_.placement)}};function c(p){return nR(B2(p),n.getBoundingClientRect(),Ti(n.getClientRects()),s)}function u(p){o=!0,t.setProps(p),o=!1}function d(){o||u(eR(t.props,l))}return{onCreate:d,onAfterUpdate:d,onTrigger:function(m,_){if(dv(_)){var y=Ti(t.reference.getClientRects()),b=y.find(function(g){return g.left-2<=_.clientX&&g.right+2>=_.clientX&&g.top-2<=_.clientY&&g.bottom+2>=_.clientY}),h=y.indexOf(b);s=h>-1?h:s}},onHidden:function(){s=-1}}}};function nR(e,t,n,r){if(n.length<2||e===null)return t;if(n.length===2&&r>=0&&n[0].left>n[1].right)return n[r]||t;switch(e){case"top":case"bottom":{var a=n[0],s=n[n.length-1],o=e==="top",i=a.top,l=s.bottom,c=o?a.left:s.left,u=o?a.right:s.right,d=u-c,p=l-i;return{top:i,bottom:l,left:c,right:u,width:d,height:p}}case"left":case"right":{var m=Math.min.apply(Math,n.map(function($){return $.left})),_=Math.max.apply(Math,n.map(function($){return $.right})),y=n.filter(function($){return e==="left"?$.left===m:$.right===_}),b=y[0].top,h=y[y.length-1].bottom,g=m,w=_,v=w-g,k=h-b;return{top:b,bottom:h,left:g,right:w,width:v,height:k}}default:return t}}var rR={name:"sticky",defaultValue:!1,fn:function(t){var n=t.reference,r=t.popper;function a(){return t.popperInstance?t.popperInstance.state.elements.reference:n}function s(c){return t.props.sticky===!0||t.props.sticky===c}var o=null,i=null;function l(){var c=s("reference")?a().getBoundingClientRect():null,u=s("popper")?r.getBoundingClientRect():null;(c&&i0(o,c)||u&&i0(i,u))&&t.popperInstance&&t.popperInstance.update(),o=c,i=u,t.state.isMounted&&requestAnimationFrame(l)}return{onMount:function(){t.props.sticky&&l()}}}};function i0(e,t){return e&&t?e.top!==t.top||e.right!==t.right||e.bottom!==t.bottom||e.left!==t.left:!0}Ye.setDefaultProps({render:G2});Ye.setDefaultProps({onShow:e=>{if(!e.props.content)return!1}});const aR=e=>e instanceof Object&&"$"in e&&"$el"in e;function K2(e,t={},n={mount:!0,appName:"Tippy"}){n=Object.assign({mount:!0,appName:"Tippy"},n);const r=Vr(),a=oe(),s=oe({isEnabled:!1,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1}),o=ur();let i=null;const l=()=>i||(i=document.createDocumentFragment(),i),c=S=>{let x,P=Qe(S)?S.value:S;return yo(P)?(o.value||(o.value=Bc({name:n.appName,setup:()=>()=>Qe(S)?S.value:S}),r&&Object.assign(o.value._context,r.appContext),o.value.mount(l())),x=()=>l()):typeof P=="object"?(o.value||(o.value=Bc({name:n.appName,setup:()=>()=>bt(Qe(S)?S.value:S)}),r&&Object.assign(o.value._context,r.appContext),o.value.mount(l())),x=()=>l()):x=P,x},u=S=>{let x={};return Qe(S)?x=S.value||{}:Mr(S)?x={...S}:x={...S},x.content&&(x.content=c(x.content)),x.triggerTarget&&(x.triggerTarget=Qe(x.triggerTarget)?x.triggerTarget.value:x.triggerTarget),(!x.plugins||!Array.isArray(x.plugins))&&(x.plugins=[]),x.plugins=x.plugins.filter(P=>P.name!=="vueTippyReactiveState"),x.plugins.push({name:"vueTippyReactiveState",fn:()=>({onCreate(){s.value.isEnabled=!0},onMount(){s.value.isMounted=!0},onShow(){s.value.isMounted=!0,s.value.isVisible=!0},onShown(){s.value.isShown=!0},onHide(){s.value.isMounted=!1,s.value.isVisible=!1},onHidden(){s.value.isShown=!1},onUnmounted(){s.value.isMounted=!1},onDestroy(){s.value.isDestroyed=!0}})}),x},d=()=>{a.value&&a.value.setProps(u(t))},p=()=>{!a.value||!t.content||a.value.setContent(c(t.content))},m=S=>{var x;(x=a.value)===null||x===void 0||x.setContent(c(S))},_=S=>{var x;(x=a.value)===null||x===void 0||x.setProps(u(S))},y=()=>{var S;a.value&&(a.value.destroy(),a.value=void 0),i=null,(S=o.value)===null||S===void 0||S.unmount(),o.value=void 0},b=()=>{var S;(S=a.value)===null||S===void 0||S.show()},h=()=>{var S;(S=a.value)===null||S===void 0||S.hide()},g=()=>{var S;(S=a.value)===null||S===void 0||S.disable(),s.value.isEnabled=!1},w=()=>{var S;(S=a.value)===null||S===void 0||S.enable(),s.value.isEnabled=!0},v=()=>{var S;(S=a.value)===null||S===void 0||S.unmount()},k=()=>{if(!e)return;let S=Qe(e)?e.value:e;typeof S=="function"&&(S=S()),aR(S)&&(S=S.$el),S&&(a.value=Ye(S,u(t)),S.$tippy=$)},$={tippy:a,refresh:d,refreshContent:p,setContent:m,setProps:_,destroy:y,hide:h,show:b,disable:g,enable:w,unmount:v,mount:k,state:s};return n.mount&&(r?r.isMounted?k():ut(k):k()),r&&xn(()=>{y()}),Qe(t)||Mr(t)?Ue(t,d,{immediate:!1}):Qe(t.content)&&Ue(t.content,p,{immediate:!1}),$}function sR(e,t){const n=oe();return ut(()=>{const a=(Array.isArray(e)?e.map(s=>s.value):typeof e=="function"?e():e.value).map(s=>s instanceof Element?s._tippy:s).filter(Boolean);n.value=q8(a,t?{allowHTML:!0,...t}:{allowHTML:!0})}),{singleton:n}}function oR(e){return typeof e=="function"?e():f(e)}function iR(e){var t,n;const r=oR(e);return(n=(t=r)===null||t===void 0?void 0:t.$el)!==null&&n!==void 0?n:r}const Q2=ye({props:{to:{type:[String,Function]},tag:{type:[String,Object],default:"span"},contentTag:{type:[String,Object],default:"span"},contentClass:{type:String,default:null},appendTo:{default:()=>Ye.defaultProps.appendTo},aria:{default:()=>Ye.defaultProps.aria},delay:{default:()=>Ye.defaultProps.delay},duration:{default:()=>Ye.defaultProps.duration},getReferenceClientRect:{default:()=>Ye.defaultProps.getReferenceClientRect},hideOnClick:{type:[Boolean,String],default:()=>Ye.defaultProps.hideOnClick},ignoreAttributes:{type:Boolean,default:()=>Ye.defaultProps.ignoreAttributes},interactive:{type:Boolean,default:()=>Ye.defaultProps.interactive},interactiveBorder:{default:()=>Ye.defaultProps.interactiveBorder},interactiveDebounce:{default:()=>Ye.defaultProps.interactiveDebounce},moveTransition:{default:()=>Ye.defaultProps.moveTransition},offset:{default:()=>Ye.defaultProps.offset},onAfterUpdate:{default:()=>Ye.defaultProps.onAfterUpdate},onBeforeUpdate:{default:()=>Ye.defaultProps.onBeforeUpdate},onCreate:{default:()=>Ye.defaultProps.onCreate},onDestroy:{default:()=>Ye.defaultProps.onDestroy},onHidden:{default:()=>Ye.defaultProps.onHidden},onHide:{default:()=>Ye.defaultProps.onHide},onMount:{default:()=>Ye.defaultProps.onMount},onShow:{default:()=>Ye.defaultProps.onShow},onShown:{default:()=>Ye.defaultProps.onShown},onTrigger:{default:()=>Ye.defaultProps.onTrigger},onUntrigger:{default:()=>Ye.defaultProps.onUntrigger},onClickOutside:{default:()=>Ye.defaultProps.onClickOutside},placement:{default:()=>Ye.defaultProps.placement},plugins:{default:()=>Ye.defaultProps.plugins},popperOptions:{default:()=>Ye.defaultProps.popperOptions},render:{default:()=>Ye.defaultProps.render},showOnCreate:{type:Boolean,default:()=>Ye.defaultProps.showOnCreate},touch:{type:[Boolean,String,Array],default:()=>Ye.defaultProps.touch},trigger:{default:()=>Ye.defaultProps.trigger},triggerTarget:{default:()=>Ye.defaultProps.triggerTarget},animateFill:{type:Boolean,default:()=>Ye.defaultProps.animateFill},followCursor:{type:[Boolean,String],default:()=>Ye.defaultProps.followCursor},inlinePositioning:{type:Boolean,default:()=>Ye.defaultProps.inlinePositioning},sticky:{type:[Boolean,String],default:()=>Ye.defaultProps.sticky},allowHTML:{type:Boolean,default:()=>Ye.defaultProps.allowHTML},animation:{default:()=>Ye.defaultProps.animation},arrow:{default:()=>Ye.defaultProps.arrow},content:{default:()=>Ye.defaultProps.content},inertia:{default:()=>Ye.defaultProps.inertia},maxWidth:{default:()=>Ye.defaultProps.maxWidth},role:{default:()=>Ye.defaultProps.role},theme:{default:()=>Ye.defaultProps.theme},zIndex:{default:()=>Ye.defaultProps.zIndex}},emits:["state"],setup(e,{slots:t,emit:n,expose:r}){const a=oe(),s=oe(),o=oe(),i=oe(!1),l=()=>{let m={...e};for(const _ of["to","tag","contentTag","contentClass"])m.hasOwnProperty(_)&&delete m[_];return m};let c=()=>iR(a);e.to&&(typeof Element<"u"&&e.to instanceof Element?c=()=>e.to:e.to==="parent"?c=()=>{let m=a.value;return m||(m=a.value=s.value.parentElement),m}:(typeof e.to=="string"||e.to instanceof String)&&(c=()=>document.querySelector(e.to)));const u=K2(c,l());let d=t.content;!d&&e.to==="parent"&&(d=t.default),ut(()=>{i.value=!0,Xt(()=>{d&&u.setContent(()=>o.value)})}),Ue(u.state,()=>{n("state",f(u.state))},{immediate:!0,deep:!0}),Ue(()=>e,()=>{u.setProps(l()),d&&u.setContent(()=>o.value)},{deep:!0});let p=Qt({elem:a,contentElem:o,mounted:i,...u});return r(p),()=>{const m=(typeof e.contentTag=="string",e.contentTag),_=d?bt(m,{ref:o,style:{display:i.value?"inherit":"none"},class:e.contentClass},d(p)):null;if(e.to==="parent"){const h=[];if(!a.value){const g=bt("span",{ref:s,"data-v-tippy":"",style:{display:"none"}});h.push(g)}return _&&h.push(_),h}const y=t.default?t.default(p):[];if(!e.tag){const h=bt(y[0],{ref:a,"data-v-tippy":""});return _?[h,_]:h}const b=(typeof e.tag=="string",e.tag);return bt(b,{ref:a,"data-v-tippy":""},_?[y,_]:y)}}}),lR=["a11y","allowHTML","arrow","flip","flipOnUpdate","hideOnClick","ignoreAttributes","inertia","interactive","lazy","multiple","showOnInit","touch","touchHold"];let Oh={};Object.keys(Ye.defaultProps).forEach(e=>{lR.includes(e)?Oh[e]={type:Boolean,default:function(){return Ye.defaultProps[e]}}:Oh[e]={default:function(){return Ye.defaultProps[e]}}});const uR=ye({props:Oh,setup(e){const t=oe([]),{singleton:n}=sR(t,e);return{instances:t,singleton:n}},mounted(){var e;const n=this.$el.parentElement.querySelectorAll("[data-v-tippy]");this.instances=Array.from(n).map(r=>r._tippy).filter(Boolean),(e=this.singleton)===null||e===void 0||e.setInstances(this.instances)},render(){let e=this.$slots.default?this.$slots.default():[];return bt(()=>e)}}),cR={mounted(e,t,n){const r=typeof t.value=="string"?{content:t.value}:t.value||{},a=Object.keys(t.modifiers||{}),s=a.find(i=>i!=="arrow"),o=a.findIndex(i=>i==="arrow")!==-1;s&&(r.placement=r.placement||s),o&&(r.arrow=r.arrow!==void 0?r.arrow:!0),n.props&&n.props.onTippyShow&&(r.onShow=function(...i){var l;return(l=n.props)===null||l===void 0?void 0:l.onTippyShow(...i)}),n.props&&n.props.onTippyShown&&(r.onShown=function(...i){var l;return(l=n.props)===null||l===void 0?void 0:l.onTippyShown(...i)}),n.props&&n.props.onTippyHidden&&(r.onHidden=function(...i){var l;return(l=n.props)===null||l===void 0?void 0:l.onTippyHidden(...i)}),n.props&&n.props.onTippyHide&&(r.onHide=function(...i){var l;return(l=n.props)===null||l===void 0?void 0:l.onTippyHide(...i)}),n.props&&n.props.onTippyMount&&(r.onMount=function(...i){var l;return(l=n.props)===null||l===void 0?void 0:l.onTippyMount(...i)}),e.getAttribute("title")&&!r.content&&(r.content=e.getAttribute("title"),e.removeAttribute("title")),e.getAttribute("content")&&!r.content&&(r.content=e.getAttribute("content")),K2(e,r)},unmounted(e){e.$tippy?e.$tippy.destroy():e._tippy&&e._tippy.destroy()},updated(e,t){const n=typeof t.value=="string"?{content:t.value}:t.value||{};n.content||(n.content=null),e.getAttribute("title")&&!n.content&&(n.content=e.getAttribute("title"),e.removeAttribute("title")),e.getAttribute("content")&&!n.content&&(n.content=e.getAttribute("content")),e.$tippy?e.$tippy.setProps(n||{}):e._tippy&&e._tippy.setProps(n||{})}},dR={install(e,t={}){Ye.setDefaultProps(t.defaultProps||{}),e.directive(t.directive||"tippy",cR),e.component(t.component||"tippy",Q2),e.component(t.componentSingleton||"tippy-singleton",uR)}},fR=Ye.setDefaultProps;fR({ignoreAttributes:!0,plugins:[rR,tR,J8,K8]});const mX={name:"message-type-name",label:"Message type name"},vX={name:"instanceName",label:"Instance Name"},Ph={name:"name",label:"Endpoint Name"},Gs={name:"throughput",label:"Throughput",unit:"(msgs/s)",tooltip:"Throughput: The number of messages per second successfully processed by a receiving endpoint."},qs={name:"retries",label:"Scheduled retries",unit:"(msgs/s)",tooltip:"Scheduled retries: The number of messages per second scheduled for retries (immediate or delayed)."},Ks={name:"processingTime",label:"Processing time",unit:"(t)",tooltip:"Processing time: The time taken for a receiving endpoint to successfully process a message."},Qs={name:"criticalTime",label:"Critical time",unit:"(t)",tooltip:"Critical time: The elapsed time from when a message was sent, until it was successfully processed by a receiving endpoint."},Xs={name:"queueLength",label:"Queue length",unit:"(msgs)",tooltip:"Queue length: The number of messages waiting to be processed in the input queue(s) of the endpoint."},pR=["aria-label"],hR={class:"box-header with-status"},mR=["aria-label"],vR={style:{overflowWrap:"break-word"}},gR={key:0,"aria-label":"instances-connected-total",class:"endpoint-count"},yR={class:"no-side-padding endpoint-status"},_R={key:0,role:"status",class:"warning"},bR={class:"fa pa-warning"},wR={key:1,role:"status",class:"warning"},SR={class:"fa pa-monitoring-lost endpoints-overview"},TR={key:2,role:"status",class:"warning"},ER={key:3,role:"status",class:"warning"},xR={class:"badge badge-important ng-binding cursorpointer"},kR=["aria-label"],CR={class:"box-header"},AR={class:"no-side-padding"},DR={role:"text","aria-label":"sparkline",class:"no-side-padding sparkline-value"},MR={key:0},OR={key:1},PR=["aria-label"],$R={class:"box-header"},IR={class:"no-side-padding"},RR={role:"text","aria-label":"sparkline",class:"no-side-padding sparkline-value"},NR={key:0},LR={key:1},FR=["aria-label"],VR={class:"box-header"},YR={class:"no-side-padding"},WR={role:"text","aria-label":"sparkline",class:"no-side-padding sparkline-value"},HR={key:0},BR={key:1},jR=["aria-label"],UR={class:"box-header"},zR={class:"no-side-padding"},GR={role:"text","aria-label":"sparkline",class:"no-side-padding sparkline-value"},qR={key:0},KR={key:1},QR={key:2},XR=["aria-label"],ZR={class:"box-header"},JR={class:"no-side-padding"},e7={key:0,title:"No metrics received or endpoint is not configured to send metrics"},t7={key:1,title:"Unable to connect to monitoring server"},n7={key:2,class:"unit"},r7=ye({__name:"EndpointListRow",props:{endpoint:{}},setup(e){const t=e,n=nf(),r=Su(),a=G(()=>r.endpointListIsGrouped),s=G(()=>a.value?t.endpoint.endpoint:t.endpoint),o=G(()=>a.value?t.endpoint.shortName:s.value.name),i=oe(),{historyPeriod:l}=Et(n),c=G(()=>By(s.value.metrics.processingTime)),u=G(()=>By(s.value.metrics.criticalTime));return(d,p)=>{const m=Fi("tippy");return D(),L(Me,null,[A("div",{role:"gridcell","aria-label":f(Ph).name,class:"table-first-col endpoint-name name-overview"},[A("div",hR,[A("div",{"aria-label":o.value,class:"no-side-padding lead righ-side-ellipsis endpoint-details-link"},[ae(f(Q2),{"aria-label":s.value.name,delay:[700,0]},{content:de(()=>[A("p",vR,me(s.value.name),1)]),default:de(()=>[ae(f(Lt),{class:"cursorpointer hackToPreventSafariFromShowingTooltip","aria-label":"details-link",to:f(pe).monitoring.endpointDetails.link(s.value.name,f(l).pVal)},{default:de(()=>[_e(me(o.value),1)]),_:1},8,["to"])]),_:1},8,["aria-label"])],8,mR),s.value.connectedCount||s.value.disconnectedCount?Ot((D(),L("span",gR,[_e(" ("+me(s.value.connectedCount)+"/"+me(s.value.connectedCount+s.value.disconnectedCount)+")",1)])),[[m,"Endpoint instance(s): (connected/total)"]]):q("",!0),A("div",yR,[s.value.metrics!=null&&parseFloat(u.value.value)<0?(D(),L("span",_R,[Ot(A("i",bR,null,512),[[m,"Warning: endpoint currently has negative critical time, possibly because of a clock drift."]])])):q("",!0),s.value.isScMonitoringDisconnected?(D(),L("span",wR,[Ot(A("i",SR,null,512),[[m,"Unable to connect to monitoring server"]])])):q("",!0),s.value.isStale&&!i.value||!s.value.connectedCount?Ot((D(),L("span",TR,[ae(f(Lt),{to:f(pe).monitoring.endpointDetails.link(s.value.name,f(l).pVal,"instancesBreakdown"),class:"cursorpointer"},{default:de(()=>[...p[0]||(p[0]=[A("i",{role:"img","aria-label":"endpoint-no-data",class:"fa pa-endpoint-lost endpoints-overview"},null,-1)])]),_:1},8,["to"])])),[[m,"No data received from any instance"]]):q("",!0),s.value.errorCount?Ot((D(),L("span",ER,[s.value.errorCount?(D(),ge(f(Lt),{key:0,to:f(pe).failedMessage.group.link(s.value.serviceControlId),class:"warning cursorpointer"},{default:de(()=>[ae(pt,{icon:f(Zd),class:"endpoint-status-icon"},null,8,["icon"]),A("span",xR,me(s.value.errorCount),1)]),_:1},8,["to"])):q("",!0)])),[[m,s.value.errorCount+" failed messages associated with this endpoint. Click to see list."]]):q("",!0)])])],8,pR),A("div",{role:"gridcell","aria-label":f(Xs).name,class:"table-col"},[A("div",CR,[A("div",AR,[ae(ll,{role:"img","aria-label":f(Xs).name,type:"queue-length",isdurationgraph:!1,plotdata:s.value.metrics.queueLength,minimumyaxis:f(il).queueLength,avglabelcolor:"#EA7E00",metricsuffix:"MSGS"},null,8,["aria-label","plotdata","minimumyaxis"])]),A("div",DR,[_e(me(s.value.isStale==!0||s.value.isScMonitoringDisconnected==!0?"":f(op)(s.value.metrics.queueLength,0))+" ",1),s.value.isStale&&!s.value.isScMonitoringDisconnected?Ot((D(),L("strong",MR,[...p[1]||(p[1]=[_e("?",-1)])])),[[m,"No metrics received or endpoint is not configured to send metrics"]]):q("",!0),s.value.isScMonitoringDisconnected?Ot((D(),L("strong",OR,[...p[2]||(p[2]=[_e("?",-1)])])),[[m,"Unable to connect to monitoring server"]]):q("",!0)])])],8,kR),A("div",{role:"gridcell","aria-label":f(Gs).name,class:"table-col"},[A("div",$R,[A("div",IR,[ae(ll,{role:"img","aria-label":f(Gs).name,type:"throughput",isdurationgraph:!1,plotdata:s.value.metrics.throughput,minimumyaxis:f(il).throughput,avglabelcolor:"#176397",metricsuffix:"MSGS/S"},null,8,["aria-label","plotdata","minimumyaxis"])]),A("div",RR,[_e(me(s.value.isStale==!0||s.value.isScMonitoringDisconnected==!0?"":f(op)(s.value.metrics.throughput,2))+" ",1),s.value.isStale&&!s.value.isScMonitoringDisconnected?Ot((D(),L("strong",NR,[...p[3]||(p[3]=[_e("?",-1)])])),[[m,"No metrics received or endpoint is not configured to send metrics"]]):q("",!0),s.value.isScMonitoringDisconnected?Ot((D(),L("strong",LR,[...p[4]||(p[4]=[_e("?",-1)])])),[[m,"Unable to connect to monitoring server"]]):q("",!0)])])],8,PR),A("div",{role:"gridcell","aria-label":f(qs).name,class:"table-col"},[A("div",VR,[A("div",YR,[ae(ll,{role:"img","aria-label":f(qs).name,type:"retries",isdurationgraph:!1,plotdata:s.value.metrics.retries,minimumyaxis:f(il).retries,avglabelcolor:"#CC1252",metricsuffix:"MSGS/S"},null,8,["aria-label","plotdata","minimumyaxis"])]),A("div",WR,[_e(me(s.value.isStale==!0||s.value.isScMonitoringDisconnected==!0?"":f(op)(s.value.metrics.retries,2))+" ",1),s.value.isStale&&!s.value.isScMonitoringDisconnected?Ot((D(),L("strong",HR,[...p[5]||(p[5]=[_e("?",-1)])])),[[m,"No metrics received or endpoint is not configured to send metrics"]]):q("",!0),s.value.isScMonitoringDisconnected?Ot((D(),L("strong",BR,[...p[6]||(p[6]=[_e("?",-1)])])),[[m,"Unable to connect to monitoring server"]]):q("",!0)])])],8,FR),A("div",{role:"gridcell","aria-label":f(Ks).name,class:"table-col"},[A("div",UR,[A("div",zR,[ae(ll,{role:"img","aria-label":f(Ks).name,type:"processing-time",isdurationgraph:!0,plotdata:s.value.metrics.processingTime,minimumyaxis:f(il).processingTime,avglabelcolor:"#258135"},null,8,["aria-label","plotdata","minimumyaxis"])]),A("div",GR,[_e(me(s.value.isStale==!0||s.value.isScMonitoringDisconnected==!0?"":c.value.value)+" ",1),s.value.isStale&&!s.value.isScMonitoringDisconnected?Ot((D(),L("strong",qR,[...p[7]||(p[7]=[_e("?",-1)])])),[[m,"No metrics received or endpoint is not configured to send metrics"]]):q("",!0),s.value.isScMonitoringDisconnected?Ot((D(),L("strong",KR,[...p[8]||(p[8]=[_e("?",-1)])])),[[m,"Unable to connect to monitoring server"]]):q("",!0),!s.value.isStale&&!s.value.isScMonitoringDisconnected?(D(),L("span",QR,me(c.value.unit),1)):q("",!0)])])],8,jR),A("div",{role:"gridcell","aria-label":f(Qs).name,class:"table-col"},[A("div",ZR,[A("div",JR,[ae(ll,{role:"img","aria-label":f(Qs).name,type:"critical-time",isdurationgraph:!0,plotdata:s.value.metrics.criticalTime,minimumyaxis:f(il).criticalTime,avglabelcolor:"#2700CB"},null,8,["aria-label","plotdata","minimumyaxis"])]),A("div",{role:"text","aria-label":"sparkline",class:xe(["no-side-padding sparkline-value",{negative:parseFloat(u.value.value)<0}])},[_e(me(s.value.isStale==!0||s.value.isScMonitoringDisconnected==!0?"":u.value.value)+" ",1),s.value.isStale&&!s.value.isScMonitoringDisconnected?(D(),L("strong",e7,"?")):q("",!0),s.value.isScMonitoringDisconnected?(D(),L("strong",t7,"?")):q("",!0),!s.value.isStale&&!s.value.isScMonitoringDisconnected?(D(),L("span",n7,me(u.value.unit),1)):q("",!0)],2)])],8,XR)],64)}}}),l0=Ke(r7,[["__scopeId","data-v-2f01e4d1"]]),a7={role:"table","aria-label":"endpoint-list"},s7={role:"row","aria-label":"column-headers",class:"table-head-row"},o7={key:0,role:"rowgroup","aria-label":"grouped-endpoints"},i7=["aria-labelledby"],l7=["id"],u7=["aria-labelledby"],c7=["aria-label"],d7={key:1,role:"rowgroup","aria-label":"ungrouped-endpoints"},f7=["aria-label"],p7=ye({__name:"EndpointList",setup(e){const t=Su(),{sortBy:n}=Et(t);return(r,a)=>(D(),L("section",a7,[A("div",s7,[ae(Fo,{name:f(Ph).name,label:f(Ph).label,class:"table-first-col",modelValue:f(n),"onUpdate:modelValue":a[0]||(a[0]=s=>Qe(n)?n.value=s:null),sortable:"","default-ascending":""},null,8,["name","label","modelValue"]),ae(Fo,{name:f(Xs).name,label:f(Xs).label,unit:f(Xs).unit,class:"table-col",modelValue:f(n),"onUpdate:modelValue":a[1]||(a[1]=s=>Qe(n)?n.value=s:null),sortable:"","sort-by":f(t).endpointListIsGrouped?"":f(Xs).name},{help:de(()=>[_e(me(f(Xs).tooltip),1)]),_:1},8,["name","label","unit","modelValue","sort-by"]),ae(Fo,{name:f(Gs).name,label:f(Gs).label,unit:f(Gs).unit,class:"table-col",modelValue:f(n),"onUpdate:modelValue":a[2]||(a[2]=s=>Qe(n)?n.value=s:null),sortable:"","sort-by":f(t).endpointListIsGrouped?"":f(Gs).name},{help:de(()=>[_e(me(f(Gs).tooltip),1)]),_:1},8,["name","label","unit","modelValue","sort-by"]),ae(Fo,{name:f(qs).name,label:f(qs).label,unit:f(qs).unit,class:"table-col",modelValue:f(n),"onUpdate:modelValue":a[3]||(a[3]=s=>Qe(n)?n.value=s:null),sortable:"","sort-by":f(t).endpointListIsGrouped?"":f(qs).name},{help:de(()=>[_e(me(f(qs).tooltip),1)]),_:1},8,["name","label","unit","modelValue","sort-by"]),ae(Fo,{name:f(Ks).name,label:f(Ks).label,unit:f(Ks).unit,class:"table-col",modelValue:f(n),"onUpdate:modelValue":a[4]||(a[4]=s=>Qe(n)?n.value=s:null),sortable:"","sort-by":f(t).endpointListIsGrouped?"":f(Ks).name},{help:de(()=>[_e(me(f(Ks).unit),1)]),_:1},8,["name","label","unit","modelValue","sort-by"]),ae(Fo,{name:f(Qs).name,label:f(Qs).label,unit:f(Qs).unit,class:"table-col",modelValue:f(n),"onUpdate:modelValue":a[5]||(a[5]=s=>Qe(n)?n.value=s:null),sortable:"","sort-by":f(t).endpointListIsGrouped?"":f(Qs).name},{help:de(()=>[_e(me(f(Qs).tooltip),1)]),_:1},8,["name","label","unit","modelValue","sort-by"])]),A("div",null,[f(t).endpointListIsGrouped?(D(),L("div",o7,[(D(!0),L(Me,null,Xe(f(t).grouping.groupedEndpoints,s=>(D(),L("div",{role:"row","aria-labelledby":s.group,class:"row",key:s.group},[A("div",{role:"rowheader",class:"endpoint-group-title",id:s.group},me(s.group),9,l7),A("div",{role:"group","aria-labelledby":s.group},[(D(!0),L(Me,null,Xe(s.endpoints,o=>(D(),L("div",{role:"row","aria-label":o.shortName,"aria-description":"endpoint-row",class:"row box endpoint-row",key:o.endpoint.name},[ae(l0,{endpoint:o},null,8,["endpoint"])],8,c7))),128))],8,u7)],8,i7))),128))])):(D(),L("div",d7,[(D(!0),L(Me,null,Xe(f(t).getEndpointList,s=>(D(),L("div",{role:"row","aria-label":s.name,class:"endpoint-row",key:s.name},[ae(l0,{endpoint:s},null,8,["endpoint"])],8,f7))),128))]))])]))}}),h7=Ke(p7,[["__scopeId","data-v-549c8bea"]]),m7={},v7={class:"row"};function g7(e,t){return D(),L("div",v7,[...t[0]||(t[0]=[ax('

No monitoring data available

The monitoring service is active but no data is being returned.

This may be due to one or more of the following causes:

  • No endpoints running.
  • No endpoints with monitoring plugin enabled.
  • Endpoints sending data to incorrect queue or monitoring server listening.
',1)])])}const y7=Ke(m7,[["render",g7],["__scopeId","data-v-a0ed2e86"]]),_7={role:"search","aria-label":"filter",class:"filter-input"},b7=["placeholder","aria-label"],w7=ye({__name:"FilterInput",props:Ya({placeholder:{default:"Filter by name..."},ariaLabel:{default:"Filter by name"}},{modelValue:{required:!0},modelModifiers:{}}),emits:Ya(["focus","blur"],["update:modelValue"]),setup(e,{expose:t,emit:n}){const r=Ms(e,"modelValue"),a=n,s=e,o=G({get(){return r.value},set(u){l(u)}}),i=ft("textField"),l=r$(u=>{r.value=u},600);t({focus:c});function c(){i.value?.focus()}return(u,d)=>(D(),L("div",_7,[ae(pt,{icon:f(e5),class:"icon"},null,8,["icon"]),Ot(A("input",{ref_key:"textField",ref:i,type:"search",onFocus:d[0]||(d[0]=()=>a("focus")),onBlur:d[1]||(d[1]=()=>a("blur")),placeholder:s.placeholder,"aria-label":s.ariaLabel,class:"form-control filter-input","onUpdate:modelValue":d[2]||(d[2]=p=>o.value=p)},null,40,b7),[[Z_,o.value]])]))}}),sf=Ke(w7,[["__scopeId","data-v-31c05a4f"]]),S7={"aria-label":"group-by",class:"dropdown"},T7={type:"button",class:"btn btn-dropdown dropdown-toggle sp-btn-menu",id:"dropdownMenu1","aria-label":"group-by-btn","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},E7={role:"list",class:"dropdown-menu","aria-labelledby":"group-by-header"},x7=["onClick"],k7=ye({__name:"MonitoringGroupBy",setup(e){const t=Su(),n=k2().cookies,r=oe(t.grouping);async function a(i){s(i),await t.updateSelectedGrouping(i)}function s(i){n.set("selected_group_size",i.toString())}function o(){const i=n.get("selected_group_size");i!=null&&!isNaN(parseInt(i))?a(parseInt(i)):a(0)}return ut(()=>{o()}),(i,l)=>{const c=Fi("tippy");return Ot((D(),L("div",S7,[l[2]||(l[2]=A("label",{id:"group-by-header",class:"control-label"},"Group by:",-1)),A("button",T7,me(r.value.selectedGrouping===0?"no grouping":"max. "+r.value.selectedGrouping+" segments"),1),A("ul",E7,[A("li",null,[A("a",{href:"#",onClick:l[0]||(l[0]=dn(u=>a(0),["prevent"]))},"no grouping")]),l[1]||(l[1]=A("li",{role:"separator",class:"divider"},null,-1)),(D(!0),L(Me,null,Xe(r.value.groupSegments,u=>(D(),L("li",{key:u},[A("a",{href:"#",onClick:dn(d=>a(u),["prevent"])},"max. "+me(u)+" segments",9,x7)]))),128))])])),[[c,"Endpoint grouping will take '.' in endpoint names to delimit segments. Grouping endpoints will disable some list sorting."]])}}}),C7=Ke(k7,[["__scopeId","data-v-97697e23"]]),A7={"aria-label":"history-period-list",class:"nav nav-pills period-selector"},D7=["aria-label","aria-selected"],M7=["onClick"],O7=ye({__name:"MonitoringHistoryPeriod",setup(e){const t=nf(),n=t.allPeriods,{historyPeriod:r}=Et(t);async function a(o){await t.setHistoryPeriod(o.pVal.toString())}const s=cu();return Ue(()=>s.query.historyPeriod,async()=>{await t.setHistoryPeriod(s?.query?.historyPeriod?.toString())},{immediate:!0}),(o,i)=>{const l=Fi("tippy");return D(),L("ul",A7,[(D(!0),L(Me,null,Xe(f(n),c=>Ot((D(),L("li",{"data-bs-placement":"top",key:c.pVal,"aria-label":c.pVal.toString(),class:xe({active:c.pVal===f(r).pVal,notselected:c.pVal!==f(r).pVal}),"aria-selected":c.pVal===f(r).pVal},[A("a",{href:"#",onClick:dn(u=>a(c),["prevent"])},me(c.text),9,M7)],10,D7)),[[l,c.refreshIntervalText]])),128))])}}}),P7=Ke(O7,[["__scopeId","data-v-2f8db728"]]),$7={class:"filter-group filter-monitoring"},I7=ye({__name:"MonitoringFilter",setup(e){const t=Su();return(n,r)=>(D(),L("div",$7,[ae(P7),ae(C7),ae(sf,{modelValue:f(t).filterString,"onUpdate:modelValue":r[0]||(r[0]=a=>f(t).filterString=a)},null,8,["modelValue"])]))}}),R7=Ke(I7,[["__scopeId","data-v-802936b1"]]),of=Qn("ConfigurationStore",()=>{const e=oe(null),t=vn(),{serviceControlUrl:n}=Et(t),r=G(()=>e.value?.mass_transit_connector!==void 0);async function a(){if(!n.value)return;const s=await t.fetchFromServiceControl("configuration");e.value=await s.json()}return Ue(n,a,{immediate:!0}),{configuration:e,refresh:a,isMassTransitConnected:r}}),N7={class:"row monitoring-head"},L7={class:"col-sm-8 no-side-padding toolbar-menus"},F7={key:0,class:"col-12"},V7=ye({__name:"MonitoringHead",setup(e){const t=of(),{isMassTransitConnected:n}=Et(t);return(r,a)=>(D(),L("div",N7,[a[1]||(a[1]=A("div",{class:"col-sm-4 no-side-padding list-section"},[A("h1",null,"Endpoints overview")],-1)),A("div",L7,[ae(R7)]),f(n)?(D(),L("div",F7,[...a[0]||(a[0]=[A("div",{class:"alert alert-info"},"MassTransit endpoints are currently not supported by monitoring functionality and will not show in this view.",-1)])])):q("",!0)]))}}),Y7=Ke(V7,[["__scopeId","data-v-2e8a082d"]]),W7={class:"container monitoring-view"},H7=ye({__name:"MonitoringView",setup(e){const t=Su(),n=nf(),{historyPeriod:r}=Et(n),a=G(()=>t.endpointListIsEmpty);let s;Ue(r,async i=>{await o(i.refreshIntervalVal)});async function o(i){s&&window.clearInterval(s),await t.updateEndpointList(),s=window.setInterval(async()=>{await t.updateEndpointList()},i)}return xn(()=>{s&&window.clearInterval(s)}),ut(async()=>{await t.updateFilterString(),await o(n.historyPeriod.refreshIntervalVal)}),(i,l)=>(D(),L("div",W7,[ae(zi,null,{default:de(()=>[ae(Ui,null,{default:de(()=>[a.value?(D(),ge(y7,{key:0})):q("",!0),a.value?q("",!0):(D(),L(Me,{key:1},[ae(Y7),ae(h7)],64))]),_:1})]),_:1})]))}}),B7={class:"container"},j7={class:"row"},U7={class:"col-12"},z7={class:"events-view"},G7=ye({__name:"EventsView",setup(e){const t=oe({data:[],totalCount:0});return(n,r)=>(D(),ge(zi,null,{default:de(()=>[ae(Ui,null,{default:de(()=>[A("div",B7,[r[1]||(r[1]=A("div",{class:"row"},[A("div",{class:"col-12"},[A("h1",null,"Events")])],-1)),A("div",j7,[A("div",U7,[A("div",z7,[ae(yb,{"api-url":"eventlogitems",modelValue:t.value,"onUpdate:modelValue":r[0]||(r[0]=a=>t.value=a),"auto-refresh-seconds":5,"show-items-per-page":!0,"items-per-page":20},{data:de(()=>[(D(!0),L(Me,null,Xe(t.value.data,a=>(D(),ge(S2,{eventLogItem:a,key:a.id},null,8,["eventLogItem"]))),128))]),_:1},8,["modelValue"])])])])])]),_:1})]),_:1}))}});var ir=(e=>(e.None="none",e.Warning="warning",e.Danger="danger",e))(ir||{});const q7=ye({__name:"ExclamationMark",props:{type:{default:ir.None}},setup(e){const t=e;return(n,r)=>t.type!==f(ir).None?(D(),ge(pt,{key:0,icon:f(v5),class:xe(t.type===f(ir).Danger?"danger":"warning")},null,8,["icon","class"])):q("",!0)}}),Xo=Ke(q7,[["__scopeId","data-v-678b2a06"]]);function K7(e){switch(e){case ta.None:return ir.None;case ta.Warning:return ir.Warning;case ta.Danger:return ir.Danger}}function gX(e,t,n){const r=new Blob([e],{type:t}),a=URL.createObjectURL(r);X2(a,t,n)}async function Q7(e,t,n){const r=await e.blob(),a=URL.createObjectURL(new Blob([r],{type:t}));X2(a,t,n)}function X2(e,t,n){const r=document.createElement("a");r.href=e,r.setAttribute("download",n),r.dataset.downloadurl=[t,r.download,r.href].join(":"),r.style.display="none",document.body.appendChild(r),r.click(),document.body.removeChild(r),setTimeout(()=>{URL.revokeObjectURL(r.href)},1500)}const X7=/%([0-9A-Fa-f]{2})/g,Z7=/[^\x20-\x7e\xa0-\xff]/g,J7=/\\([\u0000-\u007f])/g,u0=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,eN=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,tN=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/,nN=e=>String(e).replace(Z7,"?");class rN{constructor(t,n){this.type=t,this.parameters=n}}const aN=(e,t)=>String.fromCharCode(Number.parseInt(t,16));function sN(e){const t=eN.exec(e);if(!t)throw new TypeError("invalid extended field value");const n=t[1].toLowerCase(),r=t[2];let a;switch(n){case"iso-8859-1":a=nN(r.replace(X7,aN));break;case"utf-8":try{a=decodeURIComponent(r)}catch{throw new TypeError("invalid encoded utf-8")}break;default:throw new TypeError("unsupported charset in extended field")}return a}function oN(e){let t=tN.exec(e);if(!t)throw new TypeError("invalid type format");let n=t[0].length;const r=t[1].toLowerCase();let a;const s=[],o={};let i;for(n=u0.lastIndex=t[0].slice(-1)===";"?n-1:n;t=u0.exec(e);){if(t.index!==n)throw new TypeError("invalid parameter format");if(n+=t[0].length,a=t[1].toLowerCase(),i=t[2],s.indexOf(a)!==-1)throw new TypeError("invalid duplicate parameter");if(s.push(a),a.indexOf("*")+1===a.length){a=a.slice(0,-1),i=sN(i),o[a]=i;continue}typeof o[a]!="string"&&(i[0]==='"'&&(i=i.slice(1,i.length-1).replace(J7,"$1")),o[a]=i)}if(n!==-1&&n!==e.length)throw new TypeError("invalid parameter format");return new rN(r,o)}class iN{constructor(t){this.basePath=t,this.serviceControlStore=vn()}serviceControlStore;async endpoints(){const[,t]=await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/endpoints`);return t}async updateIndicators(t){await this.serviceControlStore.postToServiceControl(`${this.basePath}/endpoints/update`,t)}async test(){const[,t]=await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/test`);return t}async setting(){const[,t]=await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/info`);return t}async reportAvailable(){const[,t]=await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/report/available`);return t}async downloadReport(){const t=await this.serviceControlStore.fetchFromServiceControl(`${this.basePath}/report/file?spVersion=${encodeURIComponent(du().version)}`);if(t.ok){let n="throughput-report.json";const r=t.headers.get("Content-Type")??"application/json",a=t.headers.get("Content-Disposition");try{a!=null&&(n=oN(a).parameters.filename)}catch{}return await Q7(t,r,n),n}return""}async getMasks(){const[,t]=await this.serviceControlStore.fetchTypedFromServiceControl(`${this.basePath}/settings/masks`);return t}async updateMasks(t){await this.serviceControlStore.postToServiceControl(`${this.basePath}/settings/masks/update`,t)}}const Z2=()=>new iN("licensing");var Ht=(e=>(e.None="None",e.MSMQ="MSMQ",e.AzureStorageQueue="AzureStorageQueue",e.NetStandardAzureServiceBus="AzureServiceBus",e.LearningTransport="LearningTransport",e.RabbitMQ="RabbitMQ",e.SQLServer="SqlTransport",e.AmazonSQS="AmazonSQS",e.PostgreSQL="PostgreSql",e))(Ht||{});const J2="5.4.0";function fv(){const{store:e}=wu();return e.serviceControlIsGreaterThan(J2)}const lN=Qn("ThroughputStore",()=>{const e=vn(),{isMonitoringEnabled:t}=Et(e),n=oe(null),r=fv(),a=Z2(),s=async()=>{r.value&&(n.value=await a.test())},o=G(()=>l.value&&!n.value?.broker_connection_result.connection_successful||!n.value?.audit_connection_result.connection_successful?!0:t.value?!n.value?.monitoring_connection_result.connection_successful:!1),i=G(()=>n.value==null?Ht.None:n.value.transport),l=G(()=>{switch(i.value){case Ht.None:case Ht.MSMQ:case Ht.AzureStorageQueue:case Ht.LearningTransport:return!1;default:return!0}}),c=()=>{switch(i.value){case Ht.AzureStorageQueue:return"Azure Storage Queue";case Ht.NetStandardAzureServiceBus:return"Azure Service Bus";case Ht.MSMQ:return"MSMQ";case Ht.LearningTransport:return"Learning Transport";case Ht.RabbitMQ:return"RabbitMQ";case Ht.SQLServer:return"Sql Server";case Ht.AmazonSQS:return"Amazon SQS";case Ht.PostgreSQL:return"PostgreSQL"}},u=()=>{switch(i.value){case Ht.AzureStorageQueue:case Ht.LearningTransport:case Ht.MSMQ:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-msmq-azure-storage-queues";case Ht.NetStandardAzureServiceBus:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-azure-service-bus";case Ht.RabbitMQ:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-rabbitmq";case Ht.SQLServer:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-sqlserver";case Ht.AmazonSQS:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-amazon-sqs";case Ht.PostgreSQL:return"https://docs.particular.net/servicepulse/usage-config#connection-setup-postgresql"}};return Ue(r,d=>{d&&s()}),{testResults:n,refresh:s,transportNameForInstructions:c,transportDocsLinkForInstructions:u,isBrokerTransport:l,hasErrors:o,transport:i}}),e3=bu("throughput",lN,3600*1e3),uN=Qn("RedirectsStore",()=>{const e=Qt({data:[],queues:[],total:0}),t=vn();async function n(){const[,o]=await t.fetchTypedFromServiceControl("errors/queues/addresses");e.queues=o.map(i=>i.physical_address)}async function r(){const[o,i]=await t.fetchTypedFromServiceControl("redirects");e.total=parseInt(o.headers.get("Total-Count")||"0"),e.data=i}async function a(){await Promise.all([r(),n()])}async function s(o){const i=await t.postToServiceControl(`errors/queues/${o}/retry`);return{message:i.ok?"success":`error:${i.statusText}`,status:i.status,statusText:i.statusText}}return{refresh:a,redirects:e,retryPendingMessagesForQueue:s}}),cN={class:"container"},dN={class:"row"},fN={class:"col-sm-12"},pN={class:"nav tabs"},hN=ye({__name:"ConfigurationView",setup(e){const{store:t}=e3(),{hasErrors:n}=Et(t),{store:r}=ga(),a=r.connectionState,s=uN(),o=ji(),{licenseStatus:i}=o;ut(async()=>{if(l.value){const d=Os();if(d.currentRoute.value.name!==c.name){await d.push({path:c.path});return}}s.refresh()});const l=G(()=>!a.connected&&!a.connectedRecently),c=jc({to:pe.configuration.connections.link}).route.value;function u(d){l.value&&d.preventDefault()}return(d,p)=>{const m=sr("RouterLink"),_=sr("RouterView");return D(),L("div",cN,[p[7]||(p[7]=A("div",{class:"row"},[A("div",{class:"col-sm-12"},[A("h1",null,"Configuration")])],-1)),A("div",dN,[A("div",fN,[A("div",pN,[A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.license.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"license"},[ae(m,{to:f(pe).configuration.license.link},{default:de(()=>[...p[0]||(p[0]=[_e("License",-1)])]),_:1},8,["to"]),ae(Xo,{type:f(K7)(f(i).warningLevel)},null,8,["type"])],34),A("h5",{class:xe([{active:f(Vt)(f(pe).throughput.setup.root)||f(Vt)(f(pe).throughput.setup.mask.link)||f(Vt)(f(pe).throughput.setup.diagnostics.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"usage-setup"},[ae(m,{to:f(pe).throughput.setup.root},{default:de(()=>[...p[1]||(p[1]=[_e("Usage Setup",-1)])]),_:1},8,["to"]),f(n)?(D(),ge(Xo,{key:0,type:f(ir).Danger},null,8,["type"])):q("",!0)],34),f(i).isExpired?(D(),L("h5",{key:1,class:xe([{active:f(Vt)(f(pe).configuration.connections.link)},"nav-item"]),role:"tab","aria-label":"connections"},[ae(m,{to:f(pe).configuration.connections.link},{default:de(()=>[p[6]||(p[6]=_e(" Connections ",-1)),f(r).displayConnectionsWarning?(D(),ge(Xo,{key:0,type:f(ir).Danger},null,8,["type"])):q("",!0)]),_:1},8,["to"])],2)):(D(),L(Me,{key:0},[A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.massTransitConnector.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"mass-transit-connector"},[ae(m,{to:f(pe).configuration.massTransitConnector.link},{default:de(()=>[...p[2]||(p[2]=[_e("MassTransit Connector",-1)])]),_:1},8,["to"])],34),A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.healthCheckNotifications.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"health-check-notifications"},[ae(m,{to:f(pe).configuration.healthCheckNotifications.link},{default:de(()=>[...p[3]||(p[3]=[_e("Health Check Notifications",-1)])]),_:1},8,["to"])],34),A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.retryRedirects.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"retry-redirects"},[ae(m,{to:f(pe).configuration.retryRedirects.link},{default:de(()=>[_e("Retry Redirects ("+me(f(s).redirects.total)+")",1)]),_:1},8,["to"])],34),A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.connections.link)},"nav-item"]),role:"tab","aria-label":"connections"},[ae(m,{to:f(pe).configuration.connections.link},{default:de(()=>[p[4]||(p[4]=_e(" Connections ",-1)),f(r).displayConnectionsWarning?(D(),ge(Xo,{key:0,type:f(ir).Danger},null,8,["type"])):q("",!0)]),_:1},8,["to"])],2),A("h5",{class:xe([{active:f(Vt)(f(pe).configuration.endpointConnection.link),disabled:l.value},"nav-item"]),onClickCapture:u,role:"tab","aria-label":"endpoint-connection"},[ae(m,{to:f(pe).configuration.endpointConnection.link},{default:de(()=>[...p[5]||(p[5]=[_e("Endpoint Connection",-1)])]),_:1},8,["to"])],34)],64))])])]),ae(_)])}}}),mN={class:"row"},vN={class:"col-sm-12"},gN={class:"row box box-no-click"},yN={class:"col-sm-12"},_N={class:"row box-header"},bN={class:"col-sm-12"},wN={class:"lead hard-wrap",role:"status"},SN=ye({__name:"NoData",props:{message:{}},setup(e){const t=e;return(n,r)=>(D(),L("div",mN,[A("div",vN,[A("div",gN,[A("div",yN,[A("div",_N,[A("div",bN,[A("p",wN,me(t.message),1),Ee(n.$slots,"default",{},()=>[r[0]||(r[0]=A("p",null," ",-1))],!0)])])])])])]))}}),TN=Ke(SN,[["__scopeId","data-v-bad811e7"]]);var EN={prefix:"far",iconName:"clock",icon:[512,512,[128339,"clock-four"],"f017","M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"]},xN={prefix:"far",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z"]},yX=xN,_X={prefix:"far",iconName:"copy",icon:[448,512,[],"f0c5","M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z"]};function kN(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),a,s=[],o;try{for(;(t===void 0||t-- >0)&&!(a=r.next()).done;)s.push(a.value)}catch(i){o={error:i}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return s}var t3=(function(){function e(t,n,r){this.r=0,this.g=0,this.b=0,this.set(t,n,r)}return e.prototype.set=function(t,n,r){this.r=this.clamp(t),this.g=this.clamp(n),this.b=this.clamp(r)},e.prototype.hueRotate=function(t){t===void 0&&(t=0),t=t/180*Math.PI;var n=Math.sin(t),r=Math.cos(t);this.multiply([.213+r*.787-n*.213,.715-r*.715-n*.715,.072-r*.072+n*.928,.213-r*.213+n*.143,.715+r*.285+n*.14,.072-r*.072-n*.283,.213-r*.213-n*.787,.715-r*.715+n*.715,.072+r*.928+n*.072])},e.prototype.grayscale=function(t){t===void 0&&(t=1),this.multiply([.2126+.7874*(1-t),.7152-.7152*(1-t),.0722-.0722*(1-t),.2126-.2126*(1-t),.7152+.2848*(1-t),.0722-.0722*(1-t),.2126-.2126*(1-t),.7152-.7152*(1-t),.0722+.9278*(1-t)])},e.prototype.sepia=function(t){t===void 0&&(t=1),this.multiply([.393+.607*(1-t),.769-.769*(1-t),.189-.189*(1-t),.349-.349*(1-t),.686+.314*(1-t),.168-.168*(1-t),.272-.272*(1-t),.534-.534*(1-t),.131+.869*(1-t)])},e.prototype.saturate=function(t){t===void 0&&(t=1),this.multiply([.213+.787*t,.715-.715*t,.072-.072*t,.213-.213*t,.715+.285*t,.072-.072*t,.213-.213*t,.715-.715*t,.072+.928*t])},e.prototype.multiply=function(t){var n=this.clamp(this.r*t[0]+this.g*t[1]+this.b*t[2]),r=this.clamp(this.r*t[3]+this.g*t[4]+this.b*t[5]),a=this.clamp(this.r*t[6]+this.g*t[7]+this.b*t[8]);this.r=n,this.g=r,this.b=a},e.prototype.brightness=function(t){t===void 0&&(t=1),this.linear(t)},e.prototype.contrast=function(t){t===void 0&&(t=1),this.linear(t,-(.5*t)+.5)},e.prototype.linear=function(t,n){t===void 0&&(t=1),n===void 0&&(n=0),this.r=this.clamp(this.r*t+n*255),this.g=this.clamp(this.g*t+n*255),this.b=this.clamp(this.b*t+n*255)},e.prototype.invert=function(t){t===void 0&&(t=1),this.r=this.clamp((t+this.r/255*(1-2*t))*255),this.g=this.clamp((t+this.g/255*(1-2*t))*255),this.b=this.clamp((t+this.b/255*(1-2*t))*255)},e.prototype.hsl=function(){var t=this.r/255,n=this.g/255,r=this.b/255,a=Math.max(t,n,r),s=Math.min(t,n,r),o=0,i=0,l=(a+s)/2;if(a===s)return{h:0,s:0,l:l*100};var c=a-s;return i=l>.5?c/(2-a-s):c/(a+s),a===t?o=(n-r)/c+(nthis.options.acceptanceLossPercentage;){var o=[50,20,3750,50,100,100],i=this.spsa({A:t,a:r,c:n,values:o,maxTriesInLoop:1e3});if(i.loss=this.options.maxChecks)break}return Object.assign({},a,{called:s})},e.prototype.solveNarrow=function(t){var n=t.loss,r=2,a=n+1,s=[.25*a,.25*a,a,.25*a,.2*a,.2*a];return this.spsa({A:n,a:s,c:r,values:t.values,maxTriesInLoop:500,called:t.called})},e.prototype.fixValueByFilterIDX=function(t,n){var r=100;return n===2?r=7500:(n===4||n===5)&&(r=200),n===3?t>r?t%=r:t<0&&(t=r+t%r):t<0?t=0:t>r&&(t=r),t},e.prototype.spsa=function(t){for(var n=t.A,r=t.a,a=t.c,s=t.values,o=t.maxTriesInLoop,i=o===void 0?500:o,l=t.called,c=l===void 0?0:l,u=1,d=.16666666666666666,p=null,m=1/0,_=new Array(6),y=new Array(6),b=new Array(6),h=6,g=0;g.5?1:-1,y[v]=s[v]+w*_[v],b[v]=s[v]-w*_[v];for(var k=this.loss(y)-this.loss(b),v=0;v(D(),L("div",MN,[A("div",ON,[A("div",PN,[A("div",$N,[A("div",IN,[A("div",RN,[A("p",NN,me(e.customCheck.failure_reason),1),A("div",LN,[A("div",FN,[A("p",VN,[A("span",YN,[ae(pt,{icon:f(_u),class:"icon"},null,8,["icon"]),_e(" Check: "+me(e.customCheck.custom_check_id),1)]),A("span",WN,[ae(pt,{icon:f(m5),class:"icon"},null,8,["icon"]),_e(" Category: "+me(e.customCheck.category),1)]),A("span",HN,[A("i",{"aria-hidden":"true",class:"fa pa-endpoint",style:Gt({filter:f(n)})},null,4),_e(" Endpoint: "+me(e.customCheck.originating_endpoint.name),1)]),A("span",BN,[ae(pt,{icon:f(f5),class:"icon"},null,8,["icon"]),_e(" Host: "+me(e.customCheck.originating_endpoint.host),1)]),A("span",jN,[ae(pt,{icon:f(EN),class:"icon"},null,8,["icon"]),a[1]||(a[1]=_e(" Last checked: ",-1)),ae(dw,{"date-utc":e.customCheck.reported_at,role:"note","aria-label":"custom-check-reported-date"},null,8,["date-utc"])])])])])])])]),A("div",null,[A("button",{type:"button",class:"btn btn-default",title:"Dismiss this custom check so it doesn't show up as an alert",role:"button","aria-label":"custom-check-dismiss",onClick:a[0]||(a[0]=s=>f(t).dismissCustomCheck(e.customCheck.id))},"Dismiss")])])])]))}}),zN=Ke(UN,[["__scopeId","data-v-b3e3b1e3"]]),GN={class:"container"},qN={name:"custom_checks"},KN={key:1,class:"row",role:"table","aria-label":"custom-check-list"},QN={class:"col-sm-12"},XN={class:"row"},ZN=ye({__name:"CustomChecksView",setup(e){const{store:t}=tf(),{pageNumber:n,failingCount:r,failedChecks:a}=Et(t);return(s,o)=>(D(),L("div",GN,[o[1]||(o[1]=A("div",{class:"",row:"row"},[A("div",{class:"col-sm-12 padded"},[A("h1",null,"Custom checks")])],-1)),A("section",qN,[f(r)===0?(D(),ge(TN,{key:0,message:"No failed custom checks",role:"note","aria-label":"customcheck-message"})):(D(),L("div",KN,[A("div",QN,[(D(!0),L(Me,null,Xe(f(a),i=>(D(),ge(zN,{key:i.id,"custom-check":i},null,8,["custom-check"]))),128)),A("div",XN,[ae(pb,{"items-per-page":10,"total-count":f(r),modelValue:f(n),"onUpdate:modelValue":o[0]||(o[0]=i=>Qe(n)?n.value=i:null),role:"row","aria-label":"custom-check-pagination"},null,8,["total-count","modelValue"])])])]))])]))}}),JN={class:"container"},eL={class:"row"},tL={key:0,class:"col-12"},nL={class:"row"},rL={class:"col-sm-12"},aL={class:"tabs",role:"tablist"},sL={class:"filter-group"},oL=ye({__name:"HeartbeatsView",setup(e){const{store:t}=rv(),{unhealthyEndpoints:n,healthyEndpoints:r,endpointFilterString:a}=Et(t),s=of(),{isMassTransitConnected:o}=Et(s);return(i,l)=>(D(),ge(zi,null,{default:de(()=>[ae(Ui,null,{default:de(()=>[A("div",JN,[A("div",eL,[l[2]||(l[2]=A("div",{class:"col-12"},[A("h1",null,"Endpoint Heartbeats")],-1)),f(o)?(D(),L("div",tL,[...l[1]||(l[1]=[A("div",{class:"alert alert-info"},"MassTransit endpoints are currently not supported by heartbeat functionality and will not show in this view.",-1)])])):q("",!0)]),A("div",nL,[A("div",rL,[A("div",aL,[A("div",null,[A("h5",{class:xe({active:f(Vt)(f(pe).heartbeats.unhealthy.link)})},[ae(f(Lt),{role:"tab","aria-selected":f(Vt)(f(pe).heartbeats.unhealthy.link),to:f(pe).heartbeats.unhealthy.link},{default:de(()=>[_e(" Unhealthy Endpoints ("+me(f(n).length)+") ",1)]),_:1},8,["aria-selected","to"])],2),A("h5",{class:xe({active:f(Vt)(f(pe).heartbeats.healthy.link)})},[ae(f(Lt),{role:"tab","aria-selected":f(Vt)(f(pe).heartbeats.healthy.link),to:f(pe).heartbeats.healthy.link},{default:de(()=>[_e(" Healthy Endpoints ("+me(f(r).length)+") ",1)]),_:1},8,["aria-selected","to"])],2),A("h5",{class:xe({active:f(Vt)(f(pe).heartbeats.configuration.link)})},[ae(f(Lt),{role:"tab","aria-selected":f(Vt)(f(pe).heartbeats.configuration.link),to:f(pe).heartbeats.configuration.link},{default:de(()=>[...l[3]||(l[3]=[_e(" Configuration ",-1)])]),_:1},8,["aria-selected","to"])],2)]),A("div",sL,[ae(sf,{modelValue:f(a),"onUpdate:modelValue":l[0]||(l[0]=c=>Qe(a)?a.value=c:null)},null,8,["modelValue"])])])])]),ae(f(Id))])]),_:1})]),_:1}))}}),iL=Ke(oL,[["__scopeId","data-v-c91e1c77"]]);var lL=Object.defineProperty,c0=Object.getOwnPropertySymbols,uL=Object.prototype.hasOwnProperty,cL=Object.prototype.propertyIsEnumerable,d0=(e,t,n)=>t in e?lL(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,n3=(e,t)=>{for(var n in t||(t={}))uL.call(t,n)&&d0(e,n,t[n]);if(c0)for(var n of c0(t))cL.call(t,n)&&d0(e,n,t[n]);return e},lf=e=>typeof e=="function",uf=e=>typeof e=="string",r3=e=>uf(e)&&e.trim().length>0,dL=e=>typeof e=="number",no=e=>typeof e>"u",ru=e=>typeof e=="object"&&e!==null,fL=e=>sa(e,"tag")&&r3(e.tag),a3=e=>window.TouchEvent&&e instanceof TouchEvent,s3=e=>sa(e,"component")&&o3(e.component),pL=e=>lf(e)||ru(e),o3=e=>!no(e)&&(uf(e)||pL(e)||s3(e)),f0=e=>ru(e)&&["height","width","right","left","top","bottom"].every(t=>dL(e[t])),sa=(e,t)=>(ru(e)||lf(e))&&t in e,hL=(e=>()=>e++)(0);function hp(e){return a3(e)?e.targetTouches[0].clientX:e.clientX}function p0(e){return a3(e)?e.targetTouches[0].clientY:e.clientY}var mL=e=>{no(e.remove)?e.parentNode&&e.parentNode.removeChild(e):e.remove()},xu=e=>s3(e)?xu(e.component):fL(e)?ye({render(){return e}}):typeof e=="string"?e:st(f(e)),vL=e=>{if(typeof e=="string")return e;const t=sa(e,"props")&&ru(e.props)?e.props:{},n=sa(e,"listeners")&&ru(e.listeners)?e.listeners:{};return{component:xu(e),props:t,listeners:n}},gL=()=>typeof window<"u",pv=class{constructor(){this.allHandlers={}}getHandlers(e){return this.allHandlers[e]||[]}on(e,t){const n=this.getHandlers(e);n.push(t),this.allHandlers[e]=n}off(e,t){const n=this.getHandlers(e);n.splice(n.indexOf(t)>>>0,1)}emit(e,t){this.getHandlers(e).forEach(r=>r(t))}},yL=e=>["on","off","emit"].every(t=>sa(e,t)&&lf(e[t])),Ct;(function(e){e.SUCCESS="success",e.ERROR="error",e.WARNING="warning",e.INFO="info",e.DEFAULT="default"})(Ct||(Ct={}));var au;(function(e){e.TOP_LEFT="top-left",e.TOP_CENTER="top-center",e.TOP_RIGHT="top-right",e.BOTTOM_LEFT="bottom-left",e.BOTTOM_CENTER="bottom-center",e.BOTTOM_RIGHT="bottom-right"})(au||(au={}));var Bn;(function(e){e.ADD="add",e.DISMISS="dismiss",e.UPDATE="update",e.CLEAR="clear",e.UPDATE_DEFAULTS="update_defaults"})(Bn||(Bn={}));var Cr="Vue-Toastification",wr={type:{type:String,default:Ct.DEFAULT},classNames:{type:[String,Array],default:()=>[]},trueBoolean:{type:Boolean,default:!0}},i3={type:wr.type,customIcon:{type:[String,Boolean,Object,Function],default:!0}},Tc={component:{type:[String,Object,Function,Boolean],default:"button"},classNames:wr.classNames,showOnHover:{type:Boolean,default:!1},ariaLabel:{type:String,default:"close"}},$h={timeout:{type:[Number,Boolean],default:5e3},hideProgressBar:{type:Boolean,default:!1},isRunning:{type:Boolean,default:!1}},l3={transition:{type:[Object,String],default:`${Cr}__bounce`}},_L={position:{type:String,default:au.TOP_RIGHT},draggable:wr.trueBoolean,draggablePercent:{type:Number,default:.6},pauseOnFocusLoss:wr.trueBoolean,pauseOnHover:wr.trueBoolean,closeOnClick:wr.trueBoolean,timeout:$h.timeout,hideProgressBar:$h.hideProgressBar,toastClassName:wr.classNames,bodyClassName:wr.classNames,icon:i3.customIcon,closeButton:Tc.component,closeButtonClassName:Tc.classNames,showCloseButtonOnHover:Tc.showOnHover,accessibility:{type:Object,default:()=>({toastRole:"alert",closeButtonLabel:"close"})},rtl:{type:Boolean,default:!1},eventBus:{type:Object,required:!1,default:()=>new pv}},bL={id:{type:[String,Number],required:!0,default:0},type:wr.type,content:{type:[String,Object,Function],required:!0,default:""},onClick:{type:Function,default:void 0},onClose:{type:Function,default:void 0}},wL={container:{type:[Object,Function],default:()=>document.body},newestOnTop:wr.trueBoolean,maxToasts:{type:Number,default:20},transition:l3.transition,toastDefaults:Object,filterBeforeCreate:{type:Function,default:e=>e},filterToasts:{type:Function,default:e=>e},containerClassName:wr.classNames,onMounted:Function,shareAppContext:[Boolean,Object]},Ra={CORE_TOAST:_L,TOAST:bL,CONTAINER:wL,PROGRESS_BAR:$h,ICON:i3,TRANSITION:l3,CLOSE_BUTTON:Tc},u3=ye({name:"VtProgressBar",props:Ra.PROGRESS_BAR,data(){return{hasClass:!0}},computed:{style(){return{animationDuration:`${this.timeout}ms`,animationPlayState:this.isRunning?"running":"paused",opacity:this.hideProgressBar?0:1}},cpClass(){return this.hasClass?`${Cr}__progress-bar`:""}},watch:{timeout(){this.hasClass=!1,this.$nextTick(()=>this.hasClass=!0)}},mounted(){this.$el.addEventListener("animationend",this.animationEnded)},beforeUnmount(){this.$el.removeEventListener("animationend",this.animationEnded)},methods:{animationEnded(){this.$emit("close-toast")}}});function SL(e,t){return D(),L("div",{style:Gt(e.style),class:xe(e.cpClass)},null,6)}u3.render=SL;var TL=u3,c3=ye({name:"VtCloseButton",props:Ra.CLOSE_BUTTON,computed:{buttonComponent(){return this.component!==!1?xu(this.component):"button"},classes(){const e=[`${Cr}__close-button`];return this.showOnHover&&e.push("show-on-hover"),e.concat(this.classNames)}}}),EL=_e(" × ");function xL(e,t){return D(),ge(ko(e.buttonComponent),hn({"aria-label":e.ariaLabel,class:e.classes},e.$attrs),{default:de(()=>[EL]),_:1},16,["aria-label","class"])}c3.render=xL;var kL=c3,d3={},CL={"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"check-circle",class:"svg-inline--fa fa-check-circle fa-w-16",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},AL=A("path",{fill:"currentColor",d:"M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"},null,-1),DL=[AL];function ML(e,t){return D(),L("svg",CL,DL)}d3.render=ML;var OL=d3,f3={},PL={"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"info-circle",class:"svg-inline--fa fa-info-circle fa-w-16",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},$L=A("path",{fill:"currentColor",d:"M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"},null,-1),IL=[$L];function RL(e,t){return D(),L("svg",PL,IL)}f3.render=RL;var h0=f3,p3={},NL={"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"exclamation-circle",class:"svg-inline--fa fa-exclamation-circle fa-w-16",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 512 512"},LL=A("path",{fill:"currentColor",d:"M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"},null,-1),FL=[LL];function VL(e,t){return D(),L("svg",NL,FL)}p3.render=VL;var YL=p3,h3={},WL={"aria-hidden":"true",focusable:"false","data-prefix":"fas","data-icon":"exclamation-triangle",class:"svg-inline--fa fa-exclamation-triangle fa-w-18",role:"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 576 512"},HL=A("path",{fill:"currentColor",d:"M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"},null,-1),BL=[HL];function jL(e,t){return D(),L("svg",WL,BL)}h3.render=jL;var UL=h3,m3=ye({name:"VtIcon",props:Ra.ICON,computed:{customIconChildren(){return sa(this.customIcon,"iconChildren")?this.trimValue(this.customIcon.iconChildren):""},customIconClass(){return uf(this.customIcon)?this.trimValue(this.customIcon):sa(this.customIcon,"iconClass")?this.trimValue(this.customIcon.iconClass):""},customIconTag(){return sa(this.customIcon,"iconTag")?this.trimValue(this.customIcon.iconTag,"i"):"i"},hasCustomIcon(){return this.customIconClass.length>0},component(){return this.hasCustomIcon?this.customIconTag:o3(this.customIcon)?xu(this.customIcon):this.iconTypeComponent},iconTypeComponent(){return{[Ct.DEFAULT]:h0,[Ct.INFO]:h0,[Ct.SUCCESS]:OL,[Ct.ERROR]:UL,[Ct.WARNING]:YL}[this.type]},iconClasses(){const e=[`${Cr}__icon`];return this.hasCustomIcon?e.concat(this.customIconClass):e}},methods:{trimValue(e,t=""){return r3(e)?e.trim():t}}});function zL(e,t){return D(),ge(ko(e.component),{class:xe(e.iconClasses)},{default:de(()=>[_e(me(e.customIconChildren),1)]),_:1},8,["class"])}m3.render=zL;var GL=m3,v3=ye({name:"VtToast",components:{ProgressBar:TL,CloseButton:kL,Icon:GL},inheritAttrs:!1,props:Object.assign({},Ra.CORE_TOAST,Ra.TOAST),data(){return{isRunning:!0,disableTransitions:!1,beingDragged:!1,dragStart:0,dragPos:{x:0,y:0},dragRect:{}}},computed:{classes(){const e=[`${Cr}__toast`,`${Cr}__toast--${this.type}`,`${this.position}`].concat(this.toastClassName);return this.disableTransitions&&e.push("disable-transition"),this.rtl&&e.push(`${Cr}__toast--rtl`),e},bodyClasses(){return[`${Cr}__toast-${uf(this.content)?"body":"component-body"}`].concat(this.bodyClassName)},draggableStyle(){return this.dragStart===this.dragPos.x?{}:this.beingDragged?{transform:`translateX(${this.dragDelta}px)`,opacity:1-Math.abs(this.dragDelta/this.removalDistance)}:{transition:"transform 0.2s, opacity 0.2s",transform:"translateX(0)",opacity:1}},dragDelta(){return this.beingDragged?this.dragPos.x-this.dragStart:0},removalDistance(){return f0(this.dragRect)?(this.dragRect.right-this.dragRect.left)*this.draggablePercent:0}},mounted(){this.draggable&&this.draggableSetup(),this.pauseOnFocusLoss&&this.focusSetup()},beforeUnmount(){this.draggable&&this.draggableCleanup(),this.pauseOnFocusLoss&&this.focusCleanup()},methods:{hasProp:sa,getVueComponentFromObj:xu,closeToast(){this.eventBus.emit(Bn.DISMISS,this.id)},clickHandler(){this.onClick&&this.onClick(this.closeToast),this.closeOnClick&&(!this.beingDragged||this.dragStart===this.dragPos.x)&&this.closeToast()},timeoutHandler(){this.closeToast()},hoverPause(){this.pauseOnHover&&(this.isRunning=!1)},hoverPlay(){this.pauseOnHover&&(this.isRunning=!0)},focusPause(){this.isRunning=!1},focusPlay(){this.isRunning=!0},focusSetup(){addEventListener("blur",this.focusPause),addEventListener("focus",this.focusPlay)},focusCleanup(){removeEventListener("blur",this.focusPause),removeEventListener("focus",this.focusPlay)},draggableSetup(){const e=this.$el;e.addEventListener("touchstart",this.onDragStart,{passive:!0}),e.addEventListener("mousedown",this.onDragStart),addEventListener("touchmove",this.onDragMove,{passive:!1}),addEventListener("mousemove",this.onDragMove),addEventListener("touchend",this.onDragEnd),addEventListener("mouseup",this.onDragEnd)},draggableCleanup(){const e=this.$el;e.removeEventListener("touchstart",this.onDragStart),e.removeEventListener("mousedown",this.onDragStart),removeEventListener("touchmove",this.onDragMove),removeEventListener("mousemove",this.onDragMove),removeEventListener("touchend",this.onDragEnd),removeEventListener("mouseup",this.onDragEnd)},onDragStart(e){this.beingDragged=!0,this.dragPos={x:hp(e),y:p0(e)},this.dragStart=hp(e),this.dragRect=this.$el.getBoundingClientRect()},onDragMove(e){this.beingDragged&&(e.preventDefault(),this.isRunning&&(this.isRunning=!1),this.dragPos={x:hp(e),y:p0(e)})},onDragEnd(){this.beingDragged&&(Math.abs(this.dragDelta)>=this.removalDistance?(this.disableTransitions=!0,this.$nextTick(()=>this.closeToast())):setTimeout(()=>{this.beingDragged=!1,f0(this.dragRect)&&this.pauseOnHover&&this.dragRect.bottom>=this.dragPos.y&&this.dragPos.y>=this.dragRect.top&&this.dragRect.left<=this.dragPos.x&&this.dragPos.x<=this.dragRect.right?this.isRunning=!1:this.isRunning=!0}))}}}),qL=["role"];function KL(e,t){const n=sr("Icon"),r=sr("CloseButton"),a=sr("ProgressBar");return D(),L("div",{class:xe(e.classes),style:Gt(e.draggableStyle),onClick:t[0]||(t[0]=(...s)=>e.clickHandler&&e.clickHandler(...s)),onMouseenter:t[1]||(t[1]=(...s)=>e.hoverPause&&e.hoverPause(...s)),onMouseleave:t[2]||(t[2]=(...s)=>e.hoverPlay&&e.hoverPlay(...s))},[e.icon?(D(),ge(n,{key:0,"custom-icon":e.icon,type:e.type},null,8,["custom-icon","type"])):q("v-if",!0),A("div",{role:e.accessibility.toastRole||"alert",class:xe(e.bodyClasses)},[typeof e.content=="string"?(D(),L(Me,{key:0},[_e(me(e.content),1)],2112)):(D(),ge(ko(e.getVueComponentFromObj(e.content)),hn({key:1,"toast-id":e.id},e.hasProp(e.content,"props")?e.content.props:{},xE(e.hasProp(e.content,"listeners")?e.content.listeners:{}),{onCloseToast:e.closeToast}),null,16,["toast-id","onCloseToast"]))],10,qL),e.closeButton?(D(),ge(r,{key:1,component:e.closeButton,"class-names":e.closeButtonClassName,"show-on-hover":e.showCloseButtonOnHover,"aria-label":e.accessibility.closeButtonLabel,onClick:dn(e.closeToast,["stop"])},null,8,["component","class-names","show-on-hover","aria-label","onClick"])):q("v-if",!0),e.timeout?(D(),ge(a,{key:2,"is-running":e.isRunning,"hide-progress-bar":e.hideProgressBar,timeout:e.timeout,onCloseToast:e.timeoutHandler},null,8,["is-running","hide-progress-bar","timeout","onCloseToast"])):q("v-if",!0)],38)}v3.render=KL;var QL=v3,g3=ye({name:"VtTransition",props:Ra.TRANSITION,emits:["leave"],methods:{hasProp:sa,leave(e){e instanceof HTMLElement&&(e.style.left=e.offsetLeft+"px",e.style.top=e.offsetTop+"px",e.style.width=getComputedStyle(e).width,e.style.position="absolute")}}});function XL(e,t){return D(),ge(Rx,{tag:"div","enter-active-class":e.transition.enter?e.transition.enter:`${e.transition}-enter-active`,"move-class":e.transition.move?e.transition.move:`${e.transition}-move`,"leave-active-class":e.transition.leave?e.transition.leave:`${e.transition}-leave-active`,onLeave:e.leave},{default:de(()=>[Ee(e.$slots,"default")]),_:3},8,["enter-active-class","move-class","leave-active-class","onLeave"])}g3.render=XL;var ZL=g3,y3=ye({name:"VueToastification",devtools:{hide:!0},components:{Toast:QL,VtTransition:ZL},props:Object.assign({},Ra.CORE_TOAST,Ra.CONTAINER,Ra.TRANSITION),data(){return{count:0,positions:Object.values(au),toasts:{},defaults:{}}},computed:{toastArray(){return Object.values(this.toasts)},filteredToasts(){return this.defaults.filterToasts(this.toastArray)}},beforeMount(){const e=this.eventBus;e.on(Bn.ADD,this.addToast),e.on(Bn.CLEAR,this.clearToasts),e.on(Bn.DISMISS,this.dismissToast),e.on(Bn.UPDATE,this.updateToast),e.on(Bn.UPDATE_DEFAULTS,this.updateDefaults),this.defaults=this.$props},mounted(){this.setup(this.container)},methods:{async setup(e){lf(e)&&(e=await e()),mL(this.$el),e.appendChild(this.$el)},setToast(e){no(e.id)||(this.toasts[e.id]=e)},addToast(e){e.content=vL(e.content);const t=Object.assign({},this.defaults,e.type&&this.defaults.toastDefaults&&this.defaults.toastDefaults[e.type],e),n=this.defaults.filterBeforeCreate(t,this.toastArray);n&&this.setToast(n)},dismissToast(e){const t=this.toasts[e];!no(t)&&!no(t.onClose)&&t.onClose(),delete this.toasts[e]},clearToasts(){Object.keys(this.toasts).forEach(e=>{this.dismissToast(e)})},getPositionToasts(e){const t=this.filteredToasts.filter(n=>n.position===e).slice(0,this.defaults.maxToasts);return this.defaults.newestOnTop?t.reverse():t},updateDefaults(e){no(e.container)||this.setup(e.container),this.defaults=Object.assign({},this.defaults,e)},updateToast({id:e,options:t,create:n}){this.toasts[e]?(t.timeout&&t.timeout===this.toasts[e].timeout&&t.timeout++,this.setToast(Object.assign({},this.toasts[e],t))):n&&this.addToast(Object.assign({},{id:e},t))},getClasses(e){return[`${Cr}__container`,e].concat(this.defaults.containerClassName)}}});function JL(e,t){const n=sr("Toast"),r=sr("VtTransition");return D(),L("div",null,[(D(!0),L(Me,null,Xe(e.positions,a=>(D(),L("div",{key:a},[ae(r,{transition:e.defaults.transition,class:xe(e.getClasses(a))},{default:de(()=>[(D(!0),L(Me,null,Xe(e.getPositionToasts(a),s=>(D(),ge(n,hn({key:s.id},s),null,16))),128))]),_:2},1032,["transition","class"])]))),128))])}y3.render=JL;var e9=y3,m0=(e={},t=!0)=>{const n=e.eventBus=e.eventBus||new pv;t&&Xt(()=>{const s=Bc(e9,n3({},e)),o=s.mount(document.createElement("div")),i=e.onMounted;if(no(i)||i(o,s),e.shareAppContext){const l=e.shareAppContext;l===!0?console.warn(`[${Cr}] App to share context with was not provided.`):(s._context.components=l._context.components,s._context.directives=l._context.directives,s._context.mixins=l._context.mixins,s._context.provides=l._context.provides,s.config.globalProperties=l.config.globalProperties)}});const r=(s,o)=>{const i=Object.assign({},{id:hL(),type:Ct.DEFAULT},o,{content:s});return n.emit(Bn.ADD,i),i.id};r.clear=()=>n.emit(Bn.CLEAR,void 0),r.updateDefaults=s=>{n.emit(Bn.UPDATE_DEFAULTS,s)},r.dismiss=s=>{n.emit(Bn.DISMISS,s)};function a(s,{content:o,options:i},l=!1){const c=Object.assign({},i,{content:o});n.emit(Bn.UPDATE,{id:s,options:c,create:l})}return r.update=a,r.success=(s,o)=>r(s,Object.assign({},o,{type:Ct.SUCCESS})),r.info=(s,o)=>r(s,Object.assign({},o,{type:Ct.INFO})),r.error=(s,o)=>r(s,Object.assign({},o,{type:Ct.ERROR})),r.warning=(s,o)=>r(s,Object.assign({},o,{type:Ct.WARNING})),r},t9=()=>{const e=()=>console.warn(`[${Cr}] This plugin does not support SSR!`);return new Proxy(e,{get(){return e}})};function _3(e){return gL()?yL(e)?m0({eventBus:e},!1):m0(e,!0):t9()}var b3=Symbol("VueToastification"),w3=new pv,n9=(e,t)=>{t?.shareAppContext===!0&&(t.shareAppContext=e);const n=_3(n3({eventBus:w3},t));e.provide(b3,n)},r9=e=>{const t=Vr()?In(b3,void 0):void 0;return t||_3(w3)},a9=n9;const s9={key:0,class:"toast-success toast-message"},o9=["innerHTML"],i9={key:1,class:"toast-info toast-message"},l9=["innerHTML"],u9={key:2,class:"toast-error toast-message"},c9=["innerHTML"],d9={key:3,class:"toast-warning toast-message"},f9=["innerHTML"],p9={key:4,class:"toast-default toast-message"},h9=["innerHTML"],m9=ye({__name:"ToastPopup",props:{type:{},title:{},message:{}},setup(e){const t=e;return(n,r)=>(D(),L("div",null,[t.type===f(Ct).SUCCESS?(D(),L("div",s9,[A("p",null,[A("strong",null,me(t.title),1)]),A("span",{innerHTML:t.message},null,8,o9)])):q("",!0),t.type===f(Ct).INFO?(D(),L("div",i9,[A("p",null,[A("strong",null,me(t.title),1)]),A("span",{innerHTML:t.message},null,8,l9)])):q("",!0),t.type===f(Ct).ERROR?(D(),L("div",u9,[A("p",null,[A("strong",null,me(t.title),1)]),A("span",{innerHTML:t.message},null,8,c9)])):q("",!0),t.type===f(Ct).WARNING?(D(),L("div",d9,[A("p",null,[A("strong",null,me(t.title),1)]),A("span",{innerHTML:t.message},null,8,f9)])):q("",!0),t.type===f(Ct).DEFAULT?(D(),L("div",p9,[A("p",null,[A("strong",null,me(t.title),1)]),A("span",{innerHTML:t.message},null,8,h9)])):q("",!0)]))}});function Xr(e,t,n,r=!1,a){r9()({component:m9,props:{type:e,title:t,message:n}},{timeout:r?!1:void 0,type:e,...a})}const bX=async(e,t,n,r)=>{await e(),Xr(t,n,r)},v9={class:"container not-supported"},g9={class:"row"},y9={class:"col-sm-12"},_9={class:"text-center message"},b9=ye({__name:"ThroughputSupported",setup(e){const t=fv();return(n,r)=>(D(),ge(Jd,{supported:f(t)},{unsupported:de(()=>[A("div",v9,[A("div",g9,[A("div",y9,[A("div",_9,[A("p",null,[r[0]||(r[0]=_e(" The minimum version of ServiceControl required to enable the Usage feature is ",-1)),A("span",null,me(f(J2)),1),r[1]||(r[1]=_e(". ",-1))]),r[2]||(r[2]=A("div",null,[A("a",{class:"btn btn-default btn-primary",href:"https://particular.net/downloads",target:"_blank"},"Update ServiceControl to latest version")],-1))])])])])]),default:de(()=>[Ee(n.$slots,"default",{},void 0,!0)]),_:3},8,["supported"]))}}),w9=Ke(b9,[["__scopeId","data-v-5b7721dc"]]),S9=["disabled","type","aria-label"],T9={key:2,class:"button-text"},E9=ye({__name:"ActionButton",props:{variant:{default:"default"},size:{default:"default"},icon:{},iconPosition:{default:"left"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},tooltip:{},ariaLabel:{},type:{default:"button"}},setup(e){const t=e,n={primary:"btn-primary",secondary:"btn-secondary",danger:"btn-danger",link:"btn-link",default:"btn-default"},r={sm:"btn-sm",lg:"btn-lg",default:""};return(a,s)=>{const o=Fi("tippy");return Ot((D(),L("button",{class:xe(["btn",[n[t.variant],r[t.size],{disabled:t.disabled||t.loading}]]),disabled:t.disabled||t.loading,type:t.type,"aria-label":t.ariaLabel},[t.icon&&t.iconPosition==="left"&&!t.loading?(D(),ge(pt,{key:0,icon:t.icon,class:"icon-left"},null,8,["icon"])):q("",!0),t.loading?(D(),ge(pt,{key:1,class:"rotate",icon:f(w2)},null,8,["icon"])):q("",!0),a.$slots.default?(D(),L("span",T9,[Ee(a.$slots,"default",{},void 0,!0)])):q("",!0),t.icon&&t.iconPosition==="right"&&!t.loading?(D(),ge(pt,{key:3,icon:t.icon,class:"icon-right"},null,8,["icon"])):q("",!0)],10,S9)),[[o,t.tooltip]])}}}),Ih=Ke(E9,[["__scopeId","data-v-ec130789"]]),x9={class:"modal-mask"},k9={class:"modal-wrapper"},C9=["aria-label"],A9={class:"modal-header"},D9={class:"modal-title"},M9={class:"modal-body"},O9={key:0},P9={class:"modal-footer"},$9=ye({__name:"ConfirmDialog",props:{heading:{},body:{},secondParagraph:{default:""},hideCancel:{type:Boolean,default:!1}},emits:["confirm","cancel"],setup(e,{emit:t}){const n=t;function r(){n("confirm")}function a(){n("cancel")}return xn(()=>{document.getElementsByTagName("body")[0].className=""}),ut(()=>{document.getElementsByTagName("body")[0].className="modal-open"}),(s,o)=>(D(),L("div",x9,[A("div",k9,[A("div",{class:"modal-container",role:"dialog","aria-label":e.heading},[A("div",A9,[A("div",D9,[A("h3",null,me(e.heading),1)])]),A("div",M9,[A("p",null,me(e.body),1),e.secondParagraph&&e.secondParagraph.length?(D(),L("p",O9,me(e.secondParagraph),1)):q("",!0)]),A("div",P9,[ae(Ih,{variant:"primary","aria-label":e.hideCancel?"Ok":"Yes",onClick:r},{default:de(()=>[_e(me(e.hideCancel?"Ok":"Yes"),1)]),_:1},8,["aria-label"]),e.hideCancel?q("",!0):(D(),ge(Ih,{key:0,"aria-label":"No",onClick:a},{default:de(()=>[...o[0]||(o[0]=[_e("No",-1)])]),_:1}))])],8,C9)])]))}}),I9=Ke($9,[["__scopeId","data-v-58cd5913"]]),R9={class:"container"},N9={class:"row"},L9={class:"col-sm-6 text-end"},F9={key:0,class:"reason"},V9=["disabled"],Y9={class:"row"},W9={class:"col-sm-12"},H9=ye({__name:"ThroughputReportView",setup(e){const t=oe(!1),n=fv(),r=Z2(),a=o$(async()=>n.value?await r.reportAvailable():null,null);async function s(){(await r.endpoints()).find(c=>!c.user_indicator)?t.value=!0:await o()}async function o(){t.value=!1;const i=await r.downloadReport();i!==""&&Xr(Ct.INFO,"Report Downloaded",`Please email '${i}' to your account manager.`,!0)}return(i,l)=>{const c=sr("RouterView");return D(),ge(zi,null,{default:de(()=>[ae(w9,null,{default:de(()=>[A("div",R9,[A("div",N9,[l[3]||(l[3]=A("div",{class:"col-sm-6"},[A("h1",null,"Usage")],-1)),A("div",L9,[f(a)?.report_can_be_generated?q("",!0):(D(),L("span",F9,me(f(a)?.reason),1)),A("button",{type:"button","aria-label":"Download Report",class:"btn btn-primary actions",onClick:l[0]||(l[0]=u=>s()),disabled:!f(a)?.report_can_be_generated},[ae(pt,{icon:f(g5)},null,8,["icon"]),l[2]||(l[2]=_e(" Download Report",-1))],8,V9),(D(),ge(o_,{to:"#modalDisplay"},[t.value?(D(),ge(I9,{key:0,heading:"Not all endpoints/queues have an Endpoint Type set",body:"Are you sure you want to continue?",onCancel:l[1]||(l[1]=u=>t.value=!1),onConfirm:o})):q("",!0)]))])]),A("div",Y9,[A("div",W9,[ae(c)])])])]),_:1})]),_:1})}}}),B9=Ke(H9,[["__scopeId","data-v-1cb20a0d"]]);var fs=(e=>(e.TimeSent="time_sent",e.ProcessingTime="processing_time",e.CriticalTime="critical_time",e.DeliveryTime="delivery_time",e))(fs||{});const S3=Qn("AuditStore",()=>{const e=vn(),t=oe({property:"time_sent",isAscending:!1}),n=oe([]),r=oe(""),a=oe(100),s=oe(0),o=oe([]),i=oe(""),l=oe([]);async function c(){try{const[,d]=await e.fetchTypedFromServiceControl("endpoints");l.value=d}catch(d){throw l.value=[],d}}async function u(){try{const[d,p]=n.value,m=d?.toISOString()??"",_=p?.toISOString()??"",[y,b]=await e.fetchTypedFromServiceControl(`messages2/?endpoint_name=${i.value}&from=${m}&to=${_}&q=${r.value}&page_size=${a.value}&sort=${t.value.property}&direction=${t.value.isAscending?"asc":"desc"}`);s.value=parseInt(y.headers.get("total-count")??"0"),o.value=b}catch(d){throw o.value=[],d}}return{refresh:u,loadEndpoints:c,sortBy:t,messages:o,messageFilterString:r,selectedEndpointName:i,itemsPerPage:a,totalCount:s,endpoints:l,dateRange:n}}),j9={class:"col format-showing-results"},U9=ye({__name:"ResultsCount",props:{displayed:{},total:{}},setup(e){return(t,n)=>(D(),L("div",j9,[A("div",null,"Showing "+me(e.displayed)+" of "+me(e.total)+" result(s)",1)]))}}),z9=Ke(U9,[["__scopeId","data-v-74d609a2"]]),G9={type:"button","aria-label":"open dropdown menu",class:"btn btn-dropdown dropdown-toggle sp-btn-menu","data-bs-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},q9={class:"wrap-text"},K9={class:"dropdown-menu wrapper"},Q9={class:"instructions"},X9={key:0,class:"filter-input"},Z9={class:"items-container"},J9={class:"clear"},eF=["onClick"],tF=ye({__name:"ListFilterSelector",props:Ya({items:{},instructions:{},itemName:{},defaultEmptyText:{},canClear:{type:Boolean,default:!0},showClear:{type:Boolean},showFilter:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(e){const t=Ms(e,"modelValue"),n=e,r=oe(""),a=oe(n.items);Ue([r,()=>n.items],()=>{r.value!==""&&r.value!=null?a.value=n.items.filter(l=>l.toLowerCase().includes(r.value.toLowerCase())):a.value=n.items});function s(l,c){t.value=c&&n.canClear?"":l}const o=ft("bootstrapDropDown"),i=ft("filterInput");return ut(()=>{o.value?.addEventListener("shown.bs.dropdown",()=>{i.value?.focus()})}),(l,c)=>(D(),L("div",{ref_key:"bootstrapDropDown",ref:o,class:"dropdown"},[A("button",G9,[A("span",q9,me(t.value||e.defaultEmptyText),1)]),A("div",K9,[A("div",Q9,me(e.instructions),1),e.showFilter?(D(),L("div",X9,[ae(sf,{ref_key:"filterInput",ref:i,modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=u=>r.value=u),placeholder:`Filter ${e.itemName}s`},null,8,["modelValue","placeholder"])])):q("",!0),A("div",Z9,[e.showClear&&t.value?(D(),L("div",{key:0,class:"item-container",onClick:c[1]||(c[1]=dn(()=>s("",!0),["prevent"]))},[ae(pt,{class:"side-icon",icon:f(y2)},null,8,["icon"]),A("span",J9," Clear selected "+me(e.itemName),1)])):q("",!0),(D(!0),L(Me,null,Xe(a.value,u=>(D(),L("div",{class:"item-container",key:u,onClick:dn(()=>s(u,u===t.value),["prevent"])},[u===t.value?(D(),ge(pt,{key:0,class:"side-icon",icon:f(_u)},null,8,["icon"])):q("",!0),A("span",{class:xe(["item",{selected:u===t.value}])},me(u),3)],8,eF))),128))])])],512))}}),Ec=Ke(tF,[["__scopeId","data-v-6054341f"]]),Ei=Math.min,mo=Math.max,sd=Math.round,Ju=Math.floor,oa=e=>({x:e,y:e}),nF={left:"right",right:"left",bottom:"top",top:"bottom"},rF={start:"end",end:"start"};function Rh(e,t,n){return mo(e,Ei(t,n))}function ku(e,t){return typeof e=="function"?e(t):e}function wo(e){return e.split("-")[0]}function Cu(e){return e.split("-")[1]}function T3(e){return e==="x"?"y":"x"}function hv(e){return e==="y"?"height":"width"}const aF=new Set(["top","bottom"]);function gs(e){return aF.has(wo(e))?"y":"x"}function mv(e){return T3(gs(e))}function sF(e,t,n){n===void 0&&(n=!1);const r=Cu(e),a=mv(e),s=hv(a);let o=a==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(o=od(o)),[o,od(o)]}function oF(e){const t=od(e);return[Nh(e),t,Nh(t)]}function Nh(e){return e.replace(/start|end/g,t=>rF[t])}const v0=["left","right"],g0=["right","left"],iF=["top","bottom"],lF=["bottom","top"];function uF(e,t,n){switch(e){case"top":case"bottom":return n?t?g0:v0:t?v0:g0;case"left":case"right":return t?iF:lF;default:return[]}}function cF(e,t,n,r){const a=Cu(e);let s=uF(wo(e),n==="start",r);return a&&(s=s.map(o=>o+"-"+a),t&&(s=s.concat(s.map(Nh)))),s}function od(e){return e.replace(/left|right|bottom|top/g,t=>nF[t])}function dF(e){return{top:0,right:0,bottom:0,left:0,...e}}function E3(e){return typeof e!="number"?dF(e):{top:e,right:e,bottom:e,left:e}}function id(e){const{x:t,y:n,width:r,height:a}=e;return{width:r,height:a,top:n,left:t,right:t+r,bottom:n+a,x:t,y:n}}function y0(e,t,n){let{reference:r,floating:a}=e;const s=gs(t),o=mv(t),i=hv(o),l=wo(t),c=s==="y",u=r.x+r.width/2-a.width/2,d=r.y+r.height/2-a.height/2,p=r[i]/2-a[i]/2;let m;switch(l){case"top":m={x:u,y:r.y-a.height};break;case"bottom":m={x:u,y:r.y+r.height};break;case"right":m={x:r.x+r.width,y:d};break;case"left":m={x:r.x-a.width,y:d};break;default:m={x:r.x,y:r.y}}switch(Cu(t)){case"start":m[o]-=p*(n&&c?-1:1);break;case"end":m[o]+=p*(n&&c?-1:1);break}return m}const fF=async(e,t,n)=>{const{placement:r="bottom",strategy:a="absolute",middleware:s=[],platform:o}=n,i=s.filter(Boolean),l=await(o.isRTL==null?void 0:o.isRTL(t));let c=await o.getElementRects({reference:e,floating:t,strategy:a}),{x:u,y:d}=y0(c,r,l),p=r,m={},_=0;for(let y=0;y({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:a,rects:s,platform:o,elements:i,middlewareData:l}=t,{element:c,padding:u=0}=ku(e,t)||{};if(c==null)return{};const d=E3(u),p={x:n,y:r},m=mv(a),_=hv(m),y=await o.getDimensions(c),b=m==="y",h=b?"top":"left",g=b?"bottom":"right",w=b?"clientHeight":"clientWidth",v=s.reference[_]+s.reference[m]-p[m]-s.floating[_],k=p[m]-s.reference[m],$=await(o.getOffsetParent==null?void 0:o.getOffsetParent(c));let S=$?$[w]:0;(!S||!await(o.isElement==null?void 0:o.isElement($)))&&(S=i.floating[w]||s.floating[_]);const x=v/2-k/2,P=S/2-y[_]/2-1,R=Ei(d[h],P),K=Ei(d[g],P),W=R,X=S-y[_]-K,ce=S/2-y[_]/2+x,ie=Rh(W,ce,X),fe=!l.arrow&&Cu(a)!=null&&ce!==ie&&s.reference[_]/2-(cece<=0)){var K,W;const ce=(((K=s.flip)==null?void 0:K.index)||0)+1,ie=S[ce];if(ie&&(!(d==="alignment"?g!==gs(ie):!1)||R.every(ne=>gs(ne.placement)===g?ne.overflows[0]>0:!0)))return{data:{index:ce,overflows:R},reset:{placement:ie}};let fe=(W=R.filter(j=>j.overflows[0]<=0).sort((j,ne)=>j.overflows[1]-ne.overflows[1])[0])==null?void 0:W.placement;if(!fe)switch(m){case"bestFit":{var X;const j=(X=R.filter(ne=>{if($){const le=gs(ne.placement);return le===g||le==="y"}return!0}).map(ne=>[ne.placement,ne.overflows.filter(le=>le>0).reduce((le,re)=>le+re,0)]).sort((ne,le)=>ne[1]-le[1])[0])==null?void 0:X[0];j&&(fe=j);break}case"initialPlacement":fe=i;break}if(a!==fe)return{reset:{placement:fe}}}return{}}}},mF=new Set(["left","top"]);async function vF(e,t){const{placement:n,platform:r,elements:a}=e,s=await(r.isRTL==null?void 0:r.isRTL(a.floating)),o=wo(n),i=Cu(n),l=gs(n)==="y",c=mF.has(o)?-1:1,u=s&&l?-1:1,d=ku(t,e);let{mainAxis:p,crossAxis:m,alignmentAxis:_}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return i&&typeof _=="number"&&(m=i==="end"?_*-1:_),l?{x:m*u,y:p*c}:{x:p*c,y:m*u}}const gF=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:a,y:s,placement:o,middlewareData:i}=t,l=await vF(t,e);return o===((n=i.offset)==null?void 0:n.placement)&&(r=i.arrow)!=null&&r.alignmentOffset?{}:{x:a+l.x,y:s+l.y,data:{...l,placement:o}}}}},yF=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:a}=t,{mainAxis:s=!0,crossAxis:o=!1,limiter:i={fn:b=>{let{x:h,y:g}=b;return{x:h,y:g}}},...l}=ku(e,t),c={x:n,y:r},u=await x3(t,l),d=gs(wo(a)),p=T3(d);let m=c[p],_=c[d];if(s){const b=p==="y"?"top":"left",h=p==="y"?"bottom":"right",g=m+u[b],w=m-u[h];m=Rh(g,m,w)}if(o){const b=d==="y"?"top":"left",h=d==="y"?"bottom":"right",g=_+u[b],w=_-u[h];_=Rh(g,_,w)}const y=i.fn({...t,[p]:m,[d]:_});return{...y,data:{x:y.x-n,y:y.y-r,enabled:{[p]:s,[d]:o}}}}}};function cf(){return typeof window<"u"}function Ao(e){return vv(e)?(e.nodeName||"").toLowerCase():"#document"}function Un(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function ya(e){var t;return(t=(vv(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function vv(e){return cf()?e instanceof Node||e instanceof Un(e).Node:!1}function Lr(e){return cf()?e instanceof Element||e instanceof Un(e).Element:!1}function fa(e){return cf()?e instanceof HTMLElement||e instanceof Un(e).HTMLElement:!1}function _0(e){return!cf()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Un(e).ShadowRoot}const _F=new Set(["inline","contents"]);function Au(e){const{overflow:t,overflowX:n,overflowY:r,display:a}=Fr(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!_F.has(a)}const bF=new Set(["table","td","th"]);function wF(e){return bF.has(Ao(e))}const SF=[":popover-open",":modal"];function df(e){return SF.some(t=>{try{return e.matches(t)}catch{return!1}})}const TF=["transform","translate","scale","rotate","perspective"],EF=["transform","translate","scale","rotate","perspective","filter"],xF=["paint","layout","strict","content"];function gv(e){const t=yv(),n=Lr(e)?Fr(e):e;return TF.some(r=>n[r]?n[r]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||EF.some(r=>(n.willChange||"").includes(r))||xF.some(r=>(n.contain||"").includes(r))}function kF(e){let t=Es(e);for(;fa(t)&&!xi(t);){if(gv(t))return t;if(df(t))return null;t=Es(t)}return null}function yv(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const CF=new Set(["html","body","#document"]);function xi(e){return CF.has(Ao(e))}function Fr(e){return Un(e).getComputedStyle(e)}function ff(e){return Lr(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Es(e){if(Ao(e)==="html")return e;const t=e.assignedSlot||e.parentNode||_0(e)&&e.host||ya(e);return _0(t)?t.host:t}function k3(e){const t=Es(e);return xi(t)?e.ownerDocument?e.ownerDocument.body:e.body:fa(t)&&Au(t)?t:k3(t)}function su(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const a=k3(e),s=a===((r=e.ownerDocument)==null?void 0:r.body),o=Un(a);if(s){const i=Lh(o);return t.concat(o,o.visualViewport||[],Au(a)?a:[],i&&n?su(i):[])}return t.concat(a,su(a,[],n))}function Lh(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function C3(e){const t=Fr(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const a=fa(e),s=a?e.offsetWidth:n,o=a?e.offsetHeight:r,i=sd(n)!==s||sd(r)!==o;return i&&(n=s,r=o),{width:n,height:r,$:i}}function _v(e){return Lr(e)?e:e.contextElement}function ci(e){const t=_v(e);if(!fa(t))return oa(1);const n=t.getBoundingClientRect(),{width:r,height:a,$:s}=C3(t);let o=(s?sd(n.width):n.width)/r,i=(s?sd(n.height):n.height)/a;return(!o||!Number.isFinite(o))&&(o=1),(!i||!Number.isFinite(i))&&(i=1),{x:o,y:i}}const AF=oa(0);function A3(e){const t=Un(e);return!yv()||!t.visualViewport?AF:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function DF(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Un(e)?!1:t}function So(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const a=e.getBoundingClientRect(),s=_v(e);let o=oa(1);t&&(r?Lr(r)&&(o=ci(r)):o=ci(e));const i=DF(s,n,r)?A3(s):oa(0);let l=(a.left+i.x)/o.x,c=(a.top+i.y)/o.y,u=a.width/o.x,d=a.height/o.y;if(s){const p=Un(s),m=r&&Lr(r)?Un(r):r;let _=p,y=Lh(_);for(;y&&r&&m!==_;){const b=ci(y),h=y.getBoundingClientRect(),g=Fr(y),w=h.left+(y.clientLeft+parseFloat(g.paddingLeft))*b.x,v=h.top+(y.clientTop+parseFloat(g.paddingTop))*b.y;l*=b.x,c*=b.y,u*=b.x,d*=b.y,l+=w,c+=v,_=Un(y),y=Lh(_)}}return id({width:u,height:d,x:l,y:c})}function pf(e,t){const n=ff(e).scrollLeft;return t?t.left+n:So(ya(e)).left+n}function D3(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-pf(e,n),a=n.top+t.scrollTop;return{x:r,y:a}}function MF(e){let{elements:t,rect:n,offsetParent:r,strategy:a}=e;const s=a==="fixed",o=ya(r),i=t?df(t.floating):!1;if(r===o||i&&s)return n;let l={scrollLeft:0,scrollTop:0},c=oa(1);const u=oa(0),d=fa(r);if((d||!d&&!s)&&((Ao(r)!=="body"||Au(o))&&(l=ff(r)),fa(r))){const m=So(r);c=ci(r),u.x=m.x+r.clientLeft,u.y=m.y+r.clientTop}const p=o&&!d&&!s?D3(o,l):oa(0);return{width:n.width*c.x,height:n.height*c.y,x:n.x*c.x-l.scrollLeft*c.x+u.x+p.x,y:n.y*c.y-l.scrollTop*c.y+u.y+p.y}}function OF(e){return Array.from(e.getClientRects())}function PF(e){const t=ya(e),n=ff(e),r=e.ownerDocument.body,a=mo(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=mo(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let o=-n.scrollLeft+pf(e);const i=-n.scrollTop;return Fr(r).direction==="rtl"&&(o+=mo(t.clientWidth,r.clientWidth)-a),{width:a,height:s,x:o,y:i}}const b0=25;function $F(e,t){const n=Un(e),r=ya(e),a=n.visualViewport;let s=r.clientWidth,o=r.clientHeight,i=0,l=0;if(a){s=a.width,o=a.height;const u=yv();(!u||u&&t==="fixed")&&(i=a.offsetLeft,l=a.offsetTop)}const c=pf(r);if(c<=0){const u=r.ownerDocument,d=u.body,p=getComputedStyle(d),m=u.compatMode==="CSS1Compat"&&parseFloat(p.marginLeft)+parseFloat(p.marginRight)||0,_=Math.abs(r.clientWidth-d.clientWidth-m);_<=b0&&(s-=_)}else c<=b0&&(s+=c);return{width:s,height:o,x:i,y:l}}const IF=new Set(["absolute","fixed"]);function RF(e,t){const n=So(e,!0,t==="fixed"),r=n.top+e.clientTop,a=n.left+e.clientLeft,s=fa(e)?ci(e):oa(1),o=e.clientWidth*s.x,i=e.clientHeight*s.y,l=a*s.x,c=r*s.y;return{width:o,height:i,x:l,y:c}}function w0(e,t,n){let r;if(t==="viewport")r=$F(e,n);else if(t==="document")r=PF(ya(e));else if(Lr(t))r=RF(t,n);else{const a=A3(e);r={x:t.x-a.x,y:t.y-a.y,width:t.width,height:t.height}}return id(r)}function M3(e,t){const n=Es(e);return n===t||!Lr(n)||xi(n)?!1:Fr(n).position==="fixed"||M3(n,t)}function NF(e,t){const n=t.get(e);if(n)return n;let r=su(e,[],!1).filter(i=>Lr(i)&&Ao(i)!=="body"),a=null;const s=Fr(e).position==="fixed";let o=s?Es(e):e;for(;Lr(o)&&!xi(o);){const i=Fr(o),l=gv(o);!l&&i.position==="fixed"&&(a=null),(s?!l&&!a:!l&&i.position==="static"&&!!a&&IF.has(a.position)||Au(o)&&!l&&M3(e,o))?r=r.filter(u=>u!==o):a=i,o=Es(o)}return t.set(e,r),r}function LF(e){let{element:t,boundary:n,rootBoundary:r,strategy:a}=e;const o=[...n==="clippingAncestors"?df(t)?[]:NF(t,this._c):[].concat(n),r],i=o[0],l=o.reduce((c,u)=>{const d=w0(t,u,a);return c.top=mo(d.top,c.top),c.right=Ei(d.right,c.right),c.bottom=Ei(d.bottom,c.bottom),c.left=mo(d.left,c.left),c},w0(t,i,a));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function FF(e){const{width:t,height:n}=C3(e);return{width:t,height:n}}function VF(e,t,n){const r=fa(t),a=ya(t),s=n==="fixed",o=So(e,!0,s,t);let i={scrollLeft:0,scrollTop:0};const l=oa(0);function c(){l.x=pf(a)}if(r||!r&&!s)if((Ao(t)!=="body"||Au(a))&&(i=ff(t)),r){const m=So(t,!0,s,t);l.x=m.x+t.clientLeft,l.y=m.y+t.clientTop}else a&&c();s&&!r&&a&&c();const u=a&&!r&&!s?D3(a,i):oa(0),d=o.left+i.scrollLeft-l.x-u.x,p=o.top+i.scrollTop-l.y-u.y;return{x:d,y:p,width:o.width,height:o.height}}function mp(e){return Fr(e).position==="static"}function S0(e,t){if(!fa(e)||Fr(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return ya(e)===n&&(n=n.ownerDocument.body),n}function O3(e,t){const n=Un(e);if(df(e))return n;if(!fa(e)){let a=Es(e);for(;a&&!xi(a);){if(Lr(a)&&!mp(a))return a;a=Es(a)}return n}let r=S0(e,t);for(;r&&wF(r)&&mp(r);)r=S0(r,t);return r&&xi(r)&&mp(r)&&!gv(r)?n:r||kF(e)||n}const YF=async function(e){const t=this.getOffsetParent||O3,n=this.getDimensions,r=await n(e.floating);return{reference:VF(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function WF(e){return Fr(e).direction==="rtl"}const HF={convertOffsetParentRelativeRectToViewportRelativeRect:MF,getDocumentElement:ya,getClippingRect:LF,getOffsetParent:O3,getElementRects:YF,getClientRects:OF,getDimensions:FF,getScale:ci,isElement:Lr,isRTL:WF};function P3(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function BF(e,t){let n=null,r;const a=ya(e);function s(){var i;clearTimeout(r),(i=n)==null||i.disconnect(),n=null}function o(i,l){i===void 0&&(i=!1),l===void 0&&(l=1),s();const c=e.getBoundingClientRect(),{left:u,top:d,width:p,height:m}=c;if(i||t(),!p||!m)return;const _=Ju(d),y=Ju(a.clientWidth-(u+p)),b=Ju(a.clientHeight-(d+m)),h=Ju(u),w={rootMargin:-_+"px "+-y+"px "+-b+"px "+-h+"px",threshold:mo(0,Ei(1,l))||1};let v=!0;function k($){const S=$[0].intersectionRatio;if(S!==l){if(!v)return o();S?o(!1,S):r=setTimeout(()=>{o(!1,1e-7)},1e3)}S===1&&!P3(c,e.getBoundingClientRect())&&o(),v=!1}try{n=new IntersectionObserver(k,{...w,root:a.ownerDocument})}catch{n=new IntersectionObserver(k,w)}n.observe(e)}return o(!0),s}function jF(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:a=!0,ancestorResize:s=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:i=typeof IntersectionObserver=="function",animationFrame:l=!1}=r,c=_v(e),u=a||s?[...c?su(c):[],...su(t)]:[];u.forEach(h=>{a&&h.addEventListener("scroll",n,{passive:!0}),s&&h.addEventListener("resize",n)});const d=c&&i?BF(c,n):null;let p=-1,m=null;o&&(m=new ResizeObserver(h=>{let[g]=h;g&&g.target===c&&m&&(m.unobserve(t),cancelAnimationFrame(p),p=requestAnimationFrame(()=>{var w;(w=m)==null||w.observe(t)})),n()}),c&&!l&&m.observe(c),m.observe(t));let _,y=l?So(e):null;l&&b();function b(){const h=So(e);y&&!P3(y,h)&&n(),y=h,_=requestAnimationFrame(b)}return n(),()=>{var h;u.forEach(g=>{a&&g.removeEventListener("scroll",n),s&&g.removeEventListener("resize",n)}),d?.(),(h=m)==null||h.disconnect(),m=null,l&&cancelAnimationFrame(_)}}const UF=gF,zF=yF,GF=hF,qF=pF,KF=(e,t,n)=>{const r=new Map,a={platform:HF,...n},s={...a.platform,_c:r};return fF(e,t,{...a,platform:s})};function QF(e){return e!=null&&typeof e=="object"&&"$el"in e}function Fh(e){if(QF(e)){const t=e.$el;return vv(t)&&Ao(t)==="#comment"?null:t}return e}function Uo(e){return typeof e=="function"?e():f(e)}function T0(e){return{name:"arrow",options:e,fn(t){const n=Fh(Uo(e.element));return n==null?{}:qF({element:n,padding:e.padding}).fn(t)}}}function $3(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function E0(e,t){const n=$3(e);return Math.round(t*n)/n}function XF(e,t,n){n===void 0&&(n={});const r=n.whileElementsMounted,a=G(()=>{var S;return(S=Uo(n.open))!=null?S:!0}),s=G(()=>Uo(n.middleware)),o=G(()=>{var S;return(S=Uo(n.placement))!=null?S:"bottom"}),i=G(()=>{var S;return(S=Uo(n.strategy))!=null?S:"absolute"}),l=G(()=>{var S;return(S=Uo(n.transform))!=null?S:!0}),c=G(()=>Fh(e.value)),u=G(()=>Fh(t.value)),d=oe(0),p=oe(0),m=oe(i.value),_=oe(o.value),y=ur({}),b=oe(!1),h=G(()=>{const S={position:m.value,left:"0",top:"0"};if(!u.value)return S;const x=E0(u.value,d.value),P=E0(u.value,p.value);return l.value?{...S,transform:"translate("+x+"px, "+P+"px)",...$3(u.value)>=1.5&&{willChange:"transform"}}:{position:m.value,left:x+"px",top:P+"px"}});let g;function w(){if(c.value==null||u.value==null)return;const S=a.value;KF(c.value,u.value,{middleware:s.value,placement:o.value,strategy:i.value}).then(x=>{d.value=x.x,p.value=x.y,m.value=x.strategy,_.value=x.placement,y.value=x.middlewareData,b.value=S!==!1})}function v(){typeof g=="function"&&(g(),g=void 0)}function k(){if(v(),r===void 0){w();return}if(c.value!=null&&u.value!=null){g=r(c.value,u.value,w);return}}function $(){a.value||(b.value=!1)}return Ue([s,o,i,a],w,{flush:"sync"}),Ue([c,u],k,{flush:"sync"}),Ue(a,$,{flush:"sync"}),_d()&&tm(v),{x:xa(d),y:xa(p),strategy:xa(m),placement:xa(_),middlewareData:xa(y),isPositioned:xa(b),floatingStyles:h,update:w}}const I3=6048e5,ZF=864e5,JF=6e4,eV=36e5,tV=1e3,x0=Symbol.for("constructDateFrom");function St(e,t){return typeof e=="function"?e(t):e&&typeof e=="object"&&x0 in e?e[x0](t):e instanceof Date?new e.constructor(t):new Date(t)}function ze(e,t){return St(t||e,e)}function rr(e,t,n){const r=ze(e,n?.in);return isNaN(t)?St(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Ar(e,t,n){const r=ze(e,n?.in);if(isNaN(t))return St(e,NaN);if(!t)return r;const a=r.getDate(),s=St(e,r.getTime());s.setMonth(r.getMonth()+t+1,0);const o=s.getDate();return a>=o?s:(r.setFullYear(s.getFullYear(),s.getMonth(),a),r)}function R3(e,t,n){const{years:r=0,months:a=0,weeks:s=0,days:o=0,hours:i=0,minutes:l=0,seconds:c=0}=t,u=ze(e,n?.in),d=a||r?Ar(u,a+r*12):u,p=o||s?rr(d,o+s*7):d,m=l+i*60,y=(c+m*60)*1e3;return St(e,+p+y)}let nV={};function Do(){return nV}function fr(e,t){const n=Do(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=ze(e,t?.in),s=a.getDay(),o=(s=s.getTime()?r+1:n.getTime()>=i.getTime()?r:r-1}function ld(e){const t=ze(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Du(e,...t){const n=St.bind(null,t.find(r=>typeof r=="object"));return t.map(n)}function k0(e,t){const n=ze(e,t?.in);return n.setHours(0,0,0,0),n}function L3(e,t,n){const[r,a]=Du(n?.in,e,t),s=k0(r),o=k0(a),i=+s-ld(s),l=+o-ld(o);return Math.round((i-l)/ZF)}function rV(e,t){const n=N3(e,t),r=St(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),ki(r)}function aV(e,t,n){return Ar(e,t*3,n)}function bv(e,t,n){return Ar(e,t*12,n)}function C0(e,t){const n=+ze(e)-+ze(t);return n<0?-1:n>0?1:n}function F3(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Ll(e){return!(!F3(e)&&typeof e!="number"||isNaN(+ze(e)))}function A0(e,t){const n=ze(e,t?.in);return Math.trunc(n.getMonth()/3)+1}function sV(e,t,n){const[r,a]=Du(n?.in,e,t);return r.getFullYear()-a.getFullYear()}function oV(e){return t=>{const r=(e?Math[e]:Math.trunc)(t);return r===0?0:r}}function iV(e,t,n){const[r,a]=Du(n?.in,e,t),s=C0(r,a),o=Math.abs(sV(r,a));r.setFullYear(1584),a.setFullYear(1584);const i=C0(r,a)===-s,l=s*(o-+i);return l===0?0:l}function V3(e,t){const[n,r]=Du(e,t.start,t.end);return{start:n,end:r}}function wv(e,t){const{start:n,end:r}=V3(t?.in,e);let a=+n>+r;const s=a?+n:+r,o=a?r:n;o.setHours(0,0,0,0);let i=1;const l=[];for(;+o<=s;)l.push(St(n,o)),o.setDate(o.getDate()+i),o.setHours(0,0,0,0);return a?l.reverse():l}function ro(e,t){const n=ze(e,t?.in),r=n.getMonth(),a=r-r%3;return n.setMonth(a,1),n.setHours(0,0,0,0),n}function lV(e,t){const{start:n,end:r}=V3(t?.in,e);let a=+n>+r;const s=a?+ro(n):+ro(r);let o=ro(a?r:n),i=1;const l=[];for(;+o<=s;)l.push(St(n,o)),o=aV(o,i);return a?l.reverse():l}function uV(e,t){const n=ze(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function Y3(e,t){const n=ze(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function di(e,t){const n=ze(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Sv(e,t){const n=Do(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,a=ze(e,t?.in),s=a.getDay(),o=(s{let r;const a=cV[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r};function vp(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const fV={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},pV={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},hV={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},mV={date:vp({formats:fV,defaultWidth:"full"}),time:vp({formats:pV,defaultWidth:"full"}),dateTime:vp({formats:hV,defaultWidth:"full"})},vV={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},gV=(e,t,n,r)=>vV[e];function cl(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):o;a=e.formattingValues[i]||e.formattingValues[o]}else{const o=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[o]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}const yV={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},_V={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},bV={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},wV={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},SV={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},TV={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},EV=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},xV={ordinalNumber:EV,era:cl({values:yV,defaultWidth:"wide"}),quarter:cl({values:_V,defaultWidth:"wide",argumentCallback:e=>e-1}),month:cl({values:bV,defaultWidth:"wide"}),day:cl({values:wV,defaultWidth:"wide"}),dayPeriod:cl({values:SV,defaultWidth:"wide",formattingValues:TV,defaultFormattingWidth:"wide"})};function dl(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const o=s[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(i)?CV(i,d=>d.test(o)):kV(i,d=>d.test(o));let c;c=e.valueCallback?e.valueCallback(l):l,c=n.valueCallback?n.valueCallback(c):c;const u=t.slice(o.length);return{value:c,rest:u}}}function kV(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function CV(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];o=n.valueCallback?n.valueCallback(o):o;const i=t.slice(a.length);return{value:o,rest:i}}}const DV=/^(\d+)(th|st|nd|rd)?/i,MV=/\d+/i,OV={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PV={any:[/^b/i,/^(a|c)/i]},$V={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},IV={any:[/1/i,/2/i,/3/i,/4/i]},RV={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},NV={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LV={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},FV={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},VV={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},YV={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},WV={ordinalNumber:AV({matchPattern:DV,parsePattern:MV,valueCallback:e=>parseInt(e,10)}),era:dl({matchPatterns:OV,defaultMatchWidth:"wide",parsePatterns:PV,defaultParseWidth:"any"}),quarter:dl({matchPatterns:$V,defaultMatchWidth:"wide",parsePatterns:IV,defaultParseWidth:"any",valueCallback:e=>e+1}),month:dl({matchPatterns:RV,defaultMatchWidth:"wide",parsePatterns:NV,defaultParseWidth:"any"}),day:dl({matchPatterns:LV,defaultMatchWidth:"wide",parsePatterns:FV,defaultParseWidth:"any"}),dayPeriod:dl({matchPatterns:VV,defaultMatchWidth:"any",parsePatterns:YV,defaultParseWidth:"any"})},W3={code:"en-US",formatDistance:dV,formatLong:mV,formatRelative:gV,localize:xV,match:WV,options:{weekStartsOn:0,firstWeekContainsDate:1}};function HV(e,t){const n=ze(e,t?.in);return L3(n,di(n))+1}function Tv(e,t){const n=ze(e,t?.in),r=+ki(n)-+rV(n);return Math.round(r/I3)+1}function Ev(e,t){const n=ze(e,t?.in),r=n.getFullYear(),a=Do(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=St(t?.in||e,0);o.setFullYear(r+1,0,s),o.setHours(0,0,0,0);const i=fr(o,t),l=St(t?.in||e,0);l.setFullYear(r,0,s),l.setHours(0,0,0,0);const c=fr(l,t);return+n>=+i?r+1:+n>=+c?r:r-1}function BV(e,t){const n=Do(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,a=Ev(e,t),s=St(t?.in||e,0);return s.setFullYear(a,0,r),s.setHours(0,0,0,0),fr(s,t)}function xv(e,t){const n=ze(e,t?.in),r=+fr(n,t)-+BV(n,t);return Math.round(r/I3)+1}function _t(e,t){const n=e<0?"-":"",r=Math.abs(e).toString().padStart(t,"0");return n+r}const as={y(e,t){const n=e.getFullYear(),r=n>0?n:1-n;return _t(t==="yy"?r%100:r,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):_t(n+1,2)},d(e,t){return _t(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];case"aaaa":default:return n==="am"?"a.m.":"p.m."}},h(e,t){return _t(e.getHours()%12||12,t.length)},H(e,t){return _t(e.getHours(),t.length)},m(e,t){return _t(e.getMinutes(),t.length)},s(e,t){return _t(e.getSeconds(),t.length)},S(e,t){const n=t.length,r=e.getMilliseconds(),a=Math.trunc(r*Math.pow(10,n-3));return _t(a,t.length)}},Vo={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},M0={G:function(e,t,n){const r=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(r,{width:"abbreviated"});case"GGGGG":return n.era(r,{width:"narrow"});case"GGGG":default:return n.era(r,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const r=e.getFullYear(),a=r>0?r:1-r;return n.ordinalNumber(a,{unit:"year"})}return as.y(e,t)},Y:function(e,t,n,r){const a=Ev(e,r),s=a>0?a:1-a;if(t==="YY"){const o=s%100;return _t(o,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):_t(s,t.length)},R:function(e,t){const n=N3(e);return _t(n,t.length)},u:function(e,t){const n=e.getFullYear();return _t(n,t.length)},Q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(r);case"QQ":return _t(r,2);case"Qo":return n.ordinalNumber(r,{unit:"quarter"});case"QQQ":return n.quarter(r,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(r,{width:"narrow",context:"formatting"});case"QQQQ":default:return n.quarter(r,{width:"wide",context:"formatting"})}},q:function(e,t,n){const r=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(r);case"qq":return _t(r,2);case"qo":return n.ordinalNumber(r,{unit:"quarter"});case"qqq":return n.quarter(r,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(r,{width:"narrow",context:"standalone"});case"qqqq":default:return n.quarter(r,{width:"wide",context:"standalone"})}},M:function(e,t,n){const r=e.getMonth();switch(t){case"M":case"MM":return as.M(e,t);case"Mo":return n.ordinalNumber(r+1,{unit:"month"});case"MMM":return n.month(r,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(r,{width:"narrow",context:"formatting"});case"MMMM":default:return n.month(r,{width:"wide",context:"formatting"})}},L:function(e,t,n){const r=e.getMonth();switch(t){case"L":return String(r+1);case"LL":return _t(r+1,2);case"Lo":return n.ordinalNumber(r+1,{unit:"month"});case"LLL":return n.month(r,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(r,{width:"narrow",context:"standalone"});case"LLLL":default:return n.month(r,{width:"wide",context:"standalone"})}},w:function(e,t,n,r){const a=xv(e,r);return t==="wo"?n.ordinalNumber(a,{unit:"week"}):_t(a,t.length)},I:function(e,t,n){const r=Tv(e);return t==="Io"?n.ordinalNumber(r,{unit:"week"}):_t(r,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):as.d(e,t)},D:function(e,t,n){const r=HV(e);return t==="Do"?n.ordinalNumber(r,{unit:"dayOfYear"}):_t(r,t.length)},E:function(e,t,n){const r=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(r,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(r,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(r,{width:"short",context:"formatting"});case"EEEE":default:return n.day(r,{width:"wide",context:"formatting"})}},e:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return _t(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(a,{width:"short",context:"formatting"});case"eeee":default:return n.day(a,{width:"wide",context:"formatting"})}},c:function(e,t,n,r){const a=e.getDay(),s=(a-r.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return _t(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(a,{width:"narrow",context:"standalone"});case"cccccc":return n.day(a,{width:"short",context:"standalone"});case"cccc":default:return n.day(a,{width:"wide",context:"standalone"})}},i:function(e,t,n){const r=e.getDay(),a=r===0?7:r;switch(t){case"i":return String(a);case"ii":return _t(a,t.length);case"io":return n.ordinalNumber(a,{unit:"day"});case"iii":return n.day(r,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(r,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(r,{width:"short",context:"formatting"});case"iiii":default:return n.day(r,{width:"wide",context:"formatting"})}},a:function(e,t,n){const a=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(e,t,n){const r=e.getHours();let a;switch(r===12?a=Vo.noon:r===0?a=Vo.midnight:a=r/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(e,t,n){const r=e.getHours();let a;switch(r>=17?a=Vo.evening:r>=12?a=Vo.afternoon:r>=4?a=Vo.morning:a=Vo.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return n.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let r=e.getHours()%12;return r===0&&(r=12),n.ordinalNumber(r,{unit:"hour"})}return as.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):as.H(e,t)},K:function(e,t,n){const r=e.getHours()%12;return t==="Ko"?n.ordinalNumber(r,{unit:"hour"}):_t(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t==="ko"?n.ordinalNumber(r,{unit:"hour"}):_t(r,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):as.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):as.s(e,t)},S:function(e,t){return as.S(e,t)},X:function(e,t,n){const r=e.getTimezoneOffset();if(r===0)return"Z";switch(t){case"X":return P0(r);case"XXXX":case"XX":return Us(r);case"XXXXX":case"XXX":default:return Us(r,":")}},x:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"x":return P0(r);case"xxxx":case"xx":return Us(r);case"xxxxx":case"xxx":default:return Us(r,":")}},O:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+O0(r,":");case"OOOO":default:return"GMT"+Us(r,":")}},z:function(e,t,n){const r=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+O0(r,":");case"zzzz":default:return"GMT"+Us(r,":")}},t:function(e,t,n){const r=Math.trunc(+e/1e3);return _t(r,t.length)},T:function(e,t,n){return _t(+e,t.length)}};function O0(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=Math.trunc(r/60),s=r%60;return s===0?n+String(a):n+String(a)+t+_t(s,2)}function P0(e,t){return e%60===0?(e>0?"-":"+")+_t(Math.abs(e)/60,2):Us(e,t)}function Us(e,t=""){const n=e>0?"-":"+",r=Math.abs(e),a=_t(Math.trunc(r/60),2),s=_t(r%60,2);return n+a+t+s}const $0=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});case"PPPP":default:return t.date({width:"full"})}},H3=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});case"pppp":default:return t.time({width:"full"})}},jV=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],r=n[1],a=n[2];if(!a)return $0(e,t);let s;switch(r){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;case"PPPP":default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",$0(r,t)).replace("{{time}}",H3(a,t))},Vh={p:H3,P:jV},UV=/^D+$/,zV=/^Y+$/,GV=["D","DD","YY","YYYY"];function B3(e){return UV.test(e)}function j3(e){return zV.test(e)}function Yh(e,t,n){const r=qV(e,t,n);if(console.warn(r),GV.includes(e))throw new RangeError(r)}function qV(e,t,n){const r=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const KV=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,QV=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,XV=/^'([^]*?)'?$/,ZV=/''/g,JV=/[a-zA-Z]/;function tr(e,t,n){const r=Do(),a=n?.locale??r.locale??W3,s=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,i=ze(e,n?.in);if(!Ll(i))throw new RangeError("Invalid time value");let l=t.match(QV).map(u=>{const d=u[0];if(d==="p"||d==="P"){const p=Vh[d];return p(u,a.formatLong)}return u}).join("").match(KV).map(u=>{if(u==="''")return{isToken:!1,value:"'"};const d=u[0];if(d==="'")return{isToken:!1,value:eY(u)};if(M0[d])return{isToken:!0,value:u};if(d.match(JV))throw new RangeError("Format string contains an unescaped latin alphabet character `"+d+"`");return{isToken:!1,value:u}});a.localize.preprocessor&&(l=a.localize.preprocessor(i,l));const c={firstWeekContainsDate:s,weekStartsOn:o,locale:a};return l.map(u=>{if(!u.isToken)return u.value;const d=u.value;(!n?.useAdditionalWeekYearTokens&&j3(d)||!n?.useAdditionalDayOfYearTokens&&B3(d))&&Yh(d,t,String(e));const p=M0[d[0]];return p(i,d,a.localize,c)}).join("")}function eY(e){const t=e.match(XV);return t?t[1].replace(ZV,"'"):e}function tY(e,t){return ze(e,t?.in).getDay()}function nY(e,t){const n=ze(e,t?.in),r=n.getFullYear(),a=n.getMonth(),s=St(n,0);return s.setFullYear(r,a+1,0),s.setHours(0,0,0,0),s.getDate()}function rY(){return Object.assign({},Do())}function pa(e,t){return ze(e,t?.in).getHours()}function aY(e,t){const n=ze(e,t?.in).getDay();return n===0?7:n}function Ua(e,t){return ze(e,t?.in).getMinutes()}function at(e,t){return ze(e,t?.in).getMonth()}function xs(e){return ze(e).getSeconds()}function qe(e,t){return ze(e,t?.in).getFullYear()}function To(e,t){return+ze(e)>+ze(t)}function Ci(e,t){return+ze(e)<+ze(t)}function Zo(e,t){return+ze(e)==+ze(t)}function sY(e,t){const n=oY(t)?new t(0):St(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function oY(e){return typeof e=="function"&&e.prototype?.constructor===e}const iY=10;class U3{subPriority=0;validate(t,n){return!0}}class lY extends U3{constructor(t,n,r,a,s){super(),this.value=t,this.validateValue=n,this.setValue=r,this.priority=a,s&&(this.subPriority=s)}validate(t,n){return this.validateValue(t,this.value,n)}set(t,n,r){return this.setValue(t,n,this.value,r)}}class uY extends U3{priority=iY;subPriority=-1;constructor(t,n){super(),this.context=t||(r=>St(n,r))}set(t,n){return n.timestampIsSet?t:St(t,sY(t,this.context))}}class vt{run(t,n,r,a){const s=this.parse(t,n,r,a);return s?{setter:new lY(s.value,this.validate,this.set,this.priority,this.subPriority),rest:s.rest}:null}validate(t,n,r){return!0}}class cY extends vt{priority=140;parse(t,n,r){switch(n){case"G":case"GG":case"GGG":return r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"});case"GGGGG":return r.era(t,{width:"narrow"});case"GGGG":default:return r.era(t,{width:"wide"})||r.era(t,{width:"abbreviated"})||r.era(t,{width:"narrow"})}}set(t,n,r){return n.era=r,t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["R","u","t","T"]}const qt={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Zr={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function Kt(e,t){return e&&{value:t(e.value),rest:e.rest}}function Yt(e,t){const n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function Jr(e,t){const n=t.match(e);if(!n)return null;if(n[0]==="Z")return{value:0,rest:t.slice(1)};const r=n[1]==="+"?1:-1,a=n[2]?parseInt(n[2],10):0,s=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(a*eV+s*JF+o*tV),rest:t.slice(n[0].length)}}function z3(e){return Yt(qt.anyDigitsSigned,e)}function jt(e,t){switch(e){case 1:return Yt(qt.singleDigit,t);case 2:return Yt(qt.twoDigits,t);case 3:return Yt(qt.threeDigits,t);case 4:return Yt(qt.fourDigits,t);default:return Yt(new RegExp("^\\d{1,"+e+"}"),t)}}function ud(e,t){switch(e){case 1:return Yt(qt.singleDigitSigned,t);case 2:return Yt(qt.twoDigitsSigned,t);case 3:return Yt(qt.threeDigitsSigned,t);case 4:return Yt(qt.fourDigitsSigned,t);default:return Yt(new RegExp("^-?\\d{1,"+e+"}"),t)}}function kv(e){switch(e){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function G3(e,t){const n=t>0,r=n?t:1-t;let a;if(r<=50)a=e||100;else{const s=r+50,o=Math.trunc(s/100)*100,i=e>=s%100;a=e+o-(i?100:0)}return n?a:1-a}function q3(e){return e%400===0||e%4===0&&e%100!==0}class dY extends vt{priority=130;incompatibleTokens=["Y","R","u","w","I","i","e","c","t","T"];parse(t,n,r){const a=s=>({year:s,isTwoDigitYear:n==="yy"});switch(n){case"y":return Kt(jt(4,t),a);case"yo":return Kt(r.ordinalNumber(t,{unit:"year"}),a);default:return Kt(jt(n.length,t),a)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,r){const a=t.getFullYear();if(r.isTwoDigitYear){const o=G3(r.year,a);return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}const s=!("era"in n)||n.era===1?r.year:1-r.year;return t.setFullYear(s,0,1),t.setHours(0,0,0,0),t}}class fY extends vt{priority=130;parse(t,n,r){const a=s=>({year:s,isTwoDigitYear:n==="YY"});switch(n){case"Y":return Kt(jt(4,t),a);case"Yo":return Kt(r.ordinalNumber(t,{unit:"year"}),a);default:return Kt(jt(n.length,t),a)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,r,a){const s=Ev(t,a);if(r.isTwoDigitYear){const i=G3(r.year,s);return t.setFullYear(i,0,a.firstWeekContainsDate),t.setHours(0,0,0,0),fr(t,a)}const o=!("era"in n)||n.era===1?r.year:1-r.year;return t.setFullYear(o,0,a.firstWeekContainsDate),t.setHours(0,0,0,0),fr(t,a)}incompatibleTokens=["y","R","u","Q","q","M","L","I","d","D","i","t","T"]}class pY extends vt{priority=130;parse(t,n){return ud(n==="R"?4:n.length,t)}set(t,n,r){const a=St(t,0);return a.setFullYear(r,0,4),a.setHours(0,0,0,0),ki(a)}incompatibleTokens=["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"]}class hY extends vt{priority=130;parse(t,n){return ud(n==="u"?4:n.length,t)}set(t,n,r){return t.setFullYear(r,0,1),t.setHours(0,0,0,0),t}incompatibleTokens=["G","y","Y","R","w","I","i","e","c","t","T"]}class mY extends vt{priority=120;parse(t,n,r){switch(n){case"Q":case"QQ":return jt(n.length,t);case"Qo":return r.ordinalNumber(t,{unit:"quarter"});case"QQQ":return r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return r.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return r.quarter(t,{width:"wide",context:"formatting"})||r.quarter(t,{width:"abbreviated",context:"formatting"})||r.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=1&&n<=4}set(t,n,r){return t.setMonth((r-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"]}class vY extends vt{priority=120;parse(t,n,r){switch(n){case"q":case"qq":return jt(n.length,t);case"qo":return r.ordinalNumber(t,{unit:"quarter"});case"qqq":return r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return r.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return r.quarter(t,{width:"wide",context:"standalone"})||r.quarter(t,{width:"abbreviated",context:"standalone"})||r.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=1&&n<=4}set(t,n,r){return t.setMonth((r-1)*3,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"]}class gY extends vt{incompatibleTokens=["Y","R","q","Q","L","w","I","D","i","e","c","t","T"];priority=110;parse(t,n,r){const a=s=>s-1;switch(n){case"M":return Kt(Yt(qt.month,t),a);case"MM":return Kt(jt(2,t),a);case"Mo":return Kt(r.ordinalNumber(t,{unit:"month"}),a);case"MMM":return r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return r.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return r.month(t,{width:"wide",context:"formatting"})||r.month(t,{width:"abbreviated",context:"formatting"})||r.month(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=11}set(t,n,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}}class yY extends vt{priority=110;parse(t,n,r){const a=s=>s-1;switch(n){case"L":return Kt(Yt(qt.month,t),a);case"LL":return Kt(jt(2,t),a);case"Lo":return Kt(r.ordinalNumber(t,{unit:"month"}),a);case"LLL":return r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return r.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return r.month(t,{width:"wide",context:"standalone"})||r.month(t,{width:"abbreviated",context:"standalone"})||r.month(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=11}set(t,n,r){return t.setMonth(r,1),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","w","I","D","i","e","c","t","T"]}function _Y(e,t,n){const r=ze(e,n?.in),a=xv(r,n)-t;return r.setDate(r.getDate()-a*7),ze(r,n?.in)}class bY extends vt{priority=100;parse(t,n,r){switch(n){case"w":return Yt(qt.week,t);case"wo":return r.ordinalNumber(t,{unit:"week"});default:return jt(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,r,a){return fr(_Y(t,r,a),a)}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","i","t","T"]}function wY(e,t,n){const r=ze(e,n?.in),a=Tv(r,n)-t;return r.setDate(r.getDate()-a*7),r}class SY extends vt{priority=100;parse(t,n,r){switch(n){case"I":return Yt(qt.week,t);case"Io":return r.ordinalNumber(t,{unit:"week"});default:return jt(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,r){return ki(wY(t,r))}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"]}const TY=[31,28,31,30,31,30,31,31,30,31,30,31],EY=[31,29,31,30,31,30,31,31,30,31,30,31];class xY extends vt{priority=90;subPriority=1;parse(t,n,r){switch(n){case"d":return Yt(qt.date,t);case"do":return r.ordinalNumber(t,{unit:"date"});default:return jt(n.length,t)}}validate(t,n){const r=t.getFullYear(),a=q3(r),s=t.getMonth();return a?n>=1&&n<=EY[s]:n>=1&&n<=TY[s]}set(t,n,r){return t.setDate(r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","w","I","D","i","e","c","t","T"]}class kY extends vt{priority=90;subpriority=1;parse(t,n,r){switch(n){case"D":case"DD":return Yt(qt.dayOfYear,t);case"Do":return r.ordinalNumber(t,{unit:"date"});default:return jt(n.length,t)}}validate(t,n){const r=t.getFullYear();return q3(r)?n>=1&&n<=366:n>=1&&n<=365}set(t,n,r){return t.setMonth(0,r),t.setHours(0,0,0,0),t}incompatibleTokens=["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"]}function Cv(e,t,n){const r=Do(),a=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=ze(e,n?.in),o=s.getDay(),l=(t%7+7)%7,c=7-a,u=t<0||t>6?t-(o+c)%7:(l+c)%7-(o+c)%7;return rr(s,u,n)}class CY extends vt{priority=90;parse(t,n,r){switch(n){case"E":case"EE":case"EEE":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return r.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,r,a){return t=Cv(t,r,a),t.setHours(0,0,0,0),t}incompatibleTokens=["D","i","e","c","t","T"]}class AY extends vt{priority=90;parse(t,n,r,a){const s=o=>{const i=Math.floor((o-1)/7)*7;return(o+a.weekStartsOn+6)%7+i};switch(n){case"e":case"ee":return Kt(jt(n.length,t),s);case"eo":return Kt(r.ordinalNumber(t,{unit:"day"}),s);case"eee":return r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeeee":return r.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,r,a){return t=Cv(t,r,a),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"]}class DY extends vt{priority=90;parse(t,n,r,a){const s=o=>{const i=Math.floor((o-1)/7)*7;return(o+a.weekStartsOn+6)%7+i};switch(n){case"c":case"cc":return Kt(jt(n.length,t),s);case"co":return Kt(r.ordinalNumber(t,{unit:"day"}),s);case"ccc":return r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"ccccc":return r.day(t,{width:"narrow",context:"standalone"});case"cccccc":return r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return r.day(t,{width:"wide",context:"standalone"})||r.day(t,{width:"abbreviated",context:"standalone"})||r.day(t,{width:"short",context:"standalone"})||r.day(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=6}set(t,n,r,a){return t=Cv(t,r,a),t.setHours(0,0,0,0),t}incompatibleTokens=["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"]}function MY(e,t,n){const r=ze(e,n?.in),a=aY(r,n),s=t-a;return rr(r,s,n)}class OY extends vt{priority=90;parse(t,n,r){const a=s=>s===0?7:s;switch(n){case"i":case"ii":return jt(n.length,t);case"io":return r.ordinalNumber(t,{unit:"day"});case"iii":return Kt(r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),a);case"iiiii":return Kt(r.day(t,{width:"narrow",context:"formatting"}),a);case"iiiiii":return Kt(r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),a);case"iiii":default:return Kt(r.day(t,{width:"wide",context:"formatting"})||r.day(t,{width:"abbreviated",context:"formatting"})||r.day(t,{width:"short",context:"formatting"})||r.day(t,{width:"narrow",context:"formatting"}),a)}}validate(t,n){return n>=1&&n<=7}set(t,n,r){return t=MY(t,r),t.setHours(0,0,0,0),t}incompatibleTokens=["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"]}class PY extends vt{priority=80;parse(t,n,r){switch(n){case"a":case"aa":case"aaa":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,r){return t.setHours(kv(r),0,0,0),t}incompatibleTokens=["b","B","H","k","t","T"]}class $Y extends vt{priority=80;parse(t,n,r){switch(n){case"b":case"bb":case"bbb":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,r){return t.setHours(kv(r),0,0,0),t}incompatibleTokens=["a","B","H","k","t","T"]}class IY extends vt{priority=80;parse(t,n,r){switch(n){case"B":case"BB":case"BBB":return r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return r.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return r.dayPeriod(t,{width:"wide",context:"formatting"})||r.dayPeriod(t,{width:"abbreviated",context:"formatting"})||r.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,r){return t.setHours(kv(r),0,0,0),t}incompatibleTokens=["a","b","t","T"]}class RY extends vt{priority=70;parse(t,n,r){switch(n){case"h":return Yt(qt.hour12h,t);case"ho":return r.ordinalNumber(t,{unit:"hour"});default:return jt(n.length,t)}}validate(t,n){return n>=1&&n<=12}set(t,n,r){const a=t.getHours()>=12;return a&&r<12?t.setHours(r+12,0,0,0):!a&&r===12?t.setHours(0,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["H","K","k","t","T"]}class NY extends vt{priority=70;parse(t,n,r){switch(n){case"H":return Yt(qt.hour23h,t);case"Ho":return r.ordinalNumber(t,{unit:"hour"});default:return jt(n.length,t)}}validate(t,n){return n>=0&&n<=23}set(t,n,r){return t.setHours(r,0,0,0),t}incompatibleTokens=["a","b","h","K","k","t","T"]}class LY extends vt{priority=70;parse(t,n,r){switch(n){case"K":return Yt(qt.hour11h,t);case"Ko":return r.ordinalNumber(t,{unit:"hour"});default:return jt(n.length,t)}}validate(t,n){return n>=0&&n<=11}set(t,n,r){return t.getHours()>=12&&r<12?t.setHours(r+12,0,0,0):t.setHours(r,0,0,0),t}incompatibleTokens=["h","H","k","t","T"]}class FY extends vt{priority=70;parse(t,n,r){switch(n){case"k":return Yt(qt.hour24h,t);case"ko":return r.ordinalNumber(t,{unit:"hour"});default:return jt(n.length,t)}}validate(t,n){return n>=1&&n<=24}set(t,n,r){const a=r<=24?r%24:r;return t.setHours(a,0,0,0),t}incompatibleTokens=["a","b","h","H","K","t","T"]}class VY extends vt{priority=60;parse(t,n,r){switch(n){case"m":return Yt(qt.minute,t);case"mo":return r.ordinalNumber(t,{unit:"minute"});default:return jt(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,r){return t.setMinutes(r,0,0),t}incompatibleTokens=["t","T"]}class YY extends vt{priority=50;parse(t,n,r){switch(n){case"s":return Yt(qt.second,t);case"so":return r.ordinalNumber(t,{unit:"second"});default:return jt(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,r){return t.setSeconds(r,0),t}incompatibleTokens=["t","T"]}class WY extends vt{priority=30;parse(t,n){const r=a=>Math.trunc(a*Math.pow(10,-n.length+3));return Kt(jt(n.length,t),r)}set(t,n,r){return t.setMilliseconds(r),t}incompatibleTokens=["t","T"]}class HY extends vt{priority=10;parse(t,n){switch(n){case"X":return Jr(Zr.basicOptionalMinutes,t);case"XX":return Jr(Zr.basic,t);case"XXXX":return Jr(Zr.basicOptionalSeconds,t);case"XXXXX":return Jr(Zr.extendedOptionalSeconds,t);case"XXX":default:return Jr(Zr.extended,t)}}set(t,n,r){return n.timestampIsSet?t:St(t,t.getTime()-ld(t)-r)}incompatibleTokens=["t","T","x"]}class BY extends vt{priority=10;parse(t,n){switch(n){case"x":return Jr(Zr.basicOptionalMinutes,t);case"xx":return Jr(Zr.basic,t);case"xxxx":return Jr(Zr.basicOptionalSeconds,t);case"xxxxx":return Jr(Zr.extendedOptionalSeconds,t);case"xxx":default:return Jr(Zr.extended,t)}}set(t,n,r){return n.timestampIsSet?t:St(t,t.getTime()-ld(t)-r)}incompatibleTokens=["t","T","X"]}class jY extends vt{priority=40;parse(t){return z3(t)}set(t,n,r){return[St(t,r*1e3),{timestampIsSet:!0}]}incompatibleTokens="*"}class UY extends vt{priority=20;parse(t){return z3(t)}set(t,n,r){return[St(t,r),{timestampIsSet:!0}]}incompatibleTokens="*"}const zY={G:new cY,y:new dY,Y:new fY,R:new pY,u:new hY,Q:new mY,q:new vY,M:new gY,L:new yY,w:new bY,I:new SY,d:new xY,D:new kY,E:new CY,e:new AY,c:new DY,i:new OY,a:new PY,b:new $Y,B:new IY,h:new RY,H:new NY,K:new LY,k:new FY,m:new VY,s:new YY,S:new WY,X:new HY,x:new BY,t:new jY,T:new UY},GY=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,qY=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,KY=/^'([^]*?)'?$/,QY=/''/g,XY=/\S/,ZY=/[a-zA-Z]/;function Wh(e,t,n,r){const a=()=>St(r?.in||n,NaN),s=rY(),o=r?.locale??s.locale??W3,i=r?.firstWeekContainsDate??r?.locale?.options?.firstWeekContainsDate??s.firstWeekContainsDate??s.locale?.options?.firstWeekContainsDate??1,l=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??s.weekStartsOn??s.locale?.options?.weekStartsOn??0;if(!t)return e?a():ze(n,r?.in);const c={firstWeekContainsDate:i,weekStartsOn:l,locale:o},u=[new uY(r?.in,n)],d=t.match(qY).map(b=>{const h=b[0];if(h in Vh){const g=Vh[h];return g(b,o.formatLong)}return b}).join("").match(GY),p=[];for(let b of d){!r?.useAdditionalWeekYearTokens&&j3(b)&&Yh(b,t,e),!r?.useAdditionalDayOfYearTokens&&B3(b)&&Yh(b,t,e);const h=b[0],g=zY[h];if(g){const{incompatibleTokens:w}=g;if(Array.isArray(w)){const k=p.find($=>w.includes($.token)||$.token===h);if(k)throw new RangeError(`The format string mustn't contain \`${k.fullToken}\` and \`${b}\` at the same time`)}else if(g.incompatibleTokens==="*"&&p.length>0)throw new RangeError(`The format string mustn't contain \`${b}\` and any other token at the same time`);p.push({token:h,fullToken:b});const v=g.run(e,b,o.match,c);if(!v)return a();u.push(v.setter),e=v.rest}else{if(h.match(ZY))throw new RangeError("Format string contains an unescaped latin alphabet character `"+h+"`");if(b==="''"?b="'":h==="'"&&(b=JY(b)),e.indexOf(b)===0)e=e.slice(b.length);else return a()}}if(e.length>0&&XY.test(e))return a();const m=u.map(b=>b.priority).sort((b,h)=>h-b).filter((b,h,g)=>g.indexOf(b)===h).map(b=>u.filter(h=>h.priority===b).sort((h,g)=>g.subPriority-h.subPriority)).map(b=>b[0]);let _=ze(n,r?.in);if(isNaN(+_))return a();const y={};for(const b of m){if(!b.validate(_,c))return a();const h=b.set(_,y,c);Array.isArray(h)?(_=h[0],Object.assign(y,h[1])):_=h}return _}function JY(e){return e.match(KY)[1].replace(QY,"'")}function I0(e,t,n){const[r,a]=Du(n?.in,e,t);return+ro(r)==+ro(a)}function K3(e,t,n){return rr(e,-t,n)}function eW(e,t){const n=t?.nearestTo??1;if(n<1||n>30)return St(e,NaN);const r=ze(e,t?.in),a=r.getSeconds()/60,s=r.getMilliseconds()/1e3/60,o=r.getMinutes()+a+s,i=t?.roundingMethod??"round",c=oV(i)(o/n)*n;return r.setMinutes(c,0,0),r}function Q3(e,t,n){const r=ze(e,n?.in),a=r.getFullYear(),s=r.getDate(),o=St(e,0);o.setFullYear(a,t,15),o.setHours(0,0,0,0);const i=nY(o);return r.setMonth(t,Math.min(s,i)),r}function nt(e,t,n){let r=ze(e,n?.in);return isNaN(+r)?St(e,NaN):(t.year!=null&&r.setFullYear(t.year),t.month!=null&&(r=Q3(r,t.month)),t.date!=null&&r.setDate(t.date),t.hours!=null&&r.setHours(t.hours),t.minutes!=null&&r.setMinutes(t.minutes),t.seconds!=null&&r.setSeconds(t.seconds),t.milliseconds!=null&&r.setMilliseconds(t.milliseconds),r)}function tW(e,t,n){const r=ze(e,n?.in);return r.setMilliseconds(t),r}function nW(e,t,n){const r=ze(e,n?.in);return r.setSeconds(t),r}function Sr(e,t,n){const r=ze(e,n?.in);return isNaN(+r)?St(e,NaN):(r.setFullYear(t),r)}function Ai(e,t,n){return Ar(e,-t,n)}function rW(e,t,n){const{years:r=0,months:a=0,weeks:s=0,days:o=0,hours:i=0,minutes:l=0,seconds:c=0}=t,u=Ai(e,a+r*12,n),d=K3(u,o+s*7,n),p=l+i*60,_=(c+p*60)*1e3;return St(e,+d-_)}function X3(e,t,n){return bv(e,-t,n)}function aW(e,t,n="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(" ")}const sW={},bl={};function ao(e,t){try{const r=(sW[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return r in bl?bl[r]:R0(r,r.split(":"))}catch{if(e in bl)return bl[e];const n=e?.match(oW);return n?R0(e,n.slice(1)):NaN}}const oW=/([+-]\d\d):?(\d\d)?/;function R0(e,t){const n=+(t[0]||0),r=+(t[1]||0),a=+(t[2]||0)/60;return bl[e]=n*60+r>0?n*60+r+a:n*60-r-a}class na extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(ao(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),Z3(this),Hh(this)):this.setTime(Date.now())}static tz(t,...n){return n.length?new na(...n,t):new na(Date.now(),t)}withTimeZone(t){return new na(+this,t)}getTimezoneOffset(){const t=-ao(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),Hh(this),+this}[Symbol.for("constructDateFrom")](t){return new na(+new Date(t),this.timeZone)}}const N0=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!N0.test(e))return;const t=e.replace(N0,"$1UTC");na.prototype[t]&&(e.startsWith("get")?na.prototype[e]=function(){return this.internal[t]()}:(na.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),iW(this),+this},na.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),Hh(this),+this}))});function Hh(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-ao(e.timeZone,e)*60))}function iW(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),Z3(e)}function Z3(e){const t=ao(e.timeZone,e),n=t>0?Math.floor(t):Math.ceil(t),r=new Date(+e);r.setUTCHours(r.getUTCHours()-1);const a=-new Date(+e).getTimezoneOffset(),s=-new Date(+r).getTimezoneOffset(),o=a-s,i=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();o&&i&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+o);const l=a-n;l&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+l);const c=new Date(+e);c.setUTCSeconds(0);const u=a>0?c.getSeconds():(c.getSeconds()-60)%60,d=Math.round(-(ao(e.timeZone,e)*60))%60;(d||u)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+d),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+d+u));const p=ao(e.timeZone,e),m=p>0?Math.floor(p):Math.ceil(p),y=-new Date(+e).getTimezoneOffset()-m,b=m!==n,h=y-l;if(b&&h){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+h);const g=ao(e.timeZone,e),w=g>0?Math.floor(g):Math.ceil(g),v=m-w;v&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+v),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+v))}}class Jo extends na{static tz(t,...n){return n.length?new Jo(...n,t):new Jo(Date.now(),t)}toISOString(){const[t,n,r]=this.tzComponents(),a=`${t}${n}:${r}`;return this.internal.toISOString().slice(0,-1)+a}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,n,r,a]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${r} ${n} ${a}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[n,r,a]=this.tzComponents();return`${t} GMT${n}${r}${a} (${aW(this.timeZone,this)})`}toLocaleString(t,n){return Date.prototype.toLocaleString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleDateString(t,n){return Date.prototype.toLocaleDateString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}toLocaleTimeString(t,n){return Date.prototype.toLocaleTimeString.call(this,t,{...n,timeZone:n?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),n=t>0?"-":"+",r=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),a=String(Math.abs(t)%60).padStart(2,"0");return[n,r,a]}withTimeZone(t){return new Jo(+this,t)}[Symbol.for("constructDateFrom")](t){return new Jo(+new Date(t),this.timeZone)}}function Mu(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z"}),bt("path",{d:"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),bt("path",{d:"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"}),bt("path",{d:"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z"})])}function lW(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z"}),bt("path",{d:"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}function J3(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}function eS(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z"})])}function tS(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z"}),bt("path",{d:"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z"})])}function nS(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z"})])}function rS(){return bt("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor","aria-hidden":"true",class:"dp__icon",role:"img"},[bt("path",{d:"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z"})])}const Dt=Qt({monthYear:[],calendar:[],time:[],actionRow:[],selectionGrid:[],timePicker:{0:[],1:[]},monthPicker:[]}),gp=oe(null),ec=oe(!1),yp=oe(!1),_p=oe(!1),bp=oe(!1),_n=oe(0),Ut=oe(0),$s=()=>{const e=G(()=>ec.value?[...Dt.selectionGrid,Dt.actionRow].filter(d=>d.length):yp.value?[...Dt.timePicker[0],...Dt.timePicker[1],bp.value?[]:[gp.value],Dt.actionRow].filter(d=>d.length):_p.value?[...Dt.monthPicker,Dt.actionRow]:[Dt.monthYear,...Dt.calendar,Dt.time,Dt.actionRow].filter(d=>d.length)),t=d=>{_n.value=d?_n.value+1:_n.value-1;let p=null;e.value[Ut.value]&&(p=e.value[Ut.value][_n.value]),!p&&e.value[Ut.value+(d?1:-1)]?(Ut.value=Ut.value+(d?1:-1),_n.value=d?0:e.value[Ut.value].length-1):p||(_n.value=d?_n.value-1:_n.value+1)},n=d=>{Ut.value===0&&!d||Ut.value===e.value.length&&d||(Ut.value=d?Ut.value+1:Ut.value-1,e.value[Ut.value]?e.value[Ut.value]&&!e.value[Ut.value][_n.value]&&_n.value!==0&&(_n.value=e.value[Ut.value].length-1):Ut.value=d?Ut.value-1:Ut.value+1)},r=d=>{let p=null;e.value[Ut.value]&&(p=e.value[Ut.value][_n.value]),p?p.focus({preventScroll:!ec.value}):_n.value=d?_n.value-1:_n.value+1},a=()=>{t(!0),r(!0)},s=()=>{t(!1),r(!1)},o=()=>{n(!1),r(!0)},i=()=>{n(!0),r(!0)},l=(d,p)=>{Dt[p]=d},c=(d,p)=>{Dt[p]=d},u=()=>{_n.value=0,Ut.value=0};return{buildMatrix:l,buildMultiLevelMatrix:c,setTimePickerBackRef:d=>{gp.value=d},setSelectionGrid:d=>{ec.value=d,u(),d||(Dt.selectionGrid=[])},setTimePicker:(d,p=!1)=>{yp.value=d,bp.value=p,u(),d||(Dt.timePicker[0]=[],Dt.timePicker[1]=[])},setTimePickerElements:(d,p=0)=>{Dt.timePicker[p]=d},arrowRight:a,arrowLeft:s,arrowUp:o,arrowDown:i,clearArrowNav:()=>{Dt.monthYear=[],Dt.calendar=[],Dt.time=[],Dt.actionRow=[],Dt.selectionGrid=[],Dt.timePicker[0]=[],Dt.timePicker[1]=[],ec.value=!1,yp.value=!1,bp.value=!1,_p.value=!1,u(),gp.value=null},setMonthPicker:d=>{_p.value=d,u()},refSets:Dt}};var br=(e=>(e.month="month",e.year="year",e))(br||{}),vo=(e=>(e.header="header",e.calendar="calendar",e.timePicker="timePicker",e))(vo||{}),Mn=(e=>(e.month="month",e.year="year",e.calendar="calendar",e.time="time",e.minutes="minutes",e.hours="hours",e.seconds="seconds",e))(Mn||{});const uW=["timestamp","date","iso"];var An=(e=>(e.up="up",e.down="down",e.left="left",e.right="right",e))(An||{}),Mt=(e=>(e.arrowUp="ArrowUp",e.arrowDown="ArrowDown",e.arrowLeft="ArrowLeft",e.arrowRight="ArrowRight",e.enter="Enter",e.space=" ",e.esc="Escape",e.tab="Tab",e.home="Home",e.end="End",e.pageUp="PageUp",e.pageDown="PageDown",e))(Mt||{}),ei=(e=>(e.MONTH_AND_YEAR="MM-yyyy",e.YEAR="yyyy",e.DATE="dd-MM-yyyy",e))(ei||{});const cW=()=>{const{checkPartialRangeValue:e,checkRangeEnabled:t,isValidDate:n}=gr(),{convertType:r,errorMapper:a}=sn(),{getDate:s,rootEmit:o,state:i,rootProps:l,inputValue:c,defaults:{textInput:u,range:d,multiDates:p,timeConfig:m,formats:_},modelValue:y,updateTime:b}=it(),{setTime:h,getWeekFromDate:g}=kn(),{formatSelectedDate:w,formatForTextInput:v}=Rs();Ue(y,(F,J)=>{o("internal-model-change",y.value),JSON.stringify(J??{})!==JSON.stringify(F??{})&&b()},{deep:!0}),Ue(d,(F,J)=>{F.enabled!==J.enabled&&(y.value=null)}),Ue(()=>_.value.input,()=>{ke()});const k=F=>F?l.modelType?Pe(F):{hours:pa(F),minutes:Ua(F),seconds:m.value.enableSeconds?xs(F):0}:null,$=F=>l.modelType?Pe(F):{month:at(F),year:qe(F)},S=F=>Array.isArray(F)?p.value.enabled?F.map(J=>x(J,Sr(s(),J))):t(()=>[Sr(s(),F[0]),F[1]?Sr(s(),F[1]):e(d.value.partialRange)],d.value.enabled):Sr(s(),+F),x=(F,J)=>(typeof F=="string"||typeof F=="number")&&l.modelType?Oe(F):J,P=F=>Array.isArray(F)?[x(F[0],h(F[0])),x(F[1],h(F[1]))]:x(F,h(F)),R=F=>{const J=nt(s(),{date:1});return Array.isArray(F)?p.value.enabled?F.map(O=>x(O,nt(J,{month:+O.month,year:+O.year}))):t(()=>[x(F[0],nt(J,{month:+F[0].month,year:+F[0].year})),x(F[1],F[1]?nt(J,{month:+F[1].month,year:+F[1].year}):e(d.value.partialRange))],d.value.enabled):x(F,nt(J,{month:+F.month,year:+F.year}))},K=F=>{if(Array.isArray(F))return F.map(J=>Oe(J));throw new Error(a.dateArr("multi-dates"))},W=F=>{if(Array.isArray(F)&&d.value.enabled){const J=F[0],O=F[1];return[s(Array.isArray(J)?J[0]:null),Array.isArray(O)&&O.length?s(O[0]):null]}return s(F[0])},X=F=>l.modelAuto?Array.isArray(F)?[Oe(F[0]),Oe(F[1])]:l.autoApply?[Oe(F)]:[Oe(F),null]:Array.isArray(F)?t(()=>F[1]?[Oe(F[0]),F[1]?Oe(F[1]):e(d.value.partialRange)]:[Oe(F[0])],d.value.enabled):Oe(F),ce=()=>{Array.isArray(y.value)&&d.value.enabled&&y.value.length===1&&y.value.push(e(d.value.partialRange))},ie=()=>{const F=y.value;return[Pe(F[0]),F[1]?Pe(F[1]):e(d.value.partialRange)]},fe=()=>Array.isArray(y.value)?y.value[1]?ie():Pe(r(y.value[0])):[],j=()=>(y.value||[]).map(F=>Pe(F)),ne=(F=!1)=>(F||ce(),l.modelAuto?fe():p.value.enabled?j():Array.isArray(y.value)?t(()=>ie(),d.value.enabled):Pe(r(y.value))),le=F=>!F||Array.isArray(F)&&!F.length?null:l.timePicker?P(r(F)):l.monthPicker?R(r(F)):l.yearPicker?S(r(F)):p.value.enabled?K(r(F)):l.weekPicker?W(r(F)):X(r(F)),re=F=>{if(i.isTextInputDate)return;const J=le(F);n(r(J))?(y.value=r(J),ke()):(y.value=null,c.value="")},he=()=>y.value?p.value.enabled?y.value.map(F=>w(F)).join("; "):u.value.enabled?v():w(y.value):"",ke=()=>{c.value=he()},Oe=F=>l.modelType?uW.includes(l.modelType)?s(F):l.modelType==="format"&&typeof _.value.input=="string"?Wh(F,_.value.input,s(),{locale:l.locale}):Wh(F,l.modelType,s(),{locale:l.locale}):s(F),Pe=F=>F?l.modelType?l.modelType==="timestamp"?+F:l.modelType==="iso"?F.toISOString():l.modelType==="format"&&typeof _.value.input=="string"?w(F):w(F,l.modelType):F:null,Re=F=>{o("update:model-value",F)},Ie=F=>Array.isArray(y.value)?p.value.enabled?y.value.map(J=>F(J)):[F(y.value[0]),y.value[1]?F(y.value[1]):null]:F(r(y.value)),B=()=>{if(Array.isArray(y.value)){const F=g(y.value[0],l.weekStart),J=y.value[1]?g(y.value[1],l.weekStart):[];return[F.map(O=>s(O)),J.map(O=>s(O))]}return g(y.value,l.weekStart).map(F=>s(F))},se=F=>Re(r(Ie(F))),V=()=>o("update:model-value",B());return{checkBeforeEmit:()=>y.value?d.value.enabled?d.value.partialRange?y.value.length>=1:y.value.length===2:!!y.value:!1,parseExternalModelValue:re,formatInputValue:ke,emitModelValue:()=>(ke(),l.monthPicker?se($):l.timePicker?se(k):l.yearPicker?se(qe):l.weekPicker?V():Re(ne()))}},Sa=[{name:"clock-icon",use:["time","calendar","shared"]},{name:"arrow-left",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-right",use:["month-year","calendar","shared","year-mode"]},{name:"arrow-up",use:["time","calendar","month-year","shared"]},{name:"arrow-down",use:["time","calendar","month-year","shared"]},{name:"calendar-icon",use:["month-year","time","calendar","shared","year-mode"]},{name:"day",use:["calendar","shared"]},{name:"month-overlay-value",use:["calendar","month-year","shared"]},{name:"year-overlay-value",use:["calendar","month-year","shared","year-mode"]},{name:"year-overlay",use:["month-year","shared"]},{name:"month-overlay",use:["month-year","shared"]},{name:"month-overlay-header",use:["month-year","shared"]},{name:"year-overlay-header",use:["month-year","shared"]},{name:"hours-overlay-value",use:["calendar","time","shared"]},{name:"hours-overlay-header",use:["calendar","time","shared"]},{name:"minutes-overlay-value",use:["calendar","time","shared"]},{name:"minutes-overlay-header",use:["calendar","time","shared"]},{name:"seconds-overlay-value",use:["calendar","time","shared"]},{name:"seconds-overlay-header",use:["calendar","time","shared"]},{name:"hours",use:["calendar","time","shared"]},{name:"minutes",use:["calendar","time","shared"]},{name:"month",use:["calendar","month-year","shared"]},{name:"year",use:["calendar","month-year","shared","year-mode"]},{name:"action-buttons",use:["action"]},{name:"action-preview",use:["action"]},{name:"calendar-header",use:["calendar","shared"]},{name:"marker-tooltip",use:["calendar","shared"]},{name:"action-extra",use:["menu"]},{name:"time-picker-overlay",use:["calendar","time","shared"]},{name:"am-pm-button",use:["calendar","time","shared"]},{name:"left-sidebar",use:["menu"]},{name:"right-sidebar",use:["menu"]},{name:"month-year",use:["month-year","shared"]},{name:"time-picker",use:["menu","shared"]},{name:"action-row",use:["action"]},{name:"marker",use:["calendar","shared"]},{name:"quarter",use:["shared"]},{name:"top-extra",use:["shared","month-year"]},{name:"tp-inline-arrow-up",use:["shared","time"]},{name:"tp-inline-arrow-down",use:["shared","time"]},{name:"menu-header",use:["menu"]}],L0=[{name:"trigger"},{name:"input-icon"},{name:"clear-icon"},{name:"dp-input"}],dW={all:()=>Sa,root:()=>Sa.concat(L0),monthYear:()=>Sa.filter(e=>e.use.includes("month-year")),input:()=>L0,timePicker:()=>Sa.filter(e=>e.use.includes("time")),action:()=>Sa.filter(e=>e.use.includes("action")),calendar:()=>Sa.filter(e=>e.use.includes("calendar")),menu:()=>Sa.filter(e=>e.use.includes("menu")),shared:()=>Sa.filter(e=>e.use.includes("shared")),yearMode:()=>Sa.filter(e=>e.use.includes("year-mode"))},Is=()=>({mapSlots:(e,t,n)=>{const r=[];for(const a of dW[t]())e[a.name]&&r.push(a.name);if(n?.length)for(const a of n)a.slot&&r.push(a.slot);return r}}),aS=Symbol("ContextKey"),fW=(e,t)=>{const{setTimeModelValue:n}=sn(),r=nH(e),a=oe(null),s=Qt({menuFocused:!1,shiftKeyInMenu:!1,isInputFocused:!1,isTextInputDate:!1}),o=r.getDate(new Date),i=oe(""),l=oe([{month:at(o),year:qe(o)}]),c=Qt({hours:0,minutes:0,seconds:0});n(c,null,o,r.range.value.enabled);const u=G({get:()=>a.value,set:y=>{a.value=y}}),d=G(()=>y=>l.value[y]?l.value[y].month:0),p=G(()=>y=>l.value[y]?l.value[y].year:0),m=(y,b)=>{s[y]=b},_=()=>{n(c,u.value,o,r.range.value.enabled)};Cl(aS,{rootProps:e,defaults:r,modelValue:u,state:Mc(s),rootEmit:t,calendars:l,month:d,year:p,time:c,today:o,inputValue:i,setState:m,updateTime:_,getDate:r.getDate})},it=()=>{const e=In(aS);if(!e)throw new Error("Can't use context");return e},Ou=()=>{const{defaults:{transitions:e}}=it(),t=G(()=>r=>e.value?r?e.value.open:e.value.close:""),n=G(()=>r=>e.value?r?e.value.menuAppearTop:e.value.menuAppearBottom:"");return{transitionName:t,showTransition:!!e.value,menuTransition:n}},Pu=e=>{const{today:t,time:n,modelValue:r,defaults:{range:a}}=it(),{setTimeModelValue:s}=sn();Ue(a,(o,i)=>{o.enabled!==i.enabled&&s(n,r.value,t,a.value.enabled)},{deep:!0}),Ue(r,(o,i)=>{e&&JSON.stringify(o??{})!==JSON.stringify(i??{})&&e()},{deep:!0})},gr=()=>{const{defaults:{safeDates:e,range:t,multiDates:n,filters:r,timeConfig:a},rootProps:s,getDate:o}=it(),{getMapKeyType:i,getMapDate:l,errorMapper:c,convertType:u}=sn(),{isDateBefore:d,isDateAfter:p,isDateEqual:m,resetDate:_,getDaysInBetween:y,setTimeValue:b,getTimeObj:h,setTime:g}=kn(),w=T=>e.value.disabledDates?typeof e.value.disabledDates=="function"?e.value.disabledDates(o(T)):!!l(T,e.value.disabledDates):!1,v=T=>e.value.maxDate?s.yearPicker?qe(T)>qe(e.value.maxDate):p(T,e.value.maxDate):!1,k=T=>e.value.minDate?s.yearPicker?qe(T){if(!T)return!1;const C=v(T),E=k(T),I=w(T),H=r.value.months.map(U=>+U).includes(at(T)),Z=r.value.weekDays?.length?r.value.weekDays.some(U=>+U===tY(T)):!1,Y=K(T),z=qe(T),N=z<+s.yearRange[0]||z>+s.yearRange[1];return!(C||E||I||H||N||Z||Y)},S=(T,C)=>d(...V(e.value.minDate,T,C))||m(...V(e.value.minDate,T,C)),x=(T,C)=>p(...V(e.value.maxDate,T,C))||m(...V(e.value.maxDate,T,C)),P=(T,C,E)=>{let I=!1;return e.value.maxDate&&E&&x(T,C)&&(I=!0),e.value.minDate&&!E&&S(T,C)&&(I=!0),I},R=(T,C,E,I)=>{let H=!1;return I&&(e.value.minDate||e.value.maxDate)?e.value.minDate&&e.value.maxDate?H=P(T,C,E):(e.value.minDate&&S(T,C)||e.value.maxDate&&x(T,C))&&(H=!0):H=!0,H},K=T=>Array.isArray(e.value.allowedDates)&&!e.value.allowedDates.length?!0:e.value.allowedDates?!l(T,e.value.allowedDates,i(s.monthPicker,s.yearPicker)):!1,W=T=>!$(T),X=T=>t.value.noDisabledRange?!wv({start:T[0],end:T[1]}).some(C=>W(C)):!0,ce=T=>{if(T){const C=qe(T);return C>=+s.yearRange[0]&&C<=s.yearRange[1]}return!0},ie=(T,C)=>!!(Array.isArray(T)&&T[C]&&(t.value.maxRange||t.value.minRange)&&ce(T[C])),fe=(T,C,E=0)=>{if(ie(C,E)&&ce(T)){const I=L3(T,C[E]),H=y(C[E],T),Z=H.length===1?0:H.filter(z=>W(z)).length,Y=Math.abs(I)-(t.value.minMaxRawRange?0:Z);if(t.value.minRange&&t.value.maxRange)return Y>=+t.value.minRange&&Y<=+t.value.maxRange;if(t.value.minRange)return Y>=+t.value.minRange;if(t.value.maxRange)return Y<=+t.value.maxRange}return!0},j=()=>!a.value.enableTimePicker||s.monthPicker||s.yearPicker||a.value.ignoreTimeValidation,ne=T=>Array.isArray(T)?[T[0]?b(T[0]):null,T[1]?b(T[1]):null]:b(T),le=(T,C,E)=>C?T.find(I=>+I.hours===pa(C)&&I.minutes==="*"?!0:+I.minutes===Ua(C)&&+I.hours===pa(C))&&E:!1,re=(T,C,E)=>{const[I,H]=T,[Z,Y]=C;return!le(I,Z,E)&&!le(H,Y,E)&&E},he=(T,C)=>{const E=Array.isArray(C)?C:[C];return Array.isArray(s.disabledTimes)?Array.isArray(s.disabledTimes[0])?re(s.disabledTimes,E,T):!E.some(I=>le(s.disabledTimes,I,T)):T},ke=(T,C)=>{const E=Array.isArray(C)?[h(C[0]),C[1]?h(C[1]):void 0]:h(C),I=!s.disabledTimes(E);return T&&I},Oe=(T,C)=>s.disabledTimes?Array.isArray(s.disabledTimes)?he(C,T):ke(C,T):C,Pe=T=>{let C=!0;if(!T||j())return!0;const E=!e.value.minDate&&!e.value.maxDate?ne(T):T;return(s.maxTime||e.value.maxDate)&&(C=J(s.maxTime,e.value.maxDate,"max",u(E),C)),(s.minTime||e.value.minDate)&&(C=J(s.minTime,e.value.minDate,"min",u(E),C)),Oe(T,C)},Re=T=>{if(!s.monthPicker)return!0;let C=!0;const E=o(_(T));if(e.value.minDate&&e.value.maxDate){const I=o(_(e.value.minDate)),H=o(_(e.value.maxDate));return p(E,I)&&d(E,H)||m(E,I)||m(E,H)}if(e.value.minDate){const I=o(_(e.value.minDate));C=p(E,I)||m(E,I)}if(e.value.maxDate){const I=o(_(e.value.maxDate));C=d(E,I)||m(E,I)}return C},Ie=G(()=>T=>!a.value.enableTimePicker||a.value.ignoreTimeValidation?!0:Pe(T)),B=G(()=>T=>s.monthPicker?Array.isArray(T)&&(t.value.enabled||n.value.enabled)?!T.filter(C=>!Re(C)).length:Re(T):!0),se=(T,C,E)=>{if(!C||E&&!e.value.maxDate||!E&&!e.value.minDate)return!1;const I=E?Ar(T,1):Ai(T,1),H=[at(I),qe(I)];return E?!x(...H):!S(...H)},V=(T,C,E)=>[nt(o(T),{date:1}),nt(o(),{month:C,year:E,date:1})],F=(T,C,E,I)=>{if(!T)return!0;if(I){const H=E==="max"?Ci(T,C):To(T,C),Z={seconds:0,milliseconds:0};return H||Zo(nt(T,Z),nt(C,Z))}return E==="max"?T.getTime()<=C.getTime():T.getTime()>=C.getTime()},J=(T,C,E,I,H)=>{if(Array.isArray(I)){const Y=O(T,I[0],C),z=O(T,I[1],C);return F(I[0],Y,E,!!C)&&F(I[1],z,E,!!C)&&H}const Z=O(T,I,C);return F(I,Z,E,!!C)&&H},O=(T,C,E)=>T?g(T,C):o(E??C);return{isDisabled:W,validateDate:$,validateMonthYearInRange:R,isDateRangeAllowed:X,checkMinMaxRange:fe,isValidTime:Pe,validateMonthYear:se,validateMinDate:S,validateMaxDate:x,isValidDate:T=>Array.isArray(T)?Ll(T[0])&&(T[1]?Ll(T[1]):!0):T?Ll(T):!1,checkPartialRangeValue:T=>{if(T)return null;throw new Error(c.prop("partial-range"))},checkRangeEnabled:(T,C)=>{if(C)return T();throw new Error(c.prop("range"))},checkMinMaxValue:(T,C,E)=>{const I=E!=null,H=C!=null;if(!I&&!H)return!1;const Z=+E,Y=+C;return I&&H?+T>Z||+TZ:H?+T{const{rootEmit:t,rootProps:n,defaults:{timeConfig:r,flow:a}}=it(),s=oe(0),o=Qt({[vo.timePicker]:!r.value.enableTimePicker||n.timePicker||n.monthPicker,[vo.calendar]:!1,[vo.header]:!1}),i=G(()=>n.monthPicker||n.timePicker),l=m=>{if(a.value?.steps?.length){if(!m&&i.value)return p();o[m]=!0,Object.keys(o).filter(_=>!o[_]).length||p()}},c=()=>{a.value?.steps?.length&&s.value!==-1&&(s.value+=1,t("flow-step",s.value),p()),a.value?.steps?.length===s.value&&Xt().then(()=>u())},u=()=>{s.value=-1},d=(m,_,...y)=>{a.value?.steps[s.value]===m&&e.value&&e.value[_]?.(...y)},p=(m=0)=>{m&&(s.value+=m),d(Mn.month,"toggleMonthPicker",!0),d(Mn.year,"toggleYearPicker",!0),d(Mn.calendar,"toggleTimePicker",!1,!0),d(Mn.time,"toggleTimePicker",!0,!0);const _=a.value?.steps[s.value];(_===Mn.hours||_===Mn.minutes||_===Mn.seconds)&&d(_,"toggleTimePicker",!0,!0,_)};return{childMount:l,updateFlowStep:c,resetFlow:u,handleFlow:p,flowStep:s}};function wp(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}function fl(e){return(t,n)=>{const r=n?.context?String(n.context):"standalone";let a;if(r==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,i=n?.width?String(n.width):o;a=e.formattingValues[i]||e.formattingValues[o]}else{const o=e.defaultWidth,i=n?.width?String(n.width):e.defaultWidth;a=e.values[i]||e.values[o]}const s=e.argumentCallback?e.argumentCallback(t):t;return a[s]}}function pl(e){return(t,n={})=>{const r=n.width,a=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],s=t.match(a);if(!s)return null;const o=s[0],i=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],l=Array.isArray(i)?mW(i,d=>d.test(o)):hW(i,d=>d.test(o));let c;c=e.valueCallback?e.valueCallback(l):l,c=n.valueCallback?n.valueCallback(c):c;const u=t.slice(o.length);return{value:c,rest:u}}}function hW(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function mW(e,t){for(let n=0;n{const r=t.match(e.matchPattern);if(!r)return null;const a=r[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];o=n.valueCallback?n.valueCallback(o):o;const i=t.slice(a.length);return{value:o,rest:i}}}const gW={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},yW=(e,t,n)=>{let r;const a=gW[e];return typeof a=="string"?r=a:t===1?r=a.one:r=a.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+r:r+" ago":r},_W={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},bW=(e,t,n,r)=>_W[e],wW={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},SW={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},TW={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},EW={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},xW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},kW={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},CW=(e,t)=>{const n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},AW={ordinalNumber:CW,era:fl({values:wW,defaultWidth:"wide"}),quarter:fl({values:SW,defaultWidth:"wide",argumentCallback:e=>e-1}),month:fl({values:TW,defaultWidth:"wide"}),day:fl({values:EW,defaultWidth:"wide"}),dayPeriod:fl({values:xW,defaultWidth:"wide",formattingValues:kW,defaultFormattingWidth:"wide"})},DW=/^(\d+)(th|st|nd|rd)?/i,MW=/\d+/i,OW={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},PW={any:[/^b/i,/^(a|c)/i]},$W={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},IW={any:[/1/i,/2/i,/3/i,/4/i]},RW={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},NW={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},LW={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},FW={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},VW={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},YW={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},WW={ordinalNumber:vW({matchPattern:DW,parsePattern:MW,valueCallback:e=>parseInt(e,10)}),era:pl({matchPatterns:OW,defaultMatchWidth:"wide",parsePatterns:PW,defaultParseWidth:"any"}),quarter:pl({matchPatterns:$W,defaultMatchWidth:"wide",parsePatterns:IW,defaultParseWidth:"any",valueCallback:e=>e+1}),month:pl({matchPatterns:RW,defaultMatchWidth:"wide",parsePatterns:NW,defaultParseWidth:"any"}),day:pl({matchPatterns:LW,defaultMatchWidth:"wide",parsePatterns:FW,defaultParseWidth:"any"}),dayPeriod:pl({matchPatterns:VW,defaultMatchWidth:"any",parsePatterns:YW,defaultParseWidth:"any"})},HW={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},BW={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},jW={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},UW={date:wp({formats:HW,defaultWidth:"full"}),time:wp({formats:BW,defaultWidth:"full"}),dateTime:wp({formats:jW,defaultWidth:"full"})},zW={code:"en-US",formatDistance:yW,formatLong:UW,formatRelative:bW,localize:AW,match:WW,options:{weekStartsOn:0,firstWeekContainsDate:1}},F0={noDisabledRange:!1,showLastInRange:!0,minMaxRawRange:!1,partialRange:!0,disableTimeRangeValidation:!1,maxRange:void 0,minRange:void 0,autoRange:void 0,fixedStart:!1,fixedEnd:!1},GW={allowStopPropagation:!0,closeOnScroll:!1,modeHeight:255,allowPreventDefault:!1,closeOnClearValue:!0,closeOnAutoApply:!0,noSwipe:!1,keepActionRow:!1,onClickOutside:void 0,tabOutClosesMenu:!0,arrowLeft:void 0,keepViewOnOffsetClick:!1,timeArrowHoldThreshold:0,shadowDom:!1,mobileBreakpoint:600,setDateOnMenuClose:!1,escClose:!0,spaceConfirm:!0,monthChangeOnArrows:!0,monthChangeOnScroll:!0},V0={enterSubmit:!0,tabSubmit:!0,openMenu:"open",selectOnFocus:!1,rangeSeparator:" - ",escClose:!0,format:void 0,maskFormat:void 0},qW={dates:[],years:[],months:[],quarters:[],weeks:[],weekdays:[],options:{highlightDisabled:!1}},KW={showSelect:!0,showCancel:!0,showNow:!1,showPreview:!0,selectBtnLabel:"Select",cancelBtnLabel:"Cancel",nowBtnLabel:"Now",nowBtnRound:void 0},QW={toggleOverlay:"Toggle overlay",menu:"Datepicker menu",input:"Datepicker input",openTimePicker:"Open time picker",closeTimePicker:"Close time Picker",incrementValue:e=>`Increment ${e}`,decrementValue:e=>`Decrement ${e}`,openTpOverlay:e=>`Open ${e} overlay`,amPmButton:"Switch AM/PM mode",openYearsOverlay:"Open years overlay",openMonthsOverlay:"Open months overlay",nextMonth:"Next month",prevMonth:"Previous month",nextYear:"Next year",prevYear:"Previous year",day:void 0,weekDay:void 0,clearInput:"Clear value",calendarIcon:"Calendar icon",timePicker:"Time picker",monthPicker:e=>`Month picker${e?" overlay":""}`,yearPicker:e=>`Year picker${e?" overlay":""}`,timeOverlay:e=>`${e} overlay`},Y0={menuAppearTop:"dp-menu-appear-top",menuAppearBottom:"dp-menu-appear-bottom",open:"dp-slide-down",close:"dp-slide-up",next:"calendar-next",previous:"calendar-prev",vNext:"dp-slide-up",vPrevious:"dp-slide-down"},XW={weekDays:[],months:[],years:[],times:{hours:[],minutes:[],seconds:[]}},ZW={month:"LLL",year:"yyyy",weekDay:"EEEEEE",quarter:"MMMM",day:"d",input:void 0,preview:void 0},JW={enableTimePicker:!0,ignoreTimeValidation:!1,enableSeconds:!1,enableMinutes:!0,is24:!0,noHoursOverlay:!1,noMinutesOverlay:!1,noSecondsOverlay:!1,hoursGridIncrement:1,minutesGridIncrement:5,secondsGridIncrement:5,hoursIncrement:1,minutesIncrement:1,secondsIncrement:1,timePickerInline:!1,startTime:void 0},eH={flowStep:0,menuWrapRef:null,collapse:!1},tH={weekStart:1,yearRange:()=>[1900,2100],ui:()=>({}),locale:()=>zW,dark:!1,transitions:!0,hideNavigation:()=>[],vertical:!1,hideMonthYearSelect:!1,disableYearSelect:!1,autoApply:!1,disabledDates:()=>[],hideOffsetDates:!1,noToday:!1,markers:()=>[],presetDates:()=>[],preventMinMaxNavigation:!1,reverseYears:!1,weekPicker:!1,arrowNavigation:!1,monthPicker:!1,yearPicker:!1,quarterPicker:!1,timePicker:!1,modelAuto:!1,multiDates:!1,range:!1,inline:!1,sixWeeks:!1,focusStartDate:!1,yearFirst:!1,loading:!1,centered:!1},W0={name:void 0,required:!1,autocomplete:"off",state:void 0,clearable:!0,alwaysClearable:!1,hideInputIcon:!1,id:void 0,inputmode:"none"},tc={type:"local",hideOnOffsetDates:!1,label:"W"},nH=e=>{const{getMapKey:t,getMapKeyType:n,getTimeObjFromCurrent:r}=sn();function a(j,ne){let le;return e.timezone?le=new Jo(j??new Date,e.timezone):le=j?new Date(j):new Date,ne?nt(le,{hours:0,minutes:0,seconds:0,milliseconds:0}):le}const s=()=>{const j=X.value.enableSeconds?":ss":"",ne=X.value.enableMinutes?":mm":"";return X.value.is24?`HH${ne}${j}`:`hh${ne}${j} aa`},o=()=>e.monthPicker?"MM/yyyy":e.timePicker?s():e.weekPicker?`${$.value?.type==="iso"?"II":"ww"}-RR`:e.yearPicker?"yyyy":e.quarterPicker?"QQQ/yyyy":X.value.enableTimePicker?`MM/dd/yyyy, ${s()}`:"MM/dd/yyyy",i=j=>r(a(),j,X.value.enableSeconds),l=()=>P.value.enabled?X.value.startTime&&Array.isArray(X.value.startTime)?[i(X.value.startTime[0]),i(X.value.startTime[1])]:null:X.value.startTime&&!Array.isArray(X.value.startTime)?i(X.value.startTime):null,c=j=>j?typeof j=="boolean"?j?2:0:Math.max(+j,2):0,u=j=>{const ne=n(e.monthPicker,e.yearPicker);return new Map(j.map(le=>{const re=a(le,d.value);return[t(re,ne),re]}))},d=G(()=>e.monthPicker||e.yearPicker||e.quarterPicker),p=G(()=>{const j=typeof e.multiCalendars=="object"&&e.multiCalendars,ne={static:!0,solo:!1};if(!e.multiCalendars)return{...ne,count:c(!1)};const le=j?e.multiCalendars:{},re=j?le.count??!0:e.multiCalendars,he=c(re);return Object.assign(ne,le,{count:he})}),m=G(()=>l()),_=G(()=>({...QW,...e.ariaLabels})),y=G(()=>({...XW,...e.filters})),b=G(()=>typeof e.transitions=="boolean"?e.transitions?Y0:!1:{...Y0,...e.transitions}),h=G(()=>({...KW,...e.actionRow})),g=G(()=>typeof e.textInput=="object"?{...V0,...e.textInput,format:typeof e.textInput.format=="string"?e.textInput.format:K.value.input,pattern:e.textInput.format??K.value.input,enabled:!0}:{...V0,format:K.value.input,pattern:K.value.input,enabled:e.textInput}),w=G(()=>{const j={input:!1};return typeof e.inline=="object"?{...j,...e.inline,enabled:!0}:{enabled:e.inline,...j}}),v=G(()=>({...GW,...e.config})),k=G(()=>typeof e.highlight=="function"?e.highlight:{...qW,...e.highlight}),$=G(()=>typeof e.weekNumbers=="object"?{type:e.weekNumbers?.type??tc.type,hideOnOffsetDates:e.weekNumbers?.hideOnOffsetDates??tc.hideOnOffsetDates,label:e.weekNumbers.label??tc.label}:e.weekNumbers?tc:void 0),S=G(()=>typeof e.multiDates=="boolean"?{enabled:e.multiDates,dragSelect:!0,limit:null}:{enabled:!!e.multiDates,limit:e.multiDates?.limit?+e.multiDates.limit:null,dragSelect:e.multiDates?.dragSelect??!0}),x=G(()=>({minDate:e.minDate?a(e.minDate):null,maxDate:e.maxDate?a(e.maxDate):null,disabledDates:Array.isArray(e.disabledDates)?u(e.disabledDates):e.disabledDates,allowedDates:Array.isArray(e.allowedDates)?u(e.allowedDates):null,highlight:typeof k.value=="object"&&Array.isArray(k.value.dates)?u(k.value.dates):k.value,markers:e.markers?.length?new Map(e.markers.map(j=>{const ne=a(j.date);return[t(ne,ei.DATE),j]})):null})),P=G(()=>typeof e.range=="object"?{enabled:!0,...F0,...e.range}:{enabled:e.range,...F0}),R=G(()=>({...Object.fromEntries(Object.keys(e.ui).map(j=>{const ne=j,le=e.ui[ne];if(ne==="dayClass")return[ne,e.ui[ne]];const re=typeof e.ui[ne]=="string"?{[le]:!0}:Object.fromEntries(le.map(he=>[he,!0]));return[j,re]}))})),K=G(()=>({...ZW,...e.formats,input:e.formats?.input??o(),preview:e.formats?.preview??o()})),W=G(()=>{if(e.teleport)return typeof e.teleport=="string"?e.teleport:typeof e.teleport=="boolean"?"body":e.teleport}),X=G(()=>({...JW,...e.timeConfig})),ce=G(()=>{if(e.flow)return{steps:[],partial:!1,...e.flow}}),ie=G(()=>{const j=g.value.enabled?"text":"none";return e.inputAttrs?{...W0,inputmode:j,...e.inputAttrs}:{...W0,inputmode:j}}),fe=G(()=>({offset:e.floating?.offset??10,arrow:e.floating?.arrow??!0,strategy:e.floating?.strategy??void 0,placement:e.floating?.placement??void 0}));return{transitions:b,multiCalendars:p,startTime:m,ariaLabels:_,filters:y,actionRow:h,textInput:g,inline:w,config:v,highlight:k,weekNumbers:$,range:P,safeDates:x,multiDates:S,ui:R,formats:K,teleport:W,timeConfig:X,flow:ce,inputAttrs:ie,floatingConfig:fe,getDate:a}},sn=()=>{const e=(g,w)=>tr(g,w??ei.DATE),t=(g,w)=>g?ei.MONTH_AND_YEAR:w?ei.YEAR:ei.DATE,n=(g,w,v)=>w.get(e(g,v)),r=g=>g,a=g=>g===0?g:!g||Number.isNaN(+g)?null:+g,s=()=>["a[href]","area[href]","input:not([disabled]):not([type='hidden'])","select:not([disabled])","textarea:not([disabled])","button:not([disabled])","[tabindex]:not([tabindex='-1'])","[data-datepicker-instance]"].join(", "),o=(g,w)=>{let v=[...document.querySelectorAll(s())];v=v.filter($=>!g.contains($)||"datepicker-instance"in $.dataset);const k=v.indexOf(g);if(k>=0&&(w?k-1>=0:k+1<=v.length))return v[k+(w?-1:1)]},i=g=>String(g).padStart(2,"0"),l=(g,w)=>g?.querySelector(`[data-dp-element="${w}"]`),c=(g,w,v=!1)=>{g&&w.allowStopPropagation&&(v&&g.stopImmediatePropagation(),g.stopPropagation())},u=(g,w,v=!1,k)=>{if(g.key===Mt.enter||g.key===Mt.space)return v&&g.preventDefault(),w();if(k)return k(g)},d=(g,w)=>{w.allowStopPropagation&&g.stopPropagation(),w.allowPreventDefault&&g.preventDefault()},p=g=>{if(g)return[...g.querySelectorAll("input, button, select, textarea, a[href]")][0]},m=()=>"ontouchstart"in globalThis||navigator.maxTouchPoints>0,_=g=>[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11][g],y=g=>{const w=[],v=k=>k.filter($=>!!$);for(let k=0;k`"${g}" prop must be enabled!`,dateArr:g=>`You need to use array as "model-value" binding in order to support "${g}"`},h=(g,w,v,k,$)=>{const S={hours:pa,minutes:Ua,seconds:xs};if(!w)return k?[S[g](v),S[g](v)]:S[g](v);if(Array.isArray(w)&&k){const x=w[0]??v,P=w[1];return[S[g](x),P?S[g](P):$[g][1]??S[g](v)]}return Array.isArray(w)&&!k?S[g](w[w.length-1]??v):S[g](w)};return{getMapKey:e,getMapKeyType:t,getMapDate:n,convertType:r,getNumVal:a,findNextFocusableElement:o,padZero:i,getElWithin:l,checkStopPropagation:c,checkKeyDown:u,handleEventPropagation:d,findFocusableEl:p,isTouchDevice:m,hoursToAmPmHours:_,getGroupedList:y,setTimeModelValue:(g,w,v,k)=>{g.hours=h("hours",w,v,k,g),g.minutes=h("minutes",w,v,k,g),g.seconds=h("seconds",w,v,k,g)},getTimeObjFromCurrent:(g,w,v)=>{const k={hours:pa(g),minutes:Ua(g),seconds:v?xs(g):0};return Object.assign(k,w)},errorMapper:b}},kn=()=>{const{getDate:e}=it(),{getMapDate:t,getGroupedList:n}=sn(),r=(h,g)=>{if(!h)return e();const w=e(h),v=nt(w,{hours:0,minutes:0,seconds:0,milliseconds:0});return g?uV(v):v},a=(h,g)=>{const w=e(g);return nt(w,{hours:+(h.hours??pa(w)),minutes:+(h.minutes??Ua(w)),seconds:+(h.seconds??xs(w)),milliseconds:0})},s=(h,g)=>{const w=fr(h,{weekStartsOn:+g}),v=Sv(h,{weekStartsOn:+g});return[w,v]},o=(h,g)=>!h||!g?!1:Ci(r(h),r(g)),i=(h,g)=>!h||!g?!1:Zo(r(h),r(g)),l=(h,g)=>!h||!g?!1:To(r(h),r(g)),c=(h,g,w)=>h?.[0]&&h?.[1]?l(w,h[0])&&o(w,h[1]):h?.[0]&&g?l(w,h[0])&&o(w,g)||o(w,h[0])&&l(w,g):!1,u=(h,g)=>{const w=l(h,g)?g:h,v=l(g,h)?g:h;return wv({start:w,end:v})},d=h=>`dp-${tr(h,"yyyy-MM-dd")}`,p=h=>r(nt(e(h),{date:1})),m=(h,g)=>{if(g){const w=qe(e(g));if(w>h)return 12;if(w===h)return at(e(g))}},_=(h,g)=>{if(g){const w=qe(e(g));return w{if(h)return qe(e(h))},b=h=>({hours:pa(h),minutes:Ua(h),seconds:xs(h)});return{resetDateTime:r,groupListAndMap:(h,g)=>n(h).map(w=>w.map(v=>{const{active:k,disabled:$,isBetween:S,highlighted:x}=g(v);return{...v,active:k,disabled:$,className:{dp__overlay_cell_active:k,dp__overlay_cell:!k,dp__overlay_cell_disabled:$,dp__overlay_cell_pad:!0,dp__overlay_cell_active_disabled:$&&k,dp__cell_in_between:S,"dp--highlighted":x}}})),setTime:a,getWeekFromDate:s,isDateAfter:l,isDateBefore:o,isDateBetween:c,isDateEqual:i,getDaysInBetween:u,getCellId:d,resetDate:p,getMinMonth:m,getMaxMonth:_,getYearFromDate:y,getTimeObj:b,setTimeValue:h=>nt(e(),b(h)),sanitizeTime:(h,g,w)=>g&&(w||w===0)?Object.fromEntries(["hours","minutes","seconds"].map(v=>v===g?[v,w]:[v,Number.isNaN(+h[v])?void 0:+h[v]])):{hours:Number.isNaN(+h.hours)?void 0:+h.hours,minutes:Number.isNaN(+h.minutes)?void 0:+h.minutes,seconds:Number.isNaN(+(h.seconds??""))?void 0:+h.seconds},getBeforeAndAfterInRange:(h,g)=>{const w=K3(r(g),h),v=rr(r(g),h);return{before:w,after:v}},isModelAuto:h=>Array.isArray(h)?!!h[0]&&!!h[1]:!1,matchDate:(h,g)=>h?g?g instanceof Map?!!t(h,g):g(e(h)):!1:!0,checkHighlightMonth:(h,g,w)=>typeof h=="function"?h({month:g,year:w}):h.months.some(v=>v.month===g&&v.year===w),checkHighlightYear:(h,g)=>typeof h=="function"?h(g):h.years.includes(g)}},hf=()=>{const{defaults:{config:e}}=it(),t=oe(0);ut(()=>{n(),globalThis.addEventListener("resize",n,{passive:!0})}),xn(()=>{globalThis.removeEventListener("resize",n)});const n=()=>{t.value=globalThis.document.documentElement.clientWidth};return{isMobile:G(()=>t.value<=e.value.mobileBreakpoint?!0:void 0)}},Rs=()=>{const{getDate:e,state:t,modelValue:n,rootProps:r,defaults:{formats:a,textInput:s}}=it(),o=_=>tr(Sr(e(),_),a.value.year,{locale:r.locale}),i=_=>tr(Q3(e(),_),a.value.month,{locale:r.locale}),l=_=>tr(_,a.value.weekDay,{locale:r.locale}),c=_=>tr(_,a.value.quarter,{locale:r.locale}),u=(_,y)=>[_,y].map(b=>c(b)).join("-"),d=_=>tr(_,a.value.day,{locale:r.locale}),p=(_,y,b)=>{const h=b?a.value.preview:a.value.input;if(!_)return"";if(typeof h=="function")return h(_);const g=y??h,w={locale:r.locale};return Array.isArray(_)?`${tr(_[0],g,w)}${r.modelAuto&&!_[1]?"":s.value.rangeSeparator}${_[1]?tr(_[1],g,w):""}`:tr(_,g,w)},m=()=>{const _=y=>tr(y,s.value.format);return Array.isArray(n.value)?`${_(n.value[0])} ${s.value.rangeSeparator} ${n.value[1]?_(n.value[1]):""}`:""};return{formatYear:o,formatMonth:i,formatWeekDay:l,formatQuarter:c,formatSelectedDate:p,formatForTextInput:()=>t.isInputFocused&&n.value?Array.isArray(n.value)?m():tr(n.value,s.value.format):p(n.value),formatPreview:_=>p(_,void 0,!0),formatQuarterText:u,formatDay:d}},mf=()=>{const{rootProps:e}=it(),{formatYear:t,formatMonth:n}=Rs();return{getMonths:()=>[0,1,2,3,4,5,6,7,8,9,10,11].map(r=>({text:n(r),value:r})),getYears:()=>{const r=[];for(let a=+e.yearRange[0];a<=+e.yearRange[1];a++)r.push({value:+a,text:t(a)});return e.reverseYears?r.reverse():r},isOutOfYearRange:r=>r<+e.yearRange[0]||r>+e.yearRange[1]}},rH=e=>({openMenu:()=>e.value?.openMenu(),closeMenu:()=>e.value?.closeMenu(),selectDate:()=>e.value?.selectDate(),clearValue:()=>e.value?.clearValue(),formatInputValue:()=>e.value?.formatInputValue(),updateInternalModelValue:t=>e.value?.updateInternalModelValue(t),setMonthYear:(t,n)=>e.value?.setMonthYear(t,n),parseModel:()=>e.value?.parseModel(),switchView:(t,n)=>e.value?.switchView(t,n),handleFlow:()=>e.value?.handleFlow(),toggleMenu:()=>e.value?.toggleMenu()}),Gi=()=>({boolHtmlAttribute:e=>e?!0:void 0}),aH=()=>{const{getDate:e,rootProps:t,defaults:{textInput:n,startTime:r,timeConfig:a}}=it(),{getTimeObjFromCurrent:s}=sn(),o=oe(!1),i=G(()=>Array.isArray(r.value)?r.value[0]:r.value??s(e(),{},a.value.enableSeconds)),l=(c,u,d)=>{const p=Wh(c,u.slice(0,c.length),e(),{locale:t.locale});return Ll(p)&&F3(p)?d||o.value?p:nt(p,{hours:+i.value.hours,minutes:+i.value.minutes,seconds:+(i.value.seconds??0),milliseconds:0}):null};return{textPasted:o,parseFreeInput:(c,u)=>{if(typeof n.value.pattern=="string")return l(c,n.value.pattern,u);if(Array.isArray(n.value.pattern)){let d=null;for(const p of n.value.pattern)if(d=l(c,p,u),d)break;return d}return typeof n.value.pattern=="function"?n.value.pattern(c):null},applyMaxValues:(c,u)=>{const d={MM:12,DD:31,hh:23,mm:59,ss:59};let p="",m=0;for(let _=0;_d[y]&&(g=d[y]),p+=g.toString().padStart(b,"0").slice(0,b)}m+=b}return p},createMaskedValue:(c,u)=>{const d=/(YYYY|MM|DD|hh|mm|ss)/g,p=[...u.matchAll(d)].map(h=>h[0]),m=u.replace(d,"|").split("|").filter(Boolean),_=p.map(h=>h.length);let y="",b=0;for(let h=0;h({dp__pointer:!i.disabled&&!i.readonly&&!l.value.enabled,dp__disabled:i.disabled,dp__input_readonly:!l.value.enabled,dp__input:!0,dp__input_not_clearable:!y.value.clearable,dp__input_icon_pad:!y.value.hideInputIcon,dp__input_valid:typeof y.value.state=="boolean"?y.value.state:!1,dp__input_invalid:typeof y.value.state=="boolean"?!y.value.state:!1,dp__input_focus:K.value||a.isMenuOpen,dp__input_reg:!l.value.enabled,..._.value.input})),X=()=>{r("set-input-date",null),y&&i.autoApply&&(r("set-empty-date"),R.value=null)},ce=V=>{const{rangeSeparator:F}=l.value,[J,O]=V.split(`${F}`);if(J){const T=g(J.trim(),o.value),C=O?g(O.trim(),o.value):void 0;if(To(T,C))return;const E=T&&C?[T,C]:[T];b(C,E,0)&&(R.value=T?E:null)}},ie=()=>{w.value=!0},fe=V=>{if(p.value.enabled)ce(V);else if(m.value.enabled){const F=V.split(";");R.value=F.map(J=>g(J.trim())).filter(J=>!!J)}else R.value=g(V,o.value)},j=V=>{const F=typeof V=="string"?V:V.target?.value,J=l?.value?.maskFormat;let O=F;if(typeof J=="string"){const T=/(YYYY|MM|DD|hh|mm|ss)/g,C=[...J.matchAll(T)].map(H=>H[0]),E=F.replace(/\D/g,""),I=k(E,C);O=v(I,J)}O===""?X():(l.value.openMenu&&!a.isMenuOpen&&r("open"),fe(O),r("set-input-date",R.value)),w.value=!1,o.value=O,s("text-input",V,R.value)},ne=V=>{l.value.enabled?(fe(V.target.value),l.value.enterSubmit&&h(R.value)&&o.value!==""?(r("set-input-date",R.value,!0),R.value=null):l.value.enterSubmit&&o.value===""&&(R.value=null,r("clear"))):he(V)},le=(V,F)=>{l.value.enabled&&l.value.tabSubmit&&!F&&fe(V.target.value),l.value.tabSubmit&&h(R.value)&&o.value!==""?(r("set-input-date",R.value,!0,!0),R.value=null):l.value.tabSubmit&&o.value===""&&(R.value=null,r("clear"))},re=()=>{K.value=!0,r("focus"),Xt().then(()=>{l.value.enabled&&l.value.selectOnFocus&&P.value?.select()})},he=V=>{if(S(V,d.value,!0),l.value.enabled&&l.value.openMenu&&!u.value.input){if(l.value.openMenu==="open"&&!a.isMenuOpen)return r("open");if(l.value.openMenu==="toggle")return r("toggle")}else l.value.enabled||r("toggle")},ke=()=>{r("real-blur"),K.value=!1,(!a.isMenuOpen||u.value.enabled&&u.value.input)&&r("blur"),i.autoApply&&l.value.enabled&&R.value&&!a.isMenuOpen&&(r("set-input-date",R.value),r("select-date"),R.value=null)},Oe=V=>{S(V,d.value,!0),r("clear")},Pe=()=>{r("close")},Re=V=>{if(V.key==="Tab"&&le(V),V.key==="Enter"&&ne(V),V.key==="Escape"&&l.value.escClose&&Pe(),!l.value.enabled){if(V.code==="Tab")return;V.preventDefault()}},Ie=()=>{P.value?.focus({preventScroll:!0})},B=V=>{R.value=V},se=V=>{V.key===Mt.tab&&le(V,!0)};return t({focusInput:Ie,setParsedDate:B}),(V,F)=>(D(),L("div",{onClick:he},[V.$slots.trigger&&!V.$slots["dp-input"]&&!f(u).enabled?Ee(V.$slots,"trigger",{key:0}):q("",!0),!V.$slots.trigger&&(!f(u).enabled||f(u).input)?(D(),L("div",sH,[V.$slots["dp-input"]&&!V.$slots.trigger&&(!f(u).enabled||f(u).enabled&&f(u).input)?Ee(V.$slots,"dp-input",{key:0,value:f(o),isMenuOpen:e.isMenuOpen,onInput:j,onEnter:ne,onTab:le,onClear:Oe,onBlur:ke,onKeypress:Re,onPaste:ie,onFocus:re,openMenu:()=>V.$emit("open"),closeMenu:()=>V.$emit("close"),toggleMenu:()=>V.$emit("toggle")}):q("",!0),V.$slots["dp-input"]?q("",!0):(D(),L("input",{key:1,id:f(y).id,ref:"dp-input","data-test-id":"dp-input",name:f(y).name,class:xe(W.value),inputmode:f(y).inputmode,placeholder:f(i).placeholder,disabled:f(x)(f(i).disabled),readonly:f(x)(f(i).readonly),required:f(x)(f(y).required),value:f(o),autocomplete:f(y).autocomplete,"aria-label":f(c).input,"aria-disabled":f(i).disabled||void 0,"aria-invalid":f(y).state===!1?!0:void 0,onInput:j,onBlur:ke,onFocus:re,onKeypress:Re,onKeydown:F[0]||(F[0]=J=>Re(J)),onPaste:ie,onInvalid:F[1]||(F[1]=J=>f(s)("invalid",J))},null,42,oH)),A("div",{onClick:F[4]||(F[4]=J=>r("toggle"))},[V.$slots["input-icon"]&&!f(y).hideInputIcon?(D(),L("span",{key:0,class:"dp__input_icon",onClick:F[2]||(F[2]=J=>r("toggle"))},[Ee(V.$slots,"input-icon")])):q("",!0),!V.$slots["input-icon"]&&!f(y).hideInputIcon&&!V.$slots["dp-input"]?(D(),ge(f(Mu),{key:1,"aria-label":f(c)?.calendarIcon,class:"dp__input_icon dp__input_icons",onClick:F[3]||(F[3]=J=>r("toggle"))},null,8,["aria-label"])):q("",!0)]),V.$slots["clear-icon"]&&(f(y).alwaysClearable||f(o)&&f(y).clearable&&!f(i).disabled&&!f(i).readonly)?(D(),L("span",iH,[Ee(V.$slots,"clear-icon",{clear:Oe})])):q("",!0),!V.$slots["clear-icon"]&&(f(y).alwaysClearable||f(y).clearable&&f(o)&&!f(i).disabled&&!f(i).readonly)?(D(),L("button",{key:3,"aria-label":f(c)?.clearInput,class:"dp--clear-btn",type:"button","data-test-id":"clear-input-value-btn",onKeydown:F[5]||(F[5]=J=>f($)(J,()=>Oe(J),!0,se)),onClick:F[6]||(F[6]=dn(J=>Oe(J),["prevent"]))},[ae(f(lW),{class:"dp__input_icons"})],40,lH)):q("",!0)])):q("",!0)]))}}),cH={ref:"action-row",class:"dp__action_row"},dH=["title"],fH={ref:"action-buttons-container",class:"dp__action_buttons","data-dp-element":"action-row"},pH=["disabled"],hH=ye({__name:"ActionRow",props:{menuMount:{type:Boolean,default:!1},calendarWidth:{default:0}},emits:["close-picker","select-date","select-now"],setup(e,{emit:t}){const n=t,r=e,{rootEmit:a,rootProps:s,modelValue:o,defaults:{actionRow:i,multiCalendars:l,inline:c,range:u,multiDates:d,formats:p}}=it(),{isTimeValid:m,isMonthValid:_}=gr(),{buildMatrix:y}=$s(),{formatPreview:b}=Rs(),{checkKeyDown:h,convertType:g}=sn(),{boolHtmlAttribute:w}=Gi(),v=ft("cancel-btn"),k=ft("select-btn"),$=ft("action-buttons-container"),S=ft("action-row"),x=oe(!1),P=oe({});ut(()=>{s.arrowNavigation&&y([rn(v),rn(k)],"actionRow"),R(),globalThis.addEventListener("resize",R)}),xn(()=>{globalThis.removeEventListener("resize",R)});const R=()=>{x.value=!1,setTimeout(()=>{const le=$.value?.getBoundingClientRect(),re=S.value?.getBoundingClientRect();le&&re&&(P.value.maxWidth=`${re.width-le.width-20}px`),x.value=!0},0)},K=G(()=>u.value.enabled&&!u.value.partialRange&&o.value?o.value.length===2:!0),W=G(()=>!m.value(o.value)||!_.value(o.value)||!K.value),X=()=>{const le=p.value.preview;return s.timePicker||s.monthPicker,le(g(o.value))},ce=()=>{const le=o.value;return l.value.count>0?`${b(le[0])} - ${b(le[1])}`:[b(le[0]),b(le[1])]},ie=G(()=>!o.value||!r.menuMount?"":typeof p.value.preview=="string"?Array.isArray(o.value)?o.value.length===2&&o.value[1]?ce():d.value.enabled?o.value.map(le=>`${b(le)}`):s.modelAuto?`${b(o.value[0])}`:`${b(o.value[0])} -`:b(o.value):X()),fe=()=>d.value.enabled?"; ":" - ",j=G(()=>Array.isArray(ie.value)?ie.value.join(fe()):ie.value),ne=()=>{m.value(o.value)&&_.value(o.value)&&K.value?n("select-date"):a("invalid-select")};return(le,re)=>(D(),L("div",cH,[le.$slots["action-row"]?Ee(le.$slots,"action-row",jn(hn({key:0},{modelValue:f(o),disabled:W.value,selectDate:()=>le.$emit("select-date"),closePicker:()=>le.$emit("close-picker")}))):(D(),L(Me,{key:1},[f(i).showPreview?(D(),L("div",{key:0,class:"dp__selection_preview",title:j.value||void 0,style:Gt(P.value)},[le.$slots["action-preview"]&&x.value?Ee(le.$slots,"action-preview",{key:0,value:f(o)}):q("",!0),!le.$slots["action-preview"]&&x.value?(D(),L(Me,{key:1},[_e(me(j.value),1)],64)):q("",!0)],12,dH)):q("",!0),A("div",fH,[le.$slots["action-buttons"]?Ee(le.$slots,"action-buttons",{key:0,value:f(o)}):q("",!0),le.$slots["action-buttons"]?q("",!0):(D(),L(Me,{key:1},[!f(c).enabled&&f(i).showCancel?(D(),L("button",{key:0,ref:"cancel-btn",type:"button",class:"dp__action_button dp__action_cancel",onClick:re[0]||(re[0]=he=>le.$emit("close-picker")),onKeydown:re[1]||(re[1]=he=>f(h)(he,()=>le.$emit("close-picker")))},me(f(i).cancelBtnLabel),545)):q("",!0),f(i).showNow?(D(),L("button",{key:1,type:"button",class:"dp__action_button dp__action_cancel",onClick:re[2]||(re[2]=he=>le.$emit("select-now")),onKeydown:re[3]||(re[3]=he=>f(h)(he,()=>le.$emit("select-now")))},me(f(i).nowBtnLabel),33)):q("",!0),f(i).showSelect?(D(),L("button",{key:2,ref:"select-btn",type:"button",class:"dp__action_button dp__action_select",disabled:f(w)(W.value),"data-test-id":"select-button",onKeydown:re[4]||(re[4]=he=>f(h)(he,()=>ne())),onClick:ne},me(f(i).selectBtnLabel),41,pH)):q("",!0)],64))],512)],64))],512))}}),vf=()=>{const{rootProps:e,defaults:{multiCalendars:t}}=it(),n=G(()=>s=>e.hideNavigation?.includes(s)),r=G(()=>s=>t.value.count?t.value.solo?!0:s===0:!0),a=G(()=>s=>t.value.count?t.value.solo?!0:s===t.value.count-1:!0);return{hideNavigationButtons:n,showLeftIcon:r,showRightIcon:a}},mH=["role","aria-label","tabindex"],vH={class:"dp__selection_grid_header"},gH=["aria-selected","aria-disabled","data-test-id","onClick","onKeydown","onMouseover"],yH=["aria-label"],$u=ye({__name:"SelectionOverlay",props:{items:{},type:{},isLast:{type:Boolean},skipButtonRef:{type:Boolean},headerRefs:{},useRelative:{type:Boolean},height:{},noOverlayFocus:{type:Boolean},focusValue:{},menuWrapRef:{},overlayLabel:{}},emits:["selected","toggle","reset-flow","hover-value"],setup(e,{expose:t,emit:n}){const{setSelectionGrid:r,buildMultiLevelMatrix:a,setMonthPicker:s}=$s(),o=n,i=e,{rootProps:l,defaults:{ariaLabels:c,textInput:u,config:d}}=it(),{hideNavigationButtons:p}=vf(),{handleEventPropagation:m,convertType:_,checkKeyDown:y,checkStopPropagation:b,getElWithin:h,findFocusableEl:g}=sn(),w=ft("toggle-button"),v=ft("overlay-container"),k=ft("grid-wrap"),$=oe(!1),S=oe(null),x=oe([]),P=oe(),R=oe(0);y_(()=>{S.value=null}),ut(()=>{Xt().then(()=>ne()),i.noOverlayFocus||W(),K(!0)}),xn(()=>K(!1));const K=V=>{l.arrowNavigation&&(i.headerRefs?.length?s(V):r(V))},W=()=>{const V=rn(k);V&&(u.value.enabled||(S.value?S.value?.focus({preventScroll:!0}):V.focus({preventScroll:!0})),$.value=V.clientHeight({dp__overlay:!0,"dp--overlay-absolute":!i.useRelative,"dp--overlay-relative":i.useRelative})),ce=G(()=>i.useRelative?{height:`${i.height}px`,width:"var(--dp-menu-min-width)"}:void 0),ie=G(()=>({dp__overlay_col:!0})),fe=G(()=>({dp__btn:!0,dp__button:!0,dp__overlay_action:!0,dp__over_action_scroll:$.value,dp__button_bottom:i.isLast})),j=G(()=>({dp__overlay_container:!0,dp__container_flex:i.items?.length<=6,dp__container_block:i.items?.length>6}));Ue(()=>i.items,()=>ne(!1),{deep:!0});const ne=(V=!0)=>{Xt().then(()=>{const F=rn(S),J=rn(k),O=rn(w),T=rn(v),C=O?O.getBoundingClientRect().height:0;J&&(J.getBoundingClientRect().height?R.value=J.getBoundingClientRect().height-C:R.value=d.value.modeHeight-C),F&&T&&V&&(T.scrollTop=F.offsetTop-T.offsetTop-(R.value/2-F.getBoundingClientRect().height)-C)})},le=V=>{V.disabled||o("selected",V.value)},re=()=>{o("toggle"),o("reset-flow")},he=V=>{d.value.escClose&&(re(),m(V,d.value))},ke=(V,F,J,O)=>{V&&((F.active||F.value===i.focusValue)&&(S.value=V),l.arrowNavigation&&(Array.isArray(x.value[J])?x.value[J][O]=V:x.value[J]=[V],Oe()))},Oe=()=>{const V=i.headerRefs?.length?[i.headerRefs].concat(x.value):x.value.concat([i.skipButtonRef?[]:[w.value]]);a(_(V),i.headerRefs?.length?"monthPicker":"selectionGrid")},Pe=V=>{l.arrowNavigation||b(V,d.value,!0)},Re=V=>{P.value=V,o("hover-value",V)},Ie=()=>{if(re(),!i.isLast){const V=h(i.menuWrapRef??null,"action-row");V&&g(V)?.focus()}},B=V=>{switch(V.key){case Mt.esc:return he(V);case Mt.arrowLeft:return Pe(V);case Mt.arrowRight:return Pe(V);case Mt.arrowUp:return Pe(V);case Mt.arrowDown:return Pe(V);default:return}},se=V=>{if(V.key===Mt.enter)return re();if(V.key===Mt.tab)return Ie()};return t({focusGrid:W}),(V,F)=>(D(),L("div",{ref:"grid-wrap",class:xe(X.value),style:Gt(ce.value),role:e.useRelative?void 0:"dialog","aria-label":e.overlayLabel,tabindex:e.useRelative?void 0:"0",onKeydown:B,onClick:F[0]||(F[0]=dn(()=>{},["prevent"]))},[A("div",{ref:"overlay-container",class:xe(j.value),style:Gt({"--dp-overlay-height":`${R.value}px`}),role:"grid"},[A("div",vH,[Ee(V.$slots,"header")]),V.$slots.overlay?Ee(V.$slots,"overlay",{key:0}):(D(!0),L(Me,{key:1},Xe(e.items,(J,O)=>(D(),L("div",{key:O,class:xe(["dp__overlay_row",{dp__flex_row:e.items.length>=3}]),role:"row"},[(D(!0),L(Me,null,Xe(J,(T,C)=>(D(),L("div",{key:T.value,ref_for:!0,ref:E=>ke(E,T,O,C),role:"gridcell",class:xe(ie.value),"aria-selected":T.active||void 0,"aria-disabled":T.disabled||void 0,tabindex:"0","data-test-id":T.text,onClick:dn(E=>le(T),["prevent"]),onKeydown:E=>f(y)(E,()=>le(T),!0),onMouseover:E=>Re(T.value)},[A("div",{class:xe(T.className)},[V.$slots.item?Ee(V.$slots,"item",{key:0,item:T}):q("",!0),V.$slots.item?q("",!0):(D(),L(Me,{key:1},[_e(me(T.text),1)],64))],2)],42,gH))),128))],2))),128))],6),V.$slots["button-icon"]?Ot((D(),L("button",{key:0,ref:"toggle-button",type:"button","aria-label":f(c)?.toggleOverlay,class:xe(fe.value),tabindex:"0",onClick:re,onKeydown:se},[Ee(V.$slots,"button-icon")],42,yH)),[[Dl,!f(p)(e.type)]]):q("",!0)],46,mH))}}),_H=["data-dp-mobile"],gf=ye({__name:"InstanceWrap",props:{stretch:{type:Boolean},collapse:{type:Boolean}},setup(e){const{defaults:{multiCalendars:t}}=it(),{isMobile:n}=hf(),r=G(()=>t.value.count>0?[...new Array(t.value.count).keys()]:[0]);return(a,s)=>(D(),L("div",{class:xe({dp__menu_inner:!e.stretch,"dp--menu--inner-stretched":e.stretch,dp__flex_display:f(t).count>0,"dp--flex-display-collapsed":e.collapse}),"data-dp-mobile":f(n)},[Ee(a.$slots,"default",{instances:r.value,wrapClass:{dp__instance_calendar:f(t).count>0}})],10,_H))}}),bH=["data-dp-element","aria-label","aria-disabled"],Fl=ye({__name:"ArrowBtn",props:{ariaLabel:{},elName:{},disabled:{type:Boolean}},emits:["activate","set-ref"],setup(e,{emit:t}){const{checkKeyDown:n}=sn(),r=t,a=ft("arrow-btn");return ut(()=>r("set-ref",a)),(s,o)=>(D(),L("button",{ref:"arrow-btn",type:"button","data-dp-element":e.elName,class:"dp__btn dp--arrow-btn-nav",tabindex:"0","aria-label":e.ariaLabel,"aria-disabled":e.disabled||void 0,onClick:o[0]||(o[0]=i=>r("activate")),onKeydown:o[1]||(o[1]=i=>f(n)(i,()=>r("activate"),!0))},[A("span",{class:xe(["dp__inner_nav",{dp__inner_nav_disabled:e.disabled}])},[Ee(s.$slots,"default")],2)],40,bH))}}),wH=["aria-label","data-test-id"],sS=ye({__name:"YearModePicker",props:{items:{},instance:{},year:{},showYearPicker:{type:Boolean,default:!1},isDisabled:{}},emits:["handle-year","year-select","toggle-year-picker"],setup(e,{emit:t}){const n=t,r=e,{showRightIcon:a,showLeftIcon:s}=vf(),{rootProps:o,defaults:{config:i,ariaLabels:l,ui:c}}=it(),{showTransition:u,transitionName:d}=Ou(),{formatYear:p}=Rs(),{boolHtmlAttribute:m}=Gi(),_=oe(!1),y=G(()=>p(r.year)),b=(w=!1,v)=>{_.value=!_.value,n("toggle-year-picker",{flow:w,show:v})},h=w=>{_.value=!1,n("year-select",w)},g=(w=!1)=>{n("handle-year",w)};return(w,v)=>(D(),L(Me,null,[A("div",{class:xe(["dp--year-mode-picker",{"dp--hidden-el":_.value}])},[f(s)(e.instance)?(D(),ge(Fl,{key:0,ref:"mpPrevIconRef","aria-label":f(l)?.prevYear,disabled:f(m)(e.isDisabled(!1)),class:xe(f(c)?.navBtnPrev),onActivate:v[0]||(v[0]=k=>g(!1))},{default:de(()=>[w.$slots["arrow-left"]?Ee(w.$slots,"arrow-left",{key:0}):q("",!0),w.$slots["arrow-left"]?q("",!0):(D(),ge(f(J3),{key:1}))]),_:3},8,["aria-label","disabled","class"])):q("",!0),A("button",{ref:"mpYearButtonRef",class:"dp__btn dp--year-select",type:"button","aria-label":`${e.year}-${f(l)?.openYearsOverlay}`,"data-test-id":`year-mode-btn-${e.instance}`,onClick:v[1]||(v[1]=()=>b(!1)),onKeydown:v[2]||(v[2]=yl(()=>b(!1),["enter"]))},[w.$slots.year?Ee(w.$slots,"year",{key:0,text:y.value,value:e.year}):q("",!0),w.$slots.year?q("",!0):(D(),L(Me,{key:1},[_e(me(e.year),1)],64))],40,wH),f(a)(e.instance)?(D(),ge(Fl,{key:1,ref:"mpNextIconRef","aria-label":f(l)?.nextYear,disabled:f(m)(e.isDisabled(!0)),class:xe(f(c)?.navBtnNext),onActivate:v[3]||(v[3]=k=>g(!0))},{default:de(()=>[w.$slots["arrow-right"]?Ee(w.$slots,"arrow-right",{key:0}):q("",!0),w.$slots["arrow-right"]?q("",!0):(D(),ge(f(eS),{key:1}))]),_:3},8,["aria-label","disabled","class"])):q("",!0)],2),ae(Vi,{name:f(d)(e.showYearPicker),css:f(u)},{default:de(()=>[e.showYearPicker?(D(),ge($u,{key:0,items:e.items,config:f(i),"is-last":f(o).autoApply&&!f(i).keepActionRow,"overlay-label":f(l)?.yearPicker?.(!0),type:"year",onToggle:b,onSelected:v[4]||(v[4]=k=>h(k))},pn({"button-icon":de(()=>[w.$slots["calendar-icon"]?Ee(w.$slots,"calendar-icon",{key:0}):q("",!0),w.$slots["calendar-icon"]?q("",!0):(D(),ge(f(Mu),{key:1}))]),_:2},[w.$slots["year-overlay-value"]?{name:"item",fn:de(({item:k})=>[Ee(w.$slots,"year-overlay-value",{text:k.text,value:k.value})]),key:"0"}:void 0]),1032,["items","config","is-last","overlay-label"])):q("",!0)]),_:3},8,["name","css"])],64))}}),oS=e=>{const{getDate:t,rootEmit:n,state:r,month:a,year:s,modelValue:o,calendars:i,rootProps:l,defaults:{multiCalendars:c,range:u,safeDates:d,filters:p,highlight:m}}=it(),{resetDate:_,getYearFromDate:y,checkHighlightYear:b,groupListAndMap:h}=kn(),{getYears:g}=mf(),{validateMonthYear:w,checkMinMaxValue:v}=gr(),k=oe([!1]),$=G(()=>g()),S=G(()=>(re,he)=>{const ke=nt(_(t()),{month:a.value(re),year:s.value(re)}),Oe=he?Y3(ke):di(ke);return w(Oe,l.preventMinMaxNavigation,he)}),x=()=>Array.isArray(o.value)&&c.value.solo&&o.value[1],P=()=>{for(let re=0;re{if(!re)return P();const he=nt(t(),i.value[re]);return i.value[0].year=qe(X3(he,c.value.count-1)),P()},K=(re,he)=>{const ke=iV(he,re);return u.value.showLastInRange&&ke>1?he:re},W=re=>l.focusStartDate||c.value.solo?re[0]:re[1]?K(re[0],re[1]):re[0],X=()=>{if(o.value){const re=Array.isArray(o.value)?W(o.value):o.value;i.value[0]={month:at(re),year:qe(re)}}},ce=()=>{X(),c.value.count&&P()};Ue(o,(re,he)=>{r.isTextInputDate&&JSON.stringify(re??{})!==JSON.stringify(he??{})&&ce()}),ut(()=>{ce()});const ie=(re,he)=>{i.value[he].year=re,n("update-month-year",{instance:he,year:re,month:i.value[he].month}),c.value.count&&!c.value.solo&&R(he)},fe=G(()=>re=>h($.value,he=>{const ke=s.value(re)===he.value,Oe=v(he.value,y(d.value.minDate),y(d.value.maxDate))||p.value.years?.includes(s.value(re)),Pe=b(m.value,he.value);return{active:ke,disabled:Oe,highlighted:Pe}})),j=(re,he)=>{ie(re,he),le(he)},ne=(re,he=!1)=>{if(!S.value(re,he)){const ke=he?s.value(re)+1:s.value(re)-1;ie(ke,re)}},le=(re,he=!1,ke)=>{he||e("reset-flow"),ke===void 0?k.value[re]=!k.value[re]:k.value[re]=ke,k.value[re]?n("overlay-toggle",{open:!0,overlay:Mn.year}):n("overlay-toggle",{open:!1,overlay:Mn.year})};return{isDisabled:S,groupedYears:fe,showYearPicker:k,selectYear:ie,setStartDate:()=>{l.startDate&&(o.value&&l.focusStartDate||!o.value)&&ie(qe(t(l.startDate)),0)},toggleYearPicker:le,handleYearSelect:j,handleYear:ne}},yf=()=>{const{isDateAfter:e,isDateBefore:t,isDateEqual:n}=kn(),{getDate:r,rootEmit:a,rootProps:s,modelValue:o,defaults:{range:i}}=it();return{getRangeWithFixedDate:l=>Array.isArray(o.value)&&(o.value.length===2||o.value.length===1&&i.value.partialRange)?i.value.fixedStart&&(e(l,o.value[0])||n(l,o.value[0]))?[o.value[0],l]:i.value.fixedEnd&&(t(l,o.value[1])||n(l,o.value[1]))?[l,o.value[1]]:(a("invalid-fixed-range",l),o.value):[],setPresetDate:l=>{Array.isArray(l.value)&&l.value.length<=2&&i.value.enabled?o.value=l.value.map(c=>r(c)):Array.isArray(l.value)||(o.value=r(l.value))},checkRangeAutoApply:(l,c,u)=>{i&&(l[0]&&l[1]&&s.autoApply&&c("auto-apply",u),l[0]&&!l[1]&&(s.modelAuto||i.value.partialRange)&&s.autoApply&&c("auto-apply",u))},setMonthOrYearRange:l=>{let c=o.value?o.value.slice():[];return c.length===2&&c[1]!==null&&(c=[]),c.length?(t(l,c[0])?c.unshift(l):c[1]=l,a("range-end",l)):(c=[l],a("range-start",l)),c},handleMultiDatesSelect:(l,c)=>{if(o.value&&Array.isArray(o.value))if(o.value.some(u=>n(l,u))){const u=o.value.filter(d=>!n(d,l));o.value=u.length?u:null}else(c&&+c>o.value.length||!c)&&o.value.push(l);else o.value=[l]}}},SH=(e,t)=>{const{getDate:n,rootEmit:r,state:a,calendars:s,year:o,modelValue:i,rootProps:l,defaults:{range:c,highlight:u,safeDates:d,filters:p,multiDates:m}}=it();Pu(()=>{a.isTextInputDate&&j(qe(n(l.startDate)),0)});const{checkMinMaxRange:_,checkMinMaxValue:y}=gr(),{isDateBetween:b,resetDateTime:h,resetDate:g,getMinMonth:w,getMaxMonth:v,checkHighlightMonth:k,groupListAndMap:$}=kn(),{checkRangeAutoApply:S,getRangeWithFixedDate:x,handleMultiDatesSelect:P,setMonthOrYearRange:R,setPresetDate:K}=yf(),{padZero:W}=sn(),{getMonths:X,isOutOfYearRange:ce}=mf(),ie=G(()=>X()),fe=oe(null),{selectYear:j,groupedYears:ne,showYearPicker:le,toggleYearPicker:re,handleYearSelect:he,handleYear:ke,isDisabled:Oe,setStartDate:Pe}=oS(t);ut(()=>{Pe()});const Re=U=>U?{month:at(U),year:qe(U)}:{month:null,year:null},Ie=()=>i.value?Array.isArray(i.value)?i.value.map(U=>Re(U)):Re(i.value):Re(),B=(U,M)=>{const te=s.value[U],Q=Ie();return Array.isArray(Q)?Q.some(we=>we.year===te?.year&&we.month===M):te?.year===Q.year&&M===Q.month},se=(U,M,te)=>{const Q=Ie();return Array.isArray(Q)?o.value(M)===Q[te]?.year&&U===Q[te]?.month:!1},V=(U,M)=>{if(c.value.enabled){const te=Ie();if(Array.isArray(i.value)&&Array.isArray(te)){const Q=se(U,M,0)||se(U,M,1),we=nt(g(n()),{month:U,year:o.value(M)});return b(i.value,fe.value,we)&&!Q}return!1}return!1},F=G(()=>U=>$(ie.value,M=>{const te=B(U,M.value),Q=y(M.value,w(o.value(U),d.value.minDate),v(o.value(U),d.value.maxDate))||z(d.value.disabledDates,o.value(U),M.value)||p.value.months?.includes(M.value)||!N(d.value.allowedDates,o.value(U),M.value)||ce(o.value(U)),we=V(M.value,U),Ce=k(u.value,M.value,o.value(U));return{active:te,disabled:Q,isBetween:we,highlighted:Ce}})),J=(U,M)=>nt(g(n()),{month:U,year:o.value(M)}),O=(U,M)=>{const te=i.value?i.value:g(n());i.value=nt(te,{month:U,year:o.value(M)}),t("auto-apply"),t("update-flow-step")},T=(U,M)=>{const te=J(U,M);c.value.fixedEnd||c.value.fixedStart?i.value=x(te):i.value?_(te,i.value)&&(i.value=R(J(U,M))):i.value=[J(U,M)],Xt().then(()=>{S(i.value,t,i.value.length<2)})},C=(U,M)=>{P(J(U,M),m.value.limit),t("auto-apply",!0)},E=(U,M)=>(s.value[M].month=U,H(M,s.value[M].year,U),m.value.enabled?C(U,M):c.value.enabled?T(U,M):O(U,M)),I=(U,M)=>{j(U,M),H(M,U,null)},H=(U,M,te)=>{let Q=te;if(!Q&&Q!==0){const we=Ie();Q=Array.isArray(we)?we[U].month:we.month}r("update-month-year",{instance:U,year:M,month:Q})},Z=(U,M)=>{fe.value=J(U,M)},Y=U=>{K({value:U}),t("auto-apply")},z=(U,M,te)=>{if(U instanceof Map){const Q=`${W(te+1)}-${M}`;return U.size?U.has(Q):!1}return typeof U=="function"?U(h(nt(n(),{month:te,year:M}),!0)):!1},N=(U,M,te)=>{if(U instanceof Map){const Q=`${W(te+1)}-${M}`;return U.size?U.has(Q):!0}return!0};return{groupedMonths:F,groupedYears:ne,year:o,isDisabled:Oe,showYearPicker:le,modelValue:i,toggleYearPicker:re,handleYearSelect:he,handleYear:ke,presetDate:Y,setHoverDate:Z,selectMonth:E,selectYear:I,getModelMonthYear:Ie}},TH=ye({__name:"MonthPicker",props:{flowStep:{},collapse:{type:Boolean},menuWrapRef:{},noOverlayFocus:{type:Boolean}},emits:["reset-flow","auto-apply","update-flow-step","mount"],setup(e,{expose:t,emit:n}){const r=n,a=e,s=Ds(),{mapSlots:o}=Is(),{rootProps:i,defaults:{config:l}}=it(),c=o(s,"yearMode");ut(()=>{r("mount")});const{groupedMonths:u,groupedYears:d,year:p,isDisabled:m,showYearPicker:_,modelValue:y,presetDate:b,setHoverDate:h,selectMonth:g,selectYear:w,toggleYearPicker:v,handleYearSelect:k,handleYear:$,getModelMonthYear:S}=SH(a,r);return t({getSidebarProps:()=>({modelValue:y,year:p,getModelMonthYear:S,selectMonth:g,selectYear:w,handleYear:$}),presetDate:b,toggleYearPicker:x=>v(0,x)}),(x,P)=>(D(),ge(gf,{collapse:e.collapse,stretch:""},{default:de(({instances:R,wrapClass:K})=>[(D(!0),L(Me,null,Xe(R,W=>(D(),L("div",{key:W,class:xe(K)},[x.$slots["top-extra"]?Ee(x.$slots,"top-extra",{key:0,value:f(y)}):q("",!0),x.$slots["month-year"]?Ee(x.$slots,"month-year",hn({key:1,ref_for:!0},{year:f(p),months:f(u)(W),years:f(d)(W),selectMonth:f(g),selectYear:f(w),instance:W})):(D(),ge($u,{key:2,items:f(u)(W),"is-last":f(i).autoApply&&!f(l).keepActionRow,height:f(l).modeHeight,"no-overlay-focus":!!(e.noOverlayFocus||f(i).textInput),"use-relative":"",type:"month",onSelected:X=>f(g)(X,W),onHoverValue:X=>f(h)(X,W)},pn({header:de(()=>[ae(sS,{items:f(d)(W),instance:W,"show-year-picker":f(_)[W],year:f(p)(W),"is-disabled":X=>f(m)(W,X),onHandleYear:X=>f($)(W,X),onYearSelect:X=>f(k)(X,W),onToggleYearPicker:X=>f(v)(W,X?.flow,X?.show)},pn({_:2},[Xe(f(c),(X,ce)=>({name:X,fn:de(ie=>[Ee(x.$slots,X,hn({ref_for:!0},ie))])}))]),1032,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),_:2},[x.$slots["month-overlay-value"]?{name:"item",fn:de(({item:X})=>[Ee(x.$slots,"month-overlay-value",{text:X.text,value:X.value})]),key:"0"}:void 0]),1032,["items","is-last","height","no-overlay-focus","onSelected","onHoverValue"]))],2))),128))]),_:3},8,["collapse"]))}}),EH=(e,t)=>{const{rootEmit:n,getDate:r,state:a,modelValue:s,rootProps:o,defaults:{highlight:i,multiDates:l,filters:c,range:u,safeDates:d}}=it(),{getYears:p}=mf(),{isDateBetween:m,resetDate:_,resetDateTime:y,getYearFromDate:b,checkHighlightYear:h,groupListAndMap:g}=kn(),{checkRangeAutoApply:w,setMonthOrYearRange:v}=yf(),{checkMinMaxValue:k,checkMinMaxRange:$}=gr();Pu(()=>{a.isTextInputDate&&(x.value=qe(r(o.startDate)))});const S=oe(null),x=oe();ut(()=>{o.startDate&&(s.value&&o.focusStartDate||!s.value)&&(x.value=qe(r(o.startDate)))});const P=ie=>Array.isArray(s.value)?s.value.some(fe=>qe(fe)===ie):s.value?qe(s.value)===ie:!1,R=ie=>u.value.enabled&&Array.isArray(s.value)?m(s.value,S.value,ce(ie)):!1,K=ie=>d.value.allowedDates?.size?d.value.allowedDates.has(`${ie}`):!0,W=ie=>d.value.disabledDates instanceof Map?d.value.disabledDates.size?d.value.disabledDates.has(`${ie}`):!1:typeof d.value.disabledDates=="function"?d.value.disabledDates(Sr(y(di(r())),ie)):!0,X=G(()=>g(p(),ie=>{const fe=P(ie.value),j=k(ie.value,b(d.value.minDate),b(d.value.maxDate))||c.value.years.includes(ie.value)||!K(ie.value)||W(ie.value),ne=R(ie.value)&&!fe,le=h(i.value,ie.value);return{active:fe,disabled:j,isBetween:ne,highlighted:le}})),ce=ie=>Sr(_(di(r())),ie);return{groupedYears:X,focusYear:x,setHoverValue:ie=>{S.value=Sr(_(r()),ie)},selectYear:ie=>{if(n("update-month-year",{instance:0,year:ie,month:Number.NaN}),l.value.enabled)return s.value?Array.isArray(s.value)&&((s.value?.map(fe=>qe(fe))).includes(ie)?s.value=s.value.filter(fe=>qe(fe)!==ie):s.value.push(Sr(y(r()),ie))):s.value=[Sr(y(di(r())),ie)],t("auto-apply",!0);u.value.enabled?$(ce(ie),s.value)&&(s.value=v(ce(ie)),Xt().then(()=>{w(s.value,t,s.value.length<2)})):(s.value=ce(ie),t("auto-apply"))}}},xH=ye({__name:"YearPicker",props:{flowStep:{},collapse:{type:Boolean},menuWrapRef:{},noOverlayFocus:{type:Boolean}},emits:["reset-flow","auto-apply"],setup(e,{expose:t,emit:n}){const r=n,a=e,{modelValue:s,defaults:{config:o},rootProps:i}=it(),{groupedYears:l,focusYear:c,selectYear:u,setHoverValue:d}=EH(a,r);return t({getSidebarProps:()=>({modelValue:s,selectYear:u})}),(p,m)=>(D(),L("div",null,[p.$slots["top-extra"]?Ee(p.$slots,"top-extra",{key:0,value:f(s)}):q("",!0),p.$slots["month-year"]?Ee(p.$slots,"month-year",jn(hn({key:1},{years:f(l),selectYear:f(u)}))):(D(),ge($u,{key:2,items:f(l),"is-last":f(i).autoApply&&!f(o).keepActionRow,height:f(o).modeHeight,"no-overlay-focus":!!(e.noOverlayFocus||f(i).textInput),"focus-value":f(c),type:"year","use-relative":"",onSelected:f(u),onHoverValue:f(d)},pn({_:2},[p.$slots["year-overlay-value"]?{name:"item",fn:de(({item:_})=>[Ee(p.$slots,"year-overlay-value",{text:_.text,value:_.value})]),key:"0"}:void 0]),1032,["items","is-last","height","no-overlay-focus","focus-value","onSelected","onHoverValue"]))]))}}),kH={key:0,class:"dp__time_input"},CH=["data-compact","data-collapsed"],AH=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],DH=["aria-label","disabled","data-test-id","onKeydown","onClick"],MH=["data-test-id","aria-label","onKeydown","onClick","onMousedown"],OH={key:0},PH=["aria-label","data-compact"],$H=ye({__name:"TimeInput",props:{hours:{},minutes:{},seconds:{},order:{},closeTimePickerBtn:{},disabledTimesConfig:{},validateTime:{}},emits:["update:hours","update:minutes","update:seconds","overlay-opened","overlay-closed","set-hours","set-minutes","reset-flow","mounted"],setup(e,{expose:t,emit:n}){const r=n,a=e,{setTimePickerElements:s,setTimePickerBackRef:o}=$s(),{getDate:i,rootEmit:l,rootProps:c,defaults:{ariaLabels:u,filters:d,config:p,range:m,multiCalendars:_,timeConfig:y}}=it(),{checkKeyDown:b,hoursToAmPmHours:h}=sn(),{boolHtmlAttribute:g}=Gi(),{sanitizeTime:w,groupListAndMap:v}=kn(),{transitionName:k,showTransition:$}=Ou(),S=Qt({hours:!1,minutes:!1,seconds:!1}),x=oe("AM"),P=oe(null),R=oe([]),K=oe(),W=oe(!1);ut(()=>{r("mounted")});const X=M=>nt(i(),{hours:M.hours,minutes:M.minutes,seconds:y.value.enableSeconds?M.seconds:0,milliseconds:0}),ce=G(()=>M=>B(M,a[M])||fe(M,a[M])),ie=G(()=>({hours:a.hours,minutes:a.minutes,seconds:a.seconds})),fe=(M,te)=>m.value.enabled&&!m.value.disableTimeRangeValidation?!a.validateTime(M,te):!1,j=(M,te)=>{if(m.value.enabled&&!m.value.disableTimeRangeValidation){const Q=te?+y.value[`${M}Increment`]:-+y.value[`${M}Increment`],we=a[M]+Q;return!a.validateTime(M,we)}return!1},ne=G(()=>M=>!O(+a[M]+ +y.value[`${M}Increment`],M)||j(M,!0)),le=G(()=>M=>!O(+a[M]-+y.value[`${M}Increment`],M)||j(M,!1)),re=(M,te)=>R3(nt(i(),M),te),he=(M,te)=>rW(nt(i(),M),te),ke=G(()=>({dp__time_col:!0,dp__time_col_block:!y.value.timePickerInline,dp__time_col_reg_block:!y.value.enableSeconds&&y.value.is24&&!y.value.timePickerInline,dp__time_col_reg_inline:!y.value.enableSeconds&&y.value.is24&&y.value.timePickerInline,dp__time_col_reg_with_button:!y.value.enableSeconds&&!y.value.is24,dp__time_col_sec:y.value.enableSeconds&&y.value.is24,dp__time_col_sec_with_button:y.value.enableSeconds&&!y.value.is24})),Oe=G(()=>y.value.timePickerInline&&m.value.enabled&&!_.value.count),Pe=G(()=>{const M=[{type:"hours"}];return y.value.enableMinutes&&M.push({type:"",separator:!0},{type:"minutes"}),y.value.enableSeconds&&M.push({type:"",separator:!0},{type:"seconds"}),M}),Re=G(()=>Pe.value.filter(M=>!M.separator)),Ie=G(()=>M=>{if(M==="hours"){const te=Z(+a.hours);return{text:te<10?`0${te}`:`${te}`,value:te}}return{text:a[M]<10?`0${a[M]}`:`${a[M]}`,value:a[M]}}),B=(M,te)=>{if(!a.disabledTimesConfig)return!1;const Q=a.disabledTimesConfig(a.order,M==="hours"?te:void 0);return Q[M]?!!Q[M]?.includes(te):!0},se=(M,te)=>te!=="hours"||x.value==="AM"?M:M+12,V=M=>{const te=y.value.is24?24:12,Q=M==="hours"?te:60,we=+y.value[`${M}GridIncrement`],Ce=M==="hours"&&!y.value.is24?we:0,Ve=[];for(let lt=Ce;lt({active:!1,disabled:d.value.times[M].includes(lt.value)||!O(lt.value,M)||B(M,lt.value)||fe(M,lt.value)}))},F=M=>M>=0?M:59,J=M=>M>=0?M:23,O=(M,te)=>{const Q=c.minTime?X(w(c.minTime)):null,we=c.maxTime?X(w(c.maxTime)):null,Ce=X(w(ie.value,te,te==="minutes"||te==="seconds"?F(M):J(M)));return Q&&we?(Ci(Ce,we)||Zo(Ce,we))&&(To(Ce,Q)||Zo(Ce,Q)):Q?To(Ce,Q)||Zo(Ce,Q):we?Ci(Ce,we)||Zo(Ce,we):!0},T=M=>y.value[`no${M[0].toUpperCase()+M.slice(1)}Overlay`],C=M=>{T(M)||(S[M]=!S[M],S[M]?(W.value=!0,r("overlay-opened",M)):(W.value=!1,r("overlay-closed",M)))},E=M=>M==="hours"?pa:M==="minutes"?Ua:xs,I=()=>{K.value&&clearTimeout(K.value)},H=(M,te=!0,Q)=>{const we=te?re:he,Ce=te?+y.value[`${M}Increment`]:-+y.value[`${M}Increment`];O(+a[M]+Ce,M)&&r(`update:${M}`,E(M)(we({[M]:+a[M]},{[M]:+y.value[`${M}Increment`]}))),!Q?.keyboard&&p.value.timeArrowHoldThreshold&&(K.value=setTimeout(()=>{H(M,te)},p.value.timeArrowHoldThreshold))},Z=M=>y.value.is24?M:(M>=12?x.value="PM":x.value="AM",h(M)),Y=()=>{x.value==="PM"?(x.value="AM",r("update:hours",a.hours-12)):(x.value="PM",r("update:hours",a.hours+12)),l("am-pm-change",x.value)},z=M=>{S[M]=!0},N=(M,te,Q)=>{if(M&&c.arrowNavigation){Array.isArray(R.value[te])?R.value[te][Q]=M:R.value[te]=[M];const we=R.value.reduce((Ce,Ve)=>Ve.map((lt,Ft)=>[...Ce[Ft]||[],Ve[Ft]]),[]);o(a.closeTimePickerBtn),P.value&&(we[1]=we[1].concat(P.value)),s(we,a.order)}},U=(M,te)=>(C(M),r(`update:${M}`,te));return t({openChildCmp:z}),(M,te)=>f(c).disabled?q("",!0):(D(),L("div",kH,[(D(!0),L(Me,null,Xe(Pe.value,(Q,we)=>(D(),L("div",{key:we,class:xe(ke.value),"data-compact":Oe.value&&!f(y).enableSeconds,"data-collapsed":Oe.value&&f(y).enableSeconds},[Q.separator?(D(),L(Me,{key:0},[W.value?q("",!0):(D(),L(Me,{key:0},[_e(":")],64))],64)):(D(),L(Me,{key:1},[A("button",{ref_for:!0,ref:Ce=>N(Ce,we,0),type:"button",class:xe({dp__btn:!0,dp__inc_dec_button:!f(y).timePickerInline,dp__inc_dec_button_inline:f(y).timePickerInline,dp__tp_inline_btn_top:f(y).timePickerInline,dp__inc_dec_button_disabled:ne.value(Q.type),"dp--hidden-el":W.value}),"data-test-id":`${Q.type}-time-inc-btn-${a.order}`,"aria-label":f(u)?.incrementValue(Q.type),tabindex:"0",onKeydown:Ce=>f(b)(Ce,()=>H(Q.type,!0,{keyboard:!0}),!0),onClick:Ce=>f(p).timeArrowHoldThreshold?void 0:H(Q.type,!0),onMousedown:Ce=>f(p).timeArrowHoldThreshold?H(Q.type,!0):void 0,onMouseup:I},[f(y).timePickerInline?(D(),L(Me,{key:1},[M.$slots["tp-inline-arrow-up"]?Ee(M.$slots,"tp-inline-arrow-up",{key:0}):(D(),L(Me,{key:1},[te[2]||(te[2]=A("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),te[3]||(te[3]=A("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(D(),L(Me,{key:0},[M.$slots["arrow-up"]?Ee(M.$slots,"arrow-up",{key:0}):q("",!0),M.$slots["arrow-up"]?q("",!0):(D(),ge(f(nS),{key:1}))],64))],42,AH),A("button",{ref_for:!0,ref:Ce=>N(Ce,we,1),type:"button","aria-label":`${Ie.value(Q.type).text}-${f(u)?.openTpOverlay(Q.type)}`,class:xe({dp__time_display:!0,dp__time_display_block:!f(y).timePickerInline,dp__time_display_inline:f(y).timePickerInline,"dp--time-invalid":ce.value(Q.type),"dp--time-overlay-btn":!ce.value(Q.type),"dp--hidden-el":W.value}),disabled:f(g)(T(Q.type)),tabindex:"0","data-test-id":`${Q.type}-toggle-overlay-btn-${a.order}`,onKeydown:Ce=>f(b)(Ce,()=>C(Q.type),!0),onClick:Ce=>C(Q.type)},[M.$slots[Q.type]?Ee(M.$slots,Q.type,{key:0,text:Ie.value(Q.type).text,value:Ie.value(Q.type).value}):q("",!0),M.$slots[Q.type]?q("",!0):(D(),L(Me,{key:1},[_e(me(Ie.value(Q.type).text),1)],64))],42,DH),A("button",{ref_for:!0,ref:Ce=>N(Ce,we,2),type:"button",class:xe({dp__btn:!0,dp__inc_dec_button:!f(y).timePickerInline,dp__inc_dec_button_inline:f(y).timePickerInline,dp__tp_inline_btn_bottom:f(y).timePickerInline,dp__inc_dec_button_disabled:le.value(Q.type),"dp--hidden-el":W.value}),"data-test-id":`${Q.type}-time-dec-btn-${a.order}`,"aria-label":f(u)?.decrementValue(Q.type),tabindex:"0",onKeydown:Ce=>f(b)(Ce,()=>H(Q.type,!1,{keyboard:!0}),!0),onClick:Ce=>f(p).timeArrowHoldThreshold?void 0:H(Q.type,!1),onMousedown:Ce=>f(p).timeArrowHoldThreshold?H(Q.type,!1):void 0,onMouseup:I},[f(y).timePickerInline?(D(),L(Me,{key:1},[M.$slots["tp-inline-arrow-down"]?Ee(M.$slots,"tp-inline-arrow-down",{key:0}):(D(),L(Me,{key:1},[te[4]||(te[4]=A("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_l"},null,-1)),te[5]||(te[5]=A("span",{class:"dp__tp_inline_btn_bar dp__tp_btn_in_r"},null,-1))],64))],64)):(D(),L(Me,{key:0},[M.$slots["arrow-down"]?Ee(M.$slots,"arrow-down",{key:0}):q("",!0),M.$slots["arrow-down"]?q("",!0):(D(),ge(f(rS),{key:1}))],64))],42,MH)],64))],10,CH))),128)),f(y).is24?q("",!0):(D(),L("div",OH,[M.$slots["am-pm-button"]?Ee(M.$slots,"am-pm-button",{key:0,toggle:Y,value:x.value}):q("",!0),M.$slots["am-pm-button"]?q("",!0):(D(),L("button",{key:1,ref_key:"amPmButton",ref:P,type:"button",class:"dp__pm_am_button",role:"button","aria-label":f(u)?.amPmButton,tabindex:"0","data-compact":Oe.value,onClick:Y,onKeydown:te[0]||(te[0]=Q=>f(b)(Q,()=>Y(),!0))},me(x.value),41,PH))])),(D(!0),L(Me,null,Xe(Re.value,(Q,we)=>(D(),ge(Vi,{key:we,name:f(k)(S[Q.type]),css:f($)},{default:de(()=>[S[Q.type]?(D(),ge($u,{key:0,items:V(Q.type),"is-last":f(c).autoApply&&!f(p).keepActionRow,type:Q.type,"aria-labels":f(u),"overlay-label":f(u).timeOverlay?.(Q.type),onSelected:Ce=>U(Q.type,Ce),onToggle:Ce=>C(Q.type),onResetFlow:te[1]||(te[1]=Ce=>M.$emit("reset-flow"))},pn({"button-icon":de(()=>[M.$slots["clock-icon"]?Ee(M.$slots,"clock-icon",{key:0}):q("",!0),M.$slots["clock-icon"]?q("",!0):(D(),ge(ko(f(y).timePickerInline?f(Mu):f(tS)),{key:1}))]),_:2},[M.$slots[`${Q.type}-overlay-value`]?{name:"item",fn:de(({item:Ce})=>[Ee(M.$slots,`${Q.type}-overlay-value`,{text:Ce.text,value:Ce.value})]),key:"0"}:void 0,M.$slots[`${Q.type}-overlay-header`]?{name:"header",fn:de(()=>[Ee(M.$slots,`${Q.type}-overlay-header`,{toggle:()=>C(Q.type)})]),key:"1"}:void 0]),1032,["items","is-last","type","aria-labels","overlay-label","onSelected","onToggle"])):q("",!0)]),_:2},1032,["name","css"]))),128))]))}}),IH=["data-dp-mobile"],RH=["aria-label","tabindex"],NH=["role","aria-label","tabindex"],LH=["aria-label"],iS=ye({__name:"TimePicker",props:{hours:{},minutes:{},seconds:{},disabledTimesConfig:{type:[Function,null]},noOverlayFocus:{type:Boolean},validateTime:{type:Function}},emits:["update:hours","update:minutes","update:seconds","mount","reset-flow"],setup(e,{expose:t,emit:n}){const r=n,a=e,{rootEmit:s,modelValue:o,rootProps:i,defaults:{ariaLabels:l,textInput:c,config:u,range:d,timeConfig:p}}=it(),{isModelAuto:m}=kn(),{checkKeyDown:_,findFocusableEl:y}=sn(),{buildMatrix:b,setTimePicker:h}=$s(),{transitionName:g,showTransition:w}=Ou(),{hideNavigationButtons:v}=vf(),{mapSlots:k}=Is(),{isMobile:$}=hf(),S=Ds(),x=ft("overlay"),P=ft("open-tp-btn"),R=ft("close-tp-btn"),K=ft("tp-input"),W=oe(!1);ut(()=>{r("mount"),!i.timePicker&&i.arrowNavigation?b([rn(P.value)],"time"):h(!0,i.timePicker)});const X=G(()=>d.value.enabled&&i.modelAuto?m(o.value):!0),ce=oe(!1),ie=B=>({hours:Array.isArray(a.hours)?a.hours[B]:a.hours,minutes:Array.isArray(a.minutes)?a.minutes[B]:a.minutes,seconds:Array.isArray(a.seconds)?a.seconds[B]:a.seconds}),fe=G(()=>{const B=[];if(d.value.enabled)for(let se=0;se<2;se++)B.push(ie(se));else B.push(ie(0));return B}),j=(B,se=!1,V="")=>{se||r("reset-flow"),ce.value=B,s("overlay-toggle",{open:B,overlay:Mn.time}),i.arrowNavigation&&h(B),Xt(()=>{V!==""&&K.value?.[0]&&K.value[0].openChildCmp(V)})},ne=G(()=>({dp__btn:!0,dp__button:!0,dp__button_bottom:i.autoApply&&!u.value.keepActionRow})),le=k(S,"timePicker"),re=(B,se,V)=>d.value.enabled?se===0?[B,fe.value[1][V]]:[fe.value[0][V],B]:B,he=B=>{r("update:hours",B)},ke=B=>{r("update:minutes",B)},Oe=B=>{r("update:seconds",B)},Pe=()=>{if(x.value&&!c.value.enabled&&!a.noOverlayFocus){const B=y(x.value);B&&B.focus({preventScroll:!0})}},Re=B=>{W.value=!1,s("overlay-toggle",{open:!1,overlay:B})},Ie=B=>{W.value=!0,s("overlay-toggle",{open:!0,overlay:B})};return t({toggleTimePicker:j}),(B,se)=>(D(),L("div",{class:"dp--tp-wrap","data-dp-mobile":f($)},[!f(i).timePicker&&!f(p).timePickerInline?Ot((D(),L("button",{key:0,ref:"open-tp-btn",type:"button",class:xe({...ne.value,"dp--hidden-el":ce.value}),"aria-label":f(l)?.openTimePicker,tabindex:e.noOverlayFocus?void 0:0,"data-test-id":"open-time-picker-btn",onKeydown:se[0]||(se[0]=V=>f(_)(V,()=>j(!0))),onClick:se[1]||(se[1]=V=>j(!0))},[B.$slots["clock-icon"]?Ee(B.$slots,"clock-icon",{key:0}):q("",!0),B.$slots["clock-icon"]?q("",!0):(D(),ge(f(tS),{key:1}))],42,RH)),[[Dl,!f(v)("time")]]):q("",!0),ae(Vi,{name:f(g)(ce.value),css:f(w)&&!f(p).timePickerInline},{default:de(()=>[ce.value||f(i).timePicker||f(p).timePickerInline?(D(),L("div",{key:0,ref:"overlay",role:f(p).timePickerInline?void 0:"dialog",class:xe({dp__overlay:!f(p).timePickerInline,"dp--overlay-absolute":!f(i).timePicker&&!f(p).timePickerInline,"dp--overlay-relative":f(i).timePicker}),style:Gt(f(i).timePicker?{height:`${f(u).modeHeight}px`}:void 0),"aria-label":f(l)?.timePicker,tabindex:f(p).timePickerInline?void 0:0},[A("div",{class:xe(f(p).timePickerInline?"dp__time_picker_inline_container":"dp__overlay_container dp__container_flex dp__time_picker_overlay_container"),style:{display:"flex"}},[B.$slots["time-picker-overlay"]?Ee(B.$slots,"time-picker-overlay",{key:0,hours:e.hours,minutes:e.minutes,seconds:e.seconds,setHours:he,setMinutes:ke,setSeconds:Oe}):q("",!0),B.$slots["time-picker-overlay"]?q("",!0):(D(),L("div",{key:1,class:xe(f(p).timePickerInline?"dp__flex":"dp__overlay_row dp__flex_row")},[(D(!0),L(Me,null,Xe(fe.value,(V,F)=>Ot((D(),ge($H,hn({key:F},{ref_for:!0},{order:F,hours:V.hours,minutes:V.minutes,seconds:V.seconds,closeTimePickerBtn:R.value,disabledTimesConfig:e.disabledTimesConfig,disabled:F===0?f(d).fixedStart:f(d).fixedEnd},{ref_for:!0,ref:"tp-input","validate-time":(J,O)=>e.validateTime(J,re(O,F,J)),"onUpdate:hours":J=>he(re(J,F,"hours")),"onUpdate:minutes":J=>ke(re(J,F,"minutes")),"onUpdate:seconds":J=>Oe(re(J,F,"seconds")),onMounted:Pe,onOverlayClosed:Re,onOverlayOpened:Ie}),pn({_:2},[Xe(f(le),(J,O)=>({name:J,fn:de(T=>[Ee(B.$slots,J,hn({ref_for:!0},T))])}))]),1040,["validate-time","onUpdate:hours","onUpdate:minutes","onUpdate:seconds"])),[[Dl,F===0?!0:X.value]])),128))],2)),!f(i).timePicker&&!f(p).timePickerInline?Ot((D(),L("button",{key:2,ref:"close-tp-btn",type:"button",class:xe({...ne.value,"dp--hidden-el":W.value}),"aria-label":f(l)?.closeTimePicker,tabindex:"0",onKeydown:se[2]||(se[2]=V=>f(_)(V,()=>j(!1))),onClick:se[3]||(se[3]=V=>j(!1))},[B.$slots["calendar-icon"]?Ee(B.$slots,"calendar-icon",{key:0}):q("",!0),B.$slots["calendar-icon"]?q("",!0):(D(),ge(f(Mu),{key:1}))],42,LH)),[[Dl,!f(v)("time")]]):q("",!0)],2)],14,NH)):q("",!0)]),_:3},8,["name","css"])],8,IH))}}),lS=e=>{const{getDate:t,modelValue:n,time:r,rootProps:a,defaults:{range:s,timeConfig:o}}=it(),{isDateEqual:i,setTime:l}=kn(),c=(S,x)=>Array.isArray(r[S])?r[S][x]:r[S],u=S=>o.value.enableSeconds?Array.isArray(r.seconds)?r.seconds[S]:r.seconds:0,d=(S,x)=>S?l(x!==void 0?{hours:c("hours",x),minutes:c("minutes",x),seconds:u(x)}:{hours:r.hours,minutes:r.minutes,seconds:u()},S):nW(t(),u(x)),p=(S,x)=>{r[S]=x},m=G(()=>a.modelAuto&&s.value.enabled?Array.isArray(n.value)?n.value.length>1:!1:s.value.enabled),_=(S,x)=>{const P=Object.fromEntries(Object.keys(r).map(R=>R===S?[R,x]:[R,r[R]].slice()));if(m.value&&!s.value.disableTimeRangeValidation){const R=W=>n.value?l({hours:P.hours[W],minutes:P.minutes[W],seconds:P.seconds[W]},n.value[W]):null,K=W=>tW(n.value[W],0);return!(i(R(0),R(1))&&(To(R(0),K(1))||Ci(R(1),K(0))))}return!0},y=(S,x)=>{_(S,x)&&(p(S,x),e&&e())},b=S=>{y("hours",S)},h=S=>{y("minutes",S)},g=S=>{y("seconds",S)},w=(S,x)=>{b(S.hours),h(S.minutes),g(S.seconds),n.value&&x(n.value)},v=S=>{if(S){const x=Array.isArray(S),P=x?[+S[0].hours,+S[1].hours]:+S.hours,R=x?[+S[0].minutes,+S[1].minutes]:+S.minutes,K=x?[+(S[0].seconds??0),+(S[1].seconds??0)]:+(S.seconds??0);p("hours",P),p("minutes",R),o.value.enableSeconds&&p("seconds",K)}},k=(S,x)=>{const P={hours:Array.isArray(r.hours)?r.hours[S]:r.hours,disabledArr:[]};return(x||x===0)&&(P.hours=x),Array.isArray(a.disabledTimes)&&(P.disabledArr=s.value.enabled&&Array.isArray(a.disabledTimes[S])?a.disabledTimes[S]:a.disabledTimes),P},$=G(()=>(S,x)=>{if(Array.isArray(a.disabledTimes)){const{disabledArr:P,hours:R}=k(S,x),K=P.filter(W=>+W.hours===R);return K[0]?.minutes==="*"?{hours:[R],minutes:void 0,seconds:void 0}:{hours:[],minutes:K?.map(W=>+W.minutes)??[],seconds:K?.map(W=>W.seconds?+W.seconds:void 0)??[]}}return{hours:[],minutes:[],seconds:[]}});return{assignTime:p,updateHours:b,updateMinutes:h,updateSeconds:g,getSetDateTime:d,updateTimeValues:w,getSecondsValue:u,assignStartTime:v,validateTime:_,disabledTimesConfig:$}},FH=e=>{const{getDate:t,time:n,modelValue:r,state:a,defaults:{startTime:s,range:o,timeConfig:i}}=it(),{getTimeObj:l}=kn();Pu(()=>{a.isTextInputDate&&k()});const{updateTimeValues:c,getSetDateTime:u,assignTime:d,assignStartTime:p,disabledTimesConfig:m,validateTime:_}=lS(y);function y(){e("update-flow-step")}const b=S=>{const{hours:x,minutes:P,seconds:R}=S;return{hours:+x,minutes:+P,seconds:R?+R:0}},h=()=>{if(i.value.startTime){if(Array.isArray(i.value.startTime)){const x=b(i.value.startTime[0]),P=b(i.value.startTime[1]);return[nt(t(),x),nt(t(),P)]}const S=b(i.value.startTime);return nt(t(),S)}return o.value.enabled?[null,null]:null},g=()=>{if(o.value.enabled){const[S,x]=h();r.value=[u(S,0),u(x,1)]}else r.value=u(h())},w=S=>Array.isArray(S)?[l(t(S[0])),l(t(S[1]))]:[l(S??t())],v=(S,x,P)=>{d("hours",S),d("minutes",x),d("seconds",i.value.enableSeconds?P:0)},k=()=>{const[S,x]=w(r.value);return o.value.enabled?v([S.hours,x.hours],[S.minutes,x.minutes],[S.seconds,x.seconds]):v(S.hours,S.minutes,S.seconds)};ut(()=>(p(s.value),r.value?k():g()));const $=()=>{Array.isArray(r.value)?r.value=r.value.map((S,x)=>S&&u(S,x)):r.value=u(r.value),e("time-update")};return{modelValue:r,time:n,disabledTimesConfig:m,validateTime:_,updateTime:S=>{c(S,$)}}},VH=ye({__name:"TimePickerSolo",props:{flowStep:{},collapse:{type:Boolean},menuWrapRef:{},noOverlayFocus:{type:Boolean}},emits:["time-update","mount","reset-flow","update-flow-step"],setup(e,{expose:t,emit:n}){const r=n,a=Ds(),{mapSlots:s}=Is(),o=s(a,"timePicker"),i=ft("time-input"),{time:l,modelValue:c,disabledTimesConfig:u,updateTime:d,validateTime:p}=FH(r);return ut(()=>{r("mount")}),t({getSidebarProps:()=>({modelValue:c,time:l,updateTime:d}),toggleTimePicker:(m,_=!1,y="")=>{i.value?.toggleTimePicker(m,_,y)}}),(m,_)=>(D(),ge(gf,{"multi-calendars":0,stretch:""},{default:de(({wrapClass:y})=>[A("div",{class:xe(y)},[ae(iS,hn({ref:"time-input"},m.$props,{hours:f(l).hours,minutes:f(l).minutes,seconds:f(l).seconds,"disabled-times-config":f(u),"validate-time":f(p),"onUpdate:hours":_[0]||(_[0]=b=>f(d)({hours:b,minutes:f(l).minutes,seconds:f(l).seconds})),"onUpdate:minutes":_[1]||(_[1]=b=>f(d)({hours:f(l).hours,minutes:b,seconds:f(l).seconds})),"onUpdate:seconds":_[2]||(_[2]=b=>f(d)({hours:f(l).hours,minutes:f(l).minutes,seconds:b})),onResetFlow:_[3]||(_[3]=b=>m.$emit("reset-flow"))}),pn({_:2},[Xe(f(o),(b,h)=>({name:b,fn:de(g=>[Ee(m.$slots,b,jn(Tr(g)))])}))]),1040,["hours","minutes","seconds","disabled-times-config","validate-time"])],2)]),_:3}))}}),YH=(e,t)=>{const{getDate:n,rootProps:r,defaults:{filters:a}}=it(),{validateMonthYearInRange:s,validateMonthYear:o}=gr(),i=(p,m)=>{let _=p;return a.value.months.includes(at(_))?(_=m?Ar(p,1):Ai(p,1),i(_,m)):_},l=(p,m)=>{let _=p;return a.value.years.includes(qe(_))?(_=m?bv(p,1):X3(p,1),l(_,m)):_},c=(p,m=!1)=>{const _=nt(n(),{month:e.month,year:e.year});let y=p?Ar(_,1):Ai(_,1);r.disableYearSelect&&(y=Sr(y,e.year));let b=at(y),h=qe(y);a.value.months.includes(b)&&(y=i(y,p),b=at(y),h=qe(y)),a.value.years.includes(h)&&(y=l(y,p),h=qe(y)),s(b,h,p,r.preventMinMaxNavigation)&&u(b,h,m)},u=(p,m,_)=>{t("update-month-year",{month:p,year:m,fromNav:_})},d=G(()=>p=>o(nt(n(),{month:e.month,year:e.year}),r.preventMinMaxNavigation,p));return{handleMonthYearChange:c,isDisabled:d,updateMonthYear:u}},WH={class:"dp--header-wrap"},HH={key:0,class:"dp__month_year_wrap"},BH={key:0},jH={class:"dp__month_year_wrap"},UH=["data-dp-element","aria-label","data-test-id","onClick","onKeydown"],zH=ye({__name:"DpHeader",props:{month:{},year:{},instance:{},years:{},months:{},menuWrapRef:{}},emits:["mount","reset-flow","update-month-year"],setup(e,{expose:t,emit:n}){const r=n,a=e,{rootEmit:s,rootProps:o,modelValue:i,defaults:{ariaLabels:l,filters:c,config:u,highlight:d,safeDates:p,ui:m}}=it(),{transitionName:_,showTransition:y}=Ou(),{showLeftIcon:b,showRightIcon:h}=vf(),{buildMatrix:g}=$s(),{handleMonthYearChange:w,isDisabled:v,updateMonthYear:k}=YH(a,r),{getMaxMonth:$,getMinMonth:S,getYearFromDate:x,groupListAndMap:P,checkHighlightYear:R,checkHighlightMonth:K}=kn(),{checkKeyDown:W}=sn(),{formatYear:X}=Rs(),{checkMinMaxValue:ce}=gr(),{boolHtmlAttribute:ie}=Gi(),fe=oe(!1),j=oe(!1),ne=oe(!1),le=oe([null,null,null,null]);ut(()=>{r("mount")});const re=C=>({get:()=>a[C],set:E=>{const I=C===br.month?br.year:br.month;r("update-month-year",{[C]:E,[I]:a[I]}),C===br.month?se(!0):V(!0)}}),he=G(re(br.month)),ke=G(re(br.year)),Oe=G(()=>C=>({month:a.month,year:a.year,items:C===br.month?a.months:a.years,instance:a.instance,updateMonthYear:k,toggle:C===br.month?se:V})),Pe=G(()=>a.months.find(E=>E.value===a.month)||{text:"",value:0}),Re=G(()=>P(a.months,C=>{const E=a.month===C.value,I=ce(C.value,S(a.year,p.value.minDate),$(a.year,p.value.maxDate))||c.value.months.includes(C.value),H=K(d.value,C.value,a.year);return{active:E,disabled:I,highlighted:H}})),Ie=G(()=>P(a.years,C=>{const E=a.year===C.value,I=ce(C.value,x(p.value.minDate),x(p.value.maxDate))||c.value.years.includes(C.value),H=R(d.value,C.value);return{active:E,disabled:I,highlighted:H}})),B=(C,E,I)=>{I===void 0?C.value=!C.value:C.value=I,C.value?(ne.value=!0,s("overlay-toggle",{open:!0,overlay:E})):(ne.value=!1,s("overlay-toggle",{open:!1,overlay:E}))},se=(C=!1,E)=>{F(C),B(fe,Mn.month,E)},V=(C=!1,E)=>{F(C),B(j,Mn.year,E)},F=C=>{C||r("reset-flow")},J=(C,E)=>{o.arrowNavigation&&(le.value[E]=rn(C),g(le.value,"monthYear"))},O=G(()=>[{type:br.month,index:1,toggle:se,modelValue:he.value,updateModelValue:C=>he.value=C,text:Pe.value.text,showSelectionGrid:fe.value,items:Re.value,ariaLabel:l.value?.openMonthsOverlay,overlayLabel:l.value.monthPicker?.(!0)??void 0},{type:br.year,index:2,toggle:V,modelValue:ke.value,updateModelValue:C=>ke.value=C,text:X(a.year),showSelectionGrid:j.value,items:Ie.value,ariaLabel:l.value?.openYearsOverlay,overlayLabel:l.value.yearPicker?.(!0)??void 0}]),T=G(()=>o.disableYearSelect?[O.value[0]]:o.yearFirst?[...O.value].reverse():O.value);return t({toggleMonthPicker:se,toggleYearPicker:V,handleMonthYearChange:w}),(C,E)=>(D(),L("div",WH,[C.$slots["month-year"]?(D(),L("div",HH,[Ee(C.$slots,"month-year",jn(Tr({month:e.month,year:e.year,months:e.months,years:e.years,updateMonthYear:f(k),handleMonthYearChange:f(w),instance:e.instance,isDisabled:f(v)})))])):(D(),L(Me,{key:1},[C.$slots["top-extra"]?(D(),L("div",BH,[Ee(C.$slots,"top-extra",{value:f(i)})])):q("",!0),A("div",jH,[f(b)(e.instance)&&!f(o).vertical?(D(),ge(Fl,{key:0,"aria-label":f(l)?.prevMonth,disabled:f(ie)(f(v)(!1)),class:xe(f(m)?.navBtnPrev),"el-name":"action-prev",onActivate:E[0]||(E[0]=I=>f(w)(!1,!0)),onSetRef:E[1]||(E[1]=I=>J(I,0))},{default:de(()=>[C.$slots["arrow-left"]?Ee(C.$slots,"arrow-left",{key:0}):q("",!0),C.$slots["arrow-left"]?q("",!0):(D(),ge(f(J3),{key:1}))]),_:3},8,["aria-label","disabled","class"])):q("",!0),A("div",{class:xe(["dp__month_year_wrap",{dp__year_disable_select:f(o).disableYearSelect}])},[(D(!0),L(Me,null,Xe(T.value,(I,H)=>(D(),L(Me,{key:I.type},[A("button",{ref_for:!0,ref:Z=>J(Z,H+1),type:"button","data-dp-element":`overlay-${I.type}`,class:xe(["dp__btn dp__month_year_select",{"dp--hidden-el":ne.value}]),"aria-label":`${I.text}-${I.ariaLabel}`,"data-test-id":`${I.type}-toggle-overlay-${e.instance}`,onClick:Z=>I.toggle(!1),onKeydown:Z=>f(W)(Z,()=>I.toggle(),!0)},[C.$slots[I.type]?Ee(C.$slots,I.type,{key:0,text:I.text,value:a[I.type]}):q("",!0),C.$slots[I.type]?q("",!0):(D(),L(Me,{key:1},[_e(me(I.text),1)],64))],42,UH),ae(Vi,{name:f(_)(I.showSelectionGrid),css:f(y)},{default:de(()=>[I.showSelectionGrid?(D(),ge($u,{key:0,items:I.items,"is-last":f(o).autoApply&&!f(u).keepActionRow,"skip-button-ref":!1,type:I.type,"header-refs":[],"menu-wrap-ref":e.menuWrapRef,"overlay-label":I.overlayLabel,onSelected:I.updateModelValue,onToggle:I.toggle},pn({"button-icon":de(()=>[C.$slots["calendar-icon"]?Ee(C.$slots,"calendar-icon",{key:0}):q("",!0),C.$slots["calendar-icon"]?q("",!0):(D(),ge(f(Mu),{key:1}))]),_:2},[C.$slots[`${I.type}-overlay-value`]?{name:"item",fn:de(({item:Z})=>[Ee(C.$slots,`${I.type}-overlay-value`,{text:Z.text,value:Z.value})]),key:"0"}:void 0,C.$slots[`${I.type}-overlay`]?{name:"overlay",fn:de(()=>[Ee(C.$slots,`${I.type}-overlay`,hn({ref_for:!0},Oe.value(I.type)))]),key:"1"}:void 0,C.$slots[`${I.type}-overlay-header`]?{name:"header",fn:de(()=>[Ee(C.$slots,`${I.type}-overlay-header`,{toggle:I.toggle})]),key:"2"}:void 0]),1032,["items","is-last","type","menu-wrap-ref","overlay-label","onSelected","onToggle"])):q("",!0)]),_:2},1032,["name","css"])],64))),128))],2),f(b)(e.instance)&&f(o).vertical?(D(),ge(Fl,{key:1,"aria-label":f(l)?.prevMonth,"el-name":"action-prev",disabled:f(ie)(f(v)(!1)),class:xe(f(m)?.navBtnPrev),onActivate:E[2]||(E[2]=I=>f(w)(!1,!0))},{default:de(()=>[C.$slots["arrow-up"]?Ee(C.$slots,"arrow-up",{key:0}):q("",!0),C.$slots["arrow-up"]?q("",!0):(D(),ge(f(nS),{key:1}))]),_:3},8,["aria-label","disabled","class"])):q("",!0),f(h)(e.instance)?(D(),ge(Fl,{key:2,ref:"rightIcon","el-name":"action-next",disabled:f(ie)(f(v)(!0)),"aria-label":f(l)?.nextMonth,class:xe(f(m)?.navBtnNext),onActivate:E[3]||(E[3]=I=>f(w)(!0,!0)),onSetRef:E[4]||(E[4]=I=>J(I,f(o).disableYearSelect?2:3))},{default:de(()=>[C.$slots[f(o).vertical?"arrow-down":"arrow-right"]?Ee(C.$slots,f(o).vertical?"arrow-down":"arrow-right",{key:0}):q("",!0),C.$slots[f(o).vertical?"arrow-down":"arrow-right"]?q("",!0):(D(),ge(ko(f(o).vertical?f(rS):f(eS)),{key:1}))]),_:3},8,["disabled","aria-label","class"])):q("",!0)])],64))]))}}),GH={class:"dp__calendar_header",role:"row"},qH={key:0,class:"dp__calendar_header_item",role:"gridcell"},KH=["aria-label"],QH={key:0,class:"dp__calendar_item dp__week_num",role:"gridcell"},XH={class:"dp__cell_inner"},ZH=["id","aria-selected","aria-disabled","aria-label","tabindex","data-test-id","onClick","onTouchend","onKeydown","onMouseenter","onMouseleave","onMousedown"],JH=ye({__name:"DpCalendar",props:{instance:{},mappedDates:{},month:{},year:{}},emits:["mount","select-date","set-hover-date","handle-scroll","handle-swipe"],setup(e,{expose:t,emit:n}){const r=n,a=e,{getDate:s,rootEmit:o,rootProps:i,defaults:{transitions:l,config:c,ariaLabels:u,multiCalendars:d,weekNumbers:p,multiDates:m,ui:_}}=it(),{buildMultiLevelMatrix:y}=$s(),{isDateAfter:b,isDateEqual:h,resetDateTime:g,getCellId:w}=kn(),{checkKeyDown:v,checkStopPropagation:k,isTouchDevice:$}=sn(),{formatWeekDay:S}=Rs(),x=ft("calendar-wrap"),P=ft("active-tooltip"),R=oe([]),K=oe(null),W=oe(!0),X=oe(!1),ce=oe(""),ie=oe({bottom:"",left:"",transform:""}),fe=oe({left:"50%"});d$(x,{onSwipeEnd:(Y,z)=>{c.value.noSwipe||(i.vertical?(z==="up"||z==="down")&&r("handle-swipe",z==="up"?"left":"right"):(z==="left"||z==="right")&&r("handle-swipe",z==="right"?"left":"right"))}});const j=G(()=>i.calendar?i.calendar(a.mappedDates):a.mappedDates),ne=G(()=>i.dayNames?Array.isArray(i.dayNames)?i.dayNames:i.dayNames():Z());ut(()=>{r("mount",{cmp:"calendar",dayRefs:R.value}),c.value.monthChangeOnScroll&&x.value&&x.value.addEventListener("wheel",O,{passive:!1})}),xn(()=>{c.value.monthChangeOnScroll&&x.value&&x.value.removeEventListener("wheel",O)});const le=Y=>Y?i.vertical?"vNext":"next":i.vertical?"vPrevious":"previous",re=(Y,z)=>{if(i.transitions){const N=g(nt(s(),{month:a.month,year:a.year}));ce.value=b(g(nt(s(),{month:Y,year:z})),N)?l.value[le(!0)]:l.value[le(!1)],W.value=!1,Xt(()=>{W.value=!0})}},he=G(()=>({..._.value.calendar})),ke=Y=>({type:"dot",...Y}),Oe=G(()=>Y=>{const z=ke(Y);return{dp__marker_dot:z.type==="dot",dp__marker_line:z.type==="line"}}),Pe=G(()=>Y=>h(Y,K.value)),Re=G(()=>({dp__calendar:!0,dp__calendar_next:d.value.count>0&&a.instance!==0})),Ie=G(()=>Y=>i.hideOffsetDates?Y.current:!0),B=async(Y,z)=>{const{width:N,height:U}=Y.getBoundingClientRect();K.value=z.value;let M={left:`${N/2}px`},te=-50;if(await Xt(),P.value?.[0]){const{left:Q,width:we}=P.value[0].getBoundingClientRect();Q<0&&(M={left:"0"},te=0,fe.value.left=`${N/2}px`),globalThis.innerWidth{const U=rn(R.value?.[z]?.[N]);U&&(Y.marker?.customPosition&&Y.marker?.tooltip?.length?ie.value=Y.marker.customPosition(U):await B(U,Y),o("tooltip-open",Y.marker))},V=async(Y,z,N)=>{if(X.value&&m.value.enabled&&m.value.dragSelect)return r("select-date",Y);if(r("set-hover-date",Y),Y.marker?.tooltip?.length){if(i.hideOffsetDates&&!Y.current)return;await se(Y,z,N)}},F=Y=>{K.value&&(K.value=null,ie.value=structuredClone({bottom:"",left:"",transform:""}),o("tooltip-close",Y.marker))},J=(Y,z,N)=>{Y&&(Array.isArray(R.value[z])?R.value[z][N]=Y:R.value[z]=[Y]),i.arrowNavigation&&y(R.value,"calendar")},O=Y=>{c.value.monthChangeOnScroll&&(Y.preventDefault(),r("handle-scroll",Y))},T=Y=>p.value?p.value.type==="local"?xv(Y.value,{weekStartsOn:+i.weekStart,locale:i.locale}):p.value.type==="iso"?Tv(Y.value):typeof p.value.type=="function"?p.value.type(Y.value):"":"",C=Y=>{const z=Y[0];return p.value?.hideOnOffsetDates?Y.some(N=>N.current)?T(z):"":T(z)},E=(Y,z,N=!0)=>{!N&&$()||(!m.value.enabled||c.value.allowPreventDefault)&&(k(Y,c.value),r("select-date",z))},I=Y=>{k(Y,c.value)},H=Y=>{m.value.enabled&&m.value.dragSelect?(X.value=!0,r("select-date",Y)):m.value.enabled&&r("select-date",Y)},Z=()=>{const Y=s(),z=fr(Y,{locale:i.locale,weekStartsOn:+i.weekStart}),N=Sv(Y,{locale:i.locale,weekStartsOn:+i.weekStart});return wv({start:z,end:N}).map(U=>S(U))};return t({triggerTransition:re}),(Y,z)=>(D(),L("div",{class:xe(Re.value)},[A("div",{ref:"calendar-wrap",class:xe(he.value),role:"grid"},[A("div",GH,[f(p)?(D(),L("div",qH,me(f(p).label),1)):q("",!0),(D(!0),L(Me,null,Xe(ne.value,(N,U)=>(D(),L("div",{key:U,class:"dp__calendar_header_item",role:"gridcell","data-test-id":"calendar-header","aria-label":f(u)?.weekDay?.(U)},[Y.$slots["calendar-header"]?Ee(Y.$slots,"calendar-header",{key:0,day:N,index:U}):q("",!0),Y.$slots["calendar-header"]?q("",!0):(D(),L(Me,{key:1},[_e(me(N),1)],64))],8,KH))),128))]),z[2]||(z[2]=A("div",{class:"dp__calendar_header_separator"},null,-1)),ae(Vi,{name:ce.value,css:!!f(l)},{default:de(()=>[W.value?(D(),L("div",{key:0,class:"dp__calendar",role:"rowgroup",onMouseleave:z[1]||(z[1]=N=>X.value=!1)},[(D(!0),L(Me,null,Xe(j.value,(N,U)=>(D(),L("div",{key:U,class:"dp__calendar_row",role:"row"},[f(p)?(D(),L("div",QH,[A("div",XH,me(C(N.days)),1)])):q("",!0),(D(!0),L(Me,null,Xe(N.days,(M,te)=>(D(),L("div",{id:f(w)(M.value),ref_for:!0,ref:Q=>J(Q,U,te),key:te+U,role:"gridcell",class:"dp__calendar_item","aria-selected":(M.classData.dp__active_date||M.classData.dp__range_start||M.classData.dp__range_end)??void 0,"aria-disabled":M.classData.dp__cell_disabled||void 0,"aria-label":f(u)?.day?.(M),tabindex:!M.current&&f(i).hideOffsetDates?void 0:0,"data-test-id":f(w)(M.value),onClick:dn(Q=>E(Q,M),["prevent"]),onTouchend:Q=>E(Q,M,!1),onKeydown:Q=>f(v)(Q,()=>Y.$emit("select-date",M)),onMouseenter:Q=>V(M,U,te),onMouseleave:Q=>F(M),onMousedown:Q=>H(M),onMouseup:z[0]||(z[0]=Q=>X.value=!1)},[A("div",{class:xe(["dp__cell_inner",M.classData])},[Y.$slots.day&&Ie.value(M)?Ee(Y.$slots,"day",{key:0,day:+M.text,date:M.value}):q("",!0),Y.$slots.day?q("",!0):(D(),L(Me,{key:1},[_e(me(M.text),1)],64)),M.marker&&Ie.value(M)?(D(),L(Me,{key:2},[Y.$slots.marker?Ee(Y.$slots,"marker",{key:0,marker:M.marker,day:+M.text,date:M.value}):(D(),L("div",{key:1,class:xe(Oe.value(M.marker)),style:Gt(M.marker.color?{backgroundColor:M.marker.color}:{})},null,6))],64)):q("",!0),Pe.value(M.value)?(D(),L("div",{key:3,ref_for:!0,ref:"active-tooltip",class:"dp__marker_tooltip",style:Gt(ie.value)},[M.marker?.tooltip?(D(),L("div",{key:0,class:"dp__tooltip_content",onClick:I},[(D(!0),L(Me,null,Xe(M.marker.tooltip,(Q,we)=>(D(),L("div",{key:we,class:"dp__tooltip_text"},[Y.$slots["marker-tooltip"]?Ee(Y.$slots,"marker-tooltip",{key:0,tooltip:Q,day:M.value}):q("",!0),Y.$slots["marker-tooltip"]?q("",!0):(D(),L(Me,{key:1},[A("div",{class:"dp__tooltip_mark",style:Gt(Q.color?{backgroundColor:Q.color}:{})},null,4),A("div",null,me(Q.text),1)],64))]))),128)),A("div",{class:"dp__arrow_bottom_tp",style:Gt(fe.value)},null,4)])):q("",!0)],4)):q("",!0)],2)],40,ZH))),128))]))),128))],32)):q("",!0)]),_:3},8,["name","css"])],2)],2))}}),eB=(e,t,n,r)=>{const a=oe([]),s=oe(new Date),o=oe(),{getDate:i,rootEmit:l,calendars:c,month:u,year:d,time:p,modelValue:m,rootProps:_,today:y,state:b,defaults:{multiCalendars:h,startTime:g,range:w,config:v,safeDates:k,multiDates:$,timeConfig:S,flow:x}}=it(),{validateMonthYearInRange:P,isDisabled:R,isDateRangeAllowed:K,checkMinMaxRange:W}=gr(),{updateTimeValues:X,getSetDateTime:ce,assignTime:ie,assignStartTime:fe,validateTime:j,disabledTimesConfig:ne}=lS(r),{formatDay:le}=Rs(),{resetDateTime:re,setTime:he,isDateBefore:ke,isDateEqual:Oe,getDaysInBetween:Pe}=kn(),{checkRangeAutoApply:Re,getRangeWithFixedDate:Ie,handleMultiDatesSelect:B,setPresetDate:se}=yf(),{getMapDate:V}=sn();Pu(()=>I(b.isTextInputDate));const F=ee=>!v.value.keepViewOnOffsetClick||ee?!0:!o.value,J=(ee,Te,je,tt=!1)=>{F(tt)&&(c.value[ee]??=c.value[ee]={month:0,year:0},c.value[ee].month=Te??c.value[ee]?.month,c.value[ee].year=je??c.value[ee]?.year)},O=()=>{_.autoApply&&t("select-date")},T=()=>{g.value&&fe(g.value)};ut(()=>{m.value||(Ve(),T()),I(!0),_.focusStartDate&&_.startDate&&Ve()});const C=G(()=>x.value?.steps?.length&&!x.value?.partial?e.flowStep===x.value.steps.length:!0),E=()=>{_.autoApply&&C.value&&t("auto-apply",x.value?.partial?e.flowStep!==x.value?.steps?.length:!1)},I=(ee=!1)=>{if(m.value)return Array.isArray(m.value)?(a.value=m.value,te(ee)):z(m.value,ee);if(h.value.count&&ee&&!_.startDate)return Y(i(),ee)},H=()=>Array.isArray(m.value)&&w.value.enabled?at(m.value[0])===at(m.value[1]??m.value[0]):!1,Z=ee=>{const Te=Ar(ee,1);return{month:at(Te),year:qe(Te)}},Y=(ee=i(),Te=!1)=>{if((!h.value.count||!h.value.static||Te)&&J(0,at(ee),qe(ee)),h.value.count&&(!m.value||H()||!h.value.solo)&&(!h.value.solo||Te))for(let je=1;je{Y(ee),ie("hours",pa(ee)),ie("minutes",Ua(ee)),ie("seconds",xs(ee)),h.value.count&&Te&&Ce()},N=ee=>{if(h.value.count){if(h.value.solo)return 0;const Te=at(ee[0]),je=at(ee[1]);return Math.abs(je-Te){ee[1]&&w.value.showLastInRange?Y(ee[N(ee)],Te):Y(ee[0],Te);const je=(tt,Wt)=>[tt(ee[0]),ee?.[1]?tt(ee[1]):p[Wt][1]];ie("hours",je(pa,"hours")),ie("minutes",je(Ua,"minutes")),ie("seconds",je(xs,"seconds"))},M=(ee,Te)=>{if((w.value.enabled||_.weekPicker)&&!$.value.enabled)return U(ee,Te);if($.value.enabled&&Te){const je=ee[ee.length-1];return z(je,Te)}},te=ee=>{const Te=m.value;M(Te,ee),h.value.count&&h.value.solo&&Ce()},Q=(ee,Te)=>{const je=nt(i(),{month:u.value(Te),year:d.value(Te)}),tt=ee<0?Ar(je,1):Ai(je,1);P(at(tt),qe(tt),ee<0,_.preventMinMaxNavigation)&&(J(Te,at(tt),qe(tt)),l("update-month-year",{instance:Te,month:at(tt),year:qe(tt)}),h.value.count&&!h.value.solo&&we(Te),n())},we=ee=>{for(let Te=ee-1;Te>=0;Te--){const je=Ai(nt(i(),{month:u.value(Te+1),year:d.value(Te+1)}),1);J(Te,at(je),qe(je))}for(let Te=ee+1;Te<=h.value.count-1;Te++){const je=Ar(nt(i(),{month:u.value(Te-1),year:d.value(Te-1)}),1);J(Te,at(je),qe(je))}},Ce=()=>{if(Array.isArray(m.value)&&m.value.length===2){const ee=i(i(m.value[1]??Ar(m.value[0],1))),[Te,je]=[at(m.value[0]),qe(m.value[0])],[tt,Wt]=[at(m.value[1]),qe(m.value[1])];(Te!==tt||Te===tt&&je!==Wt)&&h.value.solo&&J(1,at(ee),qe(ee))}else m.value&&!Array.isArray(m.value)&&(J(0,at(m.value),qe(m.value)),Y(i()))},Ve=()=>{_.startDate&&(J(0,at(i(_.startDate)),qe(i(_.startDate))),h.value.count&&we(0))},lt=(ee,Te)=>{if(v.value.monthChangeOnScroll){const je=Date.now()-s.value.getTime(),tt=Math.abs(ee.deltaY);let Wt=500;tt>1&&(Wt=100),tt>100&&(Wt=0),je>Wt&&(s.value=new Date,Q(v.value.monthChangeOnScroll==="inverse"?ee.deltaY:-ee.deltaY,Te))}},Ft=(ee,Te,je=!1)=>{v.value.monthChangeOnArrows&&_.vertical===je&&on(ee,Te)},on=(ee,Te)=>{Q(ee==="right"?-1:1,Te)},gn=ee=>{if(k.value.markers)return V(ee.value,k.value.markers)},_r=(ee,Te)=>{switch(_.sixWeeks===!0?"append":_.sixWeeks){case"prepend":return[!0,!1];case"center":return[ee==0,!0];case"fair":return[ee==0||Te>ee,!0];case"append":return[!1,!1];default:return[!1,!1]}},ue=(ee,Te,je,tt)=>{if(_.sixWeeks&&ee.length<6){const Wt=6-ee.length,Ja=(Te.getDay()+7-tt)%7,$o=6-(je.getDay()+7-tt)%7,[Ji,Vu]=_r(Ja,$o);for(let el=1;el<=Wt;el++)if(Vu?!!(el%2)==Ji:Ji){const es=ee[0].days[0],Af=De(rr(es.value,-7),at(Te));ee.unshift({days:Af})}else{const es=ee[ee.length-1],Af=es.days[es.days.length-1],yT=De(rr(Af.value,1),at(Te));ee.push({days:yT})}}return ee},De=(ee,Te)=>{const je=i(ee),tt=[];for(let Wt=0;Wt<7;Wt++){const Ja=rr(je,Wt),$o=at(Ja)!==Te;tt.push({text:_.hideOffsetDates&&$o?"":le(Ja),value:Ja,current:!$o,classData:{}})}return tt},Ne=(ee,Te)=>{const je=[],tt=i(new Date(Te,ee)),Wt=i(new Date(Te,ee+1,0)),Ja=_.weekStart,$o=fr(tt,{weekStartsOn:Ja}),Ji=Vu=>{const el=De(Vu,ee);if(je.push({days:el}),!je[je.length-1].days.some(es=>Oe(i(es.value),re(Wt)))){const es=rr(Vu,7);Ji(es)}};return Ji($o),ue(je,tt,Wt,Ja)},rt=ee=>{const Te=he({hours:p.hours,minutes:p.minutes,seconds:Br()},i(ee.value));l("date-click",Te),$.value.enabled?B(Te,$.value.limit):m.value=Te,r(),Xt().then(()=>{E()})},Ze=ee=>w.value.noDisabledRange?Pe(a.value[0],ee).some(Te=>R(Te)):!1,Jt=()=>{a.value=m.value?m.value.slice().filter(ee=>!!ee):[],a.value.length===2&&!(w.value.fixedStart||w.value.fixedEnd)&&(a.value=[])},yn=(ee,Te)=>{const je=[i(ee.value),rr(i(ee.value),+w.value.autoRange)];K(je)?(Te&&Le(ee.value),a.value=je):l("invalid-date",ee.value)},Le=ee=>{const Te=at(i(ee)),je=qe(i(ee));if(J(0,Te,je),h.value.count>0)for(let tt=1;tt{if(Ze(ee.value)||!W(ee.value,m.value,w.value.fixedStart?0:1))return l("invalid-date",ee.value);a.value=Ie(i(ee.value))},en=(ee,Te)=>{if(Jt(),w.value.autoRange)return yn(ee,Te);if(w.value.fixedStart||w.value.fixedEnd)return ln(ee);a.value[0]?W(i(ee.value),m.value)&&!Ze(ee.value)?ke(i(ee.value),i(a.value[0]))?(a.value.unshift(i(ee.value)),l("range-end",a.value[0])):(a.value[1]=i(ee.value),l("range-end",a.value[1])):l("invalid-date",ee.value):(a.value[0]=i(ee.value),l("range-start",a.value[0]))},Br=(ee=!0)=>S.value.enableSeconds?Array.isArray(p.seconds)?ee?p.seconds[0]:p.seconds[1]:p.seconds:0,Ln=ee=>{a.value[ee]=he({hours:p.hours[ee],minutes:p.minutes[ee],seconds:Br(ee!==1)},a.value[ee])},jr=()=>{a.value[0]&&a.value[1]&&+a.value?.[0]>+a.value?.[1]&&(a.value.reverse(),l("range-start",a.value[0]),l("range-end",a.value[1]))},Cf=()=>{a.value.length&&(a.value[0]&&!a.value[1]?Ln(0):(Ln(0),Ln(1),r()),jr(),m.value=a.value.slice(),Re(a.value,t,a.value.length<2||x.value?.steps.length?e.flowStep!==x.value?.steps?.length:!1))},Zi=(ee,Te=!1)=>{if(R(ee.value)||!ee.current&&_.hideOffsetDates)return l("invalid-date",ee.value);if(o.value=structuredClone(ee),!w.value.enabled)return rt(ee);Array.isArray(p.hours)&&Array.isArray(p.minutes)&&!$.value.enabled&&(en(ee,Te),Cf())},Po=(ee,Te)=>{J(ee,Te.month,Te.year,!0),h.value.count&&!h.value.solo&&we(ee),l("update-month-year",{instance:ee,month:Te.month,year:Te.year}),n(h.value.solo?ee:void 0);const je=x.value?.steps?.length?x.value.steps[e.flowStep]:void 0;!Te.fromNav&&(je===Mn.month||je===Mn.year)&&r()},fT=ee=>{se({value:ee}),O(),_.multiCalendars&&Xt().then(()=>I(!0))},pT=()=>{let ee=i();return _.actionRow?.nowBtnRound&&(ee=eW(ee,{roundingMethod:_.actionRow.nowBtnRound.rounding??"ceil",nearestTo:_.actionRow.nowBtnRound.roundTo??15})),ee},hT=()=>{const ee=pT();!w.value.enabled&&!$.value.enabled?m.value=ee:m.value&&Array.isArray(m.value)&&m.value[0]?$.value.enabled?m.value=[...m.value,ee]:m.value=ke(ee,m.value[0])?[ee,m.value[0]]:[m.value[0],ee]:m.value=[ee],O()},mT=()=>{if(Array.isArray(m.value))if($.value.enabled){const ee=vT();m.value[m.value.length-1]=ce(ee)}else m.value=m.value.map((ee,Te)=>ee&&ce(ee,Te));else m.value=ce(m.value);t("time-update")},vT=()=>Array.isArray(m.value)&&m.value.length?m.value[m.value.length-1]:null,gT=ee=>{let Te="";if(w.value.enabled&&Array.isArray(m.value))for(const je of Object.keys(ee)){const tt=ee[je];Array.isArray(tt)&&(p[je][0]!==tt[0]&&(Te="range-start"),p[je][1]!==tt[1]&&(Te="range-start"))}return Te};return{calendars:c,modelValue:m,month:u,year:d,time:p,disabledTimesConfig:ne,today:y,validateTime:j,getCalendarDays:Ne,getMarker:gn,handleScroll:lt,handleSwipe:on,handleArrow:Ft,selectDate:Zi,updateMonthYear:Po,presetDate:fT,selectCurrentDate:hT,updateTime:ee=>{const Te=gT(ee);X(ee,mT),Te&&l(Te,m.value[Te==="range-start"?0:1])},assignMonthAndYear:Y,setStartTime:T}},tB=()=>{const{isModelAuto:e,matchDate:t,isDateAfter:n,isDateBefore:r,isDateBetween:a,isDateEqual:s,getWeekFromDate:o,getBeforeAndAfterInRange:i}=kn(),{getDate:l,today:c,rootProps:u,defaults:{multiCalendars:d,multiDates:p,ui:m,highlight:_,safeDates:y,range:b},modelValue:h}=it(),{isDisabled:g}=gr(),w=oe(null),v=E=>{!E.current&&u.hideOffsetDates||(w.value=E.value)},k=()=>{w.value=null},$=E=>Array.isArray(h.value)&&b.value.enabled&&h.value[0]&&w.value?E?n(w.value,h.value[0]):r(w.value,h.value[0]):!0,S=(E,I)=>{const H=()=>h.value?I?h.value[0]||null:h.value[1]:null,Z=h.value&&Array.isArray(h.value)?H():null;return s(l(E.value),Z)},x=E=>{const I=Array.isArray(h.value)?h.value[0]:null;return E?!r(w.value,I):!0},P=(E,I=!0)=>(b.value.enabled||u.weekPicker)&&Array.isArray(h.value)&&h.value.length===2?u.hideOffsetDates&&!E.current?!1:s(l(E.value),h.value[I?0:1]):b.value.enabled?S(E,I)&&x(I)||s(E.value,Array.isArray(h.value)?h.value[0]:null)&&$(I):!1,R=(E,I)=>{if(Array.isArray(h.value)&&h.value[0]&&h.value.length===1){const H=s(E.value,w.value);return I?n(h.value[0],E.value)&&H:r(h.value[0],E.value)&&H}return!1},K=E=>!h.value||u.hideOffsetDates&&!E.current?!1:b.value.enabled?u.modelAuto&&Array.isArray(h.value)?s(E.value,h.value[0]??c):!1:p.value.enabled&&Array.isArray(h.value)?h.value.some(I=>s(I,E.value)):s(E.value,h.value?h.value:c),W=E=>{if(b.value.autoRange||u.weekPicker){if(w.value){if(u.hideOffsetDates&&!E.current)return!1;const I=rr(w.value,+b.value.autoRange),H=o(l(w.value),u.weekStart);return u.weekPicker?s(H[1],l(E.value)):s(I,l(E.value))}return!1}return!1},X=E=>{if(b.value.autoRange||u.weekPicker){if(w.value){const I=rr(w.value,+b.value.autoRange);if(u.hideOffsetDates&&!E.current)return!1;const H=o(l(w.value),u.weekStart);return u.weekPicker?n(E.value,H[0])&&r(E.value,H[1]):n(E.value,w.value)&&r(E.value,I)}return!1}return!1},ce=E=>{if(b.value.autoRange||u.weekPicker){if(w.value){if(u.hideOffsetDates&&!E.current)return!1;const I=o(l(w.value),u.weekStart);return u.weekPicker?s(I[0],E.value):s(w.value,E.value)}return!1}return!1},ie=E=>a(h.value,w.value,E.value),fe=()=>u.modelAuto&&Array.isArray(h.value)?!!h.value[0]:!1,j=()=>u.modelAuto?e(h.value):!0,ne=E=>{if(u.weekPicker)return!1;const I=b.value.enabled?!P(E)&&!P(E,!1):!0;return!g(E.value)&&!K(E)&&!(!E.current&&u.hideOffsetDates)&&I},le=E=>b.value.enabled?u.modelAuto?fe()&&K(E):!1:K(E),re=E=>_.value?t(E.value,y.value.highlight):!1,he=E=>{const I=g(E.value);return I&&(typeof _.value=="function"?!_.value(E.value,I):!_.value.options.highlightDisabled)},ke=E=>typeof _.value=="function"?_.value(E.value):_.value.weekdays?.includes(E.value.getDay()),Oe=E=>(b.value.enabled||u.weekPicker)&&(!(d.value.count>0)||E.current)&&j()&&!(!E.current&&u.hideOffsetDates)&&!K(E)?ie(E):!1,Pe=E=>{if(Array.isArray(h.value)&&h.value.length===1){const{before:I,after:H}=i(+b.value.maxRange,h.value[0]);return Ci(E.value,I)||To(E.value,H)}return!1},Re=E=>{if(Array.isArray(h.value)&&h.value.length===1){const{before:I,after:H}=i(+b.value.minRange,h.value[0]);return a([I,H],h.value[0],E.value)}return!1},Ie=E=>b.value.enabled&&(b.value.maxRange||b.value.minRange)?b.value.maxRange&&b.value.minRange?Pe(E)||Re(E):b.value.maxRange?Pe(E):Re(E):!1,B=E=>{const{isRangeStart:I,isRangeEnd:H}=J(E),Z=b.value.enabled?I||H:!1;return{dp__cell_offset:!E.current,dp__pointer:!u.disabled&&!(!E.current&&u.hideOffsetDates)&&!g(E.value)&&!Ie(E),dp__cell_disabled:g(E.value)||Ie(E),dp__cell_highlight:!he(E)&&(re(E)||ke(E))&&!le(E)&&!Z&&!ce(E)&&!(Oe(E)&&u.weekPicker)&&!H,dp__cell_highlight_active:!he(E)&&(re(E)||ke(E))&&le(E),dp__today:!u.noToday&&s(E.value,c)&&E.current,"dp--past":r(E.value,c),"dp--future":n(E.value,c)}},se=E=>({dp__active_date:le(E),dp__date_hover:ne(E)}),V=E=>{if(h.value&&!Array.isArray(h.value)){const I=o(h.value,u.weekStart);return{...T(E),dp__range_start:s(I[0],E.value),dp__range_end:s(I[1],E.value),dp__range_between_week:n(E.value,I[0])&&r(E.value,I[1])}}return{...T(E)}},F=E=>{if(h.value&&Array.isArray(h.value)){const I=o(h.value[0],u.weekStart),H=h.value[1]?o(h.value[1],u.weekStart):[];return{...T(E),dp__range_start:s(I[0],E.value)||s(H[0],E.value),dp__range_end:s(I[1],E.value)||s(H[1],E.value),dp__range_between_week:n(E.value,I[0])&&r(E.value,I[1])||n(E.value,H[0])&&r(E.value,H[1]),dp__range_between:n(E.value,I[1])&&r(E.value,H[0])}}return{...T(E)}},J=E=>{const I=d.value.count>0?E.current&&P(E)&&j():P(E)&&j(),H=d.value.count>0?E.current&&P(E,!1)&&j():P(E,!1)&&j();return{isRangeStart:I,isRangeEnd:H}},O=E=>{const{isRangeStart:I,isRangeEnd:H}=J(E);return{dp__range_start:I,dp__range_end:H,dp__range_between:Oe(E),dp__date_hover:s(E.value,w.value)&&!I&&!H&&!u.weekPicker,dp__date_hover_start:R(E,!0),dp__date_hover_end:R(E,!1)}},T=E=>({...O(E),dp__cell_auto_range:X(E),dp__cell_auto_range_start:ce(E),dp__cell_auto_range_end:W(E)}),C=E=>b.value.enabled?b.value.autoRange?T(E):u.modelAuto?{...se(E),...O(E)}:u.weekPicker?F(E):O(E):u.weekPicker?V(E):se(E);return{setHoverDate:v,clearHoverDate:k,getDayClassData:E=>u.hideOffsetDates&&!E.current?{}:{...B(E),...C(E),[m.value.dayClass?m.value.dayClass(E.value,h.value):""]:!0,...m.value.calendarCell}}},nB={key:0},rB=ye({__name:"DatePicker",props:S_({flowStep:{},collapse:{type:Boolean},menuWrapRef:{},noOverlayFocus:{type:Boolean}},eH),emits:["mount","update-flow-step","reset-flow","focus-menu","select-date","time-update","auto-apply"],setup(e,{expose:t,emit:n}){const r=n,a=e,{month:s,year:o,modelValue:i,time:l,disabledTimesConfig:c,today:u,validateTime:d,getCalendarDays:p,getMarker:m,handleArrow:_,handleScroll:y,handleSwipe:b,selectDate:h,updateMonthYear:g,presetDate:w,selectCurrentDate:v,updateTime:k,assignMonthAndYear:$,setStartTime:S}=eB(a,r,V,F),x=Ds(),{setHoverDate:P,getDayClassData:R,clearHoverDate:K}=tB(),{getDate:W,rootEmit:X,rootProps:ce,defaults:{multiCalendars:ie,timeConfig:fe}}=it(),{getYears:j,getMonths:ne}=mf(),{getCellId:le}=kn(),{mapSlots:re}=Is(),he=ft("calendar-header"),ke=ft("calendar"),Oe=ft("time-picker"),Pe=re(x,"calendar"),Re=re(x,"monthYear"),Ie=re(x,"timePicker"),B=Z=>{r("mount",Z)};Ue(ie,(Z,Y)=>{Z.count-Y.count>0&&$()},{deep:!0});const se=G(()=>Z=>p(s.value(Z),o.value(Z)).map(Y=>({...Y,days:Y.days.map(z=>(z.marker=m(z),z.classData=R(z),z))})));function V(Z){Z||Z===0?ke.value?.[Z]?.triggerTransition(s.value(Z),o.value(Z)):ke.value?.forEach((Y,z)=>Y?.triggerTransition(s.value(z),o.value(z)))}function F(){r("update-flow-step")}const J=(Z,Y,z=0)=>{he.value?.[z]?.toggleMonthPicker(Z,Y)},O=(Z,Y,z=0)=>{he.value?.[z]?.toggleYearPicker(Z,Y)},T=(Z,Y,z)=>{Oe.value?.toggleTimePicker(Z,Y,z)},C=(Z,Y)=>{if(!ce.range){const z=i.value?i.value:u,N=Y?W(Y):z,U=Z?fr(N,{weekStartsOn:1}):Sv(N,{weekStartsOn:1});h({value:U,current:at(N)===s.value(0),text:"",classData:{}}),document.getElementById(le(U))?.focus()}},E=Z=>{he.value?.[0]?.handleMonthYearChange(Z,!0)},I=Z=>{g(0,{month:s.value(0),year:o.value(0)+(Z?1:-1),fromNav:!0})},H=Z=>{X("overlay-toggle",{open:!1,overlay:Z}),r("focus-menu")};return t({clearHoverDate:K,presetDate:w,selectCurrentDate:v,handleArrow:_,updateMonthYear:g,setStartTime:S,toggleMonthPicker:J,toggleYearPicker:O,toggleTimePicker:T,getSidebarProps:()=>({modelValue:i,month:s,year:o,time:l,updateTime:k,updateMonthYear:g,selectDate:h,presetDate:w}),changeMonth:E,changeYear:I,selectWeekDate:C}),(Z,Y)=>(D(),L(Me,null,[ae(gf,{collapse:e.collapse},{default:de(({instances:z,wrapClass:N})=>[(D(!0),L(Me,null,Xe(z,U=>(D(),L("div",{key:U,class:xe(N)},[f(ce).hideMonthYearSelect?q("",!0):(D(),ge(zH,{key:0,ref_for:!0,ref:"calendar-header",months:f(ne)(),years:f(j)(),month:f(s)(U),year:f(o)(U),instance:U,"menu-wrap-ref":e.menuWrapRef,onMount:Y[0]||(Y[0]=M=>B(f(vo).header)),onResetFlow:Y[1]||(Y[1]=M=>Z.$emit("reset-flow")),onUpdateMonthYear:M=>f(g)(U,M),onOverlayClosed:H},pn({_:2},[Xe(f(Re),(M,te)=>({name:M,fn:de(Q=>[Ee(Z.$slots,M,hn({ref_for:!0},Q))])}))]),1032,["months","years","month","year","instance","menu-wrap-ref","onUpdateMonthYear"])),ae(JH,{ref_for:!0,ref:"calendar","mapped-dates":se.value(U),instance:U,month:f(s)(U),year:f(o)(U),onSelectDate:M=>f(h)(M,U!==1),onSetHoverDate:Y[2]||(Y[2]=M=>f(P)(M)),onHandleScroll:M=>f(y)(M,U),onHandleSwipe:M=>f(b)(M,U),onMount:Y[3]||(Y[3]=M=>B(f(vo).calendar))},pn({_:2},[Xe(f(Pe),(M,te)=>({name:M,fn:de(Q=>[Ee(Z.$slots,M,hn({ref_for:!0},{...Q}))])}))]),1032,["mapped-dates","instance","month","year","onSelectDate","onHandleScroll","onHandleSwipe"])],2))),128))]),_:3},8,["collapse"]),f(fe).enableTimePicker?(D(),L("div",nB,[Z.$slots["time-picker"]?Ee(Z.$slots,"time-picker",jn(hn({key:0},{time:f(l),updateTime:f(k)}))):(D(),ge(iS,{key:1,ref:"time-picker",hours:f(l).hours,minutes:f(l).minutes,seconds:f(l).seconds,"disabled-times-config":f(c),"validate-time":f(d),"no-overlay-focus":e.noOverlayFocus,onMount:Y[4]||(Y[4]=z=>B(f(vo).timePicker)),"onUpdate:hours":Y[5]||(Y[5]=z=>f(k)({hours:z,minutes:f(l).minutes,seconds:f(l).seconds})),"onUpdate:minutes":Y[6]||(Y[6]=z=>f(k)({hours:f(l).hours,minutes:z,seconds:f(l).seconds})),"onUpdate:seconds":Y[7]||(Y[7]=z=>f(k)({hours:f(l).hours,minutes:f(l).minutes,seconds:z})),onResetFlow:Y[8]||(Y[8]=z=>Z.$emit("reset-flow"))},pn({_:2},[Xe(f(Ie),(z,N)=>({name:z,fn:de(U=>[Ee(Z.$slots,z,jn(Tr(U)))])}))]),1032,["hours","minutes","seconds","disabled-times-config","validate-time","no-overlay-focus"]))])):q("",!0)],64))}}),aB=(e,t)=>{const{getDate:n,modelValue:r,year:a,calendars:s,defaults:{highlight:o,range:i,multiDates:l}}=it(),{isDateBetween:c,isDateEqual:u}=kn(),{checkRangeAutoApply:d,handleMultiDatesSelect:p,setMonthOrYearRange:m}=yf();Pu();const{isDisabled:_}=gr(),{formatQuarterText:y}=Rs(),{selectYear:b,groupedYears:h,showYearPicker:g,isDisabled:w,toggleYearPicker:v,handleYearSelect:k,handleYear:$,setStartDate:S}=oS(t),x=oe();ut(()=>{S()});const P=G(()=>j=>r.value?Array.isArray(r.value)?r.value.some(ne=>I0(j,ne)):I0(r.value,j):!1),R=j=>{if(i.value.enabled){if(Array.isArray(r.value)){const ne=u(j,r.value[0])||u(j,r.value[1]);return c(r.value,x.value,j)&&!ne}return!1}return!1},K=(j,ne)=>j.quarter===A0(ne)&&j.year===qe(ne),W=j=>typeof o.value=="function"?o.value({quarter:A0(j),year:qe(j)}):o.value.quarters.some(ne=>K(ne,j)),X=G(()=>j=>{const ne=nt(n(),{year:a.value(j)});return lV({start:di(ne),end:Y3(ne)}).map(le=>{const re=ro(le),he=D0(le),ke=_(le),Oe=R(re),Pe=W(re);return{text:y(re,he),value:re,active:P.value(re),highlighted:Pe,disabled:ke,isBetween:Oe}})}),ce=j=>{p(j,l.value.limit),t("auto-apply",!0)},ie=j=>{r.value=m(j),d(r.value,t,r.value.length<2)},fe=j=>{r.value=j,t("auto-apply")};return{groupedYears:h,year:a,isDisabled:w,quarters:X,showYearPicker:g,modelValue:r,selectYear:b,toggleYearPicker:v,handleYearSelect:k,handleYear:$,setHoverDate:j=>{x.value=j},selectQuarter:(j,ne,le)=>{if(!le)return s.value[ne].month=at(D0(j)),l.value.enabled?ce(j):i.value.enabled?ie(j):fe(j)}}},sB={class:"dp--quarter-items"},oB=["data-test-id","disabled","onClick","onMouseover"],iB=ye({__name:"QuarterPicker",props:{flowStep:{},collapse:{type:Boolean},menuWrapRef:{},noOverlayFocus:{type:Boolean}},emits:["reset-flow","auto-apply"],setup(e,{expose:t,emit:n}){const r=n,a=e,{defaults:{config:s}}=it(),o=Ds(),{mapSlots:i}=Is(),{boolHtmlAttribute:l}=Gi(),c=i(o,"yearMode"),{groupedYears:u,year:d,isDisabled:p,quarters:m,modelValue:_,showYearPicker:y,setHoverDate:b,selectQuarter:h,toggleYearPicker:g,handleYearSelect:w,handleYear:v}=aB(a,r);return t({getSidebarProps:()=>({modelValue:_,year:d,selectQuarter:h,handleYearSelect:w,handleYear:v})}),(k,$)=>(D(),ge(gf,{collapse:e.collapse,stretch:""},{default:de(({instances:S,wrapClass:x})=>[(D(!0),L(Me,null,Xe(S,P=>(D(),L("div",{key:P,class:xe(x)},[A("div",{class:"dp-quarter-picker-wrap",style:Gt({minHeight:`${f(s).modeHeight}px`})},[k.$slots["top-extra"]?Ee(k.$slots,"top-extra",{key:0,value:f(_)}):q("",!0),A("div",null,[ae(sS,{items:f(u)(P),instance:P,"show-year-picker":f(y)[P],year:f(d)(P),"is-disabled":R=>f(p)(P,R),onHandleYear:R=>f(v)(P,R),onYearSelect:R=>f(w)(R,P),onToggleYearPicker:R=>f(g)(P,R?.flow,R?.show)},pn({_:2},[Xe(f(c),(R,K)=>({name:R,fn:de(W=>[Ee(k.$slots,R,hn({ref_for:!0},W))])}))]),1032,["items","instance","show-year-picker","year","is-disabled","onHandleYear","onYearSelect","onToggleYearPicker"])]),A("div",sB,[(D(!0),L(Me,null,Xe(f(m)(P),(R,K)=>(D(),L("div",{key:K},[A("button",{type:"button",class:xe(["dp--qr-btn",{"dp--qr-btn-active":R.active,"dp--qr-btn-between":R.isBetween,"dp--qr-btn-disabled":R.disabled,"dp--highlighted":R.highlighted}]),"data-test-id":R.value,disabled:f(l)(R.disabled),onClick:W=>f(h)(R.value,P,R.disabled),onMouseover:W=>f(b)(R.value)},[k.$slots.quarter?Ee(k.$slots,"quarter",{key:0,value:R.value,text:R.text}):(D(),L(Me,{key:1},[_e(me(R.text),1)],64))],42,oB)]))),128))])],4)],2))),128))]),_:3},8,["collapse"]))}}),lB=["id","tabindex","role","aria-label"],uB={key:0,class:"dp--menu-load-container"},cB={key:1,class:"dp--menu-header"},dB=["data-dp-mobile"],fB={key:0,class:"dp__sidebar_left"},pB=["data-dp-mobile"],hB=["data-test-id","data-dp-mobile","onClick","onKeydown"],mB={class:"dp__instance_calendar"},vB={key:2,class:"dp__sidebar_right"},gB={key:3,class:"dp__action_extra"},yB=ye({__name:"DatepickerMenu",props:{collapse:{type:Boolean},noOverlayFocus:{type:Boolean},getInputRect:{type:Function}},emits:["close-picker","select-date","auto-apply","time-update","menu-blur"],setup(e,{expose:t,emit:n}){const r=n,a=Ds(),{state:s,rootProps:o,defaults:{textInput:i,inline:l,config:c,ui:u,ariaLabels:d},setState:p}=it(),{isMobile:m}=hf(),{mapSlots:_}=Is(),{handleEventPropagation:y,getElWithin:b,checkStopPropagation:h,checkKeyDown:g}=sn(),{arrowRight:w,arrowLeft:v,arrowDown:k,arrowUp:$}=$s(),S=ft("inner-menu"),x=ft("dp-menu"),P=ft("dyn-cmp"),R=oe(0),K=oe(!1),W=oe(!1),{flowStep:X,updateFlowStep:ce,childMount:ie,resetFlow:fe,handleFlow:j}=pW(P),ne=N=>{W.value=!0,c.value.allowPreventDefault&&N.preventDefault(),h(N,c.value,!0)};ut(()=>{K.value=!0,le(),globalThis.addEventListener("resize",le);const N=rn(x);N&&!i.value.enabled&&!l.value.enabled&&(p("menuFocused",!0),he()),N&&(N.addEventListener("pointerdown",ne),N.addEventListener("mousedown",ne)),document.addEventListener("mousedown",z)}),xn(()=>{globalThis.removeEventListener("resize",le),document.removeEventListener("mousedown",z);const N=rn(x);N&&(N.removeEventListener("pointerdown",ne),N.removeEventListener("mousedown",ne))});const le=()=>{const N=rn(S);N&&(R.value=N.getBoundingClientRect().width)},re=G(()=>o.monthPicker?TH:o.yearPicker?xH:o.timePicker?VH:o.quarterPicker?iB:rB),he=()=>{const N=rn(x);N&&N.focus({preventScroll:!0})},ke=G(()=>P.value?.getSidebarProps()||{}),Oe=_(a,"action"),Pe=G(()=>o.monthPicker||o.yearPicker?_(a,"monthYear"):o.timePicker?_(a,"timePicker"):_(a,"shared")),Re=G(()=>({dp__menu_disabled:o.disabled,dp__menu_readonly:o.readonly,"dp-menu-loading":o.loading})),Ie=G(()=>({dp__menu:!0,dp__menu_index:!l.value.enabled,dp__relative:l.value.enabled,...u.value.menu})),B=N=>{h(N,c.value,!0)},se=N=>{c.value.escClose&&(r("close-picker"),y(N,c.value))},V=N=>{if(o.arrowNavigation){if(N===An.up)return $();if(N===An.down)return k();if(N===An.left)return v();if(N===An.right)return w()}else N===An.left||N===An.up?T("handleArrow",An.left,0,N===An.up):T("handleArrow",An.right,0,N===An.down)},F=N=>{p("shiftKeyInMenu",N.shiftKey),!o.hideMonthYearSelect&&N.code===Mt.tab&&N.target.classList.contains("dp__menu")&&s.shiftKeyInMenu&&(N.preventDefault(),h(N,c.value,!0),r("close-picker"))},J=N=>{P.value?.toggleTimePicker(!1,!1),P.value?.toggleMonthPicker(!1,!1,N),P.value?.toggleYearPicker(!1,!1,N)},O=(N,U=0)=>N==="month"?P.value?.toggleMonthPicker(!1,!0,U):N==="year"?P.value?.toggleYearPicker(!1,!0,U):N==="time"?P.value?.toggleTimePicker(!0,!1):J(U),T=(N,...U)=>{P.value?.[N]&&P.value?.[N](...U)},C=()=>{T("selectCurrentDate")},E=N=>{T("presetDate",Yn(N))},I=()=>{T("clearHoverDate")},H=(N,U)=>{T("updateMonthYear",N,U)},Z=(N,U)=>{N.preventDefault(),V(U)},Y=N=>{if(F(N),N.key===Mt.home||N.key===Mt.end)return T("selectWeekDate",N.key===Mt.home,N.target.getAttribute("id"));switch((N.key===Mt.pageUp||N.key===Mt.pageDown)&&(N.shiftKey?(T("changeYear",N.key===Mt.pageUp),b(x.value,"overlay-year")?.focus()):(T("changeMonth",N.key===Mt.pageUp),b(x.value,N.key===Mt.pageUp?"action-prev":"action-next")?.focus()),N.target.getAttribute("id")&&x.value?.focus({preventScroll:!0})),N.key){case Mt.esc:return se(N);case Mt.arrowLeft:return Z(N,An.left);case Mt.arrowRight:return Z(N,An.right);case Mt.arrowUp:return Z(N,An.up);case Mt.arrowDown:return Z(N,An.down);default:return}},z=N=>{l.value.enabled&&!l.value.input&&!x.value?.contains(N.target)&&W.value&&(W.value=!1,r("menu-blur"))};return t({updateMonthYear:H,switchView:O,onValueCleared:()=>{P.value?.setStartTime?.()},handleFlow:j}),(N,U)=>(D(),L("div",{id:f(o).menuId,ref:"dp-menu",tabindex:f(l).enabled?void 0:"0",role:f(l).enabled?void 0:"dialog","aria-label":f(d)?.menu,class:xe(Ie.value),onMouseleave:I,onClick:B,onKeydown:Y},[(f(o).disabled||f(o).readonly)&&f(l).enabled||f(o).loading?(D(),L("div",{key:0,class:xe(Re.value)},[f(o).loading?(D(),L("div",uB,[...U[5]||(U[5]=[A("span",{class:"dp--menu-loader"},null,-1)])])):q("",!0)],2)):q("",!0),N.$slots["menu-header"]?(D(),L("div",cB,[Ee(N.$slots,"menu-header")])):q("",!0),Ee(N.$slots,"arrow"),A("div",{ref:"inner-menu",class:xe({dp__menu_content_wrapper:f(o).presetDates?.length||!!N.$slots["left-sidebar"]||!!N.$slots["right-sidebar"],"dp--menu-content-wrapper-collapsed":e.collapse&&(f(o).presetDates?.length||!!N.$slots["left-sidebar"]||!!N.$slots["right-sidebar"])}),"data-dp-mobile":f(m),style:Gt({"--dp-menu-width":`${R.value}px`})},[N.$slots["left-sidebar"]?(D(),L("div",fB,[Ee(N.$slots,"left-sidebar",jn(Tr(ke.value)))])):q("",!0),f(o).presetDates.length?(D(),L("div",{key:1,class:xe({"dp--preset-dates-collapsed":e.collapse,"dp--preset-dates":!0}),"data-dp-mobile":f(m)},[(D(!0),L(Me,null,Xe(f(o).presetDates,(M,te)=>(D(),L(Me,{key:te},[M.slot?Ee(N.$slots,M.slot,{key:0,presetDate:E,label:M.label,value:M.value}):(D(),L("button",{key:1,type:"button",style:Gt(M.style||{}),class:xe(["dp__btn dp--preset-range",{"dp--preset-range-collapsed":e.collapse}]),"data-test-id":M.testId??void 0,"data-dp-mobile":f(m),onClick:dn(Q=>E(M.value),["prevent"]),onKeydown:Q=>f(g)(Q,()=>E(M.value),!0)},me(M.label),47,hB))],64))),128))],10,pB)):q("",!0),A("div",mB,[(D(),ge(ko(re.value),{ref:"dyn-cmp","flow-step":f(X),collapse:e.collapse,"no-overlay-focus":e.noOverlayFocus,"menu-wrap-ref":x.value,onMount:f(ie),onUpdateFlowStep:f(ce),onResetFlow:f(fe),onFocusMenu:he,onSelectDate:U[0]||(U[0]=M=>N.$emit("select-date")),onAutoApply:U[1]||(U[1]=M=>N.$emit("auto-apply",M)),onTimeUpdate:U[2]||(U[2]=M=>N.$emit("time-update"))},pn({_:2},[Xe(Pe.value,(M,te)=>({name:M,fn:de(Q=>[Ee(N.$slots,M,jn(Tr({...Q})))])}))]),1064,["flow-step","collapse","no-overlay-focus","menu-wrap-ref","onMount","onUpdateFlowStep","onResetFlow"]))]),N.$slots["right-sidebar"]?(D(),L("div",vB,[Ee(N.$slots,"right-sidebar",jn(Tr(ke.value)))])):q("",!0),N.$slots["action-extra"]?(D(),L("div",gB,[N.$slots["action-extra"]?Ee(N.$slots,"action-extra",{key:0,selectCurrentDate:C}):q("",!0)])):q("",!0)],14,dB),!f(o).autoApply||f(c).keepActionRow?(D(),ge(hH,{key:2,"menu-mount":K.value,"calendar-width":R.value,onClosePicker:U[3]||(U[3]=M=>N.$emit("close-picker")),onSelectDate:U[4]||(U[4]=M=>N.$emit("select-date")),onSelectNow:C},pn({_:2},[Xe(f(Oe),(M,te)=>({name:M,fn:de(Q=>[Ee(N.$slots,M,jn(Tr({...Q})))])}))]),1032,["menu-mount","calendar-width"])):q("",!0)],42,lB))}}),_B=["data-dp-mobile"],bB=ye({__name:"VueDatePicker",setup(e,{expose:t}){const{rootEmit:n,setState:r,inputValue:a,modelValue:s,rootProps:o,defaults:{inline:i,config:l,textInput:c,range:u,multiDates:d,teleport:p,floatingConfig:m}}=it(),{clearArrowNav:_}=$s(),{validateDate:y,isValidTime:b}=gr(),{menuTransition:h,showTransition:g}=Ou(),{isMobile:w}=hf(),{mapSlots:v}=Is(),{findNextFocusableElement:k,getNumVal:$}=sn(),S=Ds(),x=oe(!1),P=oe(i.value.enabled||o.centered),R=Hp(o,"modelValue"),K=Hp(o,"timezone"),W=ft("dp-menu-wrap"),X=ft("dp-menu"),ce=ft("input-cmp"),ie=ft("picker-wrapper"),fe=ft("menu-arrow"),j=oe(!1),ne=oe(!1),le=oe(!1),re=oe(!0),he=Le=>(m.value.arrow&&(m.value.arrow===!0?Le.push(T0({element:fe})):Le.push(T0({element:m.value.arrow}))),Le),{floatingStyles:ke,middlewareData:Oe,placement:Pe,y:Re}=XF(ce,W,{strategy:m.value.strategy,placement:m.value.placement,middleware:he([UF(m.value.offset),GF(),zF()]),whileElementsMounted:jF});ut(()=>{se(o.modelValue),Xt().then(()=>{i.value.enabled||globalThis.addEventListener("resize",H)}),i.value.enabled&&(x.value=!0),globalThis.addEventListener("keyup",Z),globalThis.addEventListener("keydown",Y)}),xn(()=>{i.value.enabled||globalThis.removeEventListener("resize",H),globalThis.removeEventListener("keyup",Z),globalThis.removeEventListener("keydown",Y)});const Ie=v(S,"all",o.presetDates),B=v(S,"input");Ue([R,K],()=>{se(R.value)},{deep:!0}),Ue([Pe,Re],()=>{!i.value.enabled&&!o.centered&&re.value&&(P.value=!1,Xt().then(()=>{re.value=!1,P.value=!0}))});const{parseExternalModelValue:se,emitModelValue:V,formatInputValue:F,checkBeforeEmit:J}=cW(),O=G(()=>({dp__main:!0,dp__theme_dark:o.dark,dp__theme_light:!o.dark,dp__flex_display:i.value.enabled,"dp--flex-display-collapsed":le.value,dp__flex_display_with_input:i.value.input})),T=G(()=>o.dark?"dp__theme_dark":"dp__theme_light"),C=G(()=>i.value.enabled&&(o.timePicker||o.monthPicker||o.yearPicker||o.quarterPicker)),E=()=>ce.value?.$el?.getBoundingClientRect()??{width:0,left:0,right:0},I=()=>{x.value&&l.value.closeOnScroll&&Ve()},H=()=>{const Le=X.value?.$el.getBoundingClientRect().width??0;le.value=document.body.offsetWidth<=Le},Z=Le=>{Le.key==="Tab"&&!i.value.enabled&&!o.teleport&&l.value.tabOutClosesMenu&&(ie.value.contains(document.activeElement)||Ve()),ne.value=Le.shiftKey},Y=Le=>{ne.value=Le.shiftKey},z=()=>{!o.disabled&&!o.readonly&&(re.value=!0,x.value=!0,x.value&&n("open"),x.value||Ce(),se(o.modelValue))},N=()=>{a.value="",Ce(),X.value?.onValueCleared(),ce.value?.setParsedDate(null),n("update:model-value",null),n("cleared"),l.value.closeOnClearValue&&Ve()},U=()=>{const Le=s.value;return!Le||!Array.isArray(Le)&&y(Le)?!0:Array.isArray(Le)?d.value.enabled||Le.length===2&&y(Le[0])&&y(Le[1])?!0:u.value.partialRange&&!o.timePicker?y(Le[0]):!1:!1},M=()=>{J()&&U()?(V(),Ve()):n("invalid-select")},te=Le=>{Q(),V(),l.value.closeOnAutoApply&&!Le&&Ve()},Q=()=>{ce.value&&c.value.enabled&&ce.value.setParsedDate(s.value)},we=(Le=!1)=>{o.autoApply&&b(s.value)&&U()&&(u.value.enabled&&Array.isArray(s.value)?(u.value.partialRange||s.value.length===2)&&te(Le):te(Le))},Ce=()=>{c.value.enabled||(s.value=null)},Ve=(Le=!1)=>{re.value=!0,Le&&s.value&&l.value.setDateOnMenuClose&&M(),i.value.enabled||(x.value&&(x.value=!1,r("menuFocused",!1),r("shiftKeyInMenu",!1),_(),n("closed"),a.value&&se(R.value)),Ce(),n("blur"))},lt=(Le,ln,en=!1)=>{if(!Le){s.value=null;return}const Br=Array.isArray(Le)?!Le.some(jr=>!y(jr)):y(Le),Ln=b(Le);Br&&Ln?(r("isTextInputDate",!0),s.value=Le,ln?(j.value=en,M(),n("text-submit")):o.autoApply&&we(!0),Xt().then(()=>{r("isTextInputDate",!1)})):n("invalid-date",Le)},Ft=()=>{o.autoApply&&b(s.value)&&V(),Q()},on=()=>x.value?Ve():z(),gn=Le=>{s.value=Le},_r=()=>{c.value.enabled&&(r("isInputFocused",!0),F()),n("focus")},ue=()=>{c.value.enabled&&(r("isInputFocused",!1),se(o.modelValue),j.value&&k(ie.value,ne.value)?.focus()),n("blur")},De=(Le,ln)=>{X.value&&X.value.updateMonthYear(ln??0,{month:$(Le.month),year:$(Le.year)})},Ne=Le=>{se(Le??o.modelValue)},rt=(Le,ln)=>{X.value?.switchView(Le,ln)},Ze=(Le,ln)=>{if(x.value)return l.value.onClickOutside?l.value.onClickOutside(Le,ln):Ve(!0)},Jt=(Le=0)=>{X.value?.handleFlow(Le)},yn=()=>W;return l$(W,Le=>Ze(U,Le),{ignore:[ce]}),t({closeMenu:Ve,selectDate:M,clearValue:N,openMenu:z,onScroll:I,formatInputValue:F,updateInternalModelValue:gn,setMonthYear:De,parseModel:Ne,switchView:rt,toggleMenu:on,handleFlow:Jt,getDpWrapMenuRef:yn}),(Le,ln)=>(D(),L("div",{ref:"picker-wrapper",class:xe(O.value),"data-datepicker-instance":"","data-dp-mobile":f(w)},[ae(uH,{ref:"input-cmp","is-menu-open":x.value,onClear:N,onOpen:z,onSetInputDate:lt,onSetEmptyDate:f(V),onSelectDate:M,onToggle:on,onClose:Ve,onFocus:_r,onBlur:ue,onRealBlur:ln[0]||(ln[0]=en=>f(r)("isInputFocused",!1))},pn({_:2},[Xe(f(B),(en,Br)=>({name:en,fn:de(Ln=>[Ee(Le.$slots,en,jn(Tr(Ln)))])}))]),1032,["is-menu-open","onSetEmptyDate"]),(D(),ge(o_,{to:f(p),disabled:!f(p)},[A("div",{ref:"dp-menu-wrap",class:xe({"dp--menu-wrapper":!f(i).enabled,dp__outer_menu_wrap:!0,"dp--centered":f(o).centered}),style:Gt(!f(i).enabled&&!f(o).centered?f(ke):void 0)},[ae(Vi,{name:f(h)(f(Pe).startsWith("top")),css:f(g)&&!f(i).enabled&&!f(o).centered&&P.value},{default:de(()=>[x.value&&P.value?(D(),ge(yB,{key:0,ref:"dp-menu",class:xe({[T.value]:!0}),"no-overlay-focus":C.value,collapse:le.value,"get-input-rect":E,onClosePicker:Ve,onSelectDate:M,onAutoApply:we,onTimeUpdate:Ft,onMenuBlur:ln[1]||(ln[1]=en=>f(n)("blur"))},pn({_:2},[Xe(f(Ie),(en,Br)=>({name:en,fn:de(Ln=>[Ee(Le.$slots,en,jn(Tr({...Ln})))])})),!f(i).enabled&&!f(o).centered&&f(m).arrow===!0?{name:"arrow",fn:de(()=>[A("div",{ref:"menu-arrow",class:xe({dp__arrow_top:f(Pe)==="bottom",dp__arrow_bottom:f(Pe)==="top"}),style:Gt({left:f(Oe).arrow?.x!=null?`${f(Oe).arrow.x}px`:"",top:f(Oe).arrow?.y!=null?`${f(Oe).arrow.y}px`:""})},null,6)]),key:"0"}:void 0]),1032,["class","no-overlay-focus","collapse"])):q("",!0)]),_:3},8,["name","css"])],6)],8,["to","disabled"]))],10,_B))}}),wB=ye({__name:"VueDatePickerRoot",props:S_({multiCalendars:{type:[Boolean,Number,String,Object]},modelValue:{},modelType:{},dark:{type:Boolean},transitions:{type:[Boolean,Object]},ariaLabels:{},hideNavigation:{},timezone:{},vertical:{type:Boolean},hideMonthYearSelect:{type:Boolean},disableYearSelect:{type:Boolean},yearRange:{},autoApply:{type:Boolean},disabledDates:{type:[Array,Function]},startDate:{},hideOffsetDates:{type:Boolean},noToday:{type:Boolean},allowedDates:{},markers:{},presetDates:{},flow:{},preventMinMaxNavigation:{type:Boolean},reverseYears:{type:Boolean},weekPicker:{type:Boolean},filters:{},arrowNavigation:{type:Boolean},highlight:{type:[Function,Object]},teleport:{type:[String,Boolean]},centered:{type:Boolean},locale:{},weekStart:{},weekNumbers:{type:[Boolean,Object]},dayNames:{type:[Function,Array]},monthPicker:{type:Boolean},yearPicker:{type:Boolean},modelAuto:{type:Boolean},formats:{},multiDates:{type:[Boolean,Object]},minDate:{},maxDate:{},minTime:{},maxTime:{},inputAttrs:{},timeConfig:{},placeholder:{},timePicker:{type:Boolean},range:{type:[Boolean,Object]},menuId:{},disabled:{type:Boolean},readonly:{type:Boolean},inline:{type:[Boolean,Object]},textInput:{type:[Boolean,Object]},sixWeeks:{type:[Boolean,String]},actionRow:{},focusStartDate:{type:Boolean},disabledTimes:{type:[Function,Array]},calendar:{type:Function},config:{},quarterPicker:{type:Boolean},yearFirst:{type:Boolean},loading:{type:Boolean},ui:{},floating:{}},tH),emits:["update:model-value","internal-model-change","text-submit","text-input","open","closed","focus","blur","cleared","flow-step","update-month-year","invalid-select","invalid-fixed-range","invalid-date","tooltip-open","tooltip-close","am-pm-change","range-start","range-end","date-click","overlay-toggle","invalid"],setup(e,{expose:t,emit:n}){const r=n,a=e;fW(a,r);const s=Ds(),{mapSlots:o}=Is(),i=o(s,"root",a.presetDates),l=ft("date-picker");return t(rH(l)),(c,u)=>(D(),ge(bB,{ref:"date-picker"},pn({_:2},[Xe(f(i),(d,p)=>({name:d,fn:de(m=>[Ee(c.$slots,d,jn(Tr(m)))])}))]),1536))}}),SB={type:"button",class:"btn btn-dropdown dropdown-toggle sp-btn-menu"},TB=ye({__name:"DatePickerRange",props:{modelValue:{required:!0},modelModifiers:{}},emits:["update:modelValue"],setup(e){const{formatDateRange:t,isValidDateRange:n}=cw(),r=Ms(e,"modelValue"),a=oe([]),s=oe("No dates"),o=ft("datePicker");Ue(a,()=>{const l=a.value;n(l)?(r.value=l,s.value=t(l)):a.value=r.value}),Ue(r,()=>{a.value=r.value},{immediate:!0});function i(){a.value=[],o.value?.closeMenu()}return(l,c)=>(D(),ge(f(wB),{ref_key:"datePicker",ref:o,class:"dropdown",modelValue:a.value,"onUpdate:modelValue":c[1]||(c[1]=u=>a.value=u),formats:{input:u=>f(t)(u)},range:{partialRange:!1},"time-config":{enableSeconds:!0},"action-row":{showNow:!1,showCancel:!1,showSelect:!0}},{trigger:de(()=>[A("button",SB,me(s.value),1)]),"action-extra":de(()=>[a.value.length===2?(D(),L("button",{key:0,class:"dp__action_button dp__action_cancel",onClick:c[0]||(c[0]=u=>i())},"Clear Range")):q("",!0)]),_:1},8,["modelValue","formats"]))}}),EB={class:"filters"},xB={class:"filter"},kB={class:"filter-component text-search-container"},CB={class:"filter"},AB={class:"filter-component"},DB={class:"filter"},MB={class:"filter-component"},OB={class:"filter"},PB={class:"filter-component"},$B={class:"filter"},IB={class:"filter-component"},RB=ye({__name:"FiltersPanel",setup(e){const t=S3(),{sortBy:n,messageFilterString:r,selectedEndpointName:a,endpoints:s,itemsPerPage:o,dateRange:i}=Et(t),l=G(()=>[...new Set(s.value.map(y=>y.name))].sort()),c=new Map([["Latest sent",`${fs.TimeSent},desc`],["Oldest sent",`${fs.TimeSent},asc`],["Slowest processing time",`${fs.ProcessingTime},desc`],["Highest critical time",`${fs.CriticalTime},desc`],["Longest delivery time",`${fs.DeliveryTime},desc`]]),u=["50","100","250","500"],d=G(()=>[...c.keys()]),p=G({get(){return _(`${n.value.property},${n.value.isAscending?"asc":"desc"}`)},set(y){const b=c.get(y);if(b){const h=b.split(",");n.value={isAscending:h[1]==="asc",property:h[0]}}else n.value={isAscending:!0,property:fs.TimeSent}}}),m=G({get(){return o.value.toString()},set(y){o.value=parseInt(y)}});function _(y){for(const[b,h]of c.entries())if(h===y)return b;return""}return(y,b)=>(D(),L("div",EB,[A("div",xB,[b[6]||(b[6]=A("div",{class:"filter-label"},null,-1)),A("div",kB,[ae(sf,{modelValue:f(r),"onUpdate:modelValue":b[0]||(b[0]=h=>Qe(r)?r.value=h:null),placeholder:"Search messages...","aria-label":"Search messages"},null,8,["modelValue"]),b[5]||(b[5]=A("div",{class:"note"},[_e("Check the "),A("a",{href:"https://docs.particular.net/servicepulse/all-messages#filtering-options"},"documentation"),_e(" to see the available filtering options")],-1))])]),A("div",CB,[b[7]||(b[7]=A("div",{class:"filter-label"},"Endpoint:",-1)),A("div",AB,[ae(Ec,{items:l.value,instructions:"Select an endpoint",modelValue:f(a),"onUpdate:modelValue":b[1]||(b[1]=h=>Qe(a)?a.value=h:null),"item-name":"endpoint",label:"Endpoint","default-empty-text":"Any","show-clear":!0,"show-filter":!0},null,8,["items","modelValue"])])]),A("div",DB,[b[8]||(b[8]=A("div",{class:"filter-label"},"Dates:",-1)),A("div",MB,[ae(TB,{modelValue:f(i),"onUpdate:modelValue":b[2]||(b[2]=h=>Qe(i)?i.value=h:null)},null,8,["modelValue"])])]),A("div",OB,[b[9]||(b[9]=A("div",{class:"filter-label"},"Show:",-1)),A("div",PB,[ae(Ec,{items:u,instructions:"Max results to display",modelValue:m.value,"onUpdate:modelValue":b[3]||(b[3]=h=>m.value=h),"item-name":"result","can-clear":!1,"show-clear":!1,"show-filter":!1},null,8,["modelValue"])])]),A("div",$B,[b[10]||(b[10]=A("div",{class:"filter-label"},"Sort:",-1)),A("div",IB,[ae(Ec,{items:d.value,modelValue:p.value,"onUpdate:modelValue":b[4]||(b[4]=h=>p.value=h),"item-name":"result","can-clear":!1,"show-clear":!1,"show-filter":!1},null,8,["items","modelValue"])])])]))}}),NB=Ke(RB,[["__scopeId","data-v-e4b64397"]]);var Gr=(e=>(e.Failed="failed",e.RepeatedFailure="repeatedFailure",e.Successful="successful",e.ResolvedSuccessfully="resolvedSuccessfully",e.ArchivedFailure="archivedFailure",e.RetryIssued="retryIssued",e))(Gr||{}),LB=(e=>(e.Send="send",e.Publish="publish",e.Subscribe="subscribe",e.Unsubscribe="unsubscribe",e.Reply="reply",e.Init="init",e))(LB||{});function wX(e){let n=e.split(",")[0].split(".").pop()??"";return n=n.replace("+","."),n}function Sp(e){const t=ed(xc(e));return`${t.value} ${t.unit}`}function xc(e){const[t,n,r]=e.split(":");return((parseInt(t)*60+parseInt(n))*60+parseFloat(r))*1e3}const FB={class:"status-container"},VB={key:0,class:"warning"},YB=ye({__name:"MessageStatusIcon",props:{message:{}},setup(e){const t=e,n=G(()=>t.message.status===Gr.ResolvedSuccessfully||xc(t.message.critical_time)<0||xc(t.message.processing_time)<0||xc(t.message.delivery_time)<0),r=G(()=>{switch(t.message.status){case Gr.Successful:return{name:"Successful",icon:"fa successful"};case Gr.ResolvedSuccessfully:return{name:"Successful after retries",icon:"fa resolved-successfully"};case Gr.Failed:return{name:"Failed",icon:"fa failed"};case Gr.ArchivedFailure:return{name:"Failed message deleted",icon:"fa archived"};case Gr.RepeatedFailure:return{name:"Repeated failures",icon:"fa repeated-failure"};case Gr.RetryIssued:return{name:"Retry requested",icon:"fa retry-issued"};default:return{name:"Unknown status",icon:"fa unknown-status"}}});return(a,s)=>{const o=Fi("tippy");return Ot((D(),L("div",FB,[A("div",{class:xe(["status-icon",r.value.icon])},null,2),n.value?(D(),L("div",VB)):q("",!0)])),[[o,{content:r.value.name}]])}}}),WB=Ke(YB,[["__scopeId","data-v-aa3a38ec"]]),HB={class:"status"},BB={class:"message-id"},jB={class:"message-type"},UB={class:"time-sent"},zB={class:"critical-time"},GB={class:"processing-time"},qB={class:"delivery-time"},KB=ye({__name:"AuditListItem",props:{message:{}},setup(e){const t=Os(),n=e,r=G(()=>{const a=t.currentRoute.value.query;return t.resolve({path:n.message.status===Gr.Successful||n.message.status===Gr.ResolvedSuccessfully?pe.messages.successMessage.link(n.message.message_id,n.message.id):pe.messages.failedMessage.link(n.message.id),query:{...a,back:t.currentRoute.value.path}})});return(a,s)=>(D(),ge(f(Lt),{class:"item",to:r.value},{default:de(()=>[A("div",HB,[ae(WB,{message:n.message},null,8,["message"])]),A("div",BB,me(n.message.message_id),1),A("div",jB,me(n.message.message_type),1),A("div",UB,[s[0]||(s[0]=A("span",{class:"label-name"},"Time Sent:",-1)),_e(me(new Date(n.message.time_sent).toLocaleString()),1)]),A("div",zB,[s[1]||(s[1]=A("span",{class:"label-name"},"Critical Time:",-1)),_e(me(f(Sp)(n.message.critical_time)),1)]),A("div",GB,[s[2]||(s[2]=A("span",{class:"label-name"},"Processing Time:",-1)),_e(me(f(Sp)(n.message.processing_time)),1)]),A("div",qB,[s[3]||(s[3]=A("span",{class:"label-name"},"Delivery Time:",-1)),_e(me(f(Sp)(n.message.delivery_time)),1)])]),_:1},8,["to"]))}}),QB=Ke(KB,[["__scopeId","data-v-a4087cf3"]]),XB={class:"refresh-config"},ZB={class:"filter"},JB={class:"filter-component"},ej=ye({__name:"RefreshConfig",props:Ya({isLoading:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:Ya(["manualRefresh"],["update:modelValue"]),setup(e,{emit:t}){const n=e,r=Ms(e,"modelValue"),a=t,s=[[0,"Off"],[5e3,"Every 5 seconds"],[15e3,"Every 15 seconds"],[3e4,"Every 30 seconds"],[6e4,"Every 1 minute"],[6e5,"Every 10 minute"],[18e5,"Every 30 minute"],[36e5,"Every 1 hour"]];function o(){const d=s.find(p=>p[0]===r.value);return d?d[1]:"Off"}const i=o(),l=oe(i);Ue(l,d=>{const p=s.find(m=>m[1]===d);p&&(p[0]===0?r.value=null:r.value=p[0])});const c=oe(!1);Ue(()=>n.isLoading,d=>{d&&(c.value=!0,setTimeout(()=>{c.value=!1},1e3))});async function u(){await a("manualRefresh")}return(d,p)=>(D(),L("div",XB,[ae(Ih,{size:"sm",icon:f(w2),loading:c.value,onClick:u},{default:de(()=>[...p[1]||(p[1]=[_e("Refresh List",-1)])]),_:1},8,["icon","loading"]),A("div",ZB,[p[2]||(p[2]=A("div",{class:"filter-label"},"Auto-Refresh:",-1)),A("div",JB,[ae(Ec,{items:s.map(m=>m[1]),modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=m=>l.value=m),"item-name":"result","can-clear":!1,"show-clear":!1,"show-filter":!1},null,8,["items","modelValue"])])])]))}}),tj=Ke(ej,[["__scopeId","data-v-b5828d4c"]]),nj={},rj={class:"text-center"};function aj(e,t){return D(),L("div",rj,[...t[0]||(t[0]=[A("div",{class:"spinner-border",role:"status"},[A("span",{class:"visually-hidden"},"Loading...")],-1)])])}const sj=Ke(nj,[["render",aj]]),oj={class:"header"},ij={class:"row"},lj={class:"row"},uj={class:"row results-table"},cj=ye({__name:"AuditList",setup(e){const t=S3(),{messages:n,totalCount:r,sortBy:a,messageFilterString:s,selectedEndpointName:o,itemsPerPage:i,dateRange:l}=Et(t),c=cu(),u=Os(),d=oe(null),{refreshNow:p,isRefreshing:m,updateInterval:_,start:y,stop:b}=x2("audit-list",t.refresh,3e3),h=oe(!0);g_(()=>{w(),setTimeout(async()=>{await Promise.all([p(),t.loadEndpoints()]),h.value=!1},0)}),Ue(()=>u.currentRoute.value.query,async()=>{w(),await p()},{deep:!0});const g=Ue([()=>c.query,i,a,s,o,l],async()=>{if(h.value)return;const[v,k]=l.value,$=v?.toISOString()??"",S=k?.toISOString()??"";await u.push({query:{sortBy:a.value.property,sortDir:a.value.isAscending?"asc":"desc",filter:s.value,endpoint:o.value,from:$,to:S,pageSize:i.value}}),await p()});function w(){const v=u.currentRoute.value.query;g.pause(),s.value=v.filter?v.filter:"",a.value=v.sortBy&&v.sortDir?{isAscending:v.sortDir==="asc",property:v.sortBy}:a.value={isAscending:!1,property:fs.TimeSent},i.value=v.pageSize?parseInt(v.pageSize):100,l.value=v.from&&v.to?[new Date(v.from),new Date(v.to)]:[],o.value=v.endpoint??"",g.resume()}return Ue(d,v=>{_(v||0),v===null||v===0?b():y()}),(v,k)=>(D(),L("div",null,[A("div",oj,[ae(tj,{modelValue:d.value,"onUpdate:modelValue":k[0]||(k[0]=$=>d.value=$),isLoading:f(m),onManualRefresh:f(p)},null,8,["modelValue","isLoading","onManualRefresh"]),A("div",ij,[ae(NB)]),A("div",lj,[ae(z9,{displayed:f(n).length,total:f(r)},null,8,["displayed","total"])])]),A("div",uj,[h.value?(D(),ge(sj,{key:0})):q("",!0),(D(!0),L(Me,null,Xe(f(n),$=>(D(),ge(QB,{key:$.id,message:$},null,8,["message"]))),128))])]))}}),dj=Ke(cj,[["__scopeId","data-v-c5cef6cc"]]),uS="6.6.0";function fj(){const{store:e}=wu();return e.serviceControlIsGreaterThan(uS)}const pj={class:"not-supported"},hj={class:"container"},mj={class:"row"},vj=ye({__name:"AuditView",setup(e){const t=fj();return(n,r)=>(D(),ge(zi,null,{default:de(()=>[ae(Ui,null,{default:de(()=>[ae(Jd,{supported:f(t)},{unsupported:de(()=>[A("div",pj,[A("p",null,[r[0]||(r[0]=_e(" The minimum version of ServiceControl required to enable this feature is ",-1)),A("span",null,me(f(uS)),1),r[1]||(r[1]=_e(". ",-1))]),r[2]||(r[2]=A("div",null,[A("a",{class:"btn btn-default btn-primary",href:"https://particular.net/downloads",target:"_blank"},"Update ServiceControl to latest version")],-1))])]),default:de(()=>[A("div",hj,[r[3]||(r[3]=A("div",{class:"row title"},[A("div",{class:"col-12"},[A("h1",null,"All Messages")])],-1)),A("div",mj,[ae(dj)])])]),_:1},8,["supported"])]),_:1})]),_:1}))}}),gj=Ke(vj,[["__scopeId","data-v-eb90df02"]]),yj=[{path:pe.dashboard,component:U$,title:"Dashboard"},{path:pe.heartbeats.instances.template,component:()=>kt(()=>import("./EndpointInstances-CHxxJzJ9.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),title:"Endpoint Instances"},{path:pe.heartbeats.root,component:iL,title:"Heartbeats",redirect:pe.heartbeats.unhealthy.link,children:[{title:"Unhealthy Endpoints",path:pe.heartbeats.unhealthy.link,component:()=>kt(()=>import("./UnhealthyEndpoints-D9RSiqxE.js"),__vite__mapDeps([5,6,1,2,3,7]),import.meta.url)},{title:"Healthy Endpoints",path:pe.heartbeats.healthy.link,component:()=>kt(()=>import("./HealthyEndpoints-DOFa-eMD.js"),__vite__mapDeps([8,6,1,2,3,7]),import.meta.url)},{title:"Heartbeat Configuration",path:pe.heartbeats.configuration.link,component:()=>kt(()=>import("./HeartbeatConfiguration-CC5Ux6W_.js"),__vite__mapDeps([9,2,3,6,1,7,10]),import.meta.url)}]},{path:pe.messages.root,component:gj,title:"All Messages"},{path:pe.failedMessage.root,component:tI,title:"Failed Messages",redirect:pe.failedMessage.failedMessagesGroups.link,children:[{title:"Failed Message Groups",path:pe.failedMessage.failedMessagesGroups.template,component:()=>kt(()=>import("./FailedMessageGroups-Bhk9iJUQ.js"),__vite__mapDeps([11,12,13,14,15]),import.meta.url)},{path:pe.failedMessage.failedMessages.template,title:"All Failed Messages",component:()=>kt(()=>import("./FailedMessages-CjUU1kVn.js"),__vite__mapDeps([16,12,13,14,17,18,19]),import.meta.url)},{path:pe.failedMessage.deletedMessagesGroup.template,title:"Deleted Message Groups",component:()=>kt(()=>import("./DeletedMessageGroups-BAQ0AfoJ.js"),__vite__mapDeps([20,12,21,22,23]),import.meta.url)},{path:pe.failedMessage.deletedMessages.template,title:"All Deleted Messages",component:()=>kt(()=>import("./DeletedMessages-DtYZBHSl.js"),__vite__mapDeps([24,17,18,25]),import.meta.url)},{path:pe.failedMessage.pendingRetries.template,title:"Pending Retries",component:()=>kt(()=>import("./PendingRetries-DOXP1zqO.js"),__vite__mapDeps([26,13,14,17,18,27]),import.meta.url)},{title:"Failed Messages",path:pe.failedMessage.group.template,component:()=>kt(()=>import("./FailedMessages-CjUU1kVn.js"),__vite__mapDeps([16,12,13,14,17,18,19]),import.meta.url)},{title:"Deleted Messages",path:pe.failedMessage.deletedGroup.template,component:()=>kt(()=>import("./DeletedMessages-DtYZBHSl.js"),__vite__mapDeps([24,17,18,25]),import.meta.url)},{path:pe.failedMessage.message.template,title:"Message",redirect:pe.messages.failedMessage.template}]},{path:pe.messages.failedMessage.template,title:"Message",component:()=>kt(()=>import("./MessageView-OH0ESeUy.js"),__vite__mapDeps([28,19,29,30,21,22,31]),import.meta.url)},{path:pe.messages.successMessage.template,title:"Message",component:()=>kt(()=>import("./MessageView-OH0ESeUy.js"),__vite__mapDeps([28,19,29,30,21,22,31]),import.meta.url)},{path:pe.monitoring.root,component:H7,title:"Monitored Endpoints"},{path:pe.monitoring.endpointDetails.template,component:()=>kt(()=>import("./EndpointDetails-Dtkn0G1f.js"),__vite__mapDeps([32,12,33]),import.meta.url),title:"Endpoint Details"},{path:pe.customChecks,title:"Custom checks",component:ZN},{path:pe.events,component:G7,title:"Events"},{path:pe.throughput.root,component:B9,title:"Usage",redirect:pe.throughput.endpoints.root,children:[{title:"Endpoints",path:pe.throughput.endpoints.root,redirect:pe.throughput.endpoints.detectedEndpoints.link,component:()=>kt(()=>import("./EndpointsView-FDgb5e07.js"),__vite__mapDeps([34,35]),import.meta.url),children:[{title:"Detected Endpoints",path:pe.throughput.endpoints.detectedEndpoints.template,component:()=>kt(()=>import("./DetectedEndpointsView-BQXpsrAA.js"),__vite__mapDeps([36,37,35,38,39,40,41]),import.meta.url)},{title:"Detected Broker Queues",path:pe.throughput.endpoints.detectedBrokerQueues.template,component:()=>kt(()=>import("./DetectedBrokerQueuesView-56ONzp-e.js"),__vite__mapDeps([42,37,35,38,39,40,43]),import.meta.url)}]}]},{path:pe.configuration.root,title:"Configuration",component:hN,redirect:pe.configuration.license.link,children:[{title:"License",path:pe.configuration.license.template,component:()=>kt(()=>import("./PlatformLicense-DPZXy5BJ.js"),__vite__mapDeps([44,45]),import.meta.url)},{title:"MassTransit Connector",path:pe.configuration.massTransitConnector.template,component:()=>kt(()=>import("./MassTransitConnector-DTmCIuZW.js"),__vite__mapDeps([46,47]),import.meta.url)},{title:"Health Check Notifications",path:pe.configuration.healthCheckNotifications.template,component:()=>kt(()=>import("./HealthCheckNotifications-DxnGQy31.js"),__vite__mapDeps([48,2,3,49]),import.meta.url)},{title:"Retry Redirects",path:pe.configuration.retryRedirects.template,component:()=>kt(()=>import("./RetryRedirects-DNdEUAMz.js"),__vite__mapDeps([50,51]),import.meta.url)},{title:"Connections",path:pe.configuration.connections.template,component:()=>kt(()=>import("./PlatformConnections-B3qHhD6f.js"),__vite__mapDeps([52,53]),import.meta.url)},{title:"Endpoint Connection",path:pe.configuration.endpointConnection.template,component:()=>kt(()=>import("./EndpointConnection-DyxHhuiM.js"),__vite__mapDeps([54,29,30,55]),import.meta.url)},{title:"Usage Setup",path:pe.throughput.setup.root,redirect:pe.throughput.setup.connectionSetup.link,component:()=>kt(()=>import("./SetupView-CUhpZfX2.js"),__vite__mapDeps([56,57]),import.meta.url),children:[{title:"Connection Setup",path:pe.throughput.setup.connectionSetup.template,component:()=>kt(()=>import("./ConnectionSetupView-D5oAgYeV.js"),__vite__mapDeps([58,38,39,29,30,59]),import.meta.url)},{title:"Mask Report Data",path:pe.throughput.setup.mask.template,component:()=>kt(()=>import("./MasksView-B1NFdsuZ.js"),[],import.meta.url)},{title:"Diagnostics",path:pe.throughput.setup.diagnostics.template,component:()=>kt(()=>import("./DiagnosticsView-D55zsMZT.js"),__vite__mapDeps([60,61]),import.meta.url)}]}]}];function cS(e){return{title:`${e.title} • ServicePulse`}}function dS(e,t){t.children&&t.children.forEach(n=>{const r={path:n.path,name:`${t.path}/${n.path}`,meta:cS(n),component:n.component,children:[]};e.children.push(r),n.redirect&&(r.redirect=n.redirect),n.alias&&(r.alias=n.alias),dS(r,n)})}function _j(){const e=yj.map(n=>{const r={path:n.path,name:n.path,meta:cS(n),component:n.component,children:[]};return dS(r,n),n.redirect&&(r.redirect=n.redirect),n.alias&&(r.alias=n.alias),r}),t=du().default_route;return t&&t!=="/"&&e.push({path:"/",redirect:t}),Zk({history:Pk(),routes:e,strict:!1})}const bj={class:"footer"},wj={class:"container"},Sj={class:"row"},Tj={class:"connectivity-status"},Ej={class:"secondary"},xj={key:0},kj={key:1},Cj=["href"],Aj=["title"],Dj={key:0,class:"connected-status"},Mj={key:0},Oj={key:1},Pj=["href"],$j={key:1,class:"connection-failed"},Ij={key:2,class:"connection-establishing"},Rj={key:0,class:"row trialLicenseBar"},Nj={role:"status","aria-label":"trial license bar information"},Lj=ye({__name:"PageFooter",setup(e){const{store:t}=ga(),n=t.monitoringConnectionState,{store:r}=wu(),a=r.newVersions,s=r.environment,o=vn(),{monitoringUrl:i}=Et(o),l=ji(),{licenseStatus:c,license:u}=l,d=G(()=>i.value!=="!"&&i.value!==""&&i.value!==null&&i.value!==void 0),p=G(()=>`Monitoring URL ${i.value}`),m=of(),{configuration:_}=Et(m);return(y,b)=>{const h=sr("RouterLink");return D(),L("footer",bj,[A("div",wj,[A("div",Sj,[A("div",Tj,[A("span",Ej,[ae(pt,{class:"footer-icon",icon:f(b2)},null,8,["icon"]),ae(h,{to:f(pe).configuration.endpointConnection.link},{default:de(()=>[...b[0]||(b[0]=[_e("Connect new endpoint",-1)])]),_:1},8,["to"])]),!f(a).newSCVersion.newscversion&&f(s).sp_version?(D(),L("span",xj," ServicePulse v"+me(f(s).sp_version),1)):q("",!0),f(a).newSCVersion.newscversion&&f(s).sp_version?(D(),L("span",kj,[_e(" ServicePulse v"+me(f(s).sp_version)+" (",1),f(a).newSCVersion.newscversion?(D(),ge(pt,{key:0,class:"footer-icon fake-link",icon:f(Ry)},null,8,["icon"])):q("",!0),A("a",{href:f(a).newSCVersion.newscversionlink,target:"_blank"},"v"+me(f(a).newSCVersion.newscversionnumber)+" available",9,Cj),b[1]||(b[1]=_e(") ",-1))])):q("",!0),d.value?(D(),L("span",{key:2,class:"monitoring-connected",title:p.value},[b[8]||(b[8]=_e(" SC Monitoring: ",-1)),f(n).connected&&!f(n).connecting?(D(),L("span",Dj,[b[5]||(b[5]=A("div",{class:"fa pa-connection-success"},null,-1)),f(s).monitoring_version?(D(),L("span",Mj," v"+me(f(s).monitoring_version),1)):q("",!0),f(a).newMVersion.newmversion?(D(),L("span",Oj,[b[2]||(b[2]=_e("(",-1)),ae(pt,{class:"footer-icon fake-link",icon:f(Ry)},null,8,["icon"]),b[3]||(b[3]=_e()),A("a",{href:f(a).newMVersion.newmversionlink,target:"_blank"},"v"+me(f(a).newMVersion.newmversionnumber)+" available",9,Pj),b[4]||(b[4]=_e(")",-1))])):q("",!0)])):q("",!0),!f(n).connected&&!f(n).connecting?(D(),L("span",$j,[...b[6]||(b[6]=[A("i",{class:"fa pa-connection-failed"},null,-1),_e(" Not connected ",-1)])])):q("",!0),f(n).connecting?(D(),L("span",Ij,[...b[7]||(b[7]=[A("i",{class:"fa pa-connection-establishing"},null,-1),_e(" Connecting ",-1)])])):q("",!0)],8,Aj)):q("",!0)])]),f(u).license_status!==f(Tt).Unavailable&&!f(_)?.mass_transit_connector&&f(c).isTrialLicense?(D(),L("div",Rj,[A("div",Nj,[ae(h,{to:f(pe).configuration.license.link},{default:de(()=>[_e(me(f(u).license_type)+" license",1)]),_:1},8,["to"]),b[9]||(b[9]=_e(", non-production use only ",-1))])])):q("",!0)])])}}}),Fj=Ke(Lj,[["__scopeId","data-v-7da8a29f"]]),Vj=""+new URL("logo-CBwJ952R.svg",import.meta.url).href,Yj={key:0,class:"badge badge-important"},Wj=ye({__name:"CustomChecksMenuItem",setup(e){const{store:t}=tf(),{failingCount:n}=Et(t);return(r,a)=>(D(),ge(f(Lt),{to:f(pe).customChecks},{default:de(()=>[ae(pt,{icon:f(_u),title:"Custom Checks"},null,8,["icon"]),a[0]||(a[0]=A("span",{class:"navbar-label"},"Custom Checks",-1)),f(n)>0?(D(),L("span",Yj,me(f(n)),1)):q("",!0)]),_:1},8,["to"]))}}),Hj=Ke(Wj,[["__scopeId","data-v-03bdab59"]]),Bj={key:0,class:"badge badge-important","aria-label":"Alert Count"},jj=ye({__name:"HeartbeatsMenuItem",setup(e){const{store:t}=rv(),{failedHeartbeatsCount:n}=Et(t);return(r,a)=>(D(),ge(f(Lt),{"aria-label":"Heartbeats Menu Item",to:f(pe).heartbeats.root},{default:de(()=>[ae(pt,{icon:f(v2),title:"Heartbeats"},null,8,["icon"]),a[0]||(a[0]=A("span",{class:"navbar-label"},"Heartbeats",-1)),f(n)>0?(D(),L("span",Bj,me(f(n)),1)):q("",!0)]),_:1},8,["to"]))}}),Uj=Ke(jj,[["__scopeId","data-v-c9cb36ef"]]),zj=ye({__name:"ConfigurationMenuItem",setup(e){const{store:t}=e3(),{hasErrors:n}=Et(t),{store:r}=ga(),a=ji(),{licenseStatus:s}=a,o=G(()=>s.warningLevel===ta.Warning),i=G(()=>n.value||r.displayConnectionsWarning||s.warningLevel===ta.Danger);return(l,c)=>(D(),ge(f(Lt),{to:f(pe).configuration.root,exact:""},{default:de(()=>[ae(pt,{icon:f(d5),title:"Configuration"},null,8,["icon"]),c[0]||(c[0]=A("span",{class:"navbar-label"},"Configuration",-1)),i.value?(D(),ge(Xo,{key:0,type:f(ir).Danger},null,8,["type"])):o.value?(D(),ge(Xo,{key:1,type:f(ir).Warning},null,8,["type"])):q("",!0)]),_:1},8,["to"]))}}),Gj=Ke(zj,[["__scopeId","data-v-b8a34205"]]),qj={key:0,class:"badge badge-important"},Kj=ye({__name:"FailedMessagesMenuItem",setup(e){const{store:t}=ga(),{failedMessageCount:n}=Et(t);return(r,a)=>(D(),ge(f(Lt),{to:f(pe).failedMessage.root},{default:de(()=>[ae(pt,{icon:f(Zd),title:"Failed Messages"},null,8,["icon"]),a[0]||(a[0]=A("span",{class:"navbar-label"},"Failed Messages",-1)),f(n)>0?(D(),L("span",qj,me(f(n)),1)):q("",!0)]),_:1},8,["to"]))}}),Qj=Ke(Kj,[["__scopeId","data-v-f2752348"]]),Xj={key:0,class:"badge badge-important"},Zj=ye({__name:"MonitoringMenuItem",setup(e){const{store:t}=ga(),{disconnectedEndpointsCount:n}=Et(t);return(r,a)=>(D(),ge(f(Lt),{to:f(pe).monitoring.root},{default:de(()=>[ae(pt,{icon:f(c5),title:"Monitoring"},null,8,["icon"]),a[0]||(a[0]=A("span",{class:"navbar-label"},"Monitoring",-1)),f(n)>0?(D(),L("span",Xj,me(f(n)),1)):q("",!0)]),_:1},8,["to"]))}}),Jj=Ke(Zj,[["__scopeId","data-v-1b2a2976"]]),eU=ye({__name:"EventsMenuItem",setup(e){return(t,n)=>(D(),ge(f(Lt),{to:f(pe).events},{default:de(()=>[ae(pt,{icon:f(T5),title:"Events"},null,8,["icon"]),n[0]||(n[0]=A("span",{class:"navbar-label"},"Events",-1))]),_:1},8,["to"]))}}),tU=Ke(eU,[["__scopeId","data-v-bdb743cd"]]),nU=ye({__name:"DashboardMenuItem",setup(e){return(t,n)=>(D(),ge(f(Lt),{to:f(pe).dashboard},{default:de(()=>[ae(pt,{icon:f(n5),title:"Dashboard"},null,8,["icon"]),n[0]||(n[0]=A("span",{class:"navbar-label"},"Dashboard",-1))]),_:1},8,["to"]))}}),rU=Ke(nU,[["__scopeId","data-v-4016ba80"]]),aU={class:"btn-feedback",href:"https://github.com/Particular/ServicePulse/issues/new",target:"_blank"},sU=ye({__name:"FeedbackButton",setup(e){return(t,n)=>(D(),L("a",aU,[ae(pt,{class:"icon",icon:f(o5),title:"Feedback"},null,8,["icon"]),n[0]||(n[0]=A("span",{class:"navbar-label"},"Feedback",-1))]))}}),oU=Ke(sU,[["__scopeId","data-v-1a682c80"]]),iU=ye({__name:"ThroughputMenuItem",setup(e){return(t,n)=>(D(),ge(f(Lt),{to:f(pe).throughput.root},{default:de(()=>[ae(pt,{icon:f(h5),title:"Usage"},null,8,["icon"]),n[0]||(n[0]=A("span",{class:"navbar-label"},"Usage",-1))]),_:1},8,["to"]))}}),lU=Ke(iU,[["__scopeId","data-v-71d0ccb8"]]),uU=ye({__name:"AuditMenuItem",setup(e){return(t,n)=>(D(),ge(f(Lt),{to:f(pe).messages.root},{default:de(()=>[ae(pt,{icon:f(i5),title:"All Messages"},null,8,["icon"]),n[0]||(n[0]=A("span",{class:"navbar-label"},"All Messages",-1))]),_:1},8,["to"]))}}),cU=Ke(uU,[["__scopeId","data-v-fb9ccc81"]]),dU={class:"navbar navbar-expand-lg navbar-inverse navbar-dark"},fU={class:"container-fluid"},pU={class:"navbar-header"},hU={id:"navbar",class:"navbar navbar-expand-lg"},mU={class:"nav navbar-nav navbar-inverse"},vU=ye({__name:"PageHeader",setup(e){const t=vn(),{isMonitoringEnabled:n}=Et(t),r=G(()=>[rU,Uj,...n.value?[Jj]:[],cU,Qj,Hj,tU,lU,Gj,oU]);return(a,s)=>(D(),L("nav",dU,[A("div",fU,[A("div",pU,[ae(f(Lt),{class:"navbar-brand",to:f(pe).dashboard},{default:de(()=>[...s[0]||(s[0]=[A("img",{alt:"Service Pulse",src:Vj},null,-1)])]),_:1},8,["to"])]),A("div",hU,[A("ul",mU,[(D(!0),L(Me,null,Xe(r.value,o=>(D(),L("li",{key:o?.name},[(D(),ge(ko(o)))]))),128))])])])]))}}),gU=Ke(vU,[["__scopeId","data-v-eb40b86d"]]);var Rn="top",Gn="bottom",qn="right",Nn="left",_f="auto",qi=[Rn,Gn,qn,Nn],Eo="start",Di="end",fS="clippingParents",Av="viewport",zo="popper",pS="reference",Bh=qi.reduce(function(e,t){return e.concat([t+"-"+Eo,t+"-"+Di])},[]),Dv=[].concat(qi,[_f]).reduce(function(e,t){return e.concat([t,t+"-"+Eo,t+"-"+Di])},[]),hS="beforeRead",mS="read",vS="afterRead",gS="beforeMain",yS="main",_S="afterMain",bS="beforeWrite",wS="write",SS="afterWrite",TS=[hS,mS,vS,gS,yS,_S,bS,wS,SS];function ha(e){return e?(e.nodeName||"").toLowerCase():null}function Kn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function xo(e){var t=Kn(e).Element;return e instanceof t||e instanceof Element}function lr(e){var t=Kn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function Mv(e){if(typeof ShadowRoot>"u")return!1;var t=Kn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function yU(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},a=t.attributes[n]||{},s=t.elements[n];!lr(s)||!ha(s)||(Object.assign(s.style,r),Object.keys(a).forEach(function(o){var i=a[o];i===!1?s.removeAttribute(o):s.setAttribute(o,i===!0?"":i)}))})}function _U(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var a=t.elements[r],s=t.attributes[r]||{},o=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),i=o.reduce(function(l,c){return l[c]="",l},{});!lr(a)||!ha(a)||(Object.assign(a.style,i),Object.keys(s).forEach(function(l){a.removeAttribute(l)}))})}}const Ov={name:"applyStyles",enabled:!0,phase:"write",fn:yU,effect:_U,requires:["computeStyles"]};function ia(e){return e.split("-")[0]}var go=Math.max,cd=Math.min,Mi=Math.round;function jh(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function ES(){return!/^((?!chrome|android).)*safari/i.test(jh())}function Oi(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),a=1,s=1;t&&lr(e)&&(a=e.offsetWidth>0&&Mi(r.width)/e.offsetWidth||1,s=e.offsetHeight>0&&Mi(r.height)/e.offsetHeight||1);var o=xo(e)?Kn(e):window,i=o.visualViewport,l=!ES()&&n,c=(r.left+(l&&i?i.offsetLeft:0))/a,u=(r.top+(l&&i?i.offsetTop:0))/s,d=r.width/a,p=r.height/s;return{width:d,height:p,top:u,right:c+d,bottom:u+p,left:c,x:c,y:u}}function Pv(e){var t=Oi(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function xS(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&Mv(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function za(e){return Kn(e).getComputedStyle(e)}function bU(e){return["table","td","th"].indexOf(ha(e))>=0}function Ns(e){return((xo(e)?e.ownerDocument:e.document)||window.document).documentElement}function bf(e){return ha(e)==="html"?e:e.assignedSlot||e.parentNode||(Mv(e)?e.host:null)||Ns(e)}function H0(e){return!lr(e)||za(e).position==="fixed"?null:e.offsetParent}function wU(e){var t=/firefox/i.test(jh()),n=/Trident/i.test(jh());if(n&&lr(e)){var r=za(e);if(r.position==="fixed")return null}var a=bf(e);for(Mv(a)&&(a=a.host);lr(a)&&["html","body"].indexOf(ha(a))<0;){var s=za(a);if(s.transform!=="none"||s.perspective!=="none"||s.contain==="paint"||["transform","perspective"].indexOf(s.willChange)!==-1||t&&s.willChange==="filter"||t&&s.filter&&s.filter!=="none")return a;a=a.parentNode}return null}function Iu(e){for(var t=Kn(e),n=H0(e);n&&bU(n)&&za(n).position==="static";)n=H0(n);return n&&(ha(n)==="html"||ha(n)==="body"&&za(n).position==="static")?t:n||wU(e)||t}function $v(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Vl(e,t,n){return go(e,cd(t,n))}function SU(e,t,n){var r=Vl(e,t,n);return r>n?n:r}function kS(){return{top:0,right:0,bottom:0,left:0}}function CS(e){return Object.assign({},kS(),e)}function AS(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var TU=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,CS(typeof t!="number"?t:AS(t,qi))};function EU(e){var t,n=e.state,r=e.name,a=e.options,s=n.elements.arrow,o=n.modifiersData.popperOffsets,i=ia(n.placement),l=$v(i),c=[Nn,qn].indexOf(i)>=0,u=c?"height":"width";if(!(!s||!o)){var d=TU(a.padding,n),p=Pv(s),m=l==="y"?Rn:Nn,_=l==="y"?Gn:qn,y=n.rects.reference[u]+n.rects.reference[l]-o[l]-n.rects.popper[u],b=o[l]-n.rects.reference[l],h=Iu(s),g=h?l==="y"?h.clientHeight||0:h.clientWidth||0:0,w=y/2-b/2,v=d[m],k=g-p[u]-d[_],$=g/2-p[u]/2+w,S=Vl(v,$,k),x=l;n.modifiersData[r]=(t={},t[x]=S,t.centerOffset=S-$,t)}}function xU(e){var t=e.state,n=e.options,r=n.element,a=r===void 0?"[data-popper-arrow]":r;a!=null&&(typeof a=="string"&&(a=t.elements.popper.querySelector(a),!a)||xS(t.elements.popper,a)&&(t.elements.arrow=a))}const DS={name:"arrow",enabled:!0,phase:"main",fn:EU,effect:xU,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pi(e){return e.split("-")[1]}var kU={top:"auto",right:"auto",bottom:"auto",left:"auto"};function CU(e,t){var n=e.x,r=e.y,a=t.devicePixelRatio||1;return{x:Mi(n*a)/a||0,y:Mi(r*a)/a||0}}function B0(e){var t,n=e.popper,r=e.popperRect,a=e.placement,s=e.variation,o=e.offsets,i=e.position,l=e.gpuAcceleration,c=e.adaptive,u=e.roundOffsets,d=e.isFixed,p=o.x,m=p===void 0?0:p,_=o.y,y=_===void 0?0:_,b=typeof u=="function"?u({x:m,y}):{x:m,y};m=b.x,y=b.y;var h=o.hasOwnProperty("x"),g=o.hasOwnProperty("y"),w=Nn,v=Rn,k=window;if(c){var $=Iu(n),S="clientHeight",x="clientWidth";if($===Kn(n)&&($=Ns(n),za($).position!=="static"&&i==="absolute"&&(S="scrollHeight",x="scrollWidth")),$=$,a===Rn||(a===Nn||a===qn)&&s===Di){v=Gn;var P=d&&$===k&&k.visualViewport?k.visualViewport.height:$[S];y-=P-r.height,y*=l?1:-1}if(a===Nn||(a===Rn||a===Gn)&&s===Di){w=qn;var R=d&&$===k&&k.visualViewport?k.visualViewport.width:$[x];m-=R-r.width,m*=l?1:-1}}var K=Object.assign({position:i},c&&kU),W=u===!0?CU({x:m,y},Kn(n)):{x:m,y};if(m=W.x,y=W.y,l){var X;return Object.assign({},K,(X={},X[v]=g?"0":"",X[w]=h?"0":"",X.transform=(k.devicePixelRatio||1)<=1?"translate("+m+"px, "+y+"px)":"translate3d("+m+"px, "+y+"px, 0)",X))}return Object.assign({},K,(t={},t[v]=g?y+"px":"",t[w]=h?m+"px":"",t.transform="",t))}function AU(e){var t=e.state,n=e.options,r=n.gpuAcceleration,a=r===void 0?!0:r,s=n.adaptive,o=s===void 0?!0:s,i=n.roundOffsets,l=i===void 0?!0:i,c={placement:ia(t.placement),variation:Pi(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,B0(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,B0(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const Iv={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:AU,data:{}};var nc={passive:!0};function DU(e){var t=e.state,n=e.instance,r=e.options,a=r.scroll,s=a===void 0?!0:a,o=r.resize,i=o===void 0?!0:o,l=Kn(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return s&&c.forEach(function(u){u.addEventListener("scroll",n.update,nc)}),i&&l.addEventListener("resize",n.update,nc),function(){s&&c.forEach(function(u){u.removeEventListener("scroll",n.update,nc)}),i&&l.removeEventListener("resize",n.update,nc)}}const Rv={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:DU,data:{}};var MU={left:"right",right:"left",bottom:"top",top:"bottom"};function kc(e){return e.replace(/left|right|bottom|top/g,function(t){return MU[t]})}var OU={start:"end",end:"start"};function j0(e){return e.replace(/start|end/g,function(t){return OU[t]})}function Nv(e){var t=Kn(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function Lv(e){return Oi(Ns(e)).left+Nv(e).scrollLeft}function PU(e,t){var n=Kn(e),r=Ns(e),a=n.visualViewport,s=r.clientWidth,o=r.clientHeight,i=0,l=0;if(a){s=a.width,o=a.height;var c=ES();(c||!c&&t==="fixed")&&(i=a.offsetLeft,l=a.offsetTop)}return{width:s,height:o,x:i+Lv(e),y:l}}function $U(e){var t,n=Ns(e),r=Nv(e),a=(t=e.ownerDocument)==null?void 0:t.body,s=go(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),o=go(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-r.scrollLeft+Lv(e),l=-r.scrollTop;return za(a||n).direction==="rtl"&&(i+=go(n.clientWidth,a?a.clientWidth:0)-s),{width:s,height:o,x:i,y:l}}function Fv(e){var t=za(e),n=t.overflow,r=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+r)}function MS(e){return["html","body","#document"].indexOf(ha(e))>=0?e.ownerDocument.body:lr(e)&&Fv(e)?e:MS(bf(e))}function Yl(e,t){var n;t===void 0&&(t=[]);var r=MS(e),a=r===((n=e.ownerDocument)==null?void 0:n.body),s=Kn(r),o=a?[s].concat(s.visualViewport||[],Fv(r)?r:[]):r,i=t.concat(o);return a?i:i.concat(Yl(bf(o)))}function Uh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function IU(e,t){var n=Oi(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function U0(e,t,n){return t===Av?Uh(PU(e,n)):xo(t)?IU(t,n):Uh($U(Ns(e)))}function RU(e){var t=Yl(bf(e)),n=["absolute","fixed"].indexOf(za(e).position)>=0,r=n&&lr(e)?Iu(e):e;return xo(r)?t.filter(function(a){return xo(a)&&xS(a,r)&&ha(a)!=="body"}):[]}function NU(e,t,n,r){var a=t==="clippingParents"?RU(e):[].concat(t),s=[].concat(a,[n]),o=s[0],i=s.reduce(function(l,c){var u=U0(e,c,r);return l.top=go(u.top,l.top),l.right=cd(u.right,l.right),l.bottom=cd(u.bottom,l.bottom),l.left=go(u.left,l.left),l},U0(e,o,r));return i.width=i.right-i.left,i.height=i.bottom-i.top,i.x=i.left,i.y=i.top,i}function OS(e){var t=e.reference,n=e.element,r=e.placement,a=r?ia(r):null,s=r?Pi(r):null,o=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,l;switch(a){case Rn:l={x:o,y:t.y-n.height};break;case Gn:l={x:o,y:t.y+t.height};break;case qn:l={x:t.x+t.width,y:i};break;case Nn:l={x:t.x-n.width,y:i};break;default:l={x:t.x,y:t.y}}var c=a?$v(a):null;if(c!=null){var u=c==="y"?"height":"width";switch(s){case Eo:l[c]=l[c]-(t[u]/2-n[u]/2);break;case Di:l[c]=l[c]+(t[u]/2-n[u]/2);break}}return l}function $i(e,t){t===void 0&&(t={});var n=t,r=n.placement,a=r===void 0?e.placement:r,s=n.strategy,o=s===void 0?e.strategy:s,i=n.boundary,l=i===void 0?fS:i,c=n.rootBoundary,u=c===void 0?Av:c,d=n.elementContext,p=d===void 0?zo:d,m=n.altBoundary,_=m===void 0?!1:m,y=n.padding,b=y===void 0?0:y,h=CS(typeof b!="number"?b:AS(b,qi)),g=p===zo?pS:zo,w=e.rects.popper,v=e.elements[_?g:p],k=NU(xo(v)?v:v.contextElement||Ns(e.elements.popper),l,u,o),$=Oi(e.elements.reference),S=OS({reference:$,element:w,placement:a}),x=Uh(Object.assign({},w,S)),P=p===zo?x:$,R={top:k.top-P.top+h.top,bottom:P.bottom-k.bottom+h.bottom,left:k.left-P.left+h.left,right:P.right-k.right+h.right},K=e.modifiersData.offset;if(p===zo&&K){var W=K[a];Object.keys(R).forEach(function(X){var ce=[qn,Gn].indexOf(X)>=0?1:-1,ie=[Rn,Gn].indexOf(X)>=0?"y":"x";R[X]+=W[ie]*ce})}return R}function LU(e,t){t===void 0&&(t={});var n=t,r=n.placement,a=n.boundary,s=n.rootBoundary,o=n.padding,i=n.flipVariations,l=n.allowedAutoPlacements,c=l===void 0?Dv:l,u=Pi(r),d=u?i?Bh:Bh.filter(function(_){return Pi(_)===u}):qi,p=d.filter(function(_){return c.indexOf(_)>=0});p.length===0&&(p=d);var m=p.reduce(function(_,y){return _[y]=$i(e,{placement:y,boundary:a,rootBoundary:s,padding:o})[ia(y)],_},{});return Object.keys(m).sort(function(_,y){return m[_]-m[y]})}function FU(e){if(ia(e)===_f)return[];var t=kc(e);return[j0(e),t,j0(t)]}function VU(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var a=n.mainAxis,s=a===void 0?!0:a,o=n.altAxis,i=o===void 0?!0:o,l=n.fallbackPlacements,c=n.padding,u=n.boundary,d=n.rootBoundary,p=n.altBoundary,m=n.flipVariations,_=m===void 0?!0:m,y=n.allowedAutoPlacements,b=t.options.placement,h=ia(b),g=h===b,w=l||(g||!_?[kc(b)]:FU(b)),v=[b].concat(w).reduce(function(Pe,Re){return Pe.concat(ia(Re)===_f?LU(t,{placement:Re,boundary:u,rootBoundary:d,padding:c,flipVariations:_,allowedAutoPlacements:y}):Re)},[]),k=t.rects.reference,$=t.rects.popper,S=new Map,x=!0,P=v[0],R=0;R=0,ie=ce?"width":"height",fe=$i(t,{placement:K,boundary:u,rootBoundary:d,altBoundary:p,padding:c}),j=ce?X?qn:Nn:X?Gn:Rn;k[ie]>$[ie]&&(j=kc(j));var ne=kc(j),le=[];if(s&&le.push(fe[W]<=0),i&&le.push(fe[j]<=0,fe[ne]<=0),le.every(function(Pe){return Pe})){P=K,x=!1;break}S.set(K,le)}if(x)for(var re=_?3:1,he=function(Re){var Ie=v.find(function(B){var se=S.get(B);if(se)return se.slice(0,Re).every(function(V){return V})});if(Ie)return P=Ie,"break"},ke=re;ke>0;ke--){var Oe=he(ke);if(Oe==="break")break}t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}}const PS={name:"flip",enabled:!0,phase:"main",fn:VU,requiresIfExists:["offset"],data:{_skip:!1}};function z0(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function G0(e){return[Rn,qn,Gn,Nn].some(function(t){return e[t]>=0})}function YU(e){var t=e.state,n=e.name,r=t.rects.reference,a=t.rects.popper,s=t.modifiersData.preventOverflow,o=$i(t,{elementContext:"reference"}),i=$i(t,{altBoundary:!0}),l=z0(o,r),c=z0(i,a,s),u=G0(l),d=G0(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:u,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":u,"data-popper-escaped":d})}const $S={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:YU};function WU(e,t,n){var r=ia(e),a=[Nn,Rn].indexOf(r)>=0?-1:1,s=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,o=s[0],i=s[1];return o=o||0,i=(i||0)*a,[Nn,qn].indexOf(r)>=0?{x:i,y:o}:{x:o,y:i}}function HU(e){var t=e.state,n=e.options,r=e.name,a=n.offset,s=a===void 0?[0,0]:a,o=Dv.reduce(function(u,d){return u[d]=WU(d,t.rects,s),u},{}),i=o[t.placement],l=i.x,c=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=o}const IS={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:HU};function BU(e){var t=e.state,n=e.name;t.modifiersData[n]=OS({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}const Vv={name:"popperOffsets",enabled:!0,phase:"read",fn:BU,data:{}};function jU(e){return e==="x"?"y":"x"}function UU(e){var t=e.state,n=e.options,r=e.name,a=n.mainAxis,s=a===void 0?!0:a,o=n.altAxis,i=o===void 0?!1:o,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,p=n.tether,m=p===void 0?!0:p,_=n.tetherOffset,y=_===void 0?0:_,b=$i(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),h=ia(t.placement),g=Pi(t.placement),w=!g,v=$v(h),k=jU(v),$=t.modifiersData.popperOffsets,S=t.rects.reference,x=t.rects.popper,P=typeof y=="function"?y(Object.assign({},t.rects,{placement:t.placement})):y,R=typeof P=="number"?{mainAxis:P,altAxis:P}:Object.assign({mainAxis:0,altAxis:0},P),K=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,W={x:0,y:0};if($){if(s){var X,ce=v==="y"?Rn:Nn,ie=v==="y"?Gn:qn,fe=v==="y"?"height":"width",j=$[v],ne=j+b[ce],le=j-b[ie],re=m?-x[fe]/2:0,he=g===Eo?S[fe]:x[fe],ke=g===Eo?-x[fe]:-S[fe],Oe=t.elements.arrow,Pe=m&&Oe?Pv(Oe):{width:0,height:0},Re=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:kS(),Ie=Re[ce],B=Re[ie],se=Vl(0,S[fe],Pe[fe]),V=w?S[fe]/2-re-se-Ie-R.mainAxis:he-se-Ie-R.mainAxis,F=w?-S[fe]/2+re+se+B+R.mainAxis:ke+se+B+R.mainAxis,J=t.elements.arrow&&Iu(t.elements.arrow),O=J?v==="y"?J.clientTop||0:J.clientLeft||0:0,T=(X=K?.[v])!=null?X:0,C=j+V-T-O,E=j+F-T,I=Vl(m?cd(ne,C):ne,j,m?go(le,E):le);$[v]=I,W[v]=I-j}if(i){var H,Z=v==="x"?Rn:Nn,Y=v==="x"?Gn:qn,z=$[k],N=k==="y"?"height":"width",U=z+b[Z],M=z-b[Y],te=[Rn,Nn].indexOf(h)!==-1,Q=(H=K?.[k])!=null?H:0,we=te?U:z-S[N]-x[N]-Q+R.altAxis,Ce=te?z+S[N]+x[N]-Q-R.altAxis:M,Ve=m&&te?SU(we,z,Ce):Vl(m?we:U,z,m?Ce:M);$[k]=Ve,W[k]=Ve-z}t.modifiersData[r]=W}}const RS={name:"preventOverflow",enabled:!0,phase:"main",fn:UU,requiresIfExists:["offset"]};function zU(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function GU(e){return e===Kn(e)||!lr(e)?Nv(e):zU(e)}function qU(e){var t=e.getBoundingClientRect(),n=Mi(t.width)/e.offsetWidth||1,r=Mi(t.height)/e.offsetHeight||1;return n!==1||r!==1}function KU(e,t,n){n===void 0&&(n=!1);var r=lr(t),a=lr(t)&&qU(t),s=Ns(t),o=Oi(e,a,n),i={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(r||!r&&!n)&&((ha(t)!=="body"||Fv(s))&&(i=GU(t)),lr(t)?(l=Oi(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):s&&(l.x=Lv(s))),{x:o.left+i.scrollLeft-l.x,y:o.top+i.scrollTop-l.y,width:o.width,height:o.height}}function QU(e){var t=new Map,n=new Set,r=[];e.forEach(function(s){t.set(s.name,s)});function a(s){n.add(s.name);var o=[].concat(s.requires||[],s.requiresIfExists||[]);o.forEach(function(i){if(!n.has(i)){var l=t.get(i);l&&a(l)}}),r.push(s)}return e.forEach(function(s){n.has(s.name)||a(s)}),r}function XU(e){var t=QU(e);return TS.reduce(function(n,r){return n.concat(t.filter(function(a){return a.phase===r}))},[])}function ZU(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function JU(e){var t=e.reduce(function(n,r){var a=n[r.name];return n[r.name]=a?Object.assign({},a,r,{options:Object.assign({},a.options,r.options),data:Object.assign({},a.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var q0={placement:"bottom",modifiers:[],strategy:"absolute"};function K0(){for(var e=arguments.length,t=new Array(e),n=0;n(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(t,n)=>`#${CSS.escape(n)}`)),e),oz=e=>e==null?`${e}`:Object.prototype.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),iz=e=>{do e+=Math.floor(Math.random()*az);while(document.getElementById(e));return e},lz=e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const r=Number.parseFloat(t),a=Number.parseFloat(n);return!r&&!a?0:(t=t.split(",")[0],n=n.split(",")[0],(Number.parseFloat(t)+Number.parseFloat(n))*sz)},FS=e=>{e.dispatchEvent(new Event(zh))},Na=e=>!e||typeof e!="object"?!1:(typeof e.jquery<"u"&&(e=e[0]),typeof e.nodeType<"u"),ks=e=>Na(e)?e.jquery?e[0]:e:typeof e=="string"&&e.length>0?document.querySelector(LS(e)):null,Ki=e=>{if(!Na(e)||e.getClientRects().length===0)return!1;const t=getComputedStyle(e).getPropertyValue("visibility")==="visible",n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const r=e.closest("summary");if(r&&r.parentNode!==n||r===null)return!1}return t},Cs=e=>!e||e.nodeType!==Node.ELEMENT_NODE||e.classList.contains("disabled")?!0:typeof e.disabled<"u"?e.disabled:e.hasAttribute("disabled")&&e.getAttribute("disabled")!=="false",VS=e=>{if(!document.documentElement.attachShadow)return null;if(typeof e.getRootNode=="function"){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?VS(e.parentNode):null},dd=()=>{},Ru=e=>{e.offsetHeight},YS=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,Ep=[],uz=e=>{document.readyState==="loading"?(Ep.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of Ep)t()}),Ep.push(e)):e()},pr=()=>document.documentElement.dir==="rtl",yr=e=>{uz(()=>{const t=YS();if(t){const n=e.NAME,r=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=()=>(t.fn[n]=r,e.jQueryInterface)}})},Vn=(e,t=[],n=e)=>typeof e=="function"?e.call(...t):n,WS=(e,t,n=!0)=>{if(!n){Vn(e);return}const a=lz(t)+5;let s=!1;const o=({target:i})=>{i===t&&(s=!0,t.removeEventListener(zh,o),Vn(e))};t.addEventListener(zh,o),setTimeout(()=>{s||FS(t)},a)},Wv=(e,t,n,r)=>{const a=e.length;let s=e.indexOf(t);return s===-1?!n&&r?e[a-1]:e[0]:(s+=n?1:-1,r&&(s=(s+a)%a),e[Math.max(0,Math.min(s,a-1))])},cz=/[^.]*(?=\..*)\.|.*/,dz=/\..*/,fz=/::\d+$/,xp={};let Q0=1;const HS={mouseenter:"mouseover",mouseleave:"mouseout"},pz=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function BS(e,t){return t&&`${t}::${Q0++}`||e.uidEvent||Q0++}function jS(e){const t=BS(e);return e.uidEvent=t,xp[t]=xp[t]||{},xp[t]}function hz(e,t){return function n(r){return Hv(r,{delegateTarget:e}),n.oneOff&&ve.off(e,r.type,t),t.apply(e,[r])}}function mz(e,t,n){return function r(a){const s=e.querySelectorAll(t);for(let{target:o}=a;o&&o!==this;o=o.parentNode)for(const i of s)if(i===o)return Hv(a,{delegateTarget:o}),r.oneOff&&ve.off(e,a.type,t,n),n.apply(o,[a])}}function US(e,t,n=null){return Object.values(e).find(r=>r.callable===t&&r.delegationSelector===n)}function zS(e,t,n){const r=typeof t=="string",a=r?n:t||n;let s=GS(e);return pz.has(s)||(s=e),[r,a,s]}function X0(e,t,n,r,a){if(typeof t!="string"||!e)return;let[s,o,i]=zS(t,n,r);t in HS&&(o=(_=>function(y){if(!y.relatedTarget||y.relatedTarget!==y.delegateTarget&&!y.delegateTarget.contains(y.relatedTarget))return _.call(this,y)})(o));const l=jS(e),c=l[i]||(l[i]={}),u=US(c,o,s?n:null);if(u){u.oneOff=u.oneOff&&a;return}const d=BS(o,t.replace(cz,"")),p=s?mz(e,n,o):hz(e,o);p.delegationSelector=s?n:null,p.callable=o,p.oneOff=a,p.uidEvent=d,c[d]=p,e.addEventListener(i,p,s)}function Gh(e,t,n,r,a){const s=US(t[n],r,a);s&&(e.removeEventListener(n,s,!!a),delete t[n][s.uidEvent])}function vz(e,t,n,r){const a=t[n]||{};for(const[s,o]of Object.entries(a))s.includes(r)&&Gh(e,t,n,o.callable,o.delegationSelector)}function GS(e){return e=e.replace(dz,""),HS[e]||e}const ve={on(e,t,n,r){X0(e,t,n,r,!1)},one(e,t,n,r){X0(e,t,n,r,!0)},off(e,t,n,r){if(typeof t!="string"||!e)return;const[a,s,o]=zS(t,n,r),i=o!==t,l=jS(e),c=l[o]||{},u=t.startsWith(".");if(typeof s<"u"){if(!Object.keys(c).length)return;Gh(e,l,o,s,a?n:null);return}if(u)for(const d of Object.keys(l))vz(e,l,d,t.slice(1));for(const[d,p]of Object.entries(c)){const m=d.replace(fz,"");(!i||t.includes(m))&&Gh(e,l,o,p.callable,p.delegationSelector)}},trigger(e,t,n){if(typeof t!="string"||!e)return null;const r=YS(),a=GS(t),s=t!==a;let o=null,i=!0,l=!0,c=!1;s&&r&&(o=r.Event(t,n),r(e).trigger(o),i=!o.isPropagationStopped(),l=!o.isImmediatePropagationStopped(),c=o.isDefaultPrevented());const u=Hv(new Event(t,{bubbles:i,cancelable:!0}),n);return c&&u.preventDefault(),l&&e.dispatchEvent(u),u.defaultPrevented&&o&&o.preventDefault(),u}};function Hv(e,t={}){for(const[n,r]of Object.entries(t))try{e[n]=r}catch{Object.defineProperty(e,n,{configurable:!0,get(){return r}})}return e}function Z0(e){if(e==="true")return!0;if(e==="false")return!1;if(e===Number(e).toString())return Number(e);if(e===""||e==="null")return null;if(typeof e!="string")return e;try{return JSON.parse(decodeURIComponent(e))}catch{return e}}function kp(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const La={setDataAttribute(e,t,n){e.setAttribute(`data-bs-${kp(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-bs-${kp(t)}`)},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(r=>r.startsWith("bs")&&!r.startsWith("bsConfig"));for(const r of n){let a=r.replace(/^bs/,"");a=a.charAt(0).toLowerCase()+a.slice(1),t[a]=Z0(e.dataset[r])}return t},getDataAttribute(e,t){return Z0(e.getAttribute(`data-bs-${kp(t)}`))}};class Nu{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,n){const r=Na(n)?La.getDataAttribute(n,"config"):{};return{...this.constructor.Default,...typeof r=="object"?r:{},...Na(n)?La.getDataAttributes(n):{},...typeof t=="object"?t:{}}}_typeCheckConfig(t,n=this.constructor.DefaultType){for(const[r,a]of Object.entries(n)){const s=t[r],o=Na(s)?"element":oz(s);if(!new RegExp(a).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${r}" provided type "${o}" but expected type "${a}".`)}}}const gz="5.3.8";class Hr extends Nu{constructor(t,n){super(),t=ks(t),t&&(this._element=t,this._config=this._getConfig(n),Tp.set(this._element,this.constructor.DATA_KEY,this))}dispose(){Tp.remove(this._element,this.constructor.DATA_KEY),ve.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,n,r=!0){WS(t,n,r)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return Tp.get(ks(t),this.DATA_KEY)}static getOrCreateInstance(t,n={}){return this.getInstance(t)||new this(t,typeof n=="object"?n:null)}static get VERSION(){return gz}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const Cp=e=>{let t=e.getAttribute("data-bs-target");if(!t||t==="#"){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n=`#${n.split("#")[1]}`),t=n&&n!=="#"?n.trim():null}return t?t.split(",").map(n=>LS(n)).join(","):null},Be={find(e,t=document.documentElement){return[].concat(...Element.prototype.querySelectorAll.call(t,e))},findOne(e,t=document.documentElement){return Element.prototype.querySelector.call(t,e)},children(e,t){return[].concat(...e.children).filter(n=>n.matches(t))},parents(e,t){const n=[];let r=e.parentNode.closest(t);for(;r;)n.push(r),r=r.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(n=>`${n}:not([tabindex^="-"])`).join(",");return this.find(t,e).filter(n=>!Cs(n)&&Ki(n))},getSelectorFromElement(e){const t=Cp(e);return t&&Be.findOne(t)?t:null},getElementFromSelector(e){const t=Cp(e);return t?Be.findOne(t):null},getMultipleElementsFromSelector(e){const t=Cp(e);return t?Be.find(t):[]}},Sf=(e,t="hide")=>{const n=`click.dismiss${e.EVENT_KEY}`,r=e.NAME;ve.on(document,n,`[data-bs-dismiss="${r}"]`,function(a){if(["A","AREA"].includes(this.tagName)&&a.preventDefault(),Cs(this))return;const s=Be.getElementFromSelector(this)||this.closest(`.${r}`);e.getOrCreateInstance(s)[t]()})},yz="alert",_z="bs.alert",qS=`.${_z}`,bz=`close${qS}`,wz=`closed${qS}`,Sz="fade",Tz="show";class Tf extends Hr{static get NAME(){return yz}close(){if(ve.trigger(this._element,bz).defaultPrevented)return;this._element.classList.remove(Tz);const n=this._element.classList.contains(Sz);this._queueCallback(()=>this._destroyElement(),this._element,n)}_destroyElement(){this._element.remove(),ve.trigger(this._element,wz),this.dispose()}static jQueryInterface(t){return this.each(function(){const n=Tf.getOrCreateInstance(this);if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t](this)}})}}Sf(Tf,"close");yr(Tf);const Ez="button",xz="bs.button",kz=`.${xz}`,Cz=".data-api",Az="active",J0='[data-bs-toggle="button"]',Dz=`click${kz}${Cz}`;class Ef extends Hr{static get NAME(){return Ez}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle(Az))}static jQueryInterface(t){return this.each(function(){const n=Ef.getOrCreateInstance(this);t==="toggle"&&n[t]()})}}ve.on(document,Dz,J0,e=>{e.preventDefault();const t=e.target.closest(J0);Ef.getOrCreateInstance(t).toggle()});yr(Ef);const Mz="swipe",Qi=".bs.swipe",Oz=`touchstart${Qi}`,Pz=`touchmove${Qi}`,$z=`touchend${Qi}`,Iz=`pointerdown${Qi}`,Rz=`pointerup${Qi}`,Nz="touch",Lz="pen",Fz="pointer-event",Vz=40,Yz={endCallback:null,leftCallback:null,rightCallback:null},Wz={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class fd extends Nu{constructor(t,n){super(),this._element=t,!(!t||!fd.isSupported())&&(this._config=this._getConfig(n),this._deltaX=0,this._supportPointerEvents=!!window.PointerEvent,this._initEvents())}static get Default(){return Yz}static get DefaultType(){return Wz}static get NAME(){return Mz}dispose(){ve.off(this._element,Qi)}_start(t){if(!this._supportPointerEvents){this._deltaX=t.touches[0].clientX;return}this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX)}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),Vn(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=Vz)return;const n=t/this._deltaX;this._deltaX=0,n&&Vn(n>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(ve.on(this._element,Iz,t=>this._start(t)),ve.on(this._element,Rz,t=>this._end(t)),this._element.classList.add(Fz)):(ve.on(this._element,Oz,t=>this._start(t)),ve.on(this._element,Pz,t=>this._move(t)),ve.on(this._element,$z,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&(t.pointerType===Lz||t.pointerType===Nz)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Hz="carousel",Bz="bs.carousel",Ls=`.${Bz}`,KS=".data-api",jz="ArrowLeft",Uz="ArrowRight",zz=500,hl="next",Yo="prev",Go="left",Cc="right",Gz=`slide${Ls}`,Ap=`slid${Ls}`,qz=`keydown${Ls}`,Kz=`mouseenter${Ls}`,Qz=`mouseleave${Ls}`,Xz=`dragstart${Ls}`,Zz=`load${Ls}${KS}`,Jz=`click${Ls}${KS}`,QS="carousel",rc="active",eG="slide",tG="carousel-item-end",nG="carousel-item-start",rG="carousel-item-next",aG="carousel-item-prev",XS=".active",ZS=".carousel-item",sG=XS+ZS,oG=".carousel-item img",iG=".carousel-indicators",lG="[data-bs-slide], [data-bs-slide-to]",uG='[data-bs-ride="carousel"]',cG={[jz]:Cc,[Uz]:Go},dG={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},fG={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Lu extends Hr{constructor(t,n){super(t,n),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=Be.findOne(iG,this._element),this._addEventListeners(),this._config.ride===QS&&this.cycle()}static get Default(){return dG}static get DefaultType(){return fG}static get NAME(){return Hz}next(){this._slide(hl)}nextWhenVisible(){!document.hidden&&Ki(this._element)&&this.next()}prev(){this._slide(Yo)}pause(){this._isSliding&&FS(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding){ve.one(this._element,Ap,()=>this.cycle());return}this.cycle()}}to(t){const n=this._getItems();if(t>n.length-1||t<0)return;if(this._isSliding){ve.one(this._element,Ap,()=>this.to(t));return}const r=this._getItemIndex(this._getActive());if(r===t)return;const a=t>r?hl:Yo;this._slide(a,n[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&ve.on(this._element,qz,t=>this._keydown(t)),this._config.pause==="hover"&&(ve.on(this._element,Kz,()=>this.pause()),ve.on(this._element,Qz,()=>this._maybeEnableCycle())),this._config.touch&&fd.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const r of Be.find(oG,this._element))ve.on(r,Xz,a=>a.preventDefault());const n={leftCallback:()=>this._slide(this._directionToOrder(Go)),rightCallback:()=>this._slide(this._directionToOrder(Cc)),endCallback:()=>{this._config.pause==="hover"&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),zz+this._config.interval))}};this._swipeHelper=new fd(this._element,n)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const n=cG[t.key];n&&(t.preventDefault(),this._slide(this._directionToOrder(n)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const n=Be.findOne(XS,this._indicatorsElement);n.classList.remove(rc),n.removeAttribute("aria-current");const r=Be.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);r&&(r.classList.add(rc),r.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const n=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=n||this._config.defaultInterval}_slide(t,n=null){if(this._isSliding)return;const r=this._getActive(),a=t===hl,s=n||Wv(this._getItems(),r,a,this._config.wrap);if(s===r)return;const o=this._getItemIndex(s),i=m=>ve.trigger(this._element,m,{relatedTarget:s,direction:this._orderToDirection(t),from:this._getItemIndex(r),to:o});if(i(Gz).defaultPrevented||!r||!s)return;const c=!!this._interval;this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=s;const u=a?nG:tG,d=a?rG:aG;s.classList.add(d),Ru(s),r.classList.add(u),s.classList.add(u);const p=()=>{s.classList.remove(u,d),s.classList.add(rc),r.classList.remove(rc,d,u),this._isSliding=!1,i(Ap)};this._queueCallback(p,r,this._isAnimated()),c&&this.cycle()}_isAnimated(){return this._element.classList.contains(eG)}_getActive(){return Be.findOne(sG,this._element)}_getItems(){return Be.find(ZS,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return pr()?t===Go?Yo:hl:t===Go?hl:Yo}_orderToDirection(t){return pr()?t===Yo?Go:Cc:t===Yo?Cc:Go}static jQueryInterface(t){return this.each(function(){const n=Lu.getOrCreateInstance(this,t);if(typeof t=="number"){n.to(t);return}if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t]()}})}}ve.on(document,Jz,lG,function(e){const t=Be.getElementFromSelector(this);if(!t||!t.classList.contains(QS))return;e.preventDefault();const n=Lu.getOrCreateInstance(t),r=this.getAttribute("data-bs-slide-to");if(r){n.to(r),n._maybeEnableCycle();return}if(La.getDataAttribute(this,"slide")==="next"){n.next(),n._maybeEnableCycle();return}n.prev(),n._maybeEnableCycle()});ve.on(window,Zz,()=>{const e=Be.find(uG);for(const t of e)Lu.getOrCreateInstance(t)});yr(Lu);const pG="collapse",hG="bs.collapse",Fu=`.${hG}`,mG=".data-api",vG=`show${Fu}`,gG=`shown${Fu}`,yG=`hide${Fu}`,_G=`hidden${Fu}`,bG=`click${Fu}${mG}`,Dp="show",ti="collapse",ac="collapsing",wG="collapsed",SG=`:scope .${ti} .${ti}`,TG="collapse-horizontal",EG="width",xG="height",kG=".collapse.show, .collapse.collapsing",qh='[data-bs-toggle="collapse"]',CG={parent:null,toggle:!0},AG={parent:"(null|element)",toggle:"boolean"};class ou extends Hr{constructor(t,n){super(t,n),this._isTransitioning=!1,this._triggerArray=[];const r=Be.find(qh);for(const a of r){const s=Be.getSelectorFromElement(a),o=Be.find(s).filter(i=>i===this._element);s!==null&&o.length&&this._triggerArray.push(a)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return CG}static get DefaultType(){return AG}static get NAME(){return pG}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(kG).filter(i=>i!==this._element).map(i=>ou.getOrCreateInstance(i,{toggle:!1}))),t.length&&t[0]._isTransitioning||ve.trigger(this._element,vG).defaultPrevented)return;for(const i of t)i.hide();const r=this._getDimension();this._element.classList.remove(ti),this._element.classList.add(ac),this._element.style[r]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const a=()=>{this._isTransitioning=!1,this._element.classList.remove(ac),this._element.classList.add(ti,Dp),this._element.style[r]="",ve.trigger(this._element,gG)},o=`scroll${r[0].toUpperCase()+r.slice(1)}`;this._queueCallback(a,this._element,!0),this._element.style[r]=`${this._element[o]}px`}hide(){if(this._isTransitioning||!this._isShown()||ve.trigger(this._element,yG).defaultPrevented)return;const n=this._getDimension();this._element.style[n]=`${this._element.getBoundingClientRect()[n]}px`,Ru(this._element),this._element.classList.add(ac),this._element.classList.remove(ti,Dp);for(const a of this._triggerArray){const s=Be.getElementFromSelector(a);s&&!this._isShown(s)&&this._addAriaAndCollapsedClass([a],!1)}this._isTransitioning=!0;const r=()=>{this._isTransitioning=!1,this._element.classList.remove(ac),this._element.classList.add(ti),ve.trigger(this._element,_G)};this._element.style[n]="",this._queueCallback(r,this._element,!0)}_isShown(t=this._element){return t.classList.contains(Dp)}_configAfterMerge(t){return t.toggle=!!t.toggle,t.parent=ks(t.parent),t}_getDimension(){return this._element.classList.contains(TG)?EG:xG}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(qh);for(const n of t){const r=Be.getElementFromSelector(n);r&&this._addAriaAndCollapsedClass([n],this._isShown(r))}}_getFirstLevelChildren(t){const n=Be.find(SG,this._config.parent);return Be.find(t,this._config.parent).filter(r=>!n.includes(r))}_addAriaAndCollapsedClass(t,n){if(t.length)for(const r of t)r.classList.toggle(wG,!n),r.setAttribute("aria-expanded",n)}static jQueryInterface(t){const n={};return typeof t=="string"&&/show|hide/.test(t)&&(n.toggle=!1),this.each(function(){const r=ou.getOrCreateInstance(this,n);if(typeof t=="string"){if(typeof r[t]>"u")throw new TypeError(`No method named "${t}"`);r[t]()}})}}ve.on(document,bG,qh,function(e){(e.target.tagName==="A"||e.delegateTarget&&e.delegateTarget.tagName==="A")&&e.preventDefault();for(const t of Be.getMultipleElementsFromSelector(this))ou.getOrCreateInstance(t,{toggle:!1}).toggle()});yr(ou);const e1="dropdown",DG="bs.dropdown",Mo=`.${DG}`,Bv=".data-api",MG="Escape",t1="Tab",OG="ArrowUp",n1="ArrowDown",PG=2,$G=`hide${Mo}`,IG=`hidden${Mo}`,RG=`show${Mo}`,NG=`shown${Mo}`,JS=`click${Mo}${Bv}`,eT=`keydown${Mo}${Bv}`,LG=`keyup${Mo}${Bv}`,qo="show",FG="dropup",VG="dropend",YG="dropstart",WG="dropup-center",HG="dropdown-center",so='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',BG=`${so}.${qo}`,Ac=".dropdown-menu",jG=".navbar",UG=".navbar-nav",zG=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",GG=pr()?"top-end":"top-start",qG=pr()?"top-start":"top-end",KG=pr()?"bottom-end":"bottom-start",QG=pr()?"bottom-start":"bottom-end",XG=pr()?"left-start":"right-start",ZG=pr()?"right-start":"left-start",JG="top",eq="bottom",tq={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},nq={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class la extends Hr{constructor(t,n){super(t,n),this._popper=null,this._parent=this._element.parentNode,this._menu=Be.next(this._element,Ac)[0]||Be.prev(this._element,Ac)[0]||Be.findOne(Ac,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return tq}static get DefaultType(){return nq}static get NAME(){return e1}toggle(){return this._isShown()?this.hide():this.show()}show(){if(Cs(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!ve.trigger(this._element,RG,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(UG))for(const r of[].concat(...document.body.children))ve.on(r,"mouseover",dd);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(qo),this._element.classList.add(qo),ve.trigger(this._element,NG,t)}}hide(){if(Cs(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!ve.trigger(this._element,$G,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const r of[].concat(...document.body.children))ve.off(r,"mouseover",dd);this._popper&&this._popper.destroy(),this._menu.classList.remove(qo),this._element.classList.remove(qo),this._element.setAttribute("aria-expanded","false"),La.removeDataAttribute(this._menu,"popper"),ve.trigger(this._element,IG,t)}}_getConfig(t){if(t=super._getConfig(t),typeof t.reference=="object"&&!Na(t.reference)&&typeof t.reference.getBoundingClientRect!="function")throw new TypeError(`${e1.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(typeof NS>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org/docs/v2/)");let t=this._element;this._config.reference==="parent"?t=this._parent:Na(this._config.reference)?t=ks(this._config.reference):typeof this._config.reference=="object"&&(t=this._config.reference);const n=this._getPopperConfig();this._popper=Yv(t,this._menu,n)}_isShown(){return this._menu.classList.contains(qo)}_getPlacement(){const t=this._parent;if(t.classList.contains(VG))return XG;if(t.classList.contains(YG))return ZG;if(t.classList.contains(WG))return JG;if(t.classList.contains(HG))return eq;const n=getComputedStyle(this._menu).getPropertyValue("--bs-position").trim()==="end";return t.classList.contains(FG)?n?qG:GG:n?QG:KG}_detectNavbar(){return this._element.closest(jG)!==null}_getOffset(){const{offset:t}=this._config;return typeof t=="string"?t.split(",").map(n=>Number.parseInt(n,10)):typeof t=="function"?n=>t(n,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||this._config.display==="static")&&(La.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...Vn(this._config.popperConfig,[void 0,t])}}_selectMenuItem({key:t,target:n}){const r=Be.find(zG,this._menu).filter(a=>Ki(a));r.length&&Wv(r,n,t===n1,!r.includes(n)).focus()}static jQueryInterface(t){return this.each(function(){const n=la.getOrCreateInstance(this,t);if(typeof t=="string"){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t]()}})}static clearMenus(t){if(t.button===PG||t.type==="keyup"&&t.key!==t1)return;const n=Be.find(BG);for(const r of n){const a=la.getInstance(r);if(!a||a._config.autoClose===!1)continue;const s=t.composedPath(),o=s.includes(a._menu);if(s.includes(a._element)||a._config.autoClose==="inside"&&!o||a._config.autoClose==="outside"&&o||a._menu.contains(t.target)&&(t.type==="keyup"&&t.key===t1||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const i={relatedTarget:a._element};t.type==="click"&&(i.clickEvent=t),a._completeHide(i)}}static dataApiKeydownHandler(t){const n=/input|textarea/i.test(t.target.tagName),r=t.key===MG,a=[OG,n1].includes(t.key);if(!a&&!r||n&&!r)return;t.preventDefault();const s=this.matches(so)?this:Be.prev(this,so)[0]||Be.next(this,so)[0]||Be.findOne(so,t.delegateTarget.parentNode),o=la.getOrCreateInstance(s);if(a){t.stopPropagation(),o.show(),o._selectMenuItem(t);return}o._isShown()&&(t.stopPropagation(),o.hide(),s.focus())}}ve.on(document,eT,so,la.dataApiKeydownHandler);ve.on(document,eT,Ac,la.dataApiKeydownHandler);ve.on(document,JS,la.clearMenus);ve.on(document,LG,la.clearMenus);ve.on(document,JS,so,function(e){e.preventDefault(),la.getOrCreateInstance(this).toggle()});yr(la);const tT="backdrop",rq="fade",r1="show",a1=`mousedown.bs.${tT}`,aq={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},sq={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class nT extends Nu{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return aq}static get DefaultType(){return sq}static get NAME(){return tT}show(t){if(!this._config.isVisible){Vn(t);return}this._append();const n=this._getElement();this._config.isAnimated&&Ru(n),n.classList.add(r1),this._emulateAnimation(()=>{Vn(t)})}hide(t){if(!this._config.isVisible){Vn(t);return}this._getElement().classList.remove(r1),this._emulateAnimation(()=>{this.dispose(),Vn(t)})}dispose(){this._isAppended&&(ve.off(this._element,a1),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add(rq),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=ks(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),ve.on(t,a1,()=>{Vn(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){WS(t,this._getElement(),this._config.isAnimated)}}const oq="focustrap",iq="bs.focustrap",pd=`.${iq}`,lq=`focusin${pd}`,uq=`keydown.tab${pd}`,cq="Tab",dq="forward",s1="backward",fq={autofocus:!0,trapElement:null},pq={autofocus:"boolean",trapElement:"element"};class rT extends Nu{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return fq}static get DefaultType(){return pq}static get NAME(){return oq}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),ve.off(document,pd),ve.on(document,lq,t=>this._handleFocusin(t)),ve.on(document,uq,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,ve.off(document,pd))}_handleFocusin(t){const{trapElement:n}=this._config;if(t.target===document||t.target===n||n.contains(t.target))return;const r=Be.focusableChildren(n);r.length===0?n.focus():this._lastTabNavDirection===s1?r[r.length-1].focus():r[0].focus()}_handleKeydown(t){t.key===cq&&(this._lastTabNavDirection=t.shiftKey?s1:dq)}}const o1=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",i1=".sticky-top",sc="padding-right",l1="margin-right";class Kh{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,sc,n=>n+t),this._setElementAttributes(o1,sc,n=>n+t),this._setElementAttributes(i1,l1,n=>n-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,sc),this._resetElementAttributes(o1,sc),this._resetElementAttributes(i1,l1)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,n,r){const a=this.getWidth(),s=o=>{if(o!==this._element&&window.innerWidth>o.clientWidth+a)return;this._saveInitialAttribute(o,n);const i=window.getComputedStyle(o).getPropertyValue(n);o.style.setProperty(n,`${r(Number.parseFloat(i))}px`)};this._applyManipulationCallback(t,s)}_saveInitialAttribute(t,n){const r=t.style.getPropertyValue(n);r&&La.setDataAttribute(t,n,r)}_resetElementAttributes(t,n){const r=a=>{const s=La.getDataAttribute(a,n);if(s===null){a.style.removeProperty(n);return}La.removeDataAttribute(a,n),a.style.setProperty(n,s)};this._applyManipulationCallback(t,r)}_applyManipulationCallback(t,n){if(Na(t)){n(t);return}for(const r of Be.find(t,this._element))n(r)}}const hq="modal",mq="bs.modal",hr=`.${mq}`,vq=".data-api",gq="Escape",yq=`hide${hr}`,_q=`hidePrevented${hr}`,aT=`hidden${hr}`,sT=`show${hr}`,bq=`shown${hr}`,wq=`resize${hr}`,Sq=`click.dismiss${hr}`,Tq=`mousedown.dismiss${hr}`,Eq=`keydown.dismiss${hr}`,xq=`click${hr}${vq}`,u1="modal-open",kq="fade",c1="show",Mp="modal-static",Cq=".modal.show",Aq=".modal-dialog",Dq=".modal-body",Mq='[data-bs-toggle="modal"]',Oq={backdrop:!0,focus:!0,keyboard:!0},Pq={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ii extends Hr{constructor(t,n){super(t,n),this._dialog=Be.findOne(Aq,this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Kh,this._addEventListeners()}static get Default(){return Oq}static get DefaultType(){return Pq}static get NAME(){return hq}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||ve.trigger(this._element,sT,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(u1),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){!this._isShown||this._isTransitioning||ve.trigger(this._element,yq).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(c1),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){ve.off(window,hr),ve.off(this._dialog,hr),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new nT({isVisible:!!this._config.backdrop,isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new rT({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const n=Be.findOne(Dq,this._dialog);n&&(n.scrollTop=0),Ru(this._element),this._element.classList.add(c1);const r=()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,ve.trigger(this._element,bq,{relatedTarget:t})};this._queueCallback(r,this._dialog,this._isAnimated())}_addEventListeners(){ve.on(this._element,Eq,t=>{if(t.key===gq){if(this._config.keyboard){this.hide();return}this._triggerBackdropTransition()}}),ve.on(window,wq,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),ve.on(this._element,Tq,t=>{ve.one(this._element,Sq,n=>{if(!(this._element!==t.target||this._element!==n.target)){if(this._config.backdrop==="static"){this._triggerBackdropTransition();return}this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(u1),this._resetAdjustments(),this._scrollBar.reset(),ve.trigger(this._element,aT)})}_isAnimated(){return this._element.classList.contains(kq)}_triggerBackdropTransition(){if(ve.trigger(this._element,_q).defaultPrevented)return;const n=this._element.scrollHeight>document.documentElement.clientHeight,r=this._element.style.overflowY;r==="hidden"||this._element.classList.contains(Mp)||(n||(this._element.style.overflowY="hidden"),this._element.classList.add(Mp),this._queueCallback(()=>{this._element.classList.remove(Mp),this._queueCallback(()=>{this._element.style.overflowY=r},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,n=this._scrollBar.getWidth(),r=n>0;if(r&&!t){const a=pr()?"paddingLeft":"paddingRight";this._element.style[a]=`${n}px`}if(!r&&t){const a=pr()?"paddingRight":"paddingLeft";this._element.style[a]=`${n}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,n){return this.each(function(){const r=Ii.getOrCreateInstance(this,t);if(typeof t=="string"){if(typeof r[t]>"u")throw new TypeError(`No method named "${t}"`);r[t](n)}})}}ve.on(document,xq,Mq,function(e){const t=Be.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),ve.one(t,sT,a=>{a.defaultPrevented||ve.one(t,aT,()=>{Ki(this)&&this.focus()})});const n=Be.findOne(Cq);n&&Ii.getInstance(n).hide(),Ii.getOrCreateInstance(t).toggle(this)});Sf(Ii);yr(Ii);const $q="offcanvas",Iq="bs.offcanvas",Za=`.${Iq}`,oT=".data-api",Rq=`load${Za}${oT}`,Nq="Escape",d1="show",f1="showing",p1="hiding",Lq="offcanvas-backdrop",iT=".offcanvas.show",Fq=`show${Za}`,Vq=`shown${Za}`,Yq=`hide${Za}`,h1=`hidePrevented${Za}`,lT=`hidden${Za}`,Wq=`resize${Za}`,Hq=`click${Za}${oT}`,Bq=`keydown.dismiss${Za}`,jq='[data-bs-toggle="offcanvas"]',Uq={backdrop:!0,keyboard:!0,scroll:!1},zq={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class As extends Hr{constructor(t,n){super(t,n),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Uq}static get DefaultType(){return zq}static get NAME(){return $q}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){if(this._isShown||ve.trigger(this._element,Fq,{relatedTarget:t}).defaultPrevented)return;this._isShown=!0,this._backdrop.show(),this._config.scroll||new Kh().hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(f1);const r=()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add(d1),this._element.classList.remove(f1),ve.trigger(this._element,Vq,{relatedTarget:t})};this._queueCallback(r,this._element,!0)}hide(){if(!this._isShown||ve.trigger(this._element,Yq).defaultPrevented)return;this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(p1),this._backdrop.hide();const n=()=>{this._element.classList.remove(d1,p1),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||new Kh().reset(),ve.trigger(this._element,lT)};this._queueCallback(n,this._element,!0)}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=()=>{if(this._config.backdrop==="static"){ve.trigger(this._element,h1);return}this.hide()},n=!!this._config.backdrop;return new nT({className:Lq,isVisible:n,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:n?t:null})}_initializeFocusTrap(){return new rT({trapElement:this._element})}_addEventListeners(){ve.on(this._element,Bq,t=>{if(t.key===Nq){if(this._config.keyboard){this.hide();return}ve.trigger(this._element,h1)}})}static jQueryInterface(t){return this.each(function(){const n=As.getOrCreateInstance(this,t);if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t](this)}})}}ve.on(document,Hq,jq,function(e){const t=Be.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),Cs(this))return;ve.one(t,lT,()=>{Ki(this)&&this.focus()});const n=Be.findOne(iT);n&&n!==t&&As.getInstance(n).hide(),As.getOrCreateInstance(t).toggle(this)});ve.on(window,Rq,()=>{for(const e of Be.find(iT))As.getOrCreateInstance(e).show()});ve.on(window,Wq,()=>{for(const e of Be.find("[aria-modal][class*=show][class*=offcanvas-]"))getComputedStyle(e).position!=="fixed"&&As.getOrCreateInstance(e).hide()});Sf(As);yr(As);const Gq=/^aria-[\w-]*$/i,uT={"*":["class","dir","id","lang","role",Gq],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},qq=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Kq=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Qq=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?qq.has(n)?!!Kq.test(e.nodeValue):!0:t.filter(r=>r instanceof RegExp).some(r=>r.test(n))};function Xq(e,t,n){if(!e.length)return e;if(n&&typeof n=="function")return n(e);const a=new window.DOMParser().parseFromString(e,"text/html"),s=[].concat(...a.body.querySelectorAll("*"));for(const o of s){const i=o.nodeName.toLowerCase();if(!Object.keys(t).includes(i)){o.remove();continue}const l=[].concat(...o.attributes),c=[].concat(t["*"]||[],t[i]||[]);for(const u of l)Qq(u,c)||o.removeAttribute(u.nodeName)}return a.body.innerHTML}const Zq="TemplateFactory",Jq={allowList:uT,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},eK={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},tK={entry:"(string|element|function|null)",selector:"(string|element)"};class nK extends Nu{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Jq}static get DefaultType(){return eK}static get NAME(){return Zq}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[a,s]of Object.entries(this._config.content))this._setContent(t,s,a);const n=t.children[0],r=this._resolvePossibleFunction(this._config.extraClass);return r&&n.classList.add(...r.split(" ")),n}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[n,r]of Object.entries(t))super._typeCheckConfig({selector:n,entry:r},tK)}_setContent(t,n,r){const a=Be.findOne(r,t);if(a){if(n=this._resolvePossibleFunction(n),!n){a.remove();return}if(Na(n)){this._putElementInTemplate(ks(n),a);return}if(this._config.html){a.innerHTML=this._maybeSanitize(n);return}a.textContent=n}}_maybeSanitize(t){return this._config.sanitize?Xq(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return Vn(t,[void 0,this])}_putElementInTemplate(t,n){if(this._config.html){n.innerHTML="",n.append(t);return}n.textContent=t.textContent}}const rK="tooltip",aK=new Set(["sanitize","allowList","sanitizeFn"]),Op="fade",sK="modal",oc="show",oK=".tooltip-inner",m1=`.${sK}`,v1="hide.bs.modal",ml="hover",Pp="focus",$p="click",iK="manual",lK="hide",uK="hidden",cK="show",dK="shown",fK="inserted",pK="click",hK="focusin",mK="focusout",vK="mouseenter",gK="mouseleave",yK={AUTO:"auto",TOP:"top",RIGHT:pr()?"left":"right",BOTTOM:"bottom",LEFT:pr()?"right":"left"},_K={allowList:uT,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},bK={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Xi extends Hr{constructor(t,n){if(typeof NS>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org/docs/v2/)");super(t,n),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return _K}static get DefaultType(){return bK}static get NAME(){return rK}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._isShown()){this._leave();return}this._enter()}}dispose(){clearTimeout(this._timeout),ve.off(this._element.closest(m1),v1,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if(this._element.style.display==="none")throw new Error("Please use show on visible elements");if(!(this._isWithContent()&&this._isEnabled))return;const t=ve.trigger(this._element,this.constructor.eventName(cK)),r=(VS(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!r)return;this._disposePopper();const a=this._getTipElement();this._element.setAttribute("aria-describedby",a.getAttribute("id"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(a),ve.trigger(this._element,this.constructor.eventName(fK))),this._popper=this._createPopper(a),a.classList.add(oc),"ontouchstart"in document.documentElement)for(const i of[].concat(...document.body.children))ve.on(i,"mouseover",dd);const o=()=>{ve.trigger(this._element,this.constructor.eventName(dK)),this._isHovered===!1&&this._leave(),this._isHovered=!1};this._queueCallback(o,this.tip,this._isAnimated())}hide(){if(!this._isShown()||ve.trigger(this._element,this.constructor.eventName(lK)).defaultPrevented)return;if(this._getTipElement().classList.remove(oc),"ontouchstart"in document.documentElement)for(const a of[].concat(...document.body.children))ve.off(a,"mouseover",dd);this._activeTrigger[$p]=!1,this._activeTrigger[Pp]=!1,this._activeTrigger[ml]=!1,this._isHovered=null;const r=()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),ve.trigger(this._element,this.constructor.eventName(uK)))};this._queueCallback(r,this.tip,this._isAnimated())}update(){this._popper&&this._popper.update()}_isWithContent(){return!!this._getTitle()}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const n=this._getTemplateFactory(t).toHtml();if(!n)return null;n.classList.remove(Op,oc),n.classList.add(`bs-${this.constructor.NAME}-auto`);const r=iz(this.constructor.NAME).toString();return n.setAttribute("id",r),this._isAnimated()&&n.classList.add(Op),n}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new nK({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{[oK]:this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Op)}_isShown(){return this.tip&&this.tip.classList.contains(oc)}_createPopper(t){const n=Vn(this._config.placement,[this,t,this._element]),r=yK[n.toUpperCase()];return Yv(this._element,t,this._getPopperConfig(r))}_getOffset(){const{offset:t}=this._config;return typeof t=="string"?t.split(",").map(n=>Number.parseInt(n,10)):typeof t=="function"?n=>t(n,this._element):t}_resolvePossibleFunction(t){return Vn(t,[this._element,this._element])}_getPopperConfig(t){const n={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:r=>{this._getTipElement().setAttribute("data-popper-placement",r.state.placement)}}]};return{...n,...Vn(this._config.popperConfig,[void 0,n])}}_setListeners(){const t=this._config.trigger.split(" ");for(const n of t)if(n==="click")ve.on(this._element,this.constructor.eventName(pK),this._config.selector,r=>{const a=this._initializeOnDelegatedTarget(r);a._activeTrigger[$p]=!(a._isShown()&&a._activeTrigger[$p]),a.toggle()});else if(n!==iK){const r=n===ml?this.constructor.eventName(vK):this.constructor.eventName(hK),a=n===ml?this.constructor.eventName(gK):this.constructor.eventName(mK);ve.on(this._element,r,this._config.selector,s=>{const o=this._initializeOnDelegatedTarget(s);o._activeTrigger[s.type==="focusin"?Pp:ml]=!0,o._enter()}),ve.on(this._element,a,this._config.selector,s=>{const o=this._initializeOnDelegatedTarget(s);o._activeTrigger[s.type==="focusout"?Pp:ml]=o._element.contains(s.relatedTarget),o._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},ve.on(this._element.closest(m1),v1,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){if(this._isShown()||this._isHovered){this._isHovered=!0;return}this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show)}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,n){clearTimeout(this._timeout),this._timeout=setTimeout(t,n)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const n=La.getDataAttributes(this._element);for(const r of Object.keys(n))aK.has(r)&&delete n[r];return t={...n,...typeof t=="object"&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=t.container===!1?document.body:ks(t.container),typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),typeof t.title=="number"&&(t.title=t.title.toString()),typeof t.content=="number"&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[n,r]of Object.entries(this._config))this.constructor.Default[n]!==r&&(t[n]=r);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const n=Xi.getOrCreateInstance(this,t);if(typeof t=="string"){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t]()}})}}yr(Xi);const wK="popover",SK=".popover-header",TK=".popover-body",EK={...Xi.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},xK={...Xi.DefaultType,content:"(null|string|element|function)"};class jv extends Xi{static get Default(){return EK}static get DefaultType(){return xK}static get NAME(){return wK}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{[SK]:this._getTitle(),[TK]:this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const n=jv.getOrCreateInstance(this,t);if(typeof t=="string"){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t]()}})}}yr(jv);const kK="scrollspy",CK="bs.scrollspy",Uv=`.${CK}`,AK=".data-api",DK=`activate${Uv}`,g1=`click${Uv}`,MK=`load${Uv}${AK}`,OK="dropdown-item",Wo="active",PK='[data-bs-spy="scroll"]',Ip="[href]",$K=".nav, .list-group",y1=".nav-link",IK=".nav-item",RK=".list-group-item",NK=`${y1}, ${IK} > ${y1}, ${RK}`,LK=".dropdown",FK=".dropdown-toggle",VK={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},YK={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class xf extends Hr{constructor(t,n){super(t,n),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement=getComputedStyle(this._element).overflowY==="visible"?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return VK}static get DefaultType(){return YK}static get NAME(){return kK}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=ks(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,typeof t.threshold=="string"&&(t.threshold=t.threshold.split(",").map(n=>Number.parseFloat(n))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(ve.off(this._config.target,g1),ve.on(this._config.target,g1,Ip,t=>{const n=this._observableSections.get(t.target.hash);if(n){t.preventDefault();const r=this._rootElement||window,a=n.offsetTop-this._element.offsetTop;if(r.scrollTo){r.scrollTo({top:a,behavior:"smooth"});return}r.scrollTop=a}}))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(n=>this._observerCallback(n),t)}_observerCallback(t){const n=o=>this._targetLinks.get(`#${o.target.id}`),r=o=>{this._previousScrollData.visibleEntryTop=o.target.offsetTop,this._process(n(o))},a=(this._rootElement||document.documentElement).scrollTop,s=a>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=a;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(n(o));continue}const i=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(s&&i){if(r(o),!a)return;continue}!s&&!i&&r(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=Be.find(Ip,this._config.target);for(const n of t){if(!n.hash||Cs(n))continue;const r=Be.findOne(decodeURI(n.hash),this._element);Ki(r)&&(this._targetLinks.set(decodeURI(n.hash),n),this._observableSections.set(n.hash,r))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Wo),this._activateParents(t),ve.trigger(this._element,DK,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains(OK)){Be.findOne(FK,t.closest(LK)).classList.add(Wo);return}for(const n of Be.parents(t,$K))for(const r of Be.prev(n,NK))r.classList.add(Wo)}_clearActiveClass(t){t.classList.remove(Wo);const n=Be.find(`${Ip}.${Wo}`,t);for(const r of n)r.classList.remove(Wo)}static jQueryInterface(t){return this.each(function(){const n=xf.getOrCreateInstance(this,t);if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t]()}})}}ve.on(window,MK,()=>{for(const e of Be.find(PK))xf.getOrCreateInstance(e)});yr(xf);const WK="tab",HK="bs.tab",Oo=`.${HK}`,BK=`hide${Oo}`,jK=`hidden${Oo}`,UK=`show${Oo}`,zK=`shown${Oo}`,GK=`click${Oo}`,qK=`keydown${Oo}`,KK=`load${Oo}`,QK="ArrowLeft",_1="ArrowRight",XK="ArrowUp",b1="ArrowDown",Rp="Home",w1="End",oo="active",S1="fade",Np="show",ZK="dropdown",cT=".dropdown-toggle",JK=".dropdown-menu",Lp=`:not(${cT})`,eQ='.list-group, .nav, [role="tablist"]',tQ=".nav-item, .list-group-item",nQ=`.nav-link${Lp}, .list-group-item${Lp}, [role="tab"]${Lp}`,dT='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Fp=`${nQ}, ${dT}`,rQ=`.${oo}[data-bs-toggle="tab"], .${oo}[data-bs-toggle="pill"], .${oo}[data-bs-toggle="list"]`;class Ri extends Hr{constructor(t){super(t),this._parent=this._element.closest(eQ),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),ve.on(this._element,qK,n=>this._keydown(n)))}static get NAME(){return WK}show(){const t=this._element;if(this._elemIsActive(t))return;const n=this._getActiveElem(),r=n?ve.trigger(n,BK,{relatedTarget:t}):null;ve.trigger(t,UK,{relatedTarget:n}).defaultPrevented||r&&r.defaultPrevented||(this._deactivate(n,t),this._activate(t,n))}_activate(t,n){if(!t)return;t.classList.add(oo),this._activate(Be.getElementFromSelector(t));const r=()=>{if(t.getAttribute("role")!=="tab"){t.classList.add(Np);return}t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),ve.trigger(t,zK,{relatedTarget:n})};this._queueCallback(r,t,t.classList.contains(S1))}_deactivate(t,n){if(!t)return;t.classList.remove(oo),t.blur(),this._deactivate(Be.getElementFromSelector(t));const r=()=>{if(t.getAttribute("role")!=="tab"){t.classList.remove(Np);return}t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),ve.trigger(t,jK,{relatedTarget:n})};this._queueCallback(r,t,t.classList.contains(S1))}_keydown(t){if(![QK,_1,XK,b1,Rp,w1].includes(t.key))return;t.stopPropagation(),t.preventDefault();const n=this._getChildren().filter(a=>!Cs(a));let r;if([Rp,w1].includes(t.key))r=n[t.key===Rp?0:n.length-1];else{const a=[_1,b1].includes(t.key);r=Wv(n,t.target,a,!0)}r&&(r.focus({preventScroll:!0}),Ri.getOrCreateInstance(r).show())}_getChildren(){return Be.find(Fp,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,n){this._setAttributeIfNotExists(t,"role","tablist");for(const r of n)this._setInitialAttributesOnChild(r)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const n=this._elemIsActive(t),r=this._getOuterElement(t);t.setAttribute("aria-selected",n),r!==t&&this._setAttributeIfNotExists(r,"role","presentation"),n||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const n=Be.getElementFromSelector(t);n&&(this._setAttributeIfNotExists(n,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(n,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,n){const r=this._getOuterElement(t);if(!r.classList.contains(ZK))return;const a=(s,o)=>{const i=Be.findOne(s,r);i&&i.classList.toggle(o,n)};a(cT,oo),a(JK,Np),r.setAttribute("aria-expanded",n)}_setAttributeIfNotExists(t,n,r){t.hasAttribute(n)||t.setAttribute(n,r)}_elemIsActive(t){return t.classList.contains(oo)}_getInnerElement(t){return t.matches(Fp)?t:Be.findOne(Fp,t)}_getOuterElement(t){return t.closest(tQ)||t}static jQueryInterface(t){return this.each(function(){const n=Ri.getOrCreateInstance(this);if(typeof t=="string"){if(n[t]===void 0||t.startsWith("_")||t==="constructor")throw new TypeError(`No method named "${t}"`);n[t]()}})}}ve.on(document,GK,dT,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),!Cs(this)&&Ri.getOrCreateInstance(this).show()});ve.on(window,KK,()=>{for(const e of Be.find(rQ))Ri.getOrCreateInstance(e)});yr(Ri);const aQ="toast",sQ="bs.toast",Fs=`.${sQ}`,oQ=`mouseover${Fs}`,iQ=`mouseout${Fs}`,lQ=`focusin${Fs}`,uQ=`focusout${Fs}`,cQ=`hide${Fs}`,dQ=`hidden${Fs}`,fQ=`show${Fs}`,pQ=`shown${Fs}`,hQ="fade",T1="hide",ic="show",lc="showing",mQ={animation:"boolean",autohide:"boolean",delay:"number"},vQ={animation:!0,autohide:!0,delay:5e3};class kf extends Hr{constructor(t,n){super(t,n),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return vQ}static get DefaultType(){return mQ}static get NAME(){return aQ}show(){if(ve.trigger(this._element,fQ).defaultPrevented)return;this._clearTimeout(),this._config.animation&&this._element.classList.add(hQ);const n=()=>{this._element.classList.remove(lc),ve.trigger(this._element,pQ),this._maybeScheduleHide()};this._element.classList.remove(T1),Ru(this._element),this._element.classList.add(ic,lc),this._queueCallback(n,this._element,this._config.animation)}hide(){if(!this.isShown()||ve.trigger(this._element,cQ).defaultPrevented)return;const n=()=>{this._element.classList.add(T1),this._element.classList.remove(lc,ic),ve.trigger(this._element,dQ)};this._element.classList.add(lc),this._queueCallback(n,this._element,this._config.animation)}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ic),super.dispose()}isShown(){return this._element.classList.contains(ic)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,n){switch(t.type){case"mouseover":case"mouseout":{this._hasMouseInteraction=n;break}case"focusin":case"focusout":{this._hasKeyboardInteraction=n;break}}if(n){this._clearTimeout();return}const r=t.relatedTarget;this._element===r||this._element.contains(r)||this._maybeScheduleHide()}_setListeners(){ve.on(this._element,oQ,t=>this._onInteraction(t,!0)),ve.on(this._element,iQ,t=>this._onInteraction(t,!1)),ve.on(this._element,lQ,t=>this._onInteraction(t,!0)),ve.on(this._element,uQ,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const n=kf.getOrCreateInstance(this,t);if(typeof t=="string"){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t](this)}})}}Sf(kf);yr(kf);const gQ=ye({__name:"LicenseNotifications",setup(e){const t=Os(),n=ji(),r=n.license,a=of(),{configuration:s}=Et(a);function o(i){const l=t.resolve(pe.configuration.root).href;switch(i){case Tt.ValidWithExpiredUpgradeProtection:{const c=`
Upgrade protection expired
Once upgrade protection expires, you'll no longer have access to support or new product versions
View license details
`;Xr(Ct.WARNING,"",c,!0);break}case Tt.ValidWithExpiringTrial:{const c=s.value?.mass_transit_connector?`
Early Access license expiring
Your Early Access license will expire soon. To continue using the Particular Service Platform you'll need to extend your license.
Extend your licenseView license details
`:`
Non-production development license expiring
Your non-production development license will expire soon. To continue using the Particular Service Platform you'll need to extend your license.
Extend your licenseView license details
`;Xr(Ct.WARNING,"",c,!0);break}case Tt.ValidWithExpiringSubscription:{const c=`
Platform license expires soon
Once the license expires you'll no longer be able to continue using the Particular Service Platform.
View license details
`;Xr(Ct.WARNING,"",c,!0);break}case Tt.ValidWithExpiringUpgradeProtection:{const c=`
Upgrade protection expires soon
Once upgrade protection expires, you'll no longer have access to support or new product versions
View license details
`;Xr(Ct.WARNING,"",c,!0);break}case Tt.InvalidDueToExpiredTrial:case Tt.InvalidDueToExpiredSubscription:case Tt.InvalidDueToExpiredUpgradeProtection:Xr(Ct.ERROR,"Error",'Your license has expired. Please contact Particular Software support at: http://particular.net/support',!0);break}}return Ue(()=>r.license_status,(i,l)=>{i!==l&&o(i)}),ut(async()=>{await n.refresh()}),(i,l)=>(D(),L("template"))}}),yQ=ye({__name:"BackendChecksNotifications",setup(e){const t=Os(),{store:n}=ga(),r=n.monitoringConnectionState,{store:a}=wu(),s=a.environment,o=vn(),{monitoringUrl:i,isMonitoringDisabled:l}=Et(o),c=G(()=>r.unableToConnect);return Ue(c,(u,d)=>{if(!l.value&&u!==d&&!(d===null&&u===!1)){const p=t.resolve(pe.configuration.connections.link).href;u?Xr(Ct.ERROR,"Error",`Could not connect to the ServiceControl Monitoring service at ${i.value}. View connection settings`):Xr(Ct.SUCCESS,"Success",`Connection to ServiceControl Monitoring service was successful at ${i.value}.`)}}),Ue(()=>s.is_compatible_with_sc,u=>{u===!1&&Xr(Ct.ERROR,"Error",`You are using Service Control version ${s.sc_version}. Please, upgrade to version ${s.minimum_supported_sc_version} or higher to unlock new functionality in ServicePulse.`)}),(u,d)=>(D(),L("template"))}}),_Q={class:"container-fluid",id:"main-content"},bQ=ye({__name:"App",setup(e){return(t,n)=>(D(),L(Me,null,[ae(gU),A("div",_Q,[ae(f(Id))]),ae(gQ),ae(yQ),ae(Fj)],64))}});var zv=ye({name:"Vue3SimpleTypeahead",emits:["onInput","onFocus","onBlur","selectItem"],inheritAttrs:!1,props:{id:{type:String},placeholder:{type:String,default:""},items:{type:Array,required:!0},defaultItem:{default:null},itemProjection:{type:Function,default(e){return e}},minInputLength:{type:Number,default:2,validator:e=>e>=0},minItemLength:{type:Number,default:0,validator:e=>e>=0},selectOnTab:{type:Boolean,default:!0}},mounted(){this.defaultItem!==void 0&&this.defaultItem!==null&&this.selectItem(this.defaultItem)},data(){return{inputId:this.id||`simple_typeahead_${(Math.random()*1e3).toFixed()}`,input:"",isInputFocused:!1,currentSelectionIndex:0}},methods:{onInput(){this.isListVisible&&this.currentSelectionIndex>=this.filteredItems.length&&(this.currentSelectionIndex=(this.filteredItems.length||1)-1),this.$emit("onInput",{input:this.input,items:this.filteredItems})},onFocus(){this.isInputFocused=!0,this.$emit("onFocus",{input:this.input,items:this.filteredItems})},onBlur(){this.isInputFocused=!1,this.$emit("onBlur",{input:this.input,items:this.filteredItems})},onArrowDown(e){this.isListVisible&&this.currentSelectionIndex0&&this.currentSelectionIndex--,this.scrollSelectionIntoView()},scrollSelectionIntoView(){setTimeout(()=>{const e=document.querySelector(`#${this.wrapperId} .simple-typeahead-list`),t=document.querySelector(`#${this.wrapperId} .simple-typeahead-list-item.simple-typeahead-list-item-active`);if(!(t.offsetTop>=e.scrollTop&&t.offsetTop+t.offsetHeighte.scrollTop?n=t.offsetTop+t.offsetHeight-e.offsetHeight:t.offsetTop$1")},clearInput(){this.input=""},getInput(){return this.$refs.inputRef},focusInput(){this.$refs.inputRef.focus(),this.onFocus()},blurInput(){this.$refs.inputRef.blur(),this.onBlur()}},computed:{wrapperId(){return`${this.inputId}_wrapper`},filteredItems(){const e=new RegExp(this.escapeRegExp(this.input),"i");return this.items.filter(t=>this.itemProjection(t).match(e))},isListVisible(){return this.isInputFocused&&this.input.length>=this.minInputLength&&this.filteredItems.length>this.minItemLength},currentSelection(){return this.isListVisible&&this.currentSelectionIndexe.input=o),onInput:t[1]||(t[1]=(...o)=>e.onInput&&e.onInput(...o)),onFocus:t[2]||(t[2]=(...o)=>e.onFocus&&e.onFocus(...o)),onBlur:t[3]||(t[3]=(...o)=>e.onBlur&&e.onBlur(...o)),onKeydown:[t[4]||(t[4]=yl(dn((...o)=>e.onArrowDown&&e.onArrowDown(...o),["prevent"]),["down"])),t[5]||(t[5]=yl(dn((...o)=>e.onArrowUp&&e.onArrowUp(...o),["prevent"]),["up"])),t[6]||(t[6]=yl(dn((...o)=>e.selectCurrentSelection&&e.selectCurrentSelection(...o),["prevent"]),["enter"])),t[7]||(t[7]=yl(dn((...o)=>e.selectCurrentSelectionTab&&e.selectCurrentSelectionTab(...o),["prevent"]),["tab"]))],autocomplete:"off"},e.$attrs),null,16,SQ),[[Z_,e.input]]),e.isListVisible?(D(),L("div",TQ,[e.$slots["list-header"]?(D(),L("div",EQ,[Ee(e.$slots,"list-header")])):q("",!0),(D(!0),L(Me,null,Xe(e.filteredItems,(o,i)=>(D(),L("div",{class:xe(["simple-typeahead-list-item",{"simple-typeahead-list-item-active":e.currentSelectionIndex==i}]),key:i,onMousedown:t[8]||(t[8]=dn(()=>{},["prevent"])),onClick:l=>e.selectItem(o),onMouseenter:l=>e.currentSelectionIndex=i},[e.$slots["list-item-text"]?(D(),L("span",{key:0,class:"simple-typeahead-list-item-text","data-text":e.itemProjection(o)},[Ee(e.$slots,"list-item-text",{item:o,itemProjection:e.itemProjection,boldMatchText:e.boldMatchText})],8,kQ)):(D(),L("span",{key:1,class:"simple-typeahead-list-item-text","data-text":e.itemProjection(o),innerHTML:e.boldMatchText(e.itemProjection(o))},null,8,CQ))],42,xQ))),128)),e.$slots["list-footer"]?(D(),L("div",AQ,[Ee(e.$slots,"list-footer")])):q("",!0)])):q("",!0)],8,wQ)}zv.render=DQ;zv.__scopeId="data-v-f81ca714";var MQ=(()=>{const e=zv;return e.install=t=>{t.component("Vue3SimpleTypeahead",e)},e})();const OQ={position:au.BOTTOM_RIGHT,timeout:5e3,transition:"Vue-Toastification__fade",hideProgressBar:!0,containerClassName:"toast-container",toastClassName:"vue-toast",closeButtonClassName:"toast-close-button"};function PQ({router:e}){e.beforeEach((n,r,a)=>{document.title=n.meta.title||"ServicePulse",a()});const t=Bc(bQ);return t.use(e).use(a9,OQ).use(MQ).use(c4()).use(dR),t.mount("#app"),t.config.errorHandler=(n,r)=>{console.error(r,n)},t}async function $Q(){}$Q().then(async()=>{const e=await fetch("js/app.constants.json",{method:"GET"});if(e.ok){const t=await e.json();v4(t)}else console.error("Failed to load app constants")}).then(()=>{PQ({router:_j()})});export{C$ as $,tX as A,me as B,I9 as C,Qe as D,xe as E,sf as F,rX as G,WQ as H,Fo as I,r5 as J,Me as K,Xe as L,ls as M,TN as N,g2 as O,Xr as P,Ct as Q,z9 as R,td as S,o_ as T,Ke as U,rv as V,M$ as W,A$ as X,Jd as Y,Ee as Z,pt as _,P$ as a,LQ as a$,f5 as a0,GQ as a1,Q2 as a2,_u as a3,s4 as a4,pb as a5,dw as a6,Ot as a7,Dl as a8,JQ as a9,g5 as aA,gX as aB,wc as aC,of as aD,Ny as aE,w5 as aF,e5 as aG,VQ as aH,y2 as aI,lX as aJ,yX as aK,DN as aL,Fi as aM,FQ as aN,XQ as aO,cX as aP,UQ as aQ,_d as aR,In as aS,$1 as aT,Ds as aU,Vr as aV,Qt as aW,tm as aX,g_ as aY,Xt as aZ,dm as a_,zQ as aa,Zd as ab,EN as ac,xn as ad,Z_ as ae,QQ as af,y5 as ag,Ih as ah,dn as ai,HQ as aj,l5 as ak,KQ as al,hn as am,Gt as an,v5 as ao,ft as ap,Ui as aq,aX as ar,fX as as,iX as at,nX as au,uX as av,eX as aw,zi as ax,k2 as ay,YQ as az,bu as b,x$ as b$,ur as b0,Hp as b1,rE as b2,nE as b3,Cl as b4,bt as b5,Yn as b6,RQ as b7,NQ as b8,ko as b9,By as bA,ax as bB,pI as bC,T2 as bD,hX as bE,Xs as bF,fI as bG,Gs as bH,qs as bI,Ks as bJ,Qs as bK,vX as bL,ll as bM,il as bN,op as bO,sX as bP,mX as bQ,P7 as bR,e3 as bS,Vt as bT,R_ as bU,ji as bV,Z2 as bW,pX as bX,Xo as bY,K7 as bZ,cw as b_,im as ba,Mc as bb,wX as bc,LB as bd,Gr as be,sj as bf,h_ as bg,ed as bh,K2 as bi,bX as bj,dX as bk,w2 as bl,oX as bm,qQ as bn,r$ as bo,IQ as bp,Ya as bq,Ms as br,T5 as bs,Lt as bt,ZQ as bu,jQ as bv,wu as bw,nf as bx,ga as by,c$ as bz,G as c,BQ as c0,uN as c1,w9 as c2,_X as c3,fv as c4,Qn as d,ye as e,cu as f,T$ as g,Ae as h,Os as i,D$ as j,pe as k,sr as l,L as m,D as n,ut as o,ge as p,A as q,oe as r,Et as s,q as t,vn as u,ae as v,Ue as w,de as x,_e as y,f as z}; +//# sourceMappingURL=index-tFZp7u44.js.map diff --git a/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js.map b/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js.map new file mode 100644 index 0000000000..3f4c414b52 --- /dev/null +++ b/src/ServiceControl/wwwroot/assets/index-tFZp7u44.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":";84DAMA,SAASA,GAAQC,EAAK,CACpB,MAAMC,EAAsB,OAAO,OAAO,IAAI,EAC9C,UAAWC,KAAOF,EAAI,MAAM,GAAG,EAAGC,EAAIC,CAAG,EAAI,EAC7C,OAAQC,GAAQA,KAAOF,CACzB,CAEA,MAAMG,GAA4E,GAC5EC,GAA4E,GAC5EC,GAAO,IAAM,CACnB,EACMC,GAAK,IAAM,GACXC,GAAQN,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,MACxEA,EAAI,WAAW,CAAC,EAAI,KAAOA,EAAI,WAAW,CAAC,EAAI,IAC1CO,GAAmBP,GAAQA,EAAI,WAAW,WAAW,EACrDQ,GAAS,OAAO,OAChBC,GAAS,CAACC,EAAKC,IAAO,CAC1B,MAAMC,EAAIF,EAAI,QAAQC,CAAE,EACpBC,EAAI,IACNF,EAAI,OAAOE,EAAG,CAAC,CAEnB,EACMC,GAAiB,OAAO,UAAU,eAClCC,GAAS,CAACb,EAAKD,IAAQa,GAAe,KAAKZ,EAAKD,CAAG,EACnDe,GAAU,MAAM,QAChBC,GAASf,GAAQgB,GAAahB,CAAG,IAAM,eACvCiB,GAASjB,GAAQgB,GAAahB,CAAG,IAAM,eACvCkB,GAAUlB,GAAQgB,GAAahB,CAAG,IAAM,gBACxCmB,GAAYnB,GAAQgB,GAAahB,CAAG,IAAM,kBAC1CoB,GAAcpB,GAAQ,OAAOA,GAAQ,WACrCqB,GAAYrB,GAAQ,OAAOA,GAAQ,SACnCsB,GAAYtB,GAAQ,OAAOA,GAAQ,SACnCuB,GAAYvB,GAAQA,IAAQ,MAAQ,OAAOA,GAAQ,SACnDwB,GAAaxB,IACTuB,GAASvB,CAAG,GAAKoB,GAAWpB,CAAG,IAAMoB,GAAWpB,EAAI,IAAI,GAAKoB,GAAWpB,EAAI,KAAK,EAErFyB,GAAiB,OAAO,UAAU,SAClCT,GAAgBU,GAAUD,GAAe,KAAKC,CAAK,EACnDC,GAAaD,GACVV,GAAaU,CAAK,EAAE,MAAM,EAAG,EAAE,EAElCE,GAAiB5B,GAAQgB,GAAahB,CAAG,IAAM,kBAC/C6B,GAAgB9B,GAAQsB,GAAStB,CAAG,GAAKA,IAAQ,OAASA,EAAI,CAAC,IAAM,KAAO,GAAK,SAASA,EAAK,EAAE,IAAMA,EACvG+B,GAAiClC,GAErC,qIACF,EAIMmC,GAAuBC,GAAO,CAClC,MAAMC,EAAwB,OAAO,OAAO,IAAI,EAChD,OAASpC,GACKoC,EAAMpC,CAAG,IACNoC,EAAMpC,CAAG,EAAImC,EAAGnC,CAAG,GAEtC,EACMqC,GAAa,OACbC,GAAWJ,GACdlC,GACQA,EAAI,QAAQqC,GAAaE,GAAMA,EAAE,MAAM,CAAC,EAAE,aAAa,CAElE,EACMC,GAAc,aACdC,GAAYP,GACflC,GAAQA,EAAI,QAAQwC,GAAa,KAAK,EAAE,aAC3C,EACME,GAAaR,GAAqBlC,GAC/BA,EAAI,OAAO,CAAC,EAAE,cAAgBA,EAAI,MAAM,CAAC,CACjD,EACK2C,GAAeT,GAClBlC,GACWA,EAAM,KAAK0C,GAAW1C,CAAG,CAAC,GAAK,EAG7C,EACM4C,GAAa,CAACf,EAAOgB,IAAa,CAAC,OAAO,GAAGhB,EAAOgB,CAAQ,EAC5DC,GAAiB,CAACC,KAAQC,IAAQ,CACtC,QAASlC,EAAI,EAAGA,EAAIiC,EAAI,OAAQjC,IAC9BiC,EAAIjC,CAAC,EAAE,GAAGkC,CAAG,CAEjB,EACMC,GAAM,CAACC,EAAKhD,EAAK2B,EAAOsB,EAAW,KAAU,CACjD,OAAO,eAAeD,EAAKhD,EAAK,CAC9B,aAAc,GACd,WAAY,GACZ,SAAAiD,EACA,MAAAtB,CAAA,CACD,CACH,EACMuB,GAAiBjD,GAAQ,CAC7B,MAAMkD,EAAI,WAAWlD,CAAG,EACxB,OAAO,MAAMkD,CAAC,EAAIlD,EAAMkD,CAC1B,EACMC,GAAYnD,GAAQ,CACxB,MAAMkD,EAAI7B,GAASrB,CAAG,EAAI,OAAOA,CAAG,EAAI,IACxC,OAAO,MAAMkD,CAAC,EAAIlD,EAAMkD,CAC1B,EACA,IAAIE,GACJ,MAAMC,GAAgB,IACbD,KAAgBA,GAAc,OAAO,WAAe,IAAc,WAAa,OAAO,KAAS,IAAc,KAAO,OAAO,OAAW,IAAc,OAAS,OAAO,OAAW,IAAc,OAAS,IAiJ/M,SAASE,GAAe5B,EAAO,CAC7B,GAAIZ,GAAQY,CAAK,EAAG,CAClB,MAAM6B,EAAM,GACZ,QAAS5C,EAAI,EAAGA,EAAIe,EAAM,OAAQf,IAAK,CACrC,MAAM6C,EAAO9B,EAAMf,CAAC,EACd8C,EAAapC,GAASmC,CAAI,EAAIE,GAAiBF,CAAI,EAAIF,GAAeE,CAAI,EAChF,GAAIC,EACF,UAAW1D,KAAO0D,EAChBF,EAAIxD,CAAG,EAAI0D,EAAW1D,CAAG,CAG/B,CACA,OAAOwD,CACT,SAAWlC,GAASK,CAAK,GAAKH,GAASG,CAAK,EAC1C,OAAOA,CAEX,CACA,MAAMiC,GAAkB,gBAClBC,GAAsB,UACtBC,GAAiB,iBACvB,SAASH,GAAiBI,EAAS,CACjC,MAAMC,EAAM,GACZ,OAAAD,EAAQ,QAAQD,GAAgB,EAAE,EAAE,MAAMF,EAAe,EAAE,QAASH,GAAS,CAC3E,GAAIA,EAAM,CACR,MAAMQ,EAAMR,EAAK,MAAMI,EAAmB,EAC1CI,EAAI,OAAS,IAAMD,EAAIC,EAAI,CAAC,EAAE,MAAM,EAAIA,EAAI,CAAC,EAAE,OACjD,CACF,CAAC,EACMD,CACT,CAcA,SAASE,GAAevC,EAAO,CAC7B,IAAI6B,EAAM,GACV,GAAIlC,GAASK,CAAK,EAChB6B,EAAM7B,UACGZ,GAAQY,CAAK,EACtB,QAASf,EAAI,EAAGA,EAAIe,EAAM,OAAQf,IAAK,CACrC,MAAM8C,EAAaQ,GAAevC,EAAMf,CAAC,CAAC,EACtC8C,IACFF,GAAOE,EAAa,IAExB,SACSlC,GAASG,CAAK,EACvB,UAAWwC,KAAQxC,EACbA,EAAMwC,CAAI,IACZX,GAAOW,EAAO,KAIpB,OAAOX,EAAI,MACb,CACA,SAASY,GAAeC,EAAO,CAC7B,GAAI,CAACA,EAAO,OAAO,KACnB,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAA,EAAUF,EAC9B,OAAIC,GAAS,CAAChD,GAASgD,CAAK,IAC1BD,EAAM,MAAQH,GAAeI,CAAK,GAEhCC,IACFF,EAAM,MAAQd,GAAegB,CAAK,GAE7BF,CACT,CAWA,MAAMG,GAAsB,8EACtBC,MAA+CD,EAAmB,EAIxE,SAASE,GAAmB/C,EAAO,CACjC,MAAO,CAAC,CAACA,GAASA,IAAU,EAC9B,CAuFA,SAASgD,GAAmBC,EAAGC,EAAG,CAChC,GAAID,EAAE,SAAWC,EAAE,OAAQ,MAAO,GAClC,IAAIC,EAAQ,GACZ,QAASlE,EAAI,EAAGkE,GAASlE,EAAIgE,EAAE,OAAQhE,IACrCkE,EAAQC,GAAWH,EAAEhE,CAAC,EAAGiE,EAAEjE,CAAC,CAAC,EAE/B,OAAOkE,CACT,CACA,SAASC,GAAWH,EAAGC,EAAG,CACxB,GAAID,IAAMC,EAAG,MAAO,GACpB,IAAIG,EAAa7D,GAAOyD,CAAC,EACrBK,EAAa9D,GAAO0D,CAAC,EACzB,GAAIG,GAAcC,EAChB,OAAOD,GAAcC,EAAaL,EAAE,YAAcC,EAAE,UAAY,GAIlE,GAFAG,EAAazD,GAASqD,CAAC,EACvBK,EAAa1D,GAASsD,CAAC,EACnBG,GAAcC,EAChB,OAAOL,IAAMC,EAIf,GAFAG,EAAajE,GAAQ6D,CAAC,EACtBK,EAAalE,GAAQ8D,CAAC,EAClBG,GAAcC,EAChB,OAAOD,GAAcC,EAAaN,GAAmBC,EAAGC,CAAC,EAAI,GAI/D,GAFAG,EAAaxD,GAASoD,CAAC,EACvBK,EAAazD,GAASqD,CAAC,EACnBG,GAAcC,EAAY,CAC5B,GAAI,CAACD,GAAc,CAACC,EAClB,MAAO,GAET,MAAMC,EAAa,OAAO,KAAKN,CAAC,EAAE,OAC5BO,EAAa,OAAO,KAAKN,CAAC,EAAE,OAClC,GAAIK,IAAeC,EACjB,MAAO,GAET,UAAWnF,KAAO4E,EAAG,CACnB,MAAMQ,EAAUR,EAAE,eAAe5E,CAAG,EAC9BqF,EAAUR,EAAE,eAAe7E,CAAG,EACpC,GAAIoF,GAAW,CAACC,GAAW,CAACD,GAAWC,GAAW,CAACN,GAAWH,EAAE5E,CAAG,EAAG6E,EAAE7E,CAAG,CAAC,EAC1E,MAAO,EAEX,CACF,CACA,OAAO,OAAO4E,CAAC,IAAM,OAAOC,CAAC,CAC/B,CACA,SAASS,GAAa5E,EAAKT,EAAK,CAC9B,OAAOS,EAAI,UAAW+C,GAASsB,GAAWtB,EAAMxD,CAAG,CAAC,CACtD,CAEA,MAAMsF,GAAStF,GACN,CAAC,EAAEA,GAAOA,EAAI,YAAiB,IAElCuF,GAAmBvF,GAChBqB,GAASrB,CAAG,EAAIA,EAAMA,GAAO,KAAO,GAAKc,GAAQd,CAAG,GAAKuB,GAASvB,CAAG,IAAMA,EAAI,WAAayB,IAAkB,CAACL,GAAWpB,EAAI,QAAQ,GAAKsF,GAAMtF,CAAG,EAAIuF,GAAgBvF,EAAI,KAAK,EAAI,KAAK,UAAUA,EAAKwF,GAAU,CAAC,EAAI,OAAOxF,CAAG,EAErOwF,GAAW,CAACC,EAAMzF,IAClBsF,GAAMtF,CAAG,EACJwF,GAASC,EAAMzF,EAAI,KAAK,EACtBe,GAAMf,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,SAAS,EAAE,OACvC,CAAC0F,EAAS,CAAC3F,EAAK4F,CAAI,EAAGhF,KACrB+E,EAAQE,GAAgB7F,EAAKY,CAAC,EAAI,KAAK,EAAIgF,EACpCD,GAET,EAAC,CACH,EAEOzE,GAAMjB,CAAG,EACX,CACL,CAAC,OAAOA,EAAI,IAAI,GAAG,EAAG,CAAC,GAAGA,EAAI,QAAQ,EAAE,IAAK6F,GAAMD,GAAgBC,CAAC,CAAC,GAE9DvE,GAAStB,CAAG,EACd4F,GAAgB5F,CAAG,EACjBuB,GAASvB,CAAG,GAAK,CAACc,GAAQd,CAAG,GAAK,CAAC4B,GAAc5B,CAAG,EACtD,OAAOA,CAAG,EAEZA,EAEH4F,GAAkB,CAACC,EAAGlF,EAAI,KAAO,CACrC,IAAImF,EACJ,OAGExE,GAASuE,CAAC,EAAI,WAAWC,EAAKD,EAAE,cAAgB,KAAOC,EAAKnF,CAAC,IAAMkF,CAEvE,ECxfA,IAAIE,GACJ,MAAMC,EAAY,CAChB,YAAYC,EAAW,GAAO,CAC5B,KAAK,SAAWA,EAIhB,KAAK,QAAU,GAIf,KAAK,IAAM,EAIX,KAAK,QAAU,GAIf,KAAK,SAAW,GAChB,KAAK,UAAY,GACjB,KAAK,OAASF,GACV,CAACE,GAAYF,KACf,KAAK,OAASA,GAAkB,SAAWA,GAAkB,OAAS,KAAK,KACzE,MACE,EAER,CACA,IAAI,QAAS,CACX,OAAO,KAAK,OACd,CACA,OAAQ,CACN,GAAI,KAAK,QAAS,CAChB,KAAK,UAAY,GACjB,IAAIpF,EAAGuF,EACP,GAAI,KAAK,OACP,IAAKvF,EAAI,EAAGuF,EAAI,KAAK,OAAO,OAAQvF,EAAIuF,EAAGvF,IACzC,KAAK,OAAOA,CAAC,EAAE,QAGnB,IAAKA,EAAI,EAAGuF,EAAI,KAAK,QAAQ,OAAQvF,EAAIuF,EAAGvF,IAC1C,KAAK,QAAQA,CAAC,EAAE,OAEpB,CACF,CAIA,QAAS,CACP,GAAI,KAAK,SACH,KAAK,UAAW,CAClB,KAAK,UAAY,GACjB,IAAIA,EAAGuF,EACP,GAAI,KAAK,OACP,IAAKvF,EAAI,EAAGuF,EAAI,KAAK,OAAO,OAAQvF,EAAIuF,EAAGvF,IACzC,KAAK,OAAOA,CAAC,EAAE,SAGnB,IAAKA,EAAI,EAAGuF,EAAI,KAAK,QAAQ,OAAQvF,EAAIuF,EAAGvF,IAC1C,KAAK,QAAQA,CAAC,EAAE,QAEpB,CAEJ,CACA,IAAIqB,EAAI,CACN,GAAI,KAAK,QAAS,CAChB,MAAMmE,EAAqBJ,GAC3B,GAAI,CACF,OAAAA,GAAoB,KACb/D,EAAA,CACT,SACE+D,GAAoBI,CACtB,CACF,CAGF,CAKA,IAAK,CACC,EAAE,KAAK,MAAQ,IACjB,KAAK,UAAYJ,GACjBA,GAAoB,KAExB,CAKA,KAAM,CACA,KAAK,IAAM,GAAK,EAAE,KAAK,MAAQ,IACjCA,GAAoB,KAAK,UACzB,KAAK,UAAY,OAErB,CACA,KAAKK,EAAY,CACf,GAAI,KAAK,QAAS,CAChB,KAAK,QAAU,GACf,IAAIzF,EAAGuF,EACP,IAAKvF,EAAI,EAAGuF,EAAI,KAAK,QAAQ,OAAQvF,EAAIuF,EAAGvF,IAC1C,KAAK,QAAQA,CAAC,EAAE,OAGlB,IADA,KAAK,QAAQ,OAAS,EACjBA,EAAI,EAAGuF,EAAI,KAAK,SAAS,OAAQvF,EAAIuF,EAAGvF,IAC3C,KAAK,SAASA,CAAC,IAGjB,GADA,KAAK,SAAS,OAAS,EACnB,KAAK,OAAQ,CACf,IAAKA,EAAI,EAAGuF,EAAI,KAAK,OAAO,OAAQvF,EAAIuF,EAAGvF,IACzC,KAAK,OAAOA,CAAC,EAAE,KAAK,EAAI,EAE1B,KAAK,OAAO,OAAS,CACvB,CACA,GAAI,CAAC,KAAK,UAAY,KAAK,QAAU,CAACyF,EAAY,CAChD,MAAMC,EAAO,KAAK,OAAO,OAAO,MAC5BA,GAAQA,IAAS,OACnB,KAAK,OAAO,OAAO,KAAK,KAAK,EAAIA,EACjCA,EAAK,MAAQ,KAAK,MAEtB,CACA,KAAK,OAAS,MAChB,CACF,CACF,CACA,SAASC,GAAYL,EAAU,CAC7B,OAAO,IAAID,GAAYC,CAAQ,CACjC,CACA,SAASM,IAAkB,CACzB,OAAOR,EACT,CACA,SAASS,GAAexE,EAAIyE,EAAe,GAAO,CAC5CV,IACFA,GAAkB,SAAS,KAAK/D,CAAE,CAMtC,CAEA,IAAI0E,GAmBJ,MAAMC,OAAyC,QAC/C,MAAMC,EAAe,CACnB,YAAY5E,EAAI,CACd,KAAK,GAAKA,EAIV,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,EAIb,KAAK,KAAO,OAIZ,KAAK,QAAU,OACf,KAAK,UAAY,OACb+D,IAAqBA,GAAkB,QACzCA,GAAkB,QAAQ,KAAK,IAAI,CAEvC,CACA,OAAQ,CACN,KAAK,OAAS,EAChB,CACA,QAAS,CACH,KAAK,MAAQ,KACf,KAAK,OAAS,IACVY,GAAmB,IAAI,IAAI,IAC7BA,GAAmB,OAAO,IAAI,EAC9B,KAAK,WAGX,CAIA,QAAS,CACH,KAAK,MAAQ,GAAK,EAAE,KAAK,MAAQ,KAG/B,KAAK,MAAQ,GACjBE,GAAM,IAAI,CAEd,CACA,KAAM,CACJ,GAAI,EAAE,KAAK,MAAQ,GACjB,OAAO,KAAK,KAEd,KAAK,OAAS,EACdC,GAAc,IAAI,EAClBC,GAAY,IAAI,EAChB,MAAMC,EAAaN,GACbO,EAAkBC,GACxBR,GAAY,KACZQ,GAAc,GACd,GAAI,CACF,OAAO,KAAK,IACd,SAMEC,GAAY,IAAI,EAChBT,GAAYM,EACZE,GAAcD,EACd,KAAK,OAAS,EAChB,CACF,CACA,MAAO,CACL,GAAI,KAAK,MAAQ,EAAG,CAClB,QAASG,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QAC3CC,GAAUD,CAAI,EAEhB,KAAK,KAAO,KAAK,SAAW,OAC5BN,GAAc,IAAI,EAClB,KAAK,QAAU,KAAK,SACpB,KAAK,OAAS,EAChB,CACF,CACA,SAAU,CACJ,KAAK,MAAQ,GACfH,GAAmB,IAAI,IAAI,EAClB,KAAK,UACd,KAAK,YAEL,KAAK,YAET,CAIA,YAAa,CACPW,GAAQ,IAAI,GACd,KAAK,KAET,CACA,IAAI,OAAQ,CACV,OAAOA,GAAQ,IAAI,CACrB,CACF,CACA,IAAIC,GAAa,EACbC,GACAC,GACJ,SAASZ,GAAMa,EAAKC,EAAa,GAAO,CAEtC,GADAD,EAAI,OAAS,EACTC,EAAY,CACdD,EAAI,KAAOD,GACXA,GAAkBC,EAClB,MACF,CACAA,EAAI,KAAOF,GACXA,GAAaE,CACf,CACA,SAASE,IAAa,CACpBL,IACF,CACA,SAASM,IAAW,CAClB,GAAI,EAAEN,GAAa,EACjB,OAEF,GAAIE,GAAiB,CACnB,IAAIK,EAAIL,GAER,IADAA,GAAkB,OACXK,GAAG,CACR,MAAMC,EAAOD,EAAE,KACfA,EAAE,KAAO,OACTA,EAAE,OAAS,GACXA,EAAIC,CACN,CACF,CACA,IAAIC,EACJ,KAAOR,IAAY,CACjB,IAAIM,EAAIN,GAER,IADAA,GAAa,OACNM,GAAG,CACR,MAAMC,EAAOD,EAAE,KAGf,GAFAA,EAAE,KAAO,OACTA,EAAE,OAAS,GACPA,EAAE,MAAQ,EACZ,GAAI,CAEFA,EAAE,SACJ,OAASG,EAAK,CACPD,IAAOA,EAAQC,EACtB,CAEFH,EAAIC,CACN,CACF,CACA,GAAIC,EAAO,MAAMA,CACnB,CACA,SAASjB,GAAYW,EAAK,CACxB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1CA,EAAK,QAAU,GACfA,EAAK,eAAiBA,EAAK,IAAI,WAC/BA,EAAK,IAAI,WAAaA,CAE1B,CACA,SAASD,GAAYO,EAAK,CACxB,IAAIQ,EACAC,EAAOT,EAAI,SACXN,EAAOe,EACX,KAAOf,GAAM,CACX,MAAMgB,EAAOhB,EAAK,QACdA,EAAK,UAAY,IACfA,IAASe,IAAMA,EAAOC,GAC1Bf,GAAUD,CAAI,EACdiB,GAAUjB,CAAI,GAEdc,EAAOd,EAETA,EAAK,IAAI,WAAaA,EAAK,eAC3BA,EAAK,eAAiB,OACtBA,EAAOgB,CACT,CACAV,EAAI,KAAOQ,EACXR,EAAI,SAAWS,CACjB,CACA,SAASb,GAAQI,EAAK,CACpB,QAASN,EAAOM,EAAI,KAAMN,EAAMA,EAAOA,EAAK,QAC1C,GAAIA,EAAK,IAAI,UAAYA,EAAK,SAAWA,EAAK,IAAI,WAAakB,GAAgBlB,EAAK,IAAI,QAAQ,GAAKA,EAAK,IAAI,UAAYA,EAAK,SAC7H,MAAO,GAGX,MAAI,EAAAM,EAAI,MAIV,CACA,SAASY,GAAgBC,EAAU,CASjC,GARIA,EAAS,MAAQ,GAAK,EAAEA,EAAS,MAAQ,MAG7CA,EAAS,OAAS,IACdA,EAAS,gBAAkBC,MAG/BD,EAAS,cAAgBC,GACrB,CAACD,EAAS,OAASA,EAAS,MAAQ,MAAQ,CAACA,EAAS,MAAQ,CAACA,EAAS,QAAU,CAACjB,GAAQiB,CAAQ,IACrG,OAEFA,EAAS,OAAS,EAClB,MAAME,EAAMF,EAAS,IACfG,EAAUhC,GACVO,EAAkBC,GACxBR,GAAY6B,EACZrB,GAAc,GACd,GAAI,CACFH,GAAYwB,CAAQ,EACpB,MAAM7G,EAAQ6G,EAAS,GAAGA,EAAS,MAAM,GACrCE,EAAI,UAAY,GAAKhG,GAAWf,EAAO6G,EAAS,MAAM,KACxDA,EAAS,OAAS,IAClBA,EAAS,OAAS7G,EAClB+G,EAAI,UAER,OAASR,EAAK,CACZ,MAAAQ,EAAI,UACER,CACR,SACEvB,GAAYgC,EACZxB,GAAcD,EACdE,GAAYoB,CAAQ,EACpBA,EAAS,OAAS,EACpB,CACF,CACA,SAASlB,GAAUD,EAAMuB,EAAO,GAAO,CACrC,KAAM,CAAE,IAAAF,EAAK,QAAAC,EAAS,QAAAE,CAAA,EAAYxB,EAYlC,GAXIsB,IACFA,EAAQ,QAAUE,EAClBxB,EAAK,QAAU,QAEbwB,IACFA,EAAQ,QAAUF,EAClBtB,EAAK,QAAU,QAKbqB,EAAI,OAASrB,IACfqB,EAAI,KAAOC,EACP,CAACA,GAAWD,EAAI,UAAU,CAC5BA,EAAI,SAAS,OAAS,GACtB,QAASvC,EAAIuC,EAAI,SAAS,KAAMvC,EAAGA,EAAIA,EAAE,QACvCmB,GAAUnB,EAAG,EAAI,CAErB,CAEE,CAACyC,GAAQ,CAAC,EAAEF,EAAI,IAAMA,EAAI,KAC5BA,EAAI,IAAI,OAAOA,EAAI,GAAG,CAE1B,CACA,SAASJ,GAAUjB,EAAM,CACvB,KAAM,CAAE,QAAAyB,EAAS,QAAAC,CAAA,EAAY1B,EACzByB,IACFA,EAAQ,QAAUC,EAClB1B,EAAK,QAAU,QAEb0B,IACFA,EAAQ,QAAUD,EAClBzB,EAAK,QAAU,OAEnB,CAsBA,IAAIF,GAAc,GAClB,MAAM6B,GAAa,GACnB,SAASC,IAAgB,CACvBD,GAAW,KAAK7B,EAAW,EAC3BA,GAAc,EAChB,CAKA,SAAS+B,IAAgB,CACvB,MAAM5C,EAAO0C,GAAW,MACxB7B,GAAcb,IAAS,OAAS,GAAOA,CACzC,CAUA,SAASS,GAAc,EAAG,CACxB,KAAM,CAAE,QAAAoC,GAAY,EAEpB,GADA,EAAE,QAAU,OACRA,EAAS,CACX,MAAMR,EAAUhC,GAChBA,GAAY,OACZ,GAAI,CACFwC,EAAA,CACF,SACExC,GAAYgC,CACd,CACF,CACF,CAEA,IAAIF,GAAgB,EACpB,MAAMW,EAAK,CACT,YAAYzB,EAAKe,EAAK,CACpB,KAAK,IAAMf,EACX,KAAK,IAAMe,EACX,KAAK,QAAUA,EAAI,QACnB,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,QAAU,KAAK,eAAiB,MACpF,CACF,CACA,MAAMW,EAAI,CAER,YAAYb,EAAU,CACpB,KAAK,SAAWA,EAChB,KAAK,QAAU,EAIf,KAAK,WAAa,OAIlB,KAAK,KAAO,OAIZ,KAAK,IAAM,OACX,KAAK,IAAM,OAIX,KAAK,GAAK,EAIV,KAAK,SAAW,EAIlB,CACA,MAAMc,EAAW,CACf,GAAI,CAAC3C,IAAa,CAACQ,IAAeR,KAAc,KAAK,SACnD,OAEF,IAAIU,EAAO,KAAK,WAChB,GAAIA,IAAS,QAAUA,EAAK,MAAQV,GAClCU,EAAO,KAAK,WAAa,IAAI+B,GAAKzC,GAAW,IAAI,EAC5CA,GAAU,MAGbU,EAAK,QAAUV,GAAU,SACzBA,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,GAJrBV,GAAU,KAAOA,GAAU,SAAWU,EAMxCkC,GAAOlC,CAAI,UACFA,EAAK,UAAY,KAC1BA,EAAK,QAAU,KAAK,QAChBA,EAAK,SAAS,CAChB,MAAMW,EAAOX,EAAK,QAClBW,EAAK,QAAUX,EAAK,QAChBA,EAAK,UACPA,EAAK,QAAQ,QAAUW,GAEzBX,EAAK,QAAUV,GAAU,SACzBU,EAAK,QAAU,OACfV,GAAU,SAAS,QAAUU,EAC7BV,GAAU,SAAWU,EACjBV,GAAU,OAASU,IACrBV,GAAU,KAAOqB,EAErB,CAYF,OAAOX,CACT,CACA,QAAQiC,EAAW,CACjB,KAAK,UACLb,KACA,KAAK,OAAOa,CAAS,CACvB,CACA,OAAOA,EAAW,CAChBzB,GAAA,EACA,GAAI,CAeF,QAASR,EAAO,KAAK,KAAMA,EAAMA,EAAOA,EAAK,QACvCA,EAAK,IAAI,UAEXA,EAAK,IAAI,IAAI,QAGnB,SACES,GAAA,CACF,CACF,CACF,CACA,SAASyB,GAAOlC,EAAM,CAEpB,GADAA,EAAK,IAAI,KACLA,EAAK,IAAI,MAAQ,EAAG,CACtB,MAAMmB,EAAWnB,EAAK,IAAI,SAC1B,GAAImB,GAAY,CAACnB,EAAK,IAAI,KAAM,CAC9BmB,EAAS,OAAS,GAClB,QAASrC,EAAIqC,EAAS,KAAMrC,EAAGA,EAAIA,EAAE,QACnCoD,GAAOpD,CAAC,CAEZ,CACA,MAAMqD,EAAcnC,EAAK,IAAI,KACzBmC,IAAgBnC,IAClBA,EAAK,QAAUmC,EACXA,MAAyB,QAAUnC,IAKzCA,EAAK,IAAI,KAAOA,CAClB,CACF,CACA,MAAMoC,OAAgC,QAChCC,GAAc,OAC6C,EACjE,EACMC,GAAsB,OACuC,EACnE,EACMC,GAAoB,OACsC,EAChE,EACA,SAASC,GAAMC,EAAQC,EAAM/J,EAAK,CAChC,GAAImH,IAAeR,GAAW,CAC5B,IAAIqD,EAAUP,GAAU,IAAIK,CAAM,EAC7BE,GACHP,GAAU,IAAIK,EAAQE,EAA0B,IAAI,GAAK,EAE3D,IAAItB,EAAMsB,EAAQ,IAAIhK,CAAG,EACpB0I,IACHsB,EAAQ,IAAIhK,EAAK0I,EAAM,IAAIW,EAAK,EAChCX,EAAI,IAAMsB,EACVtB,EAAI,IAAM1I,GASV0I,EAAI,OAER,CACF,CACA,SAASuB,GAAQH,EAAQC,EAAM/J,EAAKkK,EAAUvH,EAAUwH,EAAW,CACjE,MAAMH,EAAUP,GAAU,IAAIK,CAAM,EACpC,GAAI,CAACE,EAAS,CACZvB,KACA,MACF,CACA,MAAM2B,EAAO1B,GAAQ,CACfA,GAWAA,EAAI,SAGV,EAEA,GADAb,GAAA,EACIkC,IAAS,QACXC,EAAQ,QAAQI,CAAG,MACd,CACL,MAAMC,EAAgBtJ,GAAQ+I,CAAM,EAC9BQ,EAAeD,GAAiBvI,GAAa9B,CAAG,EACtD,GAAIqK,GAAiBrK,IAAQ,SAAU,CACrC,MAAMuK,EAAY,OAAOL,CAAQ,EACjCF,EAAQ,QAAQ,CAACtB,EAAK8B,IAAS,EACzBA,IAAS,UAAYA,IAASZ,IAAqB,CAACrI,GAASiJ,CAAI,GAAKA,GAAQD,IAChFH,EAAI1B,CAAG,CAEX,CAAC,CACH,KAOE,SANI1I,IAAQ,QAAUgK,EAAQ,IAAI,MAAM,IACtCI,EAAIJ,EAAQ,IAAIhK,CAAG,CAAC,EAElBsK,GACFF,EAAIJ,EAAQ,IAAIJ,EAAiB,CAAC,EAE5BG,EAAA,CACN,IAAK,MACEM,EAKMC,GACTF,EAAIJ,EAAQ,IAAI,QAAQ,CAAC,GALzBI,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EACxB1I,GAAM8I,CAAM,GACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC,GAKxC,MACF,IAAK,SACEU,IACHD,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EACxB1I,GAAM8I,CAAM,GACdM,EAAIJ,EAAQ,IAAIL,EAAmB,CAAC,GAGxC,MACF,IAAK,MACC3I,GAAM8I,CAAM,GACdM,EAAIJ,EAAQ,IAAIN,EAAW,CAAC,EAE9B,MAGR,CACA5B,GAAA,CACF,CACA,SAAS2C,GAAmBC,EAAQ1K,EAAK,CACvC,MAAM2K,EAASlB,GAAU,IAAIiB,CAAM,EACnC,OAAOC,GAAUA,EAAO,IAAI3K,CAAG,CACjC,CAEA,SAAS4K,GAAkBC,EAAO,CAChC,MAAMC,EAAMC,GAAMF,CAAK,EACvB,OAAIC,IAAQD,EAAcC,GAC1BjB,GAAMiB,EAAK,UAAWlB,EAAiB,EAChCoB,GAAUH,CAAK,EAAIC,EAAMA,EAAI,IAAIG,EAAU,EACpD,CACA,SAASC,GAAiBxK,EAAK,CAC7B,OAAAmJ,GAAMnJ,EAAMqK,GAAMrK,CAAG,EAAG,UAAWkJ,EAAiB,EAC7ClJ,CACT,CACA,MAAMyK,GAAwB,CAC5B,UAAW,KACX,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAOC,GAAS,KAAM,OAAO,SAAUH,EAAU,CACnD,EACA,UAAUI,EAAM,CACd,OAAOT,GAAkB,IAAI,EAAE,OAC7B,GAAGS,EAAK,IAAKC,GAAMvK,GAAQuK,CAAC,EAAIV,GAAkBU,CAAC,EAAIA,CAAC,EAE5D,EACA,SAAU,CACR,OAAOF,GAAS,KAAM,UAAYzJ,IAChCA,EAAM,CAAC,EAAIsJ,GAAWtJ,EAAM,CAAC,CAAC,EACvBA,EACR,CACH,EACA,MAAMM,EAAIsJ,EAAS,CACjB,OAAOC,GAAM,KAAM,QAASvJ,EAAIsJ,EAAS,OAAQ,SAAS,CAC5D,EACA,OAAOtJ,EAAIsJ,EAAS,CAClB,OAAOC,GAAM,KAAM,SAAUvJ,EAAIsJ,EAAUzF,GAAMA,EAAE,IAAImF,EAAU,EAAG,SAAS,CAC/E,EACA,KAAKhJ,EAAIsJ,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQvJ,EAAIsJ,EAASN,GAAY,SAAS,CAC/D,EACA,UAAUhJ,EAAIsJ,EAAS,CACrB,OAAOC,GAAM,KAAM,YAAavJ,EAAIsJ,EAAS,OAAQ,SAAS,CAChE,EACA,SAAStJ,EAAIsJ,EAAS,CACpB,OAAOC,GAAM,KAAM,WAAYvJ,EAAIsJ,EAASN,GAAY,SAAS,CACnE,EACA,cAAchJ,EAAIsJ,EAAS,CACzB,OAAOC,GAAM,KAAM,gBAAiBvJ,EAAIsJ,EAAS,OAAQ,SAAS,CACpE,EAEA,QAAQtJ,EAAIsJ,EAAS,CACnB,OAAOC,GAAM,KAAM,UAAWvJ,EAAIsJ,EAAS,OAAQ,SAAS,CAC9D,EACA,YAAYF,EAAM,CAChB,OAAOI,GAAY,KAAM,WAAYJ,CAAI,CAC3C,EACA,WAAWA,EAAM,CACf,OAAOI,GAAY,KAAM,UAAWJ,CAAI,CAC1C,EACA,KAAKK,EAAW,CACd,OAAOd,GAAkB,IAAI,EAAE,KAAKc,CAAS,CAC/C,EAEA,eAAeL,EAAM,CACnB,OAAOI,GAAY,KAAM,cAAeJ,CAAI,CAC9C,EACA,IAAIpJ,EAAIsJ,EAAS,CACf,OAAOC,GAAM,KAAM,MAAOvJ,EAAIsJ,EAAS,OAAQ,SAAS,CAC1D,EACA,KAAM,CACJ,OAAOI,GAAW,KAAM,KAAK,CAC/B,EACA,QAAQN,EAAM,CACZ,OAAOM,GAAW,KAAM,OAAQN,CAAI,CACtC,EACA,OAAOpJ,KAAOoJ,EAAM,CAClB,OAAOO,GAAO,KAAM,SAAU3J,EAAIoJ,CAAI,CACxC,EACA,YAAYpJ,KAAOoJ,EAAM,CACvB,OAAOO,GAAO,KAAM,cAAe3J,EAAIoJ,CAAI,CAC7C,EACA,OAAQ,CACN,OAAOM,GAAW,KAAM,OAAO,CACjC,EAEA,KAAK1J,EAAIsJ,EAAS,CAChB,OAAOC,GAAM,KAAM,OAAQvJ,EAAIsJ,EAAS,OAAQ,SAAS,CAC3D,EACA,UAAUF,EAAM,CACd,OAAOM,GAAW,KAAM,SAAUN,CAAI,CACxC,EACA,YAAa,CACX,OAAOT,GAAkB,IAAI,EAAE,YACjC,EACA,SAASiB,EAAU,CACjB,OAAOjB,GAAkB,IAAI,EAAE,SAASiB,CAAQ,CAClD,EACA,aAAaR,EAAM,CACjB,OAAOT,GAAkB,IAAI,EAAE,UAAU,GAAGS,CAAI,CAClD,EACA,WAAWA,EAAM,CACf,OAAOM,GAAW,KAAM,UAAWN,CAAI,CACzC,EACA,QAAS,CACP,OAAOD,GAAS,KAAM,SAAUH,EAAU,CAC5C,CACF,EACA,SAASG,GAASU,EAAMC,EAAQC,EAAW,CACzC,MAAMtL,EAAMwK,GAAiBY,CAAI,EAC3BG,EAAOvL,EAAIqL,CAAM,IACvB,OAAIrL,IAAQoL,GAAQ,CAACd,GAAUc,CAAI,IACjCG,EAAK,MAAQA,EAAK,KAClBA,EAAK,KAAO,IAAM,CAChB,MAAMC,EAASD,EAAK,QACpB,OAAKC,EAAO,OACVA,EAAO,MAAQF,EAAUE,EAAO,KAAK,GAEhCA,CACT,GAEKD,CACT,CACA,MAAME,GAAa,MAAM,UACzB,SAASX,GAAMM,EAAMC,EAAQ9J,EAAIsJ,EAASa,EAAcf,EAAM,CAC5D,MAAM3K,EAAMwK,GAAiBY,CAAI,EAC3BO,EAAY3L,IAAQoL,GAAQ,CAACd,GAAUc,CAAI,EAC3CQ,EAAW5L,EAAIqL,CAAM,EAC3B,GAAIO,IAAaH,GAAWJ,CAAM,EAAG,CACnC,MAAMQ,EAAUD,EAAS,MAAMR,EAAMT,CAAI,EACzC,OAAOgB,EAAYpB,GAAWsB,CAAO,EAAIA,CAC3C,CACA,IAAIC,EAAYvK,EACZvB,IAAQoL,IACNO,EACFG,EAAY,SAAS/I,EAAMgJ,EAAO,CAChC,OAAOxK,EAAG,KAAK,KAAMgJ,GAAWxH,CAAI,EAAGgJ,EAAOX,CAAI,CACpD,EACS7J,EAAG,OAAS,IACrBuK,EAAY,SAAS/I,EAAMgJ,EAAO,CAChC,OAAOxK,EAAG,KAAK,KAAMwB,EAAMgJ,EAAOX,CAAI,CACxC,IAGJ,MAAMI,EAASI,EAAS,KAAK5L,EAAK8L,EAAWjB,CAAO,EACpD,OAAOc,GAAaD,EAAeA,EAAaF,CAAM,EAAIA,CAC5D,CACA,SAASN,GAAOE,EAAMC,EAAQ9J,EAAIoJ,EAAM,CACtC,MAAM3K,EAAMwK,GAAiBY,CAAI,EACjC,IAAIU,EAAYvK,EAChB,OAAIvB,IAAQoL,IACLd,GAAUc,CAAI,EAIR7J,EAAG,OAAS,IACrBuK,EAAY,SAASE,EAAKjJ,EAAMgJ,EAAO,CACrC,OAAOxK,EAAG,KAAK,KAAMyK,EAAKjJ,EAAMgJ,EAAOX,CAAI,CAC7C,GANAU,EAAY,SAASE,EAAKjJ,EAAMgJ,EAAO,CACrC,OAAOxK,EAAG,KAAK,KAAMyK,EAAKzB,GAAWxH,CAAI,EAAGgJ,EAAOX,CAAI,CACzD,GAOGpL,EAAIqL,CAAM,EAAES,EAAW,GAAGnB,CAAI,CACvC,CACA,SAASI,GAAYK,EAAMC,EAAQV,EAAM,CACvC,MAAM3K,EAAMqK,GAAMe,CAAI,EACtBjC,GAAMnJ,EAAK,UAAWkJ,EAAiB,EACvC,MAAMpG,EAAM9C,EAAIqL,CAAM,EAAE,GAAGV,CAAI,EAC/B,OAAK7H,IAAQ,IAAMA,IAAQ,KAAUmJ,GAAQtB,EAAK,CAAC,CAAC,GAClDA,EAAK,CAAC,EAAIN,GAAMM,EAAK,CAAC,CAAC,EAChB3K,EAAIqL,CAAM,EAAE,GAAGV,CAAI,GAErB7H,CACT,CACA,SAASmI,GAAWG,EAAMC,EAAQV,EAAO,GAAI,CAC3CpC,GAAA,EACApB,GAAA,EACA,MAAMrE,EAAMuH,GAAMe,CAAI,EAAEC,CAAM,EAAE,MAAMD,EAAMT,CAAI,EAChD,OAAAvD,GAAA,EACAoB,GAAA,EACO1F,CACT,CAEA,MAAMoJ,MAA6C,6BAA6B,EAC1EC,GAAiB,IAAI,IACT,OAAO,oBAAoB,MAAM,EAAE,OAAQ7M,GAAQA,IAAQ,aAAeA,IAAQ,QAAQ,EAAE,IAAKA,GAAQ,OAAOA,CAAG,CAAC,EAAE,OAAOuB,EAAQ,CACvJ,EACA,SAASV,GAAeb,EAAK,CACtBuB,GAASvB,CAAG,IAAGA,EAAM,OAAOA,CAAG,GACpC,MAAMgD,EAAM+H,GAAM,IAAI,EACtB,OAAAlB,GAAM7G,EAAK,MAAOhD,CAAG,EACdgD,EAAI,eAAehD,CAAG,CAC/B,CACA,MAAM8M,EAAoB,CACxB,YAAYC,EAAc,GAAOC,EAAa,GAAO,CACnD,KAAK,YAAcD,EACnB,KAAK,WAAaC,CACpB,CACA,IAAIlD,EAAQ9J,EAAKiN,EAAU,CACzB,GAAIjN,IAAQ,WAAY,OAAO8J,EAAO,SACtC,MAAMoD,EAAc,KAAK,YAAaC,EAAa,KAAK,WACxD,GAAInN,IAAQ,iBACV,MAAO,CAACkN,EACV,GAAWlN,IAAQ,iBACjB,OAAOkN,EACT,GAAWlN,IAAQ,gBACjB,OAAOmN,EACT,GAAWnN,IAAQ,UACjB,OAAIiN,KAAcC,EAAcC,EAAaC,GAAqBC,GAAcF,EAAaG,GAAqBC,IAAa,IAAIzD,CAAM,GAEzI,OAAO,eAAeA,CAAM,IAAM,OAAO,eAAemD,CAAQ,EACvDnD,EAET,OAEF,MAAMO,EAAgBtJ,GAAQ+I,CAAM,EACpC,GAAI,CAACoD,EAAa,CAChB,IAAIjL,EACJ,GAAIoI,IAAkBpI,EAAKkJ,GAAsBnL,CAAG,GAClD,OAAOiC,EAET,GAAIjC,IAAQ,iBACV,OAAOa,EAEX,CACA,MAAM2C,EAAM,QAAQ,IAClBsG,EACA9J,EAIAuF,GAAMuE,CAAM,EAAIA,EAASmD,CAAA,EAQ3B,IANI1L,GAASvB,CAAG,EAAI6M,GAAe,IAAI7M,CAAG,EAAI4M,GAAmB5M,CAAG,KAG/DkN,GACHrD,GAAMC,EAAQ,MAAO9J,CAAG,EAEtBmN,GACF,OAAO3J,EAET,GAAI+B,GAAM/B,CAAG,EAAG,CACd,MAAM7B,EAAQ0I,GAAiBvI,GAAa9B,CAAG,EAAIwD,EAAMA,EAAI,MAC7D,OAAO0J,GAAe1L,GAASG,CAAK,EAAI6L,GAAS7L,CAAK,EAAIA,CAC5D,CACA,OAAIH,GAASgC,CAAG,EACP0J,EAAcM,GAAShK,CAAG,EAAIiK,GAASjK,CAAG,EAE5CA,CACT,CACF,CACA,MAAMkK,WAA+BZ,EAAoB,CACvD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAOA,CAAU,CACzB,CACA,IAAIrD,EAAQ9J,EAAK2B,EAAOsL,EAAU,CAChC,IAAItK,EAAWmH,EAAO9J,CAAG,EACzB,GAAI,CAAC,KAAK,WAAY,CACpB,MAAM2N,EAAqBC,GAAWjL,CAAQ,EAK9C,GAJI,CAACqI,GAAUrJ,CAAK,GAAK,CAACiM,GAAWjM,CAAK,IACxCgB,EAAWoI,GAAMpI,CAAQ,EACzBhB,EAAQoJ,GAAMpJ,CAAK,GAEjB,CAACZ,GAAQ+I,CAAM,GAAKvE,GAAM5C,CAAQ,GAAK,CAAC4C,GAAM5D,CAAK,EACrD,OAAIgM,IASFhL,EAAS,MAAQhB,GACV,EAGb,CACA,MAAMkM,EAAS9M,GAAQ+I,CAAM,GAAKhI,GAAa9B,CAAG,EAAI,OAAOA,CAAG,EAAI8J,EAAO,OAAShJ,GAAOgJ,EAAQ9J,CAAG,EAChGkM,EAAS,QAAQ,IACrBpC,EACA9J,EACA2B,EACA4D,GAAMuE,CAAM,EAAIA,EAASmD,CAAA,EAE3B,OAAInD,IAAWiB,GAAMkC,CAAQ,IACtBY,EAEMnL,GAAWf,EAAOgB,CAAQ,GACnCsH,GAAQH,EAAQ,MAAO9J,EAAK2B,CAAe,EAF3CsI,GAAQH,EAAQ,MAAO9J,EAAK2B,CAAK,GAK9BuK,CACT,CACA,eAAepC,EAAQ9J,EAAK,CAC1B,MAAM6N,EAAS/M,GAAOgJ,EAAQ9J,CAAG,EAChB8J,EAAO9J,CAAG,EAC3B,MAAMkM,EAAS,QAAQ,eAAepC,EAAQ9J,CAAG,EACjD,OAAIkM,GAAU2B,GACZ5D,GAAQH,EAAQ,SAAU9J,EAAK,MAAgB,EAE1CkM,CACT,CACA,IAAIpC,EAAQ9J,EAAK,CACf,MAAMkM,EAAS,QAAQ,IAAIpC,EAAQ9J,CAAG,EACtC,OAAI,CAACuB,GAASvB,CAAG,GAAK,CAAC6M,GAAe,IAAI7M,CAAG,IAC3C6J,GAAMC,EAAQ,MAAO9J,CAAG,EAEnBkM,CACT,CACA,QAAQpC,EAAQ,CACd,OAAAD,GACEC,EACA,UACA/I,GAAQ+I,CAAM,EAAI,SAAWJ,EAAA,EAExB,QAAQ,QAAQI,CAAM,CAC/B,CACF,CACA,MAAMgE,WAAgChB,EAAoB,CACxD,YAAYK,EAAa,GAAO,CAC9B,MAAM,GAAMA,CAAU,CACxB,CACA,IAAIrD,EAAQ9J,EAAK,CAOf,MAAO,EACT,CACA,eAAe8J,EAAQ9J,EAAK,CAO1B,MAAO,EACT,CACF,CACA,MAAM+N,OAAsCL,GACtCM,OAAuCF,GACvCG,GAA0C,IAAIP,GAAuB,EAAI,EACzEQ,GAA0C,IAAIJ,GAAwB,EAAI,EAE1EK,GAAaxM,GAAUA,EACvByM,GAAYtI,GAAM,QAAQ,eAAeA,CAAC,EAChD,SAASuI,GAAqBtC,EAAQmB,EAAaC,EAAY,CAC7D,OAAO,YAAY9B,EAAM,CACvB,MAAMvB,EAAS,KAAK,QACdwE,EAAYvD,GAAMjB,CAAM,EACxByE,EAAcvN,GAAMsN,CAAS,EAC7BE,EAASzC,IAAW,WAAaA,IAAW,OAAO,UAAYwC,EAC/DE,EAAY1C,IAAW,QAAUwC,EACjCG,EAAgB5E,EAAOiC,CAAM,EAAE,GAAGV,CAAI,EACtCsD,EAAOxB,EAAagB,GAAYjB,EAAc0B,GAAa3D,GACjE,OAACiC,GAAerD,GACdyE,EACA,UACAG,EAAY9E,GAAsBD,EAAA,EAE7B,CAEL,MAAO,CACL,KAAM,CAAE,MAAA/H,EAAO,KAAAkN,GAASH,EAAc,OACtC,OAAOG,EAAO,CAAE,MAAAlN,EAAO,KAAAkN,GAAS,CAC9B,MAAOL,EAAS,CAACG,EAAKhN,EAAM,CAAC,CAAC,EAAGgN,EAAKhN,EAAM,CAAC,CAAC,CAAC,EAAIgN,EAAKhN,CAAK,EAC7D,KAAAkN,CAAA,CAEJ,EAEA,CAAC,OAAO,QAAQ,GAAI,CAClB,OAAO,IACT,EAEJ,CACF,CACA,SAASC,GAAqB/E,EAAM,CAClC,OAAO,YAAYsB,EAAM,CAQvB,OAAOtB,IAAS,SAAW,GAAQA,IAAS,QAAU,OAAS,IACjE,CACF,CACA,SAASgF,GAAuBvB,EAAUwB,EAAS,CACjD,MAAMC,EAAmB,CACvB,IAAIjP,EAAK,CACP,MAAM8J,EAAS,KAAK,QACdwE,EAAYvD,GAAMjB,CAAM,EACxBoF,EAASnE,GAAM/K,CAAG,EACnBwN,IACC9K,GAAW1C,EAAKkP,CAAM,GACxBrF,GAAMyE,EAAW,MAAOtO,CAAG,EAE7B6J,GAAMyE,EAAW,MAAOY,CAAM,GAEhC,KAAM,CAAE,IAAAC,CAAA,EAAQf,GAASE,CAAS,EAC5BK,EAAOK,EAAUb,GAAYX,EAAWoB,GAAa3D,GAC3D,GAAIkE,EAAI,KAAKb,EAAWtO,CAAG,EACzB,OAAO2O,EAAK7E,EAAO,IAAI9J,CAAG,CAAC,EAC7B,GAAWmP,EAAI,KAAKb,EAAWY,CAAM,EACnC,OAAOP,EAAK7E,EAAO,IAAIoF,CAAM,CAAC,EACrBpF,IAAWwE,GACpBxE,EAAO,IAAI9J,CAAG,CAElB,EACA,IAAI,MAAO,CACT,MAAM8J,EAAS,KAAK,QACpB,OAAC0D,GAAY3D,GAAMkB,GAAMjB,CAAM,EAAG,UAAWJ,EAAW,EACjDI,EAAO,IAChB,EACA,IAAI9J,EAAK,CACP,MAAM8J,EAAS,KAAK,QACdwE,EAAYvD,GAAMjB,CAAM,EACxBoF,EAASnE,GAAM/K,CAAG,EACxB,OAAKwN,IACC9K,GAAW1C,EAAKkP,CAAM,GACxBrF,GAAMyE,EAAW,MAAOtO,CAAG,EAE7B6J,GAAMyE,EAAW,MAAOY,CAAM,GAEzBlP,IAAQkP,EAASpF,EAAO,IAAI9J,CAAG,EAAI8J,EAAO,IAAI9J,CAAG,GAAK8J,EAAO,IAAIoF,CAAM,CAChF,EACA,QAAQE,EAAU7D,EAAS,CACzB,MAAM8D,EAAW,KACXvF,EAASuF,EAAS,QAClBf,EAAYvD,GAAMjB,CAAM,EACxB6E,EAAOK,EAAUb,GAAYX,EAAWoB,GAAa3D,GAC3D,OAACuC,GAAY3D,GAAMyE,EAAW,UAAW5E,EAAW,EAC7CI,EAAO,QAAQ,CAACnI,EAAO3B,IACrBoP,EAAS,KAAK7D,EAASoD,EAAKhN,CAAK,EAAGgN,EAAK3O,CAAG,EAAGqP,CAAQ,CAC/D,CACH,GAEF7O,UACEyO,EACAzB,EAAW,CACT,IAAKsB,GAAqB,KAAK,EAC/B,IAAKA,GAAqB,KAAK,EAC/B,OAAQA,GAAqB,QAAQ,EACrC,MAAOA,GAAqB,OAAO,GACjC,CACF,IAAInN,EAAO,CACL,CAACqN,GAAW,CAAChE,GAAUrJ,CAAK,GAAK,CAACiM,GAAWjM,CAAK,IACpDA,EAAQoJ,GAAMpJ,CAAK,GAErB,MAAMmI,EAASiB,GAAM,IAAI,EAGzB,OAFcqD,GAAStE,CAAM,EACR,IAAI,KAAKA,EAAQnI,CAAK,IAEzCmI,EAAO,IAAInI,CAAK,EAChBsI,GAAQH,EAAQ,MAAOnI,EAAOA,CAAK,GAE9B,IACT,EACA,IAAI3B,EAAK2B,EAAO,CACV,CAACqN,GAAW,CAAChE,GAAUrJ,CAAK,GAAK,CAACiM,GAAWjM,CAAK,IACpDA,EAAQoJ,GAAMpJ,CAAK,GAErB,MAAMmI,EAASiB,GAAM,IAAI,EACnB,CAAE,IAAAoE,EAAK,IAAAG,GAAQlB,GAAStE,CAAM,EACpC,IAAI+D,EAASsB,EAAI,KAAKrF,EAAQ9J,CAAG,EAC5B6N,IACH7N,EAAM+K,GAAM/K,CAAG,EACf6N,EAASsB,EAAI,KAAKrF,EAAQ9J,CAAG,GAI/B,MAAM2C,EAAW2M,EAAI,KAAKxF,EAAQ9J,CAAG,EACrC,OAAA8J,EAAO,IAAI9J,EAAK2B,CAAK,EAChBkM,EAEMnL,GAAWf,EAAOgB,CAAQ,GACnCsH,GAAQH,EAAQ,MAAO9J,EAAK2B,CAAe,EAF3CsI,GAAQH,EAAQ,MAAO9J,EAAK2B,CAAK,EAI5B,IACT,EACA,OAAO3B,EAAK,CACV,MAAM8J,EAASiB,GAAM,IAAI,EACnB,CAAE,IAAAoE,EAAK,IAAAG,GAAQlB,GAAStE,CAAM,EACpC,IAAI+D,EAASsB,EAAI,KAAKrF,EAAQ9J,CAAG,EAC5B6N,IACH7N,EAAM+K,GAAM/K,CAAG,EACf6N,EAASsB,EAAI,KAAKrF,EAAQ9J,CAAG,GAIdsP,GAAMA,EAAI,KAAKxF,EAAQ9J,CAAG,EAC3C,MAAMkM,EAASpC,EAAO,OAAO9J,CAAG,EAChC,OAAI6N,GACF5D,GAAQH,EAAQ,SAAU9J,EAAK,MAAgB,EAE1CkM,CACT,EACA,OAAQ,CACN,MAAMpC,EAASiB,GAAM,IAAI,EACnBwE,EAAWzF,EAAO,OAAS,EAE3BoC,EAASpC,EAAO,QACtB,OAAIyF,GACFtF,GACEH,EACA,QACA,OACA,MAEF,EAEKoC,CACT,EACF,EAEsB,CACtB,OACA,SACA,UACA,OAAO,UAEO,QAASH,GAAW,CAClCkD,EAAiBlD,CAAM,EAAIsC,GAAqBtC,EAAQyB,EAAUwB,CAAO,CAC3E,CAAC,EACMC,CACT,CACA,SAASO,GAA4BtC,EAAa8B,EAAS,CACzD,MAAMC,EAAmBF,GAAuB7B,EAAa8B,CAAO,EACpE,MAAO,CAAClF,EAAQ9J,EAAKiN,IACfjN,IAAQ,iBACH,CAACkN,EACClN,IAAQ,iBACVkN,EACElN,IAAQ,UACV8J,EAEF,QAAQ,IACbhJ,GAAOmO,EAAkBjP,CAAG,GAAKA,KAAO8J,EAASmF,EAAmBnF,EACpE9J,EACAiN,CAAA,CAGN,CACA,MAAMwC,GAA4B,CAChC,IAAqBD,GAA4B,GAAO,EAAK,CAC/D,EACME,GAA4B,CAChC,IAAqBF,GAA4B,GAAO,EAAI,CAC9D,EACMG,GAA6B,CACjC,IAAqBH,GAA4B,GAAM,EAAK,CAC9D,EACMI,GAAoC,CACxC,IAAqBJ,GAA4B,GAAM,EAAI,CAC7D,EAWMjC,OAAkC,QAClCD,OAAyC,QACzCD,OAAkC,QAClCD,OAAyC,QAC/C,SAASyC,GAAcC,EAAS,CAC9B,OAAQA,EAAA,CACN,IAAK,SACL,IAAK,QACH,MAAO,GACT,IAAK,MACL,IAAK,MACL,IAAK,UACL,IAAK,UACH,MAAO,GACT,QACE,MAAO,GAEb,CACA,SAASC,GAAcpO,EAAO,CAC5B,OAAOA,EAAM,UAAe,CAAC,OAAO,aAAaA,CAAK,EAAI,EAAkBkO,GAAcjO,GAAUD,CAAK,CAAC,CAC5G,CACA,SAAS8L,GAAS3D,EAAQ,CACxB,OAAI8D,GAAW9D,CAAM,EACZA,EAEFkG,GACLlG,EACA,GACAiE,GACA0B,GACAlC,EAAA,CAEJ,CACA,SAAS0C,GAAgBnG,EAAQ,CAC/B,OAAOkG,GACLlG,EACA,GACAmE,GACAyB,GACApC,EAAA,CAEJ,CACA,SAASE,GAAS1D,EAAQ,CACxB,OAAOkG,GACLlG,EACA,GACAkE,GACA2B,GACAtC,EAAA,CAEJ,CACA,SAAS6C,GAAgBpG,EAAQ,CAC/B,OAAOkG,GACLlG,EACA,GACAoE,GACA0B,GACAxC,EAAA,CAEJ,CACA,SAAS4C,GAAqBlG,EAAQoD,EAAaiD,EAAcC,EAAoBC,EAAU,CAW7F,GAVI,CAAC7O,GAASsI,CAAM,GAUhBA,EAAO,SAAc,EAAEoD,GAAepD,EAAO,gBAC/C,OAAOA,EAET,MAAMwG,EAAaP,GAAcjG,CAAM,EACvC,GAAIwG,IAAe,EACjB,OAAOxG,EAET,MAAMyG,EAAgBF,EAAS,IAAIvG,CAAM,EACzC,GAAIyG,EACF,OAAOA,EAET,MAAMC,EAAQ,IAAI,MAChB1G,EACAwG,IAAe,EAAqBF,EAAqBD,CAAA,EAE3D,OAAAE,EAAS,IAAIvG,EAAQ0G,CAAK,EACnBA,CACT,CACA,SAASC,GAAW9O,EAAO,CACzB,OAAIiM,GAAWjM,CAAK,EACX8O,GAAW9O,EAAM,OAAU,EAE7B,CAAC,EAAEA,GAASA,EAAM,eAC3B,CACA,SAASiM,GAAWjM,EAAO,CACzB,MAAO,CAAC,EAAEA,GAASA,EAAM,eAC3B,CACA,SAASqJ,GAAUrJ,EAAO,CACxB,MAAO,CAAC,EAAEA,GAASA,EAAM,cAC3B,CACA,SAASgL,GAAQhL,EAAO,CACtB,OAAOA,EAAQ,CAAC,CAACA,EAAM,QAAa,EACtC,CACA,SAASoJ,GAAMsE,EAAU,CACvB,MAAMvE,EAAMuE,GAAYA,EAAS,QACjC,OAAOvE,EAAMC,GAAMD,CAAG,EAAIuE,CAC5B,CACA,SAASqB,GAAQ/O,EAAO,CACtB,MAAI,CAACb,GAAOa,EAAO,UAAU,GAAK,OAAO,aAAaA,CAAK,GACzDoB,GAAIpB,EAAO,WAAY,EAAI,EAEtBA,CACT,CACA,MAAMsJ,GAActJ,GAAUH,GAASG,CAAK,EAAI8L,GAAS9L,CAAK,EAAIA,EAC5DiN,GAAcjN,GAAUH,GAASG,CAAK,EAAI6L,GAAS7L,CAAK,EAAIA,EAElE,SAAS4D,GAAMoL,EAAG,CAChB,OAAOA,EAAIA,EAAE,YAAiB,GAAO,EACvC,CACA,SAASC,GAAIjP,EAAO,CAClB,OAAOkP,GAAUlP,EAAO,EAAK,CAC/B,CACA,SAASmP,GAAWnP,EAAO,CACzB,OAAOkP,GAAUlP,EAAO,EAAI,CAC9B,CACA,SAASkP,GAAUE,EAAU/B,EAAS,CACpC,OAAIzJ,GAAMwL,CAAQ,EACTA,EAEF,IAAIC,GAAQD,EAAU/B,CAAO,CACtC,CACA,MAAMgC,EAAQ,CACZ,YAAYrP,EAAOwL,EAAY,CAC7B,KAAK,IAAM,IAAI9D,GACf,KAAK,UAAe,GACpB,KAAK,cAAmB,GACxB,KAAK,UAAY8D,EAAaxL,EAAQoJ,GAAMpJ,CAAK,EACjD,KAAK,OAASwL,EAAaxL,EAAQsJ,GAAWtJ,CAAK,EACnD,KAAK,cAAmBwL,CAC1B,CACA,IAAI,OAAQ,CAQR,YAAK,IAAI,QAEJ,KAAK,MACd,CACA,IAAI,MAAMjD,EAAU,CAClB,MAAMvH,EAAW,KAAK,UAChBsO,EAAiB,KAAK,eAAoBjG,GAAUd,CAAQ,GAAK0D,GAAW1D,CAAQ,EAC1FA,EAAW+G,EAAiB/G,EAAWa,GAAMb,CAAQ,EACjDxH,GAAWwH,EAAUvH,CAAQ,IAC/B,KAAK,UAAYuH,EACjB,KAAK,OAAS+G,EAAiB/G,EAAWe,GAAWf,CAAQ,EAU3D,KAAK,IAAI,UAGf,CACF,CAeA,SAASgH,EAAMC,EAAM,CACnB,OAAO5L,GAAM4L,CAAI,EAAIA,EAAK,MAAQA,CACpC,CACA,SAASC,GAAQC,EAAQ,CACvB,OAAOhQ,GAAWgQ,CAAM,EAAIA,EAAA,EAAWH,EAAMG,CAAM,CACrD,CACA,MAAMC,GAAwB,CAC5B,IAAK,CAACxH,EAAQ9J,EAAKiN,IAAajN,IAAQ,UAAY8J,EAASoH,EAAM,QAAQ,IAAIpH,EAAQ9J,EAAKiN,CAAQ,CAAC,EACrG,IAAK,CAACnD,EAAQ9J,EAAK2B,EAAOsL,IAAa,CACrC,MAAMtK,EAAWmH,EAAO9J,CAAG,EAC3B,OAAIuF,GAAM5C,CAAQ,GAAK,CAAC4C,GAAM5D,CAAK,GACjCgB,EAAS,MAAQhB,EACV,IAEA,QAAQ,IAAImI,EAAQ9J,EAAK2B,EAAOsL,CAAQ,CAEnD,CACF,EACA,SAASsE,GAAUC,EAAgB,CACjC,OAAOf,GAAWe,CAAc,EAAIA,EAAiB,IAAI,MAAMA,EAAgBF,EAAqB,CACtG,CACA,MAAMG,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,UAAe,GACpB,KAAK,OAAS,OACd,MAAMhJ,EAAM,KAAK,IAAM,IAAIW,GACrB,CAAE,IAAAiG,EAAK,IAAAqC,CAAA,EAAQD,EAAQhJ,EAAI,MAAM,KAAKA,CAAG,EAAGA,EAAI,QAAQ,KAAKA,CAAG,CAAC,EACvE,KAAK,KAAO4G,EACZ,KAAK,KAAOqC,CACd,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAS,KAAK,MAC5B,CACA,IAAI,MAAMC,EAAQ,CAChB,KAAK,KAAKA,CAAM,CAClB,CACF,CACA,SAASC,GAAUH,EAAS,CAC1B,OAAO,IAAID,GAAcC,CAAO,CAClC,CACA,SAASI,GAAOpH,EAAQ,CAItB,MAAM1G,EAAMjD,GAAQ2J,CAAM,EAAI,IAAI,MAAMA,EAAO,MAAM,EAAI,GACzD,UAAW1K,KAAO0K,EAChB1G,EAAIhE,CAAG,EAAI+R,GAAcrH,EAAQ1K,CAAG,EAEtC,OAAOgE,CACT,CACA,MAAMgO,EAAc,CAClB,YAAYC,EAASvM,EAAMwM,EAAe,CACxC,KAAK,QAAUD,EACf,KAAK,KAAOvM,EACZ,KAAK,cAAgBwM,EACrB,KAAK,UAAe,GACpB,KAAK,OAAS,MAChB,CACA,IAAI,OAAQ,CACV,MAAMjS,EAAM,KAAK,QAAQ,KAAK,IAAI,EAClC,OAAO,KAAK,OAASA,IAAQ,OAAS,KAAK,cAAgBA,CAC7D,CACA,IAAI,MAAM2R,EAAQ,CAChB,KAAK,QAAQ,KAAK,IAAI,EAAIA,CAC5B,CACA,IAAI,KAAM,CACR,OAAOnH,GAAmBM,GAAM,KAAK,OAAO,EAAG,KAAK,IAAI,CAC1D,CACF,CACA,MAAMoH,EAAc,CAClB,YAAYC,EAAS,CACnB,KAAK,QAAUA,EACf,KAAK,UAAe,GACpB,KAAK,eAAoB,GACzB,KAAK,OAAS,MAChB,CACA,IAAI,OAAQ,CACV,OAAO,KAAK,OAAS,KAAK,SAC5B,CACF,CACA,SAASC,GAAMhB,EAAQrR,EAAKsS,EAAc,CACxC,OAAI/M,GAAM8L,CAAM,EACPA,EACEhQ,GAAWgQ,CAAM,EACnB,IAAIc,GAAcd,CAAM,EACtB7P,GAAS6P,CAAM,GAAK,UAAU,OAAS,EACzCU,GAAcV,EAAQrR,EAAKsS,CAAY,EAEvC1B,GAAIS,CAAM,CAErB,CACA,SAASU,GAAcV,EAAQrR,EAAKsS,EAAc,CAChD,MAAMrS,EAAMoR,EAAOrR,CAAG,EACtB,OAAOuF,GAAMtF,CAAG,EAAIA,EAAM,IAAI+R,GAAcX,EAAQrR,EAAKsS,CAAY,CACvE,CAEA,MAAMC,EAAgB,CACpB,YAAYtQ,EAAIuQ,EAAQC,EAAO,CAC7B,KAAK,GAAKxQ,EACV,KAAK,OAASuQ,EAId,KAAK,OAAS,OAId,KAAK,IAAM,IAAInJ,GAAI,IAAI,EAIvB,KAAK,UAAY,GAMjB,KAAK,KAAO,OAIZ,KAAK,SAAW,OAIhB,KAAK,MAAQ,GAIb,KAAK,cAAgBZ,GAAgB,EAIrC,KAAK,KAAO,OAEZ,KAAK,OAAS,KACd,KAAK,eAAoB,CAAC+J,EAC1B,KAAK,MAAQC,CACf,CAIA,QAAS,CAEP,GADA,KAAK,OAAS,GACV,EAAE,KAAK,MAAQ,IACnB9L,KAAc,KACZ,OAAAG,GAAM,KAAM,EAAI,EACT,EAEX,CACA,IAAI,OAAQ,CACV,MAAMO,EAID,KAAK,IAAI,QACd,OAAAkB,GAAgB,IAAI,EAChBlB,IACFA,EAAK,QAAU,KAAK,IAAI,SAEnB,KAAK,MACd,CACA,IAAI,MAAM6C,EAAU,CACd,KAAK,QACP,KAAK,OAAOA,CAAQ,CAIxB,CACF,CACA,SAAS1B,GAASkK,EAAiBC,EAAcF,EAAQ,GAAO,CAC9D,IAAIG,EACAJ,EACJ,OAAInR,GAAWqR,CAAe,EAC5BE,EAASF,GAETE,EAASF,EAAgB,IACzBF,EAASE,EAAgB,KAEd,IAAIH,GAAgBK,EAAQJ,EAAQC,CAAK,CAMxD,CA8BA,MAAMI,GAAwB,GACxBC,OAAiC,QACvC,IAAIC,GAIJ,SAASC,GAAiBC,EAAWvM,EAAe,GAAOwM,EAAQH,GAAe,CAChF,GAAIG,EAAO,CACT,IAAIC,EAAWL,GAAW,IAAII,CAAK,EAC9BC,GAAUL,GAAW,IAAII,EAAOC,EAAW,EAAE,EAClDA,EAAS,KAAKF,CAAS,CACzB,CAKF,CACA,SAASG,GAAM/B,EAAQgC,EAAIC,EAAUpT,GAAW,CAC9C,KAAM,CAAE,UAAAqT,EAAW,KAAAC,EAAM,KAAAC,EAAM,UAAAC,EAAW,WAAAC,EAAY,KAAAC,GAASN,EAQzDO,EAAkBC,GAClBN,EAAaM,EACb9I,GAAU8I,CAAO,GAAKN,IAAS,IAASA,IAAS,EAC5CO,GAASD,EAAS,CAAC,EACrBC,GAASD,CAAO,EAEzB,IAAIE,EACApB,EACAzJ,EACA8K,EACAC,EAAe,GACfC,EAAgB,GA+CpB,GA9CI5O,GAAM8L,CAAM,GACduB,EAAS,IAAMvB,EAAO,MACtB6C,EAAelJ,GAAUqG,CAAM,GACtBZ,GAAWY,CAAM,GAC1BuB,EAAS,IAAMiB,EAAexC,CAAM,EACpC6C,EAAe,IACNnT,GAAQsQ,CAAM,GACvB8C,EAAgB,GAChBD,EAAe7C,EAAO,KAAM+C,GAAM3D,GAAW2D,CAAC,GAAKpJ,GAAUoJ,CAAC,CAAC,EAC/DxB,EAAS,IAAMvB,EAAO,IAAK+C,GAAM,CAC/B,GAAI7O,GAAM6O,CAAC,EACT,OAAOA,EAAE,MACX,GAAW3D,GAAW2D,CAAC,EACrB,OAAOP,EAAeO,CAAC,EACzB,GAAW/S,GAAW+S,CAAC,EACrB,OAAOR,EAAOA,EAAKQ,EAAG,CAAC,EAAIA,EAAA,CAI/B,CAAC,GACQ/S,GAAWgQ,CAAM,EACtBgC,EACFT,EAASgB,EAAO,IAAMA,EAAKvC,EAAQ,CAAC,EAAIA,EAExCuB,EAAS,IAAM,CACb,GAAIzJ,EAAS,CACXF,GAAA,EACA,GAAI,CACFE,EAAA,CACF,SACED,GAAA,CACF,CACF,CACA,MAAMmL,EAAgBtB,GACtBA,GAAgBiB,EAChB,GAAI,CACF,OAAOJ,EAAOA,EAAKvC,EAAQ,EAAG,CAAC4C,CAAY,CAAC,EAAI5C,EAAO4C,CAAY,CACrE,SACElB,GAAgBsB,CAClB,CACF,EAGFzB,EAASxS,GAGPiT,GAAMG,EAAM,CACd,MAAMc,EAAa1B,EACb2B,EAAQf,IAAS,GAAO,IAAWA,EACzCZ,EAAS,IAAMmB,GAASO,EAAA,EAAcC,CAAK,CAC7C,CACA,MAAMC,EAAQhO,GAAA,EACRiO,EAAc,IAAM,CACxBT,EAAO,OACHQ,GAASA,EAAM,QACjB/T,GAAO+T,EAAM,QAASR,CAAM,CAEhC,EACA,GAAIP,GAAQJ,EAAI,CACd,MAAMqB,EAAMrB,EACZA,EAAK,IAAIhI,IAAS,CAChBqJ,EAAI,GAAGrJ,CAAI,EACXoJ,EAAA,CACF,CACF,CACA,IAAI9R,EAAWwR,EAAgB,IAAI,MAAM9C,EAAO,MAAM,EAAE,KAAKwB,EAAqB,EAAIA,GACtF,MAAM8B,EAAOC,GAAsB,CACjC,GAAI,IAAEZ,EAAO,MAAQ,IAAM,CAACA,EAAO,OAAS,CAACY,GAG7C,GAAIvB,EAAI,CACN,MAAMnJ,EAAW8J,EAAO,MACxB,GAAIR,GAAQU,IAAiBC,EAAgBjK,EAAS,KAAK,CAACpE,EAAGlF,IAAM8B,GAAWoD,EAAGnD,EAAS/B,CAAC,CAAC,CAAC,EAAI8B,GAAWwH,EAAUvH,CAAQ,GAAI,CAC9HwG,GACFA,EAAA,EAEF,MAAM0L,EAAiB9B,GACvBA,GAAgBiB,EAChB,GAAI,CACF,MAAM3I,EAAO,CACXnB,EAEAvH,IAAakQ,GAAwB,OAASsB,GAAiBxR,EAAS,CAAC,IAAMkQ,GAAwB,GAAKlQ,EAC5GsR,CAAA,EAEFtR,EAAWuH,EACX0J,EAAOA,EAAKP,EAAI,EAAGhI,CAAI,EAErBgI,EAAG,GAAGhI,CAAI,CAEd,SACE0H,GAAgB8B,CAClB,CACF,CACF,MACEb,EAAO,KAEX,EACA,OAAIL,GACFA,EAAWgB,CAAG,EAEhBX,EAAS,IAAInN,GAAe+L,CAAM,EAClCoB,EAAO,UAAYN,EAAY,IAAMA,EAAUiB,EAAK,EAAK,EAAIA,EAC7DV,EAAgBhS,GAAO+Q,GAAiB/Q,EAAI,GAAO+R,CAAM,EACzD7K,EAAU6K,EAAO,OAAS,IAAM,CAC9B,MAAMb,EAAWL,GAAW,IAAIkB,CAAM,EACtC,GAAIb,EAAU,CACZ,GAAIS,EACFA,EAAKT,EAAU,CAAC,MAEhB,WAAW2B,KAAY3B,EAAU2B,EAAA,EAEnChC,GAAW,OAAOkB,CAAM,CAC1B,CACF,EAKIX,EACEE,EACFoB,EAAI,EAAI,EAERhS,EAAWqR,EAAO,MAEXN,EACTA,EAAUiB,EAAI,KAAK,KAAM,EAAI,EAAG,EAAI,EAEpCX,EAAO,MAETS,EAAY,MAAQT,EAAO,MAAM,KAAKA,CAAM,EAC5CS,EAAY,OAAST,EAAO,OAAO,KAAKA,CAAM,EAC9CS,EAAY,KAAOA,EACZA,CACT,CACA,SAASV,GAASpS,EAAO4S,EAAQ,IAAUQ,EAAM,CAK/C,GAJIR,GAAS,GAAK,CAAC/S,GAASG,CAAK,GAAKA,EAAM,WAG5CoT,EAAOA,OAA4B,KAC9BA,EAAK,IAAIpT,CAAK,GAAK,IAAM4S,GAC5B,OAAO5S,EAIT,GAFAoT,EAAK,IAAIpT,EAAO4S,CAAK,EACrBA,IACIhP,GAAM5D,CAAK,EACboS,GAASpS,EAAM,MAAO4S,EAAOQ,CAAI,UACxBhU,GAAQY,CAAK,EACtB,QAASf,EAAI,EAAGA,EAAIe,EAAM,OAAQf,IAChCmT,GAASpS,EAAMf,CAAC,EAAG2T,EAAOQ,CAAI,UAEvB7T,GAAMS,CAAK,GAAKX,GAAMW,CAAK,EACpCA,EAAM,QAASmE,GAAM,CACnBiO,GAASjO,EAAGyO,EAAOQ,CAAI,CACzB,CAAC,UACQlT,GAAcF,CAAK,EAAG,CAC/B,UAAW3B,KAAO2B,EAChBoS,GAASpS,EAAM3B,CAAG,EAAGuU,EAAOQ,CAAI,EAElC,UAAW/U,KAAO,OAAO,sBAAsB2B,CAAK,EAC9C,OAAO,UAAU,qBAAqB,KAAKA,EAAO3B,CAAG,GACvD+T,GAASpS,EAAM3B,CAAG,EAAGuU,EAAOQ,CAAI,CAGtC,CACA,OAAOpT,CACT,CCzrDA,SAASqT,GAAsB/S,EAAIgT,EAAUlL,EAAMsB,EAAM,CACvD,GAAI,CACF,OAAOA,EAAOpJ,EAAG,GAAGoJ,CAAI,EAAIpJ,EAAA,CAC9B,OAASiG,EAAK,CACZgN,GAAYhN,EAAK+M,EAAUlL,CAAI,CACjC,CACF,CACA,SAASoL,GAA2BlT,EAAIgT,EAAUlL,EAAMsB,EAAM,CAC5D,GAAIhK,GAAWY,CAAE,EAAG,CAClB,MAAMuB,EAAMwR,GAAsB/S,EAAIgT,EAAUlL,EAAMsB,CAAI,EAC1D,OAAI7H,GAAO/B,GAAU+B,CAAG,GACtBA,EAAI,MAAO0E,GAAQ,CACjBgN,GAAYhN,EAAK+M,EAAUlL,CAAI,CACjC,CAAC,EAEIvG,CACT,CACA,GAAIzC,GAAQkB,CAAE,EAAG,CACf,MAAMmT,EAAS,GACf,QAASxU,EAAI,EAAGA,EAAIqB,EAAG,OAAQrB,IAC7BwU,EAAO,KAAKD,GAA2BlT,EAAGrB,CAAC,EAAGqU,EAAUlL,EAAMsB,CAAI,CAAC,EAErE,OAAO+J,CACT,CAKF,CACA,SAASF,GAAYhN,EAAK+M,EAAUlL,EAAMsL,EAAa,GAAM,CAC3D,MAAMC,EAAeL,EAAWA,EAAS,MAAQ,KAC3C,CAAE,aAAAM,EAAc,gCAAAC,CAAA,EAAoCP,GAAYA,EAAS,WAAW,QAAU/U,GACpG,GAAI+U,EAAU,CACZ,IAAIQ,EAAMR,EAAS,OACnB,MAAMS,EAAkBT,EAAS,MAC3BU,EAAmF,8CAA8C5L,CAAI,GAC3I,KAAO0L,GAAK,CACV,MAAMG,EAAqBH,EAAI,GAC/B,GAAIG,GACF,QAAShV,EAAI,EAAGA,EAAIgV,EAAmB,OAAQhV,IAC7C,GAAIgV,EAAmBhV,CAAC,EAAEsH,EAAKwN,EAAiBC,CAAS,IAAM,GAC7D,OAINF,EAAMA,EAAI,MACZ,CACA,GAAIF,EAAc,CAChBtM,GAAA,EACA+L,GAAsBO,EAAc,KAAM,GAAI,CAC5CrN,EACAwN,EACAC,CAAA,CACD,EACDzM,GAAA,EACA,MACF,CACF,CACA2M,GAAS3N,EAAK6B,EAAMuL,EAAcD,EAAYG,CAA+B,CAC/E,CACA,SAASK,GAAS3N,EAAK6B,EAAMuL,EAAcD,EAAa,GAAMS,EAAc,GAAO,IAetEA,EACT,MAAM5N,EAEN,QAAQ,MAAMA,CAAG,CAErB,CAEA,MAAM6N,GAAQ,GACd,IAAIC,GAAa,GACjB,MAAMC,GAAsB,GAC5B,IAAIC,GAAqB,KACrBC,GAAiB,EACrB,MAAMC,WAA0C,UAChD,IAAIC,GAAsB,KAE1B,SAASC,GAASrU,EAAI,CACpB,MAAMsU,EAAIF,IAAuBD,GACjC,OAAOnU,EAAKsU,EAAE,KAAK,KAAOtU,EAAG,KAAK,IAAI,EAAIA,CAAE,EAAIsU,CAClD,CACA,SAASC,GAAmBC,EAAI,CAC9B,IAAIC,EAAQV,GAAa,EACrBW,EAAMZ,GAAM,OAChB,KAAOW,EAAQC,GAAK,CAClB,MAAMC,EAASF,EAAQC,IAAQ,EACzBE,EAAYd,GAAMa,CAAM,EACxBE,EAAcC,GAAMF,CAAS,EAC/BC,EAAcL,GAAMK,IAAgBL,GAAMI,EAAU,MAAQ,EAC9DH,EAAQE,EAAS,EAEjBD,EAAMC,CAEV,CACA,OAAOF,CACT,CACA,SAASM,GAASrC,EAAK,CACrB,GAAI,EAAEA,EAAI,MAAQ,GAAI,CACpB,MAAMsC,EAAQF,GAAMpC,CAAG,EACjBuC,EAAUnB,GAAMA,GAAM,OAAS,CAAC,EAClC,CAACmB,GACL,EAAEvC,EAAI,MAAQ,IAAMsC,GAASF,GAAMG,CAAO,EACxCnB,GAAM,KAAKpB,CAAG,EAEdoB,GAAM,OAAOS,GAAmBS,CAAK,EAAG,EAAGtC,CAAG,EAEhDA,EAAI,OAAS,EACbwC,GAAA,CACF,CACF,CACA,SAASA,IAAa,CACfd,KACHA,GAAsBD,GAAgB,KAAKgB,EAAS,EAExD,CACA,SAASC,GAAiBhE,EAAI,CACvBtS,GAAQsS,CAAE,EAQb4C,GAAoB,KAAK,GAAG5C,CAAE,EAP1B6C,IAAsB7C,EAAG,KAAO,GAClC6C,GAAmB,OAAOC,GAAiB,EAAG,EAAG9C,CAAE,EACxCA,EAAG,MAAQ,IACtB4C,GAAoB,KAAK5C,CAAE,EAC3BA,EAAG,OAAS,GAKhB8D,GAAA,CACF,CACA,SAASG,GAAiBrC,EAAUF,EAAMnU,EAAIoV,GAAa,EAAG,CAI5D,KAAOpV,EAAImV,GAAM,OAAQnV,IAAK,CAC5B,MAAMyS,EAAK0C,GAAMnV,CAAC,EAClB,GAAIyS,GAAMA,EAAG,MAAQ,EAAG,CACtB,GAAI4B,GAAY5B,EAAG,KAAO4B,EAAS,IACjC,SAKFc,GAAM,OAAOnV,EAAG,CAAC,EACjBA,IACIyS,EAAG,MAAQ,IACbA,EAAG,OAAS,IAEdA,EAAA,EACMA,EAAG,MAAQ,IACfA,EAAG,OAAS,GAEhB,CACF,CACF,CACA,SAASkE,GAAkBxC,EAAM,CAC/B,GAAIkB,GAAoB,OAAQ,CAC9B,MAAMuB,EAAU,CAAC,GAAG,IAAI,IAAIvB,EAAmB,CAAC,EAAE,KAChD,CAACrR,EAAGC,IAAMkS,GAAMnS,CAAC,EAAImS,GAAMlS,CAAC,GAG9B,GADAoR,GAAoB,OAAS,EACzBC,GAAoB,CACtBA,GAAmB,KAAK,GAAGsB,CAAO,EAClC,MACF,CAKA,IAJAtB,GAAqBsB,EAIhBrB,GAAiB,EAAGA,GAAiBD,GAAmB,OAAQC,KAAkB,CACrF,MAAM9C,EAAK6C,GAAmBC,EAAc,EAIxC9C,EAAG,MAAQ,IACbA,EAAG,OAAS,IAERA,EAAG,MAAQ,GAAIA,EAAA,EACrBA,EAAG,OAAS,EACd,CACA6C,GAAqB,KACrBC,GAAiB,CACnB,CACF,CACA,MAAMY,GAASpC,GAAQA,EAAI,IAAM,KAAOA,EAAI,MAAQ,EAAI,GAAK,IAAWA,EAAI,GAC5E,SAASyC,GAAUrC,EAAM,CAKvB,GAAI,CACF,IAAKiB,GAAa,EAAGA,GAAaD,GAAM,OAAQC,KAAc,CAC5D,MAAMrB,EAAMoB,GAAMC,EAAU,EACxBrB,GAAO,EAAEA,EAAI,MAAQ,KAInBA,EAAI,MAAQ,IACdA,EAAI,OAAS,IAEfK,GACEL,EACAA,EAAI,EACJA,EAAI,EAAI,GAAK,IAETA,EAAI,MAAQ,IAChBA,EAAI,OAAS,IAGnB,CACF,SACE,KAAOqB,GAAaD,GAAM,OAAQC,KAAc,CAC9C,MAAMrB,EAAMoB,GAAMC,EAAU,EACxBrB,IACFA,EAAI,OAAS,GAEjB,CACAqB,GAAa,GACbD,GAAM,OAAS,EACfwB,GAAsB,EACtBlB,GAAsB,MAClBN,GAAM,QAAUE,GAAoB,SACtCmB,GAAc,CAElB,CACF,CA2OA,IAAIK,GAA2B,KAC3BC,GAAiB,KACrB,SAASC,GAA4B1C,EAAU,CAC7C,MAAM5M,EAAOoP,GACb,OAAAA,GAA2BxC,EAC3ByC,GAAiBzC,GAAYA,EAAS,KAAK,WAAa,KACjD5M,CACT,CACA,SAASuP,GAAYnB,EAAI,CACvBiB,GAAiBjB,CACnB,CACA,SAASoB,IAAa,CACpBH,GAAiB,IACnB,CAEA,SAASI,GAAQ7V,EAAI8V,EAAMN,GAA0BO,EAAiB,CAEpE,GADI,CAACD,GACD9V,EAAG,GACL,OAAOA,EAET,MAAMgW,EAAsB,IAAI5M,IAAS,CACnC4M,EAAoB,IACtBC,GAAiB,EAAE,EAErB,MAAMC,EAAeR,GAA4BI,CAAG,EACpD,IAAIvU,EACJ,GAAI,CACFA,EAAMvB,EAAG,GAAGoJ,CAAI,CAClB,SACEsM,GAA4BQ,CAAY,EACpCF,EAAoB,IACtBC,GAAiB,CAAC,CAEtB,CAIA,OAAO1U,CACT,EACA,OAAAyU,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GACzBA,EAAoB,GAAK,GAClBA,CACT,CAOA,SAASG,GAAeC,EAAOC,EAAY,CACzC,GAAIb,KAA6B,KAE/B,OAAOY,EAET,MAAMpD,EAAWsD,GAA2Bd,EAAwB,EAC9De,EAAWH,EAAM,OAASA,EAAM,KAAO,IAC7C,QAASzX,EAAI,EAAGA,EAAI0X,EAAW,OAAQ1X,IAAK,CAC1C,GAAI,CAAC6X,EAAK9W,EAAOmB,EAAK4V,EAAYxY,EAAS,EAAIoY,EAAW1X,CAAC,EACvD6X,IACEpX,GAAWoX,CAAG,IAChBA,EAAM,CACJ,QAASA,EACT,QAASA,CAAA,GAGTA,EAAI,MACN1E,GAASpS,CAAK,EAEhB6W,EAAS,KAAK,CACZ,IAAAC,EACA,SAAAxD,EACA,MAAAtT,EACA,SAAU,OACV,IAAAmB,EACA,UAAA4V,CAAA,CACD,EAEL,CACA,OAAOL,CACT,CACA,SAASM,GAAoBN,EAAOO,EAAW3D,EAAU9Q,EAAM,CAC7D,MAAMqU,EAAWH,EAAM,KACjBQ,EAAcD,GAAaA,EAAU,KAC3C,QAAShY,EAAI,EAAGA,EAAI4X,EAAS,OAAQ5X,IAAK,CACxC,MAAMkY,EAAUN,EAAS5X,CAAC,EACtBiY,IACFC,EAAQ,SAAWD,EAAYjY,CAAC,EAAE,OAEpC,IAAImY,EAAOD,EAAQ,IAAI3U,CAAI,EACvB4U,IACF9P,GAAA,EACAkM,GAA2B4D,EAAM9D,EAAU,EAAG,CAC5CoD,EAAM,GACNS,EACAT,EACAO,CAAA,CACD,EACD1P,GAAA,EAEJ,CACF,CAEA,MAAM8P,GAAiB,OAAO,MAAM,EAC9BC,GAAclP,GAASA,EAAK,aAC5BmP,GAAsB7U,GAAUA,IAAUA,EAAM,UAAYA,EAAM,WAAa,IAC/E8U,GAAsB9U,GAAUA,IAAUA,EAAM,OAASA,EAAM,QAAU,IACzE+U,GAAetP,GAAW,OAAO,WAAe,KAAeA,aAAkB,WACjFuP,GAAkBvP,GAAW,OAAO,eAAkB,YAAcA,aAAkB,cACtFwP,GAAgB,CAACjV,EAAOkV,IAAW,CACvC,MAAMC,EAAiBnV,GAASA,EAAM,GACtC,OAAI/C,GAASkY,CAAc,EACpBD,EAMYA,EAAOC,CAAc,EAF7B,KAcFA,CAEX,EACMC,GAAe,CACnB,KAAM,WACN,aAAc,GACd,QAAQC,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,EAAWC,EAAW,CACjH,KAAM,CACJ,GAAIC,EACJ,GAAIC,EACJ,IAAKC,EACL,EAAG,CAAE,OAAAC,EAAQ,cAAAC,EAAe,WAAAC,EAAY,cAAAC,CAAA,CAAc,EACpDP,EACEQ,EAAWzB,GAAmBS,EAAG,KAAK,EAC5C,GAAI,CAAE,UAAAiB,EAAW,SAAAC,EAAU,gBAAAC,CAAA,EAAoBnB,EAK/C,GAAID,GAAM,KAAM,CACd,MAAMqB,EAAcpB,EAAG,GAAmFc,EAAW,EAAE,EACjHO,EAAarB,EAAG,OAAqFc,EAAW,EAAE,EACxHF,EAAOQ,EAAanB,EAAWC,CAAM,EACrCU,EAAOS,EAAYpB,EAAWC,CAAM,EACpC,MAAMoB,EAAQ,CAACC,EAAYC,IAAY,CACjCP,EAAY,IACdR,EACES,EACAK,EACAC,EACArB,EACAC,EACAC,EACAC,EACAC,CAAA,CAGN,EACMkB,EAAgB,IAAM,CAC1B,MAAMtR,EAAS6P,EAAG,OAASL,GAAcK,EAAG,MAAOa,CAAa,EAC1Da,EAAeC,GAAcxR,EAAQ6P,EAAIc,EAAYF,CAAM,EAC7DzQ,IACEkQ,IAAc,OAASZ,GAAYtP,CAAM,EAC3CkQ,EAAY,MACHA,IAAc,UAAYX,GAAevP,CAAM,IACxDkQ,EAAY,UAEVF,GAAmBA,EAAgB,OACpCA,EAAgB,GAAG,mBAAqBA,EAAgB,GAAG,iBAAmC,IAAI,MAAQ,IAAIhQ,CAAM,EAElH6Q,IACHM,EAAMnR,EAAQuR,CAAY,EAC1BE,GAAc5B,EAAI,EAAK,GAS7B,EACIgB,IACFM,EAAMrB,EAAWoB,CAAU,EAC3BO,GAAc5B,EAAI,EAAI,GAEpBR,GAAmBQ,EAAG,KAAK,GAC7BA,EAAG,GAAG,YAAc,GACpB6B,GAAsB,IAAM,CAC1BJ,EAAA,EACA,OAAOzB,EAAG,GAAG,WACf,EAAGI,CAAc,GAEjBqB,EAAA,CAEJ,KAAO,CACL,GAAIjC,GAAmBQ,EAAG,KAAK,GAAKD,EAAG,GAAG,cAAgB,GAAO,CAC/D8B,GAAsB,IAAM,CAC1B/B,GAAa,QACXC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,CAEJ,EAAGJ,CAAc,EACjB,MACF,CACAJ,EAAG,GAAKD,EAAG,GACXC,EAAG,YAAcD,EAAG,YACpB,MAAMsB,EAAarB,EAAG,OAASD,EAAG,OAC5B5P,EAAS6P,EAAG,OAASD,EAAG,OACxB2B,EAAe1B,EAAG,aAAeD,EAAG,aACpC+B,EAAcvC,GAAmBQ,EAAG,KAAK,EACzCgC,EAAmBD,EAAc7B,EAAY9P,EAC7C6R,EAAgBF,EAAcT,EAAaK,EA8BjD,GA7BIrB,IAAc,OAASZ,GAAYtP,CAAM,EAC3CkQ,EAAY,OACHA,IAAc,UAAYX,GAAevP,CAAM,KACxDkQ,EAAY,UAEVc,GACFR,EACEZ,EAAG,gBACHoB,EACAY,EACA5B,EACAC,EACAC,EACAC,CAAA,EAEF2B,GAAuBlC,EAAIC,EAAI,EAA0C,GAC/DO,GACVG,EACEX,EACAC,EACA+B,EACAC,EACA7B,EACAC,EACAC,EACAC,EACA,IAGAU,EACGc,EASC9B,EAAG,OAASD,EAAG,OAASC,EAAG,MAAM,KAAOD,EAAG,MAAM,KACnDC,EAAG,MAAM,GAAKD,EAAG,MAAM,IATzBmC,GACElC,EACAC,EACAoB,EACAb,EACA,YAQCR,EAAG,OAASA,EAAG,MAAM,OAASD,EAAG,OAASA,EAAG,MAAM,IAAK,CAC3D,MAAMoC,EAAanC,EAAG,OAASL,GAC7BK,EAAG,MACHa,CAAA,EAEEsB,GACFD,GACElC,EACAmC,EACA,KACA3B,EACA,EASN,MAAWsB,GACTI,GACElC,EACA7P,EACAuR,EACAlB,EACA,GAINoB,GAAc5B,EAAIgB,CAAQ,CAC5B,CACF,EACA,OAAOtC,EAAOyB,EAAiBC,EAAgB,CAAE,GAAIgC,EAAS,EAAG,CAAE,OAAQC,CAAA,CAAW,EAAKC,EAAU,CACnG,KAAM,CACJ,UAAArB,EACA,SAAAC,EACA,OAAAhB,EACA,YAAAqC,EACA,aAAAb,EACA,OAAAvR,EACA,MAAAzF,CAAA,EACEgU,EAMJ,GALIvO,IACFkS,EAAWE,CAAW,EACtBF,EAAWX,CAAY,GAEzBY,GAAYD,EAAWnC,CAAM,EACzBe,EAAY,GAAI,CAClB,MAAMuB,EAAeF,GAAY,CAAC/C,GAAmB7U,CAAK,EAC1D,QAASzD,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IAAK,CACxC,MAAMwb,EAAQvB,EAASja,CAAC,EACxBmb,EACEK,EACAtC,EACAC,EACAoC,EACA,CAAC,CAACC,EAAM,gBAEZ,CACF,CACF,EACA,KAAMP,GACN,QAASQ,EACX,EACA,SAASR,GAAaxD,EAAOuB,EAAW0C,EAAc,CAAE,EAAG,CAAE,OAAA/B,CAAA,EAAU,EAAGgC,GAAQC,EAAW,EAAG,CAC1FA,IAAa,GACfjC,EAAOlC,EAAM,aAAcuB,EAAW0C,CAAY,EAEpD,KAAM,CAAE,GAAA3b,EAAI,OAAAkZ,EAAQ,UAAAe,EAAW,SAAAC,EAAU,MAAAxW,GAAUgU,EAC7CoE,EAAYD,IAAa,EAI/B,GAHIC,GACFlC,EAAO5Z,EAAIiZ,EAAW0C,CAAY,GAEhC,CAACG,GAAavD,GAAmB7U,CAAK,IACpCuW,EAAY,GACd,QAASha,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IACnC2b,EACE1B,EAASja,CAAC,EACVgZ,EACA0C,EACA,GAKJG,GACFlC,EAAOV,EAAQD,EAAW0C,CAAY,CAE1C,CACA,SAASD,GAAgBK,EAAMrE,EAAOyB,EAAiBC,EAAgBE,EAAcC,EAAW,CAC9F,EAAG,CAAE,YAAAyC,EAAa,WAAAC,EAAY,cAAApC,EAAe,OAAAD,EAAQ,WAAAE,CAAA,CACvD,EAAGoC,EAAiB,CAClB,SAASC,EAAwBC,EAAOC,EAAQd,EAAab,EAAc,CACzE2B,EAAO,OAASH,EACdF,EAAYI,CAAK,EACjBC,EACAJ,EAAWG,CAAK,EAChBjD,EACAC,EACAE,EACAC,CAAA,EAEF8C,EAAO,YAAcd,EACrBc,EAAO,aAAe3B,CACxB,CACA,MAAMvR,EAASuO,EAAM,OAASiB,GAC5BjB,EAAM,MACNmC,CAAA,EAEIG,EAAWzB,GAAmBb,EAAM,KAAK,EAC/C,GAAIvO,EAAQ,CACV,MAAMmT,EAAanT,EAAO,MAAQA,EAAO,WACzC,GAAIuO,EAAM,UAAY,GACpB,GAAIsC,EACFmC,EACEJ,EACArE,EACA4E,EACAA,GAAcN,EAAYM,CAAU,OAEjC,CACL5E,EAAM,OAASsE,EAAYD,CAAI,EAC/B,IAAIrB,EAAe4B,EACnB,KAAO5B,GAAc,CACnB,GAAIA,GAAgBA,EAAa,WAAa,GAC5C,GAAIA,EAAa,OAAS,wBACxBhD,EAAM,YAAcgD,UACXA,EAAa,OAAS,kBAAmB,CAClDhD,EAAM,aAAegD,EACrBvR,EAAO,KAAOuO,EAAM,cAAgBsE,EAAYtE,EAAM,YAAY,EAClE,KACF,EAEFgD,EAAesB,EAAYtB,CAAY,CACzC,CACKhD,EAAM,cACTiD,GAAcxR,EAAQuO,EAAOoC,EAAYF,CAAM,EAEjDsC,EACEI,GAAcN,EAAYM,CAAU,EACpC5E,EACAvO,EACAgQ,EACAC,EACAE,EACAC,CAAA,CAEJ,CAEFqB,GAAclD,EAAOsC,CAAQ,CAC/B,MAAWA,GACLtC,EAAM,UAAY,IACpByE,EAAwBJ,EAAMrE,EAAOqE,EAAMC,EAAYD,CAAI,CAAC,EAGhE,OAAOrE,EAAM,QAAUsE,EAAYtE,EAAM,MAAM,CACjD,CACA,MAAM6E,GAAWzD,GACjB,SAAS8B,GAAclD,EAAO8E,EAAY,CACxC,MAAMpF,EAAMM,EAAM,IAClB,GAAIN,GAAOA,EAAI,GAAI,CACjB,IAAI2E,EAAM7C,EAQV,IAPIsD,GACFT,EAAOrE,EAAM,GACbwB,EAASxB,EAAM,SAEfqE,EAAOrE,EAAM,YACbwB,EAASxB,EAAM,cAEVqE,GAAQA,IAAS7C,GAClB6C,EAAK,WAAa,KAAQ,aAAa,eAAgB3E,EAAI,GAAG,EAClE2E,EAAOA,EAAK,YAEd3E,EAAI,IACN,CACF,CACA,SAASuD,GAAcxR,EAAQuO,EAAOoC,EAAYF,EAAQ,CACxD,MAAM2B,EAAc7D,EAAM,YAAcoC,EAAW,EAAE,EAC/CY,EAAehD,EAAM,aAAeoC,EAAW,EAAE,EACvD,OAAAyB,EAAYlD,EAAc,EAAIqC,EAC1BvR,IACFyQ,EAAO2B,EAAapS,CAAM,EAC1ByQ,EAAOc,EAAcvR,CAAM,GAEtBuR,CACT,CAEA,MAAM+B,GAAa,OAAO,UAAU,EAC9BC,GAAa,OAAO,UAAU,EACpC,SAASC,IAAqB,CAC5B,MAAMC,EAAQ,CACZ,UAAW,GACX,UAAW,GACX,aAAc,GACd,kBAAmC,GAAI,EAEzC,OAAAC,GAAU,IAAM,CACdD,EAAM,UAAY,EACpB,CAAC,EACDE,GAAgB,IAAM,CACpBF,EAAM,aAAe,EACvB,CAAC,EACMA,CACT,CACA,MAAMG,GAA0B,CAAC,SAAU,KAAK,EAC1CC,GAAgC,CACpC,KAAM,OACN,OAAQ,QACR,UAAW,QAEX,cAAeD,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,cAAeA,GACf,QAASA,GACT,aAAcA,GACd,iBAAkBA,GAElB,eAAgBA,GAChB,SAAUA,GACV,cAAeA,GACf,kBAAmBA,EACrB,EACME,GAAuB3I,GAAa,CACxC,MAAM4I,EAAU5I,EAAS,QACzB,OAAO4I,EAAQ,UAAYD,GAAoBC,EAAQ,SAAS,EAAIA,CACtE,EACMC,GAAqB,CACzB,KAAM,iBACN,MAAOH,GACP,MAAMtZ,EAAO,CAAE,MAAA0Z,GAAS,CACtB,MAAM9I,EAAW+I,GAAA,EACXT,EAAQD,GAAA,EACd,MAAO,IAAM,CACX,MAAMzC,EAAWkD,EAAM,SAAWE,GAAyBF,EAAM,UAAW,EAAI,EAChF,GAAI,CAAClD,GAAY,CAACA,EAAS,OACzB,OAEF,MAAMuB,EAAQ8B,GAAoBrD,CAAQ,EACpCsD,EAAWpT,GAAM1G,CAAK,EACtB,CAAE,KAAA+Z,GAASD,EAIjB,GAAIZ,EAAM,UACR,OAAOc,GAAiBjC,CAAK,EAE/B,MAAMkC,EAAaC,GAAgBnC,CAAK,EACxC,GAAI,CAACkC,EACH,OAAOD,GAAiBjC,CAAK,EAE/B,IAAIoC,EAAaC,GACfH,EACAH,EACAZ,EACAtI,EAECyJ,GAAUF,EAAaE,CAAA,EAEtBJ,EAAW,OAASK,IACtBC,GAAmBN,EAAYE,CAAU,EAE3C,IAAIK,EAAgB5J,EAAS,SAAWsJ,GAAgBtJ,EAAS,OAAO,EACxE,GAAI4J,GAAiBA,EAAc,OAASF,IAAW,CAACG,GAAgBD,EAAeP,CAAU,GAAKV,GAAoB3I,CAAQ,EAAE,OAAS0J,GAAS,CACpJ,IAAII,EAAeN,GACjBI,EACAV,EACAZ,EACAtI,CAAA,EAGF,GADA2J,GAAmBC,EAAeE,CAAY,EAC1CX,IAAS,UAAYE,EAAW,OAASK,GAC3C,OAAApB,EAAM,UAAY,GAClBwB,EAAa,WAAa,IAAM,CAC9BxB,EAAM,UAAY,GACZtI,EAAS,IAAI,MAAQ,GACzBA,EAAS,SAEX,OAAO8J,EAAa,WACpBF,EAAgB,MAClB,EACOR,GAAiBjC,CAAK,EACpBgC,IAAS,UAAYE,EAAW,OAASK,GAClDI,EAAa,WAAa,CAACpe,EAAIqe,EAAaC,IAAiB,CAC3D,MAAMC,EAAqBC,GACzB5B,EACAsB,CAAA,EAEFK,EAAmB,OAAOL,EAAc,GAAG,CAAC,EAAIA,EAChDle,EAAGyc,EAAU,EAAI,IAAM,CACrB4B,EAAA,EACAre,EAAGyc,EAAU,EAAI,OACjB,OAAOoB,EAAW,aAClBK,EAAgB,MAClB,EACAL,EAAW,aAAe,IAAM,CAC9BS,EAAA,EACA,OAAOT,EAAW,aAClBK,EAAgB,MAClB,CACF,EAEAA,EAAgB,MAEpB,MAAWA,IACTA,EAAgB,QAElB,OAAOzC,CACT,CACF,CACF,EACA,SAAS8B,GAAoBrD,EAAU,CACrC,IAAIuB,EAAQvB,EAAS,CAAC,EACtB,GAAIA,EAAS,OAAS,GAEpB,UAAWxY,KAAKwY,EACd,GAAIxY,EAAE,OAASsc,GAAS,CAOtBvC,EAAQ/Z,EAEwC,KAClD,EAGJ,OAAO+Z,CACT,CACA,MAAMgD,GAAiBtB,GACvB,SAASqB,GAAuB5B,EAAOlF,EAAO,CAC5C,KAAM,CAAE,cAAAgH,GAAkB9B,EAC1B,IAAI2B,EAAqBG,EAAc,IAAIhH,EAAM,IAAI,EACrD,OAAK6G,IACHA,EAAqC,OAAO,OAAO,IAAI,EACvDG,EAAc,IAAIhH,EAAM,KAAM6G,CAAkB,GAE3CA,CACT,CACA,SAAST,GAAuBpG,EAAOhU,EAAOkZ,EAAOtI,EAAUqK,EAAW,CACxE,KAAM,CACJ,OAAAC,EACA,KAAAnB,EACA,UAAAoB,EAAY,GACZ,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,QAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,SAAAC,EACA,cAAAC,EACA,kBAAAC,CAAA,EACE/b,EACErE,EAAM,OAAOqY,EAAM,GAAG,EACtB6G,EAAqBC,GAAuB5B,EAAOlF,CAAK,EACxDgI,EAAW,CAACtH,EAAM1N,IAAS,CAC/B0N,GAAQ5D,GACN4D,EACA9D,EACA,EACA5J,CAAA,CAEJ,EACMiV,EAAgB,CAACvH,EAAM1N,IAAS,CACpC,MAAMwD,EAAOxD,EAAK,CAAC,EACnBgV,EAAStH,EAAM1N,CAAI,EACftK,GAAQgY,CAAI,EACVA,EAAK,MAAOwH,GAAUA,EAAM,QAAU,CAAC,GAAG1R,EAAA,EACrCkK,EAAK,QAAU,GACxBlK,EAAA,CAEJ,EACM6P,EAAQ,CACZ,KAAAN,EACA,UAAAoB,EACA,YAAY7e,EAAI,CACd,IAAIoY,EAAO0G,EACX,GAAI,CAAClC,EAAM,UACT,GAAIgC,EACFxG,EAAOkH,GAAkBR,MAEzB,QAGA9e,EAAGyc,EAAU,GACfzc,EAAGyc,EAAU,EACX,IAIJ,MAAMoD,EAAetB,EAAmBlf,CAAG,EACvCwgB,GAAgB1B,GAAgBzG,EAAOmI,CAAY,GAAKA,EAAa,GAAGpD,EAAU,GACpFoD,EAAa,GAAGpD,EAAU,IAE5BiD,EAAStH,EAAM,CAACpY,CAAE,CAAC,CACrB,EACA,MAAMA,EAAI,CACR,IAAIoY,EAAO2G,EACPe,EAAYd,EACZe,EAAad,EACjB,GAAI,CAACrC,EAAM,UACT,GAAIgC,EACFxG,EAAOmH,GAAYR,EACnBe,EAAYN,GAAiBR,EAC7Be,EAAaN,GAAqBR,MAElC,QAGJ,IAAIe,EAAS,GACb,MAAM9R,GAAOlO,EAAG0c,EAAU,EAAKuD,IAAc,CACvCD,IACJA,EAAS,GACLC,GACFP,EAASK,EAAY,CAAC/f,CAAE,CAAC,EAEzB0f,EAASI,EAAW,CAAC9f,CAAE,CAAC,EAEtB+d,EAAM,cACRA,EAAM,eAER/d,EAAG0c,EAAU,EAAI,OACnB,EACItE,EACFuH,EAAcvH,EAAM,CAACpY,EAAIkO,EAAI,CAAC,EAE9BA,GAAA,CAEJ,EACA,MAAMlO,EAAIF,EAAQ,CAChB,MAAM+J,EAAO,OAAO6N,EAAM,GAAG,EAO7B,GANI1X,EAAG0c,EAAU,GACf1c,EAAG0c,EAAU,EACX,IAIAE,EAAM,aACR,OAAO9c,IAET4f,EAASR,EAAe,CAAClf,CAAE,CAAC,EAC5B,IAAIggB,EAAS,GACb,MAAM9R,EAAOlO,EAAGyc,EAAU,EAAKwD,IAAc,CACvCD,IACJA,EAAS,GACTlgB,IACImgB,GACFP,EAASL,EAAkB,CAACrf,CAAE,CAAC,EAE/B0f,EAASN,EAAc,CAACpf,CAAE,CAAC,EAE7BA,EAAGyc,EAAU,EAAI,OACb8B,EAAmB1U,CAAI,IAAM6N,GAC/B,OAAO6G,EAAmB1U,CAAI,EAElC,EACA0U,EAAmB1U,CAAI,EAAI6N,EACvByH,EACFQ,EAAcR,EAAS,CAACnf,EAAIkO,CAAI,CAAC,EAEjCA,EAAA,CAEJ,EACA,MAAMmO,EAAQ,CACZ,MAAM6D,EAASpC,GACbzB,EACA3Y,EACAkZ,EACAtI,EACAqK,CAAA,EAEF,OAAIA,KAAqBuB,CAAM,EACxBA,CACT,GAEF,OAAOnC,CACT,CACA,SAASL,GAAiBhG,EAAO,CAC/B,GAAIyI,GAAYzI,CAAK,EACnB,OAAAA,EAAQ0I,GAAW1I,CAAK,EACxBA,EAAM,SAAW,KACVA,CAEX,CACA,SAASkG,GAAgBlG,EAAO,CAC9B,GAAI,CAACyI,GAAYzI,CAAK,EACpB,OAAIY,GAAWZ,EAAM,IAAI,GAAKA,EAAM,SAC3B6F,GAAoB7F,EAAM,QAAQ,EAEpCA,EAET,GAAIA,EAAM,UACR,OAAOA,EAAM,UAAU,QAEzB,KAAM,CAAE,UAAAuC,EAAW,SAAAC,CAAA,EAAaxC,EAChC,GAAIwC,EAAU,CACZ,GAAID,EAAY,GACd,OAAOC,EAAS,CAAC,EAEnB,GAAID,EAAY,IAAMvZ,GAAWwZ,EAAS,OAAO,EAC/C,OAAOA,EAAS,SAEpB,CACF,CACA,SAAS+D,GAAmBvG,EAAOqG,EAAO,CACpCrG,EAAM,UAAY,GAAKA,EAAM,WAC/BA,EAAM,WAAaqG,EACnBE,GAAmBvG,EAAM,UAAU,QAASqG,CAAK,GACxCrG,EAAM,UAAY,KAC3BA,EAAM,UAAU,WAAaqG,EAAM,MAAMrG,EAAM,SAAS,EACxDA,EAAM,WAAW,WAAaqG,EAAM,MAAMrG,EAAM,UAAU,GAE1DA,EAAM,WAAaqG,CAEvB,CACA,SAAST,GAAyBpD,EAAUmG,EAAc,GAAOC,EAAW,CAC1E,IAAIjd,EAAM,GACNkd,EAAqB,EACzB,QAAStgB,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IAAK,CACxC,IAAIwb,EAAQvB,EAASja,CAAC,EACtB,MAAMZ,EAAMihB,GAAa,KAAO7E,EAAM,IAAM,OAAO6E,CAAS,EAAI,OAAO7E,EAAM,KAAO,KAAOA,EAAM,IAAMxb,CAAC,EACpGwb,EAAM,OAAS+E,IACb/E,EAAM,UAAY,KAAK8E,IAC3Bld,EAAMA,EAAI,OACRia,GAAyB7B,EAAM,SAAU4E,EAAahhB,CAAG,KAElDghB,GAAe5E,EAAM,OAASuC,KACvC3a,EAAI,KAAKhE,GAAO,KAAO+gB,GAAW3E,EAAO,CAAE,IAAApc,EAAK,EAAIoc,CAAK,CAE7D,CACA,GAAI8E,EAAqB,EACvB,QAAStgB,EAAI,EAAGA,EAAIoD,EAAI,OAAQpD,IAC9BoD,EAAIpD,CAAC,EAAE,UAAY,GAGvB,OAAOoD,CACT,CAGA,SAASod,GAAgB9N,EAAS+N,EAAc,CAC9C,OAAOhgB,GAAWiS,CAAO,EAGA9S,GAAO,CAAE,KAAM8S,EAAQ,MAAQ+N,EAAc,CAAE,MAAO/N,EAAS,EACpFA,CACN,CAaA,SAASgO,GAAkBrM,EAAU,CACnCA,EAAS,IAAM,CAACA,EAAS,IAAI,CAAC,EAAIA,EAAS,IAAI,CAAC,IAAM,IAAK,EAAG,CAAC,CACjE,CAGA,SAASsM,GAAevhB,EAAK,CAC3B,MAAMY,EAAIod,GAAA,EACJrN,EAAIG,GAAW,IAAI,EACzB,GAAIlQ,EAAG,CACL,MAAM4gB,EAAO5gB,EAAE,OAASV,GAAYU,EAAE,KAAO,GAAKA,EAAE,KAKlD,OAAO,eAAe4gB,EAAMxhB,EAAK,CAC/B,WAAY,GACZ,IAAK,IAAM2Q,EAAE,MACb,IAAM1Q,GAAQ0Q,EAAE,MAAQ1Q,CAAA,CACzB,CAEL,CASA,OAJsE0Q,CAKxE,CAEA,MAAM8Q,OAAuC,QAC7C,SAASC,GAAOC,EAAQC,EAAW7H,EAAgB1B,EAAOwJ,EAAY,GAAO,CAC3E,GAAI9gB,GAAQ4gB,CAAM,EAAG,CACnBA,EAAO,QACL,CAAChR,EAAG/P,IAAM8gB,GACR/Q,EACAiR,IAAc7gB,GAAQ6gB,CAAS,EAAIA,EAAUhhB,CAAC,EAAIghB,GAClD7H,EACA1B,EACAwJ,CAAA,CACF,EAEF,MACF,CACA,GAAIC,GAAezJ,CAAK,GAAK,CAACwJ,EAAW,CACnCxJ,EAAM,UAAY,KAAOA,EAAM,KAAK,iBAAmBA,EAAM,UAAU,QAAQ,WACjFqJ,GAAOC,EAAQC,EAAW7H,EAAgB1B,EAAM,UAAU,OAAO,EAEnE,MACF,CACA,MAAM0J,EAAW1J,EAAM,UAAY,EAAIE,GAA2BF,EAAM,SAAS,EAAIA,EAAM,GACrF1W,EAAQkgB,EAAY,KAAOE,EAC3B,CAAE7O,EAAU,EAAGtC,GAAQ+Q,EAOvBK,EAASJ,GAAaA,EAAU,EAChCJ,EAAOtO,EAAM,OAAShT,GAAYgT,EAAM,KAAO,GAAKA,EAAM,KAC1D+O,EAAa/O,EAAM,WACnBgP,EAAgBnX,GAAMkX,CAAU,EAChCE,EAAiBF,IAAe/hB,GAAYG,GAAML,GAW/Cc,GAAOohB,EAAeliB,CAAG,EAKlC,GAAIgiB,GAAU,MAAQA,IAAWpR,GAE/B,GADAwR,GAAwBR,CAAS,EAC7BtgB,GAAS0gB,CAAM,EACjBR,EAAKQ,CAAM,EAAI,KACXG,EAAeH,CAAM,IACvBC,EAAWD,CAAM,EAAI,cAEdzc,GAAMyc,CAAM,EAAG,CAEtBA,EAAO,MAAQ,KAEjB,MAAMK,EAAgBT,EAClBS,EAAc,IAAGb,EAAKa,EAAc,CAAC,EAAI,KAC/C,EAEF,GAAIhhB,GAAWuP,CAAG,EAChBoE,GAAsBpE,EAAKsC,EAAO,GAAI,CAACvR,EAAO6f,CAAI,CAAC,MAC9C,CACL,MAAMc,EAAYhhB,GAASsP,CAAG,EACxB2R,EAAShd,GAAMqL,CAAG,EACxB,GAAI0R,GAAaC,EAAQ,CACvB,MAAMC,EAAQ,IAAM,CAClB,GAAIb,EAAO,EAAG,CACZ,MAAMc,EAAWH,EAAYH,EAAevR,CAAG,EAAIqR,EAAWrR,CAAG,EAAI4Q,EAAK5Q,CAAG,EAAkCA,EAAI,MACnH,GAAIiR,EACF9gB,GAAQ0hB,CAAQ,GAAKhiB,GAAOgiB,EAAUV,CAAQ,UAEzChhB,GAAQ0hB,CAAQ,EAaTA,EAAS,SAASV,CAAQ,GACpCU,EAAS,KAAKV,CAAQ,UAblBO,EACFd,EAAK5Q,CAAG,EAAI,CAACmR,CAAQ,EACjBI,EAAevR,CAAG,IACpBqR,EAAWrR,CAAG,EAAI4Q,EAAK5Q,CAAG,OAEvB,CACL,MAAMgB,EAAS,CAACmQ,CAAQ,EAEtBnR,EAAI,MAAQgB,EAEV+P,EAAO,IAAGH,EAAKG,EAAO,CAAC,EAAI/P,EACjC,CAKN,MAAW0Q,GACTd,EAAK5Q,CAAG,EAAIjP,EACRwgB,EAAevR,CAAG,IACpBqR,EAAWrR,CAAG,EAAIjP,IAEX4gB,IAEP3R,EAAI,MAAQjP,EAEVggB,EAAO,IAAGH,EAAKG,EAAO,CAAC,EAAIhgB,GAInC,EACA,GAAIA,EAAO,CACT,MAAMgT,EAAM,IAAM,CAChB6N,EAAA,EACAf,GAAiB,OAAOE,CAAM,CAChC,EACAhN,EAAI,GAAK,GACT8M,GAAiB,IAAIE,EAAQhN,CAAG,EAChC6G,GAAsB7G,EAAKoF,CAAc,CAC3C,MACEqI,GAAwBT,CAAM,EAC9Ba,EAAA,CAEJ,CAGF,CACF,CACA,SAASJ,GAAwBT,EAAQ,CACvC,MAAMe,EAAgBjB,GAAiB,IAAIE,CAAM,EAC7Ce,IACFA,EAAc,OAAS,EACvBjB,GAAiB,OAAOE,CAAM,EAElC,CA8oB4Bre,KAAgB,oBACjBA,GAAA,EAAgB,mBA0F3C,MAAMwe,GAAkBlhB,GAAM,CAAC,CAACA,EAAE,KAAK,cA2KjCkgB,GAAezI,GAAUA,EAAM,KAAK,cACpCsK,GAAgB,CACpB,KAAM,YAIN,cAAe,GACf,MAAO,CACL,QAAS,CAAC,OAAQ,OAAQ,KAAK,EAC/B,QAAS,CAAC,OAAQ,OAAQ,KAAK,EAC/B,IAAK,CAAC,OAAQ,MAAM,GAEtB,MAAMte,EAAO,CAAE,MAAA0Z,GAAS,CACtB,MAAM9I,EAAW+I,GAAA,EACX4E,EAAgB3N,EAAS,IAC/B,GAAI,CAAC2N,EAAc,SACjB,MAAO,IAAM,CACX,MAAM/H,EAAWkD,EAAM,SAAWA,EAAM,UACxC,OAAOlD,GAAYA,EAAS,SAAW,EAAIA,EAAS,CAAC,EAAIA,CAC3D,EAEF,MAAM3Y,MAA4B,IAC5B2gB,MAA2B,IACjC,IAAIC,EAAU,KAId,MAAM/I,EAAiB9E,EAAS,SAC1B,CACJ,SAAU,CACR,EAAG8N,EACH,EAAGxG,EACH,GAAIyG,EACJ,EAAG,CAAE,cAAAC,CAAA,CAAc,CACrB,EACEL,EACEM,EAAmBD,EAAc,KAAK,EAC5CL,EAAc,SAAW,CAACvK,EAAOuB,EAAWC,EAAQG,EAAWE,IAAc,CAC3E,MAAMiJ,EAAY9K,EAAM,UACxBkE,EAAKlE,EAAOuB,EAAWC,EAAQ,EAAGE,CAAc,EAChDgJ,EACEI,EAAU,MACV9K,EACAuB,EACAC,EACAsJ,EACApJ,EACAC,EACA3B,EAAM,aACN6B,CAAA,EAEFsB,GAAsB,IAAM,CAC1B2H,EAAU,cAAgB,GACtBA,EAAU,GACZvgB,GAAeugB,EAAU,CAAC,EAE5B,MAAMC,EAAY/K,EAAM,OAASA,EAAM,MAAM,eACzC+K,GACFC,GAAgBD,EAAWD,EAAU,OAAQ9K,CAAK,CAEtD,EAAG0B,CAAc,CAInB,EACA6I,EAAc,WAAcvK,GAAU,CACpC,MAAM8K,EAAY9K,EAAM,UACxBiL,GAAgBH,EAAU,CAAC,EAC3BG,GAAgBH,EAAU,CAAC,EAC3B5G,EAAKlE,EAAO6K,EAAkB,KAAM,EAAGnJ,CAAc,EACrDyB,GAAsB,IAAM,CACtB2H,EAAU,IACZvgB,GAAeugB,EAAU,EAAE,EAE7B,MAAMC,EAAY/K,EAAM,OAASA,EAAM,MAAM,iBACzC+K,GACFC,GAAgBD,EAAWD,EAAU,OAAQ9K,CAAK,EAEpD8K,EAAU,cAAgB,EAC5B,EAAGpJ,CAAc,CAOnB,EACA,SAASgC,EAAQ1D,EAAO,CACtBkL,GAAelL,CAAK,EACpB2K,EAAS3K,EAAOpD,EAAU8E,EAAgB,EAAI,CAChD,CACA,SAASyJ,EAAWC,EAAQ,CAC1BvhB,EAAM,QAAQ,CAACmW,EAAOrY,IAAQ,CAC5B,MAAMmE,EAAOuf,GAAiBrL,EAAM,IAAI,EACpClU,GAAQ,CAACsf,EAAOtf,CAAI,GACtBwf,EAAgB3jB,CAAG,CAEvB,CAAC,CACH,CACA,SAAS2jB,EAAgB3jB,EAAK,CAC5B,MAAM4jB,EAAS1hB,EAAM,IAAIlC,CAAG,EACxB4jB,IAAW,CAACd,GAAW,CAAChE,GAAgB8E,EAAQd,CAAO,GACzD/G,EAAQ6H,CAAM,EACLd,GACTS,GAAeT,CAAO,EAExB5gB,EAAM,OAAOlC,CAAG,EAChB6iB,EAAK,OAAO7iB,CAAG,CACjB,CACAoT,GACE,IAAM,CAAC/O,EAAM,QAASA,EAAM,OAAO,EACnC,CAAC,CAACwf,EAASC,CAAO,IAAM,CACtBD,GAAWL,EAAYrf,GAAS4f,GAAQF,EAAS1f,CAAI,CAAC,EACtD2f,GAAWN,EAAYrf,GAAS,CAAC4f,GAAQD,EAAS3f,CAAI,CAAC,CACzD,EAEA,CAAE,MAAO,OAAQ,KAAM,GAAK,EAE9B,IAAI6f,EAAkB,KACtB,MAAMC,EAAe,IAAM,CACrBD,GAAmB,OACjBE,GAAWjP,EAAS,QAAQ,IAAI,EAClCuG,GAAsB,IAAM,CAC1BtZ,EAAM,IAAI8hB,EAAiBG,GAAclP,EAAS,OAAO,CAAC,CAC5D,EAAGA,EAAS,QAAQ,QAAQ,EAE5B/S,EAAM,IAAI8hB,EAAiBG,GAAclP,EAAS,OAAO,CAAC,EAGhE,EACA,OAAAuI,GAAUyG,CAAY,EACtBG,GAAUH,CAAY,EACtBxG,GAAgB,IAAM,CACpBvb,EAAM,QAAS0hB,GAAW,CACxB,KAAM,CAAE,QAAA/F,EAAS,SAAAwG,CAAA,EAAapP,EACxBoD,EAAQ8L,GAActG,CAAO,EACnC,GAAI+F,EAAO,OAASvL,EAAM,MAAQuL,EAAO,MAAQvL,EAAM,IAAK,CAC1DkL,GAAelL,CAAK,EACpB,MAAMiM,EAAKjM,EAAM,UAAU,GAC3BiM,GAAM9I,GAAsB8I,EAAID,CAAQ,EACxC,MACF,CACAtI,EAAQ6H,CAAM,CAChB,CAAC,CACH,CAAC,EACM,IAAM,CAEX,GADAI,EAAkB,KACd,CAACjG,EAAM,QACT,OAAO+E,EAAU,KAEnB,MAAMjI,EAAWkD,EAAM,UACjBwG,EAAW1J,EAAS,CAAC,EAC3B,GAAIA,EAAS,OAAS,EAIpB,OAAAiI,EAAU,KACHjI,EACT,GAAW,CAAC2J,GAAQD,CAAQ,GAAK,EAAEA,EAAS,UAAY,IAAM,EAAEA,EAAS,UAAY,KACnF,OAAAzB,EAAU,KACHyB,EAET,IAAIlM,EAAQ8L,GAAcI,CAAQ,EAClC,GAAIlM,EAAM,OAASsG,GACjB,OAAAmE,EAAU,KACHzK,EAET,MAAMoM,EAAOpM,EAAM,KACblU,EAAOuf,GACX5B,GAAezJ,CAAK,EAAIA,EAAM,KAAK,iBAAmB,GAAKoM,CAAA,EAEvD,CAAE,QAAAZ,EAAS,QAAAC,EAAS,IAAAY,CAAA,EAAQrgB,EAClC,GAAIwf,IAAY,CAAC1f,GAAQ,CAAC4f,GAAQF,EAAS1f,CAAI,IAAM2f,GAAW3f,GAAQ4f,GAAQD,EAAS3f,CAAI,EAC3F,OAAAkU,EAAM,WAAa,KACnByK,EAAUzK,EACHkM,EAET,MAAMvkB,EAAMqY,EAAM,KAAO,KAAOoM,EAAOpM,EAAM,IACvCsM,EAAcziB,EAAM,IAAIlC,CAAG,EACjC,OAAIqY,EAAM,KACRA,EAAQ0I,GAAW1I,CAAK,EACpBkM,EAAS,UAAY,MACvBA,EAAS,UAAYlM,IAGzB2L,EAAkBhkB,EACd2kB,GACFtM,EAAM,GAAKsM,EAAY,GACvBtM,EAAM,UAAYsM,EAAY,UAC1BtM,EAAM,YACRuG,GAAmBvG,EAAOA,EAAM,UAAU,EAE5CA,EAAM,WAAa,IACnBwK,EAAK,OAAO7iB,CAAG,EACf6iB,EAAK,IAAI7iB,CAAG,IAEZ6iB,EAAK,IAAI7iB,CAAG,EACR0kB,GAAO7B,EAAK,KAAO,SAAS6B,EAAK,EAAE,GACrCf,EAAgBd,EAAK,SAAS,OAAO,KAAK,GAG9CxK,EAAM,WAAa,IACnByK,EAAUzK,EACH6L,GAAWK,EAAS,IAAI,EAAIA,EAAWlM,CAChD,CACF,CACF,EACMuM,GAAYjC,GAClB,SAASoB,GAAQc,EAAS1gB,EAAM,CAC9B,OAAIpD,GAAQ8jB,CAAO,EACVA,EAAQ,KAAMtO,GAAMwN,GAAQxN,EAAGpS,CAAI,CAAC,EAClC7C,GAASujB,CAAO,EAClBA,EAAQ,MAAM,GAAG,EAAE,SAAS1gB,CAAI,EAC9B/C,GAASyjB,CAAO,GACzBA,EAAQ,UAAY,EACbA,EAAQ,KAAK1gB,CAAI,GAEnB,EACT,CACA,SAAS2gB,GAAY/L,EAAMjP,EAAQ,CACjCib,GAAsBhM,EAAM,IAAKjP,CAAM,CACzC,CACA,SAASkb,GAAcjM,EAAMjP,EAAQ,CACnCib,GAAsBhM,EAAM,KAAMjP,CAAM,CAC1C,CACA,SAASib,GAAsBhM,EAAMhP,EAAMD,EAASmb,GAAiB,CACnE,MAAMC,EAAcnM,EAAK,QAAUA,EAAK,MAAQ,IAAM,CACpD,IAAI+J,EAAUhZ,EACd,KAAOgZ,GAAS,CACd,GAAIA,EAAQ,cACV,OAEFA,EAAUA,EAAQ,MACpB,CACA,OAAO/J,EAAA,CACT,GAEA,GADAoM,GAAWpb,EAAMmb,EAAapb,CAAM,EAChCA,EAAQ,CACV,IAAIgZ,EAAUhZ,EAAO,OACrB,KAAOgZ,GAAWA,EAAQ,QACpBhC,GAAYgC,EAAQ,OAAO,KAAK,GAClCsC,GAAsBF,EAAanb,EAAMD,EAAQgZ,CAAO,EAE1DA,EAAUA,EAAQ,MAEtB,CACF,CACA,SAASsC,GAAsBrM,EAAMhP,EAAMD,EAAQub,EAAe,CAChE,MAAMC,EAAWH,GACfpb,EACAgP,EACAsM,EACA,IAGFE,GAAY,IAAM,CAChB9kB,GAAO4kB,EAActb,CAAI,EAAGub,CAAQ,CACtC,EAAGxb,CAAM,CACX,CACA,SAASyZ,GAAelL,EAAO,CAC7BA,EAAM,WAAa,KACnBA,EAAM,WAAa,IACrB,CACA,SAAS8L,GAAc9L,EAAO,CAC5B,OAAOA,EAAM,UAAY,IAAMA,EAAM,UAAYA,CACnD,CAEA,SAAS8M,GAAWpb,EAAMgP,EAAMjP,EAASmb,GAAiBO,EAAU,GAAO,CACzE,GAAI1b,EAAQ,CACV,MAAM4U,EAAQ5U,EAAOC,CAAI,IAAMD,EAAOC,CAAI,EAAI,IACxCmb,EAAcnM,EAAK,QAAUA,EAAK,MAAQ,IAAI1N,IAAS,CAC3DpC,GAAA,EACA,MAAMwc,EAAQC,GAAmB5b,CAAM,EACjCtG,EAAM2R,GAA2B4D,EAAMjP,EAAQC,EAAMsB,CAAI,EAC/D,OAAAoa,EAAA,EACAvc,GAAA,EACO1F,CACT,GACA,OAAIgiB,EACF9G,EAAM,QAAQwG,CAAW,EAEzBxG,EAAM,KAAKwG,CAAW,EAEjBA,CACT,CAMF,CACA,MAAMS,GAAcC,GAAc,CAAC7M,EAAMjP,EAASmb,KAAoB,EAChE,CAACY,IAAyBD,IAAc,OAC1CT,GAAWS,EAAW,IAAIva,IAAS0N,EAAK,GAAG1N,CAAI,EAAGvB,CAAM,CAE5D,EACMgc,GAAgBH,GAAW,IAAI,EAC/BnI,GAAYmI,GAAW,GAAG,EAC1BI,GAAiBJ,GACrB,IACF,EACMvB,GAAYuB,GAAW,GAAG,EAC1BlI,GAAkBkI,GACtB,KACF,EACMJ,GAAcI,GAAW,IAAI,EAC7BK,GAAmBL,GACvB,IACF,EACMM,GAAoBN,GAAW,KAAK,EACpCO,GAAkBP,GAAW,KAAK,EACxC,SAASQ,GAAgBpN,EAAMjP,EAASmb,GAAiB,CACvDE,GAAW,KAAMpM,EAAMjP,CAAM,CAC/B,CAEA,MAAMsc,GAAa,aACbC,GAAa,aACnB,SAASC,GAAiBniB,EAAMoiB,EAAoB,CAClD,OAAOC,GAAaJ,GAAYjiB,EAAM,GAAMoiB,CAAkB,GAAKpiB,CACrE,CACA,MAAMsiB,GAAyB,OAAO,IAAI,OAAO,EACjD,SAASC,GAAwBC,EAAW,CAC1C,OAAIrlB,GAASqlB,CAAS,EACbH,GAAaJ,GAAYO,EAAW,EAAK,GAAKA,EAE9CA,GAAaF,EAExB,CACA,SAASG,GAAiBziB,EAAM,CAC9B,OAAOqiB,GAAaH,GAAYliB,CAAI,CACtC,CACA,SAASqiB,GAAazc,EAAM5F,EAAM0iB,EAAc,GAAMN,EAAqB,GAAO,CAChF,MAAMtR,EAAWwC,IAA4BwN,GAC7C,GAAIhQ,EAAU,CACZ,MAAM6R,EAAY7R,EAAS,KAC3B,GAAIlL,IAASqc,GAAY,CACvB,MAAMW,EAAWrD,GACfoD,EACA,IAEF,GAAIC,IAAaA,IAAa5iB,GAAQ4iB,IAAa3kB,GAAS+B,CAAI,GAAK4iB,IAAavkB,GAAWJ,GAAS+B,CAAI,CAAC,GACzG,OAAO2iB,CAEX,CACA,MAAMtjB,EAGJwjB,GAAQ/R,EAASlL,CAAI,GAAK+c,EAAU/c,CAAI,EAAG5F,CAAI,GAC/C6iB,GAAQ/R,EAAS,WAAWlL,CAAI,EAAG5F,CAAI,EAEzC,MAAI,CAACX,GAAO+iB,EACHO,EAOFtjB,CACT,CAKF,CACA,SAASwjB,GAAQC,EAAU9iB,EAAM,CAC/B,OAAO8iB,IAAaA,EAAS9iB,CAAI,GAAK8iB,EAAS7kB,GAAS+B,CAAI,CAAC,GAAK8iB,EAASzkB,GAAWJ,GAAS+B,CAAI,CAAC,CAAC,EACvG,CAEA,SAAS+iB,GAAW7V,EAAQ8V,EAAYjlB,EAAOuK,EAAO,CACpD,IAAIzI,EACJ,MAAM4f,EAAS1hB,GAASA,EAAMuK,CAAK,EAC7B2a,EAAgBrmB,GAAQsQ,CAAM,EACpC,GAAI+V,GAAiB9lB,GAAS+P,CAAM,EAAG,CACrC,MAAMgW,EAAwBD,GAAiB3W,GAAWY,CAAM,EAChE,IAAIhF,EAAY,GACZib,EAAmB,GACnBD,IACFhb,EAAY,CAACrB,GAAUqG,CAAM,EAC7BiW,EAAmB1Z,GAAWyD,CAAM,EACpCA,EAASnG,GAAiBmG,CAAM,GAElCrN,EAAM,IAAI,MAAMqN,EAAO,MAAM,EAC7B,QAASzQ,EAAI,EAAGuF,EAAIkL,EAAO,OAAQzQ,EAAIuF,EAAGvF,IACxCoD,EAAIpD,CAAC,EAAIumB,EACP9a,EAAYib,EAAmB1Y,GAAW3D,GAAWoG,EAAOzQ,CAAC,CAAC,CAAC,EAAIqK,GAAWoG,EAAOzQ,CAAC,CAAC,EAAIyQ,EAAOzQ,CAAC,EACnGA,EACA,OACAgjB,GAAUA,EAAOhjB,CAAC,EAGxB,SAAW,OAAOyQ,GAAW,SAAU,CAIrCrN,EAAM,IAAI,MAAMqN,CAAM,EACtB,QAAS,EAAI,EAAG,EAAIA,EAAQ,IAC1BrN,EAAI,CAAC,EAAImjB,EAAW,EAAI,EAAG,EAAG,OAAQvD,GAAUA,EAAO,CAAC,CAAC,CAE7D,SAAWpiB,GAAS6P,CAAM,EACxB,GAAIA,EAAO,OAAO,QAAQ,EACxBrN,EAAM,MAAM,KACVqN,EACA,CAAC5N,EAAM7C,IAAMumB,EAAW1jB,EAAM7C,EAAG,OAAQgjB,GAAUA,EAAOhjB,CAAC,CAAC,OAEzD,CACL,MAAMiiB,EAAO,OAAO,KAAKxR,CAAM,EAC/BrN,EAAM,IAAI,MAAM6e,EAAK,MAAM,EAC3B,QAASjiB,EAAI,EAAGuF,EAAI0c,EAAK,OAAQjiB,EAAIuF,EAAGvF,IAAK,CAC3C,MAAMZ,EAAM6iB,EAAKjiB,CAAC,EAClBoD,EAAIpD,CAAC,EAAIumB,EAAW9V,EAAOrR,CAAG,EAAGA,EAAKY,EAAGgjB,GAAUA,EAAOhjB,CAAC,CAAC,CAC9D,CACF,MAEAoD,EAAM,GAER,OAAI9B,IACFA,EAAMuK,CAAK,EAAIzI,GAEVA,CACT,CAEA,SAASujB,GAAYxJ,EAAOyJ,EAAc,CACxC,QAAS5mB,EAAI,EAAGA,EAAI4mB,EAAa,OAAQ5mB,IAAK,CAC5C,MAAM6mB,EAAOD,EAAa5mB,CAAC,EAC3B,GAAIG,GAAQ0mB,CAAI,EACd,QAASC,EAAI,EAAGA,EAAID,EAAK,OAAQC,IAC/B3J,EAAM0J,EAAKC,CAAC,EAAE,IAAI,EAAID,EAAKC,CAAC,EAAE,QAEvBD,IACT1J,EAAM0J,EAAK,IAAI,EAAIA,EAAK,IAAM,IAAIpc,IAAS,CACzC,MAAM7H,EAAMikB,EAAK,GAAG,GAAGpc,CAAI,EAC3B,OAAI7H,IAAKA,EAAI,IAAMikB,EAAK,KACjBjkB,CACT,EAAIikB,EAAK,GAEb,CACA,OAAO1J,CACT,CAEA,SAAS4J,GAAW5J,EAAO5Z,EAAME,EAAQ,GAAIujB,EAAUC,EAAW,CAChE,GAAIpQ,GAAyB,IAAMA,GAAyB,QAAUqK,GAAerK,GAAyB,MAAM,GAAKA,GAAyB,OAAO,GAAI,CAC3J,MAAMqQ,EAAW,OAAO,KAAKzjB,CAAK,EAAE,OAAS,EAC7C,OAAIF,IAAS,YAAWE,EAAM,KAAOF,GAC9B4jB,IAAaC,GAClB7G,GACA,KACA,CAAC8G,GAAY,OAAQ5jB,EAAOujB,GAAYA,EAAA,CAAU,CAAC,EACnDE,EAAW,GAAK,GAEpB,CACA,IAAIL,EAAO1J,EAAM5Z,CAAI,EAOjBsjB,GAAQA,EAAK,KACfA,EAAK,GAAK,IAEZM,EAAA,EACA,MAAMG,EAAmBT,GAAQU,GAAiBV,EAAKpjB,CAAK,CAAC,EACvD+jB,EAAU/jB,EAAM,KAEtB6jB,GAAoBA,EAAiB,IAC/BG,EAAWL,GACf7G,GACA,CACE,KAAMiH,GAAW,CAAC7mB,GAAS6mB,CAAO,EAAIA,EAAU,IAAIjkB,CAAI,KACvD,CAAC+jB,GAAoBN,EAAW,MAAQ,KAE3CM,IAAqBN,EAAWA,EAAA,EAAa,IAC7CM,GAAoBnK,EAAM,IAAM,EAAI,GAAK,IAE3C,MAAI,CAAC8J,GAAaQ,EAAS,UACzBA,EAAS,aAAe,CAACA,EAAS,QAAU,IAAI,GAE9CZ,GAAQA,EAAK,KACfA,EAAK,GAAK,IAELY,CACT,CACA,SAASF,GAAiBG,EAAQ,CAChC,OAAOA,EAAO,KAAMlM,GACboI,GAAQpI,CAAK,EACd,EAAAA,EAAM,OAASuC,IACfvC,EAAM,OAAS+E,IAAY,CAACgH,GAAiB/L,EAAM,QAAQ,GAFnC,EAK7B,EAAIkM,EAAS,IAChB,CAEA,SAASC,GAAWvlB,EAAKwlB,EAAyB,CAChD,MAAMxkB,EAAM,GAKZ,UAAWhE,KAAOgD,EAChBgB,EAAiEvB,GAAazC,CAAG,CAAC,EAAIgD,EAAIhD,CAAG,EAE/F,OAAOgE,CACT,CAEA,MAAMykB,GAAqB7nB,GACpBA,EACD8nB,GAAoB9nB,CAAC,EAAU2X,GAA2B3X,CAAC,EACxD6nB,GAAkB7nB,EAAE,MAAM,EAFlB,KAIX+nB,GAGYnoB,GAAuB,OAAO,OAAO,IAAI,EAAG,CAC1D,EAAII,GAAMA,EACV,IAAMA,GAAMA,EAAE,MAAM,GACpB,MAAQA,GAAMA,EAAE,KAChB,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,OAASA,GAA6EA,EAAE,MACxF,MAAQA,GAA4EA,EAAE,KACtF,QAAUA,GAAM6nB,GAAkB7nB,EAAE,MAAM,EAC1C,MAAQA,GAAM6nB,GAAkB7nB,EAAE,IAAI,EACtC,MAAQA,GAAMA,EAAE,GAChB,MAAQA,GAAMA,EAAE,KAChB,SAAWA,GAA4BgoB,GAAqBhoB,CAAC,EAC7D,aAAeA,GAAMA,EAAE,IAAMA,EAAE,EAAI,IAAM,CACvCoW,GAASpW,EAAE,MAAM,CACnB,GACA,UAAYA,GAAMA,EAAE,IAAMA,EAAE,EAAI0V,GAAS,KAAK1V,EAAE,KAAK,GACrD,OAASA,GAA4BioB,GAAc,KAAKjoB,CAAC,CAAI,CAC9D,EAGGkoB,GAAkB,CAACvL,EAAOvd,IAAQud,IAAUrd,IAAa,CAACqd,EAAM,iBAAmBzc,GAAOyc,EAAOvd,CAAG,EACpG+oB,GAA8B,CAClC,IAAI,CAAE,EAAG9T,CAAA,EAAYjV,EAAK,CACxB,GAAIA,IAAQ,WACV,MAAO,GAET,KAAM,CAAE,IAAA+X,EAAK,WAAAkK,EAAY,KAAA+G,EAAM,MAAA3kB,EAAO,YAAA4kB,EAAa,KAAAlf,EAAM,WAAAmf,GAAejU,EAIxE,IAAIkU,EACJ,GAAInpB,EAAI,CAAC,IAAM,IAAK,CAClB,MAAMmD,EAAI8lB,EAAYjpB,CAAG,EACzB,GAAImD,IAAM,OACR,OAAQA,EAAA,CACN,IAAK,GACH,OAAO8e,EAAWjiB,CAAG,EACvB,IAAK,GACH,OAAOgpB,EAAKhpB,CAAG,EACjB,IAAK,GACH,OAAO+X,EAAI/X,CAAG,EAChB,IAAK,GACH,OAAOqE,EAAMrE,CAAG,MAEtB,IAAW8oB,GAAgB7G,EAAYjiB,CAAG,EACxC,OAAAipB,EAAYjpB,CAAG,EAAI,EACZiiB,EAAWjiB,CAAG,KACWgpB,IAAS9oB,IAAaY,GAAOkoB,EAAMhpB,CAAG,EACtE,OAAAipB,EAAYjpB,CAAG,EAAI,EACZgpB,EAAKhpB,CAAG,EACjB,IAGGmpB,EAAkBlU,EAAS,aAAa,CAAC,IAAMnU,GAAOqoB,EAAiBnpB,CAAG,EAE3E,OAAAipB,EAAYjpB,CAAG,EAAI,EACZqE,EAAMrE,CAAG,KACP+X,IAAQ7X,IAAaY,GAAOiX,EAAK/X,CAAG,EAC7C,OAAAipB,EAAYjpB,CAAG,EAAI,EACZ+X,EAAI/X,CAAG,EACmBopB,KACjCH,EAAYjpB,CAAG,EAAI,GAEvB,CACA,MAAMqpB,EAAeV,GAAoB3oB,CAAG,EAC5C,IAAIspB,EAAWC,EACf,GAAIF,EACF,OAAIrpB,IAAQ,UACV6J,GAAMoL,EAAS,MAAO,MAAO,EAAE,EAK1BoU,EAAapU,CAAQ,EAC9B,IAEGqU,EAAYvf,EAAK,gBAAkBuf,EAAYA,EAAUtpB,CAAG,GAE7D,OAAOspB,KACEvR,IAAQ7X,IAAaY,GAAOiX,EAAK/X,CAAG,EAC7C,OAAAipB,EAAYjpB,CAAG,EAAI,EACZ+X,EAAI/X,CAAG,EAChB,GAEEupB,EAAmBL,EAAW,OAAO,iBAAkBpoB,GAAOyoB,EAAkBvpB,CAAG,EAGjF,OAAOupB,EAAiBvpB,CAAG,CAiBjC,EACA,IAAI,CAAE,EAAGiV,CAAA,EAAYjV,EAAK2B,EAAO,CAC/B,KAAM,CAAE,KAAAqnB,EAAM,WAAA/G,EAAY,IAAAlK,CAAA,EAAQ9C,EAClC,OAAI6T,GAAgB7G,EAAYjiB,CAAG,GACjCiiB,EAAWjiB,CAAG,EAAI2B,EACX,IAIyBqnB,IAAS9oB,IAAaY,GAAOkoB,EAAMhpB,CAAG,GACtEgpB,EAAKhpB,CAAG,EAAI2B,EACL,IACEb,GAAOmU,EAAS,MAAOjV,CAAG,GAIjCA,EAAI,CAAC,IAAM,KAAOA,EAAI,MAAM,CAAC,IAAKiV,EAI7B,IASL8C,EAAI/X,CAAG,EAAI2B,EAGR,GACT,EACA,IAAI,CACF,EAAG,CAAE,KAAAqnB,EAAM,WAAA/G,EAAY,YAAAgH,EAAa,IAAAlR,EAAK,WAAAmR,EAAY,aAAAM,EAAc,KAAAzf,CAAA,CAAK,EACvE/J,EAAK,CACN,IAAImpB,EAAiBM,EACrB,MAAO,CAAC,EAAER,EAAYjpB,CAAG,GAA4BgpB,IAAS9oB,IAAaF,EAAI,CAAC,IAAM,KAAOc,GAAOkoB,EAAMhpB,CAAG,GAAK8oB,GAAgB7G,EAAYjiB,CAAG,IAAMmpB,EAAkBK,EAAa,CAAC,IAAM1oB,GAAOqoB,EAAiBnpB,CAAG,GAAKc,GAAOiX,EAAK/X,CAAG,GAAKc,GAAO6nB,GAAqB3oB,CAAG,GAAKc,GAAOooB,EAAW,OAAO,iBAAkBlpB,CAAG,IAAMypB,EAAa1f,EAAK,eAAiB0f,EAAWzpB,CAAG,EAC5X,EACA,eAAe8J,EAAQ9J,EAAK0pB,EAAY,CACtC,OAAIA,EAAW,KAAO,KACpB5f,EAAO,EAAE,YAAY9J,CAAG,EAAI,EACnBc,GAAO4oB,EAAY,OAAO,GACnC,KAAK,IAAI5f,EAAQ9J,EAAK0pB,EAAW,MAAO,IAAI,EAEvC,QAAQ,eAAe5f,EAAQ9J,EAAK0pB,CAAU,CACvD,CACF,EA+HA,SAASC,IAAW,CAClB,OAAOC,GAAqB,EAAE,KAChC,CACA,SAASC,IAAW,CAClB,OAAOD,GAAqB,EAAE,KAChC,CACA,SAASA,GAAWE,EAAoB,CACtC,MAAMlpB,EAAIod,GAAA,EAIV,OAAOpd,EAAE,eAAiBA,EAAE,aAAempB,GAAmBnpB,CAAC,EACjE,CACA,SAASopB,GAAsB3lB,EAAO,CACpC,OAAOtD,GAAQsD,CAAK,EAAIA,EAAM,OAC5B,CAACX,EAAY6S,KAAO7S,EAAW6S,CAAC,EAAI,KAAM7S,GAC1C,EAAC,EACCW,CACN,CACA,SAAS4lB,GAAcnf,EAAKof,EAAU,CACpC,MAAM7lB,EAAQ2lB,GAAsBlf,CAAG,EACvC,UAAW9K,KAAOkqB,EAAU,CAC1B,GAAIlqB,EAAI,WAAW,QAAQ,EAAG,SAC9B,IAAImqB,EAAM9lB,EAAMrE,CAAG,EACfmqB,EACEppB,GAAQopB,CAAG,GAAK9oB,GAAW8oB,CAAG,EAChCA,EAAM9lB,EAAMrE,CAAG,EAAI,CAAE,KAAMmqB,EAAK,QAASD,EAASlqB,CAAG,GAErDmqB,EAAI,QAAUD,EAASlqB,CAAG,EAEnBmqB,IAAQ,OACjBA,EAAM9lB,EAAMrE,CAAG,EAAI,CAAE,QAASkqB,EAASlqB,CAAG,IAIxCmqB,GAAOD,EAAS,UAAUlqB,CAAG,EAAE,IACjCmqB,EAAI,YAAc,GAEtB,CACA,OAAO9lB,CACT,CACA,SAAS+lB,GAAYxlB,EAAGC,EAAG,CACzB,MAAI,CAACD,GAAK,CAACC,EAAUD,GAAKC,EACtB9D,GAAQ6D,CAAC,GAAK7D,GAAQ8D,CAAC,EAAUD,EAAE,OAAOC,CAAC,EACxCrE,GAAO,GAAIwpB,GAAsBplB,CAAC,EAAGolB,GAAsBnlB,CAAC,CAAC,CACtE,CACA,SAASwlB,GAAqBhmB,EAAOimB,EAAc,CACjD,MAAMtmB,EAAM,GACZ,UAAWhE,KAAOqE,EACXimB,EAAa,SAAStqB,CAAG,GAC5B,OAAO,eAAegE,EAAKhE,EAAK,CAC9B,WAAY,GACZ,IAAK,IAAMqE,EAAMrE,CAAG,EACrB,EAGL,OAAOgE,CACT,CA6BA,IAAIolB,GAAoB,GACxB,SAASmB,GAAatV,EAAU,CAC9B,MAAM3B,EAAUsV,GAAqB3T,CAAQ,EACvCuV,EAAavV,EAAS,MACtB8C,EAAM9C,EAAS,IACrBmU,GAAoB,GAChB9V,EAAQ,cACV+M,GAAS/M,EAAQ,aAAc2B,EAAU,IAAI,EAE/C,KAAM,CAEJ,KAAMwV,EACN,SAAUC,EACV,QAAAC,EACA,MAAOC,EACP,QAASC,EACT,OAAQC,EAER,QAAAC,EACA,YAAAC,EACA,QAAAC,EACA,aAAAC,EACA,QAAAC,EACA,UAAAC,EACA,YAAAC,EACA,cAAAC,EACA,cAAAC,EACA,UAAAC,EACA,UAAAC,EACA,OAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,eAAAC,EAEA,OAAAC,EACA,aAAAC,EAEA,WAAAC,EACA,WAAA3T,EACA,QAAA4T,EAAA,EACE5Y,EAaJ,GAHIwX,GACFqB,GAAkBrB,EAAe/S,EAVqE,IAUxC,EAE5D4S,EACF,UAAW3qB,KAAO2qB,EAAS,CACzB,MAAMyB,GAAgBzB,EAAQ3qB,CAAG,EAC7BqB,GAAW+qB,EAAa,IASxBrU,EAAI/X,CAAG,EAAIosB,GAAc,KAAK5B,CAAU,EAU9C,CAEF,GAAIC,EAAa,CAMf,MAAMzB,EAAOyB,EAAY,KAAKD,EAAYA,CAAU,EAM/ChpB,GAASwnB,CAAI,IAGhB/T,EAAS,KAAOxH,GAASub,CAAI,EAejC,CAEA,GADAI,GAAoB,GAChBsB,EACF,UAAW1qB,KAAO0qB,EAAiB,CACjC,MAAMP,GAAMO,EAAgB1qB,CAAG,EACzBsP,GAAMjO,GAAW8oB,EAAG,EAAIA,GAAI,KAAKK,EAAYA,CAAU,EAAInpB,GAAW8oB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAKK,EAAYA,CAAU,EAAIpqB,GAIxHuR,GAAM,CAACtQ,GAAW8oB,EAAG,GAAK9oB,GAAW8oB,GAAI,GAAG,EAAIA,GAAI,IAAI,KAAKK,CAAU,EAIzEpqB,GACEiC,GAAImG,EAAS,CACjB,IAAA8G,GACA,IAAAqC,EAAA,CACD,EACD,OAAO,eAAeoG,EAAK/X,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAMqC,GAAE,MACb,IAAMyD,IAAMzD,GAAE,MAAQyD,EAAA,CACvB,CAIH,CAEF,GAAI8kB,EACF,UAAW5qB,KAAO4qB,EAChByB,GAAczB,EAAa5qB,CAAG,EAAG+X,EAAKyS,EAAYxqB,CAAG,EAGzD,GAAI6qB,EAAgB,CAClB,MAAMyB,EAAWjrB,GAAWwpB,CAAc,EAAIA,EAAe,KAAKL,CAAU,EAAIK,EAChF,QAAQ,QAAQyB,CAAQ,EAAE,QAAStsB,IAAQ,CACzCusB,GAAQvsB,GAAKssB,EAAStsB,EAAG,CAAC,CAC5B,CAAC,CACH,CACI+qB,GACF1K,GAAS0K,EAAS9V,EAAU,GAAG,EAEjC,SAASuX,GAAsBC,EAAU1T,GAAM,CACzChY,GAAQgY,EAAI,EACdA,GAAK,QAAS2T,IAAUD,EAASC,GAAM,KAAKlC,CAAU,CAAC,CAAC,EAC/CzR,IACT0T,EAAS1T,GAAK,KAAKyR,CAAU,CAAC,CAElC,CAaA,GAZAgC,GAAsB1G,GAAekF,CAAW,EAChDwB,GAAsBhP,GAAWyN,CAAO,EACxCuB,GAAsBzG,GAAgBmF,CAAY,EAClDsB,GAAsBpI,GAAW+G,CAAO,EACxCqB,GAAsB1H,GAAasG,CAAS,EAC5CoB,GAAsBxH,GAAeqG,CAAW,EAChDmB,GAAsBrG,GAAiB0F,CAAa,EACpDW,GAAsBtG,GAAiByF,CAAa,EACpDa,GAAsBvG,GAAmB2F,CAAe,EACxDY,GAAsB/O,GAAiB8N,CAAa,EACpDiB,GAAsBjH,GAAakG,CAAS,EAC5Ce,GAAsBxG,GAAkB8F,CAAc,EAClD/qB,GAAQgrB,CAAM,EAChB,GAAIA,EAAO,OAAQ,CACjB,MAAMY,EAAU1X,EAAS,UAAYA,EAAS,QAAU,IACxD8W,EAAO,QAAS/rB,IAAQ,CACtB,OAAO,eAAe2sB,EAAS3sB,GAAK,CAClC,IAAK,IAAMwqB,EAAWxqB,EAAG,EACzB,IAAMC,IAAQuqB,EAAWxqB,EAAG,EAAIC,GAChC,WAAY,GACb,CACH,CAAC,CACH,MAAYgV,EAAS,UACnBA,EAAS,QAAU,IAGnByW,GAAUzW,EAAS,SAAW7U,KAChC6U,EAAS,OAASyW,GAEhBM,GAAgB,OAClB/W,EAAS,aAAe+W,GAEtBC,MAAqB,WAAaA,GAClC3T,MAAqB,WAAaA,GAClCwT,GACFxK,GAAkBrM,CAAQ,CAE9B,CACA,SAASkX,GAAkBrB,EAAe/S,EAAK6U,EAA2BxsB,GAAM,CAC1EW,GAAQ+pB,CAAa,IACvBA,EAAgB+B,GAAgB/B,CAAa,GAE/C,UAAW9qB,KAAO8qB,EAAe,CAC/B,MAAMX,EAAMW,EAAc9qB,CAAG,EAC7B,IAAIslB,EACA9jB,GAAS2oB,CAAG,EACV,YAAaA,EACf7E,EAAWwH,GACT3C,EAAI,MAAQnqB,EACZmqB,EAAI,QACJ,IAGF7E,EAAWwH,GAAO3C,EAAI,MAAQnqB,CAAG,EAGnCslB,EAAWwH,GAAO3C,CAAG,EAEnB5kB,GAAM+f,CAAQ,EAChB,OAAO,eAAevN,EAAK/X,EAAK,CAC9B,WAAY,GACZ,aAAc,GACd,IAAK,IAAMslB,EAAS,MACpB,IAAMxf,GAAMwf,EAAS,MAAQxf,CAAA,CAC9B,EAEDiS,EAAI/X,CAAG,EAAIslB,CAKf,CACF,CACA,SAASjF,GAAStH,EAAM9D,EAAUlL,EAAM,CACtCoL,GACEpU,GAAQgY,CAAI,EAAIA,EAAK,IAAKgU,GAAMA,EAAE,KAAK9X,EAAS,KAAK,CAAC,EAAI8D,EAAK,KAAK9D,EAAS,KAAK,EAClFA,EACAlL,CAAA,CAEJ,CACA,SAASsiB,GAAcvhB,EAAKiN,EAAKyS,EAAYxqB,EAAK,CAChD,IAAI4S,EAAS5S,EAAI,SAAS,GAAG,EAAIgtB,GAAiBxC,EAAYxqB,CAAG,EAAI,IAAMwqB,EAAWxqB,CAAG,EACzF,GAAIsB,GAASwJ,CAAG,EAAG,CACjB,MAAMmiB,EAAUlV,EAAIjN,CAAG,EACnBzJ,GAAW4rB,CAAO,GAElB7Z,GAAMR,EAAQqa,CAAO,CAK3B,SAAW5rB,GAAWyJ,CAAG,EAErBsI,GAAMR,EAAQ9H,EAAI,KAAK0f,CAAU,CAAC,UAE3BhpB,GAASsJ,CAAG,EACrB,GAAI/J,GAAQ+J,CAAG,EACbA,EAAI,QAAS6F,GAAM0b,GAAc1b,EAAGoH,EAAKyS,EAAYxqB,CAAG,CAAC,MACpD,CACL,MAAMitB,EAAU5rB,GAAWyJ,EAAI,OAAO,EAAIA,EAAI,QAAQ,KAAK0f,CAAU,EAAIzS,EAAIjN,EAAI,OAAO,EACpFzJ,GAAW4rB,CAAO,GACpB7Z,GAAMR,EAAQqa,EAASniB,CAAG,CAI9B,CAIJ,CACA,SAAS8d,GAAqB3T,EAAU,CACtC,MAAMiY,EAAOjY,EAAS,KAChB,CAAE,OAAAkY,EAAQ,QAASC,CAAA,EAAmBF,EACtC,CACJ,OAAQG,EACR,aAAcnrB,EACd,OAAQ,CAAE,sBAAAorB,CAAA,CAAsB,EAC9BrY,EAAS,WACP2O,EAAS1hB,EAAM,IAAIgrB,CAAI,EAC7B,IAAIK,EACJ,OAAI3J,EACF2J,EAAW3J,EACF,CAACyJ,EAAa,QAAU,CAACF,GAAU,CAACC,EAE3CG,EAAWL,GAGbK,EAAW,GACPF,EAAa,QACfA,EAAa,QACVG,GAAMC,GAAaF,EAAUC,EAAGF,EAAuB,EAAI,GAGhEG,GAAaF,EAAUL,EAAMI,CAAqB,GAEhD9rB,GAAS0rB,CAAI,GACfhrB,EAAM,IAAIgrB,EAAMK,CAAQ,EAEnBA,CACT,CACA,SAASE,GAAaC,EAAIC,EAAMC,EAAQC,EAAU,GAAO,CACvD,KAAM,CAAE,OAAAV,EAAQ,QAASC,CAAA,EAAmBO,EACxCP,GACFK,GAAaC,EAAIN,EAAgBQ,EAAQ,EAAI,EAE3CT,GACFA,EAAO,QACJK,GAAMC,GAAaC,EAAIF,EAAGI,EAAQ,EAAI,GAG3C,UAAW5tB,KAAO2tB,EAChB,GAAI,EAAAE,GAAW7tB,IAAQ,UAIhB,CACL,MAAM8tB,EAAQC,GAA0B/tB,CAAG,GAAK4tB,GAAUA,EAAO5tB,CAAG,EACpE0tB,EAAG1tB,CAAG,EAAI8tB,EAAQA,EAAMJ,EAAG1tB,CAAG,EAAG2tB,EAAK3tB,CAAG,CAAC,EAAI2tB,EAAK3tB,CAAG,CACxD,CAEF,OAAO0tB,CACT,CACA,MAAMK,GAA4B,CAChC,KAAMC,GACN,MAAOC,GACP,MAAOA,GAEP,QAASC,GACT,SAAUA,GAEV,aAAcC,GACd,QAASA,GACT,YAAaA,GACb,QAASA,GACT,aAAcA,GACd,QAASA,GACT,cAAeA,GACf,cAAeA,GACf,UAAWA,GACX,UAAWA,GACX,UAAWA,GACX,YAAaA,GACb,cAAeA,GACf,eAAgBA,GAEhB,WAAYD,GACZ,WAAYA,GAEZ,MAAOE,GAEP,QAASJ,GACT,OAAQK,EACV,EACA,SAASL,GAAYN,EAAIC,EAAM,CAC7B,OAAKA,EAGAD,EAGE,UAAwB,CAC7B,OAAQltB,GACNa,GAAWqsB,CAAE,EAAIA,EAAG,KAAK,KAAM,IAAI,EAAIA,EACvCrsB,GAAWssB,CAAI,EAAIA,EAAK,KAAK,KAAM,IAAI,EAAIA,CAAA,CAE/C,EAPSA,EAHAD,CAWX,CACA,SAASW,GAAYX,EAAIC,EAAM,CAC7B,OAAOO,GAAmBrB,GAAgBa,CAAE,EAAGb,GAAgBc,CAAI,CAAC,CACtE,CACA,SAASd,GAAgB/hB,EAAK,CAC5B,GAAI/J,GAAQ+J,CAAG,EAAG,CAChB,MAAMtH,EAAM,GACZ,QAAS5C,EAAI,EAAGA,EAAIkK,EAAI,OAAQlK,IAC9B4C,EAAIsH,EAAIlK,CAAC,CAAC,EAAIkK,EAAIlK,CAAC,EAErB,OAAO4C,CACT,CACA,OAAOsH,CACT,CACA,SAASqjB,GAAaT,EAAIC,EAAM,CAC9B,OAAOD,EAAK,CAAC,GAAG,IAAI,IAAI,GAAG,OAAOA,EAAIC,CAAI,CAAC,CAAC,EAAIA,CAClD,CACA,SAASO,GAAmBR,EAAIC,EAAM,CACpC,OAAOD,EAAKltB,GAAuB,OAAO,OAAO,IAAI,EAAGktB,EAAIC,CAAI,EAAIA,CACtE,CACA,SAASM,GAAyBP,EAAIC,EAAM,CAC1C,OAAID,EACE3sB,GAAQ2sB,CAAE,GAAK3sB,GAAQ4sB,CAAI,EACtB,CAAC,GAAmB,IAAI,IAAI,CAAC,GAAGD,EAAI,GAAGC,CAAI,CAAC,CAAC,EAE/CntB,GACW,OAAO,OAAO,IAAI,EAClCwpB,GAAsB0D,CAAE,EACxB1D,GAAsB2D,GAAsB,EAAE,GAGzCA,CAEX,CACA,SAASS,GAAkBV,EAAIC,EAAM,CACnC,GAAI,CAACD,EAAI,OAAOC,EAChB,GAAI,CAACA,EAAM,OAAOD,EAClB,MAAMY,EAAS9tB,GAAuB,OAAO,OAAO,IAAI,EAAGktB,CAAE,EAC7D,UAAW1tB,KAAO2tB,EAChBW,EAAOtuB,CAAG,EAAImuB,GAAaT,EAAG1tB,CAAG,EAAG2tB,EAAK3tB,CAAG,CAAC,EAE/C,OAAOsuB,CACT,CAEA,SAASC,IAAmB,CAC1B,MAAO,CACL,IAAK,KACL,OAAQ,CACN,YAAaluB,GACb,YAAa,GACb,iBAAkB,GAClB,sBAAuB,GACvB,aAAc,OACd,YAAa,OACb,gBAAiB,EAAC,EAEpB,OAAQ,GACR,WAAY,GACZ,WAAY,GACZ,SAA0B,OAAO,OAAO,IAAI,EAC5C,iBAAkC,QAClC,eAAgC,QAChC,eAAgC,OAAQ,CAE5C,CACA,IAAImuB,GAAQ,EACZ,SAASC,GAAa/C,EAAQgD,EAAS,CACrC,OAAO,SAAmBC,EAAeC,EAAY,KAAM,CACpDvtB,GAAWstB,CAAa,IAC3BA,EAAgBnuB,GAAO,GAAImuB,CAAa,GAEtCC,GAAa,MAAQ,CAACptB,GAASotB,CAAS,IAE1CA,EAAY,MAEd,MAAMC,EAAUN,GAAA,EACVO,MAAuC,QACvCC,EAAmB,GACzB,IAAIC,EAAY,GAChB,MAAMC,EAAMJ,EAAQ,IAAM,CACxB,KAAML,KACN,WAAYG,EACZ,OAAQC,EACR,WAAY,KACZ,SAAUC,EACV,UAAW,KACX,QAAAK,GACA,IAAI,QAAS,CACX,OAAOL,EAAQ,MACjB,EACA,IAAI,OAAO/oB,EAAG,CAMd,EACA,IAAIqpB,KAAW7b,EAAS,CACtB,OAAIwb,EAAiB,IAAIK,CAAM,IAEpBA,GAAU9tB,GAAW8tB,EAAO,OAAO,GAC5CL,EAAiB,IAAIK,CAAM,EAC3BA,EAAO,QAAQF,EAAK,GAAG3b,CAAO,GACrBjS,GAAW8tB,CAAM,IAC1BL,EAAiB,IAAIK,CAAM,EAC3BA,EAAOF,EAAK,GAAG3b,CAAO,IAMjB2b,CACT,EACA,MAAMG,EAAO,CAET,OAAKP,EAAQ,OAAO,SAASO,CAAK,GAChCP,EAAQ,OAAO,KAAKO,CAAK,EAStBH,CACT,EACA,UAAU9qB,EAAMwiB,EAAW,CAIzB,OAAKA,GAMLkI,EAAQ,WAAW1qB,CAAI,EAAIwiB,EACpBsI,GANEJ,EAAQ,WAAW1qB,CAAI,CAOlC,EACA,UAAUA,EAAMkrB,EAAW,CAIzB,OAAKA,GAMLR,EAAQ,WAAW1qB,CAAI,EAAIkrB,EACpBJ,GANEJ,EAAQ,WAAW1qB,CAAI,CAOlC,EACA,MAAMmrB,EAAeC,EAAWvV,EAAW,CACzC,GAAI,CAACgV,EAAW,CAOd,MAAM3W,EAAQ4W,EAAI,UAAYhH,GAAY0G,EAAeC,CAAS,EAClE,OAAAvW,EAAM,WAAawW,EACf7U,IAAc,GAChBA,EAAY,MACHA,IAAc,KACvBA,EAAY,QAYZ0R,EAAOrT,EAAOiX,EAAetV,CAAS,EAExCgV,EAAY,GACZC,EAAI,WAAaK,EACjBA,EAAc,YAAcL,EAKrB1W,GAA2BF,EAAM,SAAS,CACnD,CAMF,EACA,UAAUpF,EAAW,CAMnB8b,EAAiB,KAAK9b,CAAS,CACjC,EACA,SAAU,CACJ+b,IACF7Z,GACE4Z,EACAE,EAAI,UACJ,IAEFvD,EAAO,KAAMuD,EAAI,UAAU,EAK3B,OAAOA,EAAI,WAAW,YAI1B,EACA,QAAQjvB,EAAK2B,EAAO,CAYlB,OAAAktB,EAAQ,SAAS7uB,CAAG,EAAI2B,EACjBstB,CACT,EACA,eAAehtB,EAAI,CACjB,MAAMutB,EAAUC,GAChBA,GAAaR,EACb,GAAI,CACF,OAAOhtB,EAAA,CACT,SACEwtB,GAAaD,CACf,CACF,GAEF,OAAOP,CACT,CACF,CACA,IAAIQ,GAAa,KAEjB,SAASlD,GAAQvsB,EAAK2B,EAAO,CAC3B,GAAKsjB,GAIE,CACL,IAAIqH,EAAWrH,GAAgB,SAC/B,MAAMyK,EAAiBzK,GAAgB,QAAUA,GAAgB,OAAO,SACpEyK,IAAmBpD,IACrBA,EAAWrH,GAAgB,SAAW,OAAO,OAAOyK,CAAc,GAEpEpD,EAAStsB,CAAG,EAAI2B,CAClB,CACF,CACA,SAASmrB,GAAO9sB,EAAKsS,EAAcqd,EAAwB,GAAO,CAChE,MAAM1a,EAAW+I,GAAA,EACjB,GAAI/I,GAAYwa,GAAY,CAC1B,IAAInD,EAAWmD,GAAaA,GAAW,SAAS,SAAWxa,EAAWA,EAAS,QAAU,MAAQA,EAAS,GAAKA,EAAS,MAAM,YAAcA,EAAS,MAAM,WAAW,SAAWA,EAAS,OAAO,SAAW,OAC5M,GAAIqX,GAAYtsB,KAAOssB,EACrB,OAAOA,EAAStsB,CAAG,EACrB,GAAW,UAAU,OAAS,EAC5B,OAAO2vB,GAAyBtuB,GAAWiR,CAAY,EAAIA,EAAa,KAAK2C,GAAYA,EAAS,KAAK,EAAI3C,CAI/G,CAGF,CACA,SAASsd,IAAsB,CAC7B,MAAO,CAAC,EAAE5R,GAAA,GAAwByR,GACpC,CAEA,MAAMI,GAAsB,GACtBC,GAAuB,IAAM,OAAO,OAAOD,EAAmB,EAC9DE,GAAoB/sB,GAAQ,OAAO,eAAeA,CAAG,IAAM6sB,GAEjE,SAASG,GAAU/a,EAAUkJ,EAAU8R,EAAYxd,EAAQ,GAAO,CAChE,MAAMpO,EAAQ,GACR6rB,EAAQJ,GAAA,EACd7a,EAAS,cAAgC,OAAO,OAAO,IAAI,EAC3Dkb,GAAalb,EAAUkJ,EAAU9Z,EAAO6rB,CAAK,EAC7C,UAAWlwB,KAAOiV,EAAS,aAAa,CAAC,EACjCjV,KAAOqE,IACXA,EAAMrE,CAAG,EAAI,QAMbiwB,EACFhb,EAAS,MAAQxC,EAAQpO,EAAQ4L,GAAgB5L,CAAK,EAEjD4Q,EAAS,KAAK,MAGjBA,EAAS,MAAQ5Q,EAFjB4Q,EAAS,MAAQib,EAKrBjb,EAAS,MAAQib,CACnB,CAOA,SAASE,GAAYnb,EAAUkJ,EAAUkS,EAAcnW,EAAW,CAChE,KAAM,CACJ,MAAA7V,EACA,MAAA6rB,EACA,MAAO,CAAE,UAAAI,CAAA,CAAU,EACjBrb,EACEsb,EAAkBxlB,GAAM1G,CAAK,EAC7B,CAACiP,CAAO,EAAI2B,EAAS,aAC3B,IAAIub,EAAkB,GACtB,IAI+EtW,GAAaoW,EAAY,IAAM,EAAEA,EAAY,KAE1H,GAAIA,EAAY,EAAG,CACjB,MAAMG,EAAgBxb,EAAS,MAAM,aACrC,QAASrU,EAAI,EAAGA,EAAI6vB,EAAc,OAAQ7vB,IAAK,CAC7C,IAAIZ,EAAMywB,EAAc7vB,CAAC,EACzB,GAAI8vB,GAAezb,EAAS,aAAcjV,CAAG,EAC3C,SAEF,MAAM2B,EAAQwc,EAASne,CAAG,EAC1B,GAAIsT,EACF,GAAIxS,GAAOovB,EAAOlwB,CAAG,EACf2B,IAAUuuB,EAAMlwB,CAAG,IACrBkwB,EAAMlwB,CAAG,EAAI2B,EACb6uB,EAAkB,QAEf,CACL,MAAMG,EAAevuB,GAASpC,CAAG,EACjCqE,EAAMssB,CAAY,EAAIC,GACpBtd,EACAid,EACAI,EACAhvB,EACAsT,EACA,GAEJ,MAEItT,IAAUuuB,EAAMlwB,CAAG,IACrBkwB,EAAMlwB,CAAG,EAAI2B,EACb6uB,EAAkB,GAGxB,CACF,MACK,CACDL,GAAalb,EAAUkJ,EAAU9Z,EAAO6rB,CAAK,IAC/CM,EAAkB,IAEpB,IAAIK,EACJ,UAAW7wB,KAAOuwB,GACZ,CAACpS,GACL,CAACrd,GAAOqd,EAAUne,CAAG,KAEnB6wB,EAAWtuB,GAAUvC,CAAG,KAAOA,GAAO,CAACc,GAAOqd,EAAU0S,CAAQ,MAC5Dvd,EACE+c,IACHA,EAAarwB,CAAG,IAAM,QACvBqwB,EAAaQ,CAAQ,IAAM,UACzBxsB,EAAMrE,CAAG,EAAI4wB,GACXtd,EACAid,EACAvwB,EACA,OACAiV,EACA,KAIJ,OAAO5Q,EAAMrE,CAAG,GAItB,GAAIkwB,IAAUK,EACZ,UAAWvwB,KAAOkwB,GACZ,CAAC/R,GAAY,CAACrd,GAAOqd,EAAUne,CAAG,KACpC,OAAOkwB,EAAMlwB,CAAG,EAChBwwB,EAAkB,GAI1B,CACIA,GACFvmB,GAAQgL,EAAS,MAAO,MAAO,EAAE,CAKrC,CACA,SAASkb,GAAalb,EAAUkJ,EAAU9Z,EAAO6rB,EAAO,CACtD,KAAM,CAAC5c,EAASwd,CAAY,EAAI7b,EAAS,aACzC,IAAIub,EAAkB,GAClBO,EACJ,GAAI5S,EACF,QAASne,KAAOme,EAAU,CACxB,GAAIpc,GAAe/B,CAAG,EACpB,SAEF,MAAM2B,EAAQwc,EAASne,CAAG,EAC1B,IAAIgxB,EACA1d,GAAWxS,GAAOwS,EAAS0d,EAAW5uB,GAASpC,CAAG,CAAC,EACjD,CAAC8wB,GAAgB,CAACA,EAAa,SAASE,CAAQ,EAClD3sB,EAAM2sB,CAAQ,EAAIrvB,GAEjBovB,IAAkBA,EAAgB,KAAKC,CAAQ,EAAIrvB,EAE5C+uB,GAAezb,EAAS,aAAcjV,CAAG,IAC/C,EAAEA,KAAOkwB,IAAUvuB,IAAUuuB,EAAMlwB,CAAG,KACxCkwB,EAAMlwB,CAAG,EAAI2B,EACb6uB,EAAkB,GAGxB,CAEF,GAAIM,EAAc,CAChB,MAAMP,EAAkBxlB,GAAM1G,CAAK,EAC7B4sB,EAAaF,GAAiB7wB,GACpC,QAASU,EAAI,EAAGA,EAAIkwB,EAAa,OAAQlwB,IAAK,CAC5C,MAAMZ,EAAM8wB,EAAalwB,CAAC,EAC1ByD,EAAMrE,CAAG,EAAI4wB,GACXtd,EACAid,EACAvwB,EACAixB,EAAWjxB,CAAG,EACdiV,EACA,CAACnU,GAAOmwB,EAAYjxB,CAAG,EAE3B,CACF,CACA,OAAOwwB,CACT,CACA,SAASI,GAAiBtd,EAASjP,EAAOrE,EAAK2B,EAAOsT,EAAUic,EAAU,CACxE,MAAM/G,EAAM7W,EAAQtT,CAAG,EACvB,GAAImqB,GAAO,KAAM,CACf,MAAMgH,EAAarwB,GAAOqpB,EAAK,SAAS,EACxC,GAAIgH,GAAcxvB,IAAU,OAAQ,CAClC,MAAM2Q,EAAe6X,EAAI,QACzB,GAAIA,EAAI,OAAS,UAAY,CAACA,EAAI,aAAe9oB,GAAWiR,CAAY,EAAG,CACzE,KAAM,CAAE,cAAA8e,GAAkBnc,EAC1B,GAAIjV,KAAOoxB,EACTzvB,EAAQyvB,EAAcpxB,CAAG,MACpB,CACL,MAAMylB,EAAQC,GAAmBzQ,CAAQ,EACzCtT,EAAQyvB,EAAcpxB,CAAG,EAAIsS,EAAa,KACxC,KACAjO,CAAA,EAEFohB,EAAA,CACF,CACF,MACE9jB,EAAQ2Q,EAEN2C,EAAS,IACXA,EAAS,GAAG,SAASjV,EAAK2B,CAAK,CAEnC,CACIwoB,EAAI,KACF+G,GAAY,CAACC,EACfxvB,EAAQ,GACCwoB,EAAI,KAA4BxoB,IAAU,IAAMA,IAAUY,GAAUvC,CAAG,KAChF2B,EAAQ,IAGd,CACA,OAAOA,CACT,CACA,MAAM0vB,OAAsC,QAC5C,SAASC,GAAsB7M,EAAMyE,EAAY2E,EAAU,GAAO,CAChE,MAAM3rB,EAA+B2rB,EAAUwD,GAAkBnI,EAAW,WACtEtF,EAAS1hB,EAAM,IAAIuiB,CAAI,EAC7B,GAAIb,EACF,OAAOA,EAET,MAAM9Y,EAAM2Z,EAAK,MACX/gB,EAAa,GACbotB,EAAe,GACrB,IAAIS,EAAa,GACjB,GAA2B,CAAClwB,GAAWojB,CAAI,EAAG,CAC5C,MAAM+M,EAAeC,GAAS,CAC5BF,EAAa,GACb,KAAM,CAACltB,EAAOwe,CAAI,EAAIyO,GAAsBG,EAAMvI,EAAY,EAAI,EAClE1oB,GAAOkD,EAAYW,CAAK,EACpBwe,GAAMiO,EAAa,KAAK,GAAGjO,CAAI,CACrC,EACI,CAACgL,GAAW3E,EAAW,OAAO,QAChCA,EAAW,OAAO,QAAQsI,CAAW,EAEnC/M,EAAK,SACP+M,EAAY/M,EAAK,OAAO,EAEtBA,EAAK,QACPA,EAAK,OAAO,QAAQ+M,CAAW,CAEnC,CACA,GAAI,CAAC1mB,GAAO,CAACymB,EACX,OAAI/vB,GAASijB,CAAI,GACfviB,EAAM,IAAIuiB,EAAMtkB,EAAS,EAEpBA,GAET,GAAIY,GAAQ+J,CAAG,EACb,QAASlK,EAAI,EAAGA,EAAIkK,EAAI,OAAQlK,IAAK,CAInC,MAAM8wB,EAAgBtvB,GAAS0I,EAAIlK,CAAC,CAAC,EACjC+wB,GAAiBD,CAAa,IAChChuB,EAAWguB,CAAa,EAAIxxB,GAEhC,SACS4K,EAIT,UAAW9K,KAAO8K,EAAK,CACrB,MAAM4mB,EAAgBtvB,GAASpC,CAAG,EAClC,GAAI2xB,GAAiBD,CAAa,EAAG,CACnC,MAAMvH,EAAMrf,EAAI9K,CAAG,EACb4xB,EAAOluB,EAAWguB,CAAa,EAAI3wB,GAAQopB,CAAG,GAAK9oB,GAAW8oB,CAAG,EAAI,CAAE,KAAMA,CAAA,EAAQ3pB,GAAO,GAAI2pB,CAAG,EACnG0H,EAAWD,EAAK,KACtB,IAAIE,EAAa,GACbC,EAAiB,GACrB,GAAIhxB,GAAQ8wB,CAAQ,EAClB,QAASplB,EAAQ,EAAGA,EAAQolB,EAAS,OAAQ,EAAEplB,EAAO,CACpD,MAAM1C,EAAO8nB,EAASplB,CAAK,EACrBulB,EAAW3wB,GAAW0I,CAAI,GAAKA,EAAK,KAC1C,GAAIioB,IAAa,UAAW,CAC1BF,EAAa,GACb,KACF,MAAWE,IAAa,WACtBD,EAAiB,GAErB,MAEAD,EAAazwB,GAAWwwB,CAAQ,GAAKA,EAAS,OAAS,UAEzDD,EAAK,GAAsBE,EAC3BF,EAAK,GAA0BG,GAC3BD,GAAchxB,GAAO8wB,EAAM,SAAS,IACtCd,EAAa,KAAKY,CAAa,CAEnC,CACF,CAEF,MAAMluB,EAAM,CAACE,EAAYotB,CAAY,EACrC,OAAItvB,GAASijB,CAAI,GACfviB,EAAM,IAAIuiB,EAAMjhB,CAAG,EAEdA,CACT,CACA,SAASmuB,GAAiB3xB,EAAK,CAC7B,OAAIA,EAAI,CAAC,IAAM,KAAO,CAAC+B,GAAe/B,CAAG,CAM3C,CAqHA,MAAMiyB,GAAiBjyB,GAAQA,IAAQ,KAAOA,IAAQ,QAAUA,IAAQ,UAClEkyB,GAAsBvwB,GAAUZ,GAAQY,CAAK,EAAIA,EAAM,IAAIwwB,EAAc,EAAI,CAACA,GAAexwB,CAAK,CAAC,EACnGywB,GAAgB,CAACpyB,EAAKqyB,EAASta,IAAQ,CAC3C,GAAIsa,EAAQ,GACV,OAAOA,EAET,MAAM3uB,EAAaoU,GAAQ,IAAIzM,IAMtB6mB,GAAmBG,EAAQ,GAAGhnB,CAAI,CAAC,EACzC0M,CAAG,EACN,OAAArU,EAAW,GAAK,GACTA,CACT,EACM4uB,GAAuB,CAACC,EAAUxU,EAAO9I,IAAa,CAC1D,MAAM8C,EAAMwa,EAAS,KACrB,UAAWvyB,KAAOuyB,EAAU,CAC1B,GAAIN,GAAcjyB,CAAG,EAAG,SACxB,MAAM2B,EAAQ4wB,EAASvyB,CAAG,EAC1B,GAAIqB,GAAWM,CAAK,EAClBoc,EAAM/d,CAAG,EAAIoyB,GAAcpyB,EAAK2B,EAAOoW,CAAG,UACjCpW,GAAS,KAAM,CAMxB,MAAM+B,EAAawuB,GAAmBvwB,CAAK,EAC3Coc,EAAM/d,CAAG,EAAI,IAAM0D,CACrB,CACF,CACF,EACM8uB,GAAsB,CAACvd,EAAU4F,IAAa,CAMlD,MAAMnX,EAAawuB,GAAmBrX,CAAQ,EAC9C5F,EAAS,MAAM,QAAU,IAAMvR,CACjC,EACM+uB,GAAc,CAAC1U,EAAOlD,EAAUX,IAAc,CAClD,UAAWla,KAAO6a,GACZX,GAAa,CAAC+X,GAAcjyB,CAAG,KACjC+d,EAAM/d,CAAG,EAAI6a,EAAS7a,CAAG,EAG/B,EACM0yB,GAAY,CAACzd,EAAU4F,EAAUX,IAAc,CACnD,MAAM6D,EAAQ9I,EAAS,MAAQ6a,GAAA,EAC/B,GAAI7a,EAAS,MAAM,UAAY,GAAI,CACjC,MAAMlL,EAAO8Q,EAAS,EAClB9Q,GACF0oB,GAAY1U,EAAOlD,EAAUX,CAAS,EAClCA,GACFnX,GAAIgb,EAAO,IAAKhU,EAAM,EAAI,GAG5BuoB,GAAqBzX,EAAUkD,CAAK,CAExC,MAAWlD,GACT2X,GAAoBvd,EAAU4F,CAAQ,CAE1C,EACM8X,GAAc,CAAC1d,EAAU4F,EAAUX,IAAc,CACrD,KAAM,CAAE,MAAA7B,EAAO,MAAA0F,CAAA,EAAU9I,EACzB,IAAI2d,EAAoB,GACpBC,EAA2B3yB,GAC/B,GAAImY,EAAM,UAAY,GAAI,CACxB,MAAMtO,EAAO8Q,EAAS,EAClB9Q,EAISmQ,GAAanQ,IAAS,EAC/B6oB,EAAoB,GAEpBH,GAAY1U,EAAOlD,EAAUX,CAAS,GAGxC0Y,EAAoB,CAAC/X,EAAS,QAC9ByX,GAAqBzX,EAAUkD,CAAK,GAEtC8U,EAA2BhY,CAC7B,MAAWA,IACT2X,GAAoBvd,EAAU4F,CAAQ,EACtCgY,EAA2B,CAAE,QAAS,IAExC,GAAID,EACF,UAAW5yB,KAAO+d,EACZ,CAACkU,GAAcjyB,CAAG,GAAK6yB,EAAyB7yB,CAAG,GAAK,MAC1D,OAAO+d,EAAM/d,CAAG,CAIxB,EAgEMwb,GAAwBsX,GAC9B,SAASC,GAAezf,EAAS,CAC/B,OAAO0f,GAAmB1f,CAAO,CACnC,CAIA,SAAS0f,GAAmB1f,EAAS2f,EAAoB,CAIvD,MAAMnpB,EAASxG,GAAA,EACfwG,EAAO,QAAU,GAIjB,KAAM,CACJ,OAAQopB,EACR,OAAQlX,EACR,UAAWmX,EACX,cAAeC,EACf,WAAYC,EACZ,cAAeC,EACf,QAASC,EACT,eAAgBC,EAChB,WAAYC,EACZ,YAAaC,EACb,WAAYC,EAAiBvzB,GAC7B,oBAAqBwzB,CAAA,EACnBtgB,EACEyP,EAAQ,CAACrJ,EAAIC,EAAIC,EAAWC,EAAS,KAAMC,EAAkB,KAAMC,EAAiB,KAAMC,EAAY,OAAQC,EAAe,KAAMC,EAAiF,CAAC,CAACP,EAAG,kBAAoB,CACjP,GAAID,IAAOC,EACT,OAEED,GAAM,CAACoF,GAAgBpF,EAAIC,CAAE,IAC/BE,EAASga,EAAgBna,CAAE,EAC3BqC,GAAQrC,EAAII,EAAiBC,EAAgB,EAAI,EACjDL,EAAK,MAEHC,EAAG,YAAc,KACnBO,EAAY,GACZP,EAAG,gBAAkB,MAEvB,KAAM,CAAE,KAAA5P,EAAM,IAAA6G,EAAK,UAAAgK,GAAcjB,EACjC,OAAQ5P,EAAA,CACN,KAAK+pB,GACHC,EAAYra,EAAIC,EAAIC,EAAWC,CAAM,EACrC,MACF,KAAK8E,GACHqV,EAAmBta,EAAIC,EAAIC,EAAWC,CAAM,EAC5C,MACF,KAAKoa,GACCva,GAAM,MACRwa,EAAgBva,EAAIC,EAAWC,EAAQG,CAAS,EAIlD,MACF,KAAKmH,GACHgT,EACEza,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEF,MACF,QACMU,EAAY,EACdwZ,EACE1a,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEOU,EAAY,EACrByZ,EACE3a,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,GAEOU,EAAY,IAaZA,EAAY,MACrB7Q,EAAK,QACH2P,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,CAIJ,CAEAvJ,GAAO,MAAQkJ,EACjB4H,GAAO9Q,EAAK8I,GAAMA,EAAG,IAAKK,EAAgBJ,GAAMD,EAAI,CAACC,CAAE,EAC9C/I,GAAO,MAAQ8I,GAAMA,EAAG,KAAO,MACxCgI,GAAOhI,EAAG,IAAK,KAAMK,EAAgBL,EAAI,EAAI,CAEjD,EACMqa,EAAc,CAACra,EAAIC,EAAIC,EAAWC,IAAW,CACjD,GAAIH,GAAM,KACRwZ,EACEvZ,EAAG,GAAK0Z,EAAe1Z,EAAG,QAAQ,EAClCC,EACAC,CAAA,MAEG,CACL,MAAMlZ,EAAKgZ,EAAG,GAAKD,EAAG,GAClBC,EAAG,WAAaD,EAAG,UACrB6Z,EAAY5yB,EAAIgZ,EAAG,QAAQ,CAE/B,CACF,EACMqa,EAAqB,CAACta,EAAIC,EAAIC,EAAWC,IAAW,CACpDH,GAAM,KACRwZ,EACEvZ,EAAG,GAAK2Z,EAAkB3Z,EAAG,UAAY,EAAE,EAC3CC,EACAC,CAAA,EAGFF,EAAG,GAAKD,EAAG,EAEf,EACMwa,EAAkB,CAACva,EAAIC,EAAWC,EAAQG,IAAc,CAC5D,CAACL,EAAG,GAAIA,EAAG,MAAM,EAAIia,EACnBja,EAAG,SACHC,EACAC,EACAG,EACAL,EAAG,GACHA,EAAG,OAEP,EAgBM2a,EAAiB,CAAC,CAAE,GAAA3zB,EAAI,OAAAkZ,CAAA,EAAUD,EAAW+C,IAAgB,CACjE,IAAI3U,EACJ,KAAOrH,GAAMA,IAAOkZ,GAClB7R,EAAO0rB,EAAgB/yB,CAAE,EACzBuyB,EAAWvyB,EAAIiZ,EAAW+C,CAAW,EACrChc,EAAKqH,EAEPkrB,EAAWrZ,EAAQD,EAAW+C,CAAW,CAC3C,EACM4X,EAAmB,CAAC,CAAE,GAAA5zB,EAAI,OAAAkZ,KAAa,CAC3C,IAAI7R,EACJ,KAAOrH,GAAMA,IAAOkZ,GAClB7R,EAAO0rB,EAAgB/yB,CAAE,EACzBqb,EAAWrb,CAAE,EACbA,EAAKqH,EAEPgU,EAAWnC,CAAM,CACnB,EACMua,EAAiB,CAAC1a,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CAMzH,GALIP,EAAG,OAAS,MACdK,EAAY,MACHL,EAAG,OAAS,SACrBK,EAAY,UAEVN,GAAM,KACR8a,EACE7a,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,MAEG,CACL,MAAMua,EAAmB/a,EAAG,IAAMA,EAAG,GAAG,SAAYA,EAAG,GAAK,KAC5D,GAAI,CACE+a,GACFA,EAAc,cAEhBC,EACEhb,EACAC,EACAG,EACAC,EACAC,EACAC,EACAC,CAAA,CAEJ,SACMua,GACFA,EAAc,WAElB,CACF,CACF,EACMD,EAAe,CAACnc,EAAOuB,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CACtH,IAAIvZ,EACAyiB,EACJ,KAAM,CAAE,MAAA/e,EAAO,UAAAuW,EAAW,WAAA+Z,GAAY,KAAAC,GAASvc,EAyB/C,GAxBA1X,EAAK0X,EAAM,GAAK+a,EACd/a,EAAM,KACN2B,EACA3V,GAASA,EAAM,GACfA,CAAA,EAEEuW,EAAY,EACd4Y,EAAmB7yB,EAAI0X,EAAM,QAAQ,EAC5BuC,EAAY,IACrBR,EACE/B,EAAM,SACN1X,EACA,KACAmZ,EACAC,EACA8a,GAAyBxc,EAAO2B,CAAS,EACzCC,EACAC,CAAA,EAGA0a,GACFjc,GAAoBN,EAAO,KAAMyB,EAAiB,SAAS,EAE7Dgb,EAAWn0B,EAAI0X,EAAOA,EAAM,QAAS4B,EAAcH,CAAe,EAC9DzV,EAAO,CACT,UAAWrE,MAAOqE,EACZrE,KAAQ,SAAW,CAAC+B,GAAe/B,EAAG,GACxCmzB,EAAcxyB,EAAIX,GAAK,KAAMqE,EAAMrE,EAAG,EAAGga,EAAWF,CAAe,EAGnE,UAAWzV,GACb8uB,EAAcxyB,EAAI,QAAS,KAAM0D,EAAM,MAAO2V,CAAS,GAErDoJ,EAAY/e,EAAM,qBACpBgf,GAAgBD,EAAWtJ,EAAiBzB,CAAK,CAErD,CAKIuc,GACFjc,GAAoBN,EAAO,KAAMyB,EAAiB,aAAa,EAEjE,MAAMib,GAA0BC,GAAejb,EAAgB4a,EAAU,EACrEI,IACFJ,GAAW,YAAYh0B,CAAE,EAE3BuyB,EAAWvyB,EAAIiZ,EAAWC,CAAM,IAC3BuJ,EAAY/e,GAASA,EAAM,iBAAmB0wB,IAA2BH,IAC5EpZ,GAAsB,IAAM,CAC1B4H,GAAaC,GAAgBD,EAAWtJ,EAAiBzB,CAAK,EAC9D0c,IAA2BJ,GAAW,MAAMh0B,CAAE,EAC9Ci0B,GAAQjc,GAAoBN,EAAO,KAAMyB,EAAiB,SAAS,CACrE,EAAGC,CAAc,CAErB,EACM+a,EAAa,CAACn0B,EAAI0X,EAAO4c,EAAShb,EAAcH,IAAoB,CAIxE,GAHImb,GACFtB,EAAehzB,EAAIs0B,CAAO,EAExBhb,EACF,QAASrZ,EAAI,EAAGA,EAAIqZ,EAAa,OAAQrZ,IACvC+yB,EAAehzB,EAAIsZ,EAAarZ,CAAC,CAAC,EAGtC,GAAIkZ,EAAiB,CACnB,IAAI+D,EAAU/D,EAAgB,QAI9B,GAAIzB,IAAUwF,GAAWqG,GAAWrG,EAAQ,IAAI,IAAMA,EAAQ,YAAcxF,GAASwF,EAAQ,aAAexF,GAAQ,CAClH,MAAM6c,EAAcpb,EAAgB,MACpCgb,EACEn0B,EACAu0B,EACAA,EAAY,QACZA,EAAY,aACZpb,EAAgB,OAEpB,CACF,CACF,EACMM,EAAgB,CAACS,EAAUjB,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,EAAWxD,EAAQ,IAAM,CACrI,QAAS9V,EAAI8V,EAAO9V,EAAIia,EAAS,OAAQja,IAAK,CAC5C,MAAMwb,EAAQvB,EAASja,CAAC,EAAIsZ,EAAYib,GAAeta,EAASja,CAAC,CAAC,EAAIuxB,GAAetX,EAASja,CAAC,CAAC,EAChGmiB,EACE,KACA3G,EACAxC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,CAEJ,CACF,EACMwa,EAAe,CAAChb,EAAIC,EAAIG,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CACpG,MAAMvZ,EAAKgZ,EAAG,GAAKD,EAAG,GAItB,GAAI,CAAE,UAAA4W,EAAW,gBAAAxV,EAAiB,KAAA8Z,CAAA,EAASjb,EAC3C2W,GAAa5W,EAAG,UAAY,GAC5B,MAAM0b,EAAW1b,EAAG,OAASxZ,GACvBm1B,GAAW1b,EAAG,OAASzZ,GAC7B,IAAIkjB,EA2CJ,GA1CAtJ,GAAmBwb,GAAcxb,EAAiB,EAAK,GACnDsJ,EAAYiS,GAAS,sBACvBhS,GAAgBD,EAAWtJ,EAAiBH,EAAID,CAAE,EAEhDkb,GACFjc,GAAoBgB,EAAID,EAAII,EAAiB,cAAc,EAE7DA,GAAmBwb,GAAcxb,EAAiB,EAAI,GAMlDsb,EAAS,WAAaC,GAAS,WAAa,MAAQD,EAAS,aAAeC,GAAS,aAAe,OACtG7B,EAAmB7yB,EAAI,EAAE,EAEvBma,EACFR,EACEZ,EAAG,gBACHoB,EACAna,EACAmZ,EACAC,EACA8a,GAAyBlb,EAAIK,CAAS,EACtCC,CAAA,EAKQC,GACVG,GACEX,EACAC,EACAhZ,EACA,KACAmZ,EACAC,EACA8a,GAAyBlb,EAAIK,CAAS,EACtCC,EACA,IAGAqW,EAAY,EAAG,CACjB,GAAIA,EAAY,GACdiF,EAAW50B,EAAIy0B,EAAUC,GAAUvb,EAAiBE,CAAS,UAEzDsW,EAAY,GACV8E,EAAS,QAAUC,GAAS,OAC9BlC,EAAcxyB,EAAI,QAAS,KAAM00B,GAAS,MAAOrb,CAAS,EAG1DsW,EAAY,GACd6C,EAAcxyB,EAAI,QAASy0B,EAAS,MAAOC,GAAS,MAAOrb,CAAS,EAElEsW,EAAY,EAAG,CACjB,MAAMG,GAAgB9W,EAAG,aACzB,QAAS/Y,GAAI,EAAGA,GAAI6vB,GAAc,OAAQ7vB,KAAK,CAC7C,MAAMZ,GAAMywB,GAAc7vB,EAAC,EACrByH,GAAO+sB,EAASp1B,EAAG,EACnBgI,GAAOqtB,GAASr1B,EAAG,GACrBgI,KAASK,IAAQrI,KAAQ,UAC3BmzB,EAAcxyB,EAAIX,GAAKqI,GAAML,GAAMgS,EAAWF,CAAe,CAEjE,CACF,CAEEwW,EAAY,GACV5W,EAAG,WAAaC,EAAG,UACrB6Z,EAAmB7yB,EAAIgZ,EAAG,QAAQ,CAGxC,KAAW,CAACO,GAAaY,GAAmB,MAC1Cya,EAAW50B,EAAIy0B,EAAUC,GAAUvb,EAAiBE,CAAS,IAE1DoJ,EAAYiS,GAAS,iBAAmBT,IAC3CpZ,GAAsB,IAAM,CAC1B4H,GAAaC,GAAgBD,EAAWtJ,EAAiBH,EAAID,CAAE,EAC/Dkb,GAAQjc,GAAoBgB,EAAID,EAAII,EAAiB,SAAS,CAChE,EAAGC,CAAc,CAErB,EACMO,EAAqB,CAACkb,EAAaC,EAAaC,EAAmB5b,EAAiBC,EAAgBC,EAAWC,IAAiB,CACpI,QAASrZ,EAAI,EAAGA,EAAI60B,EAAY,OAAQ70B,IAAK,CAC3C,MAAM+0B,EAAWH,EAAY50B,CAAC,EACxBg1B,EAAWH,EAAY70B,CAAC,EACxBgZ,EAGJ+b,EAAS,KAERA,EAAS,OAASxU,IAEnB,CAACrC,GAAgB6W,EAAUC,CAAQ,GACnCD,EAAS,UAAa,KAAiBlC,EAAekC,EAAS,EAAE,EAG/DD,EAGJ3S,EACE4S,EACAC,EACAhc,EACA,KACAE,EACAC,EACAC,EACAC,EACA,GAEJ,CACF,EACMsb,EAAa,CAAC50B,EAAIy0B,EAAUC,EAAUvb,EAAiBE,IAAc,CACzE,GAAIob,IAAaC,EAAU,CACzB,GAAID,IAAal1B,GACf,UAAWF,KAAOo1B,EACZ,CAACrzB,GAAe/B,CAAG,GAAK,EAAEA,KAAOq1B,IACnClC,EACExyB,EACAX,EACAo1B,EAASp1B,CAAG,EACZ,KACAga,EACAF,CAAA,EAKR,UAAW9Z,KAAOq1B,EAAU,CAC1B,GAAItzB,GAAe/B,CAAG,EAAG,SACzB,MAAMgI,EAAOqtB,EAASr1B,CAAG,EACnBqI,EAAO+sB,EAASp1B,CAAG,EACrBgI,IAASK,GAAQrI,IAAQ,SAC3BmzB,EAAcxyB,EAAIX,EAAKqI,EAAML,EAAMgS,EAAWF,CAAe,CAEjE,CACI,UAAWub,GACblC,EAAcxyB,EAAI,QAASy0B,EAAS,MAAOC,EAAS,MAAOrb,CAAS,CAExE,CACF,EACMma,EAAkB,CAACza,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CAC1H,MAAM2b,EAAsBlc,EAAG,GAAKD,EAAKA,EAAG,GAAK2Z,EAAe,EAAE,EAC5DyC,EAAoBnc,EAAG,OAASD,EAAKA,EAAG,OAAS2Z,EAAe,EAAE,EACxE,GAAI,CAAE,UAAA/C,EAAW,gBAAAxV,GAAiB,aAAcib,GAAyBpc,EAOrEoc,IACF9b,EAAeA,EAAeA,EAAa,OAAO8b,CAAoB,EAAIA,GAExErc,GAAM,MACRwZ,EAAW2C,EAAqBjc,EAAWC,CAAM,EACjDqZ,EAAW4C,EAAmBlc,EAAWC,CAAM,EAC/CO,EAKET,EAAG,UAAY,GACfC,EACAkc,EACAhc,EACAC,EACAC,EACAC,EACAC,CAAA,GAGEoW,EAAY,GAAKA,EAAY,IAAMxV,IAEvCpB,EAAG,iBACDY,EACEZ,EAAG,gBACHoB,GACAlB,EACAE,EACAC,EACAC,EACAC,CAAA,GASAN,EAAG,KAAO,MAAQG,GAAmBH,IAAOG,EAAgB,UAE5D8B,GACElC,EACAC,EACA,KAKJU,GACEX,EACAC,EACAC,EACAkc,EACAhc,EACAC,EACAC,EACAC,EACAC,CAAA,CAIR,EACMma,EAAmB,CAAC3a,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CAC3HP,EAAG,aAAeM,EACdP,GAAM,KACJC,EAAG,UAAY,IACjBG,EAAgB,IAAI,SAClBH,EACAC,EACAC,EACAG,EACAE,CAAA,EAGF8b,GACErc,EACAC,EACAC,EACAC,EACAC,EACAC,EACAE,CAAA,EAIJ+b,GAAgBvc,EAAIC,EAAIO,CAAS,CAErC,EACM8b,GAAiB,CAACE,EAActc,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWE,IAAc,CACjH,MAAMjF,EAAYihB,EAAa,UAAYC,GACzCD,EACApc,EACAC,CAAA,EAsBF,GAbI+G,GAAYoV,CAAY,IAC1BjhB,EAAS,IAAI,SAAWkF,GAMxBic,GAAenhB,EAAU,GAAOiF,CAAS,EAMvCjF,EAAS,UAEX,GADA8E,GAAkBA,EAAe,YAAY9E,EAAUohB,GAAmBnc,CAAS,EAC/E,CAACgc,EAAa,GAAI,CACpB,MAAMnb,EAAc9F,EAAS,QAAUgT,GAAYtJ,EAAO,EAC1DqV,EAAmB,KAAMjZ,EAAanB,EAAWC,CAAM,EACvDqc,EAAa,YAAcnb,EAAY,EACzC,OAEAsb,GACEphB,EACAihB,EACAtc,EACAC,EACAE,EACAC,EACAE,CAAA,CAON,EACM+b,GAAkB,CAACvc,EAAIC,EAAIO,IAAc,CAC7C,MAAMjF,EAAW0E,EAAG,UAAYD,EAAG,UACnC,GAAI4c,GAAsB5c,EAAIC,EAAIO,CAAS,EACzC,GAAIjF,EAAS,UAAY,CAACA,EAAS,cAAe,CAIhDshB,EAAyBthB,EAAU0E,EAAIO,CAAS,EAIhD,MACF,MACEjF,EAAS,KAAO0E,EAChB1E,EAAS,cAGX0E,EAAG,GAAKD,EAAG,GACXzE,EAAS,MAAQ0E,CAErB,EACM0c,GAAoB,CAACphB,EAAUihB,EAActc,EAAWC,EAAQE,EAAgBC,EAAWE,IAAc,CAC7G,MAAMsc,EAAoB,IAAM,CAC9B,GAAKvhB,EAAS,UA4FP,CACL,GAAI,CAAE,KAAAjN,EAAM,GAAAyuB,GAAI,EAAAC,EAAG,OAAAC,GAAQ,MAAAte,IAAUpD,EACrC,CACE,MAAM2hB,GAAuBC,GAA2B5hB,CAAQ,EAChE,GAAI2hB,GAAsB,CACpB5uB,IACFA,EAAK,GAAKqQ,GAAM,GAChBke,EAAyBthB,EAAUjN,EAAMkS,CAAS,GAEpD0c,GAAqB,SAAS,KAAK,IAAM,CAClC3hB,EAAS,aACZuhB,EAAA,CAEJ,CAAC,EACD,MACF,CACF,CACA,IAAIM,GAAa9uB,EACbob,GAIJkS,GAAcrgB,EAAU,EAAK,EACzBjN,GACFA,EAAK,GAAKqQ,GAAM,GAChBke,EAAyBthB,EAAUjN,EAAMkS,CAAS,GAElDlS,EAAOqQ,GAELoe,IACF7zB,GAAe6zB,EAAE,GAEfrT,GAAYpb,EAAK,OAASA,EAAK,MAAM,sBACvCqb,GAAgBD,GAAWuT,GAAQ3uB,EAAMqQ,EAAK,EAEhDid,GAAcrgB,EAAU,EAAI,EAI5B,MAAM8hB,GAAWC,GAAoB/hB,CAAQ,EAIvCgiB,GAAWhiB,EAAS,QAC1BA,EAAS,QAAU8hB,GAInBhU,EACEkU,GACAF,GAEAtD,EAAewD,GAAS,EAAE,EAE1BpD,EAAgBoD,EAAQ,EACxBhiB,EACA8E,EACAC,CAAA,EAKFhS,EAAK,GAAK+uB,GAAS,GACfD,KAAe,MACjBI,GAAgBjiB,EAAU8hB,GAAS,EAAE,EAEnCL,GACFlb,GAAsBkb,EAAG3c,CAAc,GAErCqJ,GAAYpb,EAAK,OAASA,EAAK,MAAM,iBACvCwT,GACE,IAAM6H,GAAgBD,GAAWuT,GAAQ3uB,EAAMqQ,EAAK,EACpD0B,CAAA,CASN,KA7KyB,CACvB,IAAIqJ,EACJ,KAAM,CAAE,GAAAziB,GAAI,MAAA0D,CAAA,EAAU6xB,EAChB,CAAE,GAAAiB,GAAI,EAAA3J,GAAG,OAAAmJ,GAAQ,KAAAS,GAAM,KAAArtB,IAASkL,EAChCoiB,GAAsBvV,GAAeoU,CAAY,EACvDZ,GAAcrgB,EAAU,EAAK,EACzBkiB,IACFv0B,GAAeu0B,EAAE,EAEf,CAACE,KAAwBjU,EAAY/e,GAASA,EAAM,qBACtDgf,GAAgBD,EAAWuT,GAAQT,CAAY,EAEjDZ,GAAcrgB,EAAU,EAAI,EAiCrB,CACDmiB,GAAK,IACTA,GAAK,GAAG,KAAK,aAAe,IAC1BA,GAAK,GAAG,kBAAkBrtB,EAAI,EAKhC,MAAM8T,GAAU5I,EAAS,QAAU+hB,GAAoB/hB,CAAQ,EAO/D8N,EACE,KACAlF,GACAjE,EACAC,EACA5E,EACA8E,EACAC,CAAA,EAKFkc,EAAa,GAAKrY,GAAQ,EAC5B,CAIA,GAHI2P,IACFhS,GAAsBgS,GAAGzT,CAAc,EAErC,CAACsd,KAAwBjU,EAAY/e,GAASA,EAAM,gBAAiB,CACvE,MAAMizB,GAAqBpB,EAC3B1a,GACE,IAAM6H,GAAgBD,EAAWuT,GAAQW,EAAkB,EAC3Dvd,CAAA,CAEJ,EACImc,EAAa,UAAY,KAAOS,IAAU7U,GAAe6U,GAAO,KAAK,GAAKA,GAAO,MAAM,UAAY,MACrG1hB,EAAS,GAAKuG,GAAsBvG,EAAS,EAAG8E,CAAc,EAEhE9E,EAAS,UAAY,GAIrBihB,EAAetc,EAAYC,EAAS,IACtC,CAkFF,EACA5E,EAAS,MAAM,KACf,MAAMjB,EAASiB,EAAS,OAAS,IAAIpO,GAAe2vB,CAAiB,EACrEvhB,EAAS,MAAM,MACf,MAAMsiB,EAAStiB,EAAS,OAASjB,EAAO,IAAI,KAAKA,CAAM,EACjDW,EAAMM,EAAS,IAAMjB,EAAO,WAAW,KAAKA,CAAM,EACxDW,EAAI,EAAIM,EACRN,EAAI,GAAKM,EAAS,IAClBjB,EAAO,UAAY,IAAMgD,GAASrC,CAAG,EACrC2gB,GAAcrgB,EAAU,EAAI,EAK5BsiB,EAAA,CACF,EACMhB,EAA2B,CAACthB,EAAUuiB,EAAWtd,IAAc,CACnEsd,EAAU,UAAYviB,EACtB,MAAMwiB,EAAYxiB,EAAS,MAAM,MACjCA,EAAS,MAAQuiB,EACjBviB,EAAS,KAAO,KAChBmb,GAAYnb,EAAUuiB,EAAU,MAAOC,EAAWvd,CAAS,EAC3DyY,GAAY1d,EAAUuiB,EAAU,SAAUtd,CAAS,EACnDjR,GAAA,EACAqO,GAAiBrC,CAAQ,EACzB/L,GAAA,CACF,EACMmR,GAAgB,CAACX,EAAIC,EAAIC,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,EAAY,KAAU,CAChI,MAAMwd,EAAKhe,GAAMA,EAAG,SACdie,EAAgBje,EAAKA,EAAG,UAAY,EACpCke,EAAKje,EAAG,SACR,CAAE,UAAA2W,GAAW,UAAA1V,CAAA,EAAcjB,EACjC,GAAI2W,GAAY,GACd,GAAIA,GAAY,IAAK,CACnBuH,GACEH,EACAE,EACAhe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEF,MACF,SAAWoW,GAAY,IAAK,CAC1BwH,GACEJ,EACAE,EACAhe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEF,MACF,EAEEU,EAAY,GACV+c,EAAgB,IAClBI,GAAgBL,EAAI5d,EAAiBC,CAAc,EAEjD6d,IAAOF,GACTlE,EAAmB5Z,EAAWge,CAAE,GAG9BD,EAAgB,GACd/c,EAAY,GACdid,GACEH,EACAE,EACAhe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAGF6d,GAAgBL,EAAI5d,EAAiBC,EAAgB,EAAI,GAGvD4d,EAAgB,GAClBnE,EAAmB5Z,EAAW,EAAE,EAE9BgB,EAAY,IACdR,EACEwd,EACAhe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAKV,EACM4d,GAAuB,CAACJ,EAAIE,EAAIhe,EAAWC,EAAQC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CAC/Hwd,EAAKA,GAAMv3B,GACXy3B,EAAKA,GAAMz3B,GACX,MAAM63B,EAAYN,EAAG,OACfntB,EAAYqtB,EAAG,OACfK,EAAe,KAAK,IAAID,EAAWztB,CAAS,EAClD,IAAI3J,GACJ,IAAKA,GAAI,EAAGA,GAAIq3B,EAAcr3B,KAAK,CACjC,MAAMs3B,EAAYN,EAAGh3B,EAAC,EAAIsZ,EAAYib,GAAeyC,EAAGh3B,EAAC,CAAC,EAAIuxB,GAAeyF,EAAGh3B,EAAC,CAAC,EAClFmiB,EACE2U,EAAG92B,EAAC,EACJs3B,EACAte,EACA,KACAE,EACAC,EACAC,EACAC,EACAC,CAAA,CAEJ,CACI8d,EAAYztB,EACdwtB,GACEL,EACA5d,EACAC,EACA,GACA,GACAke,CAAA,EAGF7d,EACEwd,EACAhe,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA+d,CAAA,CAGN,EACMJ,GAAqB,CAACH,EAAIE,EAAIhe,EAAW0C,EAAcxC,EAAiBC,EAAgBC,EAAWC,EAAcC,IAAc,CACnI,IAAItZ,EAAI,EACR,MAAMu3B,EAAKP,EAAG,OACd,IAAIQ,EAAKV,EAAG,OAAS,EACjBW,GAAKF,EAAK,EACd,KAAOv3B,GAAKw3B,GAAMx3B,GAAKy3B,IAAI,CACzB,MAAM3e,EAAKge,EAAG92B,CAAC,EACT+Y,GAAKie,EAAGh3B,CAAC,EAAIsZ,EAAYib,GAAeyC,EAAGh3B,CAAC,CAAC,EAAIuxB,GAAeyF,EAAGh3B,CAAC,CAAC,EAC3E,GAAIke,GAAgBpF,EAAIC,EAAE,EACxBoJ,EACErJ,EACAC,GACAC,EACA,KACAE,EACAC,EACAC,EACAC,EACAC,CAAA,MAGF,OAEFtZ,GACF,CACA,KAAOA,GAAKw3B,GAAMx3B,GAAKy3B,IAAI,CACzB,MAAM3e,EAAKge,EAAGU,CAAE,EACVze,GAAKie,EAAGS,EAAE,EAAIne,EAAYib,GAAeyC,EAAGS,EAAE,CAAC,EAAIlG,GAAeyF,EAAGS,EAAE,CAAC,EAC9E,GAAIvZ,GAAgBpF,EAAIC,EAAE,EACxBoJ,EACErJ,EACAC,GACAC,EACA,KACAE,EACAC,EACAC,EACAC,EACAC,CAAA,MAGF,OAEFke,IACAC,IACF,CACA,GAAIz3B,EAAIw3B,GACN,GAAIx3B,GAAKy3B,GAAI,CACX,MAAMC,EAAUD,GAAK,EACfxe,GAASye,EAAUH,EAAKP,EAAGU,CAAO,EAAE,GAAKhc,EAC/C,KAAO1b,GAAKy3B,IACVtV,EACE,KACA6U,EAAGh3B,CAAC,EAAIsZ,EAAYib,GAAeyC,EAAGh3B,CAAC,CAAC,EAAIuxB,GAAeyF,EAAGh3B,CAAC,CAAC,EAChEgZ,EACAC,GACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEFtZ,GAEJ,UACSA,EAAIy3B,GACb,KAAOz3B,GAAKw3B,GACVrc,GAAQ2b,EAAG92B,CAAC,EAAGkZ,EAAiBC,EAAgB,EAAI,EACpDnZ,QAEG,CACL,MAAM23B,EAAK33B,EACL43B,GAAK53B,EACL63B,OAAuC,IAC7C,IAAK73B,EAAI43B,GAAI53B,GAAKy3B,GAAIz3B,IAAK,CACzB,MAAMs3B,GAAYN,EAAGh3B,CAAC,EAAIsZ,EAAYib,GAAeyC,EAAGh3B,CAAC,CAAC,EAAIuxB,GAAeyF,EAAGh3B,CAAC,CAAC,EAC9Es3B,GAAU,KAAO,MAQnBO,GAAiB,IAAIP,GAAU,IAAKt3B,CAAC,CAEzC,CACA,IAAI8mB,GACAgR,GAAU,EACd,MAAMC,GAAcN,GAAKG,GAAK,EAC9B,IAAII,GAAQ,GACRC,GAAmB,EACvB,MAAMC,GAAwB,IAAI,MAAMH,EAAW,EACnD,IAAK/3B,EAAI,EAAGA,EAAI+3B,GAAa/3B,IAAKk4B,GAAsBl4B,CAAC,EAAI,EAC7D,IAAKA,EAAI23B,EAAI33B,GAAKw3B,EAAIx3B,IAAK,CACzB,MAAMm4B,GAAYrB,EAAG92B,CAAC,EACtB,GAAI83B,IAAWC,GAAa,CAC1B5c,GAAQgd,GAAWjf,EAAiBC,EAAgB,EAAI,EACxD,QACF,CACA,IAAIif,GACJ,GAAID,GAAU,KAAO,KACnBC,GAAWP,GAAiB,IAAIM,GAAU,GAAG,MAE7C,KAAKrR,GAAI8Q,GAAI9Q,IAAK2Q,GAAI3Q,KACpB,GAAIoR,GAAsBpR,GAAI8Q,EAAE,IAAM,GAAK1Z,GAAgBia,GAAWnB,EAAGlQ,EAAC,CAAC,EAAG,CAC5EsR,GAAWtR,GACX,KACF,CAGAsR,KAAa,OACfjd,GAAQgd,GAAWjf,EAAiBC,EAAgB,EAAI,GAExD+e,GAAsBE,GAAWR,EAAE,EAAI53B,EAAI,EACvCo4B,IAAYH,GACdA,GAAmBG,GAEnBJ,GAAQ,GAEV7V,EACEgW,GACAnB,EAAGoB,EAAQ,EACXpf,EACA,KACAE,EACAC,EACAC,EACAC,EACAC,CAAA,EAEFwe,KAEJ,CACA,MAAMO,GAA6BL,GAAQM,GAAYJ,EAAqB,EAAI34B,GAEhF,IADAunB,GAAIuR,GAA2B,OAAS,EACnCr4B,EAAI+3B,GAAc,EAAG/3B,GAAK,EAAGA,IAAK,CACrC,MAAMu4B,GAAYX,GAAK53B,EACjBs3B,GAAYN,EAAGuB,EAAS,EACxBC,GAAcxB,EAAGuB,GAAY,CAAC,EAC9Btf,GAASsf,GAAY,EAAIhB,EAE7BiB,GAAY,IAAMA,GAAY,YAC5B9c,EACAwc,GAAsBl4B,CAAC,IAAM,EAC/BmiB,EACE,KACAmV,GACAte,EACAC,GACAC,EACAC,EACAC,EACAC,EACAC,CAAA,EAEO0e,KACLlR,GAAI,GAAK9mB,IAAMq4B,GAA2BvR,EAAC,EAC7CnL,GAAK2b,GAAWte,EAAWC,GAAQ,CAAC,EAEpC6N,KAGN,CACF,CACF,EACMnL,GAAO,CAAClE,EAAOuB,EAAWC,EAAQ2C,EAAUzC,EAAiB,OAAS,CAC1E,KAAM,CAAE,GAAApZ,EAAI,KAAAoJ,EAAM,WAAA4qB,EAAY,SAAA9Z,EAAU,UAAAD,GAAcvC,EACtD,GAAIuC,EAAY,EAAG,CACjB2B,GAAKlE,EAAM,UAAU,QAASuB,EAAWC,EAAQ2C,CAAQ,EACzD,MACF,CACA,GAAI5B,EAAY,IAAK,CACnBvC,EAAM,SAAS,KAAKuB,EAAWC,EAAQ2C,CAAQ,EAC/C,MACF,CACA,GAAI5B,EAAY,GAAI,CAClB7Q,EAAK,KAAKsO,EAAOuB,EAAWC,EAAQM,CAAS,EAC7C,MACF,CACA,GAAIpQ,IAASoX,GAAU,CACrB+R,EAAWvyB,EAAIiZ,EAAWC,CAAM,EAChC,QAASjZ,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IACnC2b,GAAK1B,EAASja,CAAC,EAAGgZ,EAAWC,EAAQ2C,CAAQ,EAE/C0W,EAAW7a,EAAM,OAAQuB,EAAWC,CAAM,EAC1C,MACF,CACA,GAAI9P,IAASkqB,GAAQ,CACnBK,EAAejc,EAAOuB,EAAWC,CAAM,EACvC,MACF,CAEA,GADwB2C,IAAa,GAAK5B,EAAY,GAAK+Z,EAEzD,GAAInY,IAAa,EACfmY,EAAW,YAAYh0B,CAAE,EACzBuyB,EAAWvyB,EAAIiZ,EAAWC,CAAM,EAChC2B,GAAsB,IAAMmZ,EAAW,MAAMh0B,CAAE,EAAGoZ,CAAc,MAC3D,CACL,KAAM,CAAE,MAAAsf,EAAO,WAAAC,GAAY,WAAAC,CAAA,EAAe5E,EACpC6E,GAAU,IAAM,CAChBnhB,EAAM,IAAI,YACZ2D,EAAWrb,CAAE,EAEbuyB,EAAWvyB,EAAIiZ,EAAWC,CAAM,CAEpC,EACM4f,GAAe,IAAM,CACrB94B,EAAG,YACLA,EAAGyc,EAAU,EACX,IAIJic,EAAM14B,EAAI,IAAM,CACd64B,KACAD,GAAcA,EAAA,CAChB,CAAC,CACH,EACID,GACFA,GAAW34B,EAAI64B,GAASC,EAAY,EAEpCA,GAAA,CAEJ,MAEAvG,EAAWvyB,EAAIiZ,EAAWC,CAAM,CAEpC,EACMkC,GAAU,CAAC1D,EAAOyB,EAAiBC,EAAgBkC,EAAW,GAAO/B,EAAY,KAAU,CAC/F,KAAM,CACJ,KAAAnQ,EACA,MAAA1F,EACA,IAAAuM,EACA,SAAAiK,EACA,gBAAAC,EACA,UAAAF,EACA,UAAA0V,EACA,KAAAsE,GACA,WAAA8E,CAAA,EACErhB,EAYJ,GAXIiY,IAAc,KAChBpW,EAAY,IAEVtJ,GAAO,OACT3H,GAAA,EACAyY,GAAO9Q,EAAK,KAAMmJ,EAAgB1B,EAAO,EAAI,EAC7CnP,GAAA,GAEEwwB,GAAc,OAChB5f,EAAgB,YAAY4f,CAAU,EAAI,QAExC9e,EAAY,IAAK,CACnBd,EAAgB,IAAI,WAAWzB,CAAK,EACpC,MACF,CACA,MAAMshB,GAAmB/e,EAAY,GAAKga,GACpCgF,GAAwB,CAAC9X,GAAezJ,CAAK,EACnD,IAAI+K,GAIJ,GAHIwW,KAA0BxW,GAAY/e,GAASA,EAAM,uBACvDgf,GAAgBD,GAAWtJ,EAAiBzB,CAAK,EAE/CuC,EAAY,EACdif,GAAiBxhB,EAAM,UAAW0B,EAAgBkC,CAAQ,MACrD,CACL,GAAIrB,EAAY,IAAK,CACnBvC,EAAM,SAAS,QAAQ0B,EAAgBkC,CAAQ,EAC/C,MACF,CACI0d,IACFhhB,GAAoBN,EAAO,KAAMyB,EAAiB,eAAe,EAE/Dc,EAAY,GACdvC,EAAM,KAAK,OACTA,EACAyB,EACAC,EACAI,EACA8B,CAAA,EAEOnB,GAKX,CAACA,EAAgB,UAChB/Q,IAASoX,IAAYmP,EAAY,GAAKA,EAAY,IACjDyH,GACEjd,EACAhB,EACAC,EACA,GACA,KAEOhQ,IAASoX,IAAYmP,EAAa,KAAc,CAACpW,GAAaU,EAAY,KACnFmd,GAAgBld,EAAUf,EAAiBC,CAAc,EAEvDkC,GACFxb,GAAO4X,CAAK,CAEhB,EACIuhB,KAA0BxW,GAAY/e,GAASA,EAAM,mBAAqBs1B,KAC5Ene,GAAsB,IAAM,CAC1B4H,IAAaC,GAAgBD,GAAWtJ,EAAiBzB,CAAK,EAC9DshB,IAAoBhhB,GAAoBN,EAAO,KAAMyB,EAAiB,WAAW,CACnF,EAAGC,CAAc,CAErB,EACMtZ,GAAU4X,GAAU,CACxB,KAAM,CAAE,KAAAtO,EAAM,GAAApJ,EAAI,OAAAkZ,EAAQ,WAAA8a,GAAetc,EACzC,GAAItO,IAASoX,GAAU,CAUnB2Y,GAAen5B,EAAIkZ,CAAM,EAE3B,MACF,CACA,GAAI9P,IAASkqB,GAAQ,CACnBM,EAAiBlc,CAAK,EACtB,MACF,CACA,MAAM0hB,EAAgB,IAAM,CAC1B/d,EAAWrb,CAAE,EACTg0B,GAAc,CAACA,EAAW,WAAaA,EAAW,YACpDA,EAAW,YAEf,EACA,GAAItc,EAAM,UAAY,GAAKsc,GAAc,CAACA,EAAW,UAAW,CAC9D,KAAM,CAAE,MAAA0E,EAAO,WAAAC,CAAA,EAAe3E,EACxB8E,EAAe,IAAMJ,EAAM14B,EAAIo5B,CAAa,EAC9CT,EACFA,EAAWjhB,EAAM,GAAI0hB,EAAeN,CAAY,EAEhDA,EAAA,CAEJ,MACEM,EAAA,CAEJ,EACMD,GAAiB,CAACrkB,EAAKkB,IAAQ,CACnC,IAAI3O,EACJ,KAAOyN,IAAQkB,GACb3O,EAAO0rB,EAAgBje,CAAG,EAC1BuG,EAAWvG,CAAG,EACdA,EAAMzN,EAERgU,EAAWrF,CAAG,CAChB,EACMkjB,GAAmB,CAAC5kB,EAAU8E,EAAgBkC,IAAa,CAI/D,KAAM,CAAE,IAAA+d,EAAK,MAAAxlB,EAAO,IAAAG,EAAK,QAAAkJ,EAAS,GAAAoc,EAAI,EAAAzM,EAAG,EAAA5oB,GAAMqQ,EAC/CqO,GAAgBkK,CAAC,EACjBlK,GAAgB1e,CAAC,EACbo1B,GACFp3B,GAAeo3B,CAAG,EAEpBxlB,EAAM,OACFG,IACFA,EAAI,OAAS,EACboH,GAAQ8B,EAAS5I,EAAU8E,EAAgBkC,CAAQ,GAEjDge,GACFze,GAAsBye,EAAIlgB,CAAc,EAE1CyB,GAAsB,IAAM,CAC1BvG,EAAS,YAAc,EACzB,EAAG8E,CAAc,CAInB,EACMge,GAAkB,CAACld,EAAUf,EAAiBC,EAAgBkC,EAAW,GAAO/B,EAAY,GAAOxD,EAAQ,IAAM,CACrH,QAAS9V,EAAI8V,EAAO9V,EAAIia,EAAS,OAAQja,IACvCmb,GAAQlB,EAASja,CAAC,EAAGkZ,EAAiBC,EAAgBkC,EAAU/B,CAAS,CAE7E,EACM2Z,EAAmBxb,GAAU,CACjC,GAAIA,EAAM,UAAY,EACpB,OAAOwb,EAAgBxb,EAAM,UAAU,OAAO,EAEhD,GAAIA,EAAM,UAAY,IACpB,OAAOA,EAAM,SAAS,OAExB,MAAM1X,EAAK+yB,EAAgBrb,EAAM,QAAUA,EAAM,EAAE,EAC7C6hB,EAAcv5B,GAAMA,EAAGqY,EAAc,EAC3C,OAAOkhB,EAAcxG,EAAgBwG,CAAW,EAAIv5B,CACtD,EACA,IAAIw5B,GAAa,GACjB,MAAMzO,EAAS,CAACrT,EAAOuB,EAAWI,IAAc,CAC1C3B,GAAS,KACPuB,EAAU,QACZmC,GAAQnC,EAAU,OAAQ,KAAM,KAAM,EAAI,EAG5CmJ,EACEnJ,EAAU,QAAU,KACpBvB,EACAuB,EACA,KACA,KACA,KACAI,CAAA,EAGJJ,EAAU,OAASvB,EACd8hB,KACHA,GAAa,GACb7iB,GAAA,EACAC,GAAA,EACA4iB,GAAa,GAEjB,EACMhgB,EAAY,CAChB,EAAG4I,EACH,GAAIhH,GACJ,EAAGQ,GACH,EAAG9b,GACH,GAAIu1B,GACJ,GAAI5b,EACJ,GAAIC,GACJ,IAAKC,EACL,EAAGuZ,EACH,EAAGvgB,CAAA,EASL,MAAO,CACL,OAAAoY,EACA,QATE,OAUF,UAAW+C,GAAa/C,CAAe,EAE3C,CACA,SAASmJ,GAAyB,CAAE,KAAA9qB,EAAM,MAAA1F,CAAA,EAAS+1B,EAAkB,CACnE,OAAOA,IAAqB,OAASrwB,IAAS,iBAAmBqwB,IAAqB,UAAYrwB,IAAS,kBAAoB1F,GAASA,EAAM,UAAYA,EAAM,SAAS,SAAS,MAAM,EAAI,OAAS+1B,CACvM,CACA,SAAS9E,GAAc,CAAE,OAAAthB,EAAQ,IAAAW,CAAA,EAAO0lB,EAAS,CAC3CA,GACFrmB,EAAO,OAAS,GAChBW,EAAI,OAAS,IAEbX,EAAO,OAAS,IAChBW,EAAI,OAAS,GAEjB,CACA,SAASqgB,GAAejb,EAAgB4a,EAAY,CAClD,OAAQ,CAAC5a,GAAkBA,GAAkB,CAACA,EAAe,gBAAkB4a,GAAc,CAACA,EAAW,SAC3G,CACA,SAAS/Y,GAAuBlC,EAAIC,EAAI3K,EAAU,GAAO,CACvD,MAAMsrB,EAAM5gB,EAAG,SACT6gB,EAAM5gB,EAAG,SACf,GAAI5Y,GAAQu5B,CAAG,GAAKv5B,GAAQw5B,CAAG,EAC7B,QAAS35B,EAAI,EAAGA,EAAI05B,EAAI,OAAQ15B,IAAK,CACnC,MAAM82B,EAAK4C,EAAI15B,CAAC,EAChB,IAAIg3B,EAAK2C,EAAI35B,CAAC,EACVg3B,EAAG,UAAY,GAAK,CAACA,EAAG,mBACtBA,EAAG,WAAa,GAAKA,EAAG,YAAc,MACxCA,EAAK2C,EAAI35B,CAAC,EAAIu0B,GAAeoF,EAAI35B,CAAC,CAAC,EACnCg3B,EAAG,GAAKF,EAAG,IAET,CAAC1oB,GAAW4oB,EAAG,YAAc,IAC/Bhc,GAAuB8b,EAAIE,CAAE,GAE7BA,EAAG,OAAS9D,IAChB8D,EAAG,YAAc,KACfA,EAAG,GAAKF,EAAG,IAETE,EAAG,OAASjZ,IAAW,CAACiZ,EAAG,KAC7BA,EAAG,GAAKF,EAAG,GAKf,CAEJ,CACA,SAASwB,GAAYx4B,EAAK,CACxB,MAAM6V,EAAI7V,EAAI,QACRwL,EAAS,CAAC,CAAC,EACjB,IAAItL,EAAG8mB,EAAGgP,EAAG5wB,EAAGzD,EAChB,MAAMm4B,EAAM95B,EAAI,OAChB,IAAKE,EAAI,EAAGA,EAAI45B,EAAK55B,IAAK,CACxB,MAAM65B,EAAO/5B,EAAIE,CAAC,EAClB,GAAI65B,IAAS,EAAG,CAEd,GADA/S,EAAIxb,EAAOA,EAAO,OAAS,CAAC,EACxBxL,EAAIgnB,CAAC,EAAI+S,EAAM,CACjBlkB,EAAE3V,CAAC,EAAI8mB,EACPxb,EAAO,KAAKtL,CAAC,EACb,QACF,CAGA,IAFA81B,EAAI,EACJ5wB,EAAIoG,EAAO,OAAS,EACbwqB,EAAI5wB,GACTzD,EAAIq0B,EAAI5wB,GAAK,EACTpF,EAAIwL,EAAO7J,CAAC,CAAC,EAAIo4B,EACnB/D,EAAIr0B,EAAI,EAERyD,EAAIzD,EAGJo4B,EAAO/5B,EAAIwL,EAAOwqB,CAAC,CAAC,IAClBA,EAAI,IACNngB,EAAE3V,CAAC,EAAIsL,EAAOwqB,EAAI,CAAC,GAErBxqB,EAAOwqB,CAAC,EAAI91B,EAEhB,CACF,CAGA,IAFA81B,EAAIxqB,EAAO,OACXpG,EAAIoG,EAAOwqB,EAAI,CAAC,EACTA,KAAM,GACXxqB,EAAOwqB,CAAC,EAAI5wB,EACZA,EAAIyQ,EAAEzQ,CAAC,EAET,OAAOoG,CACT,CACA,SAAS2qB,GAA2B5hB,EAAU,CAC5C,MAAMylB,EAAezlB,EAAS,QAAQ,UACtC,GAAIylB,EACF,OAAIA,EAAa,UAAY,CAACA,EAAa,cAClCA,EAEA7D,GAA2B6D,CAAY,CAGpD,CACA,SAASpX,GAAgB5E,EAAO,CAC9B,GAAIA,EACF,QAAS9d,EAAI,EAAGA,EAAI8d,EAAM,OAAQ9d,IAChC8d,EAAM9d,CAAC,EAAE,OAAS,CAExB,CAEA,MAAM+5B,GAAgB,OAAO,IAAI,OAAO,EAClCC,GAAgB,IAEN9N,GAAO6N,EAAa,EAUpC,SAASE,GAAY7mB,EAAQV,EAAS,CACpC,OAAOwnB,GAAQ9mB,EAAQ,KAAMV,CAAO,CACtC,CAQA,SAASynB,GAAgB/mB,EAAQV,EAAS,CACxC,OAAOwnB,GACL9mB,EACA,KACqF,CAAE,MAAO,OAAO,CAEzG,CACA,SAASZ,GAAM/B,EAAQgC,EAAIC,EAAS,CAMlC,OAAOwnB,GAAQzpB,EAAQgC,EAAIC,CAAO,CACpC,CACA,SAASwnB,GAAQzpB,EAAQgC,EAAIC,EAAUpT,GAAW,CAChD,KAAM,CAAE,UAAAqT,EAAW,KAAAC,EAAM,MAAAwnB,EAAO,KAAAvnB,GAASH,EAkBnC2nB,EAAmBz6B,GAAO,GAAI8S,CAAO,EAErC4nB,EAAkB7nB,GAAME,GAAa,CAACF,GAAM2nB,IAAU,OAC5D,IAAIG,EACJ,GAAItV,IACF,GAAImV,IAAU,OAAQ,CACpB,MAAMjjB,EAAM6iB,GAAA,EACZO,EAAapjB,EAAI,mBAAqBA,EAAI,iBAAmB,GAC/D,SAAW,CAACmjB,EAAiB,CAC3B,MAAME,EAAkB,IAAM,CAC9B,EACA,OAAAA,EAAgB,KAAOh7B,GACvBg7B,EAAgB,OAASh7B,GACzBg7B,EAAgB,MAAQh7B,GACjBg7B,CACT,EAEF,MAAMnmB,EAAWgQ,GACjBgW,EAAiB,KAAO,CAACh5B,EAAI8H,EAAMsB,IAAS8J,GAA2BlT,EAAIgT,EAAUlL,EAAMsB,CAAI,EAC/F,IAAIgwB,EAAQ,GACRL,IAAU,OACZC,EAAiB,UAAatmB,GAAQ,CACpC6G,GAAsB7G,EAAKM,GAAYA,EAAS,QAAQ,CAC1D,EACS+lB,IAAU,SACnBK,EAAQ,GACRJ,EAAiB,UAAY,CAACtmB,EAAK2mB,IAAe,CAC5CA,EACF3mB,EAAA,EAEAqC,GAASrC,CAAG,CAEhB,GAEFsmB,EAAiB,WAActmB,GAAQ,CACjCtB,IACFsB,EAAI,OAAS,GAEX0mB,IACF1mB,EAAI,OAAS,EACTM,IACFN,EAAI,GAAKM,EAAS,IAClBN,EAAI,EAAIM,GAGd,EACA,MAAMR,EAAc8mB,GAAQlqB,EAAQgC,EAAI4nB,CAAgB,EACxD,OAAIpV,KACEsV,EACFA,EAAW,KAAK1mB,CAAW,EAClBymB,GACTzmB,EAAA,GAGGA,CACT,CACA,SAASoU,GAAcxX,EAAQ1P,EAAO2R,EAAS,CAC7C,MAAMkX,EAAa,KAAK,MAClB5X,EAAStR,GAAS+P,CAAM,EAAIA,EAAO,SAAS,GAAG,EAAI2b,GAAiBxC,EAAYnZ,CAAM,EAAI,IAAMmZ,EAAWnZ,CAAM,EAAIA,EAAO,KAAKmZ,EAAYA,CAAU,EAC7J,IAAInX,EACAhS,GAAWM,CAAK,EAClB0R,EAAK1R,GAEL0R,EAAK1R,EAAM,QACX2R,EAAU3R,GAEZ,MAAM8jB,EAAQC,GAAmB,IAAI,EAC/BliB,EAAMs3B,GAAQloB,EAAQS,EAAG,KAAKmX,CAAU,EAAGlX,CAAO,EACxD,OAAAmS,EAAA,EACOjiB,CACT,CACA,SAASwpB,GAAiBjV,EAAKyjB,EAAM,CACnC,MAAMC,EAAWD,EAAK,MAAM,GAAG,EAC/B,MAAO,IAAM,CACX,IAAI/lB,EAAMsC,EACV,QAASnX,EAAI,EAAGA,EAAI66B,EAAS,QAAUhmB,EAAK7U,IAC1C6U,EAAMA,EAAIgmB,EAAS76B,CAAC,CAAC,EAEvB,OAAO6U,CACT,CACF,CAEA,SAASimB,GAASr3B,EAAOF,EAAMmP,EAAUpT,GAAW,CAClD,MAAMU,EAAIod,GAAA,EAKJ2d,EAAgBv5B,GAAS+B,CAAI,EAK7By3B,EAAiBr5B,GAAU4B,CAAI,EAC/BuU,EAAYmjB,GAAkBx3B,EAAOs3B,CAAa,EAClDn4B,EAAMqO,GAAU,CAAChI,EAAOI,IAAY,CACxC,IAAI6xB,EACAC,EAAe77B,GACf87B,EACJ,OAAAjB,GAAgB,IAAM,CACpB,MAAMkB,EAAY53B,EAAMs3B,CAAa,EACjCj5B,GAAWo5B,EAAYG,CAAS,IAClCH,EAAaG,EACbhyB,IAEJ,CAAC,EACM,CACL,KAAM,CACJJ,WACOyJ,EAAQ,IAAMA,EAAQ,IAAIwoB,CAAU,EAAIA,CACjD,EACA,IAAIn6B,EAAO,CACT,MAAMu6B,EAAe5oB,EAAQ,IAAMA,EAAQ,IAAI3R,CAAK,EAAIA,EACxD,GAAI,CAACe,GAAWw5B,EAAcJ,CAAU,GAAK,EAAEC,IAAiB77B,IAAawC,GAAWf,EAAOo6B,CAAY,GACzG,OAEF,MAAM5d,EAAWvd,EAAE,MAAM,MACnBud,IACLha,KAAQga,GAAYwd,KAAiBxd,GAAYyd,KAAkBzd,KAAc,YAAYha,CAAI,KAAMga,GAAY,YAAYwd,CAAa,KAAMxd,GAAY,YAAYyd,CAAc,KAAMzd,KAC7L2d,EAAan6B,EACbsI,KAEFrJ,EAAE,KAAK,UAAUuD,CAAI,GAAI+3B,CAAY,EACjCx5B,GAAWf,EAAOu6B,CAAY,GAAKx5B,GAAWf,EAAOo6B,CAAY,GAAK,CAACr5B,GAAWw5B,EAAcF,CAAgB,GAClH/xB,IAEF8xB,EAAep6B,EACfq6B,EAAmBE,CACrB,EAEJ,CAAC,EACD,OAAA14B,EAAI,OAAO,QAAQ,EAAI,IAAM,CAC3B,IAAI24B,EAAK,EACT,MAAO,CACL,MAAO,CACL,OAAIA,EAAK,EACA,CAAE,MAAOA,IAAOzjB,GAAaxY,GAAYsD,EAAK,KAAM,IAEpD,CAAE,KAAM,GAEnB,EAEJ,EACOA,CACT,CACA,MAAMq4B,GAAoB,CAACx3B,EAAO+3B,IACzBA,IAAc,cAAgBA,IAAc,cAAgB/3B,EAAM,eAAiBA,EAAM,GAAG+3B,CAAS,WAAW,GAAK/3B,EAAM,GAAGjC,GAASg6B,CAAS,CAAC,WAAW,GAAK/3B,EAAM,GAAG9B,GAAU65B,CAAS,CAAC,WAAW,EAGlN,SAASC,GAAKpnB,EAAUqnB,KAAUC,EAAS,CACzC,GAAItnB,EAAS,YAAa,OAC1B,MAAM5Q,EAAQ4Q,EAAS,MAAM,OAAS/U,GA0BtC,IAAImL,EAAOkxB,EACX,MAAMh8B,EAAkB+7B,EAAM,WAAW,SAAS,EAC5C5jB,EAAYnY,GAAmBs7B,GAAkBx3B,EAAOi4B,EAAM,MAAM,CAAC,CAAC,EACxE5jB,IACEA,EAAU,OACZrN,EAAOkxB,EAAQ,IAAK33B,GAAMtD,GAASsD,CAAC,EAAIA,EAAE,OAASA,CAAC,GAElD8T,EAAU,SACZrN,EAAOkxB,EAAQ,IAAIr5B,EAAa,IAmBpC,IAAIs5B,EACAvP,EAAU5oB,EAAMm4B,EAAc/5B,GAAa65B,CAAK,CAAC,GACrDj4B,EAAMm4B,EAAc/5B,GAAaL,GAASk6B,CAAK,CAAC,CAAC,EAC7C,CAACrP,GAAW1sB,IACd0sB,EAAU5oB,EAAMm4B,EAAc/5B,GAAaF,GAAU+5B,CAAK,CAAC,CAAC,GAE1DrP,GACF9X,GACE8X,EACAhY,EACA,EACA5J,CAAA,EAGJ,MAAMoxB,EAAcp4B,EAAMm4B,EAAc,MAAM,EAC9C,GAAIC,EAAa,CACf,GAAI,CAACxnB,EAAS,QACZA,EAAS,QAAU,WACVA,EAAS,QAAQunB,CAAW,EACrC,OAEFvnB,EAAS,QAAQunB,CAAW,EAAI,GAChCrnB,GACEsnB,EACAxnB,EACA,EACA5J,CAAA,CAEJ,CACF,CACA,MAAMqxB,OAAsC,QAC5C,SAASC,GAAsBlY,EAAMyE,EAAY2E,EAAU,GAAO,CAChE,MAAM3rB,EAA+B2rB,EAAU6O,GAAkBxT,EAAW,WACtEtF,EAAS1hB,EAAM,IAAIuiB,CAAI,EAC7B,GAAIb,IAAW,OACb,OAAOA,EAET,MAAM9Y,EAAM2Z,EAAK,MACjB,IAAI/gB,EAAa,GACb6tB,EAAa,GACjB,GAA2B,CAAClwB,GAAWojB,CAAI,EAAG,CAC5C,MAAMmY,EAAenL,GAAS,CAC5B,MAAMoL,EAAuBF,GAAsBlL,EAAMvI,EAAY,EAAI,EACrE2T,IACFtL,EAAa,GACb/wB,GAAOkD,EAAYm5B,CAAoB,EAE3C,EACI,CAAChP,GAAW3E,EAAW,OAAO,QAChCA,EAAW,OAAO,QAAQ0T,CAAW,EAEnCnY,EAAK,SACPmY,EAAYnY,EAAK,OAAO,EAEtBA,EAAK,QACPA,EAAK,OAAO,QAAQmY,CAAW,CAEnC,CACA,MAAI,CAAC9xB,GAAO,CAACymB,GACP/vB,GAASijB,CAAI,GACfviB,EAAM,IAAIuiB,EAAM,IAAI,EAEf,OAEL1jB,GAAQ+J,CAAG,EACbA,EAAI,QAAS9K,GAAQ0D,EAAW1D,CAAG,EAAI,IAAI,EAE3CQ,GAAOkD,EAAYoH,CAAG,EAEpBtJ,GAASijB,CAAI,GACfviB,EAAM,IAAIuiB,EAAM/gB,CAAU,EAErBA,EACT,CACA,SAASgtB,GAAepd,EAAStT,EAAK,CACpC,MAAI,CAACsT,GAAW,CAAChT,GAAKN,CAAG,EAChB,IAETA,EAAMA,EAAI,MAAM,CAAC,EAAE,QAAQ,QAAS,EAAE,EAC/Bc,GAAOwS,EAAStT,EAAI,CAAC,EAAE,cAAgBA,EAAI,MAAM,CAAC,CAAC,GAAKc,GAAOwS,EAAS/Q,GAAUvC,CAAG,CAAC,GAAKc,GAAOwS,EAAStT,CAAG,EACvH,CAMA,SAASg3B,GAAoB/hB,EAAU,CACrC,KAAM,CACJ,KAAM6R,EACN,MAAAzO,EACA,MAAA7H,EACA,UAAAssB,EACA,aAAc,CAACtT,CAAY,EAC3B,MAAAzL,EACA,MAAAmS,EACA,KAAAmM,EACA,OAAA3Q,EACA,YAAAqR,EACA,MAAA14B,EACA,KAAA2kB,EACA,WAAA/G,EACA,IAAAlK,EACA,aAAAiU,CAAA,EACE/W,EACE5M,EAAOsP,GAA4B1C,CAAQ,EACjD,IAAI/I,EACA8wB,EAIJ,GAAI,CACF,GAAI3kB,EAAM,UAAY,EAAG,CACvB,MAAM4kB,EAAaH,GAAatsB,EAC1B0sB,EASDD,EACL/wB,EAASimB,GACPzG,EAAO,KACLwR,EACAD,EACAF,EACqE14B,EACrE4d,EACA+G,EACAjR,CAAA,CACF,EAEFilB,EAAmB9M,CACrB,KAAO,CACL,MAAMiN,EAAUrW,EAIhB5a,EAASimB,GACPgL,EAAQ,OAAS,EAAIA,EACkD94B,EAQjE,CAAE,MAAA6rB,EAAO,MAAAnS,EAAO,KAAAse,EAAK,EACvBc,EACmE94B,EACrE,KACF,EAEF24B,EAAmBlW,EAAU,MAAQoJ,EAAQkN,GAAyBlN,CAAK,CAC7E,CACF,OAAShoB,EAAK,CACZm1B,GAAW,OAAS,EACpBnoB,GAAYhN,EAAK+M,EAAU,CAAC,EAC5B/I,EAAS+b,GAAYtJ,EAAO,CAC9B,CACA,IAAIyY,EAAOlrB,EAKX,GAAI8wB,GAAoBhR,IAAiB,GAAO,CAC9C,MAAMnJ,EAAO,OAAO,KAAKma,CAAgB,EACnC,CAAE,UAAApiB,GAAcwc,EAClBvU,EAAK,QACHjI,EAAa,IACX4O,GAAgB3G,EAAK,KAAKtiB,EAAe,IAC3Cy8B,EAAmBM,GACjBN,EACAxT,CAAA,GAGJ4N,EAAOrW,GAAWqW,EAAM4F,EAAkB,GAAO,EAAI,EA2B3D,CACA,OAAI3kB,EAAM,OAMR+e,EAAOrW,GAAWqW,EAAM,KAAM,GAAO,EAAI,EACzCA,EAAK,KAAOA,EAAK,KAAOA,EAAK,KAAK,OAAO/e,EAAM,IAAI,EAAIA,EAAM,MAE3DA,EAAM,YAMRuG,GAAmBwY,EAAM/e,EAAM,UAAU,EAKzCnM,EAASkrB,EAEXzf,GAA4BtP,CAAI,EACzB6D,CACT,CA6CA,MAAMkxB,GAA4BlN,GAAU,CAC1C,IAAI1sB,EACJ,UAAWxD,KAAOkwB,GACZlwB,IAAQ,SAAWA,IAAQ,SAAWM,GAAKN,CAAG,MAC/CwD,IAAQA,EAAM,KAAKxD,CAAG,EAAIkwB,EAAMlwB,CAAG,GAGxC,OAAOwD,CACT,EACM85B,GAAuB,CAACpN,EAAO7rB,IAAU,CAC7C,MAAMb,EAAM,GACZ,UAAWxD,KAAOkwB,GACZ,CAAC3vB,GAAgBP,CAAG,GAAK,EAAEA,EAAI,MAAM,CAAC,IAAKqE,MAC7Cb,EAAIxD,CAAG,EAAIkwB,EAAMlwB,CAAG,GAGxB,OAAOwD,CACT,EAIA,SAAS8yB,GAAsB1d,EAAW4e,EAAWtd,EAAW,CAC9D,KAAM,CAAE,MAAOud,EAAW,SAAU8F,EAAc,UAAA5W,GAAc/N,EAC1D,CAAE,MAAO4kB,EAAW,SAAUC,EAAc,UAAAnN,GAAckH,EAC1DkG,EAAQ/W,EAAU,aAIxB,GAAI6Q,EAAU,MAAQA,EAAU,WAC9B,MAAO,GAET,GAAItd,GAAaoW,GAAa,EAAG,CAC/B,GAAIA,EAAY,KACd,MAAO,GAET,GAAIA,EAAY,GACd,OAAKmH,EAGEkG,GAAgBlG,EAAW+F,EAAWE,CAAK,EAFzC,CAAC,CAACF,EAGb,GAAWlN,EAAY,EAAG,CACxB,MAAMsN,EAAepG,EAAU,aAC/B,QAAS52B,EAAI,EAAGA,EAAIg9B,EAAa,OAAQh9B,IAAK,CAC5C,MAAMZ,EAAM49B,EAAah9B,CAAC,EAC1B,GAAI48B,EAAUx9B,CAAG,IAAMy3B,EAAUz3B,CAAG,GAAK,CAAC0wB,GAAegN,EAAO19B,CAAG,EACjE,MAAO,EAEX,CACF,CACF,KACE,QAAIu9B,GAAgBE,KACd,CAACA,GAAgB,CAACA,EAAa,SAC1B,GAGPhG,IAAc+F,EACT,GAEJ/F,EAGA+F,EAGEG,GAAgBlG,EAAW+F,EAAWE,CAAK,EAFzC,GAHA,CAAC,CAACF,EAOb,MAAO,EACT,CACA,SAASG,GAAgBlG,EAAW+F,EAAWK,EAAc,CAC3D,MAAMC,EAAW,OAAO,KAAKN,CAAS,EACtC,GAAIM,EAAS,SAAW,OAAO,KAAKrG,CAAS,EAAE,OAC7C,MAAO,GAET,QAAS72B,EAAI,EAAGA,EAAIk9B,EAAS,OAAQl9B,IAAK,CACxC,MAAMZ,EAAM89B,EAASl9B,CAAC,EACtB,GAAI48B,EAAUx9B,CAAG,IAAMy3B,EAAUz3B,CAAG,GAAK,CAAC0wB,GAAemN,EAAc79B,CAAG,EACxE,MAAO,EAEX,CACA,MAAO,EACT,CACA,SAASk3B,GAAgB,CAAE,MAAA7e,EAAO,OAAAse,CAAA,EAAUh2B,EAAI,CAC9C,KAAOg2B,GAAQ,CACb,MAAMS,EAAOT,EAAO,QAIpB,GAHIS,EAAK,UAAYA,EAAK,SAAS,eAAiB/e,IAClD+e,EAAK,GAAK/e,EAAM,IAEd+e,IAAS/e,GACVA,EAAQse,EAAO,OAAO,GAAKh2B,EAC5Bg2B,EAASA,EAAO,WAEhB,MAEJ,CACF,CAEA,MAAMzS,GAAcna,GAASA,EAAK,aA2jBlC,SAAS+oB,GAAwB7wB,EAAIoiB,EAAU,CACzCA,GAAYA,EAAS,cACnBtjB,GAAQkB,CAAE,EACZoiB,EAAS,QAAQ,KAAK,GAAGpiB,CAAE,EAE3BoiB,EAAS,QAAQ,KAAKpiB,CAAE,EAG1BoV,GAAiBpV,CAAE,CAEvB,CAoBA,MAAMkf,GAAW,OAAO,IAAI,OAAO,EAC7B2S,GAAO,OAAO,IAAI,OAAO,EACzBnV,GAAU,OAAO,IAAI,OAAO,EAC5BsV,GAAS,OAAO,IAAI,OAAO,EAC3BoJ,GAAa,GACnB,IAAIU,GAAe,KACnB,SAAShW,EAAUiW,EAAkB,GAAO,CAC1CX,GAAW,KAAKU,GAAeC,EAAkB,KAAO,EAAE,CAC5D,CACA,SAASC,IAAa,CACpBZ,GAAW,MACXU,GAAeV,GAAWA,GAAW,OAAS,CAAC,GAAK,IACtD,CACA,IAAIa,GAAqB,EACzB,SAAShmB,GAAiBvW,EAAOw8B,EAAU,GAAO,CAChDD,IAAsBv8B,EAClBA,EAAQ,GAAKo8B,IAAgBI,IAC/BJ,GAAa,QAAU,GAE3B,CACA,SAASK,GAAW/lB,EAAO,CACzB,OAAAA,EAAM,gBAAkB6lB,GAAqB,EAAIH,IAAgB59B,GAAY,KAC7E89B,GAAA,EACIC,GAAqB,GAAKH,IAC5BA,GAAa,KAAK1lB,CAAK,EAElBA,CACT,CACA,SAASgmB,EAAmBt0B,EAAM1F,EAAOwW,EAAUyV,EAAWsN,EAAchjB,EAAW,CACrF,OAAOwjB,GACLE,EACEv0B,EACA1F,EACAwW,EACAyV,EACAsN,EACAhjB,EACA,GACF,CAEJ,CACA,SAASoN,GAAYje,EAAM1F,EAAOwW,EAAUyV,EAAWsN,EAAc,CACnE,OAAOQ,GACLnW,GACEle,EACA1F,EACAwW,EACAyV,EACAsN,EACA,GACF,CAEJ,CACA,SAASpZ,GAAQ7iB,EAAO,CACtB,OAAOA,EAAQA,EAAM,cAAgB,GAAO,EAC9C,CACA,SAASmd,GAAgBpF,EAAIC,EAAI,CAS/B,OAAOD,EAAG,OAASC,EAAG,MAAQD,EAAG,MAAQC,EAAG,GAC9C,CAUA,MAAM4kB,GAAe,CAAC,CAAE,IAAAv+B,KAAUA,GAAoB,KAChDw+B,GAAe,CAAC,CACpB,IAAA5tB,EACA,QAAA6tB,EACA,QAAAC,CACF,KACM,OAAO9tB,GAAQ,WACjBA,EAAM,GAAKA,GAENA,GAAO,KAAOtP,GAASsP,CAAG,GAAKrL,GAAMqL,CAAG,GAAKvP,GAAWuP,CAAG,EAAI,CAAE,EAAG6G,GAA0B,EAAG7G,EAAK,EAAG6tB,EAAS,EAAG,CAAC,CAACC,GAAY9tB,EAAM,MAElJ,SAAS0tB,EAAgBv0B,EAAM1F,EAAQ,KAAMwW,EAAW,KAAMyV,EAAY,EAAGsN,EAAe,KAAMhjB,EAAY7Q,IAASoX,GAAW,EAAI,EAAGwd,EAAc,GAAOC,EAAgC,GAAO,CACnM,MAAMvmB,EAAQ,CACZ,YAAa,GACb,SAAU,GACV,KAAAtO,EACA,MAAA1F,EACA,IAAKA,GAASk6B,GAAal6B,CAAK,EAChC,IAAKA,GAASm6B,GAAan6B,CAAK,EAChC,QAASqT,GACT,aAAc,KACd,SAAAmD,EACA,UAAW,KACX,SAAU,KACV,UAAW,KACX,WAAY,KACZ,KAAM,KACN,WAAY,KACZ,GAAI,KACJ,OAAQ,KACR,OAAQ,KACR,YAAa,KACb,aAAc,KACd,YAAa,EACb,UAAAD,EACA,UAAA0V,EACA,aAAAsN,EACA,gBAAiB,KACjB,WAAY,KACZ,IAAKnmB,EAAA,EAEP,OAAImnB,GACFC,GAAkBxmB,EAAOwC,CAAQ,EAC7BD,EAAY,KACd7Q,EAAK,UAAUsO,CAAK,GAEbwC,IACTxC,EAAM,WAAa/W,GAASuZ,CAAQ,EAAI,EAAI,IAK1CqjB,GAAqB,GACzB,CAACS,GACDZ,KAIC1lB,EAAM,UAAY,GAAKuC,EAAY,IAEpCvC,EAAM,YAAc,IAClB0lB,GAAa,KAAK1lB,CAAK,EAElBA,CACT,CACA,MAAM4P,GAAyF6W,GAC/F,SAASA,GAAa/0B,EAAM1F,EAAQ,KAAMwW,EAAW,KAAMyV,EAAY,EAAGsN,EAAe,KAAMe,EAAc,GAAO,CAOlH,IANI,CAAC50B,GAAQA,IAAS0c,MAIpB1c,EAAO4U,IAEL6F,GAAQza,CAAI,EAAG,CACjB,MAAMg1B,EAAShe,GACbhX,EACA1F,EACA,IAGF,OAAIwW,GACFgkB,GAAkBE,EAAQlkB,CAAQ,EAEhCqjB,GAAqB,GAAK,CAACS,GAAeZ,KACxCgB,EAAO,UAAY,EACrBhB,GAAaA,GAAa,QAAQh0B,CAAI,CAAC,EAAIg1B,EAE3ChB,GAAa,KAAKgB,CAAM,GAG5BA,EAAO,UAAY,GACZA,CACT,CAIA,GAHIC,GAAiBj1B,CAAI,IACvBA,EAAOA,EAAK,WAEV1F,EAAO,CACTA,EAAQ46B,GAAmB56B,CAAK,EAChC,GAAI,CAAE,MAAOC,EAAO,MAAAC,CAAA,EAAUF,EAC1BC,GAAS,CAAChD,GAASgD,CAAK,IAC1BD,EAAM,MAAQH,GAAeI,CAAK,GAEhC9C,GAAS+C,CAAK,IACZoI,GAAQpI,CAAK,GAAK,CAACxD,GAAQwD,CAAK,IAClCA,EAAQ/D,GAAO,GAAI+D,CAAK,GAE1BF,EAAM,MAAQd,GAAegB,CAAK,EAEtC,CACA,MAAMqW,EAAYtZ,GAASyI,CAAI,EAAI,EAAIma,GAAWna,CAAI,EAAI,IAAMkP,GAAWlP,CAAI,EAAI,GAAKvI,GAASuI,CAAI,EAAI,EAAI1I,GAAW0I,CAAI,EAAI,EAAI,EAUpI,OAAOu0B,EACLv0B,EACA1F,EACAwW,EACAyV,EACAsN,EACAhjB,EACA+jB,EACA,GAEJ,CACA,SAASM,GAAmB56B,EAAO,CACjC,OAAKA,EACEsI,GAAQtI,CAAK,GAAK0rB,GAAiB1rB,CAAK,EAAI7D,GAAO,GAAI6D,CAAK,EAAIA,EADpD,IAErB,CACA,SAAS0c,GAAW1I,EAAO6mB,EAAYC,EAAW,GAAOC,EAAkB,GAAO,CAChF,KAAM,CAAE,MAAA/6B,EAAO,IAAAuM,EAAK,UAAA0f,EAAW,SAAAzV,EAAU,WAAA8Z,GAAetc,EAClDgnB,EAAcH,EAAaI,GAAWj7B,GAAS,GAAI66B,CAAU,EAAI76B,EACjE06B,EAAS,CACb,YAAa,GACb,SAAU,GACV,KAAM1mB,EAAM,KACZ,MAAOgnB,EACP,IAAKA,GAAed,GAAac,CAAW,EAC5C,IAAKH,GAAcA,EAAW,IAI5BC,GAAYvuB,EAAM7P,GAAQ6P,CAAG,EAAIA,EAAI,OAAO4tB,GAAaU,CAAU,CAAC,EAAI,CAACtuB,EAAK4tB,GAAaU,CAAU,CAAC,EAAIV,GAAaU,CAAU,EAC/HtuB,EACJ,QAASyH,EAAM,QACf,aAAcA,EAAM,aACpB,SAA8HwC,EAC9H,OAAQxC,EAAM,OACd,YAAaA,EAAM,YACnB,aAAcA,EAAM,aACpB,YAAaA,EAAM,YACnB,UAAWA,EAAM,UAKjB,UAAW6mB,GAAc7mB,EAAM,OAAS8I,GAAWmP,IAAc,GAAK,GAAKA,EAAY,GAAKA,EAC5F,aAAcjY,EAAM,aACpB,gBAAiBA,EAAM,gBACvB,WAAYA,EAAM,WAClB,KAAMA,EAAM,KACZ,WAAAsc,EAKA,UAAWtc,EAAM,UACjB,SAAUA,EAAM,SAChB,UAAWA,EAAM,WAAa0I,GAAW1I,EAAM,SAAS,EACxD,WAAYA,EAAM,YAAc0I,GAAW1I,EAAM,UAAU,EAC3D,YAAaA,EAAM,YACnB,GAAIA,EAAM,GACV,OAAQA,EAAM,OACd,IAAKA,EAAM,IACX,GAAIA,EAAM,IAEZ,OAAIsc,GAAcyK,GAChBxgB,GACEmgB,EACApK,EAAW,MAAMoK,CAAM,GAGpBA,CACT,CAQA,SAASQ,GAAgBC,EAAO,IAAKC,EAAO,EAAG,CAC7C,OAAOxX,GAAY6L,GAAM,KAAM0L,EAAMC,CAAI,CAC3C,CACA,SAASC,GAAkBC,EAASC,EAAe,CACjD,MAAMvnB,EAAQ4P,GAAYgM,GAAQ,KAAM0L,CAAO,EAC/C,OAAAtnB,EAAM,YAAcunB,EACbvnB,CACT,CACA,SAASwnB,EAAmBL,EAAO,GAAIM,EAAU,GAAO,CACtD,OAAOA,GAAW/X,IAAaC,GAAYrJ,GAAS,KAAM6gB,CAAI,GAAKvX,GAAYtJ,GAAS,KAAM6gB,CAAI,CACpG,CACA,SAASrN,GAAe/V,EAAO,CAC7B,OAAIA,GAAS,MAAQ,OAAOA,GAAU,UAC7B6L,GAAYtJ,EAAO,EACjB5d,GAAQqb,CAAK,EACf6L,GACL9G,GACA,KAEA/E,EAAM,OAAM,EAELoI,GAAQpI,CAAK,EACf+Y,GAAe/Y,CAAK,EAEpB6L,GAAY6L,GAAM,KAAM,OAAO1X,CAAK,CAAC,CAEhD,CACA,SAAS+Y,GAAe/Y,EAAO,CAC7B,OAAOA,EAAM,KAAO,MAAQA,EAAM,YAAc,IAAMA,EAAM,KAAOA,EAAQ2E,GAAW3E,CAAK,CAC7F,CACA,SAASyiB,GAAkBxmB,EAAOwC,EAAU,CAC1C,IAAI9Q,EAAO,EACX,KAAM,CAAE,UAAA6Q,GAAcvC,EACtB,GAAIwC,GAAY,KACdA,EAAW,aACF9Z,GAAQ8Z,CAAQ,EACzB9Q,EAAO,WACE,OAAO8Q,GAAa,SAC7B,GAAID,EAAa,GAAS,CACxB,MAAM6M,EAAO5M,EAAS,QAClB4M,IACFA,EAAK,KAAOA,EAAK,GAAK,IACtBoX,GAAkBxmB,EAAOoP,GAAM,EAC/BA,EAAK,KAAOA,EAAK,GAAK,KAExB,MACF,KAAO,CACL1d,EAAO,GACP,MAAMg2B,EAAWllB,EAAS,EACtB,CAACklB,GAAY,CAAChQ,GAAiBlV,CAAQ,EACzCA,EAAS,KAAOpD,GACPsoB,IAAa,GAAKtoB,KACvBA,GAAyB,MAAM,IAAM,EACvCoD,EAAS,EAAI,GAEbA,EAAS,EAAI,EACbxC,EAAM,WAAa,MAGzB,MACShX,GAAWwZ,CAAQ,GAC5BA,EAAW,CAAE,QAASA,EAAU,KAAMpD,EAAA,EACtC1N,EAAO,KAEP8Q,EAAW,OAAOA,CAAQ,EACtBD,EAAY,IACd7Q,EAAO,GACP8Q,EAAW,CAAC0kB,GAAgB1kB,CAAQ,CAAC,GAErC9Q,EAAO,GAGXsO,EAAM,SAAWwC,EACjBxC,EAAM,WAAatO,CACrB,CACA,SAASu1B,MAAcj0B,EAAM,CAC3B,MAAMrH,EAAM,GACZ,QAASpD,EAAI,EAAGA,EAAIyK,EAAK,OAAQzK,IAAK,CACpC,MAAMo/B,EAAU30B,EAAKzK,CAAC,EACtB,UAAWZ,KAAOggC,EAChB,GAAIhgC,IAAQ,QACNgE,EAAI,QAAUg8B,EAAQ,QACxBh8B,EAAI,MAAQE,GAAe,CAACF,EAAI,MAAOg8B,EAAQ,KAAK,CAAC,WAE9ChgC,IAAQ,QACjBgE,EAAI,MAAQT,GAAe,CAACS,EAAI,MAAOg8B,EAAQ,KAAK,CAAC,UAC5C1/B,GAAKN,CAAG,EAAG,CACpB,MAAMyiB,EAAWze,EAAIhE,CAAG,EAClBigC,EAAWD,EAAQhgC,CAAG,EACxBigC,GAAYxd,IAAawd,GAAY,EAAEl/B,GAAQ0hB,CAAQ,GAAKA,EAAS,SAASwd,CAAQ,KACxFj8B,EAAIhE,CAAG,EAAIyiB,EAAW,GAAG,OAAOA,EAAUwd,CAAQ,EAAIA,EAE1D,MAAWjgC,IAAQ,KACjBgE,EAAIhE,CAAG,EAAIggC,EAAQhgC,CAAG,EAG5B,CACA,OAAOgE,CACT,CACA,SAASqf,GAAgBtK,EAAM9D,EAAUoD,EAAOO,EAAY,KAAM,CAChEzD,GAA2B4D,EAAM9D,EAAU,EAAG,CAC5CoD,EACAO,CAAA,CACD,CACH,CAEA,MAAMsnB,GAAkB3R,GAAA,EACxB,IAAI4R,GAAM,EACV,SAAShK,GAAwB9d,EAAOse,EAAQtS,EAAU,CACxD,MAAMta,EAAOsO,EAAM,KACb6Q,GAAcyN,EAASA,EAAO,WAAate,EAAM,aAAe6nB,GAChEjrB,EAAW,CACf,IAAKkrB,KACL,MAAA9nB,EACA,KAAAtO,EACA,OAAA4sB,EACA,WAAAzN,EACA,KAAM,KAEN,KAAM,KACN,QAAS,KAET,OAAQ,KACR,OAAQ,KAER,IAAK,KACL,MAAO,IAAIjjB,GACT,IAGF,OAAQ,KACR,MAAO,KACP,QAAS,KACT,YAAa,KACb,UAAW,KACX,SAAU0wB,EAASA,EAAO,SAAW,OAAO,OAAOzN,EAAW,QAAQ,EACtE,IAAKyN,EAASA,EAAO,IAAM,CAAC,GAAI,EAAG,CAAC,EACpC,YAAa,KACb,YAAa,GAEb,WAAY,KACZ,WAAY,KAEZ,aAAcrF,GAAsBvnB,EAAMmf,CAAU,EACpD,aAAcyT,GAAsB5yB,EAAMmf,CAAU,EAEpD,KAAM,KAEN,QAAS,KAET,cAAehpB,GAEf,aAAc6J,EAAK,aAEnB,IAAK7J,GACL,KAAMA,GACN,MAAOA,GACP,MAAOA,GACP,MAAOA,GACP,KAAMA,GACN,WAAYA,GACZ,aAAc,KAEd,SAAAmkB,EACA,WAAYA,EAAWA,EAAS,UAAY,EAC5C,SAAU,KACV,cAAe,GAGf,UAAW,GACX,YAAa,GACb,cAAe,GACf,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,EAAG,KACH,GAAI,KACJ,IAAK,KACL,GAAI,KACJ,EAAG,KACH,IAAK,KACL,IAAK,KACL,GAAI,KACJ,GAAI,MAKJ,OAAApP,EAAS,IAAM,CAAE,EAAGA,CAAA,EAEtBA,EAAS,KAAO0hB,EAASA,EAAO,KAAO1hB,EACvCA,EAAS,KAAOonB,GAAK,KAAK,KAAMpnB,CAAQ,EACpCoD,EAAM,IACRA,EAAM,GAAGpD,CAAQ,EAEZA,CACT,CACA,IAAIgQ,GAAkB,KACtB,MAAMjH,GAAqB,IAAMiH,IAAmBxN,GACpD,IAAI2oB,GACAC,GACJ,CACE,MAAMC,EAAIh9B,GAAA,EACJi9B,EAAuB,CAACvgC,EAAKwS,IAAW,CAC5C,IAAIguB,EACJ,OAAMA,EAAUF,EAAEtgC,CAAG,KAAIwgC,EAAUF,EAAEtgC,CAAG,EAAI,IAC5CwgC,EAAQ,KAAKhuB,CAAM,EACX1M,GAAM,CACR06B,EAAQ,OAAS,EAAGA,EAAQ,QAAS7uB,GAAQA,EAAI7L,CAAC,CAAC,EAClD06B,EAAQ,CAAC,EAAE16B,CAAC,CACnB,CACF,EACAs6B,GAA6BG,EAC3B,2BACCz6B,GAAMmf,GAAkBnf,CAAA,EAE3Bu6B,GAAqBE,EACnB,sBACCz6B,GAAM+f,GAAwB/f,CAAA,CAEnC,CACA,MAAM4f,GAAsBzQ,GAAa,CACvC,MAAM5M,EAAO4c,GACb,OAAAmb,GAA2BnrB,CAAQ,EACnCA,EAAS,MAAM,KACR,IAAM,CACXA,EAAS,MAAM,MACfmrB,GAA2B/3B,CAAI,CACjC,CACF,EACMo4B,GAAuB,IAAM,CACjCxb,IAAmBA,GAAgB,MAAM,MACzCmb,GAA2B,IAAI,CACjC,EASA,SAAS1X,GAAoBzT,EAAU,CACrC,OAAOA,EAAS,MAAM,UAAY,CACpC,CACA,IAAI4Q,GAAwB,GAC5B,SAASuQ,GAAenhB,EAAUxC,EAAQ,GAAOyH,EAAY,GAAO,CAClEzH,GAAS4tB,GAAmB5tB,CAAK,EACjC,KAAM,CAAE,MAAApO,EAAO,SAAAwW,CAAA,EAAa5F,EAAS,MAC/Bgb,EAAavH,GAAoBzT,CAAQ,EAC/C+a,GAAU/a,EAAU5Q,EAAO4rB,EAAYxd,CAAK,EAC5CigB,GAAUzd,EAAU4F,EAAUX,GAAazH,CAAK,EAChD,MAAMiuB,EAAczQ,EAAa0Q,GAAuB1rB,EAAUxC,CAAK,EAAI,OAC3E,OAAAA,GAAS4tB,GAAmB,EAAK,EAC1BK,CACT,CACA,SAASC,GAAuB1rB,EAAUxC,EAAO,CAE/C,MAAMqU,EAAY7R,EAAS,KAuB3BA,EAAS,YAA8B,OAAO,OAAO,IAAI,EACzDA,EAAS,MAAQ,IAAI,MAAMA,EAAS,IAAK8T,EAA2B,EAIpE,KAAM,CAAE,MAAA6X,GAAU9Z,EAClB,GAAI8Z,EAAO,CACT33B,GAAA,EACA,MAAM43B,EAAe5rB,EAAS,aAAe2rB,EAAM,OAAS,EAAI7W,GAAmB9U,CAAQ,EAAI,KACzFwQ,EAAQC,GAAmBzQ,CAAQ,EACnCyrB,EAAc1rB,GAClB4rB,EACA3rB,EACA,EACA,CACgFA,EAAS,MACvF4rB,CAAA,CACF,EAEIC,EAAer/B,GAAUi/B,CAAW,EAM1C,GALAx3B,GAAA,EACAuc,EAAA,GACKqb,GAAgB7rB,EAAS,KAAO,CAAC6M,GAAe7M,CAAQ,GAC3DqM,GAAkBrM,CAAQ,EAExB6rB,EAAc,CAEhB,GADAJ,EAAY,KAAKD,GAAsBA,EAAoB,EACvDhuB,EACF,OAAOiuB,EAAY,KAAMK,GAAmB,CAC1CC,GAAkB/rB,EAAU8rB,CAAqB,CACnD,CAAC,EAAE,MAAOh5B,GAAM,CACdmN,GAAYnN,EAAGkN,EAAU,CAAC,CAC5B,CAAC,EAEDA,EAAS,SAAWyrB,CAQxB,MACEM,GAAkB/rB,EAAUyrB,CAAkB,CAElD,MACEO,GAAqBhsB,CAAe,CAExC,CACA,SAAS+rB,GAAkB/rB,EAAUyrB,EAAajuB,EAAO,CACnDpR,GAAWq/B,CAAW,EACpBzrB,EAAS,KAAK,kBAChBA,EAAS,UAAYyrB,EAErBzrB,EAAS,OAASyrB,EAEXl/B,GAASk/B,CAAW,IAS7BzrB,EAAS,WAAa1D,GAAUmvB,CAAW,GAS7CO,GAAqBhsB,CAAe,CACtC,CAYA,SAASgsB,GAAqBhsB,EAAUxC,EAAOyuB,EAAa,CAC1D,MAAMpa,EAAY7R,EAAS,KACtBA,EAAS,SAyBZA,EAAS,OAAS6R,EAAU,QAAU1mB,IAKP,CAC/B,MAAMqlB,EAAQC,GAAmBzQ,CAAQ,EACzChM,GAAA,EACA,GAAI,CACFshB,GAAatV,CAAQ,CACvB,SACE/L,GAAA,EACAuc,EAAA,CACF,CACF,CAUF,CACA,MAAM0b,GAcF,CACF,IAAIr3B,EAAQ9J,EAAK,CACf,OAAA6J,GAAMC,EAAQ,MAAO,EAAE,EAChBA,EAAO9J,CAAG,CACnB,CACF,EASA,SAAS+pB,GAAmB9U,EAAU,CACpC,MAAM8W,EAAUY,GAAY,CAqB1B1X,EAAS,QAAU0X,GAAW,EAChC,EAiBE,MAAO,CACL,MAAO,IAAI,MAAM1X,EAAS,MAAOksB,EAAkB,EACnD,MAAOlsB,EAAS,MAChB,KAAMA,EAAS,KACf,OAAA8W,CAAA,CAGN,CACA,SAASxT,GAA2BtD,EAAU,CAC5C,OAAIA,EAAS,QACJA,EAAS,cAAgBA,EAAS,YAAc,IAAI,MAAM1D,GAAUb,GAAQuE,EAAS,OAAO,CAAC,EAAG,CACrG,IAAInL,EAAQ9J,EAAK,CACf,GAAIA,KAAO8J,EACT,OAAOA,EAAO9J,CAAG,EACnB,GAAWA,KAAO2oB,GAChB,OAAOA,GAAoB3oB,CAAG,EAAEiV,CAAQ,CAE5C,EACA,IAAInL,EAAQ9J,EAAK,CACf,OAAOA,KAAO8J,GAAU9J,KAAO2oB,EACjC,EACD,GAEM1T,EAAS,KAEpB,CAGA,SAASyO,GAAiBoD,EAAWsa,EAAkB,GAAM,CAC3D,OAAO//B,GAAWylB,CAAS,EAAIA,EAAU,aAAeA,EAAU,KAAOA,EAAU,MAAQsa,GAAmBta,EAAU,MAC1H,CAuBA,SAASkY,GAAiBr9B,EAAO,CAC/B,OAAON,GAAWM,CAAK,GAAK,cAAeA,CAC7C,CAEA,MAAM6G,EAAW,CAACkK,EAAiBC,IACvB0uB,GAAW3uB,EAAiBC,EAAckT,EAAqB,EAU3E,SAASkH,GAAEhjB,EAAMu3B,EAAiBzmB,EAAU,CAC1C,GAAI,CACF3C,GAAiB,EAAE,EACnB,MAAM/R,EAAI,UAAU,OACpB,OAAIA,IAAM,EACJ3E,GAAS8/B,CAAe,GAAK,CAACvgC,GAAQugC,CAAe,EACnD9c,GAAQ8c,CAAe,EAClBrZ,GAAYle,EAAM,KAAM,CAACu3B,CAAe,CAAC,EAE3CrZ,GAAYle,EAAMu3B,CAAe,EAEjCrZ,GAAYle,EAAM,KAAMu3B,CAAe,GAG5Cn7B,EAAI,EACN0U,EAAW,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EACzC1U,IAAM,GAAKqe,GAAQ3J,CAAQ,IACpCA,EAAW,CAACA,CAAQ,GAEfoN,GAAYle,EAAMu3B,EAAiBzmB,CAAQ,EAEtD,SACE3C,GAAiB,CAAC,CACpB,CACF,CAgMA,SAASqpB,GAAW3d,EAAQ4d,EAAM,CAChC,MAAMn5B,EAAOub,EAAO,KACpB,GAAIvb,EAAK,QAAUm5B,EAAK,OACtB,MAAO,GAET,QAAS5gC,EAAI,EAAGA,EAAIyH,EAAK,OAAQzH,IAC/B,GAAI8B,GAAW2F,EAAKzH,CAAC,EAAG4gC,EAAK5gC,CAAC,CAAC,EAC7B,MAAO,GAGX,OAAIs9B,GAAqB,GAAKH,IAC5BA,GAAa,KAAKna,CAAM,EAEnB,EACT,CAEA,MAAMsL,GAAU,SC1zQhB,IAAIuS,GACJ,MAAMC,GAAK,OAAO,OAAW,KAAe,OAAO,aACnD,GAAIA,GACF,GAAI,CACFD,GAAyBC,GAAG,aAAa,MAAO,CAC9C,WAAazhC,GAAQA,CAAA,CACtB,CACH,MAAY,CAEZ,CAEF,MAAM0hC,GAAsBF,GAAUxhC,GAAQwhC,GAAO,WAAWxhC,CAAG,EAAKA,GAAQA,EAC1E2hC,GAAQ,6BACRC,GAAW,qCACXC,GAAM,OAAO,SAAa,IAAc,SAAW,KACnDC,GAAoBD,IAAuBA,GAAI,cAAc,UAAU,EACvEE,GAAU,CACd,OAAQ,CAAC5lB,EAAOua,EAAQ9c,IAAW,CACjC8c,EAAO,aAAava,EAAOvC,GAAU,IAAI,CAC3C,EACA,OAASuC,GAAU,CACjB,MAAMua,EAASva,EAAM,WACjBua,GACFA,EAAO,YAAYva,CAAK,CAE5B,EACA,cAAe,CAAC6lB,EAAKjoB,EAAWkoB,EAAI79B,IAAU,CAC5C,MAAM1D,EAAKqZ,IAAc,MAAQ8nB,GAAI,gBAAgBF,GAAOK,CAAG,EAAIjoB,IAAc,SAAW8nB,GAAI,gBAAgBD,GAAUI,CAAG,EAAIC,EAAKJ,GAAI,cAAcG,EAAK,CAAE,GAAAC,EAAI,EAAIJ,GAAI,cAAcG,CAAG,EAC5L,OAAIA,IAAQ,UAAY59B,GAASA,EAAM,UAAY,MACjD1D,EAAG,aAAa,WAAY0D,EAAM,QAAQ,EAErC1D,CACT,EACA,WAAa6+B,GAASsC,GAAI,eAAetC,CAAI,EAC7C,cAAgBA,GAASsC,GAAI,cAActC,CAAI,EAC/C,QAAS,CAAC9iB,EAAM8iB,IAAS,CACvB9iB,EAAK,UAAY8iB,CACnB,EACA,eAAgB,CAAC7+B,EAAI6+B,IAAS,CAC5B7+B,EAAG,YAAc6+B,CACnB,EACA,WAAa9iB,GAASA,EAAK,WAC3B,YAAcA,GAASA,EAAK,YAC5B,cAAgBylB,GAAaL,GAAI,cAAcK,CAAQ,EACvD,WAAWxhC,EAAI8V,EAAI,CACjB9V,EAAG,aAAa8V,EAAI,EAAE,CACxB,EAKA,oBAAoBkpB,EAAShJ,EAAQ9c,EAAQG,EAAWtD,EAAOC,EAAK,CAClE,MAAMyrB,EAASvoB,EAASA,EAAO,gBAAkB8c,EAAO,UACxD,GAAIjgB,IAAUA,IAAUC,GAAOD,EAAM,aACnC,KACEigB,EAAO,aAAajgB,EAAM,UAAU,EAAI,EAAGmD,CAAM,EAC7C,EAAAnD,IAAUC,GAAO,EAAED,EAAQA,EAAM,eAArC,KAEG,CACLqrB,GAAkB,UAAYJ,GAC5B3nB,IAAc,MAAQ,QAAQ2lB,CAAO,SAAW3lB,IAAc,SAAW,SAAS2lB,CAAO,UAAYA,CAAA,EAEvG,MAAM0C,EAAWN,GAAkB,QACnC,GAAI/nB,IAAc,OAASA,IAAc,SAAU,CACjD,MAAMsoB,EAAUD,EAAS,WACzB,KAAOC,EAAQ,YACbD,EAAS,YAAYC,EAAQ,UAAU,EAEzCD,EAAS,YAAYC,CAAO,CAC9B,CACA3L,EAAO,aAAa0L,EAAUxoB,CAAM,CACtC,CACA,MAAO,CAELuoB,EAASA,EAAO,YAAczL,EAAO,WAErC9c,EAASA,EAAO,gBAAkB8c,EAAO,UAE7C,CACF,EAEM4L,GAAa,aACbC,GAAY,YACZC,GAAS,OAAO,MAAM,EACtBC,GAA+B,CACnC,KAAM,OACN,KAAM,OACN,IAAK,CACH,KAAM,QACN,QAAS,IAEX,SAAU,CAAC,OAAQ,OAAQ,MAAM,EACjC,eAAgB,OAChB,iBAAkB,OAClB,aAAc,OACd,gBAAiB,OACjB,kBAAmB,OACnB,cAAe,OACf,eAAgB,OAChB,iBAAkB,OAClB,aAAc,MAChB,EACMC,GAA4CniC,GAChD,GACAmd,GACA+kB,EACF,EACME,GAAcC,IAClBA,EAAE,YAAc,aAChBA,EAAE,MAAQF,GACHE,GAEHC,GAA6BF,GACjC,CAACv+B,EAAO,CAAE,MAAA0Z,KAAYgP,GAAE3N,GAAgB2jB,GAAuB1+B,CAAK,EAAG0Z,CAAK,CAC9E,EACMsC,GAAW,CAACtH,EAAM1N,EAAO,KAAO,CAChCtK,GAAQgY,CAAI,EACdA,EAAK,QAASiqB,GAAOA,EAAG,GAAG33B,CAAI,CAAC,EACvB0N,GACTA,EAAK,GAAG1N,CAAI,CAEhB,EACM43B,GAAuBlqB,GACpBA,EAAOhY,GAAQgY,CAAI,EAAIA,EAAK,KAAMiqB,GAAOA,EAAG,OAAS,CAAC,EAAIjqB,EAAK,OAAS,EAAI,GAErF,SAASgqB,GAAuB5kB,EAAU,CACxC,MAAM+kB,EAAY,GAClB,UAAWljC,KAAOme,EACVne,KAAO0iC,KACXQ,EAAUljC,CAAG,EAAIme,EAASne,CAAG,GAGjC,GAAIme,EAAS,MAAQ,GACnB,OAAO+kB,EAET,KAAM,CACJ,KAAA/+B,EAAO,IACP,KAAA4F,EACA,SAAAo5B,EACA,eAAAC,EAAiB,GAAGj/B,CAAI,cACxB,iBAAAk/B,EAAmB,GAAGl/B,CAAI,gBAC1B,aAAAm/B,EAAe,GAAGn/B,CAAI,YACtB,gBAAAo/B,EAAkBH,EAClB,kBAAAI,EAAoBH,EACpB,cAAAI,EAAgBH,EAChB,eAAAI,EAAiB,GAAGv/B,CAAI,cACxB,iBAAAw/B,EAAmB,GAAGx/B,CAAI,gBAC1B,aAAAy/B,EAAe,GAAGz/B,CAAI,aACpBga,EACE0lB,EAAYC,GAAkBX,CAAQ,EACtCY,EAAgBF,GAAaA,EAAU,CAAC,EACxCG,EAAgBH,GAAaA,EAAU,CAAC,EACxC,CACJ,cAAApkB,EACA,QAAAC,EACA,iBAAAE,EACA,QAAAE,EACA,iBAAAE,EACA,eAAAC,EAAiBR,EACjB,SAAAS,EAAWR,EACX,kBAAAU,EAAoBR,CAAA,EAClBsjB,EACEe,EAAc,CAACtjC,EAAIujC,EAAUr1B,GAAMs1B,KAAgB,CACvDxjC,EAAG,gBAAkBwjC,GACrBC,GAAsBzjC,EAAIujC,EAAWT,EAAgBH,CAAY,EACjEc,GAAsBzjC,EAAIujC,EAAWV,EAAoBH,CAAgB,EACzEx0B,IAAQA,GAAA,CACV,EACMw1B,EAAc,CAAC1jC,EAAIkO,IAAS,CAChClO,EAAG,WAAa,GAChByjC,GAAsBzjC,EAAI+iC,CAAc,EACxCU,GAAsBzjC,EAAIijC,CAAY,EACtCQ,GAAsBzjC,EAAIgjC,CAAgB,EAC1C90B,GAAQA,EAAA,CACV,EACMy1B,EAAiBJ,GACd,CAACvjC,EAAIkO,KAAS,CACnB,MAAMkK,GAAOmrB,EAAWhkB,EAAWR,EAC7BsH,GAAU,IAAMid,EAAYtjC,EAAIujC,EAAUr1B,EAAI,EACpDwR,GAAStH,GAAM,CAACpY,EAAIqmB,EAAO,CAAC,EAC5Bud,GAAU,IAAM,CACdH,GAAsBzjC,EAAIujC,EAAWX,EAAkBH,CAAc,EACrEoB,GAAmB7jC,EAAIujC,EAAWT,EAAgBH,CAAY,EACzDL,GAAoBlqB,EAAI,GAC3B0rB,GAAmB9jC,EAAIoJ,EAAMg6B,EAAe/c,EAAO,CAEvD,CAAC,CACH,EAEF,OAAOxmB,GAAO0iC,EAAW,CACvB,cAAcviC,EAAI,CAChB0f,GAASZ,EAAe,CAAC9e,CAAE,CAAC,EAC5B6jC,GAAmB7jC,EAAIyiC,CAAc,EACrCoB,GAAmB7jC,EAAI0iC,CAAgB,CACzC,EACA,eAAe1iC,EAAI,CACjB0f,GAASJ,EAAgB,CAACtf,CAAE,CAAC,EAC7B6jC,GAAmB7jC,EAAI4iC,CAAe,EACtCiB,GAAmB7jC,EAAI6iC,CAAiB,CAC1C,EACA,QAASc,EAAc,EAAK,EAC5B,SAAUA,EAAc,EAAI,EAC5B,QAAQ3jC,EAAIkO,EAAM,CAChBlO,EAAG,WAAa,GAChB,MAAMqmB,GAAU,IAAMqd,EAAY1jC,EAAIkO,CAAI,EAC1C21B,GAAmB7jC,EAAI+iC,CAAc,EAChC/iC,EAAG,iBAIN6jC,GAAmB7jC,EAAIgjC,CAAgB,EACvCe,GAAY/jC,CAAE,IAJd+jC,GAAY/jC,CAAE,EACd6jC,GAAmB7jC,EAAIgjC,CAAgB,GAKzCY,GAAU,IAAM,CACT5jC,EAAG,aAGRyjC,GAAsBzjC,EAAI+iC,CAAc,EACxCc,GAAmB7jC,EAAIijC,CAAY,EAC9BX,GAAoBnjB,CAAO,GAC9B2kB,GAAmB9jC,EAAIoJ,EAAMi6B,EAAehd,EAAO,EAEvD,CAAC,EACD3G,GAASP,EAAS,CAACnf,EAAIqmB,EAAO,CAAC,CACjC,EACA,iBAAiBrmB,EAAI,CACnBsjC,EAAYtjC,EAAI,GAAO,OAAQ,EAAI,EACnC0f,GAAST,EAAkB,CAACjf,CAAE,CAAC,CACjC,EACA,kBAAkBA,EAAI,CACpBsjC,EAAYtjC,EAAI,GAAM,OAAQ,EAAI,EAClC0f,GAASD,EAAmB,CAACzf,CAAE,CAAC,CAClC,EACA,iBAAiBA,EAAI,CACnB0jC,EAAY1jC,CAAE,EACd0f,GAASL,EAAkB,CAACrf,CAAE,CAAC,CACjC,EACD,CACH,CACA,SAASmjC,GAAkBX,EAAU,CACnC,GAAIA,GAAY,KACd,OAAO,KACT,GAAW3hC,GAAS2hC,CAAQ,EAC1B,MAAO,CAACwB,GAASxB,EAAS,KAAK,EAAGwB,GAASxB,EAAS,KAAK,CAAC,EACrD,CACL,MAAMhgC,EAAIwhC,GAASxB,CAAQ,EAC3B,MAAO,CAAChgC,EAAGA,CAAC,CACd,CACF,CACA,SAASwhC,GAAS1kC,EAAK,CAKrB,OAJYmD,GAASnD,CAAG,CAK1B,CACA,SAASukC,GAAmB7jC,EAAIikC,EAAK,CACnCA,EAAI,MAAM,KAAK,EAAE,QAASviC,GAAMA,GAAK1B,EAAG,UAAU,IAAI0B,CAAC,CAAC,GACvD1B,EAAG8hC,EAAM,IAAM9hC,EAAG8hC,EAAM,EAAoB,IAAI,MAAQ,IAAImC,CAAG,CAClE,CACA,SAASR,GAAsBzjC,EAAIikC,EAAK,CACtCA,EAAI,MAAM,KAAK,EAAE,QAASviC,GAAMA,GAAK1B,EAAG,UAAU,OAAO0B,CAAC,CAAC,EAC3D,MAAMwiC,EAAOlkC,EAAG8hC,EAAM,EAClBoC,IACFA,EAAK,OAAOD,CAAG,EACVC,EAAK,OACRlkC,EAAG8hC,EAAM,EAAI,QAGnB,CACA,SAAS8B,GAAUlxB,EAAI,CACrB,sBAAsB,IAAM,CAC1B,sBAAsBA,CAAE,CAC1B,CAAC,CACH,CACA,IAAIyxB,GAAQ,EACZ,SAASL,GAAmB9jC,EAAIokC,EAAcC,EAAiBhe,EAAS,CACtE,MAAMvQ,EAAK9V,EAAG,OAAS,EAAEmkC,GACnBG,EAAoB,IAAM,CAC1BxuB,IAAO9V,EAAG,QACZqmB,EAAA,CAEJ,EACA,GAAIge,GAAmB,KACrB,OAAO,WAAWC,EAAmBD,CAAe,EAEtD,KAAM,CAAE,KAAAj7B,EAAM,QAAAm7B,EAAS,UAAAC,GAAcC,GAAkBzkC,EAAIokC,CAAY,EACvE,GAAI,CAACh7B,EACH,OAAOid,EAAA,EAET,MAAMqe,EAAWt7B,EAAO,MACxB,IAAIu7B,EAAQ,EACZ,MAAM3uB,EAAM,IAAM,CAChBhW,EAAG,oBAAoB0kC,EAAUE,CAAK,EACtCN,EAAA,CACF,EACMM,EAASx9B,GAAM,CACfA,EAAE,SAAWpH,GAAM,EAAE2kC,GAASH,GAChCxuB,EAAA,CAEJ,EACA,WAAW,IAAM,CACX2uB,EAAQH,GACVxuB,EAAA,CAEJ,EAAGuuB,EAAU,CAAC,EACdvkC,EAAG,iBAAiB0kC,EAAUE,CAAK,CACrC,CACA,SAASH,GAAkBzkC,EAAIokC,EAAc,CAC3C,MAAMS,EAAS,OAAO,iBAAiB7kC,CAAE,EACnC8kC,EAAsBzlC,IAASwlC,EAAOxlC,CAAG,GAAK,IAAI,MAAM,IAAI,EAC5D0lC,EAAmBD,EAAmB,GAAGlD,EAAU,OAAO,EAC1DoD,EAAsBF,EAAmB,GAAGlD,EAAU,UAAU,EAChEqD,EAAoBC,GAAWH,EAAkBC,CAAmB,EACpEG,EAAkBL,EAAmB,GAAGjD,EAAS,OAAO,EACxDuD,EAAqBN,EAAmB,GAAGjD,EAAS,UAAU,EAC9DwD,EAAmBH,GAAWC,EAAiBC,CAAkB,EACvE,IAAIh8B,EAAO,KACPm7B,EAAU,EACVC,EAAY,EACZJ,IAAiBxC,GACfqD,EAAoB,IACtB77B,EAAOw4B,GACP2C,EAAUU,EACVT,EAAYQ,EAAoB,QAEzBZ,IAAiBvC,GACtBwD,EAAmB,IACrBj8B,EAAOy4B,GACP0C,EAAUc,EACVb,EAAYY,EAAmB,SAGjCb,EAAU,KAAK,IAAIU,EAAmBI,CAAgB,EACtDj8B,EAAOm7B,EAAU,EAAIU,EAAoBI,EAAmBzD,GAAaC,GAAY,KACrF2C,EAAYp7B,EAAOA,IAASw4B,GAAaoD,EAAoB,OAASI,EAAmB,OAAS,GAEpG,MAAME,EAAel8B,IAASw4B,IAAc,6BAA6B,KACvEkD,EAAmB,GAAGlD,EAAU,UAAU,EAAE,UAAS,EAEvD,MAAO,CACL,KAAAx4B,EACA,QAAAm7B,EACA,UAAAC,EACA,aAAAc,CAAA,CAEJ,CACA,SAASJ,GAAWK,EAAQrC,EAAW,CACrC,KAAOqC,EAAO,OAASrC,EAAU,QAC/BqC,EAASA,EAAO,OAAOA,CAAM,EAE/B,OAAO,KAAK,IAAI,GAAGrC,EAAU,IAAI,CAACsC,EAAGvlC,IAAMwlC,GAAKD,CAAC,EAAIC,GAAKF,EAAOtlC,CAAC,CAAC,CAAC,CAAC,CACvE,CACA,SAASwlC,GAAKhyB,EAAG,CACf,OAAIA,IAAM,OAAe,EAClB,OAAOA,EAAE,MAAM,EAAG,EAAE,EAAE,QAAQ,IAAK,GAAG,CAAC,EAAI,GACpD,CACA,SAASswB,GAAY/jC,EAAI,CAEvB,OADuBA,EAAKA,EAAG,cAAgB,UACzB,KAAK,YAC7B,CAEA,SAAS0lC,GAAW1lC,EAAIgB,EAAO2kC,EAAO,CACpC,MAAMC,EAAoB5lC,EAAG8hC,EAAM,EAC/B8D,IACF5kC,GAASA,EAAQ,CAACA,EAAO,GAAG4kC,CAAiB,EAAI,CAAC,GAAGA,CAAiB,GAAG,KAAK,GAAG,GAE/E5kC,GAAS,KACXhB,EAAG,gBAAgB,OAAO,EACjB2lC,EACT3lC,EAAG,aAAa,QAASgB,CAAK,EAE9BhB,EAAG,UAAYgB,CAEnB,CAEA,MAAM6kC,GAAuB,OAAO,MAAM,EACpCC,GAAc,OAAO,MAAM,EAC3BC,GAAQ,CAEZ,KAAM,OACN,YAAY/lC,EAAI,CAAE,MAAAgB,GAAS,CAAE,WAAAgzB,GAAc,CACzCh0B,EAAG6lC,EAAoB,EAAI7lC,EAAG,MAAM,UAAY,OAAS,GAAKA,EAAG,MAAM,QACnEg0B,GAAchzB,EAChBgzB,EAAW,YAAYh0B,CAAE,EAEzBgmC,GAAWhmC,EAAIgB,CAAK,CAExB,EACA,QAAQhB,EAAI,CAAE,MAAAgB,GAAS,CAAE,WAAAgzB,GAAc,CACjCA,GAAchzB,GAChBgzB,EAAW,MAAMh0B,CAAE,CAEvB,EACA,QAAQA,EAAI,CAAE,MAAAgB,EAAO,SAAAgB,GAAY,CAAE,WAAAgyB,GAAc,CAC3C,CAAChzB,GAAU,CAACgB,IACZgyB,EACEhzB,GACFgzB,EAAW,YAAYh0B,CAAE,EACzBgmC,GAAWhmC,EAAI,EAAI,EACnBg0B,EAAW,MAAMh0B,CAAE,GAEnBg0B,EAAW,MAAMh0B,EAAI,IAAM,CACzBgmC,GAAWhmC,EAAI,EAAK,CACtB,CAAC,EAGHgmC,GAAWhmC,EAAIgB,CAAK,EAExB,EACA,cAAchB,EAAI,CAAE,MAAAgB,GAAS,CAC3BglC,GAAWhmC,EAAIgB,CAAK,CACtB,CACF,EACA,SAASglC,GAAWhmC,EAAIgB,EAAO,CAC7BhB,EAAG,MAAM,QAAUgB,EAAQhB,EAAG6lC,EAAoB,EAAI,OACtD7lC,EAAG8lC,EAAW,EAAI,CAAC9kC,CACrB,CASA,MAAMilC,GAAe,OAAoE,EAAE,EAyErFC,GAAY,wBAClB,SAASC,GAAWnmC,EAAI0H,EAAML,EAAM,CAClC,MAAMzD,EAAQ5D,EAAG,MACXomC,EAAczlC,GAAS0G,CAAI,EACjC,IAAIg/B,EAAuB,GAC3B,GAAIh/B,GAAQ,CAAC++B,EAAa,CACxB,GAAI1+B,EACF,GAAK/G,GAAS+G,CAAI,EAOhB,UAAW4+B,KAAa5+B,EAAK,MAAM,GAAG,EAAG,CACvC,MAAMrI,EAAMinC,EAAU,MAAM,EAAGA,EAAU,QAAQ,GAAG,CAAC,EAAE,OACnDj/B,EAAKhI,CAAG,GAAK,MACfknC,GAAS3iC,EAAOvE,EAAK,EAAE,CAE3B,KAXA,WAAWA,KAAOqI,EACZL,EAAKhI,CAAG,GAAK,MACfknC,GAAS3iC,EAAOvE,EAAK,EAAE,EAY/B,UAAWA,KAAOgI,EACZhI,IAAQ,YACVgnC,EAAuB,IAEzBE,GAAS3iC,EAAOvE,EAAKgI,EAAKhI,CAAG,CAAC,CAElC,SACM+mC,GACF,GAAI1+B,IAASL,EAAM,CACjB,MAAMm/B,EAAa5iC,EAAMqiC,EAAY,EACjCO,IACFn/B,GAAQ,IAAMm/B,GAEhB5iC,EAAM,QAAUyD,EAChBg/B,EAAuBH,GAAU,KAAK7+B,CAAI,CAC5C,OACSK,GACT1H,EAAG,gBAAgB,OAAO,EAG1B6lC,MAAwB7lC,IAC1BA,EAAG6lC,EAAoB,EAAIQ,EAAuBziC,EAAM,QAAU,GAC9D5D,EAAG8lC,EAAW,IAChBliC,EAAM,QAAU,QAGtB,CAEA,MAAM6iC,GAAc,iBACpB,SAASF,GAAS3iC,EAAOJ,EAAMlE,EAAK,CAClC,GAAIc,GAAQd,CAAG,EACbA,EAAI,QAAS6F,GAAMohC,GAAS3iC,EAAOJ,EAAM2B,CAAC,CAAC,UAEvC7F,GAAO,OAAMA,EAAM,IAQnBkE,EAAK,WAAW,IAAI,EACtBI,EAAM,YAAYJ,EAAMlE,CAAG,MACtB,CACL,MAAMonC,EAAWC,GAAW/iC,EAAOJ,CAAI,EACnCijC,GAAY,KAAKnnC,CAAG,EACtBsE,EAAM,YACJhC,GAAU8kC,CAAQ,EAClBpnC,EAAI,QAAQmnC,GAAa,EAAE,EAC3B,aAGF7iC,EAAM8iC,CAAQ,EAAIpnC,CAEtB,CAEJ,CACA,MAAMsnC,GAAW,CAAC,SAAU,MAAO,IAAI,EACjCC,GAAc,GACpB,SAASF,GAAW/iC,EAAOkjC,EAAS,CAClC,MAAM7jB,EAAS4jB,GAAYC,CAAO,EAClC,GAAI7jB,EACF,OAAOA,EAET,IAAIzf,EAAO/B,GAASqlC,CAAO,EAC3B,GAAItjC,IAAS,UAAYA,KAAQI,EAC/B,OAAOijC,GAAYC,CAAO,EAAItjC,EAEhCA,EAAO3B,GAAW2B,CAAI,EACtB,QAASvD,EAAI,EAAGA,EAAI2mC,GAAS,OAAQ3mC,IAAK,CACxC,MAAMymC,EAAWE,GAAS3mC,CAAC,EAAIuD,EAC/B,GAAIkjC,KAAY9iC,EACd,OAAOijC,GAAYC,CAAO,EAAIJ,CAElC,CACA,OAAOI,CACT,CAEA,MAAMC,GAAU,+BAChB,SAASC,GAAUhnC,EAAIX,EAAK2B,EAAO2kC,EAAOrxB,EAAU2yB,EAAYnjC,GAAqBzE,CAAG,EAAG,CACrFsmC,GAAStmC,EAAI,WAAW,QAAQ,EAC9B2B,GAAS,KACXhB,EAAG,kBAAkB+mC,GAAS1nC,EAAI,MAAM,EAAGA,EAAI,MAAM,CAAC,EAEtDW,EAAG,eAAe+mC,GAAS1nC,EAAK2B,CAAK,EAGnCA,GAAS,MAAQimC,GAAa,CAACljC,GAAmB/C,CAAK,EACzDhB,EAAG,gBAAgBX,CAAG,EAEtBW,EAAG,aACDX,EACA4nC,EAAY,GAAKrmC,GAASI,CAAK,EAAI,OAAOA,CAAK,EAAIA,CAAA,CAI3D,CAEA,SAASkmC,GAAalnC,EAAIX,EAAK2B,EAAOmY,EAAiBguB,EAAU,CAC/D,GAAI9nC,IAAQ,aAAeA,IAAQ,cAAe,CAC5C2B,GAAS,OACXhB,EAAGX,CAAG,EAAIA,IAAQ,YAAc2hC,GAAoBhgC,CAAK,EAAIA,GAE/D,MACF,CACA,MAAMsgC,EAAMthC,EAAG,QACf,GAAIX,IAAQ,SAAWiiC,IAAQ,YAC/B,CAACA,EAAI,SAAS,GAAG,EAAG,CAClB,MAAMt/B,EAAWs/B,IAAQ,SAAWthC,EAAG,aAAa,OAAO,GAAK,GAAKA,EAAG,MAClEuJ,EAAWvI,GAAS,KAGxBhB,EAAG,OAAS,WAAa,KAAO,GAC9B,OAAOgB,CAAK,GACZgB,IAAauH,GAAY,EAAE,WAAYvJ,MACzCA,EAAG,MAAQuJ,GAETvI,GAAS,MACXhB,EAAG,gBAAgBX,CAAG,EAExBW,EAAG,OAASgB,EACZ,MACF,CACA,IAAIomC,EAAa,GACjB,GAAIpmC,IAAU,IAAMA,GAAS,KAAM,CACjC,MAAMoI,EAAO,OAAOpJ,EAAGX,CAAG,EACtB+J,IAAS,UACXpI,EAAQ+C,GAAmB/C,CAAK,EACvBA,GAAS,MAAQoI,IAAS,UACnCpI,EAAQ,GACRomC,EAAa,IACJh+B,IAAS,WAClBpI,EAAQ,EACRomC,EAAa,GAEjB,CACA,GAAI,CACFpnC,EAAGX,CAAG,EAAI2B,CACZ,MAAY,CAOZ,CACAomC,GAAcpnC,EAAG,gBAAgBmnC,GAAY9nC,CAAG,CAClD,CAEA,SAASgoC,GAAiBrnC,EAAI27B,EAAOrP,EAAS3Z,EAAS,CACrD3S,EAAG,iBAAiB27B,EAAOrP,EAAS3Z,CAAO,CAC7C,CACA,SAAS20B,GAAoBtnC,EAAI27B,EAAOrP,EAAS3Z,EAAS,CACxD3S,EAAG,oBAAoB27B,EAAOrP,EAAS3Z,CAAO,CAChD,CACA,MAAM40B,GAAS,OAAO,MAAM,EAC5B,SAASC,GAAWxnC,EAAI8mC,EAASW,EAAWC,EAAWpzB,EAAW,KAAM,CACtE,MAAMqzB,EAAW3nC,EAAGunC,EAAM,IAAMvnC,EAAGunC,EAAM,EAAI,IACvCK,EAAkBD,EAASb,CAAO,EACxC,GAAIY,GAAaE,EACfA,EAAgB,MAA6FF,MACxG,CACL,KAAM,CAAClkC,EAAMmP,CAAO,EAAIk1B,GAAUf,CAAO,EACzC,GAAIY,EAAW,CACb,MAAMI,EAAUH,EAASb,CAAO,EAAIiB,GACmDL,EACrFpzB,CAAA,EAEF+yB,GAAiBrnC,EAAIwD,EAAMskC,EAASn1B,CAAO,CAC7C,MAAWi1B,IACTN,GAAoBtnC,EAAIwD,EAAMokC,EAAiBj1B,CAAO,EACtDg1B,EAASb,CAAO,EAAI,OAExB,CACF,CACA,MAAMkB,GAAoB,4BAC1B,SAASH,GAAUrkC,EAAM,CACvB,IAAImP,EACJ,GAAIq1B,GAAkB,KAAKxkC,CAAI,EAAG,CAChCmP,EAAU,GACV,IAAIka,EACJ,KAAOA,EAAIrpB,EAAK,MAAMwkC,EAAiB,GACrCxkC,EAAOA,EAAK,MAAM,EAAGA,EAAK,OAASqpB,EAAE,CAAC,EAAE,MAAM,EAC9Cla,EAAQka,EAAE,CAAC,EAAE,aAAa,EAAI,EAElC,CAEA,MAAO,CADOrpB,EAAK,CAAC,IAAM,IAAMA,EAAK,MAAM,CAAC,EAAI5B,GAAU4B,EAAK,MAAM,CAAC,CAAC,EACxDmP,CAAO,CACxB,CACA,IAAIs1B,GAAY,EAChB,MAAMryB,WAA4B,UAC5BsyB,GAAS,IAAMD,KAAcryB,GAAE,KAAK,IAAMqyB,GAAY,CAAC,EAAGA,GAAY,KAAK,OACjF,SAASF,GAAcI,EAAc7zB,EAAU,CAC7C,MAAMwzB,EAAW1gC,GAAM,CACrB,GAAI,CAACA,EAAE,KACLA,EAAE,KAAO,KAAK,cACLA,EAAE,MAAQ0gC,EAAQ,SAC3B,OAEFtzB,GACE4zB,GAA8BhhC,EAAG0gC,EAAQ,KAAK,EAC9CxzB,EACA,EACA,CAAClN,CAAC,EAEN,EACA,OAAA0gC,EAAQ,MAAQK,EAChBL,EAAQ,SAAWI,GAAA,EACZJ,CACT,CAWA,SAASM,GAA8B,EAAGpnC,EAAO,CAC/C,GAAIZ,GAAQY,CAAK,EAAG,CAClB,MAAMqnC,EAAe,EAAE,yBACvB,SAAE,yBAA2B,IAAM,CACjCA,EAAa,KAAK,CAAC,EACnB,EAAE,SAAW,EACf,EACOrnC,EAAM,IACVM,GAAQo2B,GAAO,CAACA,EAAG,UAAYp2B,GAAMA,EAAGo2B,CAAE,EAE/C,KACE,QAAO12B,CAEX,CAEA,MAAMsnC,GAAcjpC,GAAQA,EAAI,WAAW,CAAC,IAAM,KAAOA,EAAI,WAAW,CAAC,IAAM,KAC/EA,EAAI,WAAW,CAAC,EAAI,IAAMA,EAAI,WAAW,CAAC,EAAI,IACxCkpC,GAAY,CAACvoC,EAAIX,EAAKooC,EAAWC,EAAWruB,EAAWF,IAAoB,CAC/E,MAAMwsB,EAAQtsB,IAAc,MACxBha,IAAQ,QACVqmC,GAAW1lC,EAAI0nC,EAAW/B,CAAK,EACtBtmC,IAAQ,QACjB8mC,GAAWnmC,EAAIynC,EAAWC,CAAS,EAC1B/nC,GAAKN,CAAG,EACZO,GAAgBP,CAAG,GACtBmoC,GAAWxnC,EAAIX,EAAKooC,EAAWC,EAAWvuB,CAAe,GAElD9Z,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAAQA,EAAI,CAAC,IAAM,KAAOA,EAAMA,EAAI,MAAM,CAAC,EAAG,IAASmpC,GAAgBxoC,EAAIX,EAAKqoC,EAAW/B,CAAK,IAC/IuB,GAAalnC,EAAIX,EAAKqoC,CAAS,EAC3B,CAAC1nC,EAAG,QAAQ,SAAS,GAAG,IAAMX,IAAQ,SAAWA,IAAQ,WAAaA,IAAQ,aAChF2nC,GAAUhnC,EAAIX,EAAKqoC,EAAW/B,EAAOxsB,EAAiB9Z,IAAQ,OAAO,GAIvEW,EAAG,WAAa,QAAQ,KAAKX,CAAG,GAAK,CAACsB,GAAS+mC,CAAS,GAExDR,GAAalnC,EAAIyoC,GAAWppC,CAAG,EAAGqoC,EAAWvuB,EAAiB9Z,CAAG,GAE7DA,IAAQ,aACVW,EAAG,WAAa0nC,EACProC,IAAQ,gBACjBW,EAAG,YAAc0nC,GAEnBV,GAAUhnC,EAAIX,EAAKqoC,EAAW/B,CAAK,EAEvC,EACA,SAAS6C,GAAgBxoC,EAAIX,EAAK2B,EAAO2kC,EAAO,CAC9C,GAAIA,EAIF,MAHI,GAAAtmC,IAAQ,aAAeA,IAAQ,eAG/BA,KAAOW,GAAMsoC,GAAWjpC,CAAG,GAAKqB,GAAWM,CAAK,GAiBtD,GAZI3B,IAAQ,cAAgBA,IAAQ,aAAeA,IAAQ,aAAeA,IAAQ,eAG9EA,IAAQ,WAAaW,EAAG,UAAY,UAGpCX,IAAQ,QAGRA,IAAQ,QAAUW,EAAG,UAAY,SAGjCX,IAAQ,QAAUW,EAAG,UAAY,WACnC,MAAO,GAET,GAAIX,IAAQ,SAAWA,IAAQ,SAAU,CACvC,MAAMiiC,EAAMthC,EAAG,QACf,GAAIshC,IAAQ,OAASA,IAAQ,SAAWA,IAAQ,UAAYA,IAAQ,SAClE,MAAO,EAEX,CACA,OAAIgH,GAAWjpC,CAAG,GAAKsB,GAASK,CAAK,EAC5B,GAEF3B,KAAOW,CAChB,CA0eA,MAAM0oC,OAAkC,QAClCC,OAAqC,QACrCC,GAAY,OAAO,SAAS,EAC5BlsB,GAAa,OAAO,UAAU,EAC9BmsB,GAAY3G,IAChB,OAAOA,EAAE,MAAM,KACRA,GAEH4G,GAAsCD,GAAS,CACnD,KAAM,kBACN,MAAuBhpC,GAAO,GAAImiC,GAA2B,CAC3D,IAAK,OACL,UAAW,OACZ,EACD,MAAMt+B,EAAO,CAAE,MAAA0Z,GAAS,CACtB,MAAM9I,EAAW+I,GAAA,EACXT,EAAQD,GAAA,EACd,IAAIigB,EACA1iB,EACJ,OAAAuJ,GAAU,IAAM,CACd,GAAI,CAACmZ,EAAa,OAChB,OAEF,MAAMmM,EAAYrlC,EAAM,WAAa,GAAGA,EAAM,MAAQ,GAAG,QACzD,GAAI,CAACslC,GACHpM,EAAa,CAAC,EAAE,GAChBtoB,EAAS,MAAM,GACfy0B,CAAA,EACC,CACDnM,EAAe,GACf,MACF,CACAA,EAAa,QAAQqM,EAAc,EACnCrM,EAAa,QAAQsM,EAAc,EACnC,MAAMC,EAAgBvM,EAAa,OAAOwM,EAAgB,EAC1DrF,GAAYzvB,EAAS,MAAM,EAAE,EAC7B60B,EAAc,QAASznC,GAAM,CAC3B,MAAM1B,EAAK0B,EAAE,GACPkC,EAAQ5D,EAAG,MACjB6jC,GAAmB7jC,EAAI+oC,CAAS,EAChCnlC,EAAM,UAAYA,EAAM,gBAAkBA,EAAM,mBAAqB,GACrE,MAAM8O,EAAK1S,EAAG4oC,EAAS,EAAKxhC,GAAM,CAC5BA,GAAKA,EAAE,SAAWpH,IAGlB,CAACoH,GAAKA,EAAE,aAAa,SAAS,WAAW,KAC3CpH,EAAG,oBAAoB,gBAAiB0S,CAAE,EAC1C1S,EAAG4oC,EAAS,EAAI,KAChBnF,GAAsBzjC,EAAI+oC,CAAS,EAEvC,EACA/oC,EAAG,iBAAiB,gBAAiB0S,CAAE,CACzC,CAAC,EACDkqB,EAAe,EACjB,CAAC,EACM,IAAM,CACX,MAAMpf,EAAWpT,GAAM1G,CAAK,EACtB2lC,EAAqBjH,GAAuB5kB,CAAQ,EAC1D,IAAI8jB,EAAM9jB,EAAS,KAAOgD,GAE1B,GADAoc,EAAe,GACX1iB,EACF,QAASja,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IAAK,CACxC,MAAMwb,EAAQvB,EAASja,CAAC,EACpBwb,EAAM,IAAMA,EAAM,cAAc,UAClCmhB,EAAa,KAAKnhB,CAAK,EACvBwC,GACExC,EACAqC,GACErC,EACA4tB,EACAzsB,EACAtI,CAAA,CACF,EAEFo0B,GAAY,IAAIjtB,EAAO,CACrB,KAAMA,EAAM,GAAG,WACf,IAAKA,EAAM,GAAG,UACf,EAEL,CAEFvB,EAAWkD,EAAM,QAAUE,GAAyBF,EAAM,SAAS,EAAI,GACvE,QAASnd,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IAAK,CACxC,MAAMwb,EAAQvB,EAASja,CAAC,EACpBwb,EAAM,KAAO,MACfwC,GACExC,EACAqC,GAAuBrC,EAAO4tB,EAAoBzsB,EAAOtI,CAAQ,EAKvE,CACA,OAAOgT,GAAYga,EAAK,KAAMpnB,CAAQ,CACxC,CACF,CACF,CAAC,EACKovB,GAAkBR,GACxB,SAASG,GAAevnC,EAAG,CACzB,MAAM1B,EAAK0B,EAAE,GACT1B,EAAG4oC,EAAS,GACd5oC,EAAG4oC,EAAS,IAEV5oC,EAAG0c,EAAU,GACf1c,EAAG0c,EAAU,GAEjB,CACA,SAASwsB,GAAexnC,EAAG,CACzBinC,GAAe,IAAIjnC,EAAG,CACpB,KAAMA,EAAE,GAAG,WACX,IAAKA,EAAE,GAAG,UACX,CACH,CACA,SAAS0nC,GAAiB1nC,EAAG,CAC3B,MAAM6nC,EAASb,GAAY,IAAIhnC,CAAC,EAC1B8nC,EAASb,GAAe,IAAIjnC,CAAC,EAC7B+nC,EAAKF,EAAO,KAAOC,EAAO,KAC1BE,EAAKH,EAAO,IAAMC,EAAO,IAC/B,GAAIC,GAAMC,EAAI,CACZ,MAAM,EAAIhoC,EAAE,GAAG,MACf,SAAE,UAAY,EAAE,gBAAkB,aAAa+nC,CAAE,MAAMC,CAAE,MACzD,EAAE,mBAAqB,KAChBhoC,CACT,CACF,CACA,SAASsnC,GAAgBhpC,EAAIy2B,EAAMsS,EAAW,CAC5C,MAAMY,EAAQ3pC,EAAG,YACXkkC,EAAOlkC,EAAG8hC,EAAM,EAClBoC,GACFA,EAAK,QAASD,GAAQ,CACpBA,EAAI,MAAM,KAAK,EAAE,QAASviC,GAAMA,GAAKioC,EAAM,UAAU,OAAOjoC,CAAC,CAAC,CAChE,CAAC,EAEHqnC,EAAU,MAAM,KAAK,EAAE,QAASrnC,GAAMA,GAAKioC,EAAM,UAAU,IAAIjoC,CAAC,CAAC,EACjEioC,EAAM,MAAM,QAAU,OACtB,MAAM1wB,EAAYwd,EAAK,WAAa,EAAIA,EAAOA,EAAK,WACpDxd,EAAU,YAAY0wB,CAAK,EAC3B,KAAM,CAAE,aAAArE,CAAA,EAAiBb,GAAkBkF,CAAK,EAChD,OAAA1wB,EAAU,YAAY0wB,CAAK,EACpBrE,CACT,CAEA,MAAMsE,GAAoBlyB,GAAU,CAClC,MAAMpW,EAAKoW,EAAM,MAAM,qBAAqB,GAAK,GACjD,OAAOtX,GAAQkB,CAAE,EAAKN,GAAUiB,GAAeX,EAAIN,CAAK,EAAIM,CAC9D,EACA,SAASuoC,GAAmB,EAAG,CAC7B,EAAE,OAAO,UAAY,EACvB,CACA,SAASC,GAAiB,EAAG,CAC3B,MAAM3gC,EAAS,EAAE,OACbA,EAAO,YACTA,EAAO,UAAY,GACnBA,EAAO,cAAc,IAAI,MAAM,OAAO,CAAC,EAE3C,CACA,MAAM4gC,GAAY,OAAO,SAAS,EAClC,SAASC,GAAUhpC,EAAOipC,EAAMC,EAAQ,CACtC,OAAID,IAAMjpC,EAAQA,EAAM,QACpBkpC,IAAQlpC,EAAQuB,GAAcvB,CAAK,GAChCA,CACT,CACA,MAAMmpC,GAAa,CACjB,QAAQnqC,EAAI,CAAE,UAAW,CAAE,KAAAoqC,EAAM,KAAAH,EAAM,OAAAC,EAAO,EAAKxyB,EAAO,CACxD1X,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,EACtC,MAAM2yB,EAAeH,GAAUxyB,EAAM,OAASA,EAAM,MAAM,OAAS,SACnE2vB,GAAiBrnC,EAAIoqC,EAAO,SAAW,QAAUhjC,GAAM,CACjDA,EAAE,OAAO,WACbpH,EAAG+pC,EAAS,EAAEC,GAAUhqC,EAAG,MAAOiqC,EAAMI,CAAY,CAAC,CACvD,CAAC,GACGJ,GAAQI,IACVhD,GAAiBrnC,EAAI,SAAU,IAAM,CACnCA,EAAG,MAAQgqC,GAAUhqC,EAAG,MAAOiqC,EAAMI,CAAY,CACnD,CAAC,EAEED,IACH/C,GAAiBrnC,EAAI,mBAAoB6pC,EAAkB,EAC3DxC,GAAiBrnC,EAAI,iBAAkB8pC,EAAgB,EACvDzC,GAAiBrnC,EAAI,SAAU8pC,EAAgB,EAEnD,EAEA,QAAQ9pC,EAAI,CAAE,MAAAgB,GAAS,CACrBhB,EAAG,MAAQgB,GAAgB,EAC7B,EACA,aAAahB,EAAI,CAAE,MAAAgB,EAAO,SAAAgB,EAAU,UAAW,CAAE,KAAAooC,EAAM,KAAAH,EAAM,OAAAC,CAAA,CAAO,EAAKxyB,EAAO,CAE9E,GADA1X,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,EAClC1X,EAAG,UAAW,OAClB,MAAMsqC,GAAWJ,GAAUlqC,EAAG,OAAS,WAAa,CAAC,OAAO,KAAKA,EAAG,KAAK,EAAIuC,GAAcvC,EAAG,KAAK,EAAIA,EAAG,MACpGuJ,EAAWvI,GAAgB,GAC7BspC,IAAY/gC,IAGZ,SAAS,gBAAkBvJ,GAAMA,EAAG,OAAS,UAC3CoqC,GAAQppC,IAAUgB,GAGlBioC,GAAQjqC,EAAG,MAAM,SAAWuJ,KAIlCvJ,EAAG,MAAQuJ,GACb,CACF,EACMghC,GAAiB,CAErB,KAAM,GACN,QAAQvqC,EAAIwqC,EAAG9yB,EAAO,CACpB1X,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,EACtC2vB,GAAiBrnC,EAAI,SAAU,IAAM,CACnC,MAAMyqC,EAAazqC,EAAG,YAChB0qC,EAAeC,GAAS3qC,CAAE,EAC1B4qC,EAAU5qC,EAAG,QACb6qC,EAAS7qC,EAAG+pC,EAAS,EAC3B,GAAI3pC,GAAQqqC,CAAU,EAAG,CACvB,MAAM3+B,EAAQnH,GAAa8lC,EAAYC,CAAY,EAC7CI,EAAQh/B,IAAU,GACxB,GAAI8+B,GAAW,CAACE,EACdD,EAAOJ,EAAW,OAAOC,CAAY,CAAC,UAC7B,CAACE,GAAWE,EAAO,CAC5B,MAAMC,EAAW,CAAC,GAAGN,CAAU,EAC/BM,EAAS,OAAOj/B,EAAO,CAAC,EACxB++B,EAAOE,CAAQ,CACjB,CACF,SAAWxqC,GAAMkqC,CAAU,EAAG,CAC5B,MAAMrM,EAAS,IAAI,IAAIqM,CAAU,EAC7BG,EACFxM,EAAO,IAAIsM,CAAY,EAEvBtM,EAAO,OAAOsM,CAAY,EAE5BG,EAAOzM,CAAM,CACf,MACEyM,EAAOG,GAAiBhrC,EAAI4qC,CAAO,CAAC,CAExC,CAAC,CACH,EAEA,QAASK,GACT,aAAajrC,EAAImY,EAAST,EAAO,CAC/B1X,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,EACtCuzB,GAAWjrC,EAAImY,EAAST,CAAK,CAC/B,CACF,EACA,SAASuzB,GAAWjrC,EAAI,CAAE,MAAAgB,EAAO,SAAAgB,CAAA,EAAY0V,EAAO,CAClD1X,EAAG,YAAcgB,EACjB,IAAI4pC,EACJ,GAAIxqC,GAAQY,CAAK,EACf4pC,EAAUjmC,GAAa3D,EAAO0W,EAAM,MAAM,KAAK,EAAI,WAC1CnX,GAAMS,CAAK,EACpB4pC,EAAU5pC,EAAM,IAAI0W,EAAM,MAAM,KAAK,MAChC,CACL,GAAI1W,IAAUgB,EAAU,OACxB4oC,EAAUxmC,GAAWpD,EAAOgqC,GAAiBhrC,EAAI,EAAI,CAAC,CACxD,CACIA,EAAG,UAAY4qC,IACjB5qC,EAAG,QAAU4qC,EAEjB,CAgBA,MAAMM,GAAe,CAEnB,KAAM,GACN,QAAQlrC,EAAI,CAAE,MAAAgB,EAAO,UAAW,CAAE,OAAAkpC,CAAA,CAAO,EAAKxyB,EAAO,CACnD,MAAMyzB,EAAa5qC,GAAMS,CAAK,EAC9BqmC,GAAiBrnC,EAAI,SAAU,IAAM,CACnC,MAAMorC,EAAc,MAAM,UAAU,OAAO,KAAKprC,EAAG,QAAU,GAAM,EAAE,QAAQ,EAAE,IAC5E,GAAMkqC,EAAS3nC,GAAcooC,GAAS,CAAC,CAAC,EAAIA,GAAS,CAAC,GAEzD3qC,EAAG+pC,EAAS,EACV/pC,EAAG,SAAWmrC,EAAa,IAAI,IAAIC,CAAW,EAAIA,EAAcA,EAAY,CAAC,GAE/EprC,EAAG,WAAa,GAChB2V,GAAS,IAAM,CACb3V,EAAG,WAAa,EAClB,CAAC,CACH,CAAC,EACDA,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,CACxC,EAGA,QAAQ1X,EAAI,CAAE,MAAAgB,GAAS,CACrBqqC,GAAYrrC,EAAIgB,CAAK,CACvB,EACA,aAAahB,EAAIsrC,EAAU5zB,EAAO,CAChC1X,EAAG+pC,EAAS,EAAIH,GAAiBlyB,CAAK,CACxC,EACA,QAAQ1X,EAAI,CAAE,MAAAgB,GAAS,CAChBhB,EAAG,YACNqrC,GAAYrrC,EAAIgB,CAAK,CAEzB,CACF,EACA,SAASqqC,GAAYrrC,EAAIgB,EAAO,CAC9B,MAAMuqC,EAAavrC,EAAG,SAChBwrC,EAAeprC,GAAQY,CAAK,EAClC,GAAI,EAAAuqC,GAAc,CAACC,GAAgB,CAACjrC,GAAMS,CAAK,GAM/C,SAASf,EAAI,EAAGuF,EAAIxF,EAAG,QAAQ,OAAQC,EAAIuF,EAAGvF,IAAK,CACjD,MAAMwrC,EAASzrC,EAAG,QAAQC,CAAC,EACrByrC,EAAcf,GAASc,CAAM,EACnC,GAAIF,EACF,GAAIC,EAAc,CAChB,MAAMG,EAAa,OAAOD,EACtBC,IAAe,UAAYA,IAAe,SAC5CF,EAAO,SAAWzqC,EAAM,KAAMmE,GAAM,OAAOA,CAAC,IAAM,OAAOumC,CAAW,CAAC,EAErED,EAAO,SAAW9mC,GAAa3D,EAAO0qC,CAAW,EAAI,EAEzD,MACED,EAAO,SAAWzqC,EAAM,IAAI0qC,CAAW,UAEhCtnC,GAAWumC,GAASc,CAAM,EAAGzqC,CAAK,EAAG,CAC1ChB,EAAG,gBAAkBC,IAAGD,EAAG,cAAgBC,GAC/C,MACF,CACF,CACI,CAACsrC,GAAcvrC,EAAG,gBAAkB,KACtCA,EAAG,cAAgB,IAEvB,CACA,SAAS2qC,GAAS3qC,EAAI,CACpB,MAAO,WAAYA,EAAKA,EAAG,OAASA,EAAG,KACzC,CACA,SAASgrC,GAAiBhrC,EAAI4qC,EAAS,CACrC,MAAMvrC,EAAMurC,EAAU,aAAe,cACrC,OAAOvrC,KAAOW,EAAKA,EAAGX,CAAG,EAAIurC,CAC/B,CA2EA,MAAMgB,GAAkB,CAAC,OAAQ,QAAS,MAAO,MAAM,EACjDC,GAAiB,CACrB,KAAO,GAAM,EAAE,kBACf,QAAU,GAAM,EAAE,iBAClB,KAAO,GAAM,EAAE,SAAW,EAAE,cAC5B,KAAO,GAAM,CAAC,EAAE,QAChB,MAAQ,GAAM,CAAC,EAAE,SACjB,IAAM,GAAM,CAAC,EAAE,OACf,KAAO,GAAM,CAAC,EAAE,QAChB,KAAO,GAAM,WAAY,GAAK,EAAE,SAAW,EAC3C,OAAS,GAAM,WAAY,GAAK,EAAE,SAAW,EAC7C,MAAQ,GAAM,WAAY,GAAK,EAAE,SAAW,EAC5C,MAAO,CAAC,EAAG9zB,IAAc6zB,GAAgB,KAAM/e,GAAM,EAAE,GAAGA,CAAC,KAAK,GAAK,CAAC9U,EAAU,SAAS8U,CAAC,CAAC,CAC7F,EACMif,GAAgB,CAACxqC,EAAIyW,IAAc,CACvC,MAAMxW,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxCyqC,EAAWh0B,EAAU,KAAK,GAAG,EACnC,OAAOxW,EAAMwqC,CAAQ,IAAMxqC,EAAMwqC,CAAQ,GAAK,CAACpQ,KAAUjxB,IAAS,CAChE,QAASzK,EAAI,EAAGA,EAAI8X,EAAU,OAAQ9X,IAAK,CACzC,MAAM+rC,EAAQH,GAAe9zB,EAAU9X,CAAC,CAAC,EACzC,GAAI+rC,GAASA,EAAMrQ,EAAO5jB,CAAS,EAAG,MACxC,CACA,OAAOzW,EAAGq6B,EAAO,GAAGjxB,CAAI,CAC1B,GACF,EACMuhC,GAAW,CACf,IAAK,SACL,MAAO,IACP,GAAI,WACJ,KAAM,aACN,MAAO,cACP,KAAM,aACN,OAAQ,WACV,EACMC,GAAW,CAAC5qC,EAAIyW,IAAc,CAClC,MAAMxW,EAAQD,EAAG,YAAcA,EAAG,UAAY,IACxCyqC,EAAWh0B,EAAU,KAAK,GAAG,EACnC,OAAOxW,EAAMwqC,CAAQ,IAAMxqC,EAAMwqC,CAAQ,GAAMpQ,GAAU,CACvD,GAAI,EAAE,QAASA,GACb,OAEF,MAAMwQ,EAAWvqC,GAAU+5B,EAAM,GAAG,EACpC,GAAI5jB,EAAU,KACXq0B,GAAMA,IAAMD,GAAYF,GAASG,CAAC,IAAMD,CAAA,EAEzC,OAAO7qC,EAAGq6B,CAAK,CAEnB,GACF,EAEM0Q,GAAkCxsC,GAAO,CAAE,UAAA0oC,EAAA,EAAalH,EAAO,EACrE,IAAIiL,GAEJ,SAASC,IAAiB,CACxB,OAAOD,KAAaA,GAAWla,GAAeia,EAAe,EAC/D,CAYA,MAAMG,IAAa,IAAI9hC,IAAS,CAC9B,MAAM4jB,EAAMie,GAAA,EAAiB,UAAU,GAAG7hC,CAAI,EAKxC,CAAE,MAAA4P,GAAUgU,EAClB,OAAAA,EAAI,MAASme,GAAwB,CACnC,MAAMxzB,EAAYyzB,GAAmBD,CAAmB,EACxD,GAAI,CAACxzB,EAAW,OAChB,MAAM+M,EAAYsI,EAAI,WAClB,CAAC5tB,GAAWslB,CAAS,GAAK,CAACA,EAAU,QAAU,CAACA,EAAU,WAC5DA,EAAU,SAAW/M,EAAU,WAE7BA,EAAU,WAAa,IACzBA,EAAU,YAAc,IAE1B,MAAMpJ,EAAQyK,EAAMrB,EAAW,GAAO0zB,GAAqB1zB,CAAS,CAAC,EACrE,OAAIA,aAAqB,UACvBA,EAAU,gBAAgB,SAAS,EACnCA,EAAU,aAAa,aAAc,EAAE,GAElCpJ,CACT,EACOye,CACT,GAgBA,SAASqe,GAAqB1zB,EAAW,CACvC,GAAIA,aAAqB,WACvB,MAAO,MAET,GAAI,OAAO,eAAkB,YAAcA,aAAqB,cAC9D,MAAO,QAEX,CAoCA,SAASyzB,GAAmBzzB,EAAW,CACrC,OAAItY,GAASsY,CAAS,EACR,SAAS,cAAcA,CAAS,EAavCA,CACT,CC32DA,MAAM2zB,GAAY,OAAO,SAAa,IAkBtC,SAASC,GAAiB7mB,EAAW,CACpC,OAAO,OAAOA,GAAc,UAAY,gBAAiBA,GAAa,UAAWA,GAAa,cAAeA,CAC9G,CACA,SAAS8mB,GAAWzqC,EAAK,CACxB,OAAOA,EAAI,YAAcA,EAAI,OAAO,WAAW,IAAM,UAAYA,EAAI,SAAWwqC,GAAiBxqC,EAAI,OAAO,CAC7G,CACA,MAAMwoC,GAAS,OAAO,OACtB,SAASkC,GAAczrC,EAAI0rC,EAAQ,CAClC,MAAMC,EAAY,GAClB,UAAW5tC,KAAO2tC,EAAQ,CACzB,MAAMhsC,EAAQgsC,EAAO3tC,CAAG,EACxB4tC,EAAU5tC,CAAG,EAAIe,GAAQY,CAAK,EAAIA,EAAM,IAAIM,CAAE,EAAIA,EAAGN,CAAK,CAC3D,CACA,OAAOisC,CACR,CACA,MAAMC,GAAO,IAAM,CAAC,EAKd9sC,GAAU,MAAM,QACtB,SAAS0sB,GAAavD,EAAU4jB,EAAgB,CAC/C,MAAMx6B,EAAU,GAChB,UAAWtT,KAAOkqB,EAAU5W,EAAQtT,CAAG,EAAIA,KAAO8tC,EAAiBA,EAAe9tC,CAAG,EAAIkqB,EAASlqB,CAAG,EACrG,OAAOsT,CACR,CA4BA,MAAMy6B,GAAU,KACVC,GAAe,KACfC,GAAW,MACXC,GAAW,KACXC,GAAQ,MACRC,GAAU,MAeVC,GAAsB,OACtBC,GAAuB,OACvBC,GAAe,OACfC,GAAkB,OAClBC,GAAoB,OACpBC,GAAc,OACdC,GAAqB,OACrBC,GAAe,OASrB,SAASC,GAAarP,EAAM,CAC3B,OAAOA,GAAQ,KAAO,GAAK,UAAU,GAAKA,CAAI,EAAE,QAAQkP,GAAa,GAAG,EAAE,QAAQL,GAAqB,GAAG,EAAE,QAAQC,GAAsB,GAAG,CAC9I,CAOA,SAASQ,GAAWtP,EAAM,CACzB,OAAOqP,GAAarP,CAAI,EAAE,QAAQiP,GAAmB,GAAG,EAAE,QAAQE,GAAoB,GAAG,EAAE,QAAQJ,GAAc,GAAG,CACrH,CAQA,SAASQ,GAAiBvP,EAAM,CAC/B,OAAOqP,GAAarP,CAAI,EAAE,QAAQ4O,GAAS,KAAK,EAAE,QAAQQ,GAAc,GAAG,EAAE,QAAQb,GAAS,KAAK,EAAE,QAAQC,GAAc,KAAK,EAAE,QAAQQ,GAAiB,GAAG,EAAE,QAAQC,GAAmB,GAAG,EAAE,QAAQE,GAAoB,GAAG,EAAE,QAAQJ,GAAc,GAAG,CAC3P,CAMA,SAASS,GAAexP,EAAM,CAC7B,OAAOuP,GAAiBvP,CAAI,EAAE,QAAQ0O,GAAU,KAAK,CACtD,CAOA,SAASe,GAAWzP,EAAM,CACzB,OAAOqP,GAAarP,CAAI,EAAE,QAAQuO,GAAS,KAAK,EAAE,QAAQI,GAAO,KAAK,CACvE,CAUA,SAASe,GAAY1P,EAAM,CAC1B,OAAOyP,GAAWzP,CAAI,EAAE,QAAQyO,GAAU,KAAK,CAChD,CACA,SAASkB,GAAO3P,EAAM,CACrB,GAAIA,GAAQ,KAAM,OAAO,KACzB,GAAI,CACH,OAAO,mBAAmB,GAAKA,CAAI,CACpC,MAAc,CAEd,CACA,MAAO,GAAKA,CACb,CAIA,MAAM4P,GAAoB,MACpBC,GAAuB7T,GAASA,EAAK,QAAQ4T,GAAmB,EAAE,EAUxE,SAASE,GAASC,EAAcC,EAAUC,EAAkB,IAAK,CAChE,IAAIjU,EAAMkU,EAAQ,GAAIC,EAAe,GAAIC,EAAO,GAChD,MAAMC,EAAUL,EAAS,QAAQ,GAAG,EACpC,IAAIM,EAAYN,EAAS,QAAQ,GAAG,EACpC,OAAAM,EAAYD,GAAW,GAAKC,EAAYD,EAAU,GAAKC,EACnDA,GAAa,IAChBtU,EAAOgU,EAAS,MAAM,EAAGM,CAAS,EAClCH,EAAeH,EAAS,MAAMM,EAAWD,EAAU,EAAIA,EAAUL,EAAS,MAAM,EAChFE,EAAQH,EAAaI,EAAa,MAAM,CAAC,CAAC,GAEvCE,GAAW,IACdrU,EAAOA,GAAQgU,EAAS,MAAM,EAAGK,CAAO,EACxCD,EAAOJ,EAAS,MAAMK,EAASL,EAAS,MAAM,GAE/ChU,EAAOuU,GAAoBvU,GAAsBgU,EAAUC,CAAe,EACnE,CACN,SAAUjU,EAAOmU,EAAeC,EAChC,KAAApU,EACA,MAAAkU,EACA,KAAMP,GAAOS,CAAI,EAEnB,CAWA,SAASI,GAAaC,EAAkBT,EAAU,CACjD,MAAME,EAAQF,EAAS,MAAQS,EAAiBT,EAAS,KAAK,EAAI,GAClE,OAAOA,EAAS,MAAQE,GAAS,KAAOA,GAASF,EAAS,MAAQ,GACnE,CAOA,SAASU,GAAUC,EAAUjjB,EAAM,CAClC,MAAI,CAACA,GAAQ,CAACijB,EAAS,cAAc,WAAWjjB,EAAK,aAAa,EAAUijB,EACrEA,EAAS,MAAMjjB,EAAK,MAAM,GAAK,GACvC,CAUA,SAASkjB,GAAoBH,EAAkBrrC,EAAGC,EAAG,CACpD,MAAMwrC,EAAazrC,EAAE,QAAQ,OAAS,EAChC0rC,EAAazrC,EAAE,QAAQ,OAAS,EACtC,OAAOwrC,EAAa,IAAMA,IAAeC,GAAcC,GAAkB3rC,EAAE,QAAQyrC,CAAU,EAAGxrC,EAAE,QAAQyrC,CAAU,CAAC,GAAKE,GAA0B5rC,EAAE,OAAQC,EAAE,MAAM,GAAKorC,EAAiBrrC,EAAE,KAAK,IAAMqrC,EAAiBprC,EAAE,KAAK,GAAKD,EAAE,OAASC,EAAE,IACpP,CAQA,SAAS0rC,GAAkB3rC,EAAGC,EAAG,CAChC,OAAQD,EAAE,SAAWA,MAAQC,EAAE,SAAWA,EAC3C,CACA,SAAS2rC,GAA0B5rC,EAAGC,EAAG,CACxC,GAAI,OAAO,KAAKD,CAAC,EAAE,SAAW,OAAO,KAAKC,CAAC,EAAE,OAAQ,MAAO,GAC5D,UAAW7E,KAAO4E,EAAG,GAAI,CAAC6rC,GAA+B7rC,EAAE5E,CAAG,EAAG6E,EAAE7E,CAAG,CAAC,EAAG,MAAO,GACjF,MAAO,EACR,CACA,SAASywC,GAA+B7rC,EAAGC,EAAG,CAC7C,OAAO9D,GAAQ6D,CAAC,EAAI8rC,GAAkB9rC,EAAGC,CAAC,EAAI9D,GAAQ8D,CAAC,EAAI6rC,GAAkB7rC,EAAGD,CAAC,EAAIA,IAAMC,CAC5F,CAQA,SAAS6rC,GAAkB9rC,EAAGC,EAAG,CAChC,OAAO9D,GAAQ8D,CAAC,EAAID,EAAE,SAAWC,EAAE,QAAUD,EAAE,MAAM,CAACjD,EAAOf,IAAMe,IAAUkD,EAAEjE,CAAC,CAAC,EAAIgE,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAMC,CACjH,CAOA,SAASkrC,GAAoBriB,EAAIC,EAAM,CACtC,GAAID,EAAG,WAAW,GAAG,EAAG,OAAOA,EAK/B,GAAI,CAACA,EAAI,OAAOC,EAChB,MAAMgjB,EAAehjB,EAAK,MAAM,GAAG,EAC7BijB,EAAaljB,EAAG,MAAM,GAAG,EACzBmjB,EAAgBD,EAAWA,EAAW,OAAS,CAAC,GAClDC,IAAkB,MAAQA,IAAkB,MAAKD,EAAW,KAAK,EAAE,EACvE,IAAIE,EAAWH,EAAa,OAAS,EACjCI,EACAC,EACJ,IAAKD,EAAa,EAAGA,EAAaH,EAAW,OAAQG,IAEpD,GADAC,EAAUJ,EAAWG,CAAU,EAC3BC,IAAY,IAChB,GAAIA,IAAY,KACXF,EAAW,GAAGA,QACZ,OAER,OAAOH,EAAa,MAAM,EAAGG,CAAQ,EAAE,KAAK,GAAG,EAAI,IAAMF,EAAW,MAAMG,CAAU,EAAE,KAAK,GAAG,CAC/F,CAgBA,MAAME,GAA4B,CACjC,KAAM,IACN,KAAM,OACN,OAAQ,GACR,MAAO,GACP,KAAM,GACN,SAAU,IACV,QAAS,GACT,KAAM,GACN,eAAgB,MACjB,EAIA,IAAIC,aAA0CC,EAAkB,CAC/D,OAAAA,EAAiB,IAAS,MAC1BA,EAAiB,KAAU,OACpBA,CACR,GAAE,EAAE,EACAC,aAA+CC,EAAuB,CACzE,OAAAA,EAAsB,KAAU,OAChCA,EAAsB,QAAa,UACnCA,EAAsB,QAAa,GAC5BA,CACR,GAAE,EAAE,EAWJ,SAASC,GAAcpkB,EAAM,CAC5B,GAAI,CAACA,EAAM,GAAIqgB,GAAW,CACzB,MAAMgE,EAAS,SAAS,cAAc,MAAM,EAC5CrkB,EAAOqkB,GAAUA,EAAO,aAAa,MAAM,GAAK,IAChDrkB,EAAOA,EAAK,QAAQ,kBAAmB,EAAE,CAC1C,MAAOA,EAAO,IACd,OAAIA,EAAK,CAAC,IAAM,KAAOA,EAAK,CAAC,IAAM,MAAKA,EAAO,IAAMA,GAC9CmiB,GAAoBniB,CAAI,CAChC,CACA,MAAMskB,GAAiB,UACvB,SAASC,GAAWvkB,EAAMsiB,EAAU,CACnC,OAAOtiB,EAAK,QAAQskB,GAAgB,GAAG,EAAIhC,CAC5C,CAIA,SAASkC,GAAmB/wC,EAAIgxC,EAAQ,CACvC,MAAMC,EAAU,SAAS,gBAAgB,wBACnCC,EAASlxC,EAAG,wBAClB,MAAO,CACN,SAAUgxC,EAAO,SACjB,KAAME,EAAO,KAAOD,EAAQ,MAAQD,EAAO,MAAQ,GACnD,IAAKE,EAAO,IAAMD,EAAQ,KAAOD,EAAO,KAAO,GAEjD,CACA,MAAMG,GAAwB,KAAO,CACpC,KAAM,OAAO,QACb,IAAK,OAAO,OACb,GACA,SAASC,GAAiBjB,EAAU,CACnC,IAAIkB,EACJ,GAAI,OAAQlB,EAAU,CACrB,MAAMmB,EAAanB,EAAS,GACtBoB,EAAe,OAAOD,GAAe,UAAYA,EAAW,WAAW,GAAG,EAkC1EtxC,EAAK,OAAOsxC,GAAe,SAAWC,EAAe,SAAS,eAAeD,EAAW,MAAM,CAAC,CAAC,EAAI,SAAS,cAAcA,CAAU,EAAIA,EAC/I,GAAI,CAACtxC,EAEJ,OAEDqxC,EAAkBN,GAAmB/wC,EAAImwC,CAAQ,CAClD,MAAOkB,EAAkBlB,EACrB,mBAAoB,SAAS,gBAAgB,MAAO,OAAO,SAASkB,CAAe,EAClF,OAAO,SAASA,EAAgB,MAAQ,KAAOA,EAAgB,KAAO,OAAO,QAASA,EAAgB,KAAO,KAAOA,EAAgB,IAAM,OAAO,OAAO,CAC9J,CACA,SAASG,GAAa3W,EAAM4W,EAAO,CAClC,OAAQ,QAAQ,MAAQ,QAAQ,MAAM,SAAWA,EAAQ,IAAM5W,CAChE,CACA,MAAM6W,OAAsC,IAC5C,SAASC,GAAmBtyC,EAAKuyC,EAAgB,CAChDF,GAAgB,IAAIryC,EAAKuyC,CAAc,CACxC,CACA,SAASC,GAAuBxyC,EAAK,CACpC,MAAMyyC,EAASJ,GAAgB,IAAIryC,CAAG,EACtC,OAAAqyC,GAAgB,OAAOryC,CAAG,EACnByyC,CACR,CAQA,SAASC,GAAgBC,EAAO,CAC/B,OAAO,OAAOA,GAAU,UAAYA,GAAS,OAAOA,GAAU,QAC/D,CACA,SAASC,GAAYzuC,EAAM,CAC1B,OAAO,OAAOA,GAAS,UAAY,OAAOA,GAAS,QACpD,CAUA,IAAI0uC,aAAsCC,EAAc,CACvD,OAAAA,EAAaA,EAAa,kBAAuB,CAAC,EAAI,oBACtDA,EAAaA,EAAa,0BAA+B,CAAC,EAAI,4BAC9DA,EAAaA,EAAa,mBAAwB,CAAC,EAAI,qBACvDA,EAAaA,EAAa,qBAA0B,CAAC,EAAI,uBACzDA,EAAaA,EAAa,sBAA2B,EAAE,EAAI,wBACpDA,CACR,GAAE,EAAE,EACJ,MAAMC,GAA0B,OAAsE,EAAE,EAwBtGF,GAAW,kBAAX,GAGAA,GAAW,0BAAX,GAGAA,GAAW,mBAAX,GAGAA,GAAW,qBAAX,GAGAA,GAAW,sBAAX,GAUF,SAASG,GAAkBjpC,EAAM4jC,EAAQ,CAKnC,OAAOnC,GAAuB,IAAI,MAAS,CAC/C,KAAAzhC,EACA,CAACgpC,EAAuB,EAAG,IACzBpF,CAAM,CACV,CACA,SAASsF,GAAoBhrC,EAAO8B,EAAM,CACzC,OAAO9B,aAAiB,OAAS8qC,MAA2B9qC,IAAU8B,GAAQ,MAAQ,CAAC,EAAE9B,EAAM,KAAO8B,GACvG,CACA,MAAMmpC,GAAkB,CACvB,SACA,QACA,MACD,EACA,SAASC,GAAezlB,EAAI,CAC3B,GAAI,OAAOA,GAAO,SAAU,OAAOA,EACnC,GAAIA,EAAG,MAAQ,KAAM,OAAOA,EAAG,KAC/B,MAAM8hB,EAAW,GACjB,UAAWxvC,KAAOkzC,GAAqBlzC,KAAO0tB,IAAI8hB,EAASxvC,CAAG,EAAI0tB,EAAG1tB,CAAG,GACxE,OAAO,KAAK,UAAUwvC,EAAU,KAAM,CAAC,CACxC,CAaA,SAAS4D,GAAWC,EAAQ,CAC3B,MAAM3D,EAAQ,GACd,GAAI2D,IAAW,IAAMA,IAAW,IAAK,OAAO3D,EAC5C,MAAM4D,GAAgBD,EAAO,CAAC,IAAM,IAAMA,EAAO,MAAM,CAAC,EAAIA,GAAQ,MAAM,GAAG,EAC7E,QAASzyC,EAAI,EAAGA,EAAI0yC,EAAa,OAAQ,EAAE1yC,EAAG,CAC7C,MAAM2yC,EAAcD,EAAa1yC,CAAC,EAAE,QAAQwtC,GAAS,GAAG,EAClDoF,EAAQD,EAAY,QAAQ,GAAG,EAC/BvzC,EAAMmvC,GAAOqE,EAAQ,EAAID,EAAcA,EAAY,MAAM,EAAGC,CAAK,CAAC,EAClE7xC,EAAQ6xC,EAAQ,EAAI,KAAOrE,GAAOoE,EAAY,MAAMC,EAAQ,CAAC,CAAC,EACpE,GAAIxzC,KAAO0vC,EAAO,CACjB,IAAI+D,EAAe/D,EAAM1vC,CAAG,EACvBe,GAAQ0yC,CAAY,MAAkB/D,EAAM1vC,CAAG,EAAI,CAACyzC,CAAY,GACrEA,EAAa,KAAK9xC,CAAK,CACxB,MAAO+tC,EAAM1vC,CAAG,EAAI2B,CACrB,CACA,OAAO+tC,CACR,CAUA,SAASgE,GAAehE,EAAO,CAC9B,IAAI2D,EAAS,GACb,QAASrzC,KAAO0vC,EAAO,CACtB,MAAM/tC,EAAQ+tC,EAAM1vC,CAAG,EAEvB,GADAA,EAAMgvC,GAAehvC,CAAG,EACpB2B,GAAS,KAAM,CACdA,IAAU,SAAQ0xC,IAAWA,EAAO,OAAS,IAAM,IAAMrzC,GAC7D,QACD,EACCe,GAAQY,CAAK,EAAIA,EAAM,IAAKmE,GAAMA,GAAKipC,GAAiBjpC,CAAC,CAAC,EAAI,CAACnE,GAASotC,GAAiBptC,CAAK,CAAC,GAAG,QAASgyC,GAAY,CACnHA,IAAY,SACfN,IAAWA,EAAO,OAAS,IAAM,IAAMrzC,EACnC2zC,GAAW,OAAMN,GAAU,IAAMM,GAEvC,CAAC,CACF,CACA,OAAON,CACR,CASA,SAASO,GAAelE,EAAO,CAC9B,MAAMmE,EAAkB,GACxB,UAAW7zC,KAAO0vC,EAAO,CACxB,MAAM/tC,EAAQ+tC,EAAM1vC,CAAG,EACnB2B,IAAU,SAAQkyC,EAAgB7zC,CAAG,EAAIe,GAAQY,CAAK,EAAIA,EAAM,IAAKmE,GAAMA,GAAK,KAAO,KAAO,GAAKA,CAAC,EAAInE,GAAS,KAAOA,EAAQ,GAAKA,EAC1I,CACA,OAAOkyC,CACR,CAWA,MAAMC,GAAkB,OAAgF,EAAE,EAOpGC,GAAe,OAAqE,EAAE,EAOtFC,GAAY,OAA0D,EAAE,EAOxEC,GAAmB,OAAkE,EAAE,EAOvFC,GAAwB,OAAwE,EAAE,EAOxG,SAASC,IAAe,CACvB,IAAIC,EAAW,GACf,SAASC,EAAIpnB,EAAS,CACrB,OAAAmnB,EAAS,KAAKnnB,CAAO,EACd,IAAM,CACZ,MAAMrsB,EAAIwzC,EAAS,QAAQnnB,CAAO,EAC9BrsB,EAAI,IAAIwzC,EAAS,OAAOxzC,EAAG,CAAC,CACjC,CACD,CACA,SAAS6kB,GAAQ,CAChB2uB,EAAW,EACZ,CACA,MAAO,CACN,IAAAC,EACA,KAAM,IAAMD,EAAS,QACrB,MAAA3uB,CAAA,CAEF,CAIA,SAAS6uB,GAAcC,EAAQpwC,EAAMwoC,EAAO,CAC3C,MAAM6H,EAAiB,IAAM,CAC5BD,EAAOpwC,CAAI,EAAE,OAAOwoC,CAAK,CAC1B,EACApnB,GAAYivB,CAAc,EAC1BxvB,GAAcwvB,CAAc,EAC5B1vB,GAAY,IAAM,CACjByvB,EAAOpwC,CAAI,EAAE,IAAIwoC,CAAK,CACvB,CAAC,EACD4H,EAAOpwC,CAAI,EAAE,IAAIwoC,CAAK,CACvB,CAQA,SAAS8H,GAAmBC,EAAY,CAKvC,MAAMC,EAAe7nB,GAAOgnB,GAAiB,EAAE,EAAE,MAC5Ca,GAILL,GAAcK,EAAc,cAAeD,CAAU,CACtD,CAoBA,SAASE,GAAiBjI,EAAOjf,EAAIC,EAAM4mB,EAAQpwC,EAAM0wC,EAAkB5yC,GAAOA,IAAM,CACvF,MAAM6yC,EAAqBP,IAAWA,EAAO,eAAepwC,CAAI,EAAIowC,EAAO,eAAepwC,CAAI,GAAK,IACnG,MAAO,IAAM,IAAI,QAAQ,CAAC6iB,EAAS+tB,IAAW,CAC7C,MAAM/sC,EAAQgtC,GAAU,CACnBA,IAAU,GAAOD,EAAO/B,GAAkBH,GAAW,mBAAoB,CAC5E,KAAAllB,EACA,GAAAD,CAAA,CACA,CAAC,EACOsnB,aAAiB,MAAOD,EAAOC,CAAK,EACpCtC,GAAgBsC,CAAK,EAAGD,EAAO/B,GAAkBH,GAAW,0BAA2B,CAC/F,KAAMnlB,EACN,GAAIsnB,CAAA,CACJ,CAAC,GAEGF,GAAsBP,EAAO,eAAepwC,CAAI,IAAM2wC,GAAsB,OAAOE,GAAU,YAAYF,EAAmB,KAAKE,CAAK,EAC1IhuB,EAAA,EAEF,EACMiuB,EAAcJ,EAAe,IAAMlI,EAAM,KAAK4H,GAAUA,EAAO,UAAUpwC,CAAI,EAAGupB,EAAIC,EAAoF3lB,CAAI,CAAC,EACnL,IAAIktC,EAAY,QAAQ,QAAQD,CAAW,EACvCtI,EAAM,OAAS,IAAGuI,EAAYA,EAAU,KAAKltC,CAAI,GAkBrDktC,EAAU,MAAOhtC,GAAQ6sC,EAAO7sC,CAAG,CAAC,CACrC,CAAC,CACF,CASA,SAASitC,GAAwBC,EAASC,EAAW3nB,EAAIC,EAAMknB,EAAkB5yC,GAAOA,IAAM,CAC7F,MAAMqzC,EAAS,GACf,UAAWf,KAAUa,EAEpB,UAAWjxC,KAAQowC,EAAO,WAAY,CACrC,IAAIgB,EAAehB,EAAO,WAAWpwC,CAAI,EAczC,GAAI,EAAAkxC,IAAc,oBAAsB,CAACd,EAAO,UAAUpwC,CAAI,GAC9D,GAAIqpC,GAAiB+H,CAAY,EAAG,CACnC,MAAM5I,GAAS4I,EAAa,WAAaA,GAAcF,CAAS,EAChE1I,GAAS2I,EAAO,KAAKV,GAAiBjI,EAAOjf,EAAIC,EAAM4mB,EAAQpwC,EAAM0wC,CAAc,CAAC,CACrF,KAAO,CACN,IAAIW,EAAmBD,EAAA,EAKvBD,EAAO,KAAK,IAAME,EAAiB,KAAMjoB,GAAa,CACrD,GAAI,CAACA,EAAU,MAAM,IAAI,MAAM,+BAA+BppB,CAAI,SAASowC,EAAO,IAAI,GAAG,EACzF,MAAMkB,EAAoBhI,GAAWlgB,CAAQ,EAAIA,EAAS,QAAUA,EACpEgnB,EAAO,KAAKpwC,CAAI,EAAIopB,EACpBgnB,EAAO,WAAWpwC,CAAI,EAAIsxC,EAC1B,MAAM9I,GAAS8I,EAAkB,WAAaA,GAAmBJ,CAAS,EAC1E,OAAO1I,GAASiI,GAAiBjI,EAAOjf,EAAIC,EAAM4mB,EAAQpwC,EAAM0wC,CAAc,GAC/E,CAAC,CAAC,CACH,CACD,CAED,OAAOS,CACR,CAyBA,SAASI,GAAuBhoB,EAAIC,EAAM,CACzC,MAAMgoB,EAAiB,GACjBC,EAAkB,GAClBC,EAAkB,GAClBrb,EAAM,KAAK,IAAI7M,EAAK,QAAQ,OAAQD,EAAG,QAAQ,MAAM,EAC3D,QAAS9sB,EAAI,EAAGA,EAAI45B,EAAK55B,IAAK,CAC7B,MAAMk1C,EAAanoB,EAAK,QAAQ/sB,CAAC,EAC7Bk1C,IAAgBpoB,EAAG,QAAQ,KAAM6mB,GAAWhE,GAAkBgE,EAAQuB,CAAU,CAAC,EAAGF,EAAgB,KAAKE,CAAU,EAClHH,EAAe,KAAKG,CAAU,GACnC,MAAMC,EAAWroB,EAAG,QAAQ9sB,CAAC,EACzBm1C,IACEpoB,EAAK,QAAQ,KAAM4mB,GAAWhE,GAAkBgE,EAAQwB,CAAQ,CAAC,GAAGF,EAAgB,KAAKE,CAAQ,EAExG,CACA,MAAO,CACNJ,EACAC,EACAC,CAAA,CAEF,CC31BA,IAAIG,GAAqB,IAAM,SAAS,SAAW,KAAO,SAAS,KAMnE,SAASC,GAAsB/oB,EAAMgpB,EAAY,CAChD,KAAM,CAAE,SAAA/F,EAAU,OAAAkD,EAAQ,KAAAzD,CAAA,EAASsG,EAC7BrG,EAAU3iB,EAAK,QAAQ,GAAG,EAChC,GAAI2iB,EAAU,GAAI,CACjB,IAAIsG,EAAWvG,EAAK,SAAS1iB,EAAK,MAAM2iB,CAAO,CAAC,EAAI3iB,EAAK,MAAM2iB,CAAO,EAAE,OAAS,EAC7EuG,EAAexG,EAAK,MAAMuG,CAAQ,EACtC,OAAIC,EAAa,CAAC,IAAM,QAAoB,IAAMA,GAC3ClG,GAAUkG,EAAc,EAAE,CAClC,CACA,OAAOlG,GAAUC,EAAUjjB,CAAI,EAAImmB,EAASzD,CAC7C,CACA,SAASyG,GAAoBnpB,EAAMopB,EAAc7G,EAAiB8G,EAAS,CAC1E,IAAIC,EAAY,GACZC,EAAY,GACZC,EAAa,KACjB,MAAMC,EAAkB,CAAC,CAAE,MAAAp5B,KAAY,CACtC,MAAMmQ,EAAKuoB,GAAsB/oB,EAAM,QAAQ,EACzCS,EAAO8hB,EAAgB,MACvBmH,EAAYN,EAAa,MAC/B,IAAIlE,EAAQ,EACZ,GAAI70B,EAAO,CAGV,GAFAkyB,EAAgB,MAAQ/hB,EACxB4oB,EAAa,MAAQ/4B,EACjBm5B,GAAcA,IAAe/oB,EAAM,CACtC+oB,EAAa,KACb,MACD,CACAtE,EAAQwE,EAAYr5B,EAAM,SAAWq5B,EAAU,SAAW,CAC3D,QAAelpB,CAAE,EACjB8oB,EAAU,QAASK,GAAa,CAC/BA,EAASpH,EAAgB,MAAO9hB,EAAM,CACrC,MAAAykB,EACA,KAAMlB,GAAe,IACrB,UAAWkB,EAAQA,EAAQ,EAAIhB,GAAoB,QAAUA,GAAoB,KAAOA,GAAoB,QAC5G,CACF,CAAC,CACF,EACA,SAAS0F,GAAiB,CACzBJ,EAAajH,EAAgB,KAC9B,CACA,SAASsH,EAAO3nC,EAAU,CACzBonC,EAAU,KAAKpnC,CAAQ,EACvB,MAAM4nC,EAAW,IAAM,CACtB,MAAMvqC,EAAQ+pC,EAAU,QAAQpnC,CAAQ,EACpC3C,EAAQ,IAAI+pC,EAAU,OAAO/pC,EAAO,CAAC,CAC1C,EACA,OAAAgqC,EAAU,KAAKO,CAAQ,EAChBA,CACR,CACA,SAASC,GAAuB,CAC/B,GAAI,SAAS,kBAAoB,SAAU,CAC1C,KAAM,CAAE,QAASC,CAAA,EAAc,OAC/B,GAAI,CAACA,EAAU,MAAO,OACtBA,EAAU,aAAa1L,GAAO,GAAI0L,EAAU,MAAO,CAAE,OAAQpF,IAAsB,CAAG,EAAG,EAAE,CAC5F,CACD,CACA,SAASqF,GAAU,CAClB,UAAWH,KAAYP,EAAWO,EAAA,EAClCP,EAAY,GACZ,OAAO,oBAAoB,WAAYE,CAAe,EACtD,OAAO,oBAAoB,WAAYM,CAAoB,EAC3D,SAAS,oBAAoB,mBAAoBA,CAAoB,CACtE,CACA,cAAO,iBAAiB,WAAYN,CAAe,EACnD,OAAO,iBAAiB,WAAYM,CAAoB,EACxD,SAAS,iBAAiB,mBAAoBA,CAAoB,EAC3D,CACN,eAAAH,EACA,OAAAC,EACA,QAAAI,CAAA,CAEF,CAIA,SAASC,GAAWC,EAAMv0B,EAASw0B,EAASC,EAAW,GAAOC,EAAgB,GAAO,CACpF,MAAO,CACN,KAAAH,EACA,QAAAv0B,EACA,QAAAw0B,EACA,SAAAC,EACA,SAAU,OAAO,QAAQ,OACzB,OAAQC,EAAgB1F,KAA0B,KAEpD,CACA,SAAS2F,GAA0BvqB,EAAM,CACxC,KAAM,CAAE,QAASgqB,EAAW,SAAUhB,GAAe,OAC/CzG,EAAkB,CAAE,MAAOwG,GAAsB/oB,EAAMgpB,CAAU,GACjEI,EAAe,CAAE,MAAOY,EAAU,OACnCZ,EAAa,OAAOoB,EAAejI,EAAgB,MAAO,CAC9D,KAAM,KACN,QAASA,EAAgB,MACzB,QAAS,KACT,SAAUyH,EAAU,OAAS,EAC7B,SAAU,GACV,OAAQ,MACN,EAAI,EACP,SAASQ,EAAehqB,EAAInQ,EAAOo6B,EAAW,CAU7C,MAAMC,EAAY1qB,EAAK,QAAQ,GAAG,EAC5B2qB,EAAMD,EAAY,IAAM1B,EAAW,MAAQ,SAAS,cAAc,MAAM,EAAIhpB,EAAOA,EAAK,MAAM0qB,CAAS,GAAKlqB,EAAKsoB,GAAA,EAAuB9oB,EAAOQ,EACrJ,GAAI,CACHwpB,EAAUS,EAAY,eAAiB,WAAW,EAAEp6B,EAAO,GAAIs6B,CAAG,EAClEvB,EAAa,MAAQ/4B,CACtB,OAASrV,EAAK,CAER,QAAQ,MAAMA,CAAG,EACtBguC,EAAWyB,EAAY,UAAY,QAAQ,EAAEE,CAAG,CACjD,CACD,CACA,SAAStB,EAAQ7oB,EAAI1E,EAAM,CAC1B0uB,EAAehqB,EAAI8d,GAAO,GAAI0L,EAAU,MAAOE,GAAWd,EAAa,MAAM,KAAM5oB,EAAI4oB,EAAa,MAAM,QAAS,EAAI,EAAGttB,EAAM,CAAE,SAAUstB,EAAa,MAAM,SAAU,EAAG,EAAI,EAChL7G,EAAgB,MAAQ/hB,CACzB,CACA,SAASoqB,EAAKpqB,EAAI1E,EAAM,CACvB,MAAM+uB,EAAevM,GAAO,GAAI8K,EAAa,MAAOY,EAAU,MAAO,CACpE,QAASxpB,EACT,OAAQokB,GAAA,CAAsB,CAC9B,EAED4F,EAAeK,EAAa,QAASA,EAAc,EAAI,EACvDL,EAAehqB,EAAI8d,GAAO,GAAI4L,GAAW3H,EAAgB,MAAO/hB,EAAI,IAAI,EAAG,CAAE,SAAUqqB,EAAa,SAAW,GAAK/uB,CAAI,EAAG,EAAK,EAChIymB,EAAgB,MAAQ/hB,CACzB,CACA,MAAO,CACN,SAAU+hB,EACV,MAAO6G,EACP,KAAAwB,EACA,QAAAvB,CAAA,CAEF,CAMA,SAASyB,GAAiB9qB,EAAM,CAC/BA,EAAOokB,GAAcpkB,CAAI,EACzB,MAAM+qB,EAAoBR,GAA0BvqB,CAAI,EAClDgrB,EAAmB7B,GAAoBnpB,EAAM+qB,EAAkB,MAAOA,EAAkB,SAAUA,EAAkB,OAAO,EACjI,SAASE,EAAG/F,EAAOgG,EAAmB,GAAM,CACtCA,GAAkBF,EAAiB,iBACxC,QAAQ,GAAG9F,CAAK,CACjB,CACA,MAAMiG,EAAgB7M,GAAO,CAC5B,SAAU,GACV,KAAAte,EACA,GAAAirB,EACA,WAAY1G,GAAW,KAAK,KAAMvkB,CAAI,GACpC+qB,EAAmBC,CAAgB,EACtC,cAAO,eAAeG,EAAe,WAAY,CAChD,WAAY,GACZ,IAAK,IAAMJ,EAAkB,SAAS,MACtC,EACD,OAAO,eAAeI,EAAe,QAAS,CAC7C,WAAY,GACZ,IAAK,IAAMJ,EAAkB,MAAM,MACnC,EACMI,CACR,CAoGA,SAASC,GAAqBprB,EAAM,CACnC,OAAAA,EAAO,SAAS,KAAOA,GAAQ,SAAS,SAAW,SAAS,OAAS,GAChEA,EAAK,SAAS,GAAG,IAAGA,GAAQ,KAE1B8qB,GAAiB9qB,CAAI,CAC7B,CAIA,IAAIqrB,aAAqCC,EAAa,CACrD,OAAAA,EAAYA,EAAY,OAAY,CAAC,EAAI,SACzCA,EAAYA,EAAY,MAAW,CAAC,EAAI,QACxCA,EAAYA,EAAY,MAAW,CAAC,EAAI,QACjCA,CACR,GAAE,EAAE,EACJ,IAAIC,aAA0CC,EAAkB,CAC/D,OAAAA,EAAiBA,EAAiB,OAAY,CAAC,EAAI,SACnDA,EAAiBA,EAAiB,MAAW,CAAC,EAAI,QAClDA,EAAiBA,EAAiB,YAAiB,CAAC,EAAI,cACxDA,EAAiBA,EAAiB,eAAoB,CAAC,EAAI,iBAC3DA,EAAiBA,EAAiB,WAAgB,CAAC,EAAI,aAChDA,CACR,GAAED,IAAkB,EAAE,EACtB,MAAME,GAAa,CAClB,KAAMJ,GAAU,OAChB,MAAO,EACR,EACMK,GAAiB,eACvB,SAASC,GAAard,EAAM,CAC3B,GAAI,CAACA,EAAM,MAAO,CAAC,EAAE,EACrB,GAAIA,IAAS,IAAK,MAAO,CAAC,CAACmd,EAAU,CAAC,EACtC,GAAI,CAACnd,EAAK,WAAW,GAAG,QAAS,IAAI,MAAuH,iBAAiBA,CAAI,GAAG,EACpL,SAASsd,EAAMC,EAAS,CACvB,MAAM,IAAI,MAAM,QAAQx7B,CAAK,MAAMy7B,CAAM,MAAMD,CAAO,EAAE,CACzD,CACA,IAAIx7B,EAAQk7B,GAAe,OACvBQ,EAAgB17B,EACpB,MAAM27B,EAAS,GACf,IAAIlI,EACJ,SAASmI,GAAkB,CACtBnI,GAASkI,EAAO,KAAKlI,CAAO,EAChCA,EAAU,EACX,CACA,IAAI,EAAI,EACJoI,EACAJ,EAAS,GACTK,EAAW,GACf,SAASC,GAAgB,CACnBN,IACDz7B,IAAUk7B,GAAe,OAAQzH,EAAQ,KAAK,CACjD,KAAMuH,GAAU,OAChB,MAAOS,CAAA,CACP,EACQz7B,IAAUk7B,GAAe,OAASl7B,IAAUk7B,GAAe,aAAel7B,IAAUk7B,GAAe,gBACvGzH,EAAQ,OAAS,IAAMoI,IAAS,KAAOA,IAAS,MAAMN,EAAM,uBAAuBE,CAAM,8CAA8C,EAC3IhI,EAAQ,KAAK,CACZ,KAAMuH,GAAU,MAChB,MAAOS,EACP,OAAQK,EACR,WAAYD,IAAS,KAAOA,IAAS,IACrC,SAAUA,IAAS,KAAOA,IAAS,IACnC,KACW,iCAAiC,EAC9CJ,EAAS,GACV,CACA,SAASO,GAAkB,CAC1BP,GAAUI,CACX,CACA,KAAO,EAAI5d,EAAK,QAAQ,CAEvB,GADA4d,EAAO5d,EAAK,GAAG,EACX4d,IAAS,MAAQ77B,IAAUk7B,GAAe,YAAa,CAC1DQ,EAAgB17B,EAChBA,EAAQk7B,GAAe,WACvB,QACD,CACA,OAAQl7B,EAAA,CACP,KAAKk7B,GAAe,OACfW,IAAS,KACRJ,GAAQM,EAAA,EACZH,EAAA,GACUC,IAAS,KACnBE,EAAA,EACA/7B,EAAQk7B,GAAe,OACjBc,EAAA,EACP,MACD,KAAKd,GAAe,WACnBc,EAAA,EACAh8B,EAAQ07B,EACR,MACD,KAAKR,GAAe,MACfW,IAAS,IAAK77B,EAAQk7B,GAAe,YAChCG,GAAe,KAAKQ,CAAI,EAAGG,EAAA,GAEnCD,EAAA,EACA/7B,EAAQk7B,GAAe,OACnBW,IAAS,KAAOA,IAAS,KAAOA,IAAS,KAAK,KAEnD,MACD,KAAKX,GAAe,YACfW,IAAS,IAASC,EAASA,EAAS,OAAS,CAAC,GAAK,KAAMA,EAAWA,EAAS,MAAM,EAAG,EAAE,EAAID,IACnFX,GAAe,eACvBY,GAAYD,EACjB,MACD,KAAKX,GAAe,eACnBa,EAAA,EACA/7B,EAAQk7B,GAAe,OACnBW,IAAS,KAAOA,IAAS,KAAOA,IAAS,KAAK,IAClDC,EAAW,GACX,MACD,QACCP,EAAM,eAAe,EACrB,MAEH,CACA,OAAIv7B,IAAUk7B,GAAe,aAAaK,EAAM,uCAAuCE,CAAM,GAAG,EAChGM,EAAA,EACAH,EAAA,EACOD,CACR,CAIA,MAAMM,GAAqB,SACrBC,GAA2B,CAChC,UAAW,GACX,OAAQ,GACR,MAAO,GACP,IAAK,EACN,EACA,IAAIC,aAAqCC,EAAa,CACrD,OAAAA,EAAYA,EAAY,YAAiB,EAAE,EAAI,cAC/CA,EAAYA,EAAY,KAAU,EAAE,EAAI,OACxCA,EAAYA,EAAY,QAAa,EAAE,EAAI,UAC3CA,EAAYA,EAAY,WAAgB,EAAE,EAAI,aAC9CA,EAAYA,EAAY,OAAY,EAAE,EAAI,SAC1CA,EAAYA,EAAY,QAAa,EAAE,EAAI,UAC3CA,EAAYA,EAAY,kBAAuB,EAAE,EAAI,oBACrDA,EAAYA,EAAY,cAAmB,GAAG,EAAI,gBAClDA,EAAYA,EAAY,gBAAqB,GAAG,EAAI,kBACpDA,EAAYA,EAAY,cAAmB,EAAE,EAAI,gBACjDA,EAAYA,EAAY,YAAiB,iBAAiB,EAAI,cAC9DA,EAAYA,EAAY,mBAAwB,GAAG,EAAI,qBAChDA,CACR,GAAED,IAAa,EAAE,EACjB,MAAME,GAAiB,sBAQvB,SAASC,GAAepe,EAAUpa,EAAc,CAC/C,MAAM/N,EAAUk4B,GAAO,GAAIiO,GAA0Bp4B,CAAY,EAC3Dy4B,EAAQ,GACd,IAAIj1B,EAAUvR,EAAQ,MAAQ,IAAM,GACpC,MAAMuP,EAAO,GACb,UAAWmuB,KAAWvV,EAAU,CAC/B,MAAMse,EAAgB/I,EAAQ,OAAS,GAAK,CAAC0I,GAAU,IAAI,EACvDpmC,EAAQ,QAAU,CAAC09B,EAAQ,SAAQnsB,GAAW,KAClD,QAASm1B,EAAa,EAAGA,EAAahJ,EAAQ,OAAQgJ,IAAc,CACnE,MAAMC,EAAQjJ,EAAQgJ,CAAU,EAChC,IAAIE,EAAkBR,GAAU,SAAWpmC,EAAQ,UAAYomC,GAAU,mBAAqB,GAC9F,GAAIO,EAAM,OAAS1B,GAAU,OACvByB,IAAYn1B,GAAW,KAC5BA,GAAWo1B,EAAM,MAAM,QAAQL,GAAgB,MAAM,EACrDM,GAAmBR,GAAU,eACnBO,EAAM,OAAS1B,GAAU,MAAO,CAC1C,KAAM,CAAE,MAAA52C,EAAO,WAAAw4C,EAAY,SAAAC,EAAU,OAAAC,GAAWJ,EAChDp3B,EAAK,KAAK,CACT,KAAMlhB,EACN,WAAAw4C,EACA,SAAAC,CAAA,CACA,EACD,MAAME,EAAOD,GAAkBb,GAC/B,GAAIc,IAASd,GAAoB,CAChCU,GAAmBR,GAAU,kBAC7B,GAAI,CACA,GAAAY,GACJ,OAASpyC,EAAK,CACb,MAAM,IAAI,MAAM,oCAAoCvG,CAAK,MAAM24C,CAAI,MAAQpyC,EAAI,OAAO,CACvF,CACD,CACA,IAAIqyC,EAAaJ,EAAa,OAAOG,CAAI,WAAWA,CAAI,OAAS,IAAIA,CAAI,IACpEN,IAAYO,EAAaH,GAAYpJ,EAAQ,OAAS,EAAI,OAAOuJ,CAAU,IAAM,IAAMA,GACxFH,IAAUG,GAAc,KAC5B11B,GAAW01B,EACXL,GAAmBR,GAAU,QACzBU,OAA6BV,GAAU,eACvCS,OAA+BT,GAAU,iBACzCY,IAAS,OAAMJ,GAAmBR,GAAU,cACjD,CACAK,EAAc,KAAKG,CAAe,CACnC,CACAJ,EAAM,KAAKC,CAAa,CACzB,CACA,GAAIzmC,EAAQ,QAAUA,EAAQ,IAAK,CAClC,MAAM1S,EAAIk5C,EAAM,OAAS,EACzBA,EAAMl5C,CAAC,EAAEk5C,EAAMl5C,CAAC,EAAE,OAAS,CAAC,GAAK84C,GAAU,WAC5C,CACKpmC,EAAQ,SAAQuR,GAAW,MAC5BvR,EAAQ,IAAKuR,GAAW,IACnBvR,EAAQ,QAAU,CAACuR,EAAQ,SAAS,GAAG,IAAGA,GAAW,WAC9D,MAAM21B,EAAK,IAAI,OAAO31B,EAASvR,EAAQ,UAAY,GAAK,GAAG,EAC3D,SAASmnC,EAAMjf,EAAM,CACpB,MAAMkf,EAAQlf,EAAK,MAAMgf,CAAE,EACrB7M,EAAS,GACf,GAAI,CAAC+M,EAAO,OAAO,KACnB,QAAS95C,EAAI,EAAGA,EAAI85C,EAAM,OAAQ95C,IAAK,CACtC,MAAMe,EAAQ+4C,EAAM95C,CAAC,GAAK,GACpBZ,EAAM6iB,EAAKjiB,EAAI,CAAC,EACtB+sC,EAAO3tC,EAAI,IAAI,EAAI2B,GAAS3B,EAAI,WAAa2B,EAAM,MAAM,GAAG,EAAIA,CACjE,CACA,OAAOgsC,CACR,CACA,SAASgN,EAAUhN,EAAQ,CAC1B,IAAInS,EAAO,GACPof,EAAuB,GAC3B,UAAW5J,KAAWvV,EAAU,EAC3B,CAACmf,GAAwB,CAACpf,EAAK,SAAS,GAAG,KAAGA,GAAQ,KAC1Dof,EAAuB,GACvB,UAAWX,KAASjJ,EAAS,GAAIiJ,EAAM,OAAS1B,GAAU,UAAgB0B,EAAM,cACvEA,EAAM,OAAS1B,GAAU,MAAO,CACxC,KAAM,CAAE,MAAA52C,EAAO,WAAAw4C,EAAY,SAAAC,CAAA,EAAaH,EAClCY,EAAQl5C,KAASgsC,EAASA,EAAOhsC,CAAK,EAAI,GAChD,GAAIZ,GAAQ85C,CAAK,GAAK,CAACV,QAAkB,IAAI,MAAM,mBAAmBx4C,CAAK,2DAA2D,EACtI,MAAM69B,EAAOz+B,GAAQ85C,CAAK,EAAIA,EAAM,KAAK,GAAG,EAAIA,EAChD,GAAI,CAACrb,EAAM,GAAI4a,EACVpJ,EAAQ,OAAS,IAAOxV,EAAK,SAAS,GAAG,EAAGA,EAAOA,EAAK,MAAM,EAAG,EAAE,EAClEof,EAAuB,QACtB,OAAM,IAAI,MAAM,2BAA2Bj5C,CAAK,GAAG,EAC1D65B,GAAQgE,CACT,CACD,CACA,OAAOhE,GAAQ,GAChB,CACA,MAAO,CACN,GAAAgf,EACA,MAAAV,EACA,KAAAj3B,EACA,MAAA43B,EACA,UAAAE,CAAA,CAEF,CAUA,SAASG,GAAkBl2C,EAAGC,EAAG,CAChC,IAAIjE,EAAI,EACR,KAAOA,EAAIgE,EAAE,QAAUhE,EAAIiE,EAAE,QAAQ,CACpC,MAAMk2C,EAAOl2C,EAAEjE,CAAC,EAAIgE,EAAEhE,CAAC,EACvB,GAAIm6C,EAAM,OAAOA,EACjBn6C,GACD,CACA,OAAIgE,EAAE,OAASC,EAAE,OAAeD,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM80C,GAAU,OAASA,GAAU,QAAU,GAAK,EAC9F90C,EAAE,OAASC,EAAE,OAAeA,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM60C,GAAU,OAASA,GAAU,QAAU,EAAI,GACpG,CACR,CAQA,SAASsB,GAAuBp2C,EAAGC,EAAG,CACrC,IAAIjE,EAAI,EACR,MAAMq6C,EAASr2C,EAAE,MACXs2C,EAASr2C,EAAE,MACjB,KAAOjE,EAAIq6C,EAAO,QAAUr6C,EAAIs6C,EAAO,QAAQ,CAC9C,MAAMz2B,EAAOq2B,GAAkBG,EAAOr6C,CAAC,EAAGs6C,EAAOt6C,CAAC,CAAC,EACnD,GAAI6jB,EAAM,OAAOA,EACjB7jB,GACD,CACA,GAAI,KAAK,IAAIs6C,EAAO,OAASD,EAAO,MAAM,IAAM,EAAG,CAClD,GAAIE,GAAoBF,CAAM,EAAG,MAAO,GACxC,GAAIE,GAAoBD,CAAM,EAAG,MAAO,EACzC,CACA,OAAOA,EAAO,OAASD,EAAO,MAC/B,CAOA,SAASE,GAAoBrB,EAAO,CACnC,MAAMxzC,EAAOwzC,EAAMA,EAAM,OAAS,CAAC,EACnC,OAAOA,EAAM,OAAS,GAAKxzC,EAAKA,EAAK,OAAS,CAAC,EAAI,CACpD,CACA,MAAM80C,GAA+B,CACpC,OAAQ,GACR,IAAK,GACL,UAAW,EACZ,EAIA,SAASC,GAAyB9G,EAAQ5d,EAAQrjB,EAAS,CAC1D,MAAMgoC,EAASzB,GAAehB,GAAatE,EAAO,IAAI,EAAGjhC,CAAO,EAQ1DioC,EAAU/P,GAAO8P,EAAQ,CAC9B,OAAA/G,EACA,OAAA5d,EACA,SAAU,GACV,MAAO,EAAC,CACR,EACD,OAAIA,GACC,CAAC4kB,EAAQ,OAAO,SAAY,CAAC5kB,EAAO,OAAO,SAASA,EAAO,SAAS,KAAK4kB,CAAO,EAE9EA,CACR,CAWA,SAASC,GAAoBC,EAAQC,EAAe,CACnD,MAAMC,EAAW,GACXC,MAAiC,IACvCF,EAAgBjuB,GAAa2tB,GAA8BM,CAAa,EACxE,SAASG,EAAiB13C,EAAM,CAC/B,OAAOy3C,EAAW,IAAIz3C,CAAI,CAC3B,CACA,SAAS23C,EAASvH,EAAQ5d,EAAQolB,EAAgB,CACjD,MAAMC,EAAY,CAACD,EACbE,EAAuBC,GAAqB3H,CAAM,EAExD0H,EAAqB,QAAUF,GAAkBA,EAAe,OAChE,MAAMzoC,EAAUma,GAAaiuB,EAAenH,CAAM,EAC5C4H,EAAoB,CAACF,CAAoB,EAC/C,GAAI,UAAW1H,EAAQ,CACtB,MAAM6H,EAAU,OAAO7H,EAAO,OAAU,SAAW,CAACA,EAAO,KAAK,EAAIA,EAAO,MAC3E,UAAW8H,KAASD,EAASD,EAAkB,KAAKD,GAAqB1Q,GAAO,GAAIyQ,EAAsB,CACzG,WAAYF,EAAiBA,EAAe,OAAO,WAAaE,EAAqB,WACrF,KAAMI,EACN,QAASN,EAAiBA,EAAe,OAASE,CAAA,CAClD,CAAC,CAAC,CACJ,CACA,IAAIV,EACAe,EACJ,UAAWC,KAAoBJ,EAAmB,CACjD,KAAM,CAAE,KAAA3gB,GAAS+gB,EACjB,GAAI5lB,GAAU6E,EAAK,CAAC,IAAM,IAAK,CAC9B,MAAMghB,EAAa7lB,EAAO,OAAO,KAC3B8lB,EAAkBD,EAAWA,EAAW,OAAS,CAAC,IAAM,IAAM,GAAK,IACzED,EAAiB,KAAO5lB,EAAO,OAAO,MAAQ6E,GAAQihB,EAAkBjhB,EACzE,CAgBA,GAdA+f,EAAUF,GAAyBkB,EAAkB5lB,EAAQrjB,CAAO,EAEhEyoC,EACHA,EAAe,MAAM,KAAKR,CAAO,GAGjCe,EAAkBA,GAAmBf,EACjCe,IAAoBf,GAASe,EAAgB,MAAM,KAAKf,CAAO,EAC/DS,GAAazH,EAAO,MAAQ,CAACmI,GAAcnB,CAAO,GAErDoB,EAAYpI,EAAO,IAAI,GAGrBqI,GAAYrB,CAAO,GAAGsB,EAActB,CAAO,EAC3CU,EAAqB,SAAU,CAClC,MAAMphC,EAAWohC,EAAqB,SACtC,QAASr7C,EAAI,EAAGA,EAAIia,EAAS,OAAQja,IAAKk7C,EAASjhC,EAASja,CAAC,EAAG26C,EAASQ,GAAkBA,EAAe,SAASn7C,CAAC,CAAC,CACtH,CACAm7C,EAAiBA,GAAkBR,CACpC,CACA,OAAOe,EAAkB,IAAM,CAC9BK,EAAYL,CAAe,CAC5B,EAAIzO,EACL,CACA,SAAS8O,EAAYG,EAAY,CAChC,GAAIlK,GAAYkK,CAAU,EAAG,CAC5B,MAAMvB,EAAUK,EAAW,IAAIkB,CAAU,EACrCvB,IACHK,EAAW,OAAOkB,CAAU,EAC5BnB,EAAS,OAAOA,EAAS,QAAQJ,CAAO,EAAG,CAAC,EAC5CA,EAAQ,SAAS,QAAQoB,CAAW,EACpCpB,EAAQ,MAAM,QAAQoB,CAAW,EAEnC,KAAO,CACN,MAAMlwC,EAAQkvC,EAAS,QAAQmB,CAAU,EACrCrwC,EAAQ,KACXkvC,EAAS,OAAOlvC,EAAO,CAAC,EACpBqwC,EAAW,OAAO,QAAiB,OAAOA,EAAW,OAAO,IAAI,EACpEA,EAAW,SAAS,QAAQH,CAAW,EACvCG,EAAW,MAAM,QAAQH,CAAW,EAEtC,CACD,CACA,SAASI,GAAY,CACpB,OAAOpB,CACR,CACA,SAASkB,EAActB,EAAS,CAC/B,MAAM9uC,EAAQ+J,GAAmB+kC,EAASI,CAAQ,EAClDA,EAAS,OAAOlvC,EAAO,EAAG8uC,CAAO,EAC7BA,EAAQ,OAAO,MAAQ,CAACmB,GAAcnB,CAAO,GAAGK,EAAW,IAAIL,EAAQ,OAAO,KAAMA,CAAO,CAChG,CACA,SAASv0B,EAAQkvB,EAAYzG,EAAiB,CAC7C,IAAI8L,EACA5N,EAAS,GACTnS,EACAr3B,EACJ,GAAI,SAAU+xC,GAAcA,EAAW,KAAM,CAE5C,GADAqF,EAAUK,EAAW,IAAI1F,EAAW,IAAI,EACpC,CAACqF,EAAS,MAAMvI,GAAkBH,GAAW,kBAAmB,CAAE,SAAUqD,EAAY,EAK5F/xC,EAAOo3C,EAAQ,OAAO,KACtB5N,EAASnC,GAAOwR,GAAWvN,EAAgB,OAAQ8L,EAAQ,KAAK,OAAQxO,GAAM,CAACA,EAAE,QAAQ,EAAE,OAAOwO,EAAQ,OAASA,EAAQ,OAAO,KAAK,OAAQxO,GAAMA,EAAE,QAAQ,EAAI,EAAE,EAAE,IAAKA,GAAMA,EAAE,IAAI,CAAC,EAAGmJ,EAAW,QAAU8G,GAAW9G,EAAW,OAAQqF,EAAQ,KAAK,IAAKxO,GAAMA,EAAE,IAAI,CAAC,CAAC,EAC/QvR,EAAO+f,EAAQ,UAAU5N,CAAM,CAChC,SAAWuI,EAAW,MAAQ,KAC7B1a,EAAO0a,EAAW,KAElBqF,EAAUI,EAAS,KAAMnuB,GAAMA,EAAE,GAAG,KAAKgO,CAAI,CAAC,EAC1C+f,IACH5N,EAAS4N,EAAQ,MAAM/f,CAAI,EAC3Br3B,EAAOo3C,EAAQ,OAAO,UAEjB,CAEN,GADAA,EAAU9L,EAAgB,KAAOmM,EAAW,IAAInM,EAAgB,IAAI,EAAIkM,EAAS,KAAMnuB,GAAMA,EAAE,GAAG,KAAKiiB,EAAgB,IAAI,CAAC,EACxH,CAAC8L,EAAS,MAAMvI,GAAkBH,GAAW,kBAAmB,CACnE,SAAUqD,EACV,gBAAAzG,CAAA,CACA,EACDtrC,EAAOo3C,EAAQ,OAAO,KACtB5N,EAASnC,GAAO,GAAIiE,EAAgB,OAAQyG,EAAW,MAAM,EAC7D1a,EAAO+f,EAAQ,UAAU5N,CAAM,CAChC,CACA,MAAMyH,EAAU,GAChB,IAAI6H,EAAgB1B,EACpB,KAAO0B,GACN7H,EAAQ,QAAQ6H,EAAc,MAAM,EACpCA,EAAgBA,EAAc,OAE/B,MAAO,CACN,KAAA94C,EACA,KAAAq3B,EACA,OAAAmS,EACA,QAAAyH,EACA,KAAM8H,GAAgB9H,CAAO,EAE/B,CACAqG,EAAO,QAAS9I,GAAUmJ,EAASnJ,CAAK,CAAC,EACzC,SAASwK,GAAc,CACtBxB,EAAS,OAAS,EAClBC,EAAW,OACZ,CACA,MAAO,CACN,SAAAE,EACA,QAAA90B,EACA,YAAA21B,EACA,YAAAQ,EACA,UAAAJ,EACA,iBAAAlB,CAAA,CAEF,CAOA,SAASmB,GAAWrP,EAAQ9qB,EAAM,CACjC,MAAM+qB,EAAY,GAClB,UAAW5tC,KAAO6iB,EAAU7iB,KAAO2tC,IAAQC,EAAU5tC,CAAG,EAAI2tC,EAAO3tC,CAAG,GACtE,OAAO4tC,CACR,CAOA,SAASsO,GAAqB3H,EAAQ,CACrC,MAAM7wC,EAAa,CAClB,KAAM6wC,EAAO,KACb,SAAUA,EAAO,SACjB,KAAMA,EAAO,KACb,KAAMA,EAAO,MAAQ,GACrB,QAASA,EAAO,QAChB,YAAaA,EAAO,YACpB,MAAO6I,GAAqB7I,CAAM,EAClC,SAAUA,EAAO,UAAY,GAC7B,UAAW,GACX,gBAAiC,IACjC,iBAAkC,IAClC,eAAgB,GAChB,WAAY,eAAgBA,EAASA,EAAO,YAAc,KAAOA,EAAO,WAAa,CAAE,QAASA,EAAO,UAAU,EAElH,cAAO,eAAe7wC,EAAY,OAAQ,CAAE,MAAO,GAAI,EAChDA,CACR,CAMA,SAAS05C,GAAqB7I,EAAQ,CACrC,MAAM8I,EAAc,GACdh5C,EAAQkwC,EAAO,OAAS,GAC9B,GAAI,cAAeA,EAAQ8I,EAAY,QAAUh5C,MAC5C,WAAWF,KAAQowC,EAAO,WAAY8I,EAAYl5C,CAAI,EAAI,OAAOE,GAAU,SAAWA,EAAMF,CAAI,EAAIE,EACzG,OAAOg5C,CACR,CAKA,SAASX,GAAcnI,EAAQ,CAC9B,KAAOA,GAAQ,CACd,GAAIA,EAAO,OAAO,QAAS,MAAO,GAClCA,EAASA,EAAO,MACjB,CACA,MAAO,EACR,CAMA,SAAS2I,GAAgB9H,EAAS,CACjC,OAAOA,EAAQ,OAAO,CAACkI,EAAM/I,IAAW/I,GAAO8R,EAAM/I,EAAO,IAAI,EAAG,EAAE,CACtE,CAsCA,SAAS/9B,GAAmB+kC,EAASI,EAAU,CAC9C,IAAI4B,EAAQ,EACRC,EAAQ7B,EAAS,OACrB,KAAO4B,IAAUC,GAAO,CACvB,MAAMC,EAAMF,EAAQC,GAAS,EACzBxC,GAAuBO,EAASI,EAAS8B,CAAG,CAAC,EAAI,EAAGD,EAAQC,IACnDA,EAAM,CACpB,CACA,MAAMC,EAAoBC,GAAqBpC,CAAO,EACtD,OAAImC,IACHF,EAAQ7B,EAAS,YAAY+B,EAAmBF,EAAQ,CAAC,GAGnDA,CACR,CACA,SAASG,GAAqBpC,EAAS,CACtC,IAAIqC,EAAWrC,EACf,KAAOqC,EAAWA,EAAS,QAAQ,GAAIhB,GAAYgB,CAAQ,GAAK5C,GAAuBO,EAASqC,CAAQ,IAAM,EAAG,OAAOA,CACzH,CAQA,SAAShB,GAAY,CAAE,OAAArI,GAAU,CAChC,MAAO,CAAC,EAAEA,EAAO,MAAQA,EAAO,YAAc,OAAO,KAAKA,EAAO,UAAU,EAAE,QAAUA,EAAO,SAC/F,CASA,SAASsJ,GAAQx5C,EAAO,CACvB,MAAMy5C,EAAShxB,GAAOknB,EAAS,EACzB+J,EAAejxB,GAAOmnB,EAAgB,EAGtCtB,EAAQnqC,EAAS,IAAM,CAC5B,MAAMklB,EAAKxc,EAAM7M,EAAM,EAAE,EAOzB,OAAOy5C,EAAO,QAAQpwB,CAAE,CACzB,CAAC,EACKswB,EAAoBx1C,EAAS,IAAM,CACxC,KAAM,CAAE,QAAA4sC,GAAYzC,EAAM,MACpB,CAAE,OAAAsL,GAAW7I,EACb8I,EAAe9I,EAAQ6I,EAAS,CAAC,EACjCE,EAAiBJ,EAAa,QACpC,GAAI,CAACG,GAAgB,CAACC,EAAe,OAAQ,MAAO,GACpD,MAAM1xC,EAAQ0xC,EAAe,UAAU5N,GAAkB,KAAK,KAAM2N,CAAY,CAAC,EACjF,GAAIzxC,EAAQ,GAAI,OAAOA,EACvB,MAAM2xC,EAAmBC,GAAgBjJ,EAAQ6I,EAAS,CAAC,CAAC,EAC5D,OAAOA,EAAS,GAAKI,GAAgBH,CAAY,IAAME,GAAoBD,EAAeA,EAAe,OAAS,CAAC,EAAE,OAASC,EAAmBD,EAAe,UAAU5N,GAAkB,KAAK,KAAM6E,EAAQ6I,EAAS,CAAC,CAAC,CAAC,EAAIxxC,CAChO,CAAC,EACK6xC,EAAW91C,EAAS,IAAMw1C,EAAkB,MAAQ,IAAMO,GAAeR,EAAa,OAAQpL,EAAM,MAAM,MAAM,CAAC,EACjH6L,EAAgBh2C,EAAS,IAAMw1C,EAAkB,MAAQ,IAAMA,EAAkB,QAAUD,EAAa,QAAQ,OAAS,GAAKvN,GAA0BuN,EAAa,OAAQpL,EAAM,MAAM,MAAM,CAAC,EACtM,SAAS8L,EAAS12C,EAAI,GAAI,CACzB,GAAI22C,GAAW32C,CAAC,EAAG,CAClB,MAAMwO,EAAIunC,EAAO5sC,EAAM7M,EAAM,OAAO,EAAI,UAAY,MAAM,EAAE6M,EAAM7M,EAAM,EAAE,CAAC,EAAE,MAAMwpC,EAAI,EACvF,OAAIxpC,EAAM,gBAAkB,OAAO,SAAa,KAAe,wBAAyB,UAAU,SAAS,oBAAoB,IAAMkS,CAAC,EAC/HA,CACR,CACA,OAAO,QAAQ,SAChB,CAuBA,MAAO,CACN,MAAAo8B,EACA,KAAMnqC,EAAS,IAAMmqC,EAAM,MAAM,IAAI,EACrC,SAAA2L,EACA,cAAAE,EACA,SAAAC,CAAA,CAEF,CACA,SAASE,GAAkBr2B,EAAQ,CAClC,OAAOA,EAAO,SAAW,EAAIA,EAAO,CAAC,EAAIA,CAC1C,CACA,MAAMs2B,GAAiCx9B,GAAgB,CACtD,KAAM,aACN,aAAc,CAAE,KAAM,GACtB,MAAO,CACN,GAAI,CACH,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,IAEX,QAAS,QACT,YAAa,OACb,iBAAkB,OAClB,OAAQ,QACR,iBAAkB,CACjB,KAAM,OACN,QAAS,QAEV,eAAgB,SAEjB,QAAAy8B,GACA,MAAMx5C,EAAO,CAAE,MAAA0Z,GAAS,CACvB,MAAM1W,EAAOoG,GAASowC,GAAQx5C,CAAK,CAAC,EAC9B,CAAE,QAAAiP,CAAA,EAAYwZ,GAAOknB,EAAS,EAC9B6K,EAAUr2C,EAAS,KAAO,CAC/B,CAACs2C,GAAaz6C,EAAM,YAAaiP,EAAQ,gBAAiB,oBAAoB,CAAC,EAAGjM,EAAK,SACvF,CAACy3C,GAAaz6C,EAAM,iBAAkBiP,EAAQ,qBAAsB,0BAA0B,CAAC,EAAGjM,EAAK,eACtG,EACF,MAAO,IAAM,CACZ,MAAMwT,EAAWkD,EAAM,SAAW4gC,GAAkB5gC,EAAM,QAAQ1W,CAAI,CAAC,EACvE,OAAOhD,EAAM,OAASwW,EAAWkS,GAAE,IAAK,CACvC,eAAgB1lB,EAAK,cAAgBhD,EAAM,iBAAmB,KAC9D,KAAMgD,EAAK,KACX,QAASA,EAAK,SACd,MAAOw3C,EAAQ,OACbhkC,CAAQ,CACZ,CACD,CACD,CAAC,EAIKkkC,GAAaH,GACnB,SAASF,GAAW,EAAG,CACtB,GAAI,IAAE,SAAW,EAAE,QAAU,EAAE,SAAW,EAAE,WACxC,GAAE,kBACF,IAAE,SAAW,QAAU,EAAE,SAAW,GACxC,IAAI,EAAE,eAAiB,EAAE,cAAc,aAAc,CACpD,MAAM50C,EAAS,EAAE,cAAc,aAAa,QAAQ,EACpD,GAAI,cAAc,KAAKA,CAAM,EAAG,MACjC,CACA,OAAI,EAAE,gBAAgB,EAAE,iBACjB,GACR,CACA,SAASy0C,GAAeS,EAAOC,EAAO,CACrC,UAAWj/C,KAAOi/C,EAAO,CACxB,MAAMC,EAAaD,EAAMj/C,CAAG,EACtBm/C,EAAaH,EAAMh/C,CAAG,EAC5B,GAAI,OAAOk/C,GAAe,UACzB,GAAIA,IAAeC,EAAY,MAAO,WAC5B,CAACp+C,GAAQo+C,CAAU,GAAKA,EAAW,SAAWD,EAAW,QAAUA,EAAW,KAAK,CAACv9C,EAAOf,IAAMe,IAAUw9C,EAAWv+C,CAAC,CAAC,EAAG,MAAO,EAC9I,CACA,MAAO,EACR,CAKA,SAASy9C,GAAgB9J,EAAQ,CAChC,OAAOA,EAASA,EAAO,QAAUA,EAAO,QAAQ,KAAOA,EAAO,KAAO,EACtE,CAOA,MAAMuK,GAAe,CAACM,EAAWC,EAAaC,IAAiBF,GAAgCC,GAAoCC,EAI7HC,GAAiCn+B,GAAgB,CACtD,KAAM,aACN,aAAc,GACd,MAAO,CACN,KAAM,CACL,KAAM,OACN,QAAS,WAEV,MAAO,QAER,aAAc,CAAE,KAAM,GACtB,MAAM/c,EAAO,CAAE,MAAA6rB,EAAO,MAAAnS,GAAS,CAE9B,MAAMyhC,EAAgB1yB,GAAOonB,EAAqB,EAC5CuL,EAAiBj3C,EAAS,IAAMnE,EAAM,OAASm7C,EAAc,KAAK,EAClEE,EAAgB5yB,GAAOinB,GAAc,CAAC,EACtCx/B,EAAQ/L,EAAS,IAAM,CAC5B,IAAIm3C,EAAezuC,EAAMwuC,CAAa,EACtC,KAAM,CAAE,QAAAtK,GAAYqK,EAAe,MACnC,IAAIG,EACJ,MAAQA,EAAexK,EAAQuK,CAAY,IAAM,CAACC,EAAa,YAAYD,IAC3E,OAAOA,CACR,CAAC,EACKE,EAAkBr3C,EAAS,IAAMi3C,EAAe,MAAM,QAAQlrC,EAAM,KAAK,CAAC,EAChFgY,GAAQwnB,GAAcvrC,EAAS,IAAM+L,EAAM,MAAQ,CAAC,CAAC,EACrDgY,GAAQunB,GAAiB+L,CAAe,EACxCtzB,GAAQ2nB,GAAuBuL,CAAc,EAC7C,MAAMK,EAAUlvC,GAAA,EAChB,OAAAwC,GAAM,IAAM,CACX0sC,EAAQ,MACRD,EAAgB,MAChBx7C,EAAM,MACJ,CAAC,CAAC4Q,EAAUyY,EAAIvpB,CAAI,EAAG,CAAC47C,EAAapyB,EAAMqyB,CAAO,IAAM,CACtDtyB,IACHA,EAAG,UAAUvpB,CAAI,EAAI8Q,EACjB0Y,GAAQA,IAASD,GAAMzY,GAAYA,IAAa8qC,IAC9CryB,EAAG,YAAY,OAAMA,EAAG,YAAcC,EAAK,aAC3CD,EAAG,aAAa,OAAMA,EAAG,aAAeC,EAAK,gBAGhD1Y,GAAYyY,IAAO,CAACC,GAAQ,CAAC4iB,GAAkB7iB,EAAIC,CAAI,GAAK,CAACoyB,KAAeryB,EAAG,eAAevpB,CAAI,GAAK,IAAI,QAASiL,GAAaA,EAAS6F,CAAQ,CAAC,CACxJ,EAAG,CAAE,MAAO,OAAQ,EACb,IAAM,CACZ,MAAM09B,EAAQ8M,EAAe,MACvBQ,EAAc57C,EAAM,KACpBu7C,EAAeC,EAAgB,MAC/BK,EAAgBN,GAAgBA,EAAa,WAAWK,CAAW,EACzE,GAAI,CAACC,EAAe,OAAO9tB,GAAcrU,EAAM,QAAS,CACvD,UAAWmiC,EACX,MAAAvN,CAAA,CACA,EACD,MAAMwN,EAAmBP,EAAa,MAAMK,CAAW,EACjDG,EAAaD,EAAmBA,IAAqB,GAAOxN,EAAM,OAAS,OAAOwN,GAAqB,WAAaA,EAAiBxN,CAAK,EAAIwN,EAAmB,KAIjKx5B,EAAYoG,GAAEmzB,EAAe1U,GAAO,GAAI4U,EAAYlwB,EAAO,CAChE,iBAJyB7X,GAAU,CAC/BA,EAAM,UAAU,cAAaunC,EAAa,UAAUK,CAAW,EAAI,KACxE,EAGC,IAAKH,CAAA,CACL,CAAC,EAYF,OAAO1tB,GAAcrU,EAAM,QAAS,CACnC,UAAW4I,EACX,MAAAgsB,CAAA,CACA,GAAKhsB,CACP,CACD,CACD,CAAC,EACD,SAASyL,GAAc3K,EAAMuB,EAAM,CAClC,GAAI,CAACvB,EAAM,OAAO,KAClB,MAAM44B,EAAc54B,EAAKuB,CAAI,EAC7B,OAAOq3B,EAAY,SAAW,EAAIA,EAAY,CAAC,EAAIA,CACpD,CAIA,MAAMC,GAAaf,GAsBnB,SAASgB,GAAajtC,EAAS,CAC9B,MAAMioC,EAAUC,GAAoBloC,EAAQ,OAAQA,CAAO,EACrDi8B,EAAej8B,EAAQ,YAAc8/B,GACrCnD,EAAmB38B,EAAQ,gBAAkBogC,GAC7C2E,EAAgB/kC,EAAQ,QAExBktC,EAAerM,GAAA,EACfsM,EAAsBtM,GAAA,EACtBuM,EAAcvM,GAAA,EACd4J,EAAejtC,GAAWmgC,EAAyB,EACzD,IAAI0P,EAAkB1P,GAClB1D,IAAaj6B,EAAQ,gBAAkB,sBAAuB,kBAAiB,kBAAoB,UACvG,MAAMstC,EAAkBlT,GAAc,KAAK,KAAOmT,GAAe,GAAKA,CAAU,EAC1EC,EAAepT,GAAc,KAAK,KAAMwB,EAAW,EACnD6R,EAAerT,GAAc,KAAK,KAAMyB,EAAM,EACpD,SAAS2M,EAASkF,EAAerO,GAAO,CACvC,IAAIhc,EACA4d,EACJ,OAAI3B,GAAYoO,CAAa,GAC5BrqB,EAAS4kB,EAAQ,iBAAiByF,CAAa,EAE/CzM,EAAS5B,IACH4B,EAASyM,EACTzF,EAAQ,SAAShH,EAAQ5d,CAAM,CACvC,CACA,SAASgmB,EAAYx4C,EAAM,CAC1B,MAAM88C,GAAgB1F,EAAQ,iBAAiBp3C,CAAI,EAC/C88C,IAAe1F,EAAQ,YAAY0F,EAAa,CAErD,CACA,SAASlE,GAAY,CACpB,OAAOxB,EAAQ,YAAY,IAAK2F,GAAiBA,EAAa,MAAM,CACrE,CACA,SAASC,EAASh9C,EAAM,CACvB,MAAO,CAAC,CAACo3C,EAAQ,iBAAiBp3C,CAAI,CACvC,CACA,SAAS6iB,EAAQo6B,EAAa3R,GAAiB,CAE9C,GADAA,GAAkBjE,GAAO,GAAIiE,IAAmBsO,EAAa,KAAK,EAC9D,OAAOqD,GAAgB,SAAU,CACpC,MAAMC,EAAqB/R,GAASC,EAAc6R,EAAa3R,GAAgB,IAAI,EAC7E6R,EAAiB/F,EAAQ,QAAQ,CAAE,KAAM8F,EAAmB,MAAQ5R,EAAe,EACnF8R,EAASlJ,EAAc,WAAWgJ,EAAmB,QAAQ,EAKnE,OAAO7V,GAAO6V,EAAoBC,EAAgB,CACjD,OAAQP,EAAaO,EAAe,MAAM,EAC1C,KAAMnS,GAAOkS,EAAmB,IAAI,EACpC,eAAgB,OAChB,KAAME,CAAA,CACN,CACF,CAKA,IAAIC,EACJ,GAAIJ,EAAY,MAAQ,KAEvBI,EAAkBhW,GAAO,GAAI4V,EAAa,CAAE,KAAM9R,GAASC,EAAc6R,EAAY,KAAM3R,GAAgB,IAAI,EAAE,KAAM,MACjH,CACN,MAAMgS,EAAejW,GAAO,GAAI4V,EAAY,MAAM,EAClD,UAAWphD,KAAOyhD,EAAkBA,EAAazhD,CAAG,GAAK,MAAM,OAAOyhD,EAAazhD,CAAG,EACtFwhD,EAAkBhW,GAAO,GAAI4V,EAAa,CAAE,OAAQN,EAAaW,CAAY,EAAG,EAChFhS,GAAgB,OAASqR,EAAarR,GAAgB,MAAM,CAC7D,CACA,MAAMmQ,EAAerE,EAAQ,QAAQiG,EAAiB/R,EAAe,EAC/DG,EAAOwR,EAAY,MAAQ,GAEjCxB,EAAa,OAASgB,EAAgBG,EAAanB,EAAa,MAAM,CAAC,EACvE,MAAM8B,EAAW1R,GAAaC,EAAkBzE,GAAO,GAAI4V,EAAa,CACvE,KAAMtS,GAAWc,CAAI,EACrB,KAAMgQ,EAAa,KACnB,CAAC,EACI+B,EAAOtJ,EAAc,WAAWqJ,CAAQ,EAK9C,OAAOlW,GAAO,CACb,SAAAkW,EACA,KAAA9R,EACA,MAAOK,IAAqByD,GAAiBE,GAAewN,EAAY,KAAK,EAAIA,EAAY,OAAS,EAAC,EACrGxB,EAAc,CAChB,eAAgB,OAChB,KAAA+B,CAAA,CACA,CACF,CACA,SAASC,EAAiBl0B,EAAI,CAC7B,OAAO,OAAOA,GAAO,SAAW4hB,GAASC,EAAc7hB,EAAIqwB,EAAa,MAAM,IAAI,EAAIvS,GAAO,GAAI9d,CAAE,CACpG,CACA,SAASm0B,EAAwBn0B,EAAIC,GAAM,CAC1C,GAAIgzB,IAAoBjzB,EAAI,OAAOslB,GAAkBH,GAAW,qBAAsB,CACrF,KAAAllB,GACA,GAAAD,CAAA,CACA,CACF,CACA,SAASoqB,EAAKpqB,EAAI,CACjB,OAAOo0B,EAAiBp0B,CAAE,CAC3B,CACA,SAAS6oB,EAAQ7oB,EAAI,CACpB,OAAOoqB,EAAKtM,GAAOoW,EAAiBl0B,CAAE,EAAG,CAAE,QAAS,GAAM,CAAC,CAC5D,CACA,SAASq0B,EAAqBr0B,EAAIC,GAAM,CACvC,MAAMq0B,EAAct0B,EAAG,QAAQA,EAAG,QAAQ,OAAS,CAAC,EACpD,GAAIs0B,GAAeA,EAAY,SAAU,CACxC,KAAM,CAAE,SAAAC,GAAaD,EACrB,IAAIE,EAAoB,OAAOD,GAAa,WAAaA,EAASv0B,EAAIC,EAAI,EAAIs0B,EAC9E,OAAI,OAAOC,GAAsB,WAChCA,EAAoBA,EAAkB,SAAS,GAAG,GAAKA,EAAkB,SAAS,GAAG,EAAIA,EAAoBN,EAAiBM,CAAiB,EAAI,CAAE,KAAMA,CAAA,EAC3JA,EAAkB,OAAS,IAMrB1W,GAAO,CACb,MAAO9d,EAAG,MACV,KAAMA,EAAG,KACT,OAAQw0B,EAAkB,MAAQ,KAAO,GAAKx0B,EAAG,QAC/Cw0B,CAAiB,CACrB,CACD,CACA,SAASJ,EAAiBp0B,EAAIy0B,GAAgB,CAC7C,MAAMC,EAAiBzB,EAAkB35B,EAAQ0G,CAAE,EAC7CC,EAAOowB,EAAa,MACpB/0B,EAAO0E,EAAG,MACV20B,EAAQ30B,EAAG,MACXiqB,EAAYjqB,EAAG,UAAY,GAC3B40B,EAAiBP,EAAqBK,EAAgBz0B,CAAI,EAChE,GAAI20B,EAAgB,OAAOR,EAAiBtW,GAAOoW,EAAiBU,CAAc,EAAG,CACpF,MAAO,OAAOA,GAAmB,SAAW9W,GAAO,GAAIxiB,EAAMs5B,EAAe,KAAK,EAAIt5B,EACrF,MAAAq5B,EACA,QAAS1K,CAAA,CACT,EAAGwK,IAAkBC,CAAc,EACpC,MAAMG,EAAaH,EACnBG,EAAW,eAAiBJ,GAC5B,IAAIK,EACJ,MAAI,CAACH,GAASjS,GAAoBH,EAAkBtiB,EAAMy0B,CAAc,IACvEI,EAAUxP,GAAkBH,GAAW,sBAAuB,CAC7D,GAAI0P,EACJ,KAAA50B,CAAA,CACA,EACD80B,GAAa90B,EAAMA,EAAM,GAAM,EAAK,IAE7B60B,EAAU,QAAQ,QAAQA,CAAO,EAAI/D,EAAS8D,EAAY50B,CAAI,GAAG,MAAO1lB,GAAUgrC,GAAoBhrC,CAAK,EAAIgrC,GAAoBhrC,EAAO4qC,GAAW,yBAAyB,EAAI5qC,EAAQy6C,GAAYz6C,CAAK,EAAI06C,GAAa16C,EAAOs6C,EAAY50B,CAAI,CAAC,EAAE,KAAMi1B,GAAc,CACjR,GAAIA,GACH,GAAI3P,GAAoB2P,EAAW/P,GAAW,yBAAyB,EAKtE,OAAOiP,EAAiBtW,GAAO,CAAE,QAASmM,GAAaiK,EAAiBgB,EAAU,EAAE,EAAG,CACtF,MAAO,OAAOA,EAAU,IAAO,SAAWpX,GAAO,GAAIxiB,EAAM45B,EAAU,GAAG,KAAK,EAAI55B,EACjF,MAAAq5B,CAAA,CACA,EAAGF,IAAkBI,CAAU,OAE3BK,EAAYC,EAAmBN,EAAY50B,EAAM,GAAMgqB,EAAW3uB,CAAI,EAC7E,OAAA85B,EAAiBP,EAAY50B,EAAMi1B,CAAS,EACrCA,CACR,CAAC,CACF,CAMA,SAASG,EAAiCr1B,EAAIC,GAAM,CACnD,MAAM1lB,EAAQ45C,EAAwBn0B,EAAIC,EAAI,EAC9C,OAAO1lB,EAAQ,QAAQ,OAAOA,CAAK,EAAI,QAAQ,SAChD,CACA,SAAS4sC,EAAe5yC,EAAI,CAC3B,MAAMgtB,GAAM+zB,GAAc,SAAS,OAAO,MAC1C,OAAO/zB,IAAO,OAAOA,GAAI,gBAAmB,WAAaA,GAAI,eAAehtB,CAAE,EAAIA,EAAA,CACnF,CACA,SAASw8C,EAAS/wB,EAAIC,GAAM,CAC3B,IAAI2nB,EACJ,KAAM,CAACK,EAAgBC,EAAiBC,CAAe,EAAIH,GAAuBhoB,EAAIC,EAAI,EAC1F2nB,EAASH,GAAwBQ,EAAe,UAAW,mBAAoBjoB,EAAIC,EAAI,EACvF,UAAW4mB,KAAUoB,EAAgBpB,EAAO,YAAY,QAAS5H,GAAU,CAC1E2I,EAAO,KAAKV,GAAiBjI,EAAOjf,EAAIC,EAAI,CAAC,CAC9C,CAAC,EACD,MAAMs1B,EAA0BF,EAAiC,KAAK,KAAMr1B,EAAIC,EAAI,EACpF,OAAA2nB,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,EAAE,KAAK,IAAM,CACvCA,EAAS,GACT,UAAW3I,KAAS6T,EAAa,OAAQlL,EAAO,KAAKV,GAAiBjI,EAAOjf,EAAIC,EAAI,CAAC,EACtF,OAAA2nB,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,CAC5B,CAAC,EAAE,KAAK,IAAM,CACbA,EAASH,GAAwBS,EAAiB,oBAAqBloB,EAAIC,EAAI,EAC/E,UAAW4mB,KAAUqB,EAAiBrB,EAAO,aAAa,QAAS5H,GAAU,CAC5E2I,EAAO,KAAKV,GAAiBjI,EAAOjf,EAAIC,EAAI,CAAC,CAC9C,CAAC,EACD,OAAA2nB,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,CAC5B,CAAC,EAAE,KAAK,IAAM,CACbA,EAAS,GACT,UAAWf,KAAUsB,EAAiB,GAAItB,EAAO,YAAa,GAAIxzC,GAAQwzC,EAAO,WAAW,YAAc4O,KAAe5O,EAAO,YAAae,EAAO,KAAKV,GAAiBuO,EAAaz1B,EAAIC,EAAI,CAAC,SACpL,KAAKinB,GAAiBL,EAAO,YAAa7mB,EAAIC,EAAI,CAAC,EAC/D,OAAA2nB,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,CAC5B,CAAC,EAAE,KAAK,KACP5nB,EAAG,QAAQ,QAAS6mB,GAAWA,EAAO,eAAiB,EAAE,EACzDe,EAASH,GAAwBU,EAAiB,mBAAoBnoB,EAAIC,GAAMknB,CAAc,EAC9FS,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,EAC3B,EAAE,KAAK,IAAM,CACbA,EAAS,GACT,UAAW3I,KAAS8T,EAAoB,OAAQnL,EAAO,KAAKV,GAAiBjI,EAAOjf,EAAIC,EAAI,CAAC,EAC7F,OAAA2nB,EAAO,KAAK2N,CAAuB,EAC5BC,GAAc5N,CAAM,CAC5B,CAAC,EAAE,MAAOptC,GAAQ+qC,GAAoB/qC,EAAK2qC,GAAW,oBAAoB,EAAI3qC,EAAM,QAAQ,OAAOA,CAAG,CAAC,CACxG,CACA,SAAS46C,EAAiBp1B,EAAIC,GAAM60B,EAAS,CAC5C9B,EAAY,OAAO,QAAS/T,GAAUkI,EAAe,IAAMlI,EAAMjf,EAAIC,GAAM60B,CAAO,CAAC,CAAC,CACrF,CAMA,SAASK,EAAmBN,EAAY50B,GAAMy1B,EAAQzL,EAAW3uB,EAAM,CACtE,MAAM/gB,EAAQ45C,EAAwBU,EAAY50B,EAAI,EACtD,GAAI1lB,EAAO,OAAOA,EAClB,MAAMo7C,EAAoB11B,KAASsjB,GAC7B1zB,EAASgwB,GAAiB,QAAQ,MAAb,GACvB6V,IAAYzL,GAAa0L,EAAmBhL,EAAc,QAAQkK,EAAW,SAAU/W,GAAO,CAAE,OAAQ6X,GAAqB9lC,GAASA,EAAM,QAAUyL,CAAI,CAAC,EAC1JqvB,EAAc,KAAKkK,EAAW,SAAUv5B,CAAI,GACjD+0B,EAAa,MAAQwE,EACrBE,GAAaF,EAAY50B,GAAMy1B,EAAQC,CAAiB,EACxDX,GAAA,CACD,CACA,IAAIY,EACJ,SAASC,IAAiB,CACrBD,IACJA,EAAwBjL,EAAc,OAAO,CAAC3qB,EAAI81B,GAAOC,IAAS,CACjE,GAAI,CAAC3F,GAAO,UAAW,OACvB,MAAMyE,EAAav7B,EAAQ0G,CAAE,EACvB40B,EAAiBP,EAAqBQ,EAAYzE,GAAO,aAAa,KAAK,EACjF,GAAIwE,EAAgB,CACnBR,EAAiBtW,GAAO8W,EAAgB,CACvC,QAAS,GACT,MAAO,GACP,EAAGC,CAAU,EAAE,MAAM1U,EAAI,EAC1B,MACD,CACA8S,EAAkB4B,EAClB,MAAM50B,EAAOowB,EAAa,MACtBxQ,OAA8B4E,GAAaxkB,EAAK,SAAU81B,EAAK,KAAK,EAAG3R,IAAuB,EAClG2M,EAAS8D,EAAY50B,CAAI,EAAE,MAAO1lB,GAC7BgrC,GAAoBhrC,EAAO4qC,GAAW,mBAAqBA,GAAW,oBAAoB,EAAU5qC,EACpGgrC,GAAoBhrC,EAAO4qC,GAAW,yBAAyB,GAClEiP,EAAiBtW,GAAOoW,EAAiB35C,EAAM,EAAE,EAAG,CAAE,MAAO,GAAM,EAAGs6C,CAAU,EAAE,KAAMC,GAAY,CAC/FvP,GAAoBuP,EAAS3P,GAAW,mBAAqBA,GAAW,qBAAqB,GAAK,CAAC4Q,EAAK,OAASA,EAAK,OAASvS,GAAe,KAAKmH,EAAc,GAAG,GAAI,EAAK,CAClL,CAAC,EAAE,MAAMxK,EAAI,EACN,QAAQ,WAEZ4V,EAAK,OAAOpL,EAAc,GAAG,CAACoL,EAAK,MAAO,EAAK,EAC5Cd,GAAa16C,EAAOs6C,EAAY50B,CAAI,EAC3C,EAAE,KAAM60B,GAAY,CACpBA,EAAUA,GAAWK,EAAmBN,EAAY50B,EAAM,EAAK,EAC3D60B,IACCiB,EAAK,OAAS,CAACxQ,GAAoBuP,EAAS3P,GAAW,oBAAoB,EAAGwF,EAAc,GAAG,CAACoL,EAAK,MAAO,EAAK,EAC5GA,EAAK,OAASvS,GAAe,KAAO+B,GAAoBuP,EAAS3P,GAAW,mBAAqBA,GAAW,qBAAqB,GAAGwF,EAAc,GAAG,GAAI,EAAK,GAExKyK,EAAiBP,EAAY50B,EAAM60B,CAAO,CAC3C,CAAC,EAAE,MAAM3U,EAAI,CACd,CAAC,EACF,CACA,IAAI6V,GAAgBvP,GAAA,EAChBwP,GAAiBxP,GAAA,EACjByP,EASJ,SAASjB,GAAa16C,EAAOylB,GAAIC,EAAM,CACtC+0B,GAAYz6C,CAAK,EACjB,MAAM47C,EAAOF,GAAe,OAC5B,OAAIE,EAAK,OAAQA,EAAK,QAAS52B,GAAYA,EAAQhlB,EAAOylB,GAAIC,CAAI,CAAC,EAGlE,QAAQ,MAAM1lB,CAAK,EAEb,QAAQ,OAAOA,CAAK,CAC5B,CACA,SAAS67C,IAAU,CAClB,OAAIF,GAAS7F,EAAa,QAAU9M,GAAkC,QAAQ,UACvE,IAAI,QAAQ,CAAC8S,EAAWhP,KAAW,CACzC2O,GAAc,IAAI,CAACK,EAAWhP,EAAM,CAAC,CACtC,CAAC,CACF,CACA,SAAS2N,GAAYx6C,EAAK,CACzB,OAAK07C,IACJA,EAAQ,CAAC17C,EACTq7C,GAAA,EACAG,GAAc,OAAO,QAAQ,CAAC,CAACK,GAAWhP,CAAM,IAAM7sC,EAAM6sC,EAAO7sC,CAAG,EAAI67C,IAAW,EACrFL,GAAc,SAERx7C,CACR,CACA,SAASu6C,GAAa/0B,EAAIC,GAAMy1B,EAAQC,EAAmB,CAC1D,KAAM,CAAE,eAAAW,GAAmB1wC,EAC3B,GAAI,CAACi6B,IAAa,CAACyW,EAAgB,OAAO,QAAQ,UAClD,MAAMzR,EAAiB,CAAC6Q,GAAU5Q,GAAuBL,GAAazkB,EAAG,SAAU,CAAC,CAAC,IAAM21B,GAAqB,CAACD,IAAW,QAAQ,OAAS,QAAQ,MAAM,QAAU,KACrK,OAAO9sC,GAAA,EAAW,KAAK,IAAM0tC,EAAet2B,EAAIC,GAAM4kB,CAAc,CAAC,EAAE,KAAMzB,GAAaA,GAAYiB,GAAiBjB,CAAQ,CAAC,EAAE,MAAO5oC,GAAQy6C,GAAaz6C,EAAKwlB,EAAIC,EAAI,CAAC,CAC7K,CACA,MAAMwqB,GAAM/F,GAAUiG,EAAc,GAAGjG,CAAK,EAC5C,IAAI6R,GACJ,MAAMjB,OAAoC,IACpClF,GAAS,CACd,aAAAC,EACA,UAAW,GACX,SAAAjC,EACA,YAAAa,EACA,YAAapB,EAAQ,YACrB,SAAA4F,EACA,UAAApE,EACA,QAAA/1B,EACA,QAAA1T,EACA,KAAAwkC,EACA,QAAAvB,EACA,GAAA4B,GACA,KAAM,IAAMA,GAAG,EAAE,EACjB,QAAS,IAAMA,GAAG,CAAC,EACnB,WAAYqI,EAAa,IACzB,cAAeC,EAAoB,IACnC,UAAWC,EAAY,IACvB,QAASiD,GAAe,IACxB,QAAAG,GACA,QAAQ70B,EAAK,CACZA,EAAI,UAAU,aAAc8vB,EAAU,EACtC9vB,EAAI,UAAU,aAAcqxB,EAAU,EACtCrxB,EAAI,OAAO,iBAAiB,QAAU6uB,GACtC,OAAO,eAAe7uB,EAAI,OAAO,iBAAkB,SAAU,CAC5D,WAAY,GACZ,IAAK,IAAM/d,EAAM6sC,CAAY,EAC7B,EACGxQ,IAAa,CAAC0W,IAAWlG,EAAa,QAAU9M,KACnDgT,GAAU,GACVnM,EAAKO,EAAc,QAAQ,EAAE,MAAOnwC,GAAQ,CAE5C,CAAC,GAEF,MAAMg8C,GAAgB,GACtB,UAAWlkD,KAAOixC,GAA2B,OAAO,eAAeiT,GAAelkD,EAAK,CACtF,IAAK,IAAM+9C,EAAa,MAAM/9C,CAAG,EACjC,WAAY,GACZ,EACDivB,EAAI,QAAQ+kB,GAAW8J,EAAM,EAC7B7uB,EAAI,QAAQglB,GAAkBhkC,GAAgBi0C,EAAa,CAAC,EAC5Dj1B,EAAI,QAAQilB,GAAuB6J,CAAY,EAC/C,MAAMoG,EAAal1B,EAAI,QACvB+zB,GAAc,IAAI/zB,CAAG,EACrBA,EAAI,QAAU,UAAW,CACxB+zB,GAAc,OAAO/zB,CAAG,EACpB+zB,GAAc,KAAO,IACxBrC,EAAkB1P,GAClBqS,GAAyBA,EAAA,EACzBA,EAAwB,KACxBvF,EAAa,MAAQ9M,GACrBgT,GAAU,GACVL,EAAQ,IAETO,EAAA,CACD,CAED,GAED,SAASjB,GAAc5N,EAAQ,CAC9B,OAAOA,EAAO,OAAO,CAAC8O,GAASzX,IAAUyX,GAAQ,KAAK,IAAMvP,EAAelI,CAAK,CAAC,EAAG,QAAQ,SAAS,CACtG,CACA,OAAOmR,EACR,CAQA,SAASuG,IAAY,CACpB,OAAOv3B,GAAOknB,EAAS,CACxB,CAKA,SAASsQ,GAASC,EAAO,CACxB,OAAOz3B,GAAOmnB,EAAgB,CAC/B,wZCzgDA,MAAMnxB,EAAU0hC,GAAmBC,EAAA,YAAgB,gBAIjDC,EAAA,EAAAC,EAaM,MAbNC,GAaM,CAZJC,EAWM,MAXNC,GAWM,CAVJC,EAAA,KAAAA,EAAA,GAAAF,EAAoD,SAA7C,MAAM,iBAAgB,kBAAe,KAC5CA,EAGS,SAHTG,GAGS,CAFJC,GAAAC,GAAApiC,EAAA,KAAO,EAAG,IACb,eAAA+hC,EAAsB,QAAhB,MAAM,SAAO,YAErBA,EAIK,KAJLM,GAIK,QAHHR,EAEKS,GAAA,KAAAC,GAFgBZ,EAAA,QAAVrY,QAAXuY,EAEK,MAF0B,IAAKvY,GAAM,CACxCyY,EAA8D,KAA1D,QAAKS,GAAAC,GAAUziC,EAAA,MAAUspB,EAAM,aAAE,KAAK,QAAOA,CAAM,IAAAoZ,EAAA,meClBjE,MAAMnhD,EAAQogD,EASRgB,EAAajB,GAAmBC,EAAA,YAAmB,EAEnDiB,EAAgBl9C,EAAS,IACtB,KAAK,KAAKnE,EAAM,WAAaA,EAAM,YAAY,CACvD,EAEKshD,EAAiBn9C,EAAS,IACvBk9C,EAAc,MAAQ,CAC9B,EAEKE,EAAmBp9C,EAAS,IAAMnE,EAAM,WAAa,CAAC,EAE5D+O,GAAMsyC,EAAgBx7C,GAAa,CAC7BA,EAAWu7C,EAAW,QACxBA,EAAW,MAAQ,EAEvB,CAAC,EAWD,MAAMI,EAAQr9C,EAAS,IAAM,CAC3B,MAAMq9C,EAAoB,GAC1BA,EAAM,KAAK,CACT,MAAO,WACP,KAAM,KAAK,IAAIJ,EAAW,MAAQ,EAAG,CAAC,EACtC,IAAK,gBACL,MAAO,CACL,SAAUA,EAAW,QAAU,EACjC,CACD,EAEGA,EAAW,MAAQphD,EAAM,WAAa,GAAKqhD,EAAc,OAASE,EAAiB,OACrFC,EAAM,KACJ,CACE,MAAO,IACP,KAAM,EACN,IAAK,cAEP,CACE,MAAO,MACP,KAAMJ,EAAW,MAAQphD,EAAM,WAC/B,IAAK,QAAQA,EAAM,UAAU,GAC/B,EAIJ,IAAIyhD,EAAaL,EAAW,MAAQphD,EAAM,WACtC0hD,EAAWN,EAAW,MAAQphD,EAAM,WACpCyhD,EAAa,IAEfC,GAAYD,EACZA,EAAa,GAGf,IAAIE,EAAU,GACVD,GAAYL,EAAc,QAC5BK,EAAWL,EAAc,MACzBM,EAAU,IAIZ,QAAS7iD,EAAI2iD,EAAY3iD,GAAK4iD,EAAU5iD,IACtC0iD,EAAM,KAAK,CACT,MAAO,GAAG1iD,CAAC,GACX,KAAMA,EACN,IAAK,QAAQA,CAAC,GACd,MAAO,CACL,OAAQA,IAAMsiD,EAAW,MAC3B,CACD,EAGH,OAAKO,GACHH,EAAM,KACJ,CACE,MAAO,MACP,KAAMJ,EAAW,MAAQphD,EAAM,WAC/B,IAAK,WAAWA,EAAM,UAAU,IAElC,CACE,MAAO,GAAGqhD,EAAc,KAAK,GAC7B,KAAMA,EAAc,MACpB,IAAK,YACP,EAIJG,EAAM,KAAK,CACT,MAAO,OACP,KAAM,KAAK,IAAIJ,EAAW,MAAQ,EAAGC,EAAc,KAAK,EACxD,IAAK,YACL,MAAO,CACL,SAAUD,EAAW,QAAUC,EAAc,MAC/C,CACD,EAEMG,CACT,CAAC,eAIYF,EAAA,OAAXjB,EAAA,EAAAC,EAMM,MANNC,GAMM,CALJC,EAIK,KAJLC,GAIK,QAHHH,EAEKS,GAAA,KAAAC,GAFcQ,EAAA,MAARI,QAAXtB,EAEK,MAFqB,MAAM,YAAa,IAAKsB,EAAK,MACrDpB,EAAkM,UAAzL,eAAcoB,EAAK,OAAO,OAAS,SAAUA,EAAK,OAAO,SAAW,aAAYA,EAAK,IAAK,MAAKC,GAAA,CAAC,YAAoDD,EAAK,KAAK,GAAjD,QAAKV,GAAEE,EAAA,MAAaQ,EAAK,MAA6Bf,GAAAe,EAAK,KAAK,KAAAjB,EAAA,yEC7G9L,IAAImB,GAQJ,MAAMC,GAAkBC,GAAWF,GAAcE,EAc3CC,GAAsG,SAE5G,SAASzkD,GAET0kD,EAAG,CACC,OAAQA,GACJ,OAAOA,GAAM,UACb,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,mBACtC,OAAOA,EAAE,QAAW,UAC5B,CAMA,IAAIC,IACH,SAAUA,EAAc,CAQrBA,EAAa,OAAY,SAMzBA,EAAa,YAAiB,eAM9BA,EAAa,cAAmB,gBAEpC,GAAGA,KAAiBA,GAAe,GAAG,EAm5BtC,SAASC,IAAc,CACnB,MAAMjyC,EAAQjO,GAAY,EAAI,EAGxBgX,EAAQ/I,EAAM,IAAI,IAAM5D,GAAI,EAAE,CAAC,EACrC,IAAI81C,EAAK,GAELC,EAAgB,GACpB,MAAMN,EAAQ31C,GAAQ,CAClB,QAAQue,EAAK,CAGTm3B,GAAeC,CAAK,EACpBA,EAAM,GAAKp3B,EACXA,EAAI,QAAQq3B,GAAaD,CAAK,EAC9Bp3B,EAAI,OAAO,iBAAiB,OAASo3B,EAKrCM,EAAc,QAASx3B,GAAWu3B,EAAG,KAAKv3B,CAAM,CAAC,EACjDw3B,EAAgB,EACpB,EACA,IAAIx3B,EAAQ,CACR,OAAK,KAAK,GAINu3B,EAAG,KAAKv3B,CAAM,EAHdw3B,EAAc,KAAKx3B,CAAM,EAKtB,IACX,EACA,GAAAu3B,EAGA,GAAI,KACJ,GAAIlyC,EACJ,OAAQ,IACR,MAAA+I,CAAA,CACH,EAMD,OAAO8oC,CACX,CA4GA,MAAMxY,GAAO,IAAM,CAAE,EACrB,SAAS+Y,GAAgBC,EAAez3C,EAAUlJ,EAAU4gD,EAAYjZ,GAAM,CAC1EgZ,EAAc,IAAIz3C,CAAQ,EAC1B,MAAM23C,EAAqB,IAAM,CACfF,EAAc,OAAOz3C,CAAQ,GAClC03C,EAAA,CACb,EACA,MAAI,CAAC5gD,GAAYM,MACbC,GAAesgD,CAAkB,EAE9BA,CACX,CACA,SAASC,GAAqBH,KAAkBx7C,EAAM,CAClDw7C,EAAc,QAASz3C,GAAa,CAChCA,EAAS,GAAG/D,CAAI,CACpB,CAAC,CACL,CAEA,MAAM47C,GAA0BhlD,GAAOA,EAAA,EAKjCilD,GAAgB,SAKhBC,GAAc,SACpB,SAASC,GAAqBt9C,EAAQu9C,EAAc,CAE5Cv9C,aAAkB,KAAOu9C,aAAwB,IACjDA,EAAa,QAAQ,CAAC1lD,EAAO3B,IAAQ8J,EAAO,IAAI9J,EAAK2B,CAAK,CAAC,EAEtDmI,aAAkB,KAAOu9C,aAAwB,KAEtDA,EAAa,QAAQv9C,EAAO,IAAKA,CAAM,EAG3C,UAAW9J,KAAOqnD,EAAc,CAC5B,GAAI,CAACA,EAAa,eAAernD,CAAG,EAChC,SACJ,MAAMsnD,EAAWD,EAAarnD,CAAG,EAC3BunD,EAAcz9C,EAAO9J,CAAG,EAC1B6B,GAAc0lD,CAAW,GACzB1lD,GAAcylD,CAAQ,GACtBx9C,EAAO,eAAe9J,CAAG,GACzB,CAACuF,GAAM+hD,CAAQ,GACf,CAAC72C,GAAW62C,CAAQ,EAIpBx9C,EAAO9J,CAAG,EAAIonD,GAAqBG,EAAaD,CAAQ,EAIxDx9C,EAAO9J,CAAG,EAAIsnD,CAEtB,CACA,OAAOx9C,CACX,CACA,MAAM09C,GAE2B,SAiBjC,SAASC,GAAczkD,EAAK,CACxB,MAAQ,CAACnB,GAAcmB,CAAG,GACtB,CAAC,OAAO,UAAU,eAAe,KAAKA,EAAKwkD,EAAiB,CACpE,CACA,KAAM,CAAE,OAAAhc,IAAW,OACnB,SAAS5jC,GAAW2+C,EAAG,CACnB,MAAO,CAAC,EAAEhhD,GAAMghD,CAAC,GAAKA,EAAE,OAC5B,CACA,SAASmB,GAAmBjxC,EAAInD,EAAS+yC,EAAOsB,EAAK,CACjD,KAAM,CAAE,MAAApqC,EAAO,QAAAqqC,EAAS,QAAAC,CAAA,EAAYv0C,EAC9Bw0C,EAAezB,EAAM,MAAM,MAAM5vC,CAAE,EACzC,IAAIsxC,EACJ,SAASnnB,GAAQ,CACRknB,IAEDzB,EAAM,MAAM,MAAM5vC,CAAE,EAAI8G,EAAQA,EAAA,EAAU,IAG9C,MAAMyqC,EAGAl2C,GAAOu0C,EAAM,MAAM,MAAM5vC,CAAE,CAAC,EAClC,OAAO+0B,GAAOwc,EAAYJ,EAAS,OAAO,KAAKC,GAAW,EAAE,EAAE,OAAO,CAACI,EAAiB9jD,KAInF8jD,EAAgB9jD,CAAI,EAAIuM,GAAQlI,EAAS,IAAM,CAC3C49C,GAAeC,CAAK,EAEpB,MAAM0B,EAAQ1B,EAAM,GAAG,IAAI5vC,CAAE,EAK7B,OAAOoxC,EAAQ1jD,CAAI,EAAE,KAAK4jD,EAAOA,CAAK,CAC1C,CAAC,CAAC,EACKE,GACR,EAAE,CAAC,CACV,CACA,OAAAF,EAAQG,GAAiBzxC,EAAImqB,EAAOttB,EAAS+yC,EAAOsB,EAAK,EAAI,EACtDI,CACX,CACA,SAASG,GAAiBC,EAAKvnB,EAAOttB,EAAU,GAAI+yC,EAAOsB,EAAKS,EAAgB,CAC5E,IAAI5zC,EACJ,MAAM6zC,EAAmB7c,GAAO,CAAE,QAAS,EAAC,EAAKl4B,CAAO,EAMlDg1C,EAAoB,CAAE,KAAM,IAsBlC,IAAIC,EACAC,EACA3B,MAAoB,IACpB4B,MAA0B,IAC1BC,EACJ,MAAMZ,EAAezB,EAAM,MAAM,MAAM8B,CAAG,EAGtC,CAACC,GAAkB,CAACN,IAEpBzB,EAAM,MAAM,MAAM8B,CAAG,EAAI,IAEZv3C,GAAI,EAAE,EAGvB,IAAI+3C,EACJ,SAASC,EAAOC,EAAuB,CACnC,IAAIC,EACJP,EAAcC,EAAkB,GAM5B,OAAOK,GAA0B,YACjCA,EAAsBxC,EAAM,MAAM,MAAM8B,CAAG,CAAC,EAC5CW,EAAuB,CACnB,KAAMtC,GAAa,cACnB,QAAS2B,EACT,OAAQO,CAAA,IAIZtB,GAAqBf,EAAM,MAAM,MAAM8B,CAAG,EAAGU,CAAqB,EAClEC,EAAuB,CACnB,KAAMtC,GAAa,YACnB,QAASqC,EACT,QAASV,EACT,OAAQO,CAAA,GAGhB,MAAMK,EAAgBJ,EAAiB,SACvCryC,GAAA,EAAW,KAAK,IAAM,CACdqyC,IAAmBI,IACnBR,EAAc,GAEtB,CAAC,EACDC,EAAkB,GAElBxB,GAAqBH,EAAeiC,EAAsBzC,EAAM,MAAM,MAAM8B,CAAG,CAAC,CACpF,CACA,MAAMa,EAASZ,EACT,UAAkB,CAChB,KAAM,CAAE,MAAA7qC,GAAUjK,EACZ21C,EAAW1rC,EAAQA,EAAA,EAAU,GAEnC,KAAK,OAAQ2rC,GAAW,CAEpB1d,GAAO0d,EAAQD,CAAQ,CAC3B,CAAC,CACL,EAMUpb,GACd,SAASsb,GAAW,CAChB30C,EAAM,OACNqyC,EAAc,QACd4B,EAAoB,QACpBpC,EAAM,GAAG,OAAO8B,CAAG,CACvB,CAMA,MAAMiB,EAAS,CAACnnD,EAAIkC,EAAO,KAAO,CAC9B,GAAI+iD,MAAiBjlD,EACjB,OAAAA,EAAGklD,EAAW,EAAIhjD,EACXlC,EAEX,MAAMonD,EAAgB,UAAY,CAC9BjD,GAAeC,CAAK,EACpB,MAAMh7C,EAAO,MAAM,KAAK,SAAS,EAC3Bi+C,MAAuB,IACvBC,MAAyB,IAC/B,SAASC,GAAMp6C,EAAU,CACrBk6C,EAAiB,IAAIl6C,CAAQ,CACjC,CACA,SAASq6C,GAAQr6C,EAAU,CACvBm6C,EAAmB,IAAIn6C,CAAQ,CACnC,CAEA43C,GAAqByB,EAAqB,CACtC,KAAAp9C,EACA,KAAMg+C,EAAclC,EAAW,EAC/B,MAAAY,EACA,MAAAyB,GACA,QAAAC,EAAA,CACH,EACD,IAAIzlD,GACJ,GAAI,CACAA,GAAM/B,EAAG,MAAM,MAAQ,KAAK,MAAQkmD,EAAM,KAAOJ,EAAO18C,CAAI,CAEhE,OACOpD,EAAO,CACV,MAAA++C,GAAqBuC,EAAoBthD,CAAK,EACxCA,CACV,CACA,OAAIjE,cAAe,QACRA,GACF,KAAMrC,IACPqlD,GAAqBsC,EAAkB3nD,CAAK,EACrCA,EACV,EACI,MAAOsG,IACR++C,GAAqBuC,EAAoBthD,CAAK,EACvC,QAAQ,OAAOA,CAAK,EAC9B,GAGL++C,GAAqBsC,EAAkBtlD,EAAG,EACnCA,GACX,EACA,OAAAqlD,EAAcnC,EAAa,EAAI,GAC/BmC,EAAclC,EAAW,EAAIhjD,EAGtBklD,CACX,EAOMK,EAAe,CACjB,GAAIrD,EAEJ,IAAA8B,EACA,UAAWvB,GAAgB,KAAK,KAAM6B,CAAmB,EACzD,OAAAG,EACA,OAAAI,EACA,WAAW55C,EAAUkE,EAAU,GAAI,CAC/B,MAAMyzC,EAAqBH,GAAgBC,EAAez3C,EAAUkE,EAAQ,SAAU,IAAMq2C,GAAa,EACnGA,EAAcn1C,EAAM,IAAI,IAAMpB,GAAM,IAAMizC,EAAM,MAAM,MAAM8B,CAAG,EAAI5qC,GAAU,EAC3EjK,EAAQ,QAAU,OAASk1C,EAAkBD,IAC7Cn5C,EAAS,CACL,QAAS+4C,EACT,KAAM3B,GAAa,OACnB,OAAQkC,CAAA,EACTnrC,CAAK,CAEhB,EAAGiuB,GAAO,GAAI8c,EAAmBh1C,CAAO,CAAC,CAAC,EAC1C,OAAOyzC,CACX,EACA,SAAAoC,CAAA,EAEEpB,EAAQt6C,GAQRi8C,CAAY,EAGlBrD,EAAM,GAAG,IAAI8B,EAAKJ,CAAK,EAGvB,MAAM6B,GAFkBvD,EAAM,IAAMA,EAAM,GAAG,gBAAmBY,IAE9B,IAAMZ,EAAM,GAAG,IAAI,KAAO7xC,EAAQjO,GAAA,GAAe,IAAI,IAAMq6B,EAAM,CAAE,OAAAwoB,EAAQ,CAAC,CAAC,CAAC,EAEhH,UAAWppD,KAAO4pD,EAAY,CAC1B,MAAMh4B,EAAOg4B,EAAW5pD,CAAG,EAC3B,GAAKuF,GAAMqsB,CAAI,GAAK,CAAChqB,GAAWgqB,CAAI,GAAMnhB,GAAWmhB,CAAI,EAO3Cw2B,IAEFN,GAAgBL,GAAc71B,CAAI,IAC9BrsB,GAAMqsB,CAAI,EACVA,EAAK,MAAQk2B,EAAa9nD,CAAG,EAK7BonD,GAAqBx1B,EAAMk2B,EAAa9nD,CAAG,CAAC,GAIpDqmD,EAAM,MAAM,MAAM8B,CAAG,EAAEnoD,CAAG,EAAI4xB,WAQ7B,OAAOA,GAAS,WAAY,CACjC,MAAMi4B,EAAsET,EAAOx3B,EAAM5xB,CAAG,EAI5F4pD,EAAW5pD,CAAG,EAAI6pD,EAOlBxB,EAAiB,QAAQroD,CAAG,EAAI4xB,CACpC,CAgBJ,CAGA,OAAA4Z,GAAOuc,EAAO6B,CAAU,EAGxBpe,GAAOzgC,GAAMg9C,CAAK,EAAG6B,CAAU,EAI/B,OAAO,eAAe7B,EAAO,SAAU,CACnC,IAAK,IAAyE1B,EAAM,MAAM,MAAM8B,CAAG,EACnG,IAAM5qC,GAAU,CAKZqrC,EAAQM,GAAW,CAEf1d,GAAO0d,EAAQ3rC,CAAK,CACxB,CAAC,CACL,EACH,EA8FD8oC,EAAM,GAAG,QAASyD,GAAa,CAavBte,GAAOuc,EAAOvzC,EAAM,IAAI,IAAMs1C,EAAS,CACnC,MAAA/B,EACA,IAAK1B,EAAM,GACX,MAAAA,EACA,QAASgC,CAAA,CACZ,CAAC,CAAC,CAEX,CAAC,EAWGP,GACAM,GACA90C,EAAQ,SACRA,EAAQ,QAAQy0C,EAAM,OAAQD,CAAY,EAE9CS,EAAc,GACdC,EAAkB,GACXT,CACX,CAGA,SAASgC,GAETtzC,EAAImqB,EAAOopB,EAAc,CACrB,IAAI12C,EACJ,MAAM22C,EAAe,OAAOrpB,GAAU,WAEtCttB,EAAU22C,EAAeD,EAAeppB,EACxC,SAASspB,EAAS7D,EAAOsB,EAAK,CAC1B,MAAMwC,EAAav6B,GAAA,EACnB,OAAAy2B,EAGuFA,IAC9E8D,EAAar9B,GAAOw5B,GAAa,IAAI,EAAI,MAC9CD,GACAD,GAAeC,CAAK,EAMxBA,EAAQF,GACHE,EAAM,GAAG,IAAI5vC,CAAE,IAEZwzC,EACA/B,GAAiBzxC,EAAImqB,EAAOttB,EAAS+yC,CAAK,EAG1CqB,GAAmBjxC,EAAInD,EAAS+yC,CAAK,GAQ/BA,EAAM,GAAG,IAAI5vC,CAAE,CAyBjC,CACA,OAAAyzC,EAAS,IAAMzzC,EACRyzC,CACX,CAgKA,SAASE,GAAYrC,EAAO,CACxB,MAAMsC,EAAWt/C,GAAMg9C,CAAK,EACtBvmC,EAAO,GACb,UAAWxhB,KAAOqqD,EAAU,CACxB,MAAM1oD,EAAQ0oD,EAASrqD,CAAG,EAGtB2B,EAAM,OAEN6f,EAAKxhB,CAAG,EAEJwI,EAAS,CACL,IAAK,IAAMu/C,EAAM/nD,CAAG,EACpB,IAAI2B,EAAO,CACPomD,EAAM/nD,CAAG,EAAI2B,CACjB,EACH,GAEA4D,GAAM5D,CAAK,GAAK8O,GAAW9O,CAAK,KAErC6f,EAAKxhB,CAAG,EAEJqS,GAAM01C,EAAO/nD,CAAG,EAE5B,CACA,OAAOwhB,CACX,CC14DA,IAAI8oC,GAA+B,KAE5B,SAASC,GAAiBC,EAAoC,CACnEF,GAASE,CACX,CAEO,SAASC,IAAkC,CAChD,GAAI,CAACH,GACH,MAAM,IAAI,MAAM,wCAAwC,EAE1D,OAAOA,EACT,CCfO,MAAMI,GAAyBX,GAAY,sBAAuB,IAAM,CAC7E,MAAMY,EAAoB/5C,GAAA,EACpBg6C,EAAgBh6C,GAAA,EAEhBi6C,EAAuBriD,EAAS,IAAMoiD,EAAc,OAAS,MAAQA,EAAc,QAAU,IAAMA,EAAc,QAAU,GAAG,EAC9HE,EAAsBtiD,EAAS,IAAM,CAACqiD,EAAqB,KAAK,EAEtE,SAASE,GAAuB,CAI9B,GAHKJ,EAAkB,OACrBK,EAAA,EAEE,CAACL,EAAkB,MACrB,MAAM,IAAI,MAAM,uCAAuC,EAEzD,OAAOA,EAAkB,KAC3B,CAEA,SAASM,GAAmB,CAC1B,OAAKL,EAAc,OAAOI,EAAA,EACnBJ,EAAc,KACvB,CAEA,SAASI,GAAU,CAEjB,MAAME,EADS,IAAI,gBAAgB,OAAO,SAAS,MAAM,EACvC,IAAI,IAAI,EACpBZ,EAASG,GAAA,EAEXH,EAAO,qBACTK,EAAkB,MAAQL,EAAO,oBACjC,QAAQ,MAAM,oDAAoDA,EAAO,mBAAmB,EAAE,GAE9F,QAAQ,KAAK,oCAAoC,EAG/CY,GACFN,EAAc,MAAQM,EACtB,OAAO,aAAa,QAAQ,KAAMN,EAAc,KAAK,EACrD,QAAQ,MAAM,2DAA2DA,EAAc,KAAK,EAAE,GACrF,OAAO,aAAa,QAAQ,IAAI,GACzCA,EAAc,MAAQ,OAAO,aAAa,QAAQ,IAAI,EACtD,QAAQ,MAAM,sDAAsDA,EAAc,KAAK,EAAE,GAChFN,EAAO,gBAChBM,EAAc,MAAQN,EAAO,eAC7B,QAAQ,MAAM,gDAAgDA,EAAO,cAAc,EAAE,GAErF,QAAQ,KAAK,gCAAgC,CAEjD,CAEA,eAAea,EAAwBC,EAAgB93C,EAAoC,CACzF,MAAM+3C,EAA8B,CAClC,OAAQ,MACR,MAAO/3C,GAAS,OAAS,UACzB,QAAS,CACP,OAAQ,mBACV,EAEF,OAAO,MAAM,MAAM,GAAGy3C,EAAA,CAAsB,GAAGK,CAAM,GAAIC,CAAc,CACzE,CAEA,eAAeC,EAAgCF,EAAwC,CACrF,MAAMG,EAAW,MAAM,MAAM,GAAGR,GAAsB,GAAGK,CAAM,EAAE,EACjE,GAAI,CAACG,EAAS,GAAI,MAAM,IAAI,MAAMA,EAAS,YAAc,aAAa,EACtE,MAAMviC,EAAO,MAAMuiC,EAAS,OAE5B,MAAO,CAACA,EAAUviC,CAAI,CACxB,CAEA,eAAewiC,EAA4BJ,EAA0C,CACnF,GAAIP,EAAqB,MACvB,MAAO,GAGT,MAAMU,EAAW,MAAM,MAAM,GAAGN,GAAkB,GAAGG,CAAM,EAAE,EACvDpiC,EAAO,MAAMuiC,EAAS,OAE5B,MAAO,CAACA,EAAUviC,CAAI,CACxB,CAEA,eAAeyiC,EAAqBL,EAAgBM,EAAyB,KAAM,CACjF,MAAML,EAA8B,CAClC,OAAQ,QAEV,OAAIK,GAAW,OACbL,EAAe,QAAU,CAAE,eAAgB,oBAC3CA,EAAe,KAAO,KAAK,UAAUK,CAAO,GAEvC,MAAM,MAAM,GAAGX,EAAA,CAAsB,GAAGK,CAAM,GAAIC,CAAc,CACzE,CAEA,eAAeM,EAAoBP,EAAgBM,EAAwB,CACzE,MAAML,EAA8B,CAClC,OAAQ,OAEV,OAAIK,GAAW,OACbL,EAAe,QAAU,CAAE,eAAgB,oBAC3CA,EAAe,KAAO,KAAK,UAAUK,CAAO,GAEvC,MAAM,MAAM,GAAGX,EAAA,CAAsB,GAAGK,CAAM,GAAIC,CAAc,CACzE,CAEA,eAAeO,EAAyBR,EAAgB,CACtD,MAAMC,EAA8B,CAClC,OAAQ,UAEV,OAAO,MAAM,MAAM,GAAGN,EAAA,CAAsB,GAAGK,CAAM,GAAIC,CAAc,CACzE,CAEA,eAAeQ,EAAqBT,EAAgB,CAClD,MAAMC,EAAiB,CACrB,OAAQ,UAEV,OAAO,MAAM,MAAM,GAAGJ,EAAA,CAAkB,GAAGG,CAAM,GAAIC,CAAc,CACrE,CAEA,eAAeS,GAAwB,CACrC,GAAIjB,EAAqB,MACvB,OAAO,QAAQ,QAAQ,IAAI,EAG7B,MAAMQ,EAAiB,CACrB,OAAQ,WAEV,OAAO,MAAM,MAAMJ,KAAsB,GAAII,CAAc,CAC7D,CAEA,eAAeU,EAAsBX,EAAgBM,EAAwB,CAC3E,MAAML,EAA8B,CAClC,OAAQ,SAEV,OAAIK,GAAW,OACbL,EAAe,QAAU,CAAE,eAAgB,oBAC3CA,EAAe,KAAO,KAAK,UAAUK,CAAO,GAEvC,MAAM,MAAM,GAAGX,EAAA,CAAsB,GAAGK,CAAM,GAAIC,CAAc,CACzE,CAEA,MAAO,CACL,QAAAL,EACA,kBAAAL,EACA,cAAAC,EACA,qBAAAC,EACA,oBAAAC,EACA,wBAAAK,EACA,6BAAAG,EACA,yBAAAE,EACA,oBAAAG,EACA,qBAAAF,EACA,sBAAAM,EACA,yBAAAH,EACA,qBAAAC,EACA,sBAAAC,CAAA,CAEJ,CAAC,mVCtJD,MAAMznD,EAAQogD,EAYd,IAAIuH,EACJ,MAAMC,EAAYzH,iBAAoD,EAEhEuD,EAAQ2C,GAAA,EAERjF,EAAa70C,GAAI,CAAC,EAClBs7C,EAAet7C,GAAIvM,EAAM,YAAY,EAE3C+O,GACE,IAAM/O,EAAM,mBACZ,IAAM,CACJ8nD,EAAA,EACAC,EAAA,CACF,GAGFh5C,GAAM84C,EAAc,IAAMG,GAAU,EACpCj5C,GAAMqyC,EAAY,IAAM4G,GAAU,EAElC,eAAeA,GAAW,CACxB,KAAM,CAACd,EAAUviC,CAAI,EAAI,MAAM++B,EAAM,6BAAkC,GAAG1jD,EAAM,MAAM,SAASohD,EAAW,KAAK,aAAayG,EAAa,KAAK,EAAE,EAC5IX,EAAS,KACXU,EAAU,MAAM,WAAa,SAASV,EAAS,QAAQ,IAAI,aAAa,GAAK,GAAG,EAChFU,EAAU,MAAM,KAAOjjC,EAE3B,CAEA,SAASojC,GAAoB,CACvB/nD,EAAM,qBACR2nD,EAAe,OAAO,YAAY,IAAM,CACtCK,EAAA,CACF,EAAGhoD,EAAM,mBAAqB,GAAI,EAEtC,CAEA,SAAS8nD,GAAmB,CAC1B,OAAO,cAAcH,CAAY,CACnC,CAEA,OAAAxuC,GAAU,IAAM,CACd4uC,EAAA,EACAC,EAAA,CACF,CAAC,EAED9mC,GAAY,IAAM,CAChB4mC,EAAA,CACF,CAAC,yBAICG,GAAyBC,EAAA,eACzB1H,EAGM,MAHND,GAGM,CAFgBH,EAAA,sBAApB+H,GAA8FC,GAAA,kBAA/CP,EAAA,2CAAAA,EAAY,MAAA3G,GAAG,QAASd,EAAA,gEAChDA,EAAA,oBAAvB+H,GAA8HE,GAAA,kBAA9EjH,EAAA,2CAAAA,EAAU,MAAAF,GAAG,WAAY0G,EAAA,MAAU,WAAa,aAAcC,EAAA,sEAEhHI,GAA2BC,EAAA,0BCpE7B,IAAII,GAEJ,SAASjuC,IAAQ,CACb,OAAOiuC,GAAa,MAAM,KAAM,SAAS,CAC7C,CAIA,SAASC,GAAgBx9C,EAAU,CAC/Bu9C,GAAev9C,CACnB,CAEA,SAASrO,GAAQ8rD,EAAO,CACpB,OACIA,aAAiB,OACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,gBAElD,CAEA,SAASrrD,GAASqrD,EAAO,CAGrB,OACIA,GAAS,MACT,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAASC,GAAWloD,EAAGC,EAAG,CACtB,OAAO,OAAO,UAAU,eAAe,KAAKD,EAAGC,CAAC,CACpD,CAEA,SAASkoD,GAAc/pD,EAAK,CACxB,GAAI,OAAO,oBACP,OAAO,OAAO,oBAAoBA,CAAG,EAAE,SAAW,EAElD,IAAI+pC,EACJ,IAAKA,KAAK/pC,EACN,GAAI8pD,GAAW9pD,EAAK+pC,CAAC,EACjB,MAAO,GAGf,MAAO,EAEf,CAEA,SAASigB,GAAYH,EAAO,CACxB,OAAOA,IAAU,MACrB,CAEA,SAASI,GAASJ,EAAO,CACrB,OACI,OAAOA,GAAU,UACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,iBAElD,CAEA,SAAS1rD,GAAO0rD,EAAO,CACnB,OACIA,aAAiB,MACjB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAElD,CAEA,SAAS9sD,GAAIW,EAAKuB,EAAI,CAClB,IAAIuB,EAAM,GACN5C,EACAssD,EAASxsD,EAAI,OACjB,IAAKE,EAAI,EAAGA,EAAIssD,EAAQ,EAAEtsD,EACtB4C,EAAI,KAAKvB,EAAGvB,EAAIE,CAAC,EAAGA,CAAC,CAAC,EAE1B,OAAO4C,CACX,CAEA,SAAShD,GAAOoE,EAAGC,EAAG,CAClB,QAASjE,KAAKiE,EACNioD,GAAWjoD,EAAGjE,CAAC,IACfgE,EAAEhE,CAAC,EAAIiE,EAAEjE,CAAC,GAIlB,OAAIksD,GAAWjoD,EAAG,UAAU,IACxBD,EAAE,SAAWC,EAAE,UAGfioD,GAAWjoD,EAAG,SAAS,IACvBD,EAAE,QAAUC,EAAE,SAGXD,CACX,CAEA,SAASuoD,GAAUN,EAAOO,EAAQC,EAAQC,EAAQ,CAC9C,OAAOC,GAAiBV,EAAOO,EAAQC,EAAQC,EAAQ,EAAI,EAAE,IAAG,CACpE,CAEA,SAASE,IAAsB,CAE3B,MAAO,CACH,MAAO,GACP,aAAc,GACd,YAAa,GACb,SAAU,GACV,cAAe,EACf,UAAW,GACX,WAAY,KACZ,aAAc,KACd,cAAe,GACf,gBAAiB,GACjB,IAAK,GACL,gBAAiB,GACjB,IAAK,KACL,SAAU,KACV,QAAS,GACT,gBAAiB,EACzB,CACA,CAEA,SAASC,GAAgBjgC,EAAG,CACxB,OAAIA,EAAE,KAAO,OACTA,EAAE,IAAMggC,GAAmB,GAExBhgC,EAAE,GACb,CAEA,IAAIkgC,GACA,MAAM,UAAU,KAChBA,GAAO,MAAM,UAAU,KAEvBA,GAAO,SAAUC,EAAK,CAClB,IAAI,EAAI,OAAO,IAAI,EACfnzB,EAAM,EAAE,SAAW,EACnB55B,EAEJ,IAAKA,EAAI,EAAGA,EAAI45B,EAAK55B,IACjB,GAAIA,KAAK,GAAK+sD,EAAI,KAAK,KAAM,EAAE/sD,CAAC,EAAGA,EAAG,CAAC,EACnC,MAAO,GAIf,MAAO,EACX,EAGJ,SAASgtD,GAAQpgC,EAAG,CAChB,IAAIqgC,EAAQ,KACRC,EAAc,GACdC,EAAavgC,EAAE,IAAM,CAAC,MAAMA,EAAE,GAAG,SAAS,EAyB9C,GAxBIugC,IACAF,EAAQJ,GAAgBjgC,CAAC,EACzBsgC,EAAcJ,GAAK,KAAKG,EAAM,gBAAiB,SAAUjtD,EAAG,CACxD,OAAOA,GAAK,IAChB,CAAC,EACDmtD,EACIF,EAAM,SAAW,GACjB,CAACA,EAAM,OACP,CAACA,EAAM,YACP,CAACA,EAAM,cACP,CAACA,EAAM,gBACP,CAACA,EAAM,iBACP,CAACA,EAAM,WACP,CAACA,EAAM,eACP,CAACA,EAAM,kBACN,CAACA,EAAM,UAAaA,EAAM,UAAYC,GACvCtgC,EAAE,UACFugC,EACIA,GACAF,EAAM,gBAAkB,GACxBA,EAAM,aAAa,SAAW,GAC9BA,EAAM,UAAY,SAG1B,OAAO,UAAY,MAAQ,CAAC,OAAO,SAASrgC,CAAC,EAC7CA,EAAE,SAAWugC,MAEb,QAAOA,EAEX,OAAOvgC,EAAE,QACb,CAEA,SAASwgC,GAAcH,EAAO,CAC1B,IAAIrgC,EAAI2/B,GAAU,GAAG,EACrB,OAAIU,GAAS,KACTrtD,GAAOitD,GAAgBjgC,CAAC,EAAGqgC,CAAK,EAEhCJ,GAAgBjgC,CAAC,EAAE,gBAAkB,GAGlCA,CACX,CAIA,IAAIygC,GAAoBvvC,GAAM,iBAAmB,GAC7CwvC,GAAmB,GAEvB,SAASC,GAAWzgC,EAAIC,EAAM,CAC1B,IAAI/sB,EACAgxB,EACA3xB,EACAmuD,EAAsBH,GAAiB,OAiC3C,GA/BKjB,GAAYr/B,EAAK,gBAAgB,IAClCD,EAAG,iBAAmBC,EAAK,kBAE1Bq/B,GAAYr/B,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZq/B,GAAYr/B,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZq/B,GAAYr/B,EAAK,EAAE,IACpBD,EAAG,GAAKC,EAAK,IAEZq/B,GAAYr/B,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjBq/B,GAAYr/B,EAAK,IAAI,IACtBD,EAAG,KAAOC,EAAK,MAEdq/B,GAAYr/B,EAAK,MAAM,IACxBD,EAAG,OAASC,EAAK,QAEhBq/B,GAAYr/B,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAEjBq/B,GAAYr/B,EAAK,GAAG,IACrBD,EAAG,IAAM+/B,GAAgB9/B,CAAI,GAE5Bq/B,GAAYr/B,EAAK,OAAO,IACzBD,EAAG,QAAUC,EAAK,SAGlBygC,EAAsB,EACtB,IAAKxtD,EAAI,EAAGA,EAAIwtD,EAAqBxtD,IACjCgxB,EAAOq8B,GAAiBrtD,CAAC,EACzBX,EAAM0tB,EAAKiE,CAAI,EACVo7B,GAAY/sD,CAAG,IAChBytB,EAAGkE,CAAI,EAAI3xB,GAKvB,OAAOytB,CACX,CAGA,SAAS2gC,GAAO/D,EAAQ,CACpB6D,GAAW,KAAM7D,CAAM,EACvB,KAAK,GAAK,IAAI,KAAKA,EAAO,IAAM,KAAOA,EAAO,GAAG,QAAO,EAAK,GAAG,EAC3D,KAAK,YACN,KAAK,GAAK,IAAI,KAAK,GAAG,GAItB4D,KAAqB,KACrBA,GAAmB,GACnBxvC,GAAM,aAAa,IAAI,EACvBwvC,GAAmB,GAE3B,CAEA,SAASI,GAAStrD,EAAK,CACnB,OACIA,aAAeqrD,IAAWrrD,GAAO,MAAQA,EAAI,kBAAoB,IAEzE,CAEA,SAASurD,GAAKC,EAAK,CAEX9vC,GAAM,8BAAgC,IACtC,OAAO,QAAY,KACnB,QAAQ,MAER,QAAQ,KAAK,wBAA0B8vC,CAAG,CAElD,CAEA,SAASC,GAAUD,EAAKvsD,EAAI,CACxB,IAAIysD,EAAY,GAEhB,OAAOluD,GAAO,UAAY,CAItB,GAHIke,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmB,KAAM8vC,CAAG,EAElCE,EAAW,CACX,IAAIrjD,EAAO,GACPvI,EACAlC,EACAZ,EACA2uD,EAAS,UAAU,OACvB,IAAK/tD,EAAI,EAAGA,EAAI+tD,EAAQ/tD,IAAK,CAEzB,GADAkC,EAAM,GACF,OAAO,UAAUlC,CAAC,GAAM,SAAU,CAClCkC,GAAO;AAAA,GAAQlC,EAAI,KACnB,IAAKZ,KAAO,UAAU,CAAC,EACf8sD,GAAW,UAAU,CAAC,EAAG9sD,CAAG,IAC5B8C,GAAO9C,EAAM,KAAO,UAAU,CAAC,EAAEA,CAAG,EAAI,MAGhD8C,EAAMA,EAAI,MAAM,EAAG,EAAE,CACzB,MACIA,EAAM,UAAUlC,CAAC,EAErByK,EAAK,KAAKvI,CAAG,CACjB,CACAyrD,GACIC,EACI;AAAA,aACA,MAAM,UAAU,MAAM,KAAKnjD,CAAI,EAAE,KAAK,EAAE,EACxC;AAAA,EACA,IAAI,MAAK,EAAG,KAChC,EACYqjD,EAAY,EAChB,CACA,OAAOzsD,EAAG,MAAM,KAAM,SAAS,CACnC,EAAGA,CAAE,CACT,CAEA,IAAI2sD,GAAe,GAEnB,SAASC,GAAgB1qD,EAAMqqD,EAAK,CAC5B9vC,GAAM,oBAAsB,MAC5BA,GAAM,mBAAmBva,EAAMqqD,CAAG,EAEjCI,GAAazqD,CAAI,IAClBoqD,GAAKC,CAAG,EACRI,GAAazqD,CAAI,EAAI,GAE7B,CAEAua,GAAM,4BAA8B,GACpCA,GAAM,mBAAqB,KAE3B,SAASrd,GAAWwrD,EAAO,CACvB,OACK,OAAO,SAAa,KAAeA,aAAiB,UACrD,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,mBAElD,CAEA,SAASl7C,GAAI24C,EAAQ,CACjB,IAAI14B,EAAMhxB,EACV,IAAKA,KAAK0pD,EACFwC,GAAWxC,EAAQ1pD,CAAC,IACpBgxB,EAAO04B,EAAO1pD,CAAC,EACXS,GAAWuwB,CAAI,EACf,KAAKhxB,CAAC,EAAIgxB,EAEV,KAAK,IAAMhxB,CAAC,EAAIgxB,GAI5B,KAAK,QAAU04B,EAIf,KAAK,+BAAiC,IAAI,QACrC,KAAK,wBAAwB,QAAU,KAAK,cAAc,QACvD,IACA,UAAU,MACtB,CACA,CAEA,SAASwE,GAAaC,EAAcC,EAAa,CAC7C,IAAIxrD,EAAMhD,GAAO,GAAIuuD,CAAY,EAC7Bn9B,EACJ,IAAKA,KAAQo9B,EACLlC,GAAWkC,EAAap9B,CAAI,IACxBpwB,GAASutD,EAAan9B,CAAI,CAAC,GAAKpwB,GAASwtD,EAAYp9B,CAAI,CAAC,GAC1DpuB,EAAIouB,CAAI,EAAI,GACZpxB,GAAOgD,EAAIouB,CAAI,EAAGm9B,EAAan9B,CAAI,CAAC,EACpCpxB,GAAOgD,EAAIouB,CAAI,EAAGo9B,EAAYp9B,CAAI,CAAC,GAC5Bo9B,EAAYp9B,CAAI,GAAK,KAC5BpuB,EAAIouB,CAAI,EAAIo9B,EAAYp9B,CAAI,EAE5B,OAAOpuB,EAAIouB,CAAI,GAI3B,IAAKA,KAAQm9B,EAELjC,GAAWiC,EAAcn9B,CAAI,GAC7B,CAACk7B,GAAWkC,EAAap9B,CAAI,GAC7BpwB,GAASutD,EAAan9B,CAAI,CAAC,IAG3BpuB,EAAIouB,CAAI,EAAIpxB,GAAO,GAAIgD,EAAIouB,CAAI,CAAC,GAGxC,OAAOpuB,CACX,CAEA,SAASyrD,GAAO3E,EAAQ,CAChBA,GAAU,MACV,KAAK,IAAIA,CAAM,CAEvB,CAEA,IAAIznC,GAEA,OAAO,KACPA,GAAO,OAAO,KAEdA,GAAO,SAAU7f,EAAK,CAClB,IAAIpC,EACA4C,EAAM,GACV,IAAK5C,KAAKoC,EACF8pD,GAAW9pD,EAAKpC,CAAC,GACjB4C,EAAI,KAAK5C,CAAC,EAGlB,OAAO4C,CACX,EAGJ,IAAI0rD,GAAkB,CAClB,QAAS,gBACT,QAAS,mBACT,SAAU,eACV,QAAS,oBACT,SAAU,sBACV,SAAU,GACd,EAEA,SAASC,GAASnvD,EAAKovD,EAAKC,EAAK,CAC7B,IAAIC,EAAS,KAAK,UAAUtvD,CAAG,GAAK,KAAK,UAAU,SACnD,OAAOqB,GAAWiuD,CAAM,EAAIA,EAAO,KAAKF,EAAKC,CAAG,EAAIC,CACxD,CAEA,SAASC,GAAS1kB,EAAQ2kB,EAAcC,EAAW,CAC/C,IAAIC,EAAY,GAAK,KAAK,IAAI7kB,CAAM,EAChC8kB,EAAcH,EAAeE,EAAU,OACvCE,EAAO/kB,GAAU,EACrB,OACK+kB,EAAQH,EAAY,IAAM,GAAM,KACjC,KAAK,IAAI,GAAI,KAAK,IAAI,EAAGE,CAAW,CAAC,EAAE,WAAW,OAAO,CAAC,EAC1DD,CAER,CAEA,IAAIG,GACI,yMACJC,GAAwB,6CACxBC,GAAkB,GAClBC,GAAuB,GAM3B,SAASC,GAAehW,EAAOiW,EAAQC,EAAS/gD,EAAU,CACtD,IAAIghD,EAAOhhD,EACP,OAAOA,GAAa,WACpBghD,EAAO,UAAY,CACf,OAAO,KAAKhhD,CAAQ,EAAC,CACzB,GAEA6qC,IACA+V,GAAqB/V,CAAK,EAAImW,GAE9BF,IACAF,GAAqBE,EAAO,CAAC,CAAC,EAAI,UAAY,CAC1C,OAAOX,GAASa,EAAK,MAAM,KAAM,SAAS,EAAGF,EAAO,CAAC,EAAGA,EAAO,CAAC,CAAC,CACrE,GAEAC,IACAH,GAAqBG,CAAO,EAAI,UAAY,CACxC,OAAO,KAAK,WAAU,EAAG,QACrBC,EAAK,MAAM,KAAM,SAAS,EAC1BnW,CAChB,CACQ,EAER,CAEA,SAASoW,GAAuBxD,EAAO,CACnC,OAAIA,EAAM,MAAM,UAAU,EACfA,EAAM,QAAQ,WAAY,EAAE,EAEhCA,EAAM,QAAQ,MAAO,EAAE,CAClC,CAEA,SAASyD,GAAmBlD,EAAQ,CAChC,IAAIviD,EAAQuiD,EAAO,MAAMyC,EAAgB,EACrCjvD,EACAq9C,EAEJ,IAAKr9C,EAAI,EAAGq9C,EAASpzC,EAAM,OAAQjK,EAAIq9C,EAAQr9C,IACvCovD,GAAqBnlD,EAAMjK,CAAC,CAAC,EAC7BiK,EAAMjK,CAAC,EAAIovD,GAAqBnlD,EAAMjK,CAAC,CAAC,EAExCiK,EAAMjK,CAAC,EAAIyvD,GAAuBxlD,EAAMjK,CAAC,CAAC,EAIlD,OAAO,SAAUwuD,EAAK,CAClB,IAAIE,EAAS,GACT1uD,EACJ,IAAKA,EAAI,EAAGA,EAAIq9C,EAAQr9C,IACpB0uD,GAAUjuD,GAAWwJ,EAAMjK,CAAC,CAAC,EACvBiK,EAAMjK,CAAC,EAAE,KAAKwuD,EAAKhC,CAAM,EACzBviD,EAAMjK,CAAC,EAEjB,OAAO0uD,CACX,CACJ,CAGA,SAASiB,GAAa/iC,EAAG4/B,EAAQ,CAC7B,OAAK5/B,EAAE,WAIP4/B,EAASoD,GAAapD,EAAQ5/B,EAAE,WAAU,CAAE,EAC5CuiC,GAAgB3C,CAAM,EAClB2C,GAAgB3C,CAAM,GAAKkD,GAAmBlD,CAAM,EAEjD2C,GAAgB3C,CAAM,EAAE5/B,CAAC,GAPrBA,EAAE,WAAU,EAAG,YAAW,CAQzC,CAEA,SAASgjC,GAAapD,EAAQC,EAAQ,CAClC,IAAIzsD,EAAI,EAER,SAAS6vD,EAA4B5D,EAAO,CACxC,OAAOQ,EAAO,eAAeR,CAAK,GAAKA,CAC3C,CAGA,IADAiD,GAAsB,UAAY,EAC3BlvD,GAAK,GAAKkvD,GAAsB,KAAK1C,CAAM,GAC9CA,EAASA,EAAO,QACZ0C,GACAW,CACZ,EACQX,GAAsB,UAAY,EAClClvD,GAAK,EAGT,OAAOwsD,CACX,CAEA,IAAIsD,GAAwB,CACxB,IAAK,YACL,GAAI,SACJ,EAAG,aACH,GAAI,eACJ,IAAK,sBACL,KAAM,2BACV,EAEA,SAASC,GAAe3wD,EAAK,CACzB,IAAIotD,EAAS,KAAK,gBAAgBptD,CAAG,EACjC4wD,EAAc,KAAK,gBAAgB5wD,EAAI,YAAW,CAAE,EAExD,OAAIotD,GAAU,CAACwD,EACJxD,GAGX,KAAK,gBAAgBptD,CAAG,EAAI4wD,EACvB,MAAMf,EAAgB,EACtB,IAAI,SAAUgB,EAAK,CAChB,OACIA,IAAQ,QACRA,IAAQ,MACRA,IAAQ,MACRA,IAAQ,OAEDA,EAAI,MAAM,CAAC,EAEfA,CACX,CAAC,EACA,KAAK,EAAE,EAEL,KAAK,gBAAgB7wD,CAAG,EACnC,CAEA,IAAI8wD,GAAqB,eAEzB,SAASC,IAAc,CACnB,OAAO,KAAK,YAChB,CAEA,IAAIC,GAAiB,KACjBC,GAAgC,UAEpC,SAASd,GAAQtlB,EAAQ,CACrB,OAAO,KAAK,SAAS,QAAQ,KAAMA,CAAM,CAC7C,CAEA,IAAIqmB,GAAsB,CACtB,OAAQ,QACR,KAAM,SACN,EAAG,gBACH,GAAI,aACJ,EAAG,WACH,GAAI,aACJ,EAAG,UACH,GAAI,WACJ,EAAG,QACH,GAAI,UACJ,EAAG,SACH,GAAI,WACJ,EAAG,UACH,GAAI,YACJ,EAAG,SACH,GAAI,UACR,EAEA,SAASC,GAAatmB,EAAQumB,EAAeC,EAAQC,EAAU,CAC3D,IAAIhC,EAAS,KAAK,cAAc+B,CAAM,EACtC,OAAOhwD,GAAWiuD,CAAM,EAClBA,EAAOzkB,EAAQumB,EAAeC,EAAQC,CAAQ,EAC9ChC,EAAO,QAAQ,MAAOzkB,CAAM,CACtC,CAEA,SAAS0mB,GAAWxW,EAAMuU,EAAQ,CAC9B,IAAIlC,EAAS,KAAK,cAAcrS,EAAO,EAAI,SAAW,MAAM,EAC5D,OAAO15C,GAAW+rD,CAAM,EAAIA,EAAOkC,CAAM,EAAIlC,EAAO,QAAQ,MAAOkC,CAAM,CAC7E,CAEA,IAAIlT,GAAU,CACV,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,MACH,KAAM,MACN,IAAK,MACL,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,aACH,YAAa,aACb,WAAY,aACZ,IAAK,YACL,WAAY,YACZ,UAAW,YACX,EAAG,OACH,MAAO,OACP,KAAM,OACN,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,SACH,QAAS,SACT,OAAQ,SACR,EAAG,QACH,OAAQ,QACR,MAAO,QACP,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,SACH,QAAS,SACT,OAAQ,SACR,GAAI,WACJ,UAAW,WACX,SAAU,WACV,GAAI,cACJ,aAAc,cACd,YAAa,cACb,EAAG,OACH,MAAO,OACP,KAAM,OACN,EAAG,UACH,SAAU,UACV,QAAS,UACT,EAAG,OACH,MAAO,OACP,KAAM,MACV,EAEA,SAASoV,GAAeC,EAAO,CAC3B,OAAO,OAAOA,GAAU,SAClBrV,GAAQqV,CAAK,GAAKrV,GAAQqV,EAAM,YAAW,CAAE,EAC7C,MACV,CAEA,SAASC,GAAqBC,EAAa,CACvC,IAAIC,EAAkB,GAClBC,EACAjgC,EAEJ,IAAKA,KAAQ+/B,EACL7E,GAAW6E,EAAa//B,CAAI,IAC5BigC,EAAiBL,GAAe5/B,CAAI,EAChCigC,IACAD,EAAgBC,CAAc,EAAIF,EAAY//B,CAAI,IAK9D,OAAOggC,CACX,CAEA,IAAIE,GAAa,CACb,KAAM,EACN,IAAK,GACL,QAAS,GACT,WAAY,GACZ,UAAW,EACX,KAAM,GACN,YAAa,GACb,OAAQ,GACR,MAAO,EACP,QAAS,EACT,OAAQ,GACR,SAAU,EACV,YAAa,EACb,KAAM,EACN,QAAS,EACT,KAAM,CACV,EAEA,SAASC,GAAoBC,EAAU,CACnC,IAAIP,EAAQ,GACR/6B,EACJ,IAAKA,KAAKs7B,EACFlF,GAAWkF,EAAUt7B,CAAC,GACtB+6B,EAAM,KAAK,CAAE,KAAM/6B,EAAG,SAAUo7B,GAAWp7B,CAAC,EAAG,EAGvD,OAAA+6B,EAAM,KAAK,SAAU7sD,EAAGC,EAAG,CACvB,OAAOD,EAAE,SAAWC,EAAE,QAC1B,CAAC,EACM4sD,CACX,CAEA,IAAIQ,GAAS,KACTC,GAAS,OACTC,GAAS,QACTC,GAAS,QACTC,GAAS,aACTC,GAAY,QACZC,GAAY,YACZC,GAAY,gBACZC,GAAY,UACZC,GAAY,UACZC,GAAY,eACZC,GAAgB,MAChBC,GAAc,WACdC,GAAc,qBACdC,GAAmB,0BACnBC,GAAiB,uBAGjBC,GACI,wJACJC,GAAyB,YACzBC,GAAmB,gBACnBC,GAEJA,GAAU,GAEV,SAASC,GAAcpZ,EAAOqZ,EAAOC,EAAa,CAC9CH,GAAQnZ,CAAK,EAAI54C,GAAWiyD,CAAK,EAC3BA,EACA,SAAUE,EAAUC,EAAY,CAC5B,OAAOD,GAAYD,EAAcA,EAAcD,CACnD,CACV,CAEA,SAASI,GAAsBzZ,EAAOqQ,EAAQ,CAC1C,OAAKwC,GAAWsG,GAASnZ,CAAK,EAIvBmZ,GAAQnZ,CAAK,EAAEqQ,EAAO,QAASA,EAAO,OAAO,EAHzC,IAAI,OAAOqJ,GAAe1Z,CAAK,CAAC,CAI/C,CAGA,SAAS0Z,GAAev/C,EAAG,CACvB,OAAOw/C,GACHx/C,EACK,QAAQ,KAAM,EAAE,EAChB,QACG,sCACA,SAAUghC,EAASye,EAAIC,EAAIC,EAAIC,EAAI,CAC/B,OAAOH,GAAMC,GAAMC,GAAMC,CAC7B,CAChB,CACA,CACA,CAEA,SAASJ,GAAYx/C,EAAG,CACpB,OAAOA,EAAE,QAAQ,yBAA0B,MAAM,CACrD,CAEA,SAAS6/C,GAASppB,EAAQ,CACtB,OAAIA,EAAS,EAEF,KAAK,KAAKA,CAAM,GAAK,EAErB,KAAK,MAAMA,CAAM,CAEhC,CAEA,SAASqpB,GAAMC,EAAqB,CAChC,IAAIC,EAAgB,CAACD,EACjBxyD,EAAQ,EAEZ,OAAIyyD,IAAkB,GAAK,SAASA,CAAa,IAC7CzyD,EAAQsyD,GAASG,CAAa,GAG3BzyD,CACX,CAEA,IAAIu3C,GAAS,GAEb,SAASmb,GAAcpa,EAAO7qC,EAAU,CACpC,IAAIxO,EACAwvD,EAAOhhD,EACPklD,EAUJ,IATI,OAAOra,GAAU,WACjBA,EAAQ,CAACA,CAAK,GAEdgT,GAAS79C,CAAQ,IACjBghD,EAAO,SAAUvD,EAAOhiD,EAAO,CAC3BA,EAAMuE,CAAQ,EAAI8kD,GAAMrH,CAAK,CACjC,GAEJyH,EAAWra,EAAM,OACZr5C,EAAI,EAAGA,EAAI0zD,EAAU1zD,IACtBs4C,GAAOe,EAAMr5C,CAAC,CAAC,EAAIwvD,CAE3B,CAEA,SAASmE,GAAkBta,EAAO7qC,EAAU,CACxCilD,GAAcpa,EAAO,SAAU4S,EAAOhiD,EAAOy/C,EAAQrQ,EAAO,CACxDqQ,EAAO,GAAKA,EAAO,IAAM,GACzBl7C,EAASy9C,EAAOvC,EAAO,GAAIA,EAAQrQ,CAAK,CAC5C,CAAC,CACL,CAEA,SAASua,GAAwBva,EAAO4S,EAAOvC,EAAQ,CAC/CuC,GAAS,MAAQC,GAAW5T,GAAQe,CAAK,GACzCf,GAAOe,CAAK,EAAE4S,EAAOvC,EAAO,GAAIA,EAAQrQ,CAAK,CAErD,CAEA,SAASwa,GAAWC,EAAM,CACtB,OAAQA,EAAO,IAAM,GAAKA,EAAO,MAAQ,GAAMA,EAAO,MAAQ,CAClE,CAEA,IAAIC,GAAO,EACPC,GAAQ,EACRC,GAAO,EACPC,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdC,GAAO,EACPC,GAAU,EAIdlF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,IAAImF,EAAI,KAAK,KAAI,EACjB,OAAOA,GAAK,KAAO7F,GAAS6F,EAAG,CAAC,EAAI,IAAMA,CAC9C,CAAC,EAEDnF,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,KAAI,EAAK,GACzB,CAAC,EAEDA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,MAAM,EACzCA,GAAe,EAAG,CAAC,SAAU,EAAG,EAAI,EAAG,EAAG,MAAM,EAIhDoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,SAAUV,GAAWN,EAAM,EAEzCgC,GAAc,CAAC,QAAS,QAAQ,EAAGM,EAAI,EACvCN,GAAc,OAAQ,SAAUxH,EAAOhiD,EAAO,CAC1CA,EAAM8pD,EAAI,EACN9H,EAAM,SAAW,EAAInuC,GAAM,kBAAkBmuC,CAAK,EAAIqH,GAAMrH,CAAK,CACzE,CAAC,EACDwH,GAAc,KAAM,SAAUxH,EAAOhiD,EAAO,CACxCA,EAAM8pD,EAAI,EAAIj2C,GAAM,kBAAkBmuC,CAAK,CAC/C,CAAC,EACDwH,GAAc,IAAK,SAAUxH,EAAOhiD,EAAO,CACvCA,EAAM8pD,EAAI,EAAI,SAAS9H,EAAO,EAAE,CACpC,CAAC,EAID,SAASwI,GAAWX,EAAM,CACtB,OAAOD,GAAWC,CAAI,EAAI,IAAM,GACpC,CAIAh2C,GAAM,kBAAoB,SAAUmuC,EAAO,CACvC,OAAOqH,GAAMrH,CAAK,GAAKqH,GAAMrH,CAAK,EAAI,GAAK,KAAO,IACtD,EAIA,IAAIyI,GAAaC,GAAW,WAAY,EAAI,EAE5C,SAASC,IAAgB,CACrB,OAAOf,GAAW,KAAK,MAAM,CACjC,CAEA,SAASc,GAAWE,EAAMC,EAAU,CAChC,OAAO,SAAU/zD,EAAO,CACpB,OAAIA,GAAS,MACTg0D,GAAM,KAAMF,EAAM9zD,CAAK,EACvB+c,GAAM,aAAa,KAAMg3C,CAAQ,EAC1B,MAEApmD,GAAI,KAAMmmD,CAAI,CAE7B,CACJ,CAEA,SAASnmD,GAAI8/C,EAAKqG,EAAM,CACpB,GAAI,CAACrG,EAAI,UACL,MAAO,KAGX,IAAIjpB,EAAIipB,EAAI,GACRwG,EAAQxG,EAAI,OAEhB,OAAQqG,EAAI,CACR,IAAK,eACD,OAAOG,EAAQzvB,EAAE,mBAAkB,EAAKA,EAAE,gBAAe,EAC7D,IAAK,UACD,OAAOyvB,EAAQzvB,EAAE,cAAa,EAAKA,EAAE,WAAU,EACnD,IAAK,UACD,OAAOyvB,EAAQzvB,EAAE,cAAa,EAAKA,EAAE,WAAU,EACnD,IAAK,QACD,OAAOyvB,EAAQzvB,EAAE,YAAW,EAAKA,EAAE,SAAQ,EAC/C,IAAK,OACD,OAAOyvB,EAAQzvB,EAAE,WAAU,EAAKA,EAAE,QAAO,EAC7C,IAAK,MACD,OAAOyvB,EAAQzvB,EAAE,UAAS,EAAKA,EAAE,OAAM,EAC3C,IAAK,QACD,OAAOyvB,EAAQzvB,EAAE,YAAW,EAAKA,EAAE,SAAQ,EAC/C,IAAK,WACD,OAAOyvB,EAAQzvB,EAAE,eAAc,EAAKA,EAAE,YAAW,EACrD,QACI,MAAO,IACnB,CACA,CAEA,SAASwvB,GAAMvG,EAAKqG,EAAM9zD,EAAO,CAC7B,IAAIwkC,EAAGyvB,EAAOlB,EAAMmB,EAAOC,EAE3B,GAAI,GAAC1G,EAAI,QAAO,GAAM,MAAMztD,CAAK,GAOjC,QAHAwkC,EAAIipB,EAAI,GACRwG,EAAQxG,EAAI,OAEJqG,EAAI,CACR,IAAK,eACD,OAAO,KAAMG,EACPzvB,EAAE,mBAAmBxkC,CAAK,EAC1BwkC,EAAE,gBAAgBxkC,CAAK,GACjC,IAAK,UACD,OAAO,KAAMi0D,EAAQzvB,EAAE,cAAcxkC,CAAK,EAAIwkC,EAAE,WAAWxkC,CAAK,GACpE,IAAK,UACD,OAAO,KAAMi0D,EAAQzvB,EAAE,cAAcxkC,CAAK,EAAIwkC,EAAE,WAAWxkC,CAAK,GACpE,IAAK,QACD,OAAO,KAAMi0D,EAAQzvB,EAAE,YAAYxkC,CAAK,EAAIwkC,EAAE,SAASxkC,CAAK,GAChE,IAAK,OACD,OAAO,KAAMi0D,EAAQzvB,EAAE,WAAWxkC,CAAK,EAAIwkC,EAAE,QAAQxkC,CAAK,GAK9D,IAAK,WACD,MACJ,QACI,MACZ,CAEI+yD,EAAO/yD,EACPk0D,EAAQzG,EAAI,MAAK,EACjB0G,EAAO1G,EAAI,KAAI,EACf0G,EAAOA,IAAS,IAAMD,IAAU,GAAK,CAACpB,GAAWC,CAAI,EAAI,GAAKoB,EACxDF,EACAzvB,EAAE,eAAeuuB,EAAMmB,EAAOC,CAAI,EAClC3vB,EAAE,YAAYuuB,EAAMmB,EAAOC,CAAI,EACzC,CAIA,SAASC,GAAUtE,EAAO,CAEtB,OADAA,EAAQD,GAAeC,CAAK,EACxBpwD,GAAW,KAAKowD,CAAK,CAAC,EACf,KAAKA,CAAK,EAAC,EAEf,IACX,CAEA,SAASuE,GAAUvE,EAAO9vD,EAAO,CAC7B,GAAI,OAAO8vD,GAAU,SAAU,CAC3BA,EAAQC,GAAqBD,CAAK,EAClC,IAAIwE,EAAclE,GAAoBN,CAAK,EACvC7wD,EACAs1D,EAAiBD,EAAY,OACjC,IAAKr1D,EAAI,EAAGA,EAAIs1D,EAAgBt1D,IAC5B,KAAKq1D,EAAYr1D,CAAC,EAAE,IAAI,EAAE6wD,EAAMwE,EAAYr1D,CAAC,EAAE,IAAI,CAAC,CAE5D,SACI6wD,EAAQD,GAAeC,CAAK,EACxBpwD,GAAW,KAAKowD,CAAK,CAAC,EACtB,OAAO,KAAKA,CAAK,EAAE9vD,CAAK,EAGhC,OAAO,IACX,CAEA,SAASw0D,GAAIhzD,EAAGmI,EAAG,CACf,OAASnI,EAAImI,EAAKA,GAAKA,CAC3B,CAEA,IAAI8qD,GAEA,MAAM,UAAU,QAChBA,GAAU,MAAM,UAAU,QAE1BA,GAAU,SAAU7P,EAAG,CAEnB,IAAI3lD,EACJ,IAAKA,EAAI,EAAGA,EAAI,KAAK,OAAQ,EAAEA,EAC3B,GAAI,KAAKA,CAAC,IAAM2lD,EACZ,OAAO3lD,EAGf,MAAO,EACX,EAGJ,SAASy1D,GAAY3B,EAAMmB,EAAO,CAC9B,GAAI,MAAMnB,CAAI,GAAK,MAAMmB,CAAK,EAC1B,MAAO,KAEX,IAAIS,EAAWH,GAAIN,EAAO,EAAE,EAC5B,OAAAnB,IAASmB,EAAQS,GAAY,GACtBA,IAAa,EACd7B,GAAWC,CAAI,EACX,GACA,GACJ,GAAO4B,EAAW,EAAK,CACjC,CAIArG,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,UAAY,CAC7C,OAAO,KAAK,MAAK,EAAK,CAC1B,CAAC,EAEDA,GAAe,MAAO,EAAG,EAAG,SAAU7C,EAAQ,CAC1C,OAAO,KAAK,WAAU,EAAG,YAAY,KAAMA,CAAM,CACrD,CAAC,EAED6C,GAAe,OAAQ,EAAG,EAAG,SAAU7C,EAAQ,CAC3C,OAAO,KAAK,WAAU,EAAG,OAAO,KAAMA,CAAM,CAChD,CAAC,EAIDiG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,MAAO,SAAUG,EAAUnG,EAAQ,CAC7C,OAAOA,EAAO,iBAAiBmG,CAAQ,CAC3C,CAAC,EACDH,GAAc,OAAQ,SAAUG,EAAUnG,EAAQ,CAC9C,OAAOA,EAAO,YAAYmG,CAAQ,CACtC,CAAC,EAEDa,GAAc,CAAC,IAAK,IAAI,EAAG,SAAUxH,EAAOhiD,EAAO,CAC/CA,EAAM+pD,EAAK,EAAIV,GAAMrH,CAAK,EAAI,CAClC,CAAC,EAEDwH,GAAc,CAAC,MAAO,MAAM,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQrQ,EAAO,CAClE,IAAI4b,EAAQvL,EAAO,QAAQ,YAAYuC,EAAO5S,EAAOqQ,EAAO,OAAO,EAE/DuL,GAAS,KACThrD,EAAM+pD,EAAK,EAAIiB,EAEfpI,GAAgBnD,CAAM,EAAE,aAAeuC,CAE/C,CAAC,EAID,IAAI0J,GACI,wFAAwF,MACpF,GACZ,EACIC,GACI,kDAAkD,MAAM,GAAG,EAC/DC,GAAmB,gCACnBC,GAA0BzD,GAC1B0D,GAAqB1D,GAEzB,SAAS2D,GAAappC,EAAG4/B,EAAQ,CAC7B,OAAK5/B,EAKEzsB,GAAQ,KAAK,OAAO,EACrB,KAAK,QAAQysB,EAAE,MAAK,CAAE,EACtB,KAAK,SACA,KAAK,QAAQ,UAAYipC,IAAkB,KAAKrJ,CAAM,EACjD,SACA,YACpB,EAAY5/B,EAAE,OAAO,EAVNzsB,GAAQ,KAAK,OAAO,EACrB,KAAK,QACL,KAAK,QAAQ,UAS3B,CAEA,SAAS81D,GAAkBrpC,EAAG4/B,EAAQ,CAClC,OAAK5/B,EAKEzsB,GAAQ,KAAK,YAAY,EAC1B,KAAK,aAAaysB,EAAE,MAAK,CAAE,EAC3B,KAAK,aACDipC,GAAiB,KAAKrJ,CAAM,EAAI,SAAW,YACzD,EAAY5/B,EAAE,OAAO,EARNzsB,GAAQ,KAAK,YAAY,EAC1B,KAAK,aACL,KAAK,aAAa,UAOhC,CAEA,SAAS+1D,GAAkBC,EAAW3J,EAAQE,EAAQ,CAClD,IAAI1sD,EACAo2D,EACA5H,EACA6H,EAAMF,EAAU,kBAAiB,EACrC,GAAI,CAAC,KAAK,aAKN,IAHA,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,GACpBn2D,EAAI,EAAGA,EAAI,GAAI,EAAEA,EAClBwuD,EAAMjC,GAAU,CAAC,IAAMvsD,CAAC,CAAC,EACzB,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BwuD,EACA,EAChB,EAAc,kBAAiB,EACnB,KAAK,iBAAiBxuD,CAAC,EAAI,KAAK,OAAOwuD,EAAK,EAAE,EAAE,kBAAiB,EAIzE,OAAI9B,EACIF,IAAW,OACX4J,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACtCD,IAAO,GAAKA,EAAK,OAExBA,EAAKZ,GAAQ,KAAK,KAAK,iBAAkBa,CAAG,EACrCD,IAAO,GAAKA,EAAK,MAGxB5J,IAAW,OACX4J,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACzCD,IAAO,GACAA,GAEXA,EAAKZ,GAAQ,KAAK,KAAK,iBAAkBa,CAAG,EACrCD,IAAO,GAAKA,EAAK,QAExBA,EAAKZ,GAAQ,KAAK,KAAK,iBAAkBa,CAAG,EACxCD,IAAO,GACAA,GAEXA,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACtCD,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAASE,GAAkBH,EAAW3J,EAAQE,EAAQ,CAClD,IAAI1sD,EAAGwuD,EAAKkE,EAEZ,GAAI,KAAK,kBACL,OAAOwD,GAAkB,KAAK,KAAMC,EAAW3J,EAAQE,CAAM,EAYjE,IATK,KAAK,eACN,KAAK,aAAe,GACpB,KAAK,iBAAmB,GACxB,KAAK,kBAAoB,IAMxB1sD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAmBrB,GAjBAwuD,EAAMjC,GAAU,CAAC,IAAMvsD,CAAC,CAAC,EACrB0sD,GAAU,CAAC,KAAK,iBAAiB1sD,CAAC,IAClC,KAAK,iBAAiBA,CAAC,EAAI,IAAI,OAC3B,IAAM,KAAK,OAAOwuD,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IAC9C,GAChB,EACY,KAAK,kBAAkBxuD,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYwuD,EAAK,EAAE,EAAE,QAAQ,IAAK,EAAE,EAAI,IACnD,GAChB,GAEY,CAAC9B,GAAU,CAAC,KAAK,aAAa1sD,CAAC,IAC/B0yD,EACI,IAAM,KAAK,OAAOlE,EAAK,EAAE,EAAI,KAAO,KAAK,YAAYA,EAAK,EAAE,EAChE,KAAK,aAAaxuD,CAAC,EAAI,IAAI,OAAO0yD,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI7DhG,GACAF,IAAW,QACX,KAAK,iBAAiBxsD,CAAC,EAAE,KAAKm2D,CAAS,EAEvC,OAAOn2D,EACJ,GACH0sD,GACAF,IAAW,OACX,KAAK,kBAAkBxsD,CAAC,EAAE,KAAKm2D,CAAS,EAExC,OAAOn2D,EACJ,GAAI,CAAC0sD,GAAU,KAAK,aAAa1sD,CAAC,EAAE,KAAKm2D,CAAS,EACrD,OAAOn2D,CAEf,CACJ,CAIA,SAASu2D,GAAS/H,EAAKztD,EAAO,CAC1B,GAAI,CAACytD,EAAI,UAEL,OAAOA,EAGX,GAAI,OAAOztD,GAAU,UACjB,GAAI,QAAQ,KAAKA,CAAK,EAClBA,EAAQuyD,GAAMvyD,CAAK,UAEnBA,EAAQytD,EAAI,aAAa,YAAYztD,CAAK,EAEtC,CAACsrD,GAAStrD,CAAK,EACf,OAAOytD,EAKnB,IAAIyG,EAAQl0D,EACRm0D,EAAO1G,EAAI,KAAI,EAEnB,OAAA0G,EAAOA,EAAO,GAAKA,EAAO,KAAK,IAAIA,EAAMO,GAAYjH,EAAI,KAAI,EAAIyG,CAAK,CAAC,EACjEzG,EAAI,OACJA,EAAI,GAAG,YAAYyG,EAAOC,CAAI,EAC9B1G,EAAI,GAAG,SAASyG,EAAOC,CAAI,EAC1B1G,CACX,CAEA,SAASgI,GAAYz1D,EAAO,CACxB,OAAIA,GAAS,MACTw1D,GAAS,KAAMx1D,CAAK,EACpB+c,GAAM,aAAa,KAAM,EAAI,EACtB,MAEApP,GAAI,KAAM,OAAO,CAEhC,CAEA,SAAS+nD,IAAiB,CACtB,OAAOhB,GAAY,KAAK,KAAI,EAAI,KAAK,MAAK,CAAE,CAChD,CAEA,SAASiB,GAAiB9D,EAAU,CAChC,OAAI,KAAK,mBACA1G,GAAW,KAAM,cAAc,GAChCyK,GAAmB,KAAK,IAAI,EAE5B/D,EACO,KAAK,wBAEL,KAAK,oBAGX1G,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoB4J,IAEtB,KAAK,yBAA2BlD,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAASgE,GAAYhE,EAAU,CAC3B,OAAI,KAAK,mBACA1G,GAAW,KAAM,cAAc,GAChCyK,GAAmB,KAAK,IAAI,EAE5B/D,EACO,KAAK,mBAEL,KAAK,eAGX1G,GAAW,KAAM,cAAc,IAChC,KAAK,aAAe6J,IAEjB,KAAK,oBAAsBnD,EAC5B,KAAK,mBACL,KAAK,aAEnB,CAEA,SAAS+D,IAAqB,CAC1B,SAASE,EAAU7yD,EAAGC,EAAG,CACrB,OAAOA,EAAE,OAASD,EAAE,MACxB,CAEA,IAAI8yD,EAAc,GACdC,EAAa,GACbC,EAAc,GACdh3D,EACAwuD,EACAyI,EACAC,EACJ,IAAKl3D,EAAI,EAAGA,EAAI,GAAIA,IAEhBwuD,EAAMjC,GAAU,CAAC,IAAMvsD,CAAC,CAAC,EACzBi3D,EAASjE,GAAY,KAAK,YAAYxE,EAAK,EAAE,CAAC,EAC9C0I,EAAQlE,GAAY,KAAK,OAAOxE,EAAK,EAAE,CAAC,EACxCsI,EAAY,KAAKG,CAAM,EACvBF,EAAW,KAAKG,CAAK,EACrBF,EAAY,KAAKE,CAAK,EACtBF,EAAY,KAAKC,CAAM,EAI3BH,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,aAAe,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACtE,KAAK,kBAAoB,KAAK,aAC9B,KAAK,mBAAqB,IAAI,OAC1B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,CACA,CAEA,SAASK,GAAW3C,EAAG5nC,EAAG2Y,EAAGpZ,EAAGirC,EAAG,EAAGC,EAAI,CAGtC,IAAInC,EAEJ,OAAIV,EAAI,KAAOA,GAAK,GAEhBU,EAAO,IAAI,KAAKV,EAAI,IAAK5nC,EAAG2Y,EAAGpZ,EAAGirC,EAAG,EAAGC,CAAE,EACtC,SAASnC,EAAK,YAAW,CAAE,GAC3BA,EAAK,YAAYV,CAAC,GAGtBU,EAAO,IAAI,KAAKV,EAAG5nC,EAAG2Y,EAAGpZ,EAAGirC,EAAG,EAAGC,CAAE,EAGjCnC,CACX,CAEA,SAASoC,GAAc9C,EAAG,CACtB,IAAIU,EAAMzqD,EAEV,OAAI+pD,EAAI,KAAOA,GAAK,GAChB/pD,EAAO,MAAM,UAAU,MAAM,KAAK,SAAS,EAE3CA,EAAK,CAAC,EAAI+pD,EAAI,IACdU,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAMzqD,CAAI,CAAC,EACtC,SAASyqD,EAAK,eAAc,CAAE,GAC9BA,EAAK,eAAeV,CAAC,GAGzBU,EAAO,IAAI,KAAK,KAAK,IAAI,MAAM,KAAM,SAAS,CAAC,EAG5CA,CACX,CAGA,SAASqC,GAAgBzD,EAAM0D,EAAKC,EAAK,CACrC,IACIC,EAAM,EAAIF,EAAMC,EAEhBE,GAAS,EAAIL,GAAcxD,EAAM,EAAG4D,CAAG,EAAE,YAAcF,GAAO,EAElE,MAAO,CAACG,EAAQD,EAAM,CAC1B,CAGA,SAASE,GAAmB9D,EAAM+D,EAAMC,EAASN,EAAKC,EAAK,CACvD,IAAIM,GAAgB,EAAID,EAAUN,GAAO,EACrCQ,EAAaT,GAAgBzD,EAAM0D,EAAKC,CAAG,EAC3CQ,EAAY,EAAI,GAAKJ,EAAO,GAAKE,EAAeC,EAChDE,EACAC,EAEJ,OAAIF,GAAa,GACbC,EAAUpE,EAAO,EACjBqE,EAAe1D,GAAWyD,CAAO,EAAID,GAC9BA,EAAYxD,GAAWX,CAAI,GAClCoE,EAAUpE,EAAO,EACjBqE,EAAeF,EAAYxD,GAAWX,CAAI,IAE1CoE,EAAUpE,EACVqE,EAAeF,GAGZ,CACH,KAAMC,EACN,UAAWC,CACnB,CACA,CAEA,SAASC,GAAW5J,EAAKgJ,EAAKC,EAAK,CAC/B,IAAIO,EAAaT,GAAgB/I,EAAI,KAAI,EAAIgJ,EAAKC,CAAG,EACjDI,EAAO,KAAK,OAAOrJ,EAAI,UAAS,EAAKwJ,EAAa,GAAK,CAAC,EAAI,EAC5DK,EACAH,EAEJ,OAAIL,EAAO,GACPK,EAAU1J,EAAI,KAAI,EAAK,EACvB6J,EAAUR,EAAOS,GAAYJ,EAASV,EAAKC,CAAG,GACvCI,EAAOS,GAAY9J,EAAI,OAAQgJ,EAAKC,CAAG,GAC9CY,EAAUR,EAAOS,GAAY9J,EAAI,KAAI,EAAIgJ,EAAKC,CAAG,EACjDS,EAAU1J,EAAI,KAAI,EAAK,IAEvB0J,EAAU1J,EAAI,KAAI,EAClB6J,EAAUR,GAGP,CACH,KAAMQ,EACN,KAAMH,CACd,CACA,CAEA,SAASI,GAAYxE,EAAM0D,EAAKC,EAAK,CACjC,IAAIO,EAAaT,GAAgBzD,EAAM0D,EAAKC,CAAG,EAC3Cc,EAAiBhB,GAAgBzD,EAAO,EAAG0D,EAAKC,CAAG,EACvD,OAAQhD,GAAWX,CAAI,EAAIkE,EAAaO,GAAkB,CAC9D,CAIAlJ,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAC3CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,SAAS,EAI9CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EAErCqC,GACI,CAAC,IAAK,KAAM,IAAK,IAAI,EACrB,SAAU1H,EAAO4L,EAAMnO,EAAQrQ,EAAO,CAClCwe,EAAKxe,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIia,GAAMrH,CAAK,CAC1C,CACJ,EAMA,SAASuM,GAAWhK,EAAK,CACrB,OAAO4J,GAAW5J,EAAK,KAAK,MAAM,IAAK,KAAK,MAAM,GAAG,EAAE,IAC3D,CAEA,IAAIiK,GAAoB,CACpB,IAAK,EACL,IAAK,CACT,EAEA,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAEA,SAASC,IAAuB,CAC5B,OAAO,KAAK,MAAM,GACtB,CAIA,SAASC,GAAW3M,EAAO,CACvB,IAAI4L,EAAO,KAAK,WAAU,EAAG,KAAK,IAAI,EACtC,OAAO5L,GAAS,KAAO4L,EAAO,KAAK,KAAK5L,EAAQ4L,GAAQ,EAAG,GAAG,CAClE,CAEA,SAASgB,GAAc5M,EAAO,CAC1B,IAAI4L,EAAOO,GAAW,KAAM,EAAG,CAAC,EAAE,KAClC,OAAOnM,GAAS,KAAO4L,EAAO,KAAK,KAAK5L,EAAQ4L,GAAQ,EAAG,GAAG,CAClE,CAIAxI,GAAe,IAAK,EAAG,KAAM,KAAK,EAElCA,GAAe,KAAM,EAAG,EAAG,SAAU7C,EAAQ,CACzC,OAAO,KAAK,WAAU,EAAG,YAAY,KAAMA,CAAM,CACrD,CAAC,EAED6C,GAAe,MAAO,EAAG,EAAG,SAAU7C,EAAQ,CAC1C,OAAO,KAAK,WAAU,EAAG,cAAc,KAAMA,CAAM,CACvD,CAAC,EAED6C,GAAe,OAAQ,EAAG,EAAG,SAAU7C,EAAQ,CAC3C,OAAO,KAAK,WAAU,EAAG,SAAS,KAAMA,CAAM,CAClD,CAAC,EAED6C,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,IAAK,EAAG,EAAG,YAAY,EAItCoD,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,IAAKf,EAAS,EAC5Be,GAAc,KAAM,SAAUG,EAAUnG,EAAQ,CAC5C,OAAOA,EAAO,iBAAiBmG,CAAQ,CAC3C,CAAC,EACDH,GAAc,MAAO,SAAUG,EAAUnG,EAAQ,CAC7C,OAAOA,EAAO,mBAAmBmG,CAAQ,CAC7C,CAAC,EACDH,GAAc,OAAQ,SAAUG,EAAUnG,EAAQ,CAC9C,OAAOA,EAAO,cAAcmG,CAAQ,CACxC,CAAC,EAEDe,GAAkB,CAAC,KAAM,MAAO,MAAM,EAAG,SAAU1H,EAAO4L,EAAMnO,EAAQrQ,EAAO,CAC3E,IAAIye,EAAUpO,EAAO,QAAQ,cAAcuC,EAAO5S,EAAOqQ,EAAO,OAAO,EAEnEoO,GAAW,KACXD,EAAK,EAAIC,EAETjL,GAAgBnD,CAAM,EAAE,eAAiBuC,CAEjD,CAAC,EAED0H,GAAkB,CAAC,IAAK,IAAK,GAAG,EAAG,SAAU1H,EAAO4L,EAAMnO,EAAQrQ,EAAO,CACrEwe,EAAKxe,CAAK,EAAIia,GAAMrH,CAAK,CAC7B,CAAC,EAID,SAAS6M,GAAa7M,EAAOQ,EAAQ,CACjC,OAAI,OAAOR,GAAU,SACVA,EAGN,MAAMA,CAAK,GAIhBA,EAAQQ,EAAO,cAAcR,CAAK,EAC9B,OAAOA,GAAU,SACVA,EAGJ,MARI,SAASA,EAAO,EAAE,CASjC,CAEA,SAAS8M,GAAgB9M,EAAOQ,EAAQ,CACpC,OAAI,OAAOR,GAAU,SACVQ,EAAO,cAAcR,CAAK,EAAI,GAAK,EAEvC,MAAMA,CAAK,EAAI,KAAOA,CACjC,CAGA,SAAS+M,GAAcC,EAAI12D,EAAG,CAC1B,OAAO02D,EAAG,MAAM12D,EAAG,CAAC,EAAE,OAAO02D,EAAG,MAAM,EAAG12D,CAAC,CAAC,CAC/C,CAEA,IAAI22D,GACI,2DAA2D,MAAM,GAAG,EACxEC,GAA6B,8BAA8B,MAAM,GAAG,EACpEC,GAA2B,uBAAuB,MAAM,GAAG,EAC3DC,GAAuBhH,GACvBiH,GAA4BjH,GAC5BkH,GAA0BlH,GAE9B,SAASmH,GAAe5sC,EAAG4/B,EAAQ,CAC/B,IAAIiN,EAAWt5D,GAAQ,KAAK,SAAS,EAC/B,KAAK,UACL,KAAK,UACDysB,GAAKA,IAAM,IAAQ,KAAK,UAAU,SAAS,KAAK4/B,CAAM,EAChD,SACA,YACpB,EACI,OAAO5/B,IAAM,GACPosC,GAAcS,EAAU,KAAK,MAAM,GAAG,EACtC7sC,EACE6sC,EAAS7sC,EAAE,IAAG,CAAE,EAChB6sC,CACZ,CAEA,SAASC,GAAoB9sC,EAAG,CAC5B,OAAOA,IAAM,GACPosC,GAAc,KAAK,eAAgB,KAAK,MAAM,GAAG,EACjDpsC,EACE,KAAK,eAAeA,EAAE,IAAG,CAAE,EAC3B,KAAK,cACjB,CAEA,SAAS+sC,GAAkB/sC,EAAG,CAC1B,OAAOA,IAAM,GACPosC,GAAc,KAAK,aAAc,KAAK,MAAM,GAAG,EAC/CpsC,EACE,KAAK,aAAaA,EAAE,IAAG,CAAE,EACzB,KAAK,YACjB,CAEA,SAASgtC,GAAoBC,EAAarN,EAAQE,EAAQ,CACtD,IAAI1sD,EACAo2D,EACA5H,EACA6H,EAAMwD,EAAY,kBAAiB,EACvC,GAAI,CAAC,KAAK,eAKN,IAJA,KAAK,eAAiB,GACtB,KAAK,oBAAsB,GAC3B,KAAK,kBAAoB,GAEpB75D,EAAI,EAAGA,EAAI,EAAG,EAAEA,EACjBwuD,EAAMjC,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIvsD,CAAC,EAChC,KAAK,kBAAkBA,CAAC,EAAI,KAAK,YAC7BwuD,EACA,EAChB,EAAc,kBAAiB,EACnB,KAAK,oBAAoBxuD,CAAC,EAAI,KAAK,cAC/BwuD,EACA,EAChB,EAAc,kBAAiB,EACnB,KAAK,eAAexuD,CAAC,EAAI,KAAK,SAASwuD,EAAK,EAAE,EAAE,kBAAiB,EAIzE,OAAI9B,EACIF,IAAW,QACX4J,EAAKZ,GAAQ,KAAK,KAAK,eAAgBa,CAAG,EACnCD,IAAO,GAAKA,EAAK,MACjB5J,IAAW,OAClB4J,EAAKZ,GAAQ,KAAK,KAAK,oBAAqBa,CAAG,EACxCD,IAAO,GAAKA,EAAK,OAExBA,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACtCD,IAAO,GAAKA,EAAK,MAGxB5J,IAAW,QACX4J,EAAKZ,GAAQ,KAAK,KAAK,eAAgBa,CAAG,EACtCD,IAAO,KAGXA,EAAKZ,GAAQ,KAAK,KAAK,oBAAqBa,CAAG,EAC3CD,IAAO,IACAA,GAEXA,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACtCD,IAAO,GAAKA,EAAK,OACjB5J,IAAW,OAClB4J,EAAKZ,GAAQ,KAAK,KAAK,oBAAqBa,CAAG,EAC3CD,IAAO,KAGXA,EAAKZ,GAAQ,KAAK,KAAK,eAAgBa,CAAG,EACtCD,IAAO,IACAA,GAEXA,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACtCD,IAAO,GAAKA,EAAK,QAExBA,EAAKZ,GAAQ,KAAK,KAAK,kBAAmBa,CAAG,EACzCD,IAAO,KAGXA,EAAKZ,GAAQ,KAAK,KAAK,eAAgBa,CAAG,EACtCD,IAAO,IACAA,GAEXA,EAAKZ,GAAQ,KAAK,KAAK,oBAAqBa,CAAG,EACxCD,IAAO,GAAKA,EAAK,MAGpC,CAEA,SAAS0D,GAAoBD,EAAarN,EAAQE,EAAQ,CACtD,IAAI1sD,EAAGwuD,EAAKkE,EAEZ,GAAI,KAAK,oBACL,OAAOkH,GAAoB,KAAK,KAAMC,EAAarN,EAAQE,CAAM,EAUrE,IAPK,KAAK,iBACN,KAAK,eAAiB,GACtB,KAAK,kBAAoB,GACzB,KAAK,oBAAsB,GAC3B,KAAK,mBAAqB,IAGzB1sD,EAAI,EAAGA,EAAI,EAAGA,IAAK,CA6BpB,GA1BAwuD,EAAMjC,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIvsD,CAAC,EAC5B0sD,GAAU,CAAC,KAAK,mBAAmB1sD,CAAC,IACpC,KAAK,mBAAmBA,CAAC,EAAI,IAAI,OAC7B,IAAM,KAAK,SAASwuD,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACpD,GAChB,EACY,KAAK,oBAAoBxuD,CAAC,EAAI,IAAI,OAC9B,IAAM,KAAK,cAAcwuD,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACzD,GAChB,EACY,KAAK,kBAAkBxuD,CAAC,EAAI,IAAI,OAC5B,IAAM,KAAK,YAAYwuD,EAAK,EAAE,EAAE,QAAQ,IAAK,MAAM,EAAI,IACvD,GAChB,GAEa,KAAK,eAAexuD,CAAC,IACtB0yD,EACI,IACA,KAAK,SAASlE,EAAK,EAAE,EACrB,KACA,KAAK,cAAcA,EAAK,EAAE,EAC1B,KACA,KAAK,YAAYA,EAAK,EAAE,EAC5B,KAAK,eAAexuD,CAAC,EAAI,IAAI,OAAO0yD,EAAM,QAAQ,IAAK,EAAE,EAAG,GAAG,GAI/DhG,GACAF,IAAW,QACX,KAAK,mBAAmBxsD,CAAC,EAAE,KAAK65D,CAAW,EAE3C,OAAO75D,EACJ,GACH0sD,GACAF,IAAW,OACX,KAAK,oBAAoBxsD,CAAC,EAAE,KAAK65D,CAAW,EAE5C,OAAO75D,EACJ,GACH0sD,GACAF,IAAW,MACX,KAAK,kBAAkBxsD,CAAC,EAAE,KAAK65D,CAAW,EAE1C,OAAO75D,EACJ,GAAI,CAAC0sD,GAAU,KAAK,eAAe1sD,CAAC,EAAE,KAAK65D,CAAW,EACzD,OAAO75D,CAEf,CACJ,CAIA,SAAS+5D,GAAgB9N,EAAO,CAC5B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAGlC,IAAI+N,EAAMtrD,GAAI,KAAM,KAAK,EACzB,OAAIu9C,GAAS,MACTA,EAAQ6M,GAAa7M,EAAO,KAAK,WAAU,CAAE,EACtC,KAAK,IAAIA,EAAQ+N,EAAK,GAAG,GAEzBA,CAEf,CAEA,SAASC,GAAsBhO,EAAO,CAClC,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAElC,IAAI6L,GAAW,KAAK,MAAQ,EAAI,KAAK,WAAU,EAAG,MAAM,KAAO,EAC/D,OAAO7L,GAAS,KAAO6L,EAAU,KAAK,IAAI7L,EAAQ6L,EAAS,GAAG,CAClE,CAEA,SAASoC,GAAmBjO,EAAO,CAC/B,GAAI,CAAC,KAAK,UACN,OAAOA,GAAS,KAAO,KAAO,IAOlC,GAAIA,GAAS,KAAM,CACf,IAAI6L,EAAUiB,GAAgB9M,EAAO,KAAK,WAAU,CAAE,EACtD,OAAO,KAAK,IAAI,KAAK,IAAG,EAAK,EAAI6L,EAAUA,EAAU,CAAC,CAC1D,KACI,QAAO,KAAK,IAAG,GAAM,CAE7B,CAEA,SAASqC,GAAcvH,EAAU,CAC7B,OAAI,KAAK,qBACA1G,GAAW,KAAM,gBAAgB,GAClCkO,GAAqB,KAAK,IAAI,EAE9BxH,EACO,KAAK,qBAEL,KAAK,iBAGX1G,GAAW,KAAM,gBAAgB,IAClC,KAAK,eAAiBmN,IAEnB,KAAK,sBAAwBzG,EAC9B,KAAK,qBACL,KAAK,eAEnB,CAEA,SAASyH,GAAmBzH,EAAU,CAClC,OAAI,KAAK,qBACA1G,GAAW,KAAM,gBAAgB,GAClCkO,GAAqB,KAAK,IAAI,EAE9BxH,EACO,KAAK,0BAEL,KAAK,sBAGX1G,GAAW,KAAM,qBAAqB,IACvC,KAAK,oBAAsBoN,IAExB,KAAK,2BAA6B1G,EACnC,KAAK,0BACL,KAAK,oBAEnB,CAEA,SAAS0H,GAAiB1H,EAAU,CAChC,OAAI,KAAK,qBACA1G,GAAW,KAAM,gBAAgB,GAClCkO,GAAqB,KAAK,IAAI,EAE9BxH,EACO,KAAK,wBAEL,KAAK,oBAGX1G,GAAW,KAAM,mBAAmB,IACrC,KAAK,kBAAoBqN,IAEtB,KAAK,yBAA2B3G,EACjC,KAAK,wBACL,KAAK,kBAEnB,CAEA,SAASwH,IAAuB,CAC5B,SAASvD,EAAU7yD,EAAGC,EAAG,CACrB,OAAOA,EAAE,OAASD,EAAE,MACxB,CAEA,IAAIu2D,EAAY,GACZzD,EAAc,GACdC,EAAa,GACbC,EAAc,GACdh3D,EACAwuD,EACAgM,EACAC,EACAC,EACJ,IAAK16D,EAAI,EAAGA,EAAI,EAAGA,IAEfwuD,EAAMjC,GAAU,CAAC,IAAM,CAAC,CAAC,EAAE,IAAIvsD,CAAC,EAChCw6D,EAAOxH,GAAY,KAAK,YAAYxE,EAAK,EAAE,CAAC,EAC5CiM,EAASzH,GAAY,KAAK,cAAcxE,EAAK,EAAE,CAAC,EAChDkM,EAAQ1H,GAAY,KAAK,SAASxE,EAAK,EAAE,CAAC,EAC1C+L,EAAU,KAAKC,CAAI,EACnB1D,EAAY,KAAK2D,CAAM,EACvB1D,EAAW,KAAK2D,CAAK,EACrB1D,EAAY,KAAKwD,CAAI,EACrBxD,EAAY,KAAKyD,CAAM,EACvBzD,EAAY,KAAK0D,CAAK,EAI1BH,EAAU,KAAK1D,CAAS,EACxBC,EAAY,KAAKD,CAAS,EAC1BE,EAAW,KAAKF,CAAS,EACzBG,EAAY,KAAKH,CAAS,EAE1B,KAAK,eAAiB,IAAI,OAAO,KAAOG,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACxE,KAAK,oBAAsB,KAAK,eAChC,KAAK,kBAAoB,KAAK,eAE9B,KAAK,qBAAuB,IAAI,OAC5B,KAAOD,EAAW,KAAK,GAAG,EAAI,IAC9B,GACR,EACI,KAAK,0BAA4B,IAAI,OACjC,KAAOD,EAAY,KAAK,GAAG,EAAI,IAC/B,GACR,EACI,KAAK,wBAA0B,IAAI,OAC/B,KAAOyD,EAAU,KAAK,GAAG,EAAI,IAC7B,GACR,CACA,CAIA,SAASI,IAAU,CACf,OAAO,KAAK,QAAU,IAAM,EAChC,CAEA,SAASC,IAAU,CACf,OAAO,KAAK,MAAK,GAAM,EAC3B,CAEAvL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,MAAM,EACxCA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGsL,EAAO,EACzCtL,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAGuL,EAAO,EAEzCvL,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAKsL,GAAQ,MAAM,IAAI,EAAIhM,GAAS,KAAK,QAAO,EAAI,CAAC,CAChE,CAAC,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACAsL,GAAQ,MAAM,IAAI,EAClBhM,GAAS,KAAK,QAAO,EAAI,CAAC,EAC1BA,GAAS,KAAK,QAAO,EAAI,CAAC,CAElC,CAAC,EAEDU,GAAe,MAAO,EAAG,EAAG,UAAY,CACpC,MAAO,GAAK,KAAK,MAAK,EAAKV,GAAS,KAAK,QAAO,EAAI,CAAC,CACzD,CAAC,EAEDU,GAAe,QAAS,EAAG,EAAG,UAAY,CACtC,MACI,GACA,KAAK,MAAK,EACVV,GAAS,KAAK,QAAO,EAAI,CAAC,EAC1BA,GAAS,KAAK,QAAO,EAAI,CAAC,CAElC,CAAC,EAED,SAASkM,GAASxhB,EAAOyhB,EAAW,CAChCzL,GAAehW,EAAO,EAAG,EAAG,UAAY,CACpC,OAAO,KAAK,WAAU,EAAG,SACrB,KAAK,MAAK,EACV,KAAK,QAAO,EACZyhB,CACZ,CACI,CAAC,CACL,CAEAD,GAAS,IAAK,EAAI,EAClBA,GAAS,IAAK,EAAK,EAInB,SAASE,GAAcnI,EAAUnG,EAAQ,CACrC,OAAOA,EAAO,cAClB,CAEAgG,GAAc,IAAKsI,EAAa,EAChCtI,GAAc,IAAKsI,EAAa,EAChCtI,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EAErCmB,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAChCa,GAAc,MAAOd,EAAS,EAC9Bc,GAAc,QAASb,EAAS,EAEhC6B,GAAc,CAAC,IAAK,IAAI,EAAGS,EAAI,EAC/BT,GAAc,CAAC,IAAK,IAAI,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACvD,IAAIsR,EAAS1H,GAAMrH,CAAK,EACxBhiD,EAAMiqD,EAAI,EAAI8G,IAAW,GAAK,EAAIA,CACtC,CAAC,EACDvH,GAAc,CAAC,IAAK,GAAG,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACtDA,EAAO,MAAQA,EAAO,QAAQ,KAAKuC,CAAK,EACxCvC,EAAO,UAAYuC,CACvB,CAAC,EACDwH,GAAc,CAAC,IAAK,IAAI,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACvDz/C,EAAMiqD,EAAI,EAAIZ,GAAMrH,CAAK,EACzBY,GAAgBnD,CAAM,EAAE,QAAU,EACtC,CAAC,EACD+J,GAAc,MAAO,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACjD,IAAIuR,EAAMhP,EAAM,OAAS,EACzBhiD,EAAMiqD,EAAI,EAAIZ,GAAMrH,EAAM,OAAO,EAAGgP,CAAG,CAAC,EACxChxD,EAAMkqD,EAAM,EAAIb,GAAMrH,EAAM,OAAOgP,CAAG,CAAC,EACvCpO,GAAgBnD,CAAM,EAAE,QAAU,EACtC,CAAC,EACD+J,GAAc,QAAS,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACnD,IAAIwR,EAAOjP,EAAM,OAAS,EACtBkP,EAAOlP,EAAM,OAAS,EAC1BhiD,EAAMiqD,EAAI,EAAIZ,GAAMrH,EAAM,OAAO,EAAGiP,CAAI,CAAC,EACzCjxD,EAAMkqD,EAAM,EAAIb,GAAMrH,EAAM,OAAOiP,EAAM,CAAC,CAAC,EAC3CjxD,EAAMmqD,EAAM,EAAId,GAAMrH,EAAM,OAAOkP,CAAI,CAAC,EACxCtO,GAAgBnD,CAAM,EAAE,QAAU,EACtC,CAAC,EACD+J,GAAc,MAAO,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACjD,IAAIuR,EAAMhP,EAAM,OAAS,EACzBhiD,EAAMiqD,EAAI,EAAIZ,GAAMrH,EAAM,OAAO,EAAGgP,CAAG,CAAC,EACxChxD,EAAMkqD,EAAM,EAAIb,GAAMrH,EAAM,OAAOgP,CAAG,CAAC,CAC3C,CAAC,EACDxH,GAAc,QAAS,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACnD,IAAIwR,EAAOjP,EAAM,OAAS,EACtBkP,EAAOlP,EAAM,OAAS,EAC1BhiD,EAAMiqD,EAAI,EAAIZ,GAAMrH,EAAM,OAAO,EAAGiP,CAAI,CAAC,EACzCjxD,EAAMkqD,EAAM,EAAIb,GAAMrH,EAAM,OAAOiP,EAAM,CAAC,CAAC,EAC3CjxD,EAAMmqD,EAAM,EAAId,GAAMrH,EAAM,OAAOkP,CAAI,CAAC,CAC5C,CAAC,EAID,SAASC,GAAWnP,EAAO,CAGvB,OAAQA,EAAQ,IAAI,YAAW,EAAG,OAAO,CAAC,IAAM,GACpD,CAEA,IAAIoP,GAA6B,gBAK7BC,GAAa3G,GAAW,QAAS,EAAI,EAEzC,SAAS4G,GAAeC,EAAOC,EAASC,EAAS,CAC7C,OAAIF,EAAQ,GACDE,EAAU,KAAO,KAEjBA,EAAU,KAAO,IAEhC,CAEA,IAAIC,GAAa,CACb,SAAUrN,GACV,eAAgBwB,GAChB,YAAaI,GACb,QAASE,GACT,uBAAwBC,GACxB,aAAcC,GAEd,OAAQqF,GACR,YAAaC,GAEb,KAAM6C,GAEN,SAAUS,GACV,YAAaE,GACb,cAAeD,GAEf,cAAekC,EACnB,EAGIO,GAAU,GACVC,GAAiB,GACjBC,GAEJ,SAASC,GAAaC,EAAMC,EAAM,CAC9B,IAAIj8D,EACAk8D,EAAO,KAAK,IAAIF,EAAK,OAAQC,EAAK,MAAM,EAC5C,IAAKj8D,EAAI,EAAGA,EAAIk8D,EAAMl8D,GAAK,EACvB,GAAIg8D,EAAKh8D,CAAC,IAAMi8D,EAAKj8D,CAAC,EAClB,OAAOA,EAGf,OAAOk8D,CACX,CAEA,SAASC,GAAgB/8D,EAAK,CAC1B,OAAOA,GAAMA,EAAI,YAAW,EAAG,QAAQ,IAAK,GAAG,CACnD,CAKA,SAASg9D,GAAaC,EAAO,CAOzB,QANIr8D,EAAI,EACJ8mB,EACA1f,EACAqlD,EACA6P,EAEGt8D,EAAIq8D,EAAM,QAAQ,CAKrB,IAJAC,EAAQH,GAAgBE,EAAMr8D,CAAC,CAAC,EAAE,MAAM,GAAG,EAC3C8mB,EAAIw1C,EAAM,OACVl1D,EAAO+0D,GAAgBE,EAAMr8D,EAAI,CAAC,CAAC,EACnCoH,EAAOA,EAAOA,EAAK,MAAM,GAAG,EAAI,KACzB0f,EAAI,GAAG,CAEV,GADA2lC,EAAS8P,GAAWD,EAAM,MAAM,EAAGx1C,CAAC,EAAE,KAAK,GAAG,CAAC,EAC3C2lC,EACA,OAAOA,EAEX,GACIrlD,GACAA,EAAK,QAAU0f,GACfi1C,GAAaO,EAAOl1D,CAAI,GAAK0f,EAAI,EAGjC,MAEJA,GACJ,CACA9mB,GACJ,CACA,OAAO87D,EACX,CAEA,SAASU,GAAiBj5D,EAAM,CAG5B,MAAO,CAAC,EAAEA,GAAQA,EAAK,MAAM,aAAa,EAC9C,CAEA,SAASg5D,GAAWh5D,EAAM,CACtB,IAAIk5D,EAAY,KACZC,EAEJ,GACId,GAAQr4D,CAAI,IAAM,QAClB,OAAO,OAAW,KAClB,QACA,OAAO,SACPi5D,GAAiBj5D,CAAI,EAErB,GAAI,CACAk5D,EAAYX,GAAa,MACzBY,EAAiB,QACjBA,EAAe,YAAcn5D,CAAI,EACjCo5D,GAAmBF,CAAS,CAChC,MAAY,CAGRb,GAAQr4D,CAAI,EAAI,IACpB,CAEJ,OAAOq4D,GAAQr4D,CAAI,CACvB,CAKA,SAASo5D,GAAmBv9D,EAAKoV,EAAQ,CACrC,IAAI4T,EACJ,OAAIhpB,IACIgtD,GAAY53C,CAAM,EAClB4T,EAAOw0C,GAAUx9D,CAAG,EAEpBgpB,EAAOy0C,GAAaz9D,EAAKoV,CAAM,EAG/B4T,EAEA0zC,GAAe1zC,EAEX,OAAO,QAAY,KAAe,QAAQ,MAE1C,QAAQ,KACJ,UAAYhpB,EAAM,wCACtC,GAKW08D,GAAa,KACxB,CAEA,SAASe,GAAat5D,EAAMmmD,EAAQ,CAChC,GAAIA,IAAW,KAAM,CACjB,IAAI+C,EACA0B,EAAewN,GAEnB,GADAjS,EAAO,KAAOnmD,EACVq4D,GAAQr4D,CAAI,GAAK,KACjB0qD,GACI,uBACA,yOAIhB,EACYE,EAAeyN,GAAQr4D,CAAI,EAAE,gBACtBmmD,EAAO,cAAgB,KAC9B,GAAIkS,GAAQlS,EAAO,YAAY,GAAK,KAChCyE,EAAeyN,GAAQlS,EAAO,YAAY,EAAE,gBAE5C+C,EAAS8P,GAAW7S,EAAO,YAAY,EACnC+C,GAAU,KACV0B,EAAe1B,EAAO,YAEtB,QAAKoP,GAAenS,EAAO,YAAY,IACnCmS,GAAenS,EAAO,YAAY,EAAI,IAE1CmS,GAAenS,EAAO,YAAY,EAAE,KAAK,CACrC,KAAMnmD,EACN,OAAQmmD,CAChC,CAAqB,EACM,KAInB,OAAAkS,GAAQr4D,CAAI,EAAI,IAAI8qD,GAAOH,GAAaC,EAAczE,CAAM,CAAC,EAEzDmS,GAAet4D,CAAI,GACnBs4D,GAAet4D,CAAI,EAAE,QAAQ,SAAUmH,EAAG,CACtCmyD,GAAanyD,EAAE,KAAMA,EAAE,MAAM,CACjC,CAAC,EAMLiyD,GAAmBp5D,CAAI,EAEhBq4D,GAAQr4D,CAAI,CACvB,KAEI,eAAOq4D,GAAQr4D,CAAI,EACZ,IAEf,CAEA,SAASu5D,GAAav5D,EAAMmmD,EAAQ,CAChC,GAAIA,GAAU,KAAM,CAChB,IAAI+C,EACAsQ,EACA5O,EAAewN,GAEfC,GAAQr4D,CAAI,GAAK,MAAQq4D,GAAQr4D,CAAI,EAAE,cAAgB,KAEvDq4D,GAAQr4D,CAAI,EAAE,IAAI2qD,GAAa0N,GAAQr4D,CAAI,EAAE,QAASmmD,CAAM,CAAC,GAG7DqT,EAAYR,GAAWh5D,CAAI,EACvBw5D,GAAa,OACb5O,EAAe4O,EAAU,SAE7BrT,EAASwE,GAAaC,EAAczE,CAAM,EACtCqT,GAAa,OAIbrT,EAAO,KAAOnmD,GAElBkpD,EAAS,IAAI4B,GAAO3E,CAAM,EAC1B+C,EAAO,aAAemP,GAAQr4D,CAAI,EAClCq4D,GAAQr4D,CAAI,EAAIkpD,GAIpBkQ,GAAmBp5D,CAAI,CAC3B,MAEQq4D,GAAQr4D,CAAI,GAAK,OACbq4D,GAAQr4D,CAAI,EAAE,cAAgB,MAC9Bq4D,GAAQr4D,CAAI,EAAIq4D,GAAQr4D,CAAI,EAAE,aAC1BA,IAASo5D,MACTA,GAAmBp5D,CAAI,GAEpBq4D,GAAQr4D,CAAI,GAAK,MACxB,OAAOq4D,GAAQr4D,CAAI,GAI/B,OAAOq4D,GAAQr4D,CAAI,CACvB,CAGA,SAASq5D,GAAUx9D,EAAK,CACpB,IAAIqtD,EAMJ,GAJIrtD,GAAOA,EAAI,SAAWA,EAAI,QAAQ,QAClCA,EAAMA,EAAI,QAAQ,OAGlB,CAACA,EACD,OAAO08D,GAGX,GAAI,CAAC37D,GAAQf,CAAG,EAAG,CAGf,GADAqtD,EAAS8P,GAAWn9D,CAAG,EACnBqtD,EACA,OAAOA,EAEXrtD,EAAM,CAACA,CAAG,CACd,CAEA,OAAOg9D,GAAah9D,CAAG,CAC3B,CAEA,SAAS49D,IAAc,CACnB,OAAO/6C,GAAK25C,EAAO,CACvB,CAEA,SAASqB,GAAcrwC,EAAG,CACtB,IAAIswC,EACAl5D,EAAI4oB,EAAE,GAEV,OAAI5oB,GAAK6oD,GAAgBjgC,CAAC,EAAE,WAAa,KACrCswC,EACIl5D,EAAEgwD,EAAK,EAAI,GAAKhwD,EAAEgwD,EAAK,EAAI,GACrBA,GACAhwD,EAAEiwD,EAAI,EAAI,GAAKjwD,EAAEiwD,EAAI,EAAIwB,GAAYzxD,EAAE+vD,EAAI,EAAG/vD,EAAEgwD,EAAK,CAAC,EACpDC,GACAjwD,EAAEkwD,EAAI,EAAI,GACRlwD,EAAEkwD,EAAI,EAAI,IACTlwD,EAAEkwD,EAAI,IAAM,KACRlwD,EAAEmwD,EAAM,IAAM,GACXnwD,EAAEowD,EAAM,IAAM,GACdpwD,EAAEqwD,EAAW,IAAM,GAC3BH,GACAlwD,EAAEmwD,EAAM,EAAI,GAAKnwD,EAAEmwD,EAAM,EAAI,GAC3BA,GACAnwD,EAAEowD,EAAM,EAAI,GAAKpwD,EAAEowD,EAAM,EAAI,GAC3BA,GACApwD,EAAEqwD,EAAW,EAAI,GAAKrwD,EAAEqwD,EAAW,EAAI,IACrCA,GACA,GAGhBxH,GAAgBjgC,CAAC,EAAE,qBAClBswC,EAAWnJ,IAAQmJ,EAAWjJ,MAE/BiJ,EAAWjJ,IAEXpH,GAAgBjgC,CAAC,EAAE,gBAAkBswC,IAAa,KAClDA,EAAW5I,IAEXzH,GAAgBjgC,CAAC,EAAE,kBAAoBswC,IAAa,KACpDA,EAAW3I,IAGf1H,GAAgBjgC,CAAC,EAAE,SAAWswC,GAG3BtwC,CACX,CAIA,IAAIuwC,GACI,iJACJC,GACI,6IACJC,GAAU,wBACVC,GAAW,CACP,CAAC,eAAgB,qBAAqB,EACtC,CAAC,aAAc,iBAAiB,EAChC,CAAC,eAAgB,gBAAgB,EACjC,CAAC,aAAc,cAAe,EAAK,EACnC,CAAC,WAAY,aAAa,EAC1B,CAAC,UAAW,aAAc,EAAK,EAC/B,CAAC,aAAc,YAAY,EAC3B,CAAC,WAAY,OAAO,EACpB,CAAC,aAAc,aAAa,EAC5B,CAAC,YAAa,cAAe,EAAK,EAClC,CAAC,UAAW,OAAO,EACnB,CAAC,SAAU,QAAS,EAAK,EACzB,CAAC,OAAQ,QAAS,EAAK,CAC/B,EAEIC,GAAW,CACP,CAAC,gBAAiB,qBAAqB,EACvC,CAAC,gBAAiB,oBAAoB,EACtC,CAAC,WAAY,gBAAgB,EAC7B,CAAC,QAAS,WAAW,EACrB,CAAC,cAAe,mBAAmB,EACnC,CAAC,cAAe,kBAAkB,EAClC,CAAC,SAAU,cAAc,EACzB,CAAC,OAAQ,UAAU,EACnB,CAAC,KAAM,MAAM,CACrB,EACIC,GAAkB,qBAElBC,GACI,0LACJC,GAAa,CACT,GAAI,EACJ,IAAK,EACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACb,EAGA,SAASC,GAAcjU,EAAQ,CAC3B,IAAI1pD,EACAuF,EACAkrD,EAAS/G,EAAO,GAChB5P,EAAQqjB,GAAiB,KAAK1M,CAAM,GAAK2M,GAAc,KAAK3M,CAAM,EAClEmN,EACAC,EACAC,EACAC,EACAC,EAAcV,GAAS,OACvBW,EAAcV,GAAS,OAE3B,GAAIzjB,EAAO,CAEP,IADA+S,GAAgBnD,CAAM,EAAE,IAAM,GACzB1pD,EAAI,EAAGuF,EAAIy4D,EAAah+D,EAAIuF,EAAGvF,IAChC,GAAIs9D,GAASt9D,CAAC,EAAE,CAAC,EAAE,KAAK85C,EAAM,CAAC,CAAC,EAAG,CAC/B+jB,EAAaP,GAASt9D,CAAC,EAAE,CAAC,EAC1B49D,EAAYN,GAASt9D,CAAC,EAAE,CAAC,IAAM,GAC/B,KACJ,CAEJ,GAAI69D,GAAc,KAAM,CACpBnU,EAAO,SAAW,GAClB,MACJ,CACA,GAAI5P,EAAM,CAAC,EAAG,CACV,IAAK95C,EAAI,EAAGuF,EAAI04D,EAAaj+D,EAAIuF,EAAGvF,IAChC,GAAIu9D,GAASv9D,CAAC,EAAE,CAAC,EAAE,KAAK85C,EAAM,CAAC,CAAC,EAAG,CAE/BgkB,GAAchkB,EAAM,CAAC,GAAK,KAAOyjB,GAASv9D,CAAC,EAAE,CAAC,EAC9C,KACJ,CAEJ,GAAI89D,GAAc,KAAM,CACpBpU,EAAO,SAAW,GAClB,MACJ,CACJ,CACA,GAAI,CAACkU,GAAaE,GAAc,KAAM,CAClCpU,EAAO,SAAW,GAClB,MACJ,CACA,GAAI5P,EAAM,CAAC,EACP,GAAIujB,GAAQ,KAAKvjB,EAAM,CAAC,CAAC,EACrBikB,EAAW,QACR,CACHrU,EAAO,SAAW,GAClB,MACJ,CAEJA,EAAO,GAAKmU,GAAcC,GAAc,KAAOC,GAAY,IAC3DG,GAA0BxU,CAAM,CACpC,MACIA,EAAO,SAAW,EAE1B,CAEA,SAASyU,GACLC,EACAC,EACAC,EACAC,EACAC,EACAC,EACF,CACE,IAAInzD,EAAS,CACTozD,GAAeN,CAAO,EACtBxI,GAAyB,QAAQyI,CAAQ,EACzC,SAASC,EAAQ,EAAE,EACnB,SAASC,EAAS,EAAE,EACpB,SAASC,EAAW,EAAE,CAC9B,EAEI,OAAIC,GACAnzD,EAAO,KAAK,SAASmzD,EAAW,EAAE,CAAC,EAGhCnzD,CACX,CAEA,SAASozD,GAAeN,EAAS,CAC7B,IAAItK,EAAO,SAASsK,EAAS,EAAE,EAC/B,OAAItK,GAAQ,GACD,IAAOA,EACPA,GAAQ,IACR,KAAOA,EAEXA,CACX,CAEA,SAAS6K,GAAkBnrD,EAAG,CAE1B,OAAOA,EACF,QAAQ,qBAAsB,GAAG,EACjC,QAAQ,WAAY,GAAG,EACvB,QAAQ,SAAU,EAAE,EACpB,QAAQ,SAAU,EAAE,CAC7B,CAEA,SAASorD,GAAaC,EAAYC,EAAapV,EAAQ,CACnD,GAAImV,EAAY,CAEZ,IAAIE,EAAkB5F,GAA2B,QAAQ0F,CAAU,EAC/DG,EAAgB,IAAI,KAChBF,EAAY,CAAC,EACbA,EAAY,CAAC,EACbA,EAAY,CAAC,CAC7B,EAAc,OAAM,EACZ,GAAIC,IAAoBC,EACpB,OAAAnS,GAAgBnD,CAAM,EAAE,gBAAkB,GAC1CA,EAAO,SAAW,GACX,EAEf,CACA,MAAO,EACX,CAEA,SAASuV,GAAgBC,EAAWC,EAAgBC,EAAW,CAC3D,GAAIF,EACA,OAAOxB,GAAWwB,CAAS,EACxB,GAAIC,EAEP,MAAO,GAEP,IAAIE,EAAK,SAASD,EAAW,EAAE,EAC3BxyC,EAAIyyC,EAAK,IACTlzC,GAAKkzC,EAAKzyC,GAAK,IACnB,OAAOT,EAAI,GAAKS,CAExB,CAGA,SAAS0yC,GAAkB5V,EAAQ,CAC/B,IAAI5P,EAAQ2jB,GAAQ,KAAKkB,GAAkBjV,EAAO,EAAE,CAAC,EACjD6V,EACJ,GAAIzlB,EAAO,CASP,GARAylB,EAAcpB,GACVrkB,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,EACPA,EAAM,CAAC,CACnB,EACY,CAAC8kB,GAAa9kB,EAAM,CAAC,EAAGylB,EAAa7V,CAAM,EAC3C,OAGJA,EAAO,GAAK6V,EACZ7V,EAAO,KAAOuV,GAAgBnlB,EAAM,CAAC,EAAGA,EAAM,CAAC,EAAGA,EAAM,EAAE,CAAC,EAE3D4P,EAAO,GAAK4N,GAAc,MAAM,KAAM5N,EAAO,EAAE,EAC/CA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAa,EAAKA,EAAO,IAAI,EAE/DmD,GAAgBnD,CAAM,EAAE,QAAU,EACtC,MACIA,EAAO,SAAW,EAE1B,CAGA,SAAS8V,GAAiB9V,EAAQ,CAC9B,IAAIlV,EAAUgpB,GAAgB,KAAK9T,EAAO,EAAE,EAC5C,GAAIlV,IAAY,KAAM,CAClBkV,EAAO,GAAK,IAAI,KAAK,CAAClV,EAAQ,CAAC,CAAC,EAChC,MACJ,CAGA,GADAmpB,GAAcjU,CAAM,EAChBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAIJ,GADA4V,GAAkB5V,CAAM,EACpBA,EAAO,WAAa,GACpB,OAAOA,EAAO,aAEd,QAGAA,EAAO,QACPA,EAAO,SAAW,GAGlB5rC,GAAM,wBAAwB4rC,CAAM,CAE5C,CAEA5rC,GAAM,wBAA0B+vC,GAC5B,gSAGA,SAAUnE,EAAQ,CACdA,EAAO,GAAK,IAAI,KAAKA,EAAO,IAAMA,EAAO,QAAU,OAAS,GAAG,CACnE,CACJ,EAGA,SAASpgC,GAAStlB,EAAGC,EAAGxC,EAAG,CACvB,OAAIuC,GAGAC,GAGGxC,CACX,CAEA,SAASg+D,GAAiB/V,EAAQ,CAE9B,IAAIgW,EAAW,IAAI,KAAK5hD,GAAM,IAAG,CAAE,EACnC,OAAI4rC,EAAO,QACA,CACHgW,EAAS,eAAc,EACvBA,EAAS,YAAW,EACpBA,EAAS,WAAU,CAC/B,EAEW,CAACA,EAAS,cAAeA,EAAS,WAAYA,EAAS,SAAS,CAC3E,CAMA,SAASC,GAAgBjW,EAAQ,CAC7B,IAAI1pD,EACAk1D,EACAjJ,EAAQ,GACR2T,EACAC,EACAC,EAEJ,GAAI,CAAApW,EAAO,GAgCX,KA5BAkW,EAAcH,GAAiB/V,CAAM,EAGjCA,EAAO,IAAMA,EAAO,GAAGuK,EAAI,GAAK,MAAQvK,EAAO,GAAGsK,EAAK,GAAK,MAC5D+L,GAAsBrW,CAAM,EAI5BA,EAAO,YAAc,OACrBoW,EAAYx2C,GAASogC,EAAO,GAAGqK,EAAI,EAAG6L,EAAY7L,EAAI,CAAC,GAGnDrK,EAAO,WAAa+K,GAAWqL,CAAS,GACxCpW,EAAO,aAAe,KAEtBmD,GAAgBnD,CAAM,EAAE,mBAAqB,IAGjDwL,EAAOoC,GAAcwI,EAAW,EAAGpW,EAAO,UAAU,EACpDA,EAAO,GAAGsK,EAAK,EAAIkB,EAAK,YAAW,EACnCxL,EAAO,GAAGuK,EAAI,EAAIiB,EAAK,WAAU,GAQhCl1D,EAAI,EAAGA,EAAI,GAAK0pD,EAAO,GAAG1pD,CAAC,GAAK,KAAM,EAAEA,EACzC0pD,EAAO,GAAG1pD,CAAC,EAAIisD,EAAMjsD,CAAC,EAAI4/D,EAAY5/D,CAAC,EAI3C,KAAOA,EAAI,EAAGA,IACV0pD,EAAO,GAAG1pD,CAAC,EAAIisD,EAAMjsD,CAAC,EAClB0pD,EAAO,GAAG1pD,CAAC,GAAK,KAAQA,IAAM,EAAI,EAAI,EAAK0pD,EAAO,GAAG1pD,CAAC,EAK1D0pD,EAAO,GAAGwK,EAAI,IAAM,IACpBxK,EAAO,GAAGyK,EAAM,IAAM,GACtBzK,EAAO,GAAG0K,EAAM,IAAM,GACtB1K,EAAO,GAAG2K,EAAW,IAAM,IAE3B3K,EAAO,SAAW,GAClBA,EAAO,GAAGwK,EAAI,EAAI,GAGtBxK,EAAO,IAAMA,EAAO,QAAU4N,GAAgBH,IAAY,MACtD,KACAlL,CACR,EACI4T,EAAkBnW,EAAO,QACnBA,EAAO,GAAG,UAAS,EACnBA,EAAO,GAAG,OAAM,EAIlBA,EAAO,MAAQ,MACfA,EAAO,GAAG,cAAcA,EAAO,GAAG,cAAa,EAAKA,EAAO,IAAI,EAG/DA,EAAO,WACPA,EAAO,GAAGwK,EAAI,EAAI,IAKlBxK,EAAO,IACP,OAAOA,EAAO,GAAG,EAAM,KACvBA,EAAO,GAAG,IAAMmW,IAEhBhT,GAAgBnD,CAAM,EAAE,gBAAkB,IAElD,CAEA,SAASqW,GAAsBrW,EAAQ,CACnC,IAAIsW,EAAGC,EAAUpI,EAAMC,EAASN,EAAKC,EAAKyI,EAAMC,EAAiBC,EAEjEJ,EAAItW,EAAO,GACPsW,EAAE,IAAM,MAAQA,EAAE,GAAK,MAAQA,EAAE,GAAK,MACtCxI,EAAM,EACNC,EAAM,EAMNwI,EAAW32C,GACP02C,EAAE,GACFtW,EAAO,GAAGqK,EAAI,EACdqE,GAAWiI,GAAW,EAAI,EAAG,CAAC,EAAE,IAC5C,EACQxI,EAAOvuC,GAAS02C,EAAE,EAAG,CAAC,EACtBlI,EAAUxuC,GAAS02C,EAAE,EAAG,CAAC,GACrBlI,EAAU,GAAKA,EAAU,KACzBqI,EAAkB,MAGtB3I,EAAM9N,EAAO,QAAQ,MAAM,IAC3B+N,EAAM/N,EAAO,QAAQ,MAAM,IAE3B0W,EAAUhI,GAAWiI,KAAe7I,EAAKC,CAAG,EAE5CwI,EAAW32C,GAAS02C,EAAE,GAAItW,EAAO,GAAGqK,EAAI,EAAGqM,EAAQ,IAAI,EAGvDvI,EAAOvuC,GAAS02C,EAAE,EAAGI,EAAQ,IAAI,EAE7BJ,EAAE,GAAK,MAEPlI,EAAUkI,EAAE,GACRlI,EAAU,GAAKA,EAAU,KACzBqI,EAAkB,KAEfH,EAAE,GAAK,MAEdlI,EAAUkI,EAAE,EAAIxI,GACZwI,EAAE,EAAI,GAAKA,EAAE,EAAI,KACjBG,EAAkB,KAItBrI,EAAUN,GAGdK,EAAO,GAAKA,EAAOS,GAAY2H,EAAUzI,EAAKC,CAAG,EACjD5K,GAAgBnD,CAAM,EAAE,eAAiB,GAClCyW,GAAmB,KAC1BtT,GAAgBnD,CAAM,EAAE,iBAAmB,IAE3CwW,EAAOtI,GAAmBqI,EAAUpI,EAAMC,EAASN,EAAKC,CAAG,EAC3D/N,EAAO,GAAGqK,EAAI,EAAImM,EAAK,KACvBxW,EAAO,WAAawW,EAAK,UAEjC,CAGApiD,GAAM,SAAW,UAAY,CAAC,EAG9BA,GAAM,SAAW,UAAY,CAAC,EAG9B,SAASogD,GAA0BxU,EAAQ,CAEvC,GAAIA,EAAO,KAAO5rC,GAAM,SAAU,CAC9B6/C,GAAcjU,CAAM,EACpB,MACJ,CACA,GAAIA,EAAO,KAAO5rC,GAAM,SAAU,CAC9BwhD,GAAkB5V,CAAM,EACxB,MACJ,CACAA,EAAO,GAAK,GACZmD,GAAgBnD,CAAM,EAAE,MAAQ,GAGhC,IAAI+G,EAAS,GAAK/G,EAAO,GACrB1pD,EACA8+D,EACAxmB,EACAe,EACAinB,EACAC,EAAe9P,EAAO,OACtB+P,EAAyB,EACzBC,EACA/M,EAKJ,IAHApb,EACIsX,GAAalG,EAAO,GAAIA,EAAO,OAAO,EAAE,MAAMuF,EAAgB,GAAK,GACvEyE,EAAWpb,EAAO,OACbt4C,EAAI,EAAGA,EAAI0zD,EAAU1zD,IACtBq5C,EAAQf,EAAOt4C,CAAC,EAChB8+D,GAAerO,EAAO,MAAMqC,GAAsBzZ,EAAOqQ,CAAM,CAAC,GAC5D,IAAI,CAAC,EACLoV,IACAwB,EAAU7P,EAAO,OAAO,EAAGA,EAAO,QAAQqO,CAAW,CAAC,EAClDwB,EAAQ,OAAS,GACjBzT,GAAgBnD,CAAM,EAAE,YAAY,KAAK4W,CAAO,EAEpD7P,EAASA,EAAO,MACZA,EAAO,QAAQqO,CAAW,EAAIA,EAAY,MAC1D,EACY0B,GAA0B1B,EAAY,QAGtC1P,GAAqB/V,CAAK,GACtBylB,EACAjS,GAAgBnD,CAAM,EAAE,MAAQ,GAEhCmD,GAAgBnD,CAAM,EAAE,aAAa,KAAKrQ,CAAK,EAEnDua,GAAwBva,EAAOylB,EAAapV,CAAM,GAC3CA,EAAO,SAAW,CAACoV,GAC1BjS,GAAgBnD,CAAM,EAAE,aAAa,KAAKrQ,CAAK,EAKvDwT,GAAgBnD,CAAM,EAAE,cACpB6W,EAAeC,EACf/P,EAAO,OAAS,GAChB5D,GAAgBnD,CAAM,EAAE,YAAY,KAAK+G,CAAM,EAK/C/G,EAAO,GAAGwK,EAAI,GAAK,IACnBrH,GAAgBnD,CAAM,EAAE,UAAY,IACpCA,EAAO,GAAGwK,EAAI,EAAI,IAElBrH,GAAgBnD,CAAM,EAAE,QAAU,QAGtCmD,GAAgBnD,CAAM,EAAE,gBAAkBA,EAAO,GAAG,MAAM,CAAC,EAC3DmD,GAAgBnD,CAAM,EAAE,SAAWA,EAAO,UAE1CA,EAAO,GAAGwK,EAAI,EAAIwM,GACdhX,EAAO,QACPA,EAAO,GAAGwK,EAAI,EACdxK,EAAO,SACf,EAGI+W,EAAM5T,GAAgBnD,CAAM,EAAE,IAC1B+W,IAAQ,OACR/W,EAAO,GAAGqK,EAAI,EAAIrK,EAAO,QAAQ,gBAAgB+W,EAAK/W,EAAO,GAAGqK,EAAI,CAAC,GAGzE4L,GAAgBjW,CAAM,EACtBuT,GAAcvT,CAAM,CACxB,CAEA,SAASgX,GAAgBjU,EAAQkU,EAAM9F,EAAU,CAC7C,IAAI+F,EAEJ,OAAI/F,GAAY,KAEL8F,EAEPlU,EAAO,cAAgB,KAChBA,EAAO,aAAakU,EAAM9F,CAAQ,GAClCpO,EAAO,MAAQ,OAEtBmU,EAAOnU,EAAO,KAAKoO,CAAQ,EACvB+F,GAAQD,EAAO,KACfA,GAAQ,IAER,CAACC,GAAQD,IAAS,KAClBA,EAAO,IAEJA,EAKf,CAGA,SAASE,GAAyBnX,EAAQ,CACtC,IAAIoX,EACAC,EACAC,EACAhhE,EACAihE,EACAC,EACAC,EAAoB,GACpBC,EAAa1X,EAAO,GAAG,OAE3B,GAAI0X,IAAe,EAAG,CAClBvU,GAAgBnD,CAAM,EAAE,cAAgB,GACxCA,EAAO,GAAK,IAAI,KAAK,GAAG,EACxB,MACJ,CAEA,IAAK1pD,EAAI,EAAGA,EAAIohE,EAAYphE,IACxBihE,EAAe,EACfC,EAAmB,GACnBJ,EAAavT,GAAW,GAAI7D,CAAM,EAC9BA,EAAO,SAAW,OAClBoX,EAAW,QAAUpX,EAAO,SAEhCoX,EAAW,GAAKpX,EAAO,GAAG1pD,CAAC,EAC3Bk+D,GAA0B4C,CAAU,EAEhC9T,GAAQ8T,CAAU,IAClBI,EAAmB,IAIvBD,GAAgBpU,GAAgBiU,CAAU,EAAE,cAG5CG,GAAgBpU,GAAgBiU,CAAU,EAAE,aAAa,OAAS,GAElEjU,GAAgBiU,CAAU,EAAE,MAAQG,EAE/BE,EAaGF,EAAeD,IACfA,EAAcC,EACdF,EAAaD,IAbbE,GAAe,MACfC,EAAeD,GACfE,KAEAF,EAAcC,EACdF,EAAaD,EACTI,IACAC,EAAoB,KAWpCvhE,GAAO8pD,EAAQqX,GAAcD,CAAU,CAC3C,CAEA,SAASO,GAAiB3X,EAAQ,CAC9B,GAAI,CAAAA,EAAO,GAIX,KAAI1pD,EAAI8wD,GAAqBpH,EAAO,EAAE,EAClC4X,EAAYthE,EAAE,MAAQ,OAAYA,EAAE,KAAOA,EAAE,IACjD0pD,EAAO,GAAKvqD,GACR,CAACa,EAAE,KAAMA,EAAE,MAAOshE,EAAWthE,EAAE,KAAMA,EAAE,OAAQA,EAAE,OAAQA,EAAE,WAAW,EACtE,SAAUoC,EAAK,CACX,OAAOA,GAAO,SAASA,EAAK,EAAE,CAClC,CACR,EAEIu9D,GAAgBjW,CAAM,EAC1B,CAEA,SAAS6X,GAAiB7X,EAAQ,CAC9B,IAAI9mD,EAAM,IAAI6qD,GAAOwP,GAAcuE,GAAc9X,CAAM,CAAC,CAAC,EACzD,OAAI9mD,EAAI,WAEJA,EAAI,IAAI,EAAG,GAAG,EACdA,EAAI,SAAW,QAGZA,CACX,CAEA,SAAS4+D,GAAc9X,EAAQ,CAC3B,IAAIuC,EAAQvC,EAAO,GACf8C,EAAS9C,EAAO,GAIpB,OAFAA,EAAO,QAAUA,EAAO,SAAWkT,GAAUlT,EAAO,EAAE,EAElDuC,IAAU,MAASO,IAAW,QAAaP,IAAU,GAC9CmB,GAAc,CAAE,UAAW,GAAM,GAGxC,OAAOnB,GAAU,WACjBvC,EAAO,GAAKuC,EAAQvC,EAAO,QAAQ,SAASuC,CAAK,GAGjDyB,GAASzB,CAAK,EACP,IAAIwB,GAAOwP,GAAchR,CAAK,CAAC,GAC/B1rD,GAAO0rD,CAAK,EACnBvC,EAAO,GAAKuC,EACL9rD,GAAQqsD,CAAM,EACrBqU,GAAyBnX,CAAM,EACxB8C,EACP0R,GAA0BxU,CAAM,EAEhC+X,GAAgB/X,CAAM,EAGrBsD,GAAQtD,CAAM,IACfA,EAAO,GAAK,MAGTA,GACX,CAEA,SAAS+X,GAAgB/X,EAAQ,CAC7B,IAAIuC,EAAQvC,EAAO,GACf0C,GAAYH,CAAK,EACjBvC,EAAO,GAAK,IAAI,KAAK5rC,GAAM,IAAG,CAAE,EACzBvd,GAAO0rD,CAAK,EACnBvC,EAAO,GAAK,IAAI,KAAKuC,EAAM,QAAO,CAAE,EAC7B,OAAOA,GAAU,SACxBuT,GAAiB9V,CAAM,EAChBvpD,GAAQ8rD,CAAK,GACpBvC,EAAO,GAAKvqD,GAAI8sD,EAAM,MAAM,CAAC,EAAG,SAAU7pD,EAAK,CAC3C,OAAO,SAASA,EAAK,EAAE,CAC3B,CAAC,EACDu9D,GAAgBjW,CAAM,GACf9oD,GAASqrD,CAAK,EACrBoV,GAAiB3X,CAAM,EAChB2C,GAASJ,CAAK,EAErBvC,EAAO,GAAK,IAAI,KAAKuC,CAAK,EAE1BnuC,GAAM,wBAAwB4rC,CAAM,CAE5C,CAEA,SAASiD,GAAiBV,EAAOO,EAAQC,EAAQC,EAAQsI,EAAO,CAC5D,IAAIvzD,EAAI,GAER,OAAI+qD,IAAW,IAAQA,IAAW,MAC9BE,EAASF,EACTA,EAAS,SAGTC,IAAW,IAAQA,IAAW,MAC9BC,EAASD,EACTA,EAAS,SAIR7rD,GAASqrD,CAAK,GAAKE,GAAcF,CAAK,GACtC9rD,GAAQ8rD,CAAK,GAAKA,EAAM,SAAW,KAEpCA,EAAQ,QAIZxqD,EAAE,iBAAmB,GACrBA,EAAE,QAAUA,EAAE,OAASuzD,EACvBvzD,EAAE,GAAKgrD,EACPhrD,EAAE,GAAKwqD,EACPxqD,EAAE,GAAK+qD,EACP/qD,EAAE,QAAUirD,EAEL6U,GAAiB9/D,CAAC,CAC7B,CAEA,SAAS4+D,GAAYpU,EAAOO,EAAQC,EAAQC,EAAQ,CAChD,OAAOC,GAAiBV,EAAOO,EAAQC,EAAQC,EAAQ,EAAK,CAChE,CAEA,IAAIgV,GAAe7T,GACX,qGACA,UAAY,CACR,IAAI8T,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvU,GAAa,CAE5B,CACR,EACIwU,GAAe/T,GACX,qGACA,UAAY,CACR,IAAI8T,EAAQtB,GAAY,MAAM,KAAM,SAAS,EAC7C,OAAI,KAAK,QAAO,GAAMsB,EAAM,QAAO,EACxBA,EAAQ,KAAO,KAAOA,EAEtBvU,GAAa,CAE5B,CACR,EAOA,SAASyU,GAAOxgE,EAAIygE,EAAS,CACzB,IAAIl/D,EAAK5C,EAIT,GAHI8hE,EAAQ,SAAW,GAAK3hE,GAAQ2hE,EAAQ,CAAC,CAAC,IAC1CA,EAAUA,EAAQ,CAAC,GAEnB,CAACA,EAAQ,OACT,OAAOzB,GAAW,EAGtB,IADAz9D,EAAMk/D,EAAQ,CAAC,EACV9hE,EAAI,EAAGA,EAAI8hE,EAAQ,OAAQ,EAAE9hE,GAC1B,CAAC8hE,EAAQ9hE,CAAC,EAAE,QAAO,GAAM8hE,EAAQ9hE,CAAC,EAAEqB,CAAE,EAAEuB,CAAG,KAC3CA,EAAMk/D,EAAQ9hE,CAAC,GAGvB,OAAO4C,CACX,CAGA,SAASm/D,IAAM,CACX,IAAIt3D,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOo3D,GAAO,WAAYp3D,CAAI,CAClC,CAEA,SAASqZ,IAAM,CACX,IAAIrZ,EAAO,GAAG,MAAM,KAAK,UAAW,CAAC,EAErC,OAAOo3D,GAAO,UAAWp3D,CAAI,CACjC,CAEA,IAAIgkD,GAAM,UAAY,CAClB,OAAO,KAAK,IAAM,KAAK,IAAG,EAAK,CAAC,IAAI,IACxC,EAEIuT,GAAW,CACX,OACA,UACA,QACA,OACA,MACA,OACA,SACA,SACA,aACJ,EAEA,SAASC,GAAgBr1C,EAAG,CACxB,IAAIxtB,EACA8iE,EAAiB,GACjBliE,EACAmiE,EAAWH,GAAS,OACxB,IAAK5iE,KAAOwtB,EACR,GACIs/B,GAAWt/B,EAAGxtB,CAAG,GACjB,EACIo2D,GAAQ,KAAKwM,GAAU5iE,CAAG,IAAM,KAC/BwtB,EAAExtB,CAAG,GAAK,MAAQ,CAAC,MAAMwtB,EAAExtB,CAAG,CAAC,IAGpC,MAAO,GAIf,IAAKY,EAAI,EAAGA,EAAImiE,EAAU,EAAEniE,EACxB,GAAI4sB,EAAEo1C,GAAShiE,CAAC,CAAC,EAAG,CAChB,GAAIkiE,EACA,MAAO,GAEP,WAAWt1C,EAAEo1C,GAAShiE,CAAC,CAAC,CAAC,IAAMszD,GAAM1mC,EAAEo1C,GAAShiE,CAAC,CAAC,CAAC,IACnDkiE,EAAiB,GAEzB,CAGJ,MAAO,EACX,CAEA,SAASE,IAAY,CACjB,OAAO,KAAK,QAChB,CAEA,SAASC,IAAkB,CACvB,OAAOC,GAAe,GAAG,CAC7B,CAEA,SAASC,GAAShgC,EAAU,CACxB,IAAIyuB,EAAkBF,GAAqBvuB,CAAQ,EAC/CigC,EAAQxR,EAAgB,MAAQ,EAChCyR,EAAWzR,EAAgB,SAAW,EACtC0R,EAAS1R,EAAgB,OAAS,EAClC2R,EAAQ3R,EAAgB,MAAQA,EAAgB,SAAW,EAC3D4R,EAAO5R,EAAgB,KAAO,EAC9BwK,EAAQxK,EAAgB,MAAQ,EAChCyK,EAAUzK,EAAgB,QAAU,EACpC6R,EAAU7R,EAAgB,QAAU,EACpC8R,EAAe9R,EAAgB,aAAe,EAElD,KAAK,SAAWiR,GAAgBjR,CAAe,EAG/C,KAAK,cACD,CAAC8R,EACDD,EAAU,IACVpH,EAAU,IACVD,EAAQ,IAAO,GAAK,GAGxB,KAAK,MAAQ,CAACoH,EAAOD,EAAQ,EAI7B,KAAK,QAAU,CAACD,EAASD,EAAW,EAAID,EAAQ,GAEhD,KAAK,MAAQ,GAEb,KAAK,QAAU5F,GAAS,EAExB,KAAK,QAAO,CAChB,CAEA,SAASmG,GAAW3gE,EAAK,CACrB,OAAOA,aAAemgE,EAC1B,CAEA,SAASS,GAAS/4B,EAAQ,CACtB,OAAIA,EAAS,EACF,KAAK,MAAM,GAAKA,CAAM,EAAI,GAE1B,KAAK,MAAMA,CAAM,CAEhC,CAGA,SAASg5B,GAAcC,EAAQC,EAAQC,EAAa,CAChD,IAAIxpC,EAAM,KAAK,IAAIspC,EAAO,OAAQC,EAAO,MAAM,EAC3CE,EAAa,KAAK,IAAIH,EAAO,OAASC,EAAO,MAAM,EACnDG,EAAQ,EACRtjE,EACJ,IAAKA,EAAI,EAAGA,EAAI45B,EAAK55B,IAGIszD,GAAM4P,EAAOljE,CAAC,CAAC,IAAMszD,GAAM6P,EAAOnjE,CAAC,CAAC,GAErDsjE,IAGR,OAAOA,EAAQD,CACnB,CAIA,SAAStyB,GAAOsI,EAAOvuC,EAAW,CAC9BukD,GAAehW,EAAO,EAAG,EAAG,UAAY,CACpC,IAAItI,EAAS,KAAK,UAAS,EACvBie,EAAO,IACX,OAAIje,EAAS,IACTA,EAAS,CAACA,EACVie,EAAO,KAGPA,EACAL,GAAS,CAAC,EAAE5d,EAAS,IAAK,CAAC,EAC3BjmC,EACA6jD,GAAS,CAAC,CAAC5d,EAAS,GAAI,CAAC,CAEjC,CAAC,CACL,CAEAA,GAAO,IAAK,GAAG,EACfA,GAAO,KAAM,EAAE,EAIf0hB,GAAc,IAAKN,EAAgB,EACnCM,GAAc,KAAMN,EAAgB,EACpCsB,GAAc,CAAC,IAAK,IAAI,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CACvDA,EAAO,QAAU,GACjBA,EAAO,KAAO6Z,GAAiBpR,GAAkBlG,CAAK,CAC1D,CAAC,EAOD,IAAIuX,GAAc,kBAElB,SAASD,GAAiB5oB,EAAS8V,EAAQ,CACvC,IAAIttC,GAAWstC,GAAU,IAAI,MAAM9V,CAAO,EACtC8oB,EACAC,EACAjI,EAEJ,OAAIt4C,IAAY,KACL,MAGXsgD,EAAQtgD,EAAQA,EAAQ,OAAS,CAAC,GAAK,GACvCugD,GAASD,EAAQ,IAAI,MAAMD,EAAW,GAAK,CAAC,IAAK,EAAG,CAAC,EACrD/H,EAAU,EAAEiI,EAAM,CAAC,EAAI,IAAMpQ,GAAMoQ,EAAM,CAAC,CAAC,EAEpCjI,IAAY,EAAI,EAAIiI,EAAM,CAAC,IAAM,IAAMjI,EAAU,CAACA,EAC7D,CAGA,SAASkI,GAAgB1X,EAAO2X,EAAO,CACnC,IAAIhhE,EAAKu3C,EACT,OAAIypB,EAAM,QACNhhE,EAAMghE,EAAM,MAAK,EACjBzpB,GACKuT,GAASzB,CAAK,GAAK1rD,GAAO0rD,CAAK,EAC1BA,EAAM,QAAO,EACboU,GAAYpU,CAAK,EAAE,QAAO,GAAMrpD,EAAI,QAAO,EAErDA,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAKu3C,CAAI,EACtCr8B,GAAM,aAAalb,EAAK,EAAK,EACtBA,GAEAy9D,GAAYpU,CAAK,EAAE,MAAK,CAEvC,CAEA,SAAS4X,GAAcj3C,EAAG,CAGtB,MAAO,CAAC,KAAK,MAAMA,EAAE,GAAG,kBAAiB,CAAE,CAC/C,CAMA9O,GAAM,aAAe,UAAY,CAAC,EAclC,SAASgmD,GAAa7X,EAAO8X,EAAeC,EAAa,CACrD,IAAIjzB,EAAS,KAAK,SAAW,EACzBkzB,EACJ,GAAI,CAAC,KAAK,UACN,OAAOhY,GAAS,KAAO,KAAO,IAElC,GAAIA,GAAS,KAAM,CACf,GAAI,OAAOA,GAAU,UAEjB,GADAA,EAAQsX,GAAiBpR,GAAkBlG,CAAK,EAC5CA,IAAU,KACV,OAAO,UAEJ,KAAK,IAAIA,CAAK,EAAI,IAAM,CAAC+X,IAChC/X,EAAQA,EAAQ,IAEpB,MAAI,CAAC,KAAK,QAAU8X,IAChBE,EAAcJ,GAAc,IAAI,GAEpC,KAAK,QAAU5X,EACf,KAAK,OAAS,GACVgY,GAAe,MACf,KAAK,IAAIA,EAAa,GAAG,EAEzBlzB,IAAWkb,IACP,CAAC8X,GAAiB,KAAK,kBACvBG,GACI,KACA5B,GAAerW,EAAQlb,EAAQ,GAAG,EAClC,EACA,EACpB,EACwB,KAAK,oBACb,KAAK,kBAAoB,GACzBjzB,GAAM,aAAa,KAAM,EAAI,EAC7B,KAAK,kBAAoB,OAG1B,IACX,KACI,QAAO,KAAK,OAASizB,EAAS8yB,GAAc,IAAI,CAExD,CAEA,SAASM,GAAWlY,EAAO8X,EAAe,CACtC,OAAI9X,GAAS,MACL,OAAOA,GAAU,WACjBA,EAAQ,CAACA,GAGb,KAAK,UAAUA,EAAO8X,CAAa,EAE5B,MAEA,CAAC,KAAK,UAAS,CAE9B,CAEA,SAASK,GAAeL,EAAe,CACnC,OAAO,KAAK,UAAU,EAAGA,CAAa,CAC1C,CAEA,SAASM,GAAiBN,EAAe,CACrC,OAAI,KAAK,SACL,KAAK,UAAU,EAAGA,CAAa,EAC/B,KAAK,OAAS,GAEVA,GACA,KAAK,SAASF,GAAc,IAAI,EAAG,GAAG,GAGvC,IACX,CAEA,SAASS,IAA0B,CAC/B,GAAI,KAAK,MAAQ,KACb,KAAK,UAAU,KAAK,KAAM,GAAO,EAAI,UAC9B,OAAO,KAAK,IAAO,SAAU,CACpC,IAAIC,EAAQhB,GAAiBrR,GAAa,KAAK,EAAE,EAC7CqS,GAAS,KACT,KAAK,UAAUA,CAAK,EAEpB,KAAK,UAAU,EAAG,EAAI,CAE9B,CACA,OAAO,IACX,CAEA,SAASC,GAAqBvY,EAAO,CACjC,OAAK,KAAK,WAGVA,EAAQA,EAAQoU,GAAYpU,CAAK,EAAE,UAAS,EAAK,GAEzC,KAAK,UAAS,EAAKA,GAAS,KAAO,GAJhC,EAKf,CAEA,SAASwY,IAAuB,CAC5B,OACI,KAAK,UAAS,EAAK,KAAK,MAAK,EAAG,MAAM,CAAC,EAAE,UAAS,GAClD,KAAK,UAAS,EAAK,KAAK,MAAK,EAAG,MAAM,CAAC,EAAE,UAAS,CAE1D,CAEA,SAASC,IAA8B,CACnC,GAAI,CAACtY,GAAY,KAAK,aAAa,EAC/B,OAAO,KAAK,cAGhB,IAAI3qD,EAAI,GACJkgE,EAEJ,OAAApU,GAAW9rD,EAAG,IAAI,EAClBA,EAAI+/D,GAAc//D,CAAC,EAEfA,EAAE,IACFkgE,EAAQlgE,EAAE,OAAS8qD,GAAU9qD,EAAE,EAAE,EAAI4+D,GAAY5+D,EAAE,EAAE,EACrD,KAAK,cACD,KAAK,QAAO,GAAMwhE,GAAcxhE,EAAE,GAAIkgE,EAAM,QAAO,CAAE,EAAI,GAE7D,KAAK,cAAgB,GAGlB,KAAK,aAChB,CAEA,SAASgD,IAAU,CACf,OAAO,KAAK,QAAO,EAAK,CAAC,KAAK,OAAS,EAC3C,CAEA,SAASC,IAAc,CACnB,OAAO,KAAK,QAAO,EAAK,KAAK,OAAS,EAC1C,CAEA,SAASC,IAAQ,CACb,OAAO,KAAK,QAAO,EAAK,KAAK,QAAU,KAAK,UAAY,EAAI,EAChE,CAGA,IAAIC,GAAc,wDAIdC,GACI,sKAER,SAASzC,GAAerW,EAAO7sD,EAAK,CAChC,IAAImjC,EAAW0pB,EAEXnS,EAAQ,KACRkV,EACA5rD,EACA4hE,EAEJ,OAAIjC,GAAW9W,CAAK,EAChB1pB,EAAW,CACP,GAAI0pB,EAAM,cACV,EAAGA,EAAM,MACT,EAAGA,EAAM,OACrB,EACeI,GAASJ,CAAK,GAAK,CAAC,MAAM,CAACA,CAAK,GACvC1pB,EAAW,GACPnjC,EACAmjC,EAASnjC,CAAG,EAAI,CAAC6sD,EAEjB1pB,EAAS,aAAe,CAAC0pB,IAErBnS,EAAQgrB,GAAY,KAAK7Y,CAAK,IACtC+C,EAAOlV,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BvX,EAAW,CACP,EAAG,EACH,EAAG+wB,GAAMxZ,EAAMma,EAAI,CAAC,EAAIjF,EACxB,EAAGsE,GAAMxZ,EAAMoa,EAAI,CAAC,EAAIlF,EACxB,EAAGsE,GAAMxZ,EAAMqa,EAAM,CAAC,EAAInF,EAC1B,EAAGsE,GAAMxZ,EAAMsa,EAAM,CAAC,EAAIpF,EAC1B,GAAIsE,GAAM0P,GAASlpB,EAAMua,EAAW,EAAI,GAAI,CAAC,EAAIrF,CAC7D,IACgBlV,EAAQirB,GAAS,KAAK9Y,CAAK,IACnC+C,EAAOlV,EAAM,CAAC,IAAM,IAAM,GAAK,EAC/BvX,EAAW,CACP,EAAG0iC,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,EAC1B,EAAGiW,GAASnrB,EAAM,CAAC,EAAGkV,CAAI,CACtC,GACezsB,GAAY,KAEnBA,EAAW,GAEX,OAAOA,GAAa,WACnB,SAAUA,GAAY,OAAQA,KAE/ByiC,EAAUE,GACN7E,GAAY99B,EAAS,IAAI,EACzB89B,GAAY99B,EAAS,EAAE,CACnC,EAEQA,EAAW,GACXA,EAAS,GAAKyiC,EAAQ,aACtBziC,EAAS,EAAIyiC,EAAQ,QAGzB5hE,EAAM,IAAIm/D,GAAShgC,CAAQ,EAEvBwgC,GAAW9W,CAAK,GAAKC,GAAWD,EAAO,SAAS,IAChD7oD,EAAI,QAAU6oD,EAAM,SAGpB8W,GAAW9W,CAAK,GAAKC,GAAWD,EAAO,UAAU,IACjD7oD,EAAI,SAAW6oD,EAAM,UAGlB7oD,CACX,CAEAk/D,GAAe,GAAKC,GAAS,UAC7BD,GAAe,QAAUD,GAEzB,SAAS4C,GAASE,EAAKnW,EAAM,CAIzB,IAAIpsD,EAAMuiE,GAAO,WAAWA,EAAI,QAAQ,IAAK,GAAG,CAAC,EAEjD,OAAQ,MAAMviE,CAAG,EAAI,EAAIA,GAAOosD,CACpC,CAEA,SAASoW,GAA0B94C,EAAMq1C,EAAO,CAC5C,IAAI/+D,EAAM,GAEV,OAAAA,EAAI,OACA++D,EAAM,MAAK,EAAKr1C,EAAK,MAAK,GAAMq1C,EAAM,KAAI,EAAKr1C,EAAK,KAAI,GAAM,GAC9DA,EAAK,MAAK,EAAG,IAAI1pB,EAAI,OAAQ,GAAG,EAAE,QAAQ++D,CAAK,GAC/C,EAAE/+D,EAAI,OAGVA,EAAI,aAAe,CAAC++D,EAAQ,CAACr1C,EAAK,MAAK,EAAG,IAAI1pB,EAAI,OAAQ,GAAG,EAEtDA,CACX,CAEA,SAASsiE,GAAkB54C,EAAMq1C,EAAO,CACpC,IAAI/+D,EACJ,OAAM0pB,EAAK,QAAO,GAAMq1C,EAAM,QAAO,GAIrCA,EAAQgC,GAAgBhC,EAAOr1C,CAAI,EAC/BA,EAAK,SAASq1C,CAAK,EACnB/+D,EAAMwiE,GAA0B94C,EAAMq1C,CAAK,GAE3C/+D,EAAMwiE,GAA0BzD,EAAOr1C,CAAI,EAC3C1pB,EAAI,aAAe,CAACA,EAAI,aACxBA,EAAI,OAAS,CAACA,EAAI,QAGfA,GAZI,CAAE,aAAc,EAAG,OAAQ,CAAC,CAa3C,CAGA,SAASyiE,GAAYC,EAAW/hE,EAAM,CAClC,OAAO,SAAUlE,EAAKkmE,EAAQ,CAC1B,IAAIC,EAAKniE,EAET,OAAIkiE,IAAW,MAAQ,CAAC,MAAM,CAACA,CAAM,IACjCtX,GACI1qD,EACA,YACIA,EACA,uDACAA,EACA,gGAEpB,EACYF,EAAMhE,EACNA,EAAMkmE,EACNA,EAASliE,GAGbmiE,EAAMlD,GAAejjE,EAAKkmE,CAAM,EAChCrB,GAAY,KAAMsB,EAAKF,CAAS,EACzB,IACX,CACJ,CAEA,SAASpB,GAAY1V,EAAKjsB,EAAUkjC,EAAUC,EAAc,CACxD,IAAI5C,EAAevgC,EAAS,cACxBqgC,EAAOI,GAASzgC,EAAS,KAAK,EAC9BmgC,EAASM,GAASzgC,EAAS,OAAO,EAEjCisB,EAAI,YAKTkX,EAAeA,GAAuB,GAElChD,GACAnM,GAAS/H,EAAK9/C,GAAI8/C,EAAK,OAAO,EAAIkU,EAAS+C,CAAQ,EAEnD7C,GACA7N,GAAMvG,EAAK,OAAQ9/C,GAAI8/C,EAAK,MAAM,EAAIoU,EAAO6C,CAAQ,EAErD3C,GACAtU,EAAI,GAAG,QAAQA,EAAI,GAAG,QAAO,EAAKsU,EAAe2C,CAAQ,EAEzDC,GACA5nD,GAAM,aAAa0wC,EAAKoU,GAAQF,CAAM,EAE9C,CAEA,IAAIjvB,GAAM4xB,GAAY,EAAG,KAAK,EAC1BM,GAAWN,GAAY,GAAI,UAAU,EAEzC,SAAS3kE,GAASurD,EAAO,CACrB,OAAO,OAAOA,GAAU,UAAYA,aAAiB,MACzD,CAGA,SAAS2Z,GAAc3Z,EAAO,CAC1B,OACIyB,GAASzB,CAAK,GACd1rD,GAAO0rD,CAAK,GACZvrD,GAASurD,CAAK,GACdI,GAASJ,CAAK,GACd4Z,GAAsB5Z,CAAK,GAC3B6Z,GAAoB7Z,CAAK,GACzBA,IAAU,MACVA,IAAU,MAElB,CAEA,SAAS6Z,GAAoB7Z,EAAO,CAChC,IAAI8Z,EAAanlE,GAASqrD,CAAK,GAAK,CAACE,GAAcF,CAAK,EACpD+Z,EAAe,GACfC,EAAa,CACT,QACA,OACA,IACA,SACA,QACA,IACA,OACA,MACA,IACA,QACA,OACA,IACA,QACA,OACA,IACA,UACA,SACA,IACA,UACA,SACA,IACA,eACA,cACA,IACZ,EACQjmE,EACAkmE,EACAC,EAAcF,EAAW,OAE7B,IAAKjmE,EAAI,EAAGA,EAAImmE,EAAanmE,GAAK,EAC9BkmE,EAAWD,EAAWjmE,CAAC,EACvBgmE,EAAeA,GAAgB9Z,GAAWD,EAAOia,CAAQ,EAG7D,OAAOH,GAAcC,CACzB,CAEA,SAASH,GAAsB5Z,EAAO,CAClC,IAAIma,EAAYjmE,GAAQ8rD,CAAK,EACzBoa,EAAe,GACnB,OAAID,IACAC,EACIpa,EAAM,OAAO,SAAUppD,EAAM,CACzB,MAAO,CAACwpD,GAASxpD,CAAI,GAAKnC,GAASurD,CAAK,CAC5C,CAAC,EAAE,SAAW,GAEfma,GAAaC,CACxB,CAEA,SAASC,GAAera,EAAO,CAC3B,IAAI8Z,EAAanlE,GAASqrD,CAAK,GAAK,CAACE,GAAcF,CAAK,EACpD+Z,EAAe,GACfC,EAAa,CACT,UACA,UACA,UACA,WACA,WACA,UACZ,EACQjmE,EACAkmE,EAEJ,IAAKlmE,EAAI,EAAGA,EAAIimE,EAAW,OAAQjmE,GAAK,EACpCkmE,EAAWD,EAAWjmE,CAAC,EACvBgmE,EAAeA,GAAgB9Z,GAAWD,EAAOia,CAAQ,EAG7D,OAAOH,GAAcC,CACzB,CAEA,SAASO,GAAkBC,EAAU/X,EAAK,CACtC,IAAItU,EAAOqsB,EAAS,KAAK/X,EAAK,OAAQ,EAAI,EAC1C,OAAOtU,EAAO,GACR,WACAA,EAAO,GACL,WACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,UACAA,EAAO,EACL,WACA,UACpB,CAEA,SAASssB,GAAWC,EAAMC,EAAS,CAE3B,UAAU,SAAW,IAChB,UAAU,CAAC,EAGLf,GAAc,UAAU,CAAC,CAAC,GACjCc,EAAO,UAAU,CAAC,EAClBC,EAAU,QACHL,GAAe,UAAU,CAAC,CAAC,IAClCK,EAAU,UAAU,CAAC,EACrBD,EAAO,SAPPA,EAAO,OACPC,EAAU,SAWlB,IAAIlY,EAAMiY,GAAQrG,GAAW,EACzBuG,EAAMjD,GAAgBlV,EAAK,IAAI,EAAE,QAAQ,KAAK,EAC9CjC,EAAS1uC,GAAM,eAAe,KAAM8oD,CAAG,GAAK,WAC5ClY,EACIiY,IACClmE,GAAWkmE,EAAQna,CAAM,CAAC,EACrBma,EAAQna,CAAM,EAAE,KAAK,KAAMiC,CAAG,EAC9BkY,EAAQna,CAAM,GAE5B,OAAO,KAAK,OACRkC,GAAU,KAAK,aAAa,SAASlC,EAAQ,KAAM6T,GAAY5R,CAAG,CAAC,CAC3E,CACA,CAEA,SAAS/kB,IAAQ,CACb,OAAO,IAAI+jB,GAAO,IAAI,CAC1B,CAEA,SAASoZ,GAAQ5a,EAAO4E,EAAO,CAC3B,IAAIiW,EAAapZ,GAASzB,CAAK,EAAIA,EAAQoU,GAAYpU,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM6a,EAAW,QAAO,GAG1CjW,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,UAAYiW,EAAW,QAAO,EAEnCA,EAAW,QAAO,EAAK,KAAK,MAAK,EAAG,QAAQjW,CAAK,EAAE,QAAO,GAN1D,EAQf,CAEA,SAASkW,GAAS9a,EAAO4E,EAAO,CAC5B,IAAIiW,EAAapZ,GAASzB,CAAK,EAAIA,EAAQoU,GAAYpU,CAAK,EAC5D,OAAM,KAAK,QAAO,GAAM6a,EAAW,QAAO,GAG1CjW,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,UAAYiW,EAAW,QAAO,EAEnC,KAAK,MAAK,EAAG,MAAMjW,CAAK,EAAE,QAAO,EAAKiW,EAAW,QAAO,GANxD,EAQf,CAEA,SAASE,GAAUj6C,EAAMD,EAAI+jC,EAAOoW,EAAa,CAC7C,IAAIC,EAAYxZ,GAAS3gC,CAAI,EAAIA,EAAOszC,GAAYtzC,CAAI,EACpDo6C,EAAUzZ,GAAS5gC,CAAE,EAAIA,EAAKuzC,GAAYvzC,CAAE,EAChD,OAAM,KAAK,WAAao6C,EAAU,WAAaC,EAAQ,QAAO,GAG9DF,EAAcA,GAAe,MAExBA,EAAY,CAAC,IAAM,IACd,KAAK,QAAQC,EAAWrW,CAAK,EAC7B,CAAC,KAAK,SAASqW,EAAWrW,CAAK,KACpCoW,EAAY,CAAC,IAAM,IACd,KAAK,SAASE,EAAStW,CAAK,EAC5B,CAAC,KAAK,QAAQsW,EAAStW,CAAK,IAT3B,EAWf,CAEA,SAASuW,GAAOnb,EAAO4E,EAAO,CAC1B,IAAIiW,EAAapZ,GAASzB,CAAK,EAAIA,EAAQoU,GAAYpU,CAAK,EACxDob,EACJ,OAAM,KAAK,QAAO,GAAMP,EAAW,QAAO,GAG1CjW,EAAQD,GAAeC,CAAK,GAAK,cAC7BA,IAAU,cACH,KAAK,YAAciW,EAAW,QAAO,GAE5CO,EAAUP,EAAW,QAAO,EAExB,KAAK,MAAK,EAAG,QAAQjW,CAAK,EAAE,QAAO,GAAMwW,GACzCA,GAAW,KAAK,MAAK,EAAG,MAAMxW,CAAK,EAAE,QAAO,IATzC,EAYf,CAEA,SAASyW,GAAcrb,EAAO4E,EAAO,CACjC,OAAO,KAAK,OAAO5E,EAAO4E,CAAK,GAAK,KAAK,QAAQ5E,EAAO4E,CAAK,CACjE,CAEA,SAAS0W,GAAetb,EAAO4E,EAAO,CAClC,OAAO,KAAK,OAAO5E,EAAO4E,CAAK,GAAK,KAAK,SAAS5E,EAAO4E,CAAK,CAClE,CAEA,SAAS1W,GAAK8R,EAAO4E,EAAO2W,EAAS,CACjC,IAAIC,EAAMC,EAAWhZ,EAErB,GAAI,CAAC,KAAK,UACN,MAAO,KAKX,GAFA+Y,EAAO9D,GAAgB1X,EAAO,IAAI,EAE9B,CAACwb,EAAK,UACN,MAAO,KAOX,OAJAC,GAAaD,EAAK,UAAS,EAAK,KAAK,UAAS,GAAM,IAEpD5W,EAAQD,GAAeC,CAAK,EAEpBA,EAAK,CACT,IAAK,OACDnC,EAASiZ,GAAU,KAAMF,CAAI,EAAI,GACjC,MACJ,IAAK,QACD/Y,EAASiZ,GAAU,KAAMF,CAAI,EAC7B,MACJ,IAAK,UACD/Y,EAASiZ,GAAU,KAAMF,CAAI,EAAI,EACjC,MACJ,IAAK,SACD/Y,GAAU,KAAO+Y,GAAQ,IACzB,MACJ,IAAK,SACD/Y,GAAU,KAAO+Y,GAAQ,IACzB,MACJ,IAAK,OACD/Y,GAAU,KAAO+Y,GAAQ,KACzB,MACJ,IAAK,MACD/Y,GAAU,KAAO+Y,EAAOC,GAAa,MACrC,MACJ,IAAK,OACDhZ,GAAU,KAAO+Y,EAAOC,GAAa,OACrC,MACJ,QACIhZ,EAAS,KAAO+Y,CAC5B,CAEI,OAAOD,EAAU9Y,EAAS2E,GAAS3E,CAAM,CAC7C,CAEA,SAASiZ,GAAU3jE,EAAGC,EAAG,CACrB,GAAID,EAAE,KAAI,EAAKC,EAAE,KAAI,EAGjB,MAAO,CAAC0jE,GAAU1jE,EAAGD,CAAC,EAG1B,IAAI4jE,GAAkB3jE,EAAE,KAAI,EAAKD,EAAE,QAAU,IAAMC,EAAE,MAAK,EAAKD,EAAE,MAAK,GAElEiV,EAASjV,EAAE,MAAK,EAAG,IAAI4jE,EAAgB,QAAQ,EAC/CrtD,EACAstD,EAEJ,OAAI5jE,EAAIgV,EAAS,GACbsB,EAAUvW,EAAE,MAAK,EAAG,IAAI4jE,EAAiB,EAAG,QAAQ,EAEpDC,GAAU5jE,EAAIgV,IAAWA,EAASsB,KAElCA,EAAUvW,EAAE,MAAK,EAAG,IAAI4jE,EAAiB,EAAG,QAAQ,EAEpDC,GAAU5jE,EAAIgV,IAAWsB,EAAUtB,IAIhC,EAAE2uD,EAAiBC,IAAW,CACzC,CAEA/pD,GAAM,cAAgB,uBACtBA,GAAM,iBAAmB,yBAEzB,SAASgqD,IAAW,CAChB,OAAO,KAAK,QAAQ,OAAO,IAAI,EAAE,OAAO,kCAAkC,CAC9E,CAEA,SAASC,GAAYC,EAAY,CAC7B,GAAI,CAAC,KAAK,UACN,OAAO,KAEX,IAAIC,EAAMD,IAAe,GACrBp7C,EAAIq7C,EAAM,KAAK,MAAK,EAAG,IAAG,EAAK,KACnC,OAAIr7C,EAAE,OAAS,GAAKA,EAAE,KAAI,EAAK,KACpB+iC,GACH/iC,EACAq7C,EACM,iCACA,8BAClB,EAEQxnE,GAAW,KAAK,UAAU,WAAW,EAEjCwnE,EACO,KAAK,OAAM,EAAG,YAAW,EAEzB,IAAI,KAAK,KAAK,QAAO,EAAK,KAAK,UAAS,EAAK,GAAK,GAAI,EACxD,YAAW,EACX,QAAQ,IAAKtY,GAAa/iC,EAAG,GAAG,CAAC,EAGvC+iC,GACH/iC,EACAq7C,EAAM,+BAAiC,4BAC/C,CACA,CAQA,SAASC,IAAU,CACf,GAAI,CAAC,KAAK,UACN,MAAO,qBAAuB,KAAK,GAAK,OAE5C,IAAI1Y,EAAO,SACP2Y,EAAO,GACPC,EACAtU,EACAuU,EACA7d,EACJ,OAAK,KAAK,YACNgF,EAAO,KAAK,UAAS,IAAO,EAAI,aAAe,mBAC/C2Y,EAAO,KAEXC,EAAS,IAAM5Y,EAAO,MACtBsE,EAAO,GAAK,KAAK,KAAI,GAAM,KAAK,KAAI,GAAM,KAAO,OAAS,SAC1DuU,EAAW,wBACX7d,EAAS2d,EAAO,OAET,KAAK,OAAOC,EAAStU,EAAOuU,EAAW7d,CAAM,CACxD,CAEA,SAASgC,GAAO8b,EAAa,CACpBA,IACDA,EAAc,KAAK,MAAK,EAClBxqD,GAAM,iBACNA,GAAM,eAEhB,IAAI4wC,EAASiB,GAAa,KAAM2Y,CAAW,EAC3C,OAAO,KAAK,aAAa,WAAW5Z,CAAM,CAC9C,CAEA,SAAS3hC,GAAK25C,EAAMlW,EAAe,CAC/B,OACI,KAAK,QAAO,IACV9C,GAASgZ,CAAI,GAAKA,EAAK,QAAO,GAAOrG,GAAYqG,CAAI,EAAE,QAAO,GAEzDpE,GAAe,CAAE,GAAI,KAAM,KAAMoE,CAAI,CAAE,EACzC,OAAO,KAAK,OAAM,CAAE,EACpB,SAAS,CAAClW,CAAa,EAErB,KAAK,WAAU,EAAG,YAAW,CAE5C,CAEA,SAAS+X,GAAQ/X,EAAe,CAC5B,OAAO,KAAK,KAAK6P,GAAW,EAAI7P,CAAa,CACjD,CAEA,SAAS1jC,GAAG45C,EAAMlW,EAAe,CAC7B,OACI,KAAK,QAAO,IACV9C,GAASgZ,CAAI,GAAKA,EAAK,QAAO,GAAOrG,GAAYqG,CAAI,EAAE,QAAO,GAEzDpE,GAAe,CAAE,KAAM,KAAM,GAAIoE,CAAI,CAAE,EACzC,OAAO,KAAK,OAAM,CAAE,EACpB,SAAS,CAAClW,CAAa,EAErB,KAAK,WAAU,EAAG,YAAW,CAE5C,CAEA,SAASgY,GAAMhY,EAAe,CAC1B,OAAO,KAAK,GAAG6P,GAAW,EAAI7P,CAAa,CAC/C,CAKA,SAAS/D,GAAOrtD,EAAK,CACjB,IAAIqpE,EAEJ,OAAIrpE,IAAQ,OACD,KAAK,QAAQ,OAEpBqpE,EAAgB7L,GAAUx9D,CAAG,EACzBqpE,GAAiB,OACjB,KAAK,QAAUA,GAEZ,KAEf,CAEA,IAAIC,GAAO7a,GACP,kJACA,SAAUzuD,EAAK,CACX,OAAIA,IAAQ,OACD,KAAK,WAAU,EAEf,KAAK,OAAOA,CAAG,CAE9B,CACJ,EAEA,SAASyzD,IAAa,CAClB,OAAO,KAAK,OAChB,CAEA,IAAI8V,GAAgB,IAChBC,GAAgB,GAAKD,GACrBE,GAAc,GAAKD,GACnBE,IAAoB,IAAM,IAAM,IAAM,GAAKD,GAG/C,SAASE,GAAMC,EAAUC,EAAS,CAC9B,OAASD,EAAWC,EAAWA,GAAWA,CAC9C,CAEA,SAASC,GAAiB1U,EAAG5nC,EAAG2Y,EAAG,CAE/B,OAAIivB,EAAI,KAAOA,GAAK,EAET,IAAI,KAAKA,EAAI,IAAK5nC,EAAG2Y,CAAC,EAAIujC,GAE1B,IAAI,KAAKtU,EAAG5nC,EAAG2Y,CAAC,EAAE,QAAO,CAExC,CAEA,SAAS4jC,GAAe3U,EAAG5nC,EAAG2Y,EAAG,CAE7B,OAAIivB,EAAI,KAAOA,GAAK,EAET,KAAK,IAAIA,EAAI,IAAK5nC,EAAG2Y,CAAC,EAAIujC,GAE1B,KAAK,IAAItU,EAAG5nC,EAAG2Y,CAAC,CAE/B,CAEA,SAAS6jC,GAAQvY,EAAO,CACpB,IAAI6V,EAAM2C,EAEV,GADAxY,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAwY,EAAc,KAAK,OAASF,GAAiBD,GAErCrY,EAAK,CACT,IAAK,OACD6V,EAAO2C,EAAY,KAAK,KAAI,EAAI,EAAG,CAAC,EACpC,MACJ,IAAK,UACD3C,EAAO2C,EACH,KAAK,KAAI,EACT,KAAK,MAAK,EAAM,KAAK,MAAK,EAAK,EAC/B,CAChB,EACY,MACJ,IAAK,QACD3C,EAAO2C,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,CAAC,EAC/C,MACJ,IAAK,OACD3C,EAAO2C,EACH,KAAK,KAAI,EACT,KAAK,MAAK,EACV,KAAK,OAAS,KAAK,QAAO,CAC1C,EACY,MACJ,IAAK,UACD3C,EAAO2C,EACH,KAAK,KAAI,EACT,KAAK,MAAK,EACV,KAAK,KAAI,GAAM,KAAK,WAAU,EAAK,EACnD,EACY,MACJ,IAAK,MACL,IAAK,OACD3C,EAAO2C,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,KAAK,MAAM,EACzD,MACJ,IAAK,OACD3C,EAAO,KAAK,GAAG,QAAO,EACtBA,GAAQqC,GACJrC,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAS,EAAKkC,IAC7CC,EAChB,EACY,MACJ,IAAK,SACDnC,EAAO,KAAK,GAAG,QAAO,EACtBA,GAAQqC,GAAMrC,EAAMkC,EAAa,EACjC,MACJ,IAAK,SACDlC,EAAO,KAAK,GAAG,QAAO,EACtBA,GAAQqC,GAAMrC,EAAMiC,EAAa,EACjC,KACZ,CAEI,YAAK,GAAG,QAAQjC,CAAI,EACpB5oD,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAASwrD,GAAMzY,EAAO,CAClB,IAAI6V,EAAM2C,EAEV,GADAxY,EAAQD,GAAeC,CAAK,EACxBA,IAAU,QAAaA,IAAU,eAAiB,CAAC,KAAK,UACxD,OAAO,KAKX,OAFAwY,EAAc,KAAK,OAASF,GAAiBD,GAErCrY,EAAK,CACT,IAAK,OACD6V,EAAO2C,EAAY,KAAK,KAAI,EAAK,EAAG,EAAG,CAAC,EAAI,EAC5C,MACJ,IAAK,UACD3C,EACI2C,EACI,KAAK,KAAI,EACT,KAAK,MAAK,EAAM,KAAK,MAAK,EAAK,EAAK,EACpC,CACpB,EAAoB,EACR,MACJ,IAAK,QACD3C,EAAO2C,EAAY,KAAK,KAAI,EAAI,KAAK,QAAU,EAAG,CAAC,EAAI,EACvD,MACJ,IAAK,OACD3C,EACI2C,EACI,KAAK,KAAI,EACT,KAAK,MAAK,EACV,KAAK,KAAI,EAAK,KAAK,QAAO,EAAK,CACnD,EAAoB,EACR,MACJ,IAAK,UACD3C,EACI2C,EACI,KAAK,KAAI,EACT,KAAK,MAAK,EACV,KAAK,KAAI,GAAM,KAAK,WAAU,EAAK,GAAK,CAC5D,EAAoB,EACR,MACJ,IAAK,MACL,IAAK,OACD3C,EAAO2C,EAAY,KAAK,KAAI,EAAI,KAAK,MAAK,EAAI,KAAK,OAAS,CAAC,EAAI,EACjE,MACJ,IAAK,OACD3C,EAAO,KAAK,GAAG,QAAO,EACtBA,GACImC,GACAE,GACIrC,GAAQ,KAAK,OAAS,EAAI,KAAK,UAAS,EAAKkC,IAC7CC,EACpB,EACgB,EACJ,MACJ,IAAK,SACDnC,EAAO,KAAK,GAAG,QAAO,EACtBA,GAAQkC,GAAgBG,GAAMrC,EAAMkC,EAAa,EAAI,EACrD,MACJ,IAAK,SACDlC,EAAO,KAAK,GAAG,QAAO,EACtBA,GAAQiC,GAAgBI,GAAMrC,EAAMiC,EAAa,EAAI,EACrD,KACZ,CAEI,YAAK,GAAG,QAAQjC,CAAI,EACpB5oD,GAAM,aAAa,KAAM,EAAI,EACtB,IACX,CAEA,SAASyrD,IAAU,CACf,OAAO,KAAK,GAAG,QAAO,GAAM,KAAK,SAAW,GAAK,GACrD,CAEA,SAASC,IAAO,CACZ,OAAO,KAAK,MAAM,KAAK,QAAO,EAAK,GAAI,CAC3C,CAEA,SAASC,IAAS,CACd,OAAO,IAAI,KAAK,KAAK,SAAS,CAClC,CAEA,SAASC,IAAU,CACf,IAAI98C,EAAI,KACR,MAAO,CACHA,EAAE,KAAI,EACNA,EAAE,MAAK,EACPA,EAAE,KAAI,EACNA,EAAE,KAAI,EACNA,EAAE,OAAM,EACRA,EAAE,OAAM,EACRA,EAAE,YAAW,CACrB,CACA,CAEA,SAAS+8C,IAAW,CAChB,IAAI/8C,EAAI,KACR,MAAO,CACH,MAAOA,EAAE,KAAI,EACb,OAAQA,EAAE,MAAK,EACf,KAAMA,EAAE,KAAI,EACZ,MAAOA,EAAE,MAAK,EACd,QAASA,EAAE,QAAO,EAClB,QAASA,EAAE,QAAO,EAClB,aAAcA,EAAE,aAAY,CACpC,CACA,CAEA,SAASg9C,IAAS,CAEd,OAAO,KAAK,QAAO,EAAK,KAAK,YAAW,EAAK,IACjD,CAEA,SAASC,IAAY,CACjB,OAAO7c,GAAQ,IAAI,CACvB,CAEA,SAAS8c,IAAe,CACpB,OAAOlqE,GAAO,GAAIitD,GAAgB,IAAI,CAAC,CAC3C,CAEA,SAASkd,IAAY,CACjB,OAAOld,GAAgB,IAAI,EAAE,QACjC,CAEA,SAASmd,IAAe,CACpB,MAAO,CACH,MAAO,KAAK,GACZ,OAAQ,KAAK,GACb,OAAQ,KAAK,QACb,MAAO,KAAK,OACZ,OAAQ,KAAK,OACrB,CACA,CAEA3a,GAAe,IAAK,EAAG,EAAG,SAAS,EACnCA,GAAe,KAAM,EAAG,EAAG,SAAS,EACpCA,GAAe,MAAO,EAAG,EAAG,SAAS,EACrCA,GAAe,OAAQ,EAAG,EAAG,SAAS,EACtCA,GAAe,QAAS,EAAG,EAAG,WAAW,EAEzCA,GAAe,IAAK,CAAC,IAAK,CAAC,EAAG,KAAM,SAAS,EAC7CA,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,SAAS,EAC3CA,GAAe,IAAK,CAAC,MAAO,CAAC,EAAG,EAAG,SAAS,EAC5CA,GAAe,IAAK,CAAC,OAAQ,CAAC,EAAG,EAAG,SAAS,EAE7CoD,GAAc,IAAKwX,EAAY,EAC/BxX,GAAc,KAAMwX,EAAY,EAChCxX,GAAc,MAAOwX,EAAY,EACjCxX,GAAc,OAAQyX,EAAY,EAClCzX,GAAc,QAAS0X,EAAc,EAErC1W,GACI,CAAC,IAAK,KAAM,MAAO,OAAQ,OAAO,EAClC,SAAUxH,EAAOhiD,EAAOy/C,EAAQrQ,EAAO,CACnC,IAAIonB,EAAM/W,EAAO,QAAQ,UAAUuC,EAAO5S,EAAOqQ,EAAO,OAAO,EAC3D+W,EACA5T,GAAgBnD,CAAM,EAAE,IAAM+W,EAE9B5T,GAAgBnD,CAAM,EAAE,WAAauC,CAE7C,CACJ,EAEAwG,GAAc,IAAKT,EAAa,EAChCS,GAAc,KAAMT,EAAa,EACjCS,GAAc,MAAOT,EAAa,EAClCS,GAAc,OAAQT,EAAa,EACnCS,GAAc,KAAM2X,EAAmB,EAEvC3W,GAAc,CAAC,IAAK,KAAM,MAAO,MAAM,EAAGM,EAAI,EAC9CN,GAAc,CAAC,IAAI,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQrQ,EAAO,CACzD,IAAIS,EACA4P,EAAO,QAAQ,uBACf5P,EAAQmS,EAAM,MAAMvC,EAAO,QAAQ,oBAAoB,GAGvDA,EAAO,QAAQ,oBACfz/C,EAAM8pD,EAAI,EAAIrK,EAAO,QAAQ,oBAAoBuC,EAAOnS,CAAK,EAE7D7vC,EAAM8pD,EAAI,EAAI,SAAS9H,EAAO,EAAE,CAExC,CAAC,EAED,SAASoe,GAAWz9C,EAAG4/B,EAAQ,CAC3B,IAAIxsD,EACAuF,EACA2vD,EACAoV,EAAO,KAAK,OAAS1N,GAAU,IAAI,EAAE,MACzC,IAAK58D,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAAG,CACrC,OAAQ,OAAOsqE,EAAKtqE,CAAC,EAAE,MAAK,CACxB,IAAK,SAEDk1D,EAAOp3C,GAAMwsD,EAAKtqE,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EACzCsqE,EAAKtqE,CAAC,EAAE,MAAQk1D,EAAK,QAAO,EAC5B,KAChB,CAEQ,OAAQ,OAAOoV,EAAKtqE,CAAC,EAAE,MAAK,CACxB,IAAK,YACDsqE,EAAKtqE,CAAC,EAAE,MAAQ,IAChB,MACJ,IAAK,SAEDk1D,EAAOp3C,GAAMwsD,EAAKtqE,CAAC,EAAE,KAAK,EAAE,QAAQ,KAAK,EAAE,QAAO,EAClDsqE,EAAKtqE,CAAC,EAAE,MAAQk1D,EAAK,QAAO,EAC5B,KAChB,CACI,CACA,OAAOoV,CACX,CAEA,SAASC,GAAgBC,EAAShe,EAAQE,EAAQ,CAC9C,IAAI1sD,EACAuF,EACA+kE,EAAO,KAAK,KAAI,EAChB/mE,EACAknE,EACAC,EAGJ,IAFAF,EAAUA,EAAQ,YAAW,EAExBxqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAKlC,GAJAuD,EAAO+mE,EAAKtqE,CAAC,EAAE,KAAK,YAAW,EAC/ByqE,EAAOH,EAAKtqE,CAAC,EAAE,KAAK,YAAW,EAC/B0qE,EAASJ,EAAKtqE,CAAC,EAAE,OAAO,YAAW,EAE/B0sD,EACA,OAAQF,EAAM,CACV,IAAK,IACL,IAAK,KACL,IAAK,MACD,GAAIie,IAASD,EACT,OAAOF,EAAKtqE,CAAC,EAEjB,MAEJ,IAAK,OACD,GAAIuD,IAASinE,EACT,OAAOF,EAAKtqE,CAAC,EAEjB,MAEJ,IAAK,QACD,GAAI0qE,IAAWF,EACX,OAAOF,EAAKtqE,CAAC,EAEjB,KACpB,SACmB,CAACuD,EAAMknE,EAAMC,CAAM,EAAE,QAAQF,CAAO,GAAK,EAChD,OAAOF,EAAKtqE,CAAC,CAGzB,CAEA,SAAS2qE,GAAsBlK,EAAK3M,EAAM,CACtC,IAAIj8C,EAAM4oD,EAAI,OAASA,EAAI,MAAQ,EAAK,GACxC,OAAI3M,IAAS,OACFh2C,GAAM2iD,EAAI,KAAK,EAAE,KAAI,EAErB3iD,GAAM2iD,EAAI,KAAK,EAAE,KAAI,GAAM3M,EAAO2M,EAAI,QAAU5oD,CAE/D,CAEA,SAAS+yD,IAAa,CAClB,IAAI5qE,EACAuF,EACAlG,EACAirE,EAAO,KAAK,WAAU,EAAG,KAAI,EACjC,IAAKtqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAOlC,GALAX,EAAM,KAAK,MAAK,EAAG,QAAQ,KAAK,EAAE,QAAO,EAErCirE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,OAGvCsqE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,MACvC,OAAOsqE,EAAKtqE,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAAS6qE,IAAe,CACpB,IAAI7qE,EACAuF,EACAlG,EACAirE,EAAO,KAAK,WAAU,EAAG,KAAI,EACjC,IAAKtqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAOlC,GALAX,EAAM,KAAK,MAAK,EAAG,QAAQ,KAAK,EAAE,QAAO,EAErCirE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,OAGvCsqE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,MACvC,OAAOsqE,EAAKtqE,CAAC,EAAE,OAIvB,MAAO,EACX,CAEA,SAAS8qE,IAAa,CAClB,IAAI9qE,EACAuF,EACAlG,EACAirE,EAAO,KAAK,WAAU,EAAG,KAAI,EACjC,IAAKtqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAOlC,GALAX,EAAM,KAAK,MAAK,EAAG,QAAQ,KAAK,EAAE,QAAO,EAErCirE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,OAGvCsqE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,MACvC,OAAOsqE,EAAKtqE,CAAC,EAAE,KAIvB,MAAO,EACX,CAEA,SAAS+qE,IAAa,CAClB,IAAI/qE,EACAuF,EACAsS,EACAxY,EACAirE,EAAO,KAAK,WAAU,EAAG,KAAI,EACjC,IAAKtqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAMlC,GALA6X,EAAMyyD,EAAKtqE,CAAC,EAAE,OAASsqE,EAAKtqE,CAAC,EAAE,MAAQ,EAAK,GAG5CX,EAAM,KAAK,MAAK,EAAG,QAAQ,KAAK,EAAE,QAAO,EAGpCirE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,OACvCsqE,EAAKtqE,CAAC,EAAE,OAASX,GAAOA,GAAOirE,EAAKtqE,CAAC,EAAE,MAExC,OACK,KAAK,KAAI,EAAK8d,GAAMwsD,EAAKtqE,CAAC,EAAE,KAAK,EAAE,KAAI,GAAM6X,EAC9CyyD,EAAKtqE,CAAC,EAAE,OAKpB,OAAO,KAAK,KAAI,CACpB,CAEA,SAASgrE,GAAcpY,EAAU,CAC7B,OAAK1G,GAAW,KAAM,gBAAgB,GAClC+e,GAAiB,KAAK,IAAI,EAEvBrY,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASsY,GAActY,EAAU,CAC7B,OAAK1G,GAAW,KAAM,gBAAgB,GAClC+e,GAAiB,KAAK,IAAI,EAEvBrY,EAAW,KAAK,eAAiB,KAAK,UACjD,CAEA,SAASuY,GAAgBvY,EAAU,CAC/B,OAAK1G,GAAW,KAAM,kBAAkB,GACpC+e,GAAiB,KAAK,IAAI,EAEvBrY,EAAW,KAAK,iBAAmB,KAAK,UACnD,CAEA,SAASqX,GAAarX,EAAUnG,EAAQ,CACpC,OAAOA,EAAO,cAAcmG,CAAQ,CACxC,CAEA,SAASsX,GAAatX,EAAUnG,EAAQ,CACpC,OAAOA,EAAO,cAAcmG,CAAQ,CACxC,CAEA,SAASuX,GAAevX,EAAUnG,EAAQ,CACtC,OAAOA,EAAO,gBAAgBmG,CAAQ,CAC1C,CAEA,SAASwX,GAAoBxX,EAAUnG,EAAQ,CAC3C,OAAOA,EAAO,sBAAwBuF,EAC1C,CAEA,SAASiZ,IAAmB,CACxB,IAAIG,EAAa,GACbC,EAAa,GACbC,EAAe,GACftU,EAAc,GACdh3D,EACAuF,EACAgmE,EACAC,EACAC,EACAnB,EAAO,KAAK,KAAI,EAEpB,IAAKtqE,EAAI,EAAGuF,EAAI+kE,EAAK,OAAQtqE,EAAIuF,EAAG,EAAEvF,EAClCurE,EAAWvY,GAAYsX,EAAKtqE,CAAC,EAAE,IAAI,EACnCwrE,EAAWxY,GAAYsX,EAAKtqE,CAAC,EAAE,IAAI,EACnCyrE,EAAazY,GAAYsX,EAAKtqE,CAAC,EAAE,MAAM,EAEvCqrE,EAAW,KAAKE,CAAQ,EACxBH,EAAW,KAAKI,CAAQ,EACxBF,EAAa,KAAKG,CAAU,EAC5BzU,EAAY,KAAKuU,CAAQ,EACzBvU,EAAY,KAAKwU,CAAQ,EACzBxU,EAAY,KAAKyU,CAAU,EAG/B,KAAK,WAAa,IAAI,OAAO,KAAOzU,EAAY,KAAK,GAAG,EAAI,IAAK,GAAG,EACpE,KAAK,eAAiB,IAAI,OAAO,KAAOqU,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,eAAiB,IAAI,OAAO,KAAOD,EAAW,KAAK,GAAG,EAAI,IAAK,GAAG,EACvE,KAAK,iBAAmB,IAAI,OACxB,KAAOE,EAAa,KAAK,GAAG,EAAI,IAChC,GACR,CACA,CAIAjc,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,SAAQ,EAAK,GAC7B,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EAED,SAASqc,GAAuBryB,EAAOrnC,EAAQ,CAC3Cq9C,GAAe,EAAG,CAAChW,EAAOA,EAAM,MAAM,EAAG,EAAGrnC,CAAM,CACtD,CAEA05D,GAAuB,OAAQ,UAAU,EACzCA,GAAuB,QAAS,UAAU,EAC1CA,GAAuB,OAAQ,aAAa,EAC5CA,GAAuB,QAAS,aAAa,EAM7CjZ,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,OAAQX,GAAWN,EAAM,EACvCiB,GAAc,QAASV,GAAWN,EAAM,EACxCgB,GAAc,QAASV,GAAWN,EAAM,EAExCkC,GACI,CAAC,OAAQ,QAAS,OAAQ,OAAO,EACjC,SAAU1H,EAAO4L,EAAMnO,EAAQrQ,EAAO,CAClCwe,EAAKxe,EAAM,OAAO,EAAG,CAAC,CAAC,EAAIia,GAAMrH,CAAK,CAC1C,CACJ,EAEA0H,GAAkB,CAAC,KAAM,IAAI,EAAG,SAAU1H,EAAO4L,EAAMnO,EAAQrQ,EAAO,CAClEwe,EAAKxe,CAAK,EAAIv7B,GAAM,kBAAkBmuC,CAAK,CAC/C,CAAC,EAID,SAAS0f,GAAe1f,EAAO,CAC3B,OAAO2f,GAAqB,KACxB,KACA3f,EACA,KAAK,KAAI,EACT,KAAK,QAAO,EAAK,KAAK,WAAU,EAAG,MAAM,IACzC,KAAK,aAAa,MAAM,IACxB,KAAK,WAAU,EAAG,MAAM,GAChC,CACA,CAEA,SAAS4f,GAAkB5f,EAAO,CAC9B,OAAO2f,GAAqB,KACxB,KACA3f,EACA,KAAK,QAAO,EACZ,KAAK,WAAU,EACf,EACA,CACR,CACA,CAEA,SAAS6f,IAAoB,CACzB,OAAOxT,GAAY,KAAK,KAAI,EAAI,EAAG,CAAC,CACxC,CAEA,SAASyT,IAA2B,CAChC,OAAOzT,GAAY,KAAK,YAAW,EAAI,EAAG,CAAC,CAC/C,CAEA,SAAS0T,IAAiB,CACtB,IAAIC,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO3T,GAAY,KAAK,KAAI,EAAI2T,EAAS,IAAKA,EAAS,GAAG,CAC9D,CAEA,SAASC,IAAqB,CAC1B,IAAID,EAAW,KAAK,WAAU,EAAG,MACjC,OAAO3T,GAAY,KAAK,SAAQ,EAAI2T,EAAS,IAAKA,EAAS,GAAG,CAClE,CAEA,SAASL,GAAqB3f,EAAO4L,EAAMC,EAASN,EAAKC,EAAK,CAC1D,IAAI0U,EACJ,OAAIlgB,GAAS,KACFmM,GAAW,KAAMZ,EAAKC,CAAG,EAAE,MAElC0U,EAAc7T,GAAYrM,EAAOuL,EAAKC,CAAG,EACrCI,EAAOsU,IACPtU,EAAOsU,GAEJC,GAAW,KAAK,KAAMngB,EAAO4L,EAAMC,EAASN,EAAKC,CAAG,EAEnE,CAEA,SAAS2U,GAAWnM,EAAUpI,EAAMC,EAASN,EAAKC,EAAK,CACnD,IAAI4U,EAAgBzU,GAAmBqI,EAAUpI,EAAMC,EAASN,EAAKC,CAAG,EACpEvC,EAAOoC,GAAc+U,EAAc,KAAM,EAAGA,EAAc,SAAS,EAEvE,YAAK,KAAKnX,EAAK,gBAAgB,EAC/B,KAAK,MAAMA,EAAK,aAAa,EAC7B,KAAK,KAAKA,EAAK,YAAY,EACpB,IACX,CAIA7F,GAAe,IAAK,EAAG,KAAM,SAAS,EAItCoD,GAAc,IAAKpB,EAAM,EACzBoC,GAAc,IAAK,SAAUxH,EAAOhiD,EAAO,CACvCA,EAAM+pD,EAAK,GAAKV,GAAMrH,CAAK,EAAI,GAAK,CACxC,CAAC,EAID,SAASqgB,GAAcrgB,EAAO,CAC1B,OAAOA,GAAS,KACV,KAAK,MAAM,KAAK,MAAK,EAAK,GAAK,CAAC,EAChC,KAAK,OAAOA,EAAQ,GAAK,EAAK,KAAK,QAAU,CAAE,CACzD,CAIAoD,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,KAAM,MAAM,EAI3CoD,GAAc,IAAKf,GAAWY,EAAsB,EACpDG,GAAc,KAAMf,GAAWJ,EAAM,EACrCmB,GAAc,KAAM,SAAUG,EAAUnG,EAAQ,CAE5C,OAAOmG,EACDnG,EAAO,yBAA2BA,EAAO,cACzCA,EAAO,8BACjB,CAAC,EAEDgH,GAAc,CAAC,IAAK,IAAI,EAAGQ,EAAI,EAC/BR,GAAc,KAAM,SAAUxH,EAAOhiD,EAAO,CACxCA,EAAMgqD,EAAI,EAAIX,GAAMrH,EAAM,MAAMyF,EAAS,EAAE,CAAC,CAAC,CACjD,CAAC,EAID,IAAI6a,GAAmB5X,GAAW,OAAQ,EAAI,EAI9CtF,GAAe,MAAO,CAAC,OAAQ,CAAC,EAAG,OAAQ,WAAW,EAItDoD,GAAc,MAAOZ,EAAS,EAC9BY,GAAc,OAAQlB,EAAM,EAC5BkC,GAAc,CAAC,MAAO,MAAM,EAAG,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CAC3DA,EAAO,WAAa4J,GAAMrH,CAAK,CACnC,CAAC,EAMD,SAASugB,GAAgBvgB,EAAO,CAC5B,IAAIgM,EACA,KAAK,OACA,KAAK,QAAQ,QAAQ,KAAK,EAAI,KAAK,MAAK,EAAG,QAAQ,MAAM,GAAK,KAC3E,EAAY,EACR,OAAOhM,GAAS,KAAOgM,EAAY,KAAK,IAAIhM,EAAQgM,EAAW,GAAG,CACtE,CAIA5I,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCmC,GAAc,CAAC,IAAK,IAAI,EAAGU,EAAM,EAIjC,IAAIsY,GAAe9X,GAAW,UAAW,EAAK,EAI9CtF,GAAe,IAAK,CAAC,KAAM,CAAC,EAAG,EAAG,QAAQ,EAI1CoD,GAAc,IAAKf,GAAWa,EAAgB,EAC9CE,GAAc,KAAMf,GAAWJ,EAAM,EACrCmC,GAAc,CAAC,IAAK,IAAI,EAAGW,EAAM,EAIjC,IAAIsY,GAAe/X,GAAW,UAAW,EAAK,EAI9CtF,GAAe,IAAK,EAAG,EAAG,UAAY,CAClC,MAAO,CAAC,EAAE,KAAK,YAAW,EAAK,IACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,KAAM,CAAC,EAAG,EAAG,UAAY,CACxC,MAAO,CAAC,EAAE,KAAK,YAAW,EAAK,GACnC,CAAC,EAEDA,GAAe,EAAG,CAAC,MAAO,CAAC,EAAG,EAAG,aAAa,EAC9CA,GAAe,EAAG,CAAC,OAAQ,CAAC,EAAG,EAAG,UAAY,CAC1C,OAAO,KAAK,YAAW,EAAK,EAChC,CAAC,EACDA,GAAe,EAAG,CAAC,QAAS,CAAC,EAAG,EAAG,UAAY,CAC3C,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,SAAU,CAAC,EAAG,EAAG,UAAY,CAC5C,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,UAAW,CAAC,EAAG,EAAG,UAAY,CAC7C,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,WAAY,CAAC,EAAG,EAAG,UAAY,CAC9C,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EACDA,GAAe,EAAG,CAAC,YAAa,CAAC,EAAG,EAAG,UAAY,CAC/C,OAAO,KAAK,YAAW,EAAK,GAChC,CAAC,EAIDoD,GAAc,IAAKZ,GAAWR,EAAM,EACpCoB,GAAc,KAAMZ,GAAWP,EAAM,EACrCmB,GAAc,MAAOZ,GAAWN,EAAM,EAEtC,IAAIlY,GAAOszB,GACX,IAAKtzB,GAAQ,OAAQA,GAAM,QAAU,EAAGA,IAAS,IAC7CoZ,GAAcpZ,GAAO2Y,EAAa,EAGtC,SAAS4a,GAAQ3gB,EAAOhiD,EAAO,CAC3BA,EAAMoqD,EAAW,EAAIf,IAAO,KAAOrH,GAAS,GAAI,CACpD,CAEA,IAAK5S,GAAQ,IAAKA,GAAM,QAAU,EAAGA,IAAS,IAC1Coa,GAAcpa,GAAOuzB,EAAO,EAGhCD,GAAoBhY,GAAW,eAAgB,EAAK,EAIpDtF,GAAe,IAAK,EAAG,EAAG,UAAU,EACpCA,GAAe,KAAM,EAAG,EAAG,UAAU,EAIrC,SAASwd,IAAc,CACnB,OAAO,KAAK,OAAS,MAAQ,EACjC,CAEA,SAASC,IAAc,CACnB,OAAO,KAAK,OAAS,6BAA+B,EACxD,CAEA,IAAIC,GAAQtf,GAAO,UAEnBsf,GAAM,IAAMt5B,GACZs5B,GAAM,SAAWtG,GACjBsG,GAAM,MAAQrjC,GACdqjC,GAAM,KAAO5yB,GACb4yB,GAAM,MAAQzD,GACdyD,GAAM,OAASvgB,GACfugB,GAAM,KAAOhgD,GACbggD,GAAM,QAAUxE,GAChBwE,GAAM,GAAKjgD,GACXigD,GAAM,MAAQvE,GACduE,GAAM,IAAM5X,GACZ4X,GAAM,UAAYhD,GAClBgD,GAAM,QAAUlG,GAChBkG,GAAM,SAAWhG,GACjBgG,GAAM,UAAY/F,GAClB+F,GAAM,OAAS3F,GACf2F,GAAM,cAAgBzF,GACtByF,GAAM,eAAiBxF,GACvBwF,GAAM,QAAUlD,GAChBkD,GAAM,KAAOrE,GACbqE,GAAM,OAAStgB,GACfsgB,GAAM,WAAala,GACnBka,GAAM,IAAMnL,GACZmL,GAAM,IAAMrL,GACZqL,GAAM,aAAejD,GACrBiD,GAAM,IAAM3X,GACZ2X,GAAM,QAAU3D,GAChB2D,GAAM,SAAWpH,GACjBoH,GAAM,QAAUrD,GAChBqD,GAAM,SAAWpD,GACjBoD,GAAM,OAAStD,GACfsD,GAAM,YAAchF,GACpBgF,GAAM,QAAU7E,GACZ,OAAO,OAAW,KAAe,OAAO,KAAO,OAC/C6E,GAAM,OAAO,IAAI,4BAA4B,CAAC,EAAI,UAAY,CAC1D,MAAO,UAAY,KAAK,OAAM,EAAK,GACvC,GAEJA,GAAM,OAASnD,GACfmD,GAAM,SAAWjF,GACjBiF,GAAM,KAAOvD,GACbuD,GAAM,QAAUxD,GAChBwD,GAAM,aAAe/C,GACrB+C,GAAM,QAAUnC,GAChBmC,GAAM,UAAYlC,GAClBkC,GAAM,QAAUjC,GAChBiC,GAAM,QAAUhC,GAChBgC,GAAM,KAAOrY,GACbqY,GAAM,WAAanY,GACnBmY,GAAM,SAAWpB,GACjBoB,GAAM,YAAclB,GACpBkB,GAAM,QAAUA,GAAM,SAAWT,GACjCS,GAAM,MAAQvW,GACduW,GAAM,YAActW,GACpBsW,GAAM,KAAOA,GAAM,MAAQnU,GAC3BmU,GAAM,QAAUA,GAAM,SAAWlU,GACjCkU,GAAM,YAAcf,GACpBe,GAAM,gBAAkBb,GACxBa,GAAM,eAAiBjB,GACvBiB,GAAM,sBAAwBhB,GAC9BgB,GAAM,KAAOR,GACbQ,GAAM,IAAMA,GAAM,KAAOhT,GACzBgT,GAAM,QAAU9S,GAChB8S,GAAM,WAAa7S,GACnB6S,GAAM,UAAYP,GAClBO,GAAM,KAAOA,GAAM,MAAQzR,GAC3ByR,GAAM,OAASA,GAAM,QAAUN,GAC/BM,GAAM,OAASA,GAAM,QAAUL,GAC/BK,GAAM,YAAcA,GAAM,aAAeJ,GACzCI,GAAM,UAAYjJ,GAClBiJ,GAAM,IAAM3I,GACZ2I,GAAM,MAAQ1I,GACd0I,GAAM,UAAYzI,GAClByI,GAAM,qBAAuBvI,GAC7BuI,GAAM,MAAQtI,GACdsI,GAAM,QAAUpI,GAChBoI,GAAM,YAAcnI,GACpBmI,GAAM,MAAQlI,GACdkI,GAAM,MAAQlI,GACdkI,GAAM,SAAWF,GACjBE,GAAM,SAAWD,GACjBC,GAAM,MAAQlf,GACV,kDACA0e,EACJ,EACAQ,GAAM,OAASlf,GACX,mDACA2I,EACJ,EACAuW,GAAM,MAAQlf,GACV,iDACA6G,EACJ,EACAqY,GAAM,KAAOlf,GACT,2GACAsW,EACJ,EACA4I,GAAM,aAAelf,GACjB,0GACA6W,EACJ,EAEA,SAASsI,GAAW/gB,EAAO,CACvB,OAAOoU,GAAYpU,EAAQ,GAAI,CACnC,CAEA,SAASghB,IAAe,CACpB,OAAO5M,GAAY,MAAM,KAAM,SAAS,EAAE,UAAS,CACvD,CAEA,SAAS6M,GAAmBzc,EAAQ,CAChC,OAAOA,CACX,CAEA,IAAI0c,GAAU9e,GAAO,UAErB8e,GAAQ,SAAW5e,GACnB4e,GAAQ,eAAiBpd,GACzBod,GAAQ,YAAchd,GACtBgd,GAAQ,QAAU5d,GAClB4d,GAAQ,SAAWD,GACnBC,GAAQ,WAAaD,GACrBC,GAAQ,aAAe5c,GACvB4c,GAAQ,WAAaxc,GACrBwc,GAAQ,IAAMp8D,GACdo8D,GAAQ,KAAO9C,GACf8C,GAAQ,UAAY5C,GACpB4C,GAAQ,gBAAkBxC,GAC1BwC,GAAQ,cAAgBjC,GACxBiC,GAAQ,cAAgBnC,GACxBmC,GAAQ,gBAAkBhC,GAE1BgC,GAAQ,OAASnX,GACjBmX,GAAQ,YAAclX,GACtBkX,GAAQ,YAAc7W,GACtB6W,GAAQ,YAAcvW,GACtBuW,GAAQ,iBAAmBzW,GAC3ByW,GAAQ,KAAO3U,GACf2U,GAAQ,eAAiBxU,GACzBwU,GAAQ,eAAiBzU,GAEzByU,GAAQ,SAAW3T,GACnB2T,GAAQ,YAAcxT,GACtBwT,GAAQ,cAAgBzT,GACxByT,GAAQ,cAAgBrT,GAExBqT,GAAQ,cAAgBhT,GACxBgT,GAAQ,mBAAqB9S,GAC7B8S,GAAQ,iBAAmB7S,GAE3B6S,GAAQ,KAAO/R,GACf+R,GAAQ,SAAW5R,GAEnB,SAAS6R,GAAM5gB,EAAQ3gD,EAAOwhE,EAAOz7D,EAAQ,CACzC,IAAI66C,EAASmQ,GAAS,EAClBqL,EAAM1b,GAAS,EAAG,IAAI36C,EAAQ/F,CAAK,EACvC,OAAO4gD,EAAO4gB,CAAK,EAAEpF,EAAKzb,CAAM,CACpC,CAEA,SAAS8gB,GAAe9gB,EAAQ3gD,EAAOwhE,EAAO,CAQ1C,GAPIhhB,GAASG,CAAM,IACf3gD,EAAQ2gD,EACRA,EAAS,QAGbA,EAASA,GAAU,GAEf3gD,GAAS,KACT,OAAOuhE,GAAM5gB,EAAQ3gD,EAAOwhE,EAAO,OAAO,EAG9C,IAAIrtE,EACAutE,EAAM,GACV,IAAKvtE,EAAI,EAAGA,EAAI,GAAIA,IAChButE,EAAIvtE,CAAC,EAAIotE,GAAM5gB,EAAQxsD,EAAGqtE,EAAO,OAAO,EAE5C,OAAOE,CACX,CAUA,SAASC,GAAiBC,EAAcjhB,EAAQ3gD,EAAOwhE,EAAO,CACtD,OAAOI,GAAiB,WACpBphB,GAASG,CAAM,IACf3gD,EAAQ2gD,EACRA,EAAS,QAGbA,EAASA,GAAU,KAEnBA,EAASihB,EACT5hE,EAAQ2gD,EACRihB,EAAe,GAEXphB,GAASG,CAAM,IACf3gD,EAAQ2gD,EACRA,EAAS,QAGbA,EAASA,GAAU,IAGvB,IAAIC,EAASmQ,GAAS,EAClB8Q,EAAQD,EAAehhB,EAAO,MAAM,IAAM,EAC1CzsD,EACAutE,EAAM,GAEV,GAAI1hE,GAAS,KACT,OAAOuhE,GAAM5gB,GAAS3gD,EAAQ6hE,GAAS,EAAGL,EAAO,KAAK,EAG1D,IAAKrtE,EAAI,EAAGA,EAAI,EAAGA,IACfutE,EAAIvtE,CAAC,EAAIotE,GAAM5gB,GAASxsD,EAAI0tE,GAAS,EAAGL,EAAO,KAAK,EAExD,OAAOE,CACX,CAEA,SAASI,GAAWnhB,EAAQ3gD,EAAO,CAC/B,OAAOyhE,GAAe9gB,EAAQ3gD,EAAO,QAAQ,CACjD,CAEA,SAAS+hE,GAAgBphB,EAAQ3gD,EAAO,CACpC,OAAOyhE,GAAe9gB,EAAQ3gD,EAAO,aAAa,CACtD,CAEA,SAASgiE,GAAaJ,EAAcjhB,EAAQ3gD,EAAO,CAC/C,OAAO2hE,GAAiBC,EAAcjhB,EAAQ3gD,EAAO,UAAU,CACnE,CAEA,SAASiiE,GAAkBL,EAAcjhB,EAAQ3gD,EAAO,CACpD,OAAO2hE,GAAiBC,EAAcjhB,EAAQ3gD,EAAO,eAAe,CACxE,CAEA,SAASkiE,GAAgBN,EAAcjhB,EAAQ3gD,EAAO,CAClD,OAAO2hE,GAAiBC,EAAcjhB,EAAQ3gD,EAAO,aAAa,CACtE,CAEA8wD,GAAmB,KAAM,CACrB,KAAM,CACF,CACI,MAAO,aACP,MAAO,IACP,OAAQ,EACR,KAAM,cACN,OAAQ,KACR,KAAM,IAClB,EACQ,CACI,MAAO,aACP,MAAO,KACP,OAAQ,EACR,KAAM,gBACN,OAAQ,KACR,KAAM,IAClB,CACA,EACI,uBAAwB,uBACxB,QAAS,SAAU1yB,EAAQ,CACvB,IAAIhmC,EAAIgmC,EAAS,GACbykB,EACI4E,GAAOrpB,EAAS,IAAO,EAAE,IAAM,EACzB,KACAhmC,IAAM,EACJ,KACAA,IAAM,EACJ,KACAA,IAAM,EACJ,KACA,KACpB,OAAOgmC,EAASykB,CACpB,CACJ,CAAC,EAID5wC,GAAM,KAAO+vC,GACT,wDACA8O,EACJ,EACA7+C,GAAM,SAAW+vC,GACb,gEACA+O,EACJ,EAEA,IAAIoR,GAAU,KAAK,IAEnB,SAASC,IAAM,CACX,IAAI7lD,EAAO,KAAK,MAEhB,YAAK,cAAgB4lD,GAAQ,KAAK,aAAa,EAC/C,KAAK,MAAQA,GAAQ,KAAK,KAAK,EAC/B,KAAK,QAAUA,GAAQ,KAAK,OAAO,EAEnC5lD,EAAK,aAAe4lD,GAAQ5lD,EAAK,YAAY,EAC7CA,EAAK,QAAU4lD,GAAQ5lD,EAAK,OAAO,EACnCA,EAAK,QAAU4lD,GAAQ5lD,EAAK,OAAO,EACnCA,EAAK,MAAQ4lD,GAAQ5lD,EAAK,KAAK,EAC/BA,EAAK,OAAS4lD,GAAQ5lD,EAAK,MAAM,EACjCA,EAAK,MAAQ4lD,GAAQ5lD,EAAK,KAAK,EAExB,IACX,CAEA,SAAS8lD,GAAc3rC,EAAU0pB,EAAOlrD,EAAOukE,EAAW,CACtD,IAAI3D,EAAQW,GAAerW,EAAOlrD,CAAK,EAEvC,OAAAwhC,EAAS,eAAiB+iC,EAAY3D,EAAM,cAC5Cp/B,EAAS,OAAS+iC,EAAY3D,EAAM,MACpCp/B,EAAS,SAAW+iC,EAAY3D,EAAM,QAE/Bp/B,EAAS,QAAO,CAC3B,CAGA,SAAS4rC,GAAMliB,EAAOlrD,EAAO,CACzB,OAAOmtE,GAAc,KAAMjiB,EAAOlrD,EAAO,CAAC,CAC9C,CAGA,SAASqtE,GAAWniB,EAAOlrD,EAAO,CAC9B,OAAOmtE,GAAc,KAAMjiB,EAAOlrD,EAAO,EAAE,CAC/C,CAEA,SAASstE,GAAQpkC,EAAQ,CACrB,OAAIA,EAAS,EACF,KAAK,MAAMA,CAAM,EAEjB,KAAK,KAAKA,CAAM,CAE/B,CAEA,SAASqkC,IAAS,CACd,IAAIxL,EAAe,KAAK,cACpBF,EAAO,KAAK,MACZF,EAAS,KAAK,QACdt6C,EAAO,KAAK,MACZy6C,EACApH,EACAD,EACAgH,EACA+L,EAIJ,OAESzL,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,GAC5CI,GAAgB,GAAKF,GAAQ,GAAKF,GAAU,IAGjDI,GAAgBuL,GAAQG,GAAa9L,CAAM,EAAIE,CAAI,EAAI,MACvDA,EAAO,EACPF,EAAS,GAKbt6C,EAAK,aAAe06C,EAAe,IAEnCD,EAAUxP,GAASyP,EAAe,GAAI,EACtC16C,EAAK,QAAUy6C,EAAU,GAEzBpH,EAAUpI,GAASwP,EAAU,EAAE,EAC/Bz6C,EAAK,QAAUqzC,EAAU,GAEzBD,EAAQnI,GAASoI,EAAU,EAAE,EAC7BrzC,EAAK,MAAQozC,EAAQ,GAErBoH,GAAQvP,GAASmI,EAAQ,EAAE,EAG3B+S,EAAiBlb,GAASob,GAAa7L,CAAI,CAAC,EAC5CF,GAAU6L,EACV3L,GAAQyL,GAAQG,GAAaD,CAAc,CAAC,EAG5C/L,EAAQnP,GAASqP,EAAS,EAAE,EAC5BA,GAAU,GAEVt6C,EAAK,KAAOw6C,EACZx6C,EAAK,OAASs6C,EACdt6C,EAAK,MAAQo6C,EAEN,IACX,CAEA,SAASiM,GAAa7L,EAAM,CAGxB,OAAQA,EAAO,KAAQ,MAC3B,CAEA,SAAS4L,GAAa9L,EAAQ,CAE1B,OAAQA,EAAS,OAAU,IAC/B,CAEA,SAASgM,GAAG7d,EAAO,CACf,GAAI,CAAC,KAAK,UACN,MAAO,KAEX,IAAI+R,EACAF,EACAI,EAAe,KAAK,cAIxB,GAFAjS,EAAQD,GAAeC,CAAK,EAExBA,IAAU,SAAWA,IAAU,WAAaA,IAAU,OAGtD,OAFA+R,EAAO,KAAK,MAAQE,EAAe,MACnCJ,EAAS,KAAK,QAAU+L,GAAa7L,CAAI,EACjC/R,EAAK,CACT,IAAK,QACD,OAAO6R,EACX,IAAK,UACD,OAAOA,EAAS,EACpB,IAAK,OACD,OAAOA,EAAS,EAChC,KAIQ,QADAE,EAAO,KAAK,MAAQ,KAAK,MAAM4L,GAAa,KAAK,OAAO,CAAC,EACjD3d,EAAK,CACT,IAAK,OACD,OAAO+R,EAAO,EAAIE,EAAe,OACrC,IAAK,MACD,OAAOF,EAAOE,EAAe,MACjC,IAAK,OACD,OAAOF,EAAO,GAAKE,EAAe,KACtC,IAAK,SACD,OAAOF,EAAO,KAAOE,EAAe,IACxC,IAAK,SACD,OAAOF,EAAO,MAAQE,EAAe,IAEzC,IAAK,cACD,OAAO,KAAK,MAAMF,EAAO,KAAK,EAAIE,EACtC,QACI,MAAM,IAAI,MAAM,gBAAkBjS,CAAK,CACvD,CAEA,CAEA,SAAS8d,GAAOlzB,EAAO,CACnB,OAAO,UAAY,CACf,OAAO,KAAK,GAAGA,CAAK,CACxB,CACJ,CAEA,IAAImzB,GAAiBD,GAAO,IAAI,EAC5BE,GAAYF,GAAO,GAAG,EACtBG,GAAYH,GAAO,GAAG,EACtBI,GAAUJ,GAAO,GAAG,EACpBK,GAASL,GAAO,GAAG,EACnBM,GAAUN,GAAO,GAAG,EACpBO,GAAWP,GAAO,GAAG,EACrBQ,GAAaR,GAAO,GAAG,EACvBS,GAAUT,GAAO,GAAG,EACpBU,GAAYT,GAEhB,SAASU,IAAU,CACf,OAAOhN,GAAe,IAAI,CAC9B,CAEA,SAASiN,GAAM1e,EAAO,CAClB,OAAAA,EAAQD,GAAeC,CAAK,EACrB,KAAK,UAAY,KAAKA,EAAQ,GAAG,EAAC,EAAK,GAClD,CAEA,SAAS2e,GAAWjsE,EAAM,CACtB,OAAO,UAAY,CACf,OAAO,KAAK,QAAO,EAAK,KAAK,MAAMA,CAAI,EAAI,GAC/C,CACJ,CAEA,IAAIu/D,GAAe0M,GAAW,cAAc,EACxC3M,GAAU2M,GAAW,SAAS,EAC9B/T,GAAU+T,GAAW,SAAS,EAC9BhU,GAAQgU,GAAW,OAAO,EAC1B5M,GAAO4M,GAAW,MAAM,EACxB9M,GAAS8M,GAAW,QAAQ,EAC5BhN,GAAQgN,GAAW,OAAO,EAE9B,SAAS7M,IAAQ,CACb,OAAOtP,GAAS,KAAK,KAAI,EAAK,CAAC,CACnC,CAEA,IAAIoc,GAAQ,KAAK,MACbC,GAAa,CACT,GAAI,GACJ,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,GACH,EAAG,KACH,EAAG,EACX,EAGA,SAASC,GAAkBlf,EAAQxmB,EAAQumB,EAAeE,EAAUjE,EAAQ,CACxE,OAAOA,EAAO,aAAaxiB,GAAU,EAAG,CAAC,CAACumB,EAAeC,EAAQC,CAAQ,CAC7E,CAEA,SAASkf,GAAeC,EAAgBrf,EAAekf,EAAYjjB,EAAQ,CACvE,IAAIlqB,EAAW+/B,GAAeuN,CAAc,EAAE,IAAG,EAC7ChN,EAAU4M,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAChCk5B,EAAUgU,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAChCi5B,EAAQiU,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAC9BqgC,EAAO6M,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAC7BmgC,EAAS+M,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAC/BogC,EAAQ8M,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAC9BigC,EAAQiN,GAAMltC,EAAS,GAAG,GAAG,CAAC,EAC9Bv+B,EACK6+D,GAAW6M,EAAW,IAAM,CAAC,IAAK7M,CAAO,GACzCA,EAAU6M,EAAW,GAAK,CAAC,KAAM7M,CAAO,GACxCpH,GAAW,GAAK,CAAC,GAAG,GACpBA,EAAUiU,EAAW,GAAK,CAAC,KAAMjU,CAAO,GACxCD,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQkU,EAAW,GAAK,CAAC,KAAMlU,CAAK,GACpCoH,GAAQ,GAAK,CAAC,GAAG,GACjBA,EAAO8M,EAAW,GAAK,CAAC,KAAM9M,CAAI,EAE3C,OAAI8M,EAAW,GAAK,OAChB1rE,EACIA,GACC2+D,GAAS,GAAK,CAAC,GAAG,GAClBA,EAAQ+M,EAAW,GAAK,CAAC,KAAM/M,CAAK,GAE7C3+D,EAAIA,GACC0+D,GAAU,GAAK,CAAC,GAAG,GACnBA,EAASgN,EAAW,GAAK,CAAC,KAAMhN,CAAM,GACtCF,GAAS,GAAK,CAAC,GAAG,GAAM,CAAC,KAAMA,CAAK,EAEzCx+D,EAAE,CAAC,EAAIwsD,EACPxsD,EAAE,CAAC,EAAI,CAAC6rE,EAAiB,EACzB7rE,EAAE,CAAC,EAAIyoD,EACAkjB,GAAkB,MAAM,KAAM3rE,CAAC,CAC1C,CAGA,SAAS8rE,GAA2BC,EAAkB,CAClD,OAAIA,IAAqB,OACdN,GAEP,OAAOM,GAAqB,YAC5BN,GAAQM,EACD,IAEJ,EACX,CAGA,SAASC,GAA4BC,EAAWC,EAAO,CACnD,OAAIR,GAAWO,CAAS,IAAM,OACnB,GAEPC,IAAU,OACHR,GAAWO,CAAS,GAE/BP,GAAWO,CAAS,EAAIC,EACpBD,IAAc,MACdP,GAAW,GAAKQ,EAAQ,GAErB,GACX,CAEA,SAASC,GAASC,EAAeC,EAAe,CAC5C,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,WAAU,EAAG,YAAW,EAGxC,IAAIC,EAAa,GACbC,EAAKb,GACLjjB,EACAiC,EAEJ,OAAI,OAAO0hB,GAAkB,WACzBC,EAAgBD,EAChBA,EAAgB,IAEhB,OAAOA,GAAkB,YACzBE,EAAaF,GAEb,OAAOC,GAAkB,WACzBE,EAAK,OAAO,OAAO,GAAIb,GAAYW,CAAa,EAC5CA,EAAc,GAAK,MAAQA,EAAc,IAAM,OAC/CE,EAAG,GAAKF,EAAc,EAAI,IAIlC5jB,EAAS,KAAK,WAAU,EACxBiC,EAASkhB,GAAe,KAAM,CAACU,EAAYC,EAAI9jB,CAAM,EAEjD6jB,IACA5hB,EAASjC,EAAO,WAAW,CAAC,KAAMiC,CAAM,GAGrCjC,EAAO,WAAWiC,CAAM,CACnC,CAEA,IAAI8hB,GAAQ,KAAK,IAEjB,SAASxhB,GAAKtkD,EAAG,CACb,OAAQA,EAAI,IAAMA,EAAI,IAAM,CAACA,CACjC,CAEA,SAAS+lE,IAAgB,CAQrB,GAAI,CAAC,KAAK,UACN,OAAO,KAAK,WAAU,EAAG,YAAW,EAGxC,IAAI5N,EAAU2N,GAAM,KAAK,aAAa,EAAI,IACtC5N,EAAO4N,GAAM,KAAK,KAAK,EACvB9N,EAAS8N,GAAM,KAAK,OAAO,EAC3B/U,EACAD,EACAgH,EACAhvD,EACAk9D,EAAQ,KAAK,UAAS,EACtBC,EACAC,EACAC,EACAC,EAEJ,OAAKJ,GAOLjV,EAAUpI,GAASwP,EAAU,EAAE,EAC/BrH,EAAQnI,GAASoI,EAAU,EAAE,EAC7BoH,GAAW,GACXpH,GAAW,GAGX+G,EAAQnP,GAASqP,EAAS,EAAE,EAC5BA,GAAU,GAGVlvD,EAAIqvD,EAAUA,EAAQ,QAAQ,CAAC,EAAE,QAAQ,SAAU,EAAE,EAAI,GAEzD8N,EAAYD,EAAQ,EAAI,IAAM,GAC9BE,EAAS5hB,GAAK,KAAK,OAAO,IAAMA,GAAK0hB,CAAK,EAAI,IAAM,GACpDG,EAAW7hB,GAAK,KAAK,KAAK,IAAMA,GAAK0hB,CAAK,EAAI,IAAM,GACpDI,EAAU9hB,GAAK,KAAK,aAAa,IAAMA,GAAK0hB,CAAK,EAAI,IAAM,GAGvDC,EACA,KACCnO,EAAQoO,EAASpO,EAAQ,IAAM,KAC/BE,EAASkO,EAASlO,EAAS,IAAM,KACjCE,EAAOiO,EAAWjO,EAAO,IAAM,KAC/BpH,GAASC,GAAWoH,EAAU,IAAM,KACpCrH,EAAQsV,EAAUtV,EAAQ,IAAM,KAChCC,EAAUqV,EAAUrV,EAAU,IAAM,KACpCoH,EAAUiO,EAAUt9D,EAAI,IAAM,KA9BxB,KAgCf,CAEA,IAAIu9D,GAAUxO,GAAS,UAEvBwO,GAAQ,QAAU3O,GAClB2O,GAAQ,IAAM9C,GACd8C,GAAQ,IAAM5C,GACd4C,GAAQ,SAAW3C,GACnB2C,GAAQ,GAAKrC,GACbqC,GAAQ,eAAiBnC,GACzBmC,GAAQ,UAAYlC,GACpBkC,GAAQ,UAAYjC,GACpBiC,GAAQ,QAAUhC,GAClBgC,GAAQ,OAAS/B,GACjB+B,GAAQ,QAAU9B,GAClB8B,GAAQ,SAAW7B,GACnB6B,GAAQ,WAAa5B,GACrB4B,GAAQ,QAAU3B,GAClB2B,GAAQ,QAAU1B,GAClB0B,GAAQ,QAAUzC,GAClByC,GAAQ,MAAQzB,GAChByB,GAAQ,IAAMxB,GACdwB,GAAQ,aAAejO,GACvBiO,GAAQ,QAAUlO,GAClBkO,GAAQ,QAAUtV,GAClBsV,GAAQ,MAAQvV,GAChBuV,GAAQ,KAAOnO,GACfmO,GAAQ,MAAQpO,GAChBoO,GAAQ,OAASrO,GACjBqO,GAAQ,MAAQvO,GAChBuO,GAAQ,SAAWZ,GACnBY,GAAQ,YAAcN,GACtBM,GAAQ,SAAWN,GACnBM,GAAQ,OAASN,GACjBM,GAAQ,OAAStkB,GACjBskB,GAAQ,WAAale,GAErBke,GAAQ,YAAcljB,GAClB,sFACA4iB,EACJ,EACAM,GAAQ,KAAOrI,GAIfrZ,GAAe,IAAK,EAAG,EAAG,MAAM,EAChCA,GAAe,IAAK,EAAG,EAAG,SAAS,EAInCoD,GAAc,IAAKR,EAAW,EAC9BQ,GAAc,IAAKL,EAAc,EACjCqB,GAAc,IAAK,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK,WAAWuC,CAAK,EAAI,GAAI,CACjD,CAAC,EACDwH,GAAc,IAAK,SAAUxH,EAAOhiD,EAAOy/C,EAAQ,CAC/CA,EAAO,GAAK,IAAI,KAAK4J,GAAMrH,CAAK,CAAC,CACrC,CAAC,EAIDnuC,GAAM,QAAU,SAEhBkuC,GAAgBqU,EAAW,EAE3BviD,GAAM,GAAKivD,GACXjvD,GAAM,IAAMikD,GACZjkD,GAAM,IAAMgG,GACZhG,GAAM,IAAM2wC,GACZ3wC,GAAM,IAAMyuC,GACZzuC,GAAM,KAAOkvD,GACblvD,GAAM,OAAS6vD,GACf7vD,GAAM,OAASvd,GACfud,GAAM,OAAS6+C,GACf7+C,GAAM,QAAUsvC,GAChBtvC,GAAM,SAAWwkD,GACjBxkD,GAAM,SAAW4vC,GACjB5vC,GAAM,SAAW+vD,GACjB/vD,GAAM,UAAYmvD,GAClBnvD,GAAM,WAAa8+C,GACnB9+C,GAAM,WAAailD,GACnBjlD,GAAM,YAAc8vD,GACpB9vD,GAAM,YAAciwD,GACpBjwD,GAAM,aAAe++C,GACrB/+C,GAAM,aAAeg/C,GACrBh/C,GAAM,QAAUk/C,GAChBl/C,GAAM,cAAgBgwD,GACtBhwD,GAAM,eAAiB8yC,GACvB9yC,GAAM,qBAAuBgyD,GAC7BhyD,GAAM,sBAAwBkyD,GAC9BlyD,GAAM,eAAiByoD,GACvBzoD,GAAM,UAAYivD,GAGlBjvD,GAAM,UAAY,CACd,eAAgB,mBAChB,uBAAwB,sBACxB,kBAAmB,0BACnB,KAAM,aACN,KAAM,QACN,aAAc,WACd,QAAS,eACT,KAAM,aACN,MAAO,SACX,EC/hLO,SAASkzD,IAAmB,CACjC,MAAMC,EAAY,sBAKlB,SAASC,EAAgBC,EAAsBz+D,EAA8B,GAAY,CACvF,KAAM,CAAE,UAAA0+D,EAAY,YAAe1+D,EAEnC,GAAIy+D,EAAU,SAAW,EAAG,OAAOC,EAEnC,KAAM,CAACC,EAAU5H,CAAM,EAAI0H,EAE3B,OAAI1H,GAAUA,EAAS,IAAI,KAAe,+BACtC4H,GAAY5H,EAAe,GAAG4H,EAAS,gBAAgB,MAAM5H,EAAO,gBAAgB,GACpF4H,EAAiBA,EAAS,iBACvBD,CACT,CAKA,SAASE,EAAWC,EAAiC7+D,EAA8B,GAAY,CAC7F,KAAM,CAAE,cAAA8+D,EAAgB,GAAM,YAAAC,EAAc,GAAO,aAAAC,EAAe,GAAO,OAAAllB,EAAS,OAAQ,UAAA4kB,EAAY,OAAU1+D,EAEhH,GAAI,CAAC6+D,GAAaA,IAAcN,EAC9B,OAAOG,EAGT,MAAMxkD,EAAI+kD,GAAO,IAAIJ,CAAS,EAE9B,OAAIG,EACK9kD,EAAE,UAGP4kD,GAAiBC,EACZ,GAAG7kD,EAAE,QAAQ,OAAO4/B,CAAM,CAAC;AAAA,EAAa5/B,EAAE,MAAM,OAAO4/B,CAAM,CAAC,SAGnEilB,EACK7kD,EAAE,MAAM,OAAO4/B,CAAM,EAGvB5/B,EAAE,QAAQ,OAAO4/B,CAAM,CAChC,CAKA,SAASolB,EAAkBL,EAAiCM,EAA6B,CACvF,GAAIA,EAAY,OAAOA,EACvB,GAAI,CAACN,GAAaA,IAAcN,EAAW,MAAO,GAElD,MAAMrkD,EAAI+kD,GAAO,IAAIJ,CAAS,EAC9B,MAAO,GAAG3kD,EAAE,QAAQ,OAAO,MAAM,CAAC;AAAA,EAAaA,EAAE,MAAM,OAAO,MAAM,CAAC,QACvE,CAKA,SAASklD,EAAmBP,EAAiC7+D,EAA8B,GAAY,CACrG,KAAM,CAAE,UAAA0+D,EAAY,OAAU1+D,EAE9B,MAAI,CAAC6+D,GAAaA,IAAcN,EACvBG,EAGFO,GAAO,IAAIJ,CAAS,EAAE,SAC/B,CAKA,SAASQ,EAAkBR,EAAkC,CAC3D,OAAKA,EACE,IAAI,KAAKA,EAAU,QAAQ,IAAK,EAAE,CAAC,EAAE,qBADrB,EAEzB,CAKA,SAASS,EAAiBb,EAA+B,CAEvD,GAAIA,EAAU,SAAW,EAAG,MAAO,GAEnC,KAAM,CAACE,EAAU5H,CAAM,EAAI0H,EAG3B,OAAI1H,GAAUA,EAAS,IAAI,KAAe,GAGtC4H,GAAY,CAAC5H,EAAe,GAG5B4H,GAAY5H,EAAe4H,GAAY5H,EAEpC,EACT,CAEA,MAAO,CACL,WAAA6H,EACA,gBAAAJ,EACA,kBAAAU,EACA,mBAAAE,EACA,kBAAAC,EACA,iBAAAC,EACA,UAAAf,CAAA,CAEJ,wKCtHA,MAAMxtE,EAAQogD,EAaR,CAAE,mBAAAiuB,EAAoB,kBAAAF,EAAmB,UAAAX,CAAA,EAAcD,GAAA,EAE7D,IAAIiB,EAEJ,MAAMC,EAAQliE,GAAY,EAAE,EACtB4uB,EAAO5uB,GAAY,EAAE,EAE3B,SAASmiE,GAAa,CAChB1uE,EAAM,SAAW,MAAQA,EAAM,UAAYwtE,GAC7CryC,EAAK,MAAQkzC,EAAmBruE,EAAM,QAAS,CAAE,UAAWA,EAAM,qBAAsB,EACxFyuE,EAAM,MAAQN,EAAkBnuE,EAAM,QAASA,EAAM,UAAU,IAE/Dm7B,EAAK,MAAQn7B,EAAM,qBACnByuE,EAAM,MAAQzuE,EAAM,YAAcA,EAAM,qBAE5C,CAGA,OAAA+O,GAAM,IAAM/O,EAAM,QAAS0uE,EAAY,CAAE,UAAW,GAAM,EAE1Dv1D,GAAU,IAAM,CACdq1D,EAAW,OAAO,YAAYE,EAAY,GAAI,CAChD,CAAC,EAEDxtD,GAAY,IAAM,OAAO,cAAcstD,CAAQ,CAAC,UAI9CnuB,EAAA,EAAAC,EAAsC,QAA/B,MAAOmuB,EAAA,UAAUtzC,EAAA,KAAI,IAAAolB,EAAA,MCnCvB,IAAKouB,QACVA,EAAA,SAAW,WACXA,EAAA,MAAQ,QACRA,EAAA,QAAU,UACVA,EAAA,KAAO,OAJGA,QAAA,ICVZ,MAAMC,GAAkB77C,GAAiB,CACvC,SAAS87C,EAAW7wC,EAAkB,CACpC,MAAO,CAAE,KAAM,GAAGjL,CAAI,IAAIiL,CAAQ,GAAI,SAAAA,CAAA,CACxC,CAEA,MAAO,CACL,KAAAjL,EACA,UAAW87C,EAAW,WAAW,EACjC,QAASA,EAAW,SAAS,EAC7B,cAAeA,EAAW,eAAe,EACzC,UAAW,CAAE,KAAOC,GAAyB,GAAG/7C,CAAI,cAAc,mBAAmB+7C,CAAY,CAAC,GAAI,SAAU,sCAAsC,CAE1J,EAEMC,GAAuBh8C,GAAiB,CAC5C,SAAS87C,EAAW7wC,EAAkB,CACpC,MAAO,CAAE,KAAM,GAAGjL,CAAI,IAAIiL,CAAQ,GAAI,SAAAA,CAAA,CACxC,CAEA,MAAO,CACL,KAAAjL,EACA,qBAAsB87C,EAAW,uBAAuB,EACxD,eAAgBA,EAAW,qBAAqB,EAChD,qBAAsBA,EAAW,wBAAwB,EACzD,gBAAiBA,EAAW,sBAAsB,EAClD,eAAgBA,EAAW,iBAAiB,EAC5C,MAAO,CAAE,KAAOG,GAAoB,GAAGj8C,CAAI,UAAUi8C,CAAO,GAAI,SAAU,kBAC1E,aAAc,CAAE,KAAOA,GAAoB,GAAGj8C,CAAI,2BAA2Bi8C,CAAO,GAAI,SAAU,mCAClG,QAAS,CAAE,KAAO58D,GAAe,GAAG2gB,CAAI,YAAY3gB,CAAE,GAAI,SAAU,cAAc,CAEtF,EAEM68D,GAAiBl8C,IACd,CACL,KAAAA,EACA,cAAe,CAAE,KAAO3gB,GAAe,GAAG2gB,CAAI,IAAI3gB,CAAE,GAAI,SAAU,iBAClE,eAAgB,CAAE,KAAM,CAAC88D,EAAmB98D,IAAe,GAAG2gB,CAAI,IAAIm8C,CAAS,IAAI98D,CAAE,GAAI,SAAU,2BAA2B,GAI5H+8D,GAAsBp8C,GAAiB,CAC3C,SAAS87C,EAAW7wC,EAAkB,CACpC,MAAO,CAAE,KAAM,GAAGjL,CAAI,IAAIiL,CAAQ,GAAI,SAAAA,CAAA,CACxC,CAEA,MAAO,CACL,KAAAjL,EACA,QAAS87C,EAAW,SAAS,EAC7B,qBAAsBA,EAAW,wBAAwB,EACzD,yBAA0BA,EAAW,4BAA4B,EACjE,eAAgBA,EAAW,iBAAiB,EAC5C,YAAaA,EAAW,aAAa,EACrC,mBAAoBA,EAAW,qBAAqB,EAExD,EAEMO,GAAmBr8C,IAChB,CACL,KAAAA,EACA,UAAWs8C,GAAwB,GAAGt8C,CAAI,YAAY,EACtD,MAAOu8C,GAAqB,GAAGv8C,CAAI,QAAQ,IAIzCu8C,GAAwBv8C,GAAiB,CAC7C,SAAS87C,EAAW7wC,EAAkB,CACpC,MAAO,CAAE,KAAM,GAAGjL,CAAI,IAAIiL,CAAQ,GAAI,SAAAA,CAAA,CACxC,CAEA,MAAO,CACL,KAAAjL,EACA,gBAAiB87C,EAAW,kBAAkB,EAC9C,KAAMA,EAAW,MAAM,EACvB,YAAaA,EAAW,aAAa,EAEzC,EAEMQ,GAA2Bt8C,GAAiB,CAChD,SAAS87C,EAAW7wC,EAAkB,CACpC,MAAO,CAAE,KAAM,GAAGjL,CAAI,IAAIiL,CAAQ,GAAI,SAAAA,CAAA,CACxC,CAEA,MAAO,CACL,KAAAjL,EACA,kBAAmB87C,EAAW,OAAO,EACrC,qBAAsBA,EAAW,QAAQ,EAE7C,EAEMU,GAAmBx8C,IAChB,CACL,KAAAA,EACA,gBAAiB,CACf,KAAM,CAAC+7C,EAAsBU,EAAuBC,IAAiB,GAAG18C,CAAI,aAAa,mBAAmB+7C,CAAY,CAAC,kBAAkBU,CAAa,IAAIC,GAAO,QAAQA,CAAG,KAAO,EAAE,GACvL,SAAU,qCACZ,GAIEC,GAAa,CACjB,UAAW,aACX,WAAYd,GAAe,aAAa,EACxC,WAAYW,GAAgB,aAAa,EACzC,cAAeR,GAAoB,kBAAkB,EACrD,aAAc,iBACd,OAAQ,UACR,SAAUE,GAAc,WAAW,EACnC,cAAeE,GAAmB,gBAAgB,EAClD,WAAYC,GAAgB,QAAQ,CACtC,ECxGA,SAASO,GAAkBrjE,EAAG/L,EAAG,EACtBA,GAAR,MAAaA,EAAI+L,EAAE,UAAY/L,EAAI+L,EAAE,QACtC,QAAS5I,EAAI,EAAG5E,EAAI,MAAMyB,CAAC,EAAGmD,EAAInD,EAAGmD,IAAK5E,EAAE4E,CAAC,EAAI4I,EAAE5I,CAAC,EACpD,OAAO5E,CACT,CACA,SAAS8wE,GAAgBtjE,EAAG,CAC1B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOA,CAC/B,CACA,SAASujE,GAAmBvjE,EAAG,CAC7B,GAAI,MAAM,QAAQA,CAAC,EAAG,OAAOqjE,GAAkBrjE,CAAC,CAClD,CACA,SAASwjE,GAAgBvvE,EAAGzB,EAAG,CAC7B,GAAI,EAAEyB,aAAazB,GAAI,MAAM,IAAI,UAAU,mCAAmC,CAChF,CACA,SAASixE,GAAkBrsE,EAAG4I,EAAG,CAC/B,QAASkyB,EAAI,EAAGA,EAAIlyB,EAAE,OAAQkyB,IAAK,CACjC,IAAI0jB,EAAI51C,EAAEkyB,CAAC,EACX0jB,EAAE,WAAaA,EAAE,YAAc,GAAIA,EAAE,aAAe,GAAI,UAAWA,IAAMA,EAAE,SAAW,IAAK,OAAO,eAAex+C,EAAGssE,GAAe9tB,EAAE,GAAG,EAAGA,CAAC,CAC9I,CACF,CACA,SAAS+tB,GAAavsE,EAAG4I,EAAGkyB,EAAG,CAC7B,OAAOlyB,GAAKyjE,GAAkBrsE,EAAE,UAAW4I,CAAC,EAAiC,OAAO,eAAe5I,EAAG,YAAa,CACjH,SAAU,GACX,EAAGA,CACN,CACA,SAASwsE,GAA2B5jE,EAAG5I,EAAG,CACxC,IAAI86B,EAAmB,OAAO,OAAtB,KAAgClyB,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC5E,GAAI,CAACkyB,EAAG,CACN,GAAI,MAAM,QAAQlyB,CAAC,IAAMkyB,EAAI2xC,GAA4B7jE,CAAC,IAAM5I,EAAuC,CACrG86B,IAAMlyB,EAAIkyB,GACV,IAAI1/B,EAAI,EACNsxE,EAAI,UAAY,CAAC,EACnB,MAAO,CACL,EAAGA,EACH,EAAG,UAAY,CACb,OAAOtxE,GAAKwN,EAAE,OAAS,CACrB,KAAM,IACJ,CACF,KAAM,GACN,MAAOA,EAAExN,GAAG,EAEhB,EACA,EAAG,SAAUwN,EAAG,CACd,MAAMA,CACR,EACA,EAAG8jE,CAAA,CAEP,CACA,MAAM,IAAI,UAAU;AAAA,mFAAuI,CAC7J,CACA,IAAIluB,EACF3hD,EAAI,GACJ8xB,EAAI,GACN,MAAO,CACL,EAAG,UAAY,CACbmM,EAAIA,EAAE,KAAKlyB,CAAC,CACd,EACA,EAAG,UAAY,CACb,IAAIA,EAAIkyB,EAAE,OACV,OAAOj+B,EAAI+L,EAAE,KAAMA,CACrB,EACA,EAAG,SAAUA,EAAG,CACd+lB,EAAI,GAAI6vB,EAAI51C,CACd,EACA,EAAG,UAAY,CACb,GAAI,CACF/L,GAAai+B,EAAE,QAAV,MAAoBA,EAAE,QAC7B,SACE,GAAInM,EAAG,MAAM6vB,CACf,CACF,EAEJ,CACA,SAASmuB,GAAgB3sE,EAAG4I,EAAGkyB,EAAG,CAChC,OAAQlyB,EAAI0jE,GAAe1jE,CAAC,KAAM5I,EAAI,OAAO,eAAeA,EAAG4I,EAAG,CAChE,MAAOkyB,EACP,WAAY,GACZ,aAAc,GACd,SAAU,GACX,EAAI96B,EAAE4I,CAAC,EAAIkyB,EAAG96B,CACjB,CAaA,SAAS4sE,GAAiBhkE,EAAG,CAC3B,GAAmB,OAAO,OAAtB,KAAwCA,EAAE,OAAO,QAAQ,GAAzB,MAAsCA,EAAE,YAAY,GAAtB,KAAyB,OAAO,MAAM,KAAKA,CAAC,CAChH,CACA,SAASikE,GAAsBjkE,EAAGxK,EAAG,CACnC,IAAI08B,EAAYlyB,GAAR,KAAY,KAAsB,OAAO,OAAtB,KAAgCA,EAAE,OAAO,QAAQ,GAAKA,EAAE,YAAY,EAC/F,GAAYkyB,GAAR,KAAW,CACb,IAAI96B,EACF5E,EACAvC,EACA81B,EACA9xB,EAAI,GACJiwE,EAAI,GACJtuB,EAAI,GACN,GAAI,CACF,GAAI3lD,GAAKiiC,EAAIA,EAAE,KAAKlyB,CAAC,GAAG,KAAYxK,IAAN,EAAS,CACrC,GAAI,OAAO08B,CAAC,IAAMA,EAAG,OACrBgyC,EAAI,EACN,KAAO,MAAO,EAAEA,GAAK9sE,EAAInH,EAAE,KAAKiiC,CAAC,GAAG,QAAUj+B,EAAE,KAAKmD,EAAE,KAAK,EAAGnD,EAAE,SAAWuB,GAAI0uE,EAAI,GAAG,CACzF,OAASlkE,EAAG,CACV41C,EAAI,GAAIpjD,EAAIwN,CACd,SACE,GAAI,CACF,GAAI,CAACkkE,GAAahyC,EAAE,QAAV,OAAqBnM,EAAImM,EAAE,SAAU,OAAOnM,CAAC,IAAMA,GAAI,MACnE,SACE,GAAI6vB,EAAG,MAAMpjD,CACf,CACF,CACA,OAAOyB,CACT,CACF,CACA,SAASkwE,IAAmB,CAC1B,MAAM,IAAI,UAAU;AAAA,mFAA2I,CACjK,CACA,SAASC,IAAqB,CAC5B,MAAM,IAAI,UAAU;AAAA,mFAAsI,CAC5J,CACA,SAASC,GAAQjtE,EAAG4I,EAAG,CACrB,IAAIkyB,EAAI,OAAO,KAAK96B,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAIw+C,EAAI,OAAO,sBAAsBx+C,CAAC,EACtC4I,IAAM41C,EAAIA,EAAE,OAAO,SAAU51C,EAAG,CAC9B,OAAO,OAAO,yBAAyB5I,EAAG4I,CAAC,EAAE,UAC/C,CAAC,GAAIkyB,EAAE,KAAK,MAAMA,EAAG0jB,CAAC,CACxB,CACA,OAAO1jB,CACT,CACA,SAASoyC,GAAeltE,EAAG,CACzB,QAAS4I,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIkyB,EAAY,UAAUlyB,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,GAC9CA,EAAI,EAAIqkE,GAAQ,OAAOnyC,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlyB,EAAG,CAClD+jE,GAAgB3sE,EAAG4I,EAAGkyB,EAAElyB,CAAC,CAAC,CAC5B,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB5I,EAAG,OAAO,0BAA0B86B,CAAC,CAAC,EAAImyC,GAAQ,OAAOnyC,CAAC,CAAC,EAAE,QAAQ,SAAUlyB,EAAG,CAChJ,OAAO,eAAe5I,EAAG4I,EAAG,OAAO,yBAAyBkyB,EAAGlyB,CAAC,CAAC,CACnE,CAAC,CACH,CACA,OAAO5I,CACT,CAMA,SAASmtE,GAAevkE,EAAG5I,EAAG,CAC5B,OAAOksE,GAAgBtjE,CAAC,GAAKikE,GAAsBjkE,EAAG5I,CAAC,GAAKysE,GAA4B7jE,EAAG5I,CAAC,GAAK+sE,GAAA,CACnG,CACA,SAASK,GAAmBxkE,EAAG,CAC7B,OAAOujE,GAAmBvjE,CAAC,GAAKgkE,GAAiBhkE,CAAC,GAAK6jE,GAA4B7jE,CAAC,GAAKokE,GAAA,CAC3F,CACA,SAASK,GAAavyC,EAAGlyB,EAAG,CAC1B,GAAgB,OAAOkyB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EACvC,IAAI96B,EAAI86B,EAAE,OAAO,WAAW,EAC5B,GAAe96B,IAAX,OAAc,CAChB,IAAInH,EAAImH,EAAE,KAAK86B,EAAGlyB,CAAc,EAChC,GAAgB,OAAO/P,GAAnB,SAAsB,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACpE,CACA,OAAqB+P,IAAb,SAAiB,OAAS,QAAQkyB,CAAC,CAC7C,CACA,SAASwxC,GAAexxC,EAAG,CACzB,IAAIjiC,EAAIw0E,GAAavyC,EAAG,QAAQ,EAChC,OAAmB,OAAOjiC,GAAnB,SAAuBA,EAAIA,EAAI,EACxC,CACA,SAASy0E,GAAQ9uB,EAAG,CAClB,0BAEA,OAAO8uB,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9uB,EAAG,CAChG,OAAO,OAAOA,CAChB,EAAI,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACpH,EAAG8uB,GAAQ9uB,CAAC,CACd,CACA,SAASiuB,GAA4B7jE,EAAG/L,EAAG,CACzC,GAAI+L,EAAG,CACL,GAAgB,OAAOA,GAAnB,SAAsB,OAAOqjE,GAAkBrjE,EAAG/L,CAAC,EACvD,IAAIi+B,EAAI,GAAG,SAAS,KAAKlyB,CAAC,EAAE,MAAM,EAAG,EAAE,EACvC,OAAoBkyB,IAAb,UAAkBlyB,EAAE,cAAgBkyB,EAAIlyB,EAAE,YAAY,MAAiBkyB,IAAV,OAAyBA,IAAV,MAAc,MAAM,KAAKlyB,CAAC,EAAoBkyB,IAAhB,aAAqB,2CAA2C,KAAKA,CAAC,EAAImxC,GAAkBrjE,EAAG/L,CAAC,EAAI,MACvN,CACF,CAkDA,IAAIipC,GAAO,UAAgB,CAAC,EACxBynC,GAAU,GACVC,GAAY,GACZC,GAAqB,KACrBC,GAAe,CACjB,KAAM5nC,GACN,QAASA,EACX,EACA,GAAI,CACE,OAAO,OAAW,MAAaynC,GAAU,QACzC,OAAO,SAAa,MAAaC,GAAY,UAC7C,OAAO,iBAAqB,MAAaC,GAAqB,kBAC9D,OAAO,YAAgB,MAAaC,GAAe,YACzD,MAAY,CAAC,CAEb,IAAIC,GAAOJ,GAAQ,WAAa,GAC9BK,GAAiBD,GAAK,UACtBE,GAAYD,KAAmB,OAAS,GAAKA,GAC3CE,GAASP,GACTQ,GAAWP,GACXQ,GAAoBP,GACpBQ,GAAcP,GACCI,GAAO,SAC1B,IAAII,GAAS,CAAC,CAACH,GAAS,iBAAmB,CAAC,CAACA,GAAS,MAAQ,OAAOA,GAAS,kBAAqB,YAAc,OAAOA,GAAS,eAAkB,WAC/II,GAAQ,CAACN,GAAU,QAAQ,MAAM,GAAK,CAACA,GAAU,QAAQ,UAAU,EAEnEO,GACAC,GAAI,yHACNjrC,GAAI,yOACFkrC,GAAI,CACJ,QAAS,CACP,GAAI,QACJ,IAAK,QACL,WAAY,QACZ,IAAK,UACL,aAAc,UACd,IAAK,QACL,WAAY,QACZ,IAAK,OACL,UAAW,OACX,IAAK,SACL,YAAa,UAEf,QAAS,CACP,GAAI,QACJ,IAAK,QACL,WAAY,QACZ,aAAc,QACd,KAAM,UACN,aAAc,UACd,KAAM,QACN,WAAY,QACZ,KAAM,OACN,UAAW,QAEb,MAAO,CACL,GAAI,QACJ,KAAM,QACN,WAAY,QACZ,KAAM,UACN,aAAc,UACd,KAAM,QACN,WAAY,QACZ,KAAM,OACN,UAAW,QAEb,gBAAiB,CACf,GAAI,QACJ,MAAO,QACP,WAAY,QACZ,MAAO,UACP,aAAc,UACd,MAAO,QACP,WAAY,QACZ,MAAO,OACP,UAAW,QAEb,KAAM,CACJ,aAAc,UACd,MAAO,WAET,aAAc,CACZ,aAAc,UACd,OAAQ,WAEV,WAAY,CACV,WAAY,QACZ,KAAM,SAER,WAAY,CACV,cAAe,WACf,MAAO,YAET,OAAQ,CACN,WAAY,QACZ,KAAM,SAER,aAAc,CACZ,WAAY,QACZ,MAAO,SAET,KAAM,CACJ,WAAY,QACZ,KAAM,SAER,MAAO,CACL,aAAc,UACd,KAAM,WAER,aAAc,CACZ,aAAc,UACd,MAAO,WAET,YAAa,CACX,aAAc,UACd,MAAO,WAET,OAAQ,CACN,aAAc,UACd,KAAM,WAER,QAAS,CACP,cAAe,WACf,MAAO,YAET,cAAe,CACb,cAAe,WACf,OAAQ,YAEV,eAAgB,CACd,cAAe,WACf,OAAQ,WAEZ,EACAC,GAAI,CACF,MAAO,gBAEP,QAAS,UACT,UAAW,WACb,EACAC,GAAI,CAAC,aAAc,aAAc,WAAY,mBAAoB,gBAAiB,gBAAiB,YAAa,gBAAiB,YAAa,UAAW,WAAY,gBAAiB,eAAgB,UAAW,gBAAiB,aAAc,iBAAkB,iBAAiB,EACjR31E,GAAI,UACNiiC,GAAI,UACJsD,GAAI,QACJhgC,GAAI,gBACJ0uE,GAAI,SACJ1xE,GAAI,OACJ4pB,GAAI,QACJw5B,GAAI,YACJ7vB,GAAI,aACJ4J,GAAI,SACJlsB,GAAI,aACJghD,GAAI,OACJ5nC,GAAI,aACJzlB,GAAI,aACJwO,GAAI,UACJ3R,GAAI,cACJg8D,GAAI,eACJt1D,GAAI,aACJzG,GAAI,UACJxC,GAAI,UACJm0E,GAAI,QACJ/B,GAAI,gBACJ3uE,GAAI,SACJ2wE,GAAI,OACJC,GAAI,QACJC,GAAI,YACJjvD,GAAI,aACJkvD,GAAI,SACJC,GAAI,aACJ9pC,GAAI,OACJ+pC,GAAI,aACJC,GAAI,aACJC,GAAI,UACJC,GAAI,cACJC,GAAI,eACJC,GAAI,aACJC,GAAK,CAACx2E,GAAGiiC,GAAGsD,GAAGhgC,GAAG0uE,GAAG1xE,GAAG4pB,GAAGw5B,GAAG7vB,GAAG4J,GAAGlsB,GAAGghD,GAAG5nC,GAAGzlB,GAAGwO,GAAG3R,GAAGg8D,GAAGt1D,EAAC,EACpD6qE,GAAM,GAAIzB,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgByB,GAAKv1E,GAAGiE,EAAC,EAAGg+B,GAAGxgC,EAAC,EAAG8jC,GAAGqwC,EAAC,EAAGrwE,GAAGsuE,EAAC,EAAGI,GAAG/uE,EAAC,EAAG3C,GAAGszE,EAAC,EAAG1pD,GAAG2pD,EAAC,EAAGnwB,GAAGowB,EAAC,EAAGjgD,GAAGhP,EAAC,EAAG4Y,GAAGs2C,EAAC,EAAGlC,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgByB,GAAK/hE,GAAGyiE,EAAC,EAAGzhB,GAAGroB,EAAC,EAAGvf,GAAGspD,EAAC,EAAG/uE,GAAGgvE,EAAC,EAAGxgE,GAAGygE,EAAC,EAAGpyE,GAAGqyE,EAAC,EAAGrW,GAAGsW,EAAC,EAAG5rE,GAAG6rE,EAAC,EACvb,IAAIE,GAAK,CACL,QAAS,CACP,IAAK,MACL,IAAK,MACL,OAAQ,MACR,IAAK,MACL,IAAK,OAEP,QAAS,CACP,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,QAEP,MAAO,CACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,QAEP,gBAAiB,CACf,IAAK,QACL,IAAK,QACL,IAAK,QACL,IAAK,SAEP,KAAM,CACJ,IAAK,SAEP,aAAc,CACZ,IAAK,UAEP,WAAY,CACV,IAAK,SAEP,WAAY,CACV,IAAK,QAEP,OAAQ,CACN,IAAK,QAEP,aAAc,CACZ,IAAK,SAEP,KAAM,CACJ,IAAK,QAEP,OAAQ,CACN,IAAK,QAEP,MAAO,CACL,IAAK,QAEP,aAAc,CACZ,IAAK,SAEP,YAAa,CACX,IAAK,SAEP,QAAS,CACP,IAAK,SAEP,cAAe,CACb,IAAK,UAEP,eAAgB,CACd,IAAK,SAET,EACEC,GAAK,CACL,sBAAuB,CACrB,IAAK,MACL,IAAK,OAEP,qBAAsB,CACpB,IAAK,MACL,IAAK,MACL,OAAQ,MACR,IAAK,MACL,IAAK,OAEP,wBAAyB,CACvB,IAAK,MACL,OAAQ,OAEV,yBAA0B,CACxB,IAAK,MACL,IAAK,OACL,OAAQ,OACR,IAAK,OACL,IAAK,QAEP,uBAAwB,CACtB,IAAK,OACL,IAAK,OACL,OAAQ,OACR,IAAK,OACL,IAAK,QAEP,+BAAgC,CAC9B,IAAK,QACL,IAAK,QACL,OAAQ,QACR,IAAK,QACL,IAAK,SAEP,uBAAwB,CACtB,IAAK,OACL,OAAQ,QAEV,4BAA6B,CAC3B,IAAK,QACL,OAAQ,SAEV,2BAA4B,CAC1B,IAAK,QACL,OAAQ,SAEV,sBAAuB,CACrB,IAAK,QACL,OAAQ,SAEV,4BAA6B,CAC3B,IAAK,SACL,OAAQ,UAEV,4BAA6B,CAC3B,IAAK,OACL,OAAQ,QAEV,wBAAyB,CACvB,IAAK,OACL,OAAQ,QAEV,4BAA6B,CAC3B,IAAK,QACL,OAAQ,SAEV,sBAAuB,CACrB,IAAK,OACL,OAAQ,QAEV,wBAAyB,CACvB,IAAK,OACL,OAAQ,QAEV,4BAA6B,CAC3B,IAAK,QACL,OAAQ,SAEV,yBAA0B,CACxB,IAAK,QACL,OAAQ,SAEV,6BAA8B,CAC5B,IAAK,SACL,OAAQ,UAEV,8BAA+B,CAC7B,IAAK,SACL,OAAQ,SAEZ,EACEC,GAAK,IAAI,IAAI,CAAC,CAAC,UAAW,CAC1B,qBAAsB,MACtB,eAAgB,QAChB,SAAU,CAAC,QAAS,UAAW,QAAS,OAAQ,QAAQ,EACxD,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,UAAW,CACd,qBAAsB,MACtB,eAAgB,QAChB,SAAU,CAAC,QAAS,UAAW,QAAS,MAAM,EAC9C,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,QAAS,CACZ,qBAAsB,OACtB,eAAgB,QAChB,SAAU,CAAC,QAAS,UAAW,QAAS,MAAM,EAC9C,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,gBAAiB,CACpB,qBAAsB,QACtB,eAAgB,QAChB,SAAU,CAAC,QAAS,UAAW,QAAS,MAAM,EAC9C,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,SAAU,CACb,qBAAsB,OACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,OAAQ,CACX,qBAAsB,OACtB,eAAgB,QAChB,SAAU,CAAC,OAAO,EAClB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,QAAS,CACZ,qBAAsB,OACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,YAAa,CAChB,qBAAsB,QACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,aAAc,CACjB,qBAAsB,QACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,SAAU,CACb,qBAAsB,OACtB,eAAgB,QAChB,SAAU,CAAC,OAAO,EAClB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,aAAc,CACjB,qBAAsB,QACtB,eAAgB,QAChB,SAAU,CAAC,OAAO,EAClB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,OAAQ,CACX,qBAAsB,QACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,aAAc,CACjB,qBAAsB,SACtB,eAAgB,UAChB,SAAU,CAAC,SAAS,EACpB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,aAAc,CACjB,qBAAsB,OACtB,eAAgB,QAChB,SAAU,CAAC,OAAO,EAClB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,UAAW,CACd,qBAAsB,QACtB,eAAgB,WAChB,SAAU,CAAC,UAAU,EACrB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,cAAe,CAClB,qBAAsB,SACtB,eAAgB,WAChB,SAAU,CAAC,UAAU,EACrB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,eAAgB,CACnB,qBAAsB,SACtB,eAAgB,WAChB,SAAU,CAAC,UAAU,EACrB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,EAAG,CAAC,aAAc,CACjB,qBAAsB,QACtB,eAAgB,WAChB,SAAU,CAAC,UAAU,EACrB,eAAgB,GAChB,kBAAmB,GACrB,CAAC,CAAC,CAAC,EACHC,GAAK,CACH,OAAQ,CACN,QAAS,QAEX,QAAS,CACP,OAAQ,MACR,MAAO,MACP,QAAS,MACT,MAAO,MACP,KAAM,OAER,QAAS,CACP,MAAO,OACP,QAAS,OACT,MAAO,MACP,KAAM,QAER,KAAM,CACJ,MAAO,QAET,MAAO,CACL,QAAS,QAEX,YAAa,CACX,QAAS,SAEX,aAAc,CACZ,QAAS,SAEX,OAAQ,CACN,MAAO,QAET,aAAc,CACZ,MAAO,SAET,MAAO,CACL,MAAO,OACP,QAAS,OACT,MAAO,OACP,KAAM,QAER,gBAAiB,CACf,MAAO,QACP,QAAS,QACT,MAAO,QACP,KAAM,SAER,KAAM,CACJ,QAAS,SAEX,aAAc,CACZ,QAAS,UAEX,WAAY,CACV,MAAO,QAET,QAAS,CACP,SAAU,SAEZ,cAAe,CACb,SAAU,UAEZ,eAAgB,CACd,SAAU,UAEZ,WAAY,CACV,SAAU,QAEd,EACEC,GAAK,CAAC,MAAO,SAAU,OAAQ,gBAAgB,EACjDC,GAAK,CACH,IAAK,CACH,IAAK,MACL,SAAU,OAEZ,cAAe,CACb,KAAM,cACN,iBAAkB,cAEtB,EACAC,GAAK,CAAC,KAAK,EACTC,GAAI,MACNjnE,GAAI,cACJknE,GAAI,MACJC,GAAI,cACCpD,GAAgBA,GAAgB,GAAIkD,GAAGC,EAAC,EAAGlnE,GAAGmnE,EAAC,EACtD,IAAIC,GAAK,CACP,IAAK,CACH,SAAU,MAKd,EACIC,GAAK,CACL,mBAAoB,CAClB,IAAK,MACL,OAAQ,OAEV,2BAA4B,CAC1B,IAAK,OACL,OAAQ,OAEZ,EACAC,GAAK,CACH,IAAK,CACH,IAAK,SAKT,EACEC,GAAK,CACL,IAAK,CACH,IAAK,OAEP,cAAe,CACb,cAAe,OAEnB,EAEEC,GACAC,GAAM,CACN,MAAO,gBACP,aAAc,eACd,QAAS,UACT,UAAW,WACb,EACAC,GAAM,CAAC,aAAc,aAAc,WAAY,mBAAoB,gBAAiB,gBAAiB,YAAa,gBAAiB,YAAa,UAAW,WAAY,gBAAiB,eAAgB,UAAW,gBAAiB,aAAc,iBAAkB,iBAAiB,EACnRC,GAAM,UACRC,GAAM,UACNC,GAAM,QACNC,GAAM,gBACNC,GAAM,SACNC,GAAM,OACNC,GAAM,QACNC,GAAM,YACNC,GAAM,aACNC,GAAM,SACNC,GAAM,aACNC,GAAM,OACNC,GAAM,aACNC,GAAM,aACNC,GAAM,UACNC,GAAM,cACNC,GAAM,eACNC,GAAM,aACNC,GAAM,UACNC,GAAM,UACNC,GAAM,QACNC,GAAM,gBACNC,GAAM,SACNC,GAAM,OACNC,GAAM,QACNC,GAAM,YACNC,GAAM,aACNC,GAAM,SACNC,GAAM,aACNC,GAAM,OACNC,GAAM,aACNC,GAAM,aACNC,GAAM,UACNC,GAAM,cACNC,GAAM,eACNC,GAAM,aACEtC,GAAM,GAAIzD,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgByD,GAAKG,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGvF,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgByD,GAAKa,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EAAGjB,GAAKkB,EAAG,EACjgB,IAAIC,GAAM,MACRC,GAAM,cACNC,GAAM,MACNC,GAAM,cACCnG,GAAgBA,GAAgB,GAAIgG,GAAKE,EAAG,EAAGD,GAAKE,EAAG,EAChE,IAAIC,GAAO,CACP,QAAS,CACP,YAAa,MACb,aAAc,MACd,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,UAAW,OAEb,QAAS,CACP,aAAc,OACd,WAAY,OACZ,UAAW,QAEb,MAAO,CACL,WAAY,OACZ,aAAc,OACd,WAAY,OACZ,UAAW,QAEb,gBAAiB,CACf,WAAY,QACZ,aAAc,QACd,WAAY,QACZ,UAAW,SAEb,KAAM,CACJ,aAAc,SAEhB,aAAc,CACZ,aAAc,UAEhB,WAAY,CACV,cAAe,SAEjB,WAAY,CACV,WAAY,QAEd,OAAQ,CACN,WAAY,QAEd,aAAc,CACZ,WAAY,SAEd,KAAM,CACJ,WAAY,QAEd,MAAO,CACL,aAAc,QAEhB,aAAc,CACZ,aAAc,SAEhB,YAAa,CACX,aAAc,SAEhB,OAAQ,CACN,aAAc,QAEhB,QAAS,CACP,cAAe,SAEjB,cAAe,CACb,cAAe,UAEjB,eAAgB,CACd,cAAe,SAEnB,EACAC,GAAI,CACF,QAAS,CAAC,MAAO,MAAO,MAAO,MAAO,KAAK,EAC3C,QAAS,CAAC,OAAQ,OAAQ,MAAM,EAChC,MAAO,CAAC,OAAQ,OAAQ,OAAQ,MAAM,EACtC,gBAAiB,CAAC,QAAS,QAAS,QAAS,OAAO,EACpD,KAAM,CAAC,OAAO,EACd,aAAc,CAAC,QAAQ,EACvB,WAAY,CAAC,OAAO,EACpB,WAAY,CAAC,MAAM,EACnB,OAAQ,CAAC,MAAM,EACf,aAAc,CAAC,OAAO,EACtB,KAAM,CAAC,MAAM,EACb,MAAO,CAAC,MAAM,EACd,aAAc,CAAC,OAAO,EACtB,YAAa,CAAC,OAAO,EACrB,OAAQ,CAAC,MAAM,EACf,QAAS,CAAC,OAAO,EACjB,cAAe,CAAC,QAAQ,EACxB,eAAgB,CAAC,QAAQ,CAC3B,EACAC,GAAO,CACL,QAAS,CACP,IAAK,YACL,IAAK,aACL,IAAK,WACL,IAAK,aACL,IAAK,WACL,IAAK,WAEP,QAAS,CACP,KAAM,aACN,KAAM,WACN,KAAM,WAER,MAAO,CACL,KAAM,WACN,KAAM,aACN,KAAM,WACN,KAAM,WAER,gBAAiB,CACf,MAAO,WACP,MAAO,aACP,MAAO,WACP,MAAO,WAET,KAAM,CACJ,MAAO,cAET,aAAc,CACZ,OAAQ,cAEV,WAAY,CACV,MAAO,eAET,WAAY,CACV,KAAM,YAER,OAAQ,CACN,KAAM,YAER,aAAc,CACZ,MAAO,YAET,KAAM,CACJ,KAAM,YAER,MAAO,CACL,KAAM,cAER,aAAc,CACZ,MAAO,cAET,YAAa,CACX,MAAO,cAET,OAAQ,CACN,KAAM,cAER,QAAS,CACP,MAAO,eAET,cAAe,CACb,OAAQ,eAEV,eAAgB,CACd,OAAQ,cAEZ,EACAC,GAAM,CAAC,WAAY,aAAc,WAAY,UAAW,aAAc,YAAa,aAAa,EAChGC,GAAO,CAAC,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,QAAS,SAAU,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,QAAS,OAAQ,QAAS,SAAU,QAAQ,EAAE,OAAO7C,GAAK4C,EAAG,EAC/RE,GAAM,CAAC,QAAS,UAAW,QAAS,OAAQ,UAAW,SAAU,UAAU,EAC3EC,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAE,EACpCC,GAAMD,GAAI,OAAO,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,CAAC,EACzDE,GAAM,CAAC,KAAM,KAAM,YAAa,YAAY,EAC5C5tD,GAAK,GAAG,OAAOynD,GAAmB,OAAO,KAAK4F,EAAC,CAAC,EAAGI,GAAKG,GAAK,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,OAAQ,SAAU,OAAQ,YAAa,SAAU,YAAa,kBAAmB,gBAAiB,OAAQ,UAAW,SAAU,qBAAsB,sBAAuB,iBAAkB,cAAe,kBAAmB,mBAAoB,KAAM,WAAY,aAAc,QAAS,aAAc,aAAc,YAAa,YAAa,QAAS,aAAc,eAAgB,OAAQ,WAAY,WAAY,QAAS,KAAM,aAAc,cAAelD,GAAI,MAAOA,GAAI,aAAcA,GAAI,QAASA,GAAI,SAAS,CAAC,EAAE,OAAOgD,GAAI,IAAI,SAAUv4C,EAAG,CAC9nB,MAAO,GAAG,OAAOA,EAAG,GAAG,CACzB,CAAC,CAAC,EAAE,OAAOw4C,GAAI,IAAI,SAAUx4C,EAAG,CAC9B,MAAO,KAAK,OAAOA,CAAC,CACtB,CAAC,CAAC,EACA04C,GAAK,CACL,sBAAuB,CACrB,IAAK,MACL,IAAK,OAEP,qBAAsB,CACpB,IAAK,MACL,IAAK,MACL,OAAQ,MACR,IAAK,OAEP,wBAAyB,CACvB,IAAK,MACL,OAAQ,OAEV,yBAA0B,CACxB,IAAK,MAET,EAEEC,GAAuB,qBACvBC,GAAgB,GAChBC,GAAqB,KACrBC,GAA4B,iBAC5BC,GAAgB,gBAChBC,GAAyB,yBACzBC,GAAiC,iCACjCC,GAAc,cACdC,GAAY,YACZC,GAA8B,oBAC9BC,GAA0B,QAC1BC,GAAsC,CAAC,OAAQ,OAAQ,QAAS,QAAQ,EACxEC,GAAkB,CAAC,WAAY,UAAW,UAAW,QAAQ,EAC7DC,IAAa,UAAY,CAC3B,GAAI,CACF,MAAO,EACT,MAAe,CACb,MAAO,EACT,CACF,KACA,SAASC,GAAYt5E,EAAK,CAExB,OAAO,IAAI,MAAMA,EAAK,CACpB,IAAK,SAAa8G,EAAQ8nB,EAAM,CAC9B,OAAOA,KAAQ9nB,EAASA,EAAO8nB,CAAI,EAAI9nB,EAAOlJ,EAAC,CACjD,EACD,CACH,CACA,IAAI27E,GAAmBtH,GAAe,GAAIoB,EAAC,EAK3CkG,GAAiB37E,EAAC,EAAIq0E,GAAeA,GAAeA,GAAeA,GAAe,GAAI,CACpF,aAAc,SAChB,CAAC,EAAGoB,GAAEz1E,EAAC,CAAC,EAAG82E,GAAG,GAAM,EAAGA,GAAG,aAAa,CAAC,EACxC,IAAI8E,GAAkBF,GAAYC,EAAgB,EAC9CE,GAAmBxH,GAAe,GAAIuC,EAAE,EAI5CiF,GAAiB77E,EAAC,EAAIq0E,GAAeA,GAAeA,GAAeA,GAAe,GAAI,CACpF,QAAS,KACX,CAAC,EAAGwH,GAAiB77E,EAAC,CAAC,EAAGs3E,GAAG,GAAM,EAAGA,GAAG,aAAa,CAAC,EACvD,IAAIwE,GAAkBJ,GAAYG,EAAgB,EAC9CE,GAAwB1H,GAAe,GAAI+F,EAAI,EACnD2B,GAAsB/7E,EAAC,EAAIq0E,GAAeA,GAAe,GAAI0H,GAAsB/7E,EAAC,CAAC,EAAGq3E,GAAG,GAAM,EACjG,IAAI2E,GAAuBN,GAAYK,EAAqB,EACxDE,GAAwB5H,GAAe,GAAI6F,EAAI,EACnD+B,GAAsBj8E,EAAC,EAAIq0E,GAAeA,GAAe,GAAI4H,GAAsBj8E,EAAC,CAAC,EAAGm3E,GAAG,GAAM,EACtEuE,GAAYO,EAAqB,EAC5D,IAAIC,GAAgC1G,GAChC2G,GAAwB,iBACxBC,GAAsB7xC,GACtB8xC,GAAyBhI,GAAe,GAAIoC,EAAE,EACtBiF,GAAYW,EAAsB,EAC9D,IAAIC,GAAkC,CAAC,QAAS,cAAe,YAAa,oBAAqB,cAAc,EAC3GC,GAAkB7G,GAClB8G,GAAmB,GAAG,OAAOjI,GAAmBwC,EAAE,EAAGxC,GAAmBznD,EAAE,CAAC,EAE3E2vD,GAAUxH,GAAO,mBAAqB,GAC1C,SAASyH,GAAcC,EAAM,CAC3B,IAAIC,EAAU1H,GAAS,cAAc,UAAYyH,EAAO,GAAG,EAC3D,GAAIC,EACF,OAAOA,EAAQ,aAAaD,CAAI,CAEpC,CACA,SAASE,GAAOx9E,EAAK,CAGnB,OAAIA,IAAQ,GAAW,GACnBA,IAAQ,QAAgB,GACxBA,IAAQ,OAAe,GACpBA,CACT,CACA,GAAI61E,IAAY,OAAOA,GAAS,eAAkB,WAAY,CAC5D,IAAI5lD,GAAQ,CAAC,CAAC,qBAAsB,cAAc,EAAG,CAAC,kBAAmB,WAAW,EAAG,CAAC,sBAAuB,eAAe,EAAG,CAAC,qBAAsB,cAAc,EAAG,CAAC,yBAA0B,kBAAkB,EAAG,CAAC,wBAAyB,gBAAgB,EAAG,CAAC,oBAAqB,YAAY,EAAG,CAAC,8BAA+B,sBAAsB,EAAG,CAAC,uCAAwC,8BAA8B,EAAG,CAAC,wCAAyC,8BAA8B,EAAG,CAAC,yBAA0B,kBAAkB,EAAG,CAAC,uBAAwB,gBAAgB,EAAG,CAAC,4BAA6B,oBAAoB,EAAG,CAAC,2BAA4B,oBAAoB,EAAG,CAAC,0BAA2B,kBAAkB,CAAC,EAC7uBA,GAAM,QAAQ,SAAUwlD,EAAM,CAC5B,IAAIgI,EAAQxI,GAAeQ,EAAM,CAAC,EAChC6H,EAAOG,EAAM,CAAC,EACd19E,EAAM09E,EAAM,CAAC,EACXz9E,EAAMw9E,GAAOH,GAAcC,CAAI,CAAC,EACXt9E,GAAQ,OAC/Bo9E,GAAQr9E,CAAG,EAAIC,EAEnB,CAAC,CACH,CACA,IAAI09E,GAAW,CACb,aAAc,QACd,cAAe/8E,GACf,UAAW86E,GACX,iBAAkBC,GAClB,eAAgB,GAChB,WAAY,GACZ,qBAAsB,GACtB,6BAA8B,GAC9B,6BAA8B,GAC9B,iBAAkB,GAClB,eAAgB,QAChB,mBAAoB,GACpB,mBAAoB,GACpB,iBAAkB,EACpB,EAGI0B,GAAQ,eACVA,GAAQ,UAAYA,GAAQ,cAE9B,IAAIO,GAAU3I,GAAeA,GAAe,GAAI0I,EAAQ,EAAGN,EAAO,EAC7DO,GAAQ,iBAAgBA,GAAQ,iBAAmB,IACxD,IAAItzB,GAAS,GACb,OAAO,KAAKqzB,EAAQ,EAAE,QAAQ,SAAU39E,EAAK,CAC3C,OAAO,eAAesqD,GAAQtqD,EAAK,CACjC,WAAY,GACZ,IAAK,SAAaC,EAAK,CACrB29E,GAAQ59E,CAAG,EAAIC,EACf49E,GAAY,QAAQ,SAAUxqE,EAAI,CAChC,OAAOA,EAAGi3C,EAAM,CAClB,CAAC,CACH,EACA,IAAK,UAAe,CAClB,OAAOszB,GAAQ59E,CAAG,CACpB,EACD,CACH,CAAC,EAGD,OAAO,eAAesqD,GAAQ,eAAgB,CAC5C,WAAY,GACZ,IAAK,SAAarqD,EAAK,CACrB29E,GAAQ,UAAY39E,EACpB49E,GAAY,QAAQ,SAAUxqE,EAAI,CAChC,OAAOA,EAAGi3C,EAAM,CAClB,CAAC,CACH,EACA,IAAK,UAAe,CAClB,OAAOszB,GAAQ,SACjB,CACF,CAAC,EACD/H,GAAO,kBAAoBvrB,GAC3B,IAAIuzB,GAAc,GAClB,SAASC,GAASzqE,EAAI,CACpB,OAAAwqE,GAAY,KAAKxqE,CAAE,EACZ,UAAY,CACjBwqE,GAAY,OAAOA,GAAY,QAAQxqE,CAAE,EAAG,CAAC,CAC/C,CACF,CAEA,IAAI0qE,GAAMtC,GACNuC,GAAuB,CACzB,KAAM,GACN,EAAG,EACH,EAAG,EACH,OAAQ,EACR,MAAO,GACP,MAAO,EACT,EACA,SAASC,GAAUC,EAAK,CACtB,GAAI,GAACA,GAAO,CAACjI,IAGb,KAAI1xE,EAAQuxE,GAAS,cAAc,OAAO,EAC1CvxE,EAAM,aAAa,OAAQ,UAAU,EACrCA,EAAM,UAAY25E,EAGlB,QAFIC,EAAerI,GAAS,KAAK,WAC7BsI,EAAc,KACTx9E,EAAIu9E,EAAa,OAAS,EAAGv9E,EAAI,GAAIA,IAAK,CACjD,IAAIwb,EAAQ+hE,EAAav9E,CAAC,EACtBy9E,GAAWjiE,EAAM,SAAW,IAAI,cAChC,CAAC,QAAS,MAAM,EAAE,QAAQiiE,CAAO,EAAI,KACvCD,EAAchiE,EAElB,CACA,OAAA05D,GAAS,KAAK,aAAavxE,EAAO65E,CAAW,EACtCF,EACT,CACA,IAAII,GAAS,iEACb,SAASC,IAAe,CAGtB,QAFIC,EAAO,GACP/nE,EAAK,GACF+nE,KAAS,GACd/nE,GAAM6nE,GAAO,KAAK,SAAW,GAAK,CAAC,EAErC,OAAO7nE,CACT,CACA,SAAS6zD,GAAQtnE,EAAK,CAEpB,QADI6H,EAAQ,GACHjK,GAAKoC,GAAO,IAAI,SAAW,EAAGpC,KACrCiK,EAAMjK,CAAC,EAAIoC,EAAIpC,CAAC,EAElB,OAAOiK,CACT,CACA,SAAS4zE,GAAW/hE,EAAM,CACxB,OAAIA,EAAK,UACA4tD,GAAQ5tD,EAAK,SAAS,GAErBA,EAAK,aAAa,OAAO,GAAK,IAAI,MAAM,GAAG,EAAE,OAAO,SAAU9b,EAAG,CACvE,OAAOA,CACT,CAAC,CAEL,CACA,SAAS89E,GAAW5+E,EAAK,CACvB,MAAO,GAAG,OAAOA,CAAG,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,QAAQ,EAAE,QAAQ,KAAM,OAAO,EAAE,QAAQ,KAAM,MAAM,EAAE,QAAQ,KAAM,MAAM,CACxI,CACA,SAAS6+E,GAAeC,EAAY,CAClC,OAAO,OAAO,KAAKA,GAAc,EAAE,EAAE,OAAO,SAAUlyE,EAAKmyE,EAAe,CACxE,OAAOnyE,EAAM,GAAG,OAAOmyE,EAAe,IAAK,EAAE,OAAOH,GAAWE,EAAWC,CAAa,CAAC,EAAG,IAAK,CAClG,EAAG,EAAE,EAAE,MACT,CACA,SAASC,GAAWt5C,EAAQ,CAC1B,OAAO,OAAO,KAAKA,GAAU,EAAE,EAAE,OAAO,SAAU94B,EAAKqyE,EAAW,CAChE,OAAOryE,EAAM,GAAG,OAAOqyE,EAAW,IAAI,EAAE,OAAOv5C,EAAOu5C,CAAS,EAAE,OAAQ,GAAG,CAC9E,EAAG,EAAE,CACP,CACA,SAASC,GAAsBC,EAAW,CACxC,OAAOA,EAAU,OAASjB,GAAqB,MAAQiB,EAAU,IAAMjB,GAAqB,GAAKiB,EAAU,IAAMjB,GAAqB,GAAKiB,EAAU,SAAWjB,GAAqB,QAAUiB,EAAU,OAASA,EAAU,KAC9N,CACA,SAASC,GAAgBxJ,EAAM,CAC7B,IAAIuJ,EAAYvJ,EAAK,UACnByJ,EAAiBzJ,EAAK,eACtB0J,EAAY1J,EAAK,UACf12B,EAAQ,CACV,UAAW,aAAa,OAAOmgC,EAAiB,EAAG,OAAO,GAExDE,EAAiB,aAAa,OAAOJ,EAAU,EAAI,GAAI,IAAI,EAAE,OAAOA,EAAU,EAAI,GAAI,IAAI,EAC1FK,EAAa,SAAS,OAAOL,EAAU,KAAO,IAAMA,EAAU,MAAQ,GAAK,GAAI,IAAI,EAAE,OAAOA,EAAU,KAAO,IAAMA,EAAU,MAAQ,GAAK,GAAI,IAAI,EAClJM,EAAc,UAAU,OAAON,EAAU,OAAQ,OAAO,EACxDhgC,EAAQ,CACV,UAAW,GAAG,OAAOogC,EAAgB,GAAG,EAAE,OAAOC,EAAY,GAAG,EAAE,OAAOC,CAAW,GAElF/jD,EAAO,CACT,UAAW,aAAa,OAAO4jD,EAAY,EAAI,GAAI,QAAQ,GAE7D,MAAO,CACL,MAAApgC,EACA,MAAAC,EACA,KAAAzjB,CAAA,CAEJ,CACA,SAASgkD,GAAgB9B,EAAO,CAC9B,IAAIuB,EAAYvB,EAAM,UACpB+B,EAAc/B,EAAM,MACpBgC,EAAQD,IAAgB,OAAShE,GAAgBgE,EACjDE,EAAejC,EAAM,OACrBkC,EAASD,IAAiB,OAASlE,GAAgBkE,EAGjD1/E,EAAM,GACV,OAAqBi2E,GACnBj2E,GAAO,aAAa,OAAOg/E,EAAU,EAAIlB,GAAM2B,EAAQ,EAAG,MAAM,EAAE,OAAOT,EAAU,EAAIlB,GAAM6B,EAAS,EAAG,MAAM,EAE/G3/E,GAAO,yBAAyB,OAAOg/E,EAAU,EAAIlB,GAAK,mBAAmB,EAAE,OAAOkB,EAAU,EAAIlB,GAAK,OAAO,EAIlH99E,GAAO,SAAS,OAAOg/E,EAAU,KAAOlB,IAAOkB,EAAU,MAAQ,GAAK,GAAI,IAAI,EAAE,OAAOA,EAAU,KAAOlB,IAAOkB,EAAU,MAAQ,GAAK,GAAI,IAAI,EAC9Ih/E,GAAO,UAAU,OAAOg/E,EAAU,OAAQ,OAAO,EAC1Ch/E,CACT,CAEA,IAAI4/E,GAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAEjB,SAAS3B,IAAM,CACb,IAAI4B,EAAMpE,GACNqE,EAAMpE,GACNqE,EAAK11B,GAAO,UACZ21B,EAAK31B,GAAO,iBACZl2C,EAAIyrE,GACR,GAAIG,IAAOF,GAAOG,IAAOF,EAAK,CAC5B,IAAIG,EAAQ,IAAI,OAAO,MAAM,OAAOJ,EAAK,KAAK,EAAG,GAAG,EAChDK,EAAiB,IAAI,OAAO,OAAO,OAAOL,EAAK,KAAK,EAAG,GAAG,EAC1DM,EAAQ,IAAI,OAAO,MAAM,OAAOL,CAAG,EAAG,GAAG,EAC7C3rE,EAAIA,EAAE,QAAQ8rE,EAAO,IAAI,OAAOF,EAAI,GAAG,CAAC,EAAE,QAAQG,EAAgB,KAAK,OAAOH,EAAI,GAAG,CAAC,EAAE,QAAQI,EAAO,IAAI,OAAOH,CAAE,CAAC,CACvH,CACA,OAAO7rE,CACT,CACA,IAAIisE,GAAe,GACnB,SAASC,IAAY,CACfh2B,GAAO,YAAc,CAAC+1B,KACxBpC,GAAUC,IAAK,EACfmC,GAAe,GAEnB,CACA,IAAIE,GAAY,CACd,OAAQ,UAAkB,CACxB,MAAO,CACL,IAAK,CACH,IAAArC,GACA,UAAWoC,EAAA,CACb,CAEJ,EACA,MAAO,UAAiB,CACtB,MAAO,CACL,yBAA0B,UAAoC,CAC5DA,GAAA,CACF,EACA,YAAa,UAAuB,CAClCA,GAAA,CACF,EAEJ,CACF,EAEIE,GAAM3K,IAAU,GACf2K,GAAIhF,EAAoB,IAAGgF,GAAIhF,EAAoB,EAAI,IACvDgF,GAAIhF,EAAoB,EAAE,SAAQgF,GAAIhF,EAAoB,EAAE,OAAS,IACrEgF,GAAIhF,EAAoB,EAAE,QAAOgF,GAAIhF,EAAoB,EAAE,MAAQ,IACnEgF,GAAIhF,EAAoB,EAAE,QAAOgF,GAAIhF,EAAoB,EAAE,MAAQ,IACxE,IAAIxhE,GAAYwmE,GAAIhF,EAAoB,EAEpCiF,GAAY,GACZC,GAAY,UAAoB,CAClC5K,GAAS,oBAAoB,mBAAoB4K,EAAS,EAC1DC,GAAS,EACTF,GAAU,IAAI,SAAUx+E,EAAI,CAC1B,OAAOA,EAAA,CACT,CAAC,CACH,EACI0+E,GAAS,GACT1K,KACF0K,IAAU7K,GAAS,gBAAgB,SAAW,aAAe,iBAAiB,KAAKA,GAAS,UAAU,EACjG6K,IAAQ7K,GAAS,iBAAiB,mBAAoB4K,EAAS,GAEtE,SAASE,GAAU3+E,EAAI,CAChBg0E,KACL0K,GAAS,WAAW1+E,EAAI,CAAC,EAAIw+E,GAAU,KAAKx+E,CAAE,EAChD,CAEA,SAAS4+E,GAAOC,EAAe,CAC7B,IAAI7+C,EAAM6+C,EAAc,IACtBC,EAAwBD,EAAc,WACtClC,EAAamC,IAA0B,OAAS,GAAKA,EACrDC,EAAwBF,EAAc,SACtCjmE,EAAWmmE,IAA0B,OAAS,GAAKA,EACrD,OAAI,OAAOF,GAAkB,SACpBpC,GAAWoC,CAAa,EAExB,IAAI,OAAO7+C,EAAK,GAAG,EAAE,OAAO08C,GAAeC,CAAU,EAAG,GAAG,EAAE,OAAO/jE,EAAS,IAAIgmE,EAAM,EAAE,KAAK,EAAE,EAAG,IAAI,EAAE,OAAO5+C,EAAK,GAAG,CAEnI,CAEA,SAASg/C,GAAgBC,EAASlY,EAAQmY,EAAU,CAClD,GAAID,GAAWA,EAAQlY,CAAM,GAAKkY,EAAQlY,CAAM,EAAEmY,CAAQ,EACxD,MAAO,CACL,OAAAnY,EACA,SAAAmY,EACA,KAAMD,EAAQlY,CAAM,EAAEmY,CAAQ,EAGpC,CAuBA,IAAIv1E,GAAS,SAA0Bw1E,EAASn/E,EAAI6mC,EAAcu4C,EAAa,CAC7E,IAAIx+D,EAAO,OAAO,KAAKu+D,CAAO,EAC5BnjC,EAASp7B,EAAK,OACdzX,EAAwEnJ,EACxErB,EACAZ,EACAkM,EAQF,IAPI48B,IAAiB,QACnBloC,EAAI,EACJsL,EAASk1E,EAAQv+D,EAAK,CAAC,CAAC,IAExBjiB,EAAI,EACJsL,EAAS48B,GAEJloC,EAAIq9C,EAAQr9C,IACjBZ,EAAM6iB,EAAKjiB,CAAC,EACZsL,EAASd,EAASc,EAAQk1E,EAAQphF,CAAG,EAAGA,EAAKohF,CAAO,EAEtD,OAAOl1E,CACT,EAOA,SAASo1E,GAAMC,EAAS,CACtB,OAAIpM,GAAmBoM,CAAO,EAAE,SAAW,EAAU,KAC9CA,EAAQ,YAAY,CAAC,EAAE,SAAS,EAAE,CAC3C,CAEA,SAASC,GAAeC,EAAO,CAC7B,OAAO,OAAO,KAAKA,CAAK,EAAE,OAAO,SAAU/0E,EAAKy0E,EAAU,CACxD,IAAIO,EAAOD,EAAMN,CAAQ,EACrBQ,EAAW,CAAC,CAACD,EAAK,KACtB,OAAIC,EACFj1E,EAAIg1E,EAAK,QAAQ,EAAIA,EAAK,KAE1Bh1E,EAAIy0E,CAAQ,EAAIO,EAEXh1E,CACT,EAAG,EAAE,CACP,CACA,SAASk1E,GAAY5Y,EAAQyY,EAAO,CAClC,IAAI9zC,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7Ek0C,EAAoBl0C,EAAO,UAC7Bm0C,EAAYD,IAAsB,OAAS,GAAQA,EACjDn+E,EAAa89E,GAAeC,CAAK,EACjC,OAAOznE,GAAU,MAAM,SAAY,YAAc,CAAC8nE,EACpD9nE,GAAU,MAAM,QAAQgvD,EAAQwY,GAAeC,CAAK,CAAC,EAErDznE,GAAU,OAAOgvD,CAAM,EAAIiM,GAAeA,GAAe,GAAIj7D,GAAU,OAAOgvD,CAAM,GAAK,EAAE,EAAGtlE,CAAU,EAStGslE,IAAW,OACb4Y,GAAY,KAAMH,CAAK,CAE3B,CA+DA,IAAIj8C,GAASxrB,GAAU,OACrB+nE,GAAQ/nE,GAAU,MAChBgoE,GAAe,OAAO,KAAKpF,EAAoB,EAC/CqF,GAAsBD,GAAa,OAAO,SAAUt1E,EAAKw1E,EAAU,CACrE,OAAAx1E,EAAIw1E,CAAQ,EAAI,OAAO,KAAKtF,GAAqBsF,CAAQ,CAAC,EACnDx1E,CACT,EAAG,EAAE,EACDy1E,GAAuB,KACvBC,GAAa,GACbC,GAAc,GACdC,GAAa,GACbC,GAAgB,GAChBC,GAAW,GACf,SAASC,GAAWt+E,EAAM,CACxB,MAAO,CAACi5E,GAAiB,QAAQj5E,CAAI,CACvC,CACA,SAASu+E,GAAYC,EAAW/9C,EAAK,CACnC,IAAI0/B,EAAQ1/B,EAAI,MAAM,GAAG,EACrBokC,EAAS1E,EAAM,CAAC,EAChB6c,EAAW7c,EAAM,MAAM,CAAC,EAAE,KAAK,GAAG,EACtC,OAAI0E,IAAW2Z,GAAaxB,IAAa,IAAM,CAACsB,GAAWtB,CAAQ,EAC1DA,EAEA,IAEX,CACA,IAAIyB,GAAQ,UAAiB,CAC3B,IAAIC,EAAS,SAAgBC,EAAS,CACpC,OAAOl3E,GAAO45B,GAAQ,SAAUu9C,EAAMx+E,EAAOykE,EAAQ,CACnD,OAAA+Z,EAAK/Z,CAAM,EAAIp9D,GAAOrH,EAAOu+E,EAAS,EAAE,EACjCC,CACT,EAAG,EAAE,CACP,EACAX,GAAaS,EAAO,SAAUn2E,EAAKg1E,EAAMP,EAAU,CAIjD,GAHIO,EAAK,CAAC,IACRh1E,EAAIg1E,EAAK,CAAC,CAAC,EAAIP,GAEbO,EAAK,CAAC,EAAG,CACX,IAAItlC,EAAUslC,EAAK,CAAC,EAAE,OAAO,SAAUsB,EAAM,CAC3C,OAAO,OAAOA,GAAS,QACzB,CAAC,EACD5mC,EAAQ,QAAQ,SAAUC,EAAO,CAC/B3vC,EAAI2vC,EAAM,SAAS,EAAE,CAAC,EAAI8kC,CAC5B,CAAC,CACH,CACA,OAAOz0E,CACT,CAAC,EACD21E,GAAcQ,EAAO,SAAUn2E,EAAKg1E,EAAMP,EAAU,CAElD,GADAz0E,EAAIy0E,CAAQ,EAAIA,EACZO,EAAK,CAAC,EAAG,CACX,IAAItlC,EAAUslC,EAAK,CAAC,EAAE,OAAO,SAAUsB,EAAM,CAC3C,OAAO,OAAOA,GAAS,QACzB,CAAC,EACD5mC,EAAQ,QAAQ,SAAUC,EAAO,CAC/B3vC,EAAI2vC,CAAK,EAAI8kC,CACf,CAAC,CACH,CACA,OAAOz0E,CACT,CAAC,EACD81E,GAAWK,EAAO,SAAUn2E,EAAKg1E,EAAMP,EAAU,CAC/C,IAAI/kC,EAAUslC,EAAK,CAAC,EACpB,OAAAh1E,EAAIy0E,CAAQ,EAAIA,EAChB/kC,EAAQ,QAAQ,SAAUC,EAAO,CAC/B3vC,EAAI2vC,CAAK,EAAI8kC,CACf,CAAC,EACMz0E,CACT,CAAC,EAID,IAAIu2E,EAAa,QAASz9C,IAAU8kB,GAAO,aACvC44B,EAAct3E,GAAOm2E,GAAO,SAAUr1E,EAAKy2E,EAAM,CACnD,IAAIC,EAAwBD,EAAK,CAAC,EAC9Bna,EAASma,EAAK,CAAC,EACfhC,EAAWgC,EAAK,CAAC,EACrB,OAAIna,IAAW,OAAS,CAACia,IACvBja,EAAS,OAEP,OAAOoa,GAA0B,WACnC12E,EAAI,MAAM02E,CAAqB,EAAI,CACjC,OAAApa,EACA,SAAAmY,CAAA,GAGA,OAAOiC,GAA0B,WACnC12E,EAAI,SAAS02E,EAAsB,SAAS,EAAE,CAAC,EAAI,CACjD,OAAApa,EACA,SAAAmY,CAAA,GAGGz0E,CACT,EAAG,CACD,MAAO,GACP,SAAU,EAAC,CACZ,EACD41E,GAAaY,EAAY,MACzBX,GAAgBW,EAAY,SAC5Bf,GAAuBkB,GAAmB/4B,GAAO,aAAc,CAC7D,OAAQA,GAAO,cAChB,CACH,EACAwzB,GAAS,SAAUwF,EAAM,CACvBnB,GAAuBkB,GAAmBC,EAAK,aAAc,CAC3D,OAAQh5B,GAAO,cAChB,CACH,CAAC,EACDs4B,GAAA,EACA,SAASW,GAAUva,EAAQuY,EAAS,CAClC,OAAQa,GAAWpZ,CAAM,GAAK,IAAIuY,CAAO,CAC3C,CACA,SAASiC,GAAWxa,EAAQya,EAAU,CACpC,OAAQpB,GAAYrZ,CAAM,GAAK,IAAIya,CAAQ,CAC7C,CACA,SAASC,GAAQ1a,EAAQ3sB,EAAO,CAC9B,OAAQmmC,GAASxZ,CAAM,GAAK,IAAI3sB,CAAK,CACvC,CACA,SAASsnC,GAAUx/E,EAAM,CACvB,OAAOm+E,GAAWn+E,CAAI,GAAK,CACzB,OAAQ,KACR,SAAU,KAEd,CACA,SAASy/E,GAAarC,EAAS,CAC7B,IAAIsC,EAAatB,GAAchB,CAAO,EAClCuC,EAAaP,GAAU,MAAOhC,CAAO,EACzC,OAAOsC,IAAeC,EAAa,CACjC,OAAQ,MACR,SAAUA,CAAA,EACR,OAAS,CACX,OAAQ,KACR,SAAU,KAEd,CACA,SAASC,IAAyB,CAChC,OAAO5B,EACT,CACA,IAAI6B,GAAqB,UAA8B,CACrD,MAAO,CACL,OAAQ,KACR,SAAU,KACV,KAAM,EAAC,CAEX,EACA,SAASC,GAAY7uE,EAAQ,CAC3B,IAAI8uE,EAAStjF,GACTujF,EAAWnC,GAAa,OAAO,SAAUt1E,EAAKw1E,EAAU,CAC1D,OAAAx1E,EAAIw1E,CAAQ,EAAI,GAAG,OAAO53B,GAAO,UAAW,GAAG,EAAE,OAAO43B,CAAQ,EACzDx1E,CACT,EAAG,EAAE,EACL,OAAA0qE,GAAG,QAAQ,SAAU8K,EAAU,EACzB9sE,EAAO,SAAS+uE,EAASjC,CAAQ,CAAC,GAAK9sE,EAAO,KAAK,SAAUgvE,EAAM,CACrE,OAAOnC,GAAoBC,CAAQ,EAAE,SAASkC,CAAI,CACpD,CAAC,KACCF,EAAShC,EAEb,CAAC,EACMgC,CACT,CACA,SAASb,GAAmBgB,EAAe,CACzC,IAAI12C,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E22C,EAAiB32C,EAAO,OAC1Bu2C,EAASI,IAAmB,OAAS1jF,GAAI0jF,EACvC//E,EAAQi4E,GAAgB0H,CAAM,EAAEG,CAAa,EAGjD,GAAIH,IAAWrhD,IAAK,CAACwhD,EACnB,MAAO,MAET,IAAIrb,EAAS0T,GAAgBwH,CAAM,EAAEG,CAAa,GAAK3H,GAAgBwH,CAAM,EAAE3/E,CAAK,EAChFggF,EAAUF,KAAiBrqE,GAAU,OAASqqE,EAAgB,KAC9Dn4E,EAAS88D,GAAUub,GAAW,KAClC,OAAOr4E,CACT,CACA,SAASs4E,GAAuBC,EAAY,CAC1C,IAAIC,EAAO,GACPvD,EAAW,KACf,OAAAsD,EAAW,QAAQ,SAAU7/C,EAAK,CAChC,IAAI14B,EAASw2E,GAAYp4B,GAAO,UAAW1lB,CAAG,EAC1C14B,EACFi1E,EAAWj1E,EACF04B,GACT8/C,EAAK,KAAK9/C,CAAG,CAEjB,CAAC,EACM,CACL,SAAAu8C,EACA,KAAAuD,CAAA,CAEJ,CACA,SAASC,GAAmBjkF,EAAK,CAC/B,OAAOA,EAAI,OAAO,OAAO,SAAUiB,EAAO8K,EAAO/L,EAAK,CACpD,OAAOA,EAAI,QAAQiB,CAAK,IAAM8K,CAChC,CAAC,CACH,CACA,IAAIm4E,GAAqB1J,GAAK,OAAOzD,EAAE,EACvC,SAASoN,GAAiBzvE,EAAQ,CAChC,IAAIu4B,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7Em3C,EAAsBn3C,EAAO,YAC/Bo3C,EAAcD,IAAwB,OAAS,GAAQA,EACrDE,EAAc,KACdC,EAAyBN,GAAmBvvE,EAAO,OAAO,SAAUwvB,EAAK,CAC3E,OAAOggD,GAAmB,SAAShgD,CAAG,CACxC,CAAC,CAAC,EACEsgD,EAA0BP,GAAmBvvE,EAAO,OAAO,SAAUwvB,EAAK,CAC5E,MAAO,CAACggD,GAAmB,SAAShgD,CAAG,CACzC,CAAC,CAAC,EACEugD,EAAWF,EAAuB,OAAO,SAAUrgD,EAAK,CAC1D,OAAAogD,EAAcpgD,EACP,CAAC2xC,GAAE,SAAS3xC,CAAG,CACxB,CAAC,EACGwgD,EAAYlQ,GAAeiQ,EAAU,CAAC,EACxCE,EAAaD,EAAU,CAAC,EACxBE,EAAkBD,IAAe,OAAS,KAAOA,EAC/CnB,EAASD,GAAYgB,CAAsB,EAC3CM,EAAYtQ,GAAeA,GAAe,GAAIuP,GAAuBU,CAAuB,CAAC,EAAG,GAAI,CACtG,OAAQ7B,GAAmBiC,EAAiB,CAC1C,OAAApB,CAAA,CACD,EACF,EACD,OAAOjP,GAAeA,GAAeA,GAAe,GAAIsQ,CAAS,EAAGC,GAA0B,CAC5F,OAAApwE,EACA,OAAA8uE,EACA,OAAA1+C,GAAA,OACA8kB,GACA,UAAAi7B,EACA,YAAAP,CAAA,CACD,CAAC,EAAGS,GAAkBV,EAAaC,EAAaO,CAAS,CAAC,CAC7D,CACA,SAASE,GAAkBV,EAAaC,EAAaO,EAAW,CAC9D,IAAIvc,EAASuc,EAAU,OACrBpE,EAAWoE,EAAU,SACvB,GAAIR,GAAe,CAAC/b,GAAU,CAACmY,EAC7B,MAAO,CACL,OAAAnY,EACA,SAAAmY,CAAA,EAGJ,IAAIgC,EAAO6B,IAAgB,KAAOrB,GAAUxC,CAAQ,EAAI,GACpDuE,EAAgBhC,GAAQ1a,EAAQmY,CAAQ,EAC5C,OAAAA,EAAWgC,EAAK,UAAYuC,GAAiBvE,EAC7CnY,EAASma,EAAK,QAAUna,EACpBA,IAAW,OAAS,CAACxjC,GAAO,KAAUA,GAAO,KAAU,CAAC8kB,GAAO,eAGjE0e,EAAS,OAEJ,CACL,OAAAA,EACA,SAAAmY,CAAA,CAEJ,CACA,IAAIwE,GAAuBvO,GAAG,OAAO,SAAU8K,EAAU,CACvD,OAAOA,IAAathF,IAAKshF,IAAar/C,EACxC,CAAC,EACG+iD,GAAqB,OAAO,KAAK5K,EAAI,EAAE,OAAO,SAAUh7E,EAAK,CAC/D,OAAOA,IAAQY,EACjB,CAAC,EAAE,IAAI,SAAUZ,EAAK,CACpB,OAAO,OAAO,KAAKg7E,GAAKh7E,CAAG,CAAC,CAC9B,CAAC,EAAE,OACH,SAASwlF,GAA0BK,EAAe,CAChD,IAAIzwE,EAASywE,EAAc,OACzB3B,EAAS2B,EAAc,OACvBN,EAAYM,EAAc,UAC1BC,EAAwBD,EAAc,YACtCb,EAAcc,IAA0B,OAAS,GAAKA,EACtDC,EAAwBF,EAAc,OACtCrgD,EAASugD,IAA0B,OAAS,GAAKA,EACjDC,EAAwBH,EAAc,OACtCI,EAAYD,IAA0B,OAAS,GAAKA,EAClDE,EAAkBhC,IAAWrhD,GAC7BsjD,EAAmB/wE,EAAO,SAAS,YAAY,GAAKA,EAAO,SAAS,KAAK,EACzEgxE,EAAyBH,EAAU,gBAAkB,UACrDI,EAA2Bd,EAAU,SAAW,OAASA,EAAU,SAAW,aAOlF,GANI,CAACW,IAAoBC,GAAoBC,GAA0BC,KACrEd,EAAU,OAAS,QAEjBnwE,EAAO,SAAS,WAAW,GAAKA,EAAO,SAAS,KAAK,KACvDmwE,EAAU,OAAS,OAEjB,CAACA,EAAU,QAAUI,GAAqB,SAASzB,CAAM,EAAG,CAC9D,IAAIoC,EAAc,OAAO,KAAK9gD,CAAM,EAAE,KAAK,SAAUxlC,EAAK,CACxD,OAAO4lF,GAAmB,SAAS5lF,CAAG,CACxC,CAAC,EACD,GAAIsmF,GAAeL,EAAU,aAAc,CACzC,IAAIM,EAAgBhP,GAAG,IAAI2M,CAAM,EAAE,qBACnCqB,EAAU,OAASgB,EACnBhB,EAAU,SAAW7B,GAAQ6B,EAAU,OAAQA,EAAU,QAAQ,GAAKA,EAAU,QAClF,CACF,CACA,OAAIA,EAAU,SAAW,MAAQP,IAAgB,QAG/CO,EAAU,OAASxB,MAA4B,OAE1CwB,CACT,CAEA,IAAIiB,IAAuB,UAAY,CACrC,SAASA,GAAU,CACjBrS,GAAgB,KAAMqS,CAAO,EAC7B,KAAK,YAAc,EACrB,CACA,OAAOlS,GAAakS,EAAS,CAAC,CAC5B,IAAK,MACL,MAAO,UAAe,CAEpB,QADIC,EAAQ,KACHC,EAAO,UAAU,OAAQC,EAAc,IAAI,MAAMD,CAAI,EAAGhhF,EAAO,EAAGA,EAAOghF,EAAMhhF,IACtFihF,EAAYjhF,CAAI,EAAI,UAAUA,CAAI,EAEpC,IAAIkhF,EAAYD,EAAY,OAAO,KAAK,iBAAkB,EAAE,EAC5D,OAAO,KAAKC,CAAS,EAAE,QAAQ,SAAU5mF,EAAK,CAC5CymF,EAAM,YAAYzmF,CAAG,EAAIi1E,GAAeA,GAAe,GAAIwR,EAAM,YAAYzmF,CAAG,GAAK,EAAE,EAAG4mF,EAAU5mF,CAAG,CAAC,EACxG4hF,GAAY5hF,EAAK4mF,EAAU5mF,CAAG,CAAC,EAG/B,IAAI6mF,EAAajK,GAAqBh8E,EAAC,EAAEZ,CAAG,EACxC6mF,GAAYjF,GAAYiF,EAAYD,EAAU5mF,CAAG,CAAC,EACtD4iF,GAAA,CACF,CAAC,CACH,GACC,CACD,IAAK,QACL,MAAO,UAAiB,CACtB,KAAK,YAAc,EACrB,GACC,CACD,IAAK,mBACL,MAAO,SAA0BgE,EAAWE,EAAY,CACtD,IAAIpjF,EAAaojF,EAAW,QAAUA,EAAW,UAAYA,EAAW,KAAO,CAC7E,EAAGA,CAAA,EACDA,EACJ,cAAO,KAAKpjF,CAAU,EAAE,IAAI,SAAU1D,EAAK,CACzC,IAAI+mF,EAAkBrjF,EAAW1D,CAAG,EAClCgpE,EAAS+d,EAAgB,OACzB5F,EAAW4F,EAAgB,SAC3BrF,EAAOqF,EAAgB,KACrB3qC,EAAUslC,EAAK,CAAC,EACfkF,EAAU5d,CAAM,IAAG4d,EAAU5d,CAAM,EAAI,IACxC5sB,EAAQ,OAAS,GACnBA,EAAQ,QAAQ,SAAUC,EAAO,CAC3B,OAAOA,GAAU,WACnBuqC,EAAU5d,CAAM,EAAE3sB,CAAK,EAAIqlC,EAE/B,CAAC,EAEHkF,EAAU5d,CAAM,EAAEmY,CAAQ,EAAIO,CAChC,CAAC,EACMkF,CACT,EACD,CAAC,CACJ,KAEII,GAAW,GACXC,GAAS,GACTC,GAAY,GACZC,GAAsB,OAAO,KAAKD,EAAS,EAC/C,SAASE,GAAgBC,EAAa3R,EAAM,CAC1C,IAAI1yE,EAAM0yE,EAAK,UACf,OAAAsR,GAAWK,EACXJ,GAAS,GACT,OAAO,KAAKC,EAAS,EAAE,QAAQ,SAAUn6C,EAAG,CACtCo6C,GAAoB,QAAQp6C,CAAC,IAAM,IACrC,OAAOm6C,GAAUn6C,CAAC,CAEtB,CAAC,EACDi6C,GAAS,QAAQ,SAAU73D,EAAQ,CACjC,IAAIm4D,EAASn4D,EAAO,OAASA,EAAO,SAAW,GAc/C,GAbA,OAAO,KAAKm4D,CAAM,EAAE,QAAQ,SAAUC,EAAI,CACpC,OAAOD,EAAOC,CAAE,GAAM,aACxBvkF,EAAIukF,CAAE,EAAID,EAAOC,CAAE,GAEjBlS,GAAQiS,EAAOC,CAAE,CAAC,IAAM,UAC1B,OAAO,KAAKD,EAAOC,CAAE,CAAC,EAAE,QAAQ,SAAUC,EAAI,CACvCxkF,EAAIukF,CAAE,IACTvkF,EAAIukF,CAAE,EAAI,IAEZvkF,EAAIukF,CAAE,EAAEC,CAAE,EAAIF,EAAOC,CAAE,EAAEC,CAAE,CAC7B,CAAC,CAEL,CAAC,EACGr4D,EAAO,MAAO,CAChB,IAAIzQ,EAAQyQ,EAAO,QACnB,OAAO,KAAKzQ,CAAK,EAAE,QAAQ,SAAU3F,EAAM,CACpCkuE,GAAOluE,CAAI,IACdkuE,GAAOluE,CAAI,EAAI,IAEjBkuE,GAAOluE,CAAI,EAAE,KAAK2F,EAAM3F,CAAI,CAAC,CAC/B,CAAC,CACH,CACIoW,EAAO,UACTA,EAAO,SAAS+3D,EAAS,CAE7B,CAAC,EACMlkF,CACT,CACA,SAASykF,GAAW1uE,EAAM2uE,EAAa,CACrC,QAAShB,EAAO,UAAU,OAAQr7E,EAAO,IAAI,MAAMq7E,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGhhF,EAAO,EAAGA,EAAOghF,EAAMhhF,IAClG2F,EAAK3F,EAAO,CAAC,EAAI,UAAUA,CAAI,EAEjC,IAAIiiF,EAAUV,GAAOluE,CAAI,GAAK,GAC9B,OAAA4uE,EAAQ,QAAQ,SAAUC,EAAQ,CAChCF,EAAcE,EAAO,MAAM,KAAM,CAACF,CAAW,EAAE,OAAOr8E,CAAI,CAAC,CAC7D,CAAC,EACMq8E,CACT,CACA,SAASG,GAAU9uE,EAAM,CACvB,QAAS+uE,EAAQ,UAAU,OAAQz8E,EAAO,IAAI,MAAMy8E,EAAQ,EAAIA,EAAQ,EAAI,CAAC,EAAGC,EAAQ,EAAGA,EAAQD,EAAOC,IACxG18E,EAAK08E,EAAQ,CAAC,EAAI,UAAUA,CAAK,EAEnC,IAAIJ,EAAUV,GAAOluE,CAAI,GAAK,GAC9B4uE,EAAQ,QAAQ,SAAUC,EAAQ,CAChCA,EAAO,MAAM,KAAMv8E,CAAI,CACzB,CAAC,CAEH,CACA,SAAS28E,IAAe,CACtB,IAAIjvE,EAAO,UAAU,CAAC,EAClB1N,EAAO,MAAM,UAAU,MAAM,KAAK,UAAW,CAAC,EAClD,OAAO67E,GAAUnuE,CAAI,EAAImuE,GAAUnuE,CAAI,EAAE,MAAM,KAAM1N,CAAI,EAAI,MAC/D,CAEA,SAAS48E,GAAmBC,EAAY,CAClCA,EAAW,SAAW,OACxBA,EAAW,OAAS,OAEtB,IAAI/G,EAAW+G,EAAW,SACtBlf,EAASkf,EAAW,QAAUnE,GAAA,EAClC,GAAK5C,EACL,OAAAA,EAAWuC,GAAQ1a,EAAQmY,CAAQ,GAAKA,EACjCF,GAAgBkH,GAAQ,YAAanf,EAAQmY,CAAQ,GAAKF,GAAgBjnE,GAAU,OAAQgvD,EAAQmY,CAAQ,CACrH,CACA,IAAIgH,GAAU,IAAI3B,GACd4B,GAAS,UAAkB,CAC7B99B,GAAO,eAAiB,GACxBA,GAAO,iBAAmB,GAC1Bu9B,GAAU,QAAQ,CACpB,EACIQ,GAAM,CACR,MAAO,UAAiB,CACtB,IAAI16C,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACjF,OAAIsoC,IACF4R,GAAU,cAAel6C,CAAM,EAC/Bq6C,GAAa,qBAAsBr6C,CAAM,EAClCq6C,GAAa,QAASr6C,CAAM,GAE5B,QAAQ,OAAO,IAAI,MAAM,wCAAwC,CAAC,CAE7E,EACA,MAAO,UAAiB,CACtB,IAAIA,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E26C,EAAqB36C,EAAO,mBAC5B2c,GAAO,iBAAmB,KAC5BA,GAAO,eAAiB,IAE1BA,GAAO,iBAAmB,GAC1Bs2B,GAAS,UAAY,CACnB2H,GAAY,CACV,mBAAAD,CAAA,CACD,EACDT,GAAU,QAASl6C,CAAM,CAC3B,CAAC,CACH,CACF,EACI8M,GAAQ,CACV,KAAM,SAAc+tC,EAAO,CACzB,GAAIA,IAAU,KACZ,OAAO,KAET,GAAInT,GAAQmT,CAAK,IAAM,UAAYA,EAAM,QAAUA,EAAM,SACvD,MAAO,CACL,OAAQA,EAAM,OACd,SAAU9E,GAAQ8E,EAAM,OAAQA,EAAM,QAAQ,GAAKA,EAAM,UAG7D,GAAI,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,EAAG,CAC9C,IAAIrH,EAAWqH,EAAM,CAAC,EAAE,QAAQ,KAAK,IAAM,EAAIA,EAAM,CAAC,EAAE,MAAM,CAAC,EAAIA,EAAM,CAAC,EACtExf,EAASqa,GAAmBmF,EAAM,CAAC,CAAC,EACxC,MAAO,CACL,OAAAxf,EACA,SAAU0a,GAAQ1a,EAAQmY,CAAQ,GAAKA,CAAA,CAE3C,CACA,GAAI,OAAOqH,GAAU,WAAaA,EAAM,QAAQ,GAAG,OAAOl+B,GAAO,UAAW,GAAG,CAAC,EAAI,IAAMk+B,EAAM,MAAM1L,EAA6B,GAAI,CACrI,IAAI2L,EAAgB5D,GAAiB2D,EAAM,MAAM,GAAG,EAAG,CACrD,YAAa,GACd,EACD,MAAO,CACL,OAAQC,EAAc,QAAU1E,GAAA,EAChC,SAAUL,GAAQ+E,EAAc,OAAQA,EAAc,QAAQ,GAAKA,EAAc,SAErF,CACA,GAAI,OAAOD,GAAU,SAAU,CAC7B,IAAIE,EAAU3E,GAAA,EACd,MAAO,CACL,OAAQ2E,EACR,SAAUhF,GAAQgF,EAASF,CAAK,GAAKA,CAAA,CAEzC,CACF,CACF,EACIG,GAAM,CACR,OAAAP,GAAA,OACA99B,GACA,IAAA+9B,GAAA,MACA5tC,GACA,QAAA0tC,GACA,mBAAAF,GACA,OAAApH,EACF,EACI0H,GAAc,UAAuB,CACvC,IAAI56C,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7Ei7C,EAAwBj7C,EAAO,mBACjC26C,EAAqBM,IAA0B,OAAS9S,GAAW8S,GAChE,OAAO,KAAK5uE,GAAU,MAAM,EAAE,OAAS,GAAKswC,GAAO,eAAiB2rB,IAAU3rB,GAAO,gBAAgBq+B,GAAI,IAAI,MAAM,CACtH,KAAML,CAAA,CACP,CACH,EAEA,SAASO,GAAY5oF,EAAK6oF,EAAiB,CACzC,cAAO,eAAe7oF,EAAK,WAAY,CACrC,IAAK6oF,CAAA,CACN,EACD,OAAO,eAAe7oF,EAAK,OAAQ,CACjC,IAAK,UAAe,CAClB,OAAOA,EAAI,SAAS,IAAI,SAAU2E,EAAG,CACnC,OAAOi8E,GAAOj8E,CAAC,CACjB,CAAC,CACH,EACD,EACD,OAAO,eAAe3E,EAAK,OAAQ,CACjC,IAAK,UAAe,CAClB,GAAKg2E,GACL,KAAIr8D,EAAYk8D,GAAS,cAAc,KAAK,EAC5C,OAAAl8D,EAAU,UAAY3Z,EAAI,KACnB2Z,EAAU,SACnB,EACD,EACM3Z,CACT,CAEA,SAAS8oF,GAAQrT,EAAM,CACrB,IAAI76D,EAAW66D,EAAK,SAClBsT,EAAOtT,EAAK,KACZuT,EAAOvT,EAAK,KACZkJ,EAAalJ,EAAK,WAClBlwC,EAASkwC,EAAK,OACduJ,EAAYvJ,EAAK,UACnB,GAAIsJ,GAAsBC,CAAS,GAAK+J,EAAK,OAAS,CAACC,EAAK,MAAO,CACjE,IAAIvJ,EAAQsJ,EAAK,MACfpJ,EAASoJ,EAAK,OACZr3C,EAAS,CACX,EAAG+tC,EAAQE,EAAS,EACpB,EAAG,IAELhB,EAAW,MAAWE,GAAW7J,GAAeA,GAAe,GAAIzvC,CAAM,EAAG,GAAI,CAC9E,mBAAoB,GAAG,OAAOmM,EAAO,EAAIstC,EAAU,EAAI,GAAI,KAAK,EAAE,OAAOttC,EAAO,EAAIstC,EAAU,EAAI,GAAI,IAAI,EAC3G,CAAC,CACJ,CACA,MAAO,CAAC,CACN,IAAK,MACL,WAAAL,EACA,SAAA/jE,CAAA,CACD,CACH,CAEA,SAASquE,GAAUxT,EAAM,CACvB,IAAI1M,EAAS0M,EAAK,OAChByL,EAAWzL,EAAK,SAChB76D,EAAW66D,EAAK,SAChBkJ,EAAalJ,EAAK,WAClByT,EAASzT,EAAK,OACZj/D,EAAK0yE,IAAW,GAAO,GAAG,OAAOngB,EAAQ,GAAG,EAAE,OAAO1e,GAAO,UAAW,GAAG,EAAE,OAAO62B,CAAQ,EAAIgI,EACnG,MAAO,CAAC,CACN,IAAK,MACL,WAAY,CACV,MAAO,kBAET,SAAU,CAAC,CACT,IAAK,SACL,WAAYlU,GAAeA,GAAe,GAAI2J,CAAU,EAAG,GAAI,CAC7D,GAAAnoE,CAAA,CACD,EACD,SAAAoE,CAAA,CACD,EACF,CACH,CAGA,SAASuuE,GAAUxK,EAAY,CAC7B,IAAIyK,EAAS,CAAC,aAAc,kBAAmB,QAAS,MAAM,EAC9D,OAAOA,EAAO,KAAK,SAAUC,EAAO,CAClC,OAAOA,KAAS1K,CAClB,CAAC,CACH,CACA,SAAS2K,GAAsB57C,EAAQ,CACrC,IAAI67C,EAAgB77C,EAAO,MACzBq7C,EAAOQ,EAAc,KACrBP,EAAOO,EAAc,KACrBxgB,EAASr7B,EAAO,OAChBwzC,EAAWxzC,EAAO,SAClBsxC,EAAYtxC,EAAO,UACnBw7C,EAASx7C,EAAO,OAChB87C,EAAS97C,EAAO,OAChB+7C,EAAQ/7C,EAAO,MACfg8C,EAAoBh8C,EAAO,UAC3Bi8C,EAAYD,IAAsB,OAAS,GAAQA,EACjDjU,EAAOuT,EAAK,MAAQA,EAAOD,EAC7BtJ,EAAQhK,EAAK,MACbkK,EAASlK,EAAK,OACZmU,EAAY,CAACv/B,GAAO,iBAAkB62B,EAAW,GAAG,OAAO72B,GAAO,UAAW,GAAG,EAAE,OAAO62B,CAAQ,EAAI,EAAE,EAAE,OAAO,SAAU9+E,EAAG,CAC/H,OAAOqnF,EAAM,QAAQ,QAAQrnF,CAAC,IAAM,EACtC,CAAC,EAAE,OAAO,SAAUA,EAAG,CACrB,OAAOA,IAAM,IAAM,CAAC,CAACA,CACvB,CAAC,EAAE,OAAOqnF,EAAM,OAAO,EAAE,KAAK,GAAG,EAC7B/pD,EAAU,CACZ,SAAU,GACV,WAAYs1C,GAAeA,GAAe,GAAIyU,EAAM,UAAU,EAAG,GAAI,CACnE,cAAe1gB,EACf,YAAamY,EACb,MAAS0I,EACT,KAAQH,EAAM,WAAW,MAAQ,MACjC,QAAW,OAAO,OAAOhK,EAAO,GAAG,EAAE,OAAOE,CAAM,EACnD,GAEC,CAACwJ,GAAUM,EAAM,UAAU,GAAK,CAACA,EAAM,WAAW,aAAa,IACjE/pD,EAAQ,WAAW,aAAa,EAAI,QAElCiqD,IACFjqD,EAAQ,WAAWi8C,EAAa,EAAI,IAEtC,IAAIvwE,EAAO4pE,GAAeA,GAAe,GAAIt1C,CAAO,EAAG,GAAI,CACzD,OAAAqpC,EACA,SAAAmY,EACA,KAAA6H,EACA,KAAAC,EACA,OAAAQ,EACA,UAAAxK,EACA,OAAAkK,EACA,OAAQlU,GAAe,GAAIyU,EAAM,MAAM,EACxC,EACGhM,EAAQuL,EAAK,OAASD,EAAK,MAAQhB,GAAa,uBAAwB38E,CAAI,GAAK,CACjF,SAAU,GACV,WAAY,EAAC,EACX28E,GAAa,uBAAwB38E,CAAI,GAAK,CAChD,SAAU,GACV,WAAY,EAAC,EAEfwP,EAAW6iE,EAAM,SACjBkB,EAAalB,EAAM,WAGrB,OAFAryE,EAAK,SAAWwP,EAChBxP,EAAK,WAAauzE,EACduK,EACKD,GAAS79E,CAAI,EAEb09E,GAAO19E,CAAI,CAEtB,CACA,SAASy+E,GAAuBn8C,EAAQ,CACtC,IAAIhO,EAAUgO,EAAO,QACnB+xC,EAAQ/xC,EAAO,MACfiyC,EAASjyC,EAAO,OAChBsxC,EAAYtxC,EAAO,UACnB+7C,EAAQ/7C,EAAO,MACfo8C,EAAqBp8C,EAAO,UAC5Bi8C,EAAYG,IAAuB,OAAS,GAAQA,EAClDnL,EAAa3J,GAAeA,GAAe,GAAIyU,EAAM,UAAU,EAAG,GAAI,CACxE,MAAOA,EAAM,QAAQ,KAAK,GAAG,EAC9B,EACGE,IACFhL,EAAWhD,EAAa,EAAI,IAE9B,IAAIp2C,EAASyvC,GAAe,GAAIyU,EAAM,MAAM,EACxC1K,GAAsBC,CAAS,IACjCz5C,EAAO,UAAeg6C,GAAgB,CACpC,UAAAP,EAEA,MAAAS,EACA,OAAAE,CAAA,CACD,EACDp6C,EAAO,mBAAmB,EAAIA,EAAO,WAEvC,IAAIwkD,EAAclL,GAAWt5C,CAAM,EAC/BwkD,EAAY,OAAS,IACvBpL,EAAW,MAAWoL,GAExB,IAAI/pF,EAAM,GACV,OAAAA,EAAI,KAAK,CACP,IAAK,OACL,WAAA2+E,EACA,SAAU,CAACj/C,CAAO,EACnB,EACM1/B,CACT,CACA,SAASgqF,GAA0Bt8C,EAAQ,CACzC,IAAIhO,EAAUgO,EAAO,QACnB+7C,EAAQ/7C,EAAO,MACbixC,EAAa3J,GAAeA,GAAe,GAAIyU,EAAM,UAAU,EAAG,GAAI,CACxE,MAAOA,EAAM,QAAQ,KAAK,GAAG,EAC9B,EACGM,EAAclL,GAAW4K,EAAM,MAAM,EACrCM,EAAY,OAAS,IACvBpL,EAAW,MAAWoL,GAExB,IAAI/pF,EAAM,GACV,OAAAA,EAAI,KAAK,CACP,IAAK,OACL,WAAA2+E,EACA,SAAU,CAACj/C,CAAO,EACnB,EACM1/B,CACT,CAEA,IAAIiqF,GAAWlwE,GAAU,OACzB,SAASmwE,GAAYzI,EAAM,CACzB,IAAIhC,EAAQgC,EAAK,CAAC,EACd9B,EAAS8B,EAAK,CAAC,EACf0I,EAAc1I,EAAK,MAAM,CAAC,EAC5B2I,EAAenV,GAAekV,EAAa,CAAC,EAC5CE,EAAaD,EAAa,CAAC,EACzB7M,EAAU,KACd,OAAI,MAAM,QAAQ8M,CAAU,EAC1B9M,EAAU,CACR,IAAK,IACL,WAAY,CACV,MAAO,GAAG,OAAOlzB,GAAO,UAAW,GAAG,EAAE,OAAO6yB,GAAgB,KAAK,GAEtE,SAAU,CAAC,CACT,IAAK,OACL,WAAY,CACV,MAAO,GAAG,OAAO7yB,GAAO,UAAW,GAAG,EAAE,OAAO6yB,GAAgB,SAAS,EACxE,KAAM,eACN,EAAGmN,EAAW,CAAC,EACjB,EACC,CACD,IAAK,OACL,WAAY,CACV,MAAO,GAAG,OAAOhgC,GAAO,UAAW,GAAG,EAAE,OAAO6yB,GAAgB,OAAO,EACtE,KAAM,eACN,EAAGmN,EAAW,CAAC,EACjB,CACD,GAGH9M,EAAU,CACR,IAAK,OACL,WAAY,CACV,KAAM,eACN,EAAG8M,CAAA,CACL,EAGG,CACL,MAAO,GACP,MAAA5K,EACA,OAAAE,EACA,KAAMpC,CAAA,CAEV,CACA,IAAI+M,GAA6B,CAC/B,MAAO,GACP,MAAO,IACP,OAAQ,GACV,EACA,SAASC,GAAmBrJ,EAAUnY,EAAQ,CACxC,CAACqT,IAAc,CAAC/xB,GAAO,kBAAoB62B,GAC7C,QAAQ,MAAM,mBAAoB,OAAOA,EAAU,gBAAkB,EAAE,OAAOnY,EAAQ,eAAgB,CAAC,CAE3G,CACA,SAASyhB,GAAStJ,EAAUnY,EAAQ,CAClC,IAAIgc,EAAchc,EAClB,OAAIA,IAAW,MAAQ1e,GAAO,eAAiB,OAC7C0e,EAAS+a,GAAA,GAEJ,IAAI,QAAQ,SAAU/8D,EAAS+tB,EAAQ,CAC5C,GAAIiwC,IAAgB,KAAM,CACxB,IAAI7B,EAAOQ,GAAUxC,CAAQ,GAAK,GAClCA,EAAWgC,EAAK,UAAYhC,EAC5BnY,EAASma,EAAK,QAAUna,CAC1B,CACA,GAAImY,GAAYnY,GAAUkhB,GAASlhB,CAAM,GAAKkhB,GAASlhB,CAAM,EAAEmY,CAAQ,EAAG,CACxE,IAAIO,EAAOwI,GAASlhB,CAAM,EAAEmY,CAAQ,EACpC,OAAOn6D,EAAQmjE,GAAYzI,CAAI,CAAC,CAClC,CACA8I,GAAmBrJ,EAAUnY,CAAM,EACnChiD,EAAQiuD,GAAeA,GAAe,GAAIsV,EAA0B,EAAG,GAAI,CACzE,KAAMjgC,GAAO,kBAAoB62B,EAAW6G,GAAa,qBAAqB,GAAK,GAAK,EAAC,CAC1F,CAAC,CACJ,CAAC,CACH,CAEA,IAAI0C,GAAS,UAAgB,CAAC,EAC1BC,GAAMrgC,GAAO,oBAAsB0rB,IAAeA,GAAY,MAAQA,GAAY,QAAUA,GAAc,CAC5G,KAAM0U,GACN,QAASA,EACX,EACIE,GAAW,aACXC,GAAQ,SAAe1mF,EAAM,CAC/B,OAAAwmF,GAAI,KAAK,GAAG,OAAOC,GAAU,GAAG,EAAE,OAAOzmF,EAAM,SAAS,CAAC,EAClD,UAAY,CACjB,OAAOwS,GAAIxS,CAAI,CACjB,CACF,EACIwS,GAAM,SAAaxS,EAAM,CAC3BwmF,GAAI,KAAK,GAAG,OAAOC,GAAU,GAAG,EAAE,OAAOzmF,EAAM,OAAO,CAAC,EACvDwmF,GAAI,QAAQ,GAAG,OAAOC,GAAU,GAAG,EAAE,OAAOzmF,CAAI,EAAG,GAAG,OAAOymF,GAAU,GAAG,EAAE,OAAOzmF,EAAM,SAAS,EAAG,GAAG,OAAOymF,GAAU,GAAG,EAAE,OAAOzmF,EAAM,OAAO,CAAC,CACrJ,EACI2mF,GAAO,CACT,MAAAD,GAAA,IACAl0E,EACF,EAEIo0E,GAAS,UAAgB,CAAC,EAC9B,SAASC,GAAUtuE,EAAM,CACvB,IAAIuuE,EAAQvuE,EAAK,aAAeA,EAAK,aAAak/D,EAAa,EAAI,KACnE,OAAO,OAAOqP,GAAU,QAC1B,CACA,SAASC,GAAiBxuE,EAAM,CAC9B,IAAIssD,EAAStsD,EAAK,aAAeA,EAAK,aAAaq/D,EAAW,EAAI,KAC9D2F,EAAOhlE,EAAK,aAAeA,EAAK,aAAas/D,EAAS,EAAI,KAC9D,OAAOhT,GAAU0Y,CACnB,CACA,SAASyJ,GAAgBzuE,EAAM,CAC7B,OAAOA,GAAQA,EAAK,WAAaA,EAAK,UAAU,UAAYA,EAAK,UAAU,SAAS4tC,GAAO,gBAAgB,CAC7G,CACA,SAAS8gC,IAAa,CACpB,GAAI9gC,GAAO,iBAAmB,GAC5B,OAAO+gC,GAAS,QAElB,IAAIC,EAAUD,GAAS/gC,GAAO,cAAc,EAC5C,OAAOghC,GAAWD,GAAS,OAC7B,CACA,SAASE,GAAgBtpD,EAAK,CAC5B,OAAO6zC,GAAS,gBAAgB,6BAA8B7zC,CAAG,CACnE,CACA,SAAShf,GAAcgf,EAAK,CAC1B,OAAO6zC,GAAS,cAAc7zC,CAAG,CACnC,CACA,SAASupD,GAAWC,EAAa,CAC/B,IAAI99C,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E+9C,EAAe/9C,EAAO,KACxBg+C,EAAOD,IAAiB,OAASD,EAAY,MAAQ,MAAQF,GAAkBtoE,GAAgByoE,EACjG,GAAI,OAAOD,GAAgB,SACzB,OAAO3V,GAAS,eAAe2V,CAAW,EAE5C,IAAIxpD,EAAM0pD,EAAKF,EAAY,GAAG,EAC9B,OAAO,KAAKA,EAAY,YAAc,EAAE,EAAE,QAAQ,SAAUzrF,EAAK,CAC/DiiC,EAAI,aAAajiC,EAAKyrF,EAAY,WAAWzrF,CAAG,CAAC,CACnD,CAAC,EACD,IAAI6a,EAAW4wE,EAAY,UAAY,GACvC,OAAA5wE,EAAS,QAAQ,SAAUuB,EAAO,CAChC6lB,EAAI,YAAYupD,GAAWpvE,EAAO,CAChC,KAAAuvE,CAAA,CACD,CAAC,CACJ,CAAC,EACM1pD,CACT,CACA,SAAS2pD,GAAclvE,EAAM,CAC3B,IAAImvE,EAAU,IAAI,OAAOnvE,EAAK,UAAW,GAAG,EAE5C,OAAAmvE,EAAU,GAAG,OAAOA,EAAS,+BAA+B,EAErDA,CACT,CACA,IAAIR,GAAW,CACb,QAAS,SAAiBS,EAAU,CAClC,IAAIpvE,EAAOovE,EAAS,CAAC,EACrB,GAAIpvE,EAAK,WAIP,GAHAovE,EAAS,CAAC,EAAE,QAAQ,SAAUC,EAAU,CACtCrvE,EAAK,WAAW,aAAa8uE,GAAWO,CAAQ,EAAGrvE,CAAI,CACzD,CAAC,EACGA,EAAK,aAAak/D,EAAa,IAAM,MAAQtxB,GAAO,mBAAoB,CAC1E,IAAIuhC,EAAU/V,GAAS,cAAc8V,GAAclvE,CAAI,CAAC,EACxDA,EAAK,WAAW,aAAamvE,EAASnvE,CAAI,CAC5C,MACEA,EAAK,QAGX,EACA,KAAM,SAAcovE,EAAU,CAC5B,IAAIpvE,EAAOovE,EAAS,CAAC,EACjBC,EAAWD,EAAS,CAAC,EAIzB,GAAI,CAACrN,GAAW/hE,CAAI,EAAE,QAAQ4tC,GAAO,gBAAgB,EACnD,OAAO+gC,GAAS,QAAQS,CAAQ,EAElC,IAAIE,EAAS,IAAI,OAAO,GAAG,OAAO1hC,GAAO,UAAW,KAAK,CAAC,EAE1D,GADA,OAAOyhC,EAAS,CAAC,EAAE,WAAW,GAC1BA,EAAS,CAAC,EAAE,WAAW,MAAO,CAChC,IAAIE,EAAeF,EAAS,CAAC,EAAE,WAAW,MAAM,MAAM,GAAG,EAAE,OAAO,SAAUr/E,EAAKk4B,EAAK,CACpF,OAAIA,IAAQ0lB,GAAO,kBAAoB1lB,EAAI,MAAMonD,CAAM,EACrDt/E,EAAI,MAAM,KAAKk4B,CAAG,EAElBl4B,EAAI,OAAO,KAAKk4B,CAAG,EAEdl4B,CACT,EAAG,CACD,OAAQ,GACR,MAAO,EAAC,CACT,EACDq/E,EAAS,CAAC,EAAE,WAAW,MAAQE,EAAa,MAAM,KAAK,GAAG,EACtDA,EAAa,OAAO,SAAW,EACjCvvE,EAAK,gBAAgB,OAAO,EAE5BA,EAAK,aAAa,QAASuvE,EAAa,OAAO,KAAK,GAAG,CAAC,CAE5D,CACA,IAAIC,EAAeH,EAAS,IAAI,SAAUnnF,EAAG,CAC3C,OAAOi8E,GAAOj8E,CAAC,CACjB,CAAC,EAAE,KAAK;AAAA,CAAI,EACZ8X,EAAK,aAAak/D,GAAe,EAAE,EACnCl/D,EAAK,UAAYwvE,CACnB,CACF,EACA,SAASC,GAAqBC,EAAI,CAChCA,EAAA,CACF,CACA,SAASC,GAAQC,EAAWl9E,EAAU,CACpC,IAAIm9E,EAAmB,OAAOn9E,GAAa,WAAaA,EAAW27E,GACnE,GAAIuB,EAAU,SAAW,EACvBC,EAAA,MACK,CACL,IAAIC,EAAQL,GACR7hC,GAAO,iBAAmB4xB,KAC5BsQ,EAAQ3W,GAAO,uBAAyBsW,IAE1CK,EAAM,UAAY,CAChB,IAAIlB,EAAUF,GAAA,EACVqB,EAAO3B,GAAK,MAAM,QAAQ,EAC9BwB,EAAU,IAAIhB,CAAO,EACrBmB,EAAA,EACAF,EAAA,CACF,CAAC,CACH,CACF,CACA,IAAI5xE,GAAW,GACf,SAAS+xE,IAAqB,CAC5B/xE,GAAW,EACb,CACA,SAASgyE,IAAoB,CAC3BhyE,GAAW,EACb,CACA,IAAIiyE,GAAK,KACT,SAASC,GAAQv5E,EAAS,CACxB,GAAKyiE,IAGAzrB,GAAO,iBAGZ,KAAIwiC,EAAwBx5E,EAAQ,aAClCy5E,EAAeD,IAA0B,OAAS/B,GAAS+B,EAC3DE,EAAwB15E,EAAQ,aAChC25E,EAAeD,IAA0B,OAASjC,GAASiC,EAC3DE,EAAwB55E,EAAQ,uBAChC65E,EAAyBD,IAA0B,OAASnC,GAASmC,EACrEE,EAAwB95E,EAAQ,qBAChC+5E,EAAuBD,IAA0B,OAAStX,GAAWsX,EACvER,GAAK,IAAI7W,GAAkB,SAAUuX,EAAS,CAC5C,GAAI,CAAA3yE,GACJ,KAAI4rE,EAAgBxC,GAAA,EACpBzZ,GAAQgjB,CAAO,EAAE,QAAQ,SAAUC,EAAgB,CAUjD,GATIA,EAAe,OAAS,aAAeA,EAAe,WAAW,OAAS,GAAK,CAACvC,GAAUuC,EAAe,WAAW,CAAC,CAAC,IACpHjjC,GAAO,sBACT6iC,EAAuBI,EAAe,MAAM,EAE9CR,EAAaQ,EAAe,MAAM,GAEhCA,EAAe,OAAS,cAAgBA,EAAe,OAAO,YAAcjjC,GAAO,sBACrF6iC,EAAuB,CAACI,EAAe,MAAM,EAAG,EAAI,EAElDA,EAAe,OAAS,cAAgBvC,GAAUuC,EAAe,MAAM,GAAK,CAACrQ,GAAgC,QAAQqQ,EAAe,aAAa,EACnJ,GAAIA,EAAe,gBAAkB,SAAWrC,GAAiBqC,EAAe,MAAM,EAAG,CACvF,IAAIC,EAAoB3I,GAAiBpG,GAAW8O,EAAe,MAAM,CAAC,EACxEvkB,EAASwkB,EAAkB,OAC3BrM,EAAWqM,EAAkB,SAC/BD,EAAe,OAAO,aAAaxR,GAAa/S,GAAUud,CAAa,EACnEpF,GAAUoM,EAAe,OAAO,aAAavR,GAAWmF,CAAQ,CACtE,MAAWgK,GAAgBoC,EAAe,MAAM,GAC9CN,EAAaM,EAAe,MAAM,CAGxC,CAAC,EACH,CAAC,EACItX,IACL2W,GAAG,QAAQS,EAAsB,CAC/B,UAAW,GACX,WAAY,GACZ,cAAe,GACf,QAAS,GACV,EACH,CACA,SAASI,IAAa,CACfb,IACLA,GAAG,YACL,CAEA,SAASc,GAAahxE,EAAM,CAC1B,IAAInY,EAAQmY,EAAK,aAAa,OAAO,EACjCzc,EAAM,GACV,OAAIsE,IACFtE,EAAMsE,EAAM,MAAM,GAAG,EAAE,OAAO,SAAUmI,EAAKnI,EAAO,CAClD,IAAIihC,EAASjhC,EAAM,MAAM,GAAG,EACxBqtB,EAAO4T,EAAO,CAAC,EACf7jC,EAAQ6jC,EAAO,MAAM,CAAC,EAC1B,OAAI5T,GAAQjwB,EAAM,OAAS,IACzB+K,EAAIklB,CAAI,EAAIjwB,EAAM,KAAK,GAAG,EAAE,QAEvB+K,CACT,EAAG,EAAE,GAEAzM,CACT,CAEA,SAAS0tF,GAAajxE,EAAM,CAC1B,IAAIkxE,EAAiBlxE,EAAK,aAAa,aAAa,EAChDmxE,EAAmBnxE,EAAK,aAAa,WAAW,EAChDoxE,EAAYpxE,EAAK,YAAc,OAAYA,EAAK,UAAU,OAAS,GACnEzc,EAAM4kF,GAAiBpG,GAAW/hE,CAAI,CAAC,EAQ3C,OAPKzc,EAAI,SACPA,EAAI,OAAS8jF,GAAA,GAEX6J,GAAkBC,IACpB5tF,EAAI,OAAS2tF,EACb3tF,EAAI,SAAW4tF,GAEb5tF,EAAI,UAAYA,EAAI,SAGpBA,EAAI,QAAU6tF,EAAU,OAAS,IACnC7tF,EAAI,SAAWujF,GAAWvjF,EAAI,OAAQyc,EAAK,SAAS,GAAK6mE,GAAUtjF,EAAI,OAAQqhF,GAAM5kE,EAAK,SAAS,CAAC,GAElG,CAACzc,EAAI,UAAYqqD,GAAO,cAAgB5tC,EAAK,YAAcA,EAAK,WAAW,WAAa,KAAK,YAC/Fzc,EAAI,SAAWyc,EAAK,WAAW,OAE1Bzc,CACT,CAEA,SAAS8tF,GAAkBrxE,EAAM,CAC/B,IAAIsxE,EAAkB1jB,GAAQ5tD,EAAK,UAAU,EAAE,OAAO,SAAUhQ,EAAK6wE,EAAM,CACzE,OAAI7wE,EAAI,OAAS,SAAWA,EAAI,OAAS,UACvCA,EAAI6wE,EAAK,IAAI,EAAIA,EAAK,OAEjB7wE,CACT,EAAG,EAAE,EACL,OAAOshF,CACT,CAEA,SAASC,IAAY,CACnB,MAAO,CACL,SAAU,KACV,OAAQ,KACR,UAAWjQ,GACX,OAAQ,GACR,KAAM,CACJ,SAAU,KACV,OAAQ,KACR,KAAM,EAAC,EAET,OAAQ,KACR,MAAO,CACL,QAAS,GACT,OAAQ,GACR,WAAY,EAAC,CACf,CAEJ,CACA,SAASkQ,GAAUxxE,EAAM,CACvB,IAAI4+B,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAC/E,YAAa,IAEX6yC,EAAeR,GAAYjxE,CAAI,EACjCykE,EAAWgN,EAAa,SACxBnlB,EAASmlB,EAAa,OACtBC,EAAeD,EAAa,KAC1BH,EAAkBD,GAAiBrxE,CAAI,EACvC2xE,EAAa5G,GAAW,sBAAuB,GAAI/qE,CAAI,EACvD4xE,EAAchzC,EAAO,YAAcoyC,GAAYhxE,CAAI,EAAI,GAC3D,OAAOu4D,GAAe,CACpB,SAAAkM,EACA,OAAAnY,EACA,UAAWgV,GACX,KAAM,CACJ,SAAU,KACV,OAAQ,KACR,KAAM,EAAC,EAET,OAAQ,KACR,OAAQ,GACR,MAAO,CACL,QAASoQ,EACT,OAAQE,EACR,WAAYN,CAAA,CACd,EACCK,CAAU,CACf,CAEA,IAAIE,GAAWv0E,GAAU,OACzB,SAASw0E,GAAiB9xE,EAAM,CAC9B,IAAI+xE,EAAWnkC,GAAO,iBAAmB,OAAS4jC,GAAUxxE,EAAM,CAChE,YAAa,GACd,EAAIwxE,GAAUxxE,CAAI,EACnB,MAAI,CAAC+xE,EAAS,MAAM,QAAQ,QAAQ1R,EAAqB,EAChDiL,GAAa,qBAAsBtrE,EAAM+xE,CAAQ,EAEjDzG,GAAa,iCAAkCtrE,EAAM+xE,CAAQ,CAExE,CACA,SAASC,IAAmB,CAC1B,MAAO,GAAG,OAAOvZ,GAAmBsC,EAAE,EAAGtC,GAAmB+F,EAAI,CAAC,CACnE,CACA,SAASyT,GAAOv3D,EAAM,CACpB,IAAIhoB,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KACnF,GAAI,CAAC6mE,GAAQ,OAAO,QAAQ,UAC5B,IAAI2Y,EAAgB9Y,GAAS,gBAAgB,UACzC+Y,EAAS,SAAgBzjC,EAAQ,CACnC,OAAOwjC,EAAc,IAAI,GAAG,OAAO3S,GAA6B,GAAG,EAAE,OAAO7wB,CAAM,CAAC,CACrF,EACI0jC,EAAY,SAAmB1jC,EAAQ,CACzC,OAAOwjC,EAAc,OAAO,GAAG,OAAO3S,GAA6B,GAAG,EAAE,OAAO7wB,CAAM,CAAC,CACxF,EACI7jB,EAAW+iB,GAAO,aAAeokC,GAAA,EAAqBnY,GAAE,OAAO,OAAO,KAAKgY,EAAQ,CAAC,EACnFhnD,EAAS,SAAS,IAAI,GACzBA,EAAS,KAAK,IAAI,EAEpB,IAAIwnD,EAAmB,CAAC,IAAI,OAAOhS,GAAuB,QAAQ,EAAE,OAAOnB,GAAe,IAAI,CAAC,EAAE,OAAOr0C,EAAS,IAAI,SAAUynD,EAAM,CACnI,MAAO,IAAI,OAAOA,EAAM,QAAQ,EAAE,OAAOpT,GAAe,IAAI,CAC9D,CAAC,CAAC,EAAE,KAAK,IAAI,EACb,GAAImT,EAAiB,SAAW,EAC9B,OAAO,QAAQ,UAEjB,IAAIE,EAAa,GACjB,GAAI,CACFA,EAAa3kB,GAAQlzC,EAAK,iBAAiB23D,CAAgB,CAAC,CAC9D,MAAe,CAEf,CACA,GAAIE,EAAW,OAAS,EACtBJ,EAAO,SAAS,EAChBC,EAAU,UAAU,MAEpB,QAAO,QAAQ,UAEjB,IAAIrC,EAAO3B,GAAK,MAAM,QAAQ,EAC1BwB,EAAY2C,EAAW,OAAO,SAAUviF,EAAKgQ,EAAM,CACrD,GAAI,CACF,IAAIovE,EAAW0C,GAAiB9xE,CAAI,EAChCovE,GACFp/E,EAAI,KAAKo/E,CAAQ,CAErB,OAASoD,EAAM,CACR7S,IACC6S,EAAK,OAAS,eAChB,QAAQ,MAAMA,CAAI,CAGxB,CACA,OAAOxiF,CACT,EAAG,EAAE,EACL,OAAO,IAAI,QAAQ,SAAUsa,EAAS+tB,EAAQ,CAC5C,QAAQ,IAAIu3C,CAAS,EAAE,KAAK,SAAU6C,EAAmB,CACvD9C,GAAQ8C,EAAmB,UAAY,CACrCN,EAAO,QAAQ,EACfA,EAAO,UAAU,EACjBC,EAAU,SAAS,EACf,OAAO1/E,GAAa,YAAYA,EAAA,EACpCq9E,EAAA,EACAzlE,EAAA,CACF,CAAC,CACH,CAAC,EAAE,MAAM,SAAUkoE,EAAM,CACvBzC,EAAA,EACA13C,EAAOm6C,CAAI,CACb,CAAC,CACH,CAAC,CACH,CACA,SAASE,GAAO1yE,EAAM,CACpB,IAAItN,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KACnFo/E,GAAiB9xE,CAAI,EAAE,KAAK,SAAUovE,EAAU,CAC1CA,GACFO,GAAQ,CAACP,CAAQ,EAAG18E,CAAQ,CAEhC,CAAC,CACH,CACA,SAASigF,GAAarnF,EAAM,CAC1B,OAAO,SAAUsnF,EAAqB,CACpC,IAAI3hD,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E4hD,GAAkBD,GAAuB,IAAI,KAAOA,EAAsBrH,GAAmBqH,GAAuB,EAAE,EACtHrG,EAAOt7C,EAAO,KAClB,OAAIs7C,IACFA,GAAQA,GAAQ,IAAI,KAAOA,EAAOhB,GAAmBgB,GAAQ,EAAE,GAE1DjhF,EAAKunF,EAAgBta,GAAeA,GAAe,GAAItnC,CAAM,EAAG,GAAI,CACzE,KAAAs7C,CAAA,CACD,CAAC,CACJ,CACF,CACA,IAAIv9D,GAAS,SAAgB6jE,EAAgB,CAC3C,IAAI5hD,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E6hD,EAAoB7hD,EAAO,UAC7BsxC,EAAYuQ,IAAsB,OAASxR,GAAuBwR,EAClEC,EAAiB9hD,EAAO,OACxBw7C,EAASsG,IAAmB,OAAS,GAAQA,EAC7CC,EAAe/hD,EAAO,KACtBs7C,EAAOyG,IAAiB,OAAS,KAAOA,EACxCC,EAAiBhiD,EAAO,OACxB87C,EAASkG,IAAmB,OAAS,KAAOA,EAC5CC,EAAkBjiD,EAAO,QACzBkiD,EAAUD,IAAoB,OAAS,GAAKA,EAC5CE,EAAqBniD,EAAO,WAC5BixC,EAAakR,IAAuB,OAAS,GAAKA,EAClDC,EAAiBpiD,EAAO,OACxBnI,EAASuqD,IAAmB,OAAS,GAAKA,EAC5C,GAAKR,EACL,KAAIvmB,EAASumB,EAAe,OAC1BpO,EAAWoO,EAAe,SAC1B7N,EAAO6N,EAAe,KACxB,OAAO1G,GAAY5T,GAAe,CAChC,KAAM,QACLsa,CAAc,EAAG,UAAY,CAC9B,OAAA1H,GAAU,2BAA4B,CACpC,eAAA0H,EACA,OAAA5hD,CAAA,CACD,EACM47C,GAAsB,CAC3B,MAAO,CACL,KAAMY,GAAYzI,CAAI,EACtB,KAAMuH,EAAOkB,GAAYlB,EAAK,IAAI,EAAI,CACpC,MAAO,GACP,MAAO,KACP,OAAQ,KACR,KAAM,EAAC,CACT,EAEF,OAAAjgB,EACA,SAAAmY,EACA,UAAWlM,GAAeA,GAAe,GAAI+I,EAAoB,EAAGiB,CAAS,EAC7E,OAAAkK,EACA,OAAAM,EACA,MAAO,CACL,WAAA7K,EACA,OAAQp5C,EACR,QAAAqqD,CAAA,CACF,CACD,CACH,CAAC,EACH,EACIG,GAAkB,CACpB,OAAQ,UAAkB,CACxB,MAAO,CACL,KAAMX,GAAa3jE,EAAM,EAE7B,EACA,MAAO,UAAiB,CACtB,MAAO,CACL,0BAA2B,SAAmCg8D,EAAa,CACzE,OAAAA,EAAY,aAAeiH,GAC3BjH,EAAY,aAAe0H,GACpB1H,CACT,EAEJ,EACA,SAAU,SAAkBuI,EAAc,CACxCA,EAAa,MAAQ,SAAUtiD,EAAQ,CACrC,IAAIuiD,EAAeviD,EAAO,KACxBjxB,EAAOwzE,IAAiB,OAASpa,GAAWoa,EAC5CC,EAAmBxiD,EAAO,SAC1Bv+B,EAAW+gF,IAAqB,OAAS,UAAY,CAAC,EAAIA,EAC5D,OAAOxB,GAAOjyE,EAAMtN,CAAQ,CAC9B,EACA6gF,EAAa,+BAAiC,SAAUvzE,EAAM+xE,EAAU,CACtE,IAAItN,EAAWsN,EAAS,SACtBzlB,EAASylB,EAAS,OAClBxP,EAAYwP,EAAS,UACrBtF,EAASsF,EAAS,OAClBxF,EAAOwF,EAAS,KAChBhF,EAASgF,EAAS,OAClB/E,EAAQ+E,EAAS,MACnB,OAAO,IAAI,QAAQ,SAAUznE,EAAS+tB,EAAQ,CAC5C,QAAQ,IAAI,CAAC01C,GAAStJ,EAAUnY,CAAM,EAAGigB,EAAK,SAAWwB,GAASxB,EAAK,SAAUA,EAAK,MAAM,EAAI,QAAQ,QAAQ,CAC9G,MAAO,GACP,MAAO,IACP,OAAQ,IACR,KAAM,EAAC,CACR,CAAC,CAAC,EAAE,KAAK,SAAUvT,EAAM,CACxB,IAAIgI,EAAQxI,GAAeQ,EAAM,CAAC,EAChCsT,EAAOtL,EAAM,CAAC,EACduL,EAAOvL,EAAM,CAAC,EAChB12D,EAAQ,CAACtK,EAAM6sE,GAAsB,CACnC,MAAO,CACL,KAAAP,EACA,KAAMC,CAAA,EAER,OAAAjgB,EACA,SAAAmY,EACA,UAAAlC,EACA,OAAAkK,EACA,OAAAM,EACA,MAAAC,EACA,UAAW,GACZ,CAAC,CAAC,CACL,CAAC,EAAE,MAAM30C,CAAM,CACjB,CAAC,CACH,EACAk7C,EAAa,qBAAuB,SAAUG,EAAO,CACnD,IAAIv1E,EAAWu1E,EAAM,SACnBxR,EAAawR,EAAM,WACnBpH,EAAOoH,EAAM,KACbnR,EAAYmR,EAAM,UAClB5qD,EAAS4qD,EAAM,OACbpG,EAAclL,GAAWt5C,CAAM,EAC/BwkD,EAAY,OAAS,IACvBpL,EAAW,MAAWoL,GAExB,IAAI9xD,EACJ,OAAI8mD,GAAsBC,CAAS,IACjC/mD,EAAY8vD,GAAa,oCAAqC,CAC5D,KAAAgB,EACA,UAAA/J,EACA,eAAgB+J,EAAK,MACrB,UAAWA,EAAK,MACjB,GAEHnuE,EAAS,KAAKqd,GAAa8wD,EAAK,IAAI,EAC7B,CACL,SAAAnuE,EACA,WAAA+jE,CAAA,CAEJ,CACF,CACF,EAEIyR,GAAS,CACX,OAAQ,UAAkB,CACxB,MAAO,CACL,MAAO,SAAeC,EAAW,CAC/B,IAAI3iD,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7EiiD,EAAkBjiD,EAAO,QAC3BkiD,EAAUD,IAAoB,OAAS,GAAKA,EAC9C,OAAO/G,GAAY,CACjB,KAAM,SACL,UAAY,CACbhB,GAAU,2BAA4B,CACpC,UAAAyI,EACA,OAAA3iD,CAAA,CACD,EACD,IAAI9yB,EAAW,GACf,OAAAy1E,EAAU,SAAUjlF,EAAM,CACxB,MAAM,QAAQA,CAAI,EAAIA,EAAK,IAAI,SAAUzG,EAAG,CAC1CiW,EAAWA,EAAS,OAAOjW,EAAE,QAAQ,CACvC,CAAC,EAAIiW,EAAWA,EAAS,OAAOxP,EAAK,QAAQ,CAC/C,CAAC,EACM,CAAC,CACN,IAAK,OACL,WAAY,CACV,MAAO,CAAC,GAAG,OAAOi/C,GAAO,UAAW,SAAS,CAAC,EAAE,OAAO6qB,GAAmB0a,CAAO,CAAC,EAAE,KAAK,GAAG,GAE9F,SAAAh1E,CAAA,CACD,CACH,CAAC,CACH,EAEJ,CACF,EAEI01E,GAAgB,CAClB,OAAQ,UAAkB,CACxB,MAAO,CACL,QAAS,SAAiB5wD,EAAS,CACjC,IAAIgO,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7DA,EAAO,UAEzBiiD,EAAkBjiD,EAAO,QACzBkiD,EAAUD,IAAoB,OAAS,GAAKA,EAC5CE,EAAqBniD,EAAO,WAC5BixC,EAAakR,IAAuB,OAAS,GAAKA,EAClDC,EAAiBpiD,EAAO,OACxBnI,EAASuqD,IAAmB,OAAS,GAAKA,EAC5C,OAAOlH,GAAY,CACjB,KAAM,UACN,QAAAlpD,CAAA,EACC,UAAY,CACb,OAAAkoD,GAAU,2BAA4B,CACpC,QAAAloD,EACA,OAAAgO,CAAA,CACD,EACMs8C,GAA0B,CAC/B,QAAStqD,EAAQ,WAEjB,MAAO,CACL,WAAAi/C,EACA,OAAQp5C,EACR,QAAS,CAAC,GAAG,OAAO8kB,GAAO,UAAW,iBAAiB,CAAC,EAAE,OAAO6qB,GAAmB0a,CAAO,CAAC,EAC9F,CACD,CACH,CAAC,CACH,EAEJ,CACF,EAEIW,GAAa,CACf,OAAQ,UAAkB,CACxB,MAAO,CACL,KAAM,SAAc7wD,EAAS,CAC3B,IAAIgO,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E6hD,EAAoB7hD,EAAO,UAC7BsxC,EAAYuQ,IAAsB,OAASxR,GAAuBwR,EAClEI,EAAkBjiD,EAAO,QACzBkiD,EAAUD,IAAoB,OAAS,GAAKA,EAC5CE,EAAqBniD,EAAO,WAC5BixC,EAAakR,IAAuB,OAAS,GAAKA,EAClDC,EAAiBpiD,EAAO,OACxBnI,EAASuqD,IAAmB,OAAS,GAAKA,EAC5C,OAAOlH,GAAY,CACjB,KAAM,OACN,QAAAlpD,CAAA,EACC,UAAY,CACb,OAAAkoD,GAAU,2BAA4B,CACpC,QAAAloD,EACA,OAAAgO,CAAA,CACD,EACMm8C,GAAuB,CAC5B,QAAAnqD,EACA,UAAWs1C,GAAeA,GAAe,GAAI+I,EAAoB,EAAGiB,CAAS,EAC7E,MAAO,CACL,WAAAL,EACA,OAAQp5C,EACR,QAAS,CAAC,GAAG,OAAO8kB,GAAO,UAAW,cAAc,CAAC,EAAE,OAAO6qB,GAAmB0a,CAAO,CAAC,EAC3F,CACD,CACH,CAAC,CACH,EAEJ,EACA,SAAU,SAAkBI,EAAc,CACxCA,EAAa,mBAAqB,SAAUvzE,EAAM+xE,EAAU,CAC1D,IAAIxP,EAAYwP,EAAS,UACvB/E,EAAQ+E,EAAS,MACf/O,EAAQ,KACRE,EAAS,KACb,GAAI1J,GAAO,CACT,IAAIua,EAAmB,SAAS,iBAAiB/zE,CAAI,EAAE,SAAU,EAAE,EAC/Dg0E,EAAqBh0E,EAAK,wBAC9BgjE,EAAQgR,EAAmB,MAAQD,EACnC7Q,EAAS8Q,EAAmB,OAASD,CACvC,CACA,OAAO,QAAQ,QAAQ,CAAC/zE,EAAMotE,GAAuB,CACnD,QAASptE,EAAK,UACd,MAAAgjE,EACA,OAAAE,EACA,UAAAX,EACA,MAAAyK,EACA,UAAW,GACZ,CAAC,CAAC,CACL,CACF,CACF,EAEIiH,GAAwB,IAAI,OAAO,IAAM,IAAI,EAC7CC,GAA0B,CAAC,QAAS,OAAO,EAC3CC,GAAgC5b,GAAeA,GAAeA,GAAeA,GAAe,GAAI,CAClG,YAAa,CACX,OAAQ,MACR,IAAK,MAET,CAAC,EAAGqC,EAAE,EAAGiE,EAAE,EAAGvD,EAAE,EACZ8Y,GAA+B,OAAO,KAAKD,EAA6B,EAAE,OAAO,SAAUnkF,EAAK1M,EAAK,CACvG,OAAA0M,EAAI1M,EAAI,aAAa,EAAI6wF,GAA8B7wF,CAAG,EACnD0M,CACT,EAAG,EAAE,EACDqkF,GAA8B,OAAO,KAAKD,EAA4B,EAAE,OAAO,SAAUpkF,EAAKskF,EAAY,CAC5G,IAAIC,EAAUH,GAA6BE,CAAU,EACrD,OAAAtkF,EAAIskF,CAAU,EAAIC,EAAQ,GAAG,GAAK9b,GAAmB,OAAO,QAAQ8b,CAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAC3EvkF,CACT,EAAG,EAAE,EAGL,SAASwkF,GAAoBvxD,EAAS,CACpC,IAAIwxD,EAAUxxD,EAAQ,QAAQgxD,GAAuB,EAAE,EACvD,OAAOrP,GAAMnM,GAAmBgc,CAAO,EAAE,CAAC,GAAK,EAAE,CACnD,CAMA,SAASC,GAAiB5rD,EAAQ,CAChC,IAAI6rD,EAAkB7rD,EAAO,iBAAiB,uBAAuB,EAAE,SAAS,MAAM,EAClF7F,EAAU6F,EAAO,iBAAiB,SAAS,EAC3C2rD,EAAUxxD,EAAQ,QAAQgxD,GAAuB,EAAE,EACnDW,EAAYH,EAAQ,YAAY,CAAC,EACjCI,EAAeD,GAAaV,GAAwB,CAAC,GAAKU,GAAaV,GAAwB,CAAC,EAChGY,EAAYL,EAAQ,SAAW,EAAIA,EAAQ,CAAC,IAAMA,EAAQ,CAAC,EAAI,GACnE,OAAOI,GAAgBC,GAAaH,CACtC,CACA,SAASI,GAAUT,EAAYU,EAAY,CACzC,IAAIC,EAAsBX,EAAW,QAAQ,eAAgB,EAAE,EAAE,cAC7DY,EAAoB,SAASF,CAAU,EACvCG,EAAsB,MAAMD,CAAiB,EAAI,SAAWA,EAChE,OAAQd,GAA6Ba,CAAmB,GAAK,IAAIE,CAAmB,GAAKd,GAA4BY,CAAmB,CAC1I,CACA,SAASG,GAAmBp1E,EAAMo0B,EAAU,CAC1C,IAAIihD,EAAmB,GAAG,OAAOjW,EAA8B,EAAE,OAAOhrC,EAAS,QAAQ,IAAK,GAAG,CAAC,EAClG,OAAO,IAAI,QAAQ,SAAU9pB,EAAS+tB,EAAQ,CAC5C,GAAIr4B,EAAK,aAAaq1E,CAAgB,IAAM,KAE1C,OAAO/qE,EAAA,EAET,IAAInM,EAAWyvD,GAAQ5tD,EAAK,QAAQ,EAChCs1E,EAAgCn3E,EAAS,OAAO,SAAUyoE,EAAM,CAClE,OAAOA,EAAK,aAAazH,EAAsB,IAAM/qC,CACvD,CAAC,EAAE,CAAC,EACAtL,EAASqwC,GAAO,iBAAiBn5D,EAAMo0B,CAAQ,EAC/CkgD,EAAaxrD,EAAO,iBAAiB,aAAa,EAClDysD,EAAkBjB,EAAW,MAAMhU,EAAmB,EACtD0U,EAAalsD,EAAO,iBAAiB,aAAa,EAClD7F,EAAU6F,EAAO,iBAAiB,SAAS,EAC/C,GAAIwsD,GAAiC,CAACC,EAIpC,OAAAv1E,EAAK,YAAYs1E,CAA6B,EACvChrE,EAAA,EACT,GAAWirE,GAAmBtyD,IAAY,QAAUA,IAAY,GAAI,CAClE,IAAIuyD,EAAW1sD,EAAO,iBAAiB,SAAS,EAC5CwjC,EAASyoB,GAAUT,EAAYU,CAAU,EACzCS,EAAWjB,GAAoBgB,CAAQ,EACvCE,EAAOH,EAAgB,CAAC,EAAE,WAAW,aAAa,EAClDI,EAAcjB,GAAiB5rD,CAAM,EACrC27C,EAAWoC,GAAUva,EAAQmpB,CAAQ,EACrCG,EAAiBnR,EACrB,GAAIiR,EAAM,CACR,IAAIG,EAAY3O,GAAauO,CAAQ,EACjCI,EAAU,UAAYA,EAAU,SAClCpR,EAAWoR,EAAU,SACrBvpB,EAASupB,EAAU,OAEvB,CAIA,GAAIpR,GAAY,CAACkR,IAAgB,CAACL,GAAiCA,EAA8B,aAAajW,EAAW,IAAM/S,GAAUgpB,EAA8B,aAAahW,EAAS,IAAMsW,GAAiB,CAClN51E,EAAK,aAAaq1E,EAAkBO,CAAc,EAC9CN,GAEFt1E,EAAK,YAAYs1E,CAA6B,EAEhD,IAAI10C,EAAO2wC,GAAA,EACPvE,EAAQpsC,EAAK,MACjBosC,EAAM,WAAW7N,EAAsB,EAAI/qC,EAC3C25C,GAAStJ,EAAUnY,CAAM,EAAE,KAAK,SAAUggB,EAAM,CAC9C,IAAI+C,EAAWxC,GAAsBtU,GAAeA,GAAe,GAAI33B,CAAI,EAAG,GAAI,CAChF,MAAO,CACL,KAAA0rC,EACA,KAAMhF,GAAA,CAAmB,EAE3B,OAAAhb,EACA,SAAUspB,EACV,MAAA5I,EACA,UAAW,GACZ,CAAC,EACElM,EAAU1H,GAAS,gBAAgB,6BAA8B,KAAK,EACtEhlC,IAAa,WACfp0B,EAAK,aAAa8gE,EAAS9gE,EAAK,UAAU,EAE1CA,EAAK,YAAY8gE,CAAO,EAE1BA,EAAQ,UAAYuO,EAAS,IAAI,SAAU/I,EAAM,CAC/C,OAAOnC,GAAOmC,CAAI,CACpB,CAAC,EAAE,KAAK;AAAA,CAAI,EACZtmE,EAAK,gBAAgBq1E,CAAgB,EACrC/qE,EAAA,CACF,CAAC,EAAE,MAAM+tB,CAAM,CACjB,MACE/tB,EAAA,CAEJ,MACEA,EAAA,CAEJ,CAAC,CACH,CACA,SAASuvB,GAAQ75B,EAAM,CACrB,OAAO,QAAQ,IAAI,CAACo1E,GAAmBp1E,EAAM,UAAU,EAAGo1E,GAAmBp1E,EAAM,SAAS,CAAC,CAAC,CAChG,CACA,SAAS81E,GAAY91E,EAAM,CACzB,OAAOA,EAAK,aAAe,SAAS,MAAQ,CAAC,CAACy/D,GAAoC,QAAQz/D,EAAK,QAAQ,aAAa,GAAK,CAACA,EAAK,aAAam/D,EAAsB,IAAM,CAACn/D,EAAK,YAAcA,EAAK,WAAW,UAAY,MAC1N,CACA,IAAI+1E,GAAmB,SAA0BtwD,EAAU,CACzD,MAAO,CAAC,CAACA,GAAYi6C,GAAgB,KAAK,SAAUsW,EAAgB,CAClE,OAAOvwD,EAAS,SAASuwD,CAAc,CACzC,CAAC,CACH,EAIIC,GAAyB,SAAgCC,EAAc,CACzE,GAAI,CAACA,EAAc,MAAO,GAC1B,IAAIC,MAAkB,IAClBC,EAAYF,EAAa,MAAM,eAAe,EAAE,IAAI,SAAUG,EAAM,CACtE,OAAOA,EAAK,MACd,CAAC,EACDD,EAAYA,EAAU,QAAQ,SAAU3wD,EAAU,CAChD,OAAOA,EAAS,SAAS,GAAG,EAAIA,EAAWA,EAAS,MAAM,GAAG,EAAE,IAAI,SAAU4wD,EAAM,CACjF,OAAOA,EAAK,MACd,CAAC,CACH,CAAC,EACD,IAAIC,EAAYze,GAA2Bue,CAAS,EAClDG,EACF,GAAI,CACF,IAAKD,EAAU,IAAK,EAAEC,EAAQD,EAAU,KAAK,MAAO,CAClD,IAAI7wD,EAAW8wD,EAAM,MACrB,GAAIR,GAAiBtwD,CAAQ,EAAG,CAE9B,IAAI+wD,EAAwB9W,GAAgB,OAAO,SAAU1vE,EAAKgmF,EAAgB,CAChF,OAAOhmF,EAAI,QAAQgmF,EAAgB,EAAE,CACvC,EAAGvwD,CAAQ,EACP+wD,IAA0B,IAAMA,IAA0B,KAC5DL,EAAY,IAAIK,CAAqB,CAEzC,CACF,CACF,OAAShrF,EAAK,CACZ8qF,EAAU,EAAE9qF,CAAG,CACjB,SACE8qF,EAAU,GACZ,CACA,OAAOH,CACT,EACA,SAASM,GAAqB/7D,EAAM,CAClC,IAAIg8D,EAAgB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACxF,GAAKnd,GACL,KAAIod,EACJ,GAAID,EACFC,EAAWj8D,UACFkzB,GAAO,6BAChB+oC,EAAWj8D,EAAK,iBAAiB,GAAG,MAC/B,CAEL,IAAIy7D,MAAkB,IAClBS,EAAa/e,GAA2B,SAAS,WAAW,EAC9Dgf,EACF,GAAI,CACF,IAAKD,EAAW,IAAK,EAAEC,EAASD,EAAW,KAAK,MAAO,CACrD,IAAIE,EAAaD,EAAO,MACxB,GAAI,CACF,IAAIE,EAAalf,GAA2Bif,EAAW,QAAQ,EAC7DE,EACF,GAAI,CACF,IAAKD,EAAW,IAAK,EAAEC,EAASD,EAAW,KAAK,MAAO,CACrD,IAAIE,EAAOD,EAAO,MACdE,EAAkBjB,GAAuBgB,EAAK,YAAY,EAC1DE,EAAatf,GAA2Bqf,CAAe,EACzDE,EACF,GAAI,CACF,IAAKD,EAAW,IAAK,EAAEC,EAASD,EAAW,KAAK,MAAO,CACrD,IAAI1xD,EAAW2xD,EAAO,MACtBjB,EAAY,IAAI1wD,CAAQ,CAC1B,CACF,OAASj6B,EAAK,CACZ2rF,EAAW,EAAE3rF,CAAG,CAClB,SACE2rF,EAAW,GACb,CACF,CACF,OAAS3rF,EAAK,CACZurF,EAAW,EAAEvrF,CAAG,CAClB,SACEurF,EAAW,GACb,CACF,OAASvE,EAAM,CACT5kC,GAAO,8BACT,QAAQ,KAAK,0CAA0C,OAAOkpC,EAAW,KAAM,IAAI,EAAE,OAAOtE,EAAK,QAAS;AAAA,iSAAuS,CAAC,CAEtZ,CACF,CACF,OAAShnF,EAAK,CACZorF,EAAW,EAAEprF,CAAG,CAClB,SACEorF,EAAW,GACb,CACA,GAAI,CAACT,EAAY,KAAM,OACvB,IAAIkB,EAAiB,MAAM,KAAKlB,CAAW,EAAE,KAAK,IAAI,EACtD,GAAI,CACFQ,EAAWj8D,EAAK,iBAAiB28D,CAAc,CACjD,MAAkB,CAAC,CACrB,CACA,OAAO,IAAI,QAAQ,SAAU/sE,EAAS+tB,EAAQ,CAC5C,IAAIi/C,EAAa1pB,GAAQ+oB,CAAQ,EAAE,OAAOb,EAAW,EAAE,IAAIj8C,EAAO,EAC9D5/B,EAAMm0E,GAAK,MAAM,sBAAsB,EAC3C4B,GAAA,EACA,QAAQ,IAAIsH,CAAU,EAAE,KAAK,UAAY,CACvCr9E,IACAg2E,GAAA,EACA3lE,EAAA,CACF,CAAC,EAAE,MAAM,UAAY,CACnBrQ,IACAg2E,GAAA,EACA53C,EAAA,CACF,CAAC,CACH,CAAC,EACH,CACA,IAAIk/C,GAAiB,CACnB,MAAO,UAAiB,CACtB,MAAO,CACL,0BAA2B,SAAmCvM,EAAa,CACzE,OAAAA,EAAY,uBAAyByL,GAC9BzL,CACT,EAEJ,EACA,SAAU,SAAkBR,EAAW,CACrCA,EAAU,mBAAqB,SAAUv5C,EAAQ,CAC/C,IAAIuiD,EAAeviD,EAAO,KACxBjxB,EAAOwzE,IAAiB,OAASpa,GAAWoa,EAC1C5lC,GAAO,sBACT6oC,GAAqBz2E,CAAI,CAE7B,CACF,CACF,EAEIw3E,GAAa,GACbC,GAAqB,CACvB,OAAQ,UAAkB,CACxB,MAAO,CACL,IAAK,CACH,QAAS,UAAmB,CAC1BzH,GAAA,EACAwH,GAAa,EACf,EACF,CAEJ,EACA,MAAO,UAAiB,CACtB,MAAO,CACL,UAAW,UAAqB,CAC9BrH,GAAQpF,GAAW,4BAA6B,EAAE,CAAC,CACrD,EACA,OAAQ,UAAkB,CACxBgG,GAAA,CACF,EACA,MAAO,SAAe9/C,EAAQ,CAC5B,IAAI0/C,EAAuB1/C,EAAO,qBAC9BumD,GACFvH,GAAA,EAEAE,GAAQpF,GAAW,4BAA6B,CAC9C,qBAAA4F,CAAA,CACD,CAAC,CAEN,EAEJ,CACF,EAEI+G,GAAuB,SAA8BC,EAAiB,CACxE,IAAIpV,EAAY,CACd,KAAM,GACN,EAAG,EACH,EAAG,EACH,MAAO,GACP,MAAO,GACP,OAAQ,GAEV,OAAOoV,EAAgB,cAAc,MAAM,GAAG,EAAE,OAAO,SAAU3nF,EAAKvJ,EAAG,CACvE,IAAImhE,EAAQnhE,EAAE,cAAc,MAAM,GAAG,EACjCmxF,EAAQhwB,EAAM,CAAC,EACfogB,EAAOpgB,EAAM,MAAM,CAAC,EAAE,KAAK,GAAG,EAClC,GAAIgwB,GAAS5P,IAAS,IACpB,OAAAh4E,EAAI,MAAQ,GACLA,EAET,GAAI4nF,GAAS5P,IAAS,IACpB,OAAAh4E,EAAI,MAAQ,GACLA,EAGT,GADAg4E,EAAO,WAAWA,CAAI,EAClB,MAAMA,CAAI,EACZ,OAAOh4E,EAET,OAAQ4nF,EAAA,CACN,IAAK,OACH5nF,EAAI,KAAOA,EAAI,KAAOg4E,EACtB,MACF,IAAK,SACHh4E,EAAI,KAAOA,EAAI,KAAOg4E,EACtB,MACF,IAAK,OACHh4E,EAAI,EAAIA,EAAI,EAAIg4E,EAChB,MACF,IAAK,QACHh4E,EAAI,EAAIA,EAAI,EAAIg4E,EAChB,MACF,IAAK,KACHh4E,EAAI,EAAIA,EAAI,EAAIg4E,EAChB,MACF,IAAK,OACHh4E,EAAI,EAAIA,EAAI,EAAIg4E,EAChB,MACF,IAAK,SACHh4E,EAAI,OAASA,EAAI,OAASg4E,EAC1B,MAEJ,OAAOh4E,CACT,EAAGuyE,CAAS,CACd,EACIsV,GAAkB,CACpB,OAAQ,UAAkB,CACxB,MAAO,CACL,MAAO,CACL,UAAW,SAAmBF,EAAiB,CAC7C,OAAOD,GAAqBC,CAAe,CAC7C,EACF,CAEJ,EACA,MAAO,UAAiB,CACtB,MAAO,CACL,oBAAqB,SAA6B3M,EAAahrE,EAAM,CACnE,IAAI23E,EAAkB33E,EAAK,aAAa,mBAAmB,EAC3D,OAAI23E,IACF3M,EAAY,UAAY0M,GAAqBC,CAAe,GAEvD3M,CACT,EAEJ,EACA,SAAU,SAAkBR,EAAW,CACrCA,EAAU,kCAAoC,SAAUxR,EAAM,CAC5D,IAAIsT,EAAOtT,EAAK,KACduJ,EAAYvJ,EAAK,UACjByJ,EAAiBzJ,EAAK,eACtB0J,EAAY1J,EAAK,UACf12B,EAAQ,CACV,UAAW,aAAa,OAAOmgC,EAAiB,EAAG,OAAO,GAExDE,EAAiB,aAAa,OAAOJ,EAAU,EAAI,GAAI,IAAI,EAAE,OAAOA,EAAU,EAAI,GAAI,IAAI,EAC1FK,EAAa,SAAS,OAAOL,EAAU,KAAO,IAAMA,EAAU,MAAQ,GAAK,GAAI,IAAI,EAAE,OAAOA,EAAU,KAAO,IAAMA,EAAU,MAAQ,GAAK,GAAI,IAAI,EAClJM,EAAc,UAAU,OAAON,EAAU,OAAQ,OAAO,EACxDhgC,EAAQ,CACV,UAAW,GAAG,OAAOogC,EAAgB,GAAG,EAAE,OAAOC,EAAY,GAAG,EAAE,OAAOC,CAAW,GAElF/jD,EAAO,CACT,UAAW,aAAa,OAAO4jD,EAAY,EAAI,GAAI,QAAQ,GAEzD4U,EAAa,CACf,MAAAh1C,EACA,MAAAC,EACA,KAAAzjB,CAAA,EAEF,MAAO,CACL,IAAK,IACL,WAAYy5C,GAAe,GAAI+e,EAAW,KAAK,EAC/C,SAAU,CAAC,CACT,IAAK,IACL,WAAY/e,GAAe,GAAI+e,EAAW,KAAK,EAC/C,SAAU,CAAC,CACT,IAAKhL,EAAK,KAAK,IACf,SAAUA,EAAK,KAAK,SACpB,WAAY/T,GAAeA,GAAe,GAAI+T,EAAK,KAAK,UAAU,EAAGgL,EAAW,IAAI,EACrF,EACF,EAEL,CACF,CACF,EAEIQ,GAAY,CACd,EAAG,EACH,EAAG,EACH,MAAO,OACP,OAAQ,MACV,EACA,SAASC,GAAU1I,EAAU,CAC3B,IAAI1pC,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAChF,OAAI0pC,EAAS,aAAeA,EAAS,WAAW,MAAQ1pC,KACtD0pC,EAAS,WAAW,KAAO,SAEtBA,CACT,CACA,SAAS2I,GAAQ3I,EAAU,CACzB,OAAIA,EAAS,MAAQ,IACZA,EAAS,SAET,CAACA,CAAQ,CAEpB,CACA,IAAI4I,GAAQ,CACV,MAAO,UAAiB,CACtB,MAAO,CACL,oBAAqB,SAA6BjN,EAAahrE,EAAM,CACnE,IAAIk4E,EAAWl4E,EAAK,aAAa,cAAc,EAC3CusE,EAAQ2L,EAAkC/P,GAAiB+P,EAAS,MAAM,GAAG,EAAE,IAAI,SAAUh0F,EAAG,CAClG,OAAOA,EAAE,MACX,CAAC,CAAC,EAFqBojF,GAAA,EAGvB,OAAKiF,EAAK,SACRA,EAAK,OAASlF,GAAA,GAEhB2D,EAAY,KAAOuB,EACnBvB,EAAY,OAAShrE,EAAK,aAAa,iBAAiB,EACjDgrE,CACT,EAEJ,EACA,SAAU,SAAkBR,EAAW,CACrCA,EAAU,qBAAuB,SAAUxR,EAAM,CAC/C,IAAI76D,EAAW66D,EAAK,SAClBkJ,EAAalJ,EAAK,WAClBsT,EAAOtT,EAAK,KACZuT,EAAOvT,EAAK,KACZmf,EAAiBnf,EAAK,OACtBuJ,EAAYvJ,EAAK,UACfof,EAAY9L,EAAK,MACnB+L,EAAW/L,EAAK,KACdgM,EAAY/L,EAAK,MACnBgM,EAAWhM,EAAK,KACdiM,EAAQhW,GAAgB,CAC1B,UAAAD,EACA,eAAgB+V,EAChB,UAAWF,CAAA,CACZ,EACGK,EAAW,CACb,IAAK,OACL,WAAYlgB,GAAeA,GAAe,GAAIuf,EAAS,EAAG,GAAI,CAC5D,KAAM,QACP,GAECY,EAA8BL,EAAS,SAAW,CACpD,SAAUA,EAAS,SAAS,IAAIN,EAAS,GACvC,GACAY,EAAiB,CACnB,IAAK,IACL,WAAYpgB,GAAe,GAAIigB,EAAM,KAAK,EAC1C,SAAU,CAACT,GAAUxf,GAAe,CAClC,IAAK8f,EAAS,IACd,WAAY9f,GAAeA,GAAe,GAAI8f,EAAS,UAAU,EAAGG,EAAM,IAAI,GAC7EE,CAA2B,CAAC,CAAC,GAE9BE,EAAiB,CACnB,IAAK,IACL,WAAYrgB,GAAe,GAAIigB,EAAM,KAAK,EAC1C,SAAU,CAACG,CAAc,GAEvB5L,EAAS,QAAQ,OAAOoL,GAAkBtW,IAAc,EACxDgX,EAAS,QAAQ,OAAOV,GAAkBtW,IAAc,EACxDiX,EAAU,CACZ,IAAK,OACL,WAAYvgB,GAAeA,GAAe,GAAIuf,EAAS,EAAG,GAAI,CAC5D,GAAI/K,EACJ,UAAW,iBACX,iBAAkB,iBACnB,EACD,SAAU,CAAC0L,EAAUG,CAAc,GAEjCG,EAAO,CACT,IAAK,OACL,SAAU,CAAC,CACT,IAAK,WACL,WAAY,CACV,GAAIF,CAAA,EAEN,SAAUb,GAAQO,CAAQ,GACzBO,CAAO,GAEZ,OAAA36E,EAAS,KAAK46E,EAAM,CAClB,IAAK,OACL,WAAYxgB,GAAe,CACzB,KAAQ,eACR,YAAa,QAAQ,OAAOsgB,EAAQ,GAAG,EACvC,KAAQ,QAAQ,OAAO9L,EAAQ,GAAG,GACjC+K,EAAS,EACb,EACM,CACL,SAAA35E,EACA,WAAA+jE,CAAA,CAEJ,CACF,CACF,EAEI8W,GAAuB,CACzB,SAAU,SAAkBxO,EAAW,CACrC,IAAIyO,EAAe,GACf9f,GAAO,aACT8f,EAAe9f,GAAO,WAAW,kCAAkC,EAAE,SAEvEqR,EAAU,oBAAsB,UAAY,CAC1C,IAAI0O,EAAY,GACZC,EAAO,CACT,KAAM,gBAEJC,EAAiB,CACnB,cAAe,MACf,YAAa,aACb,IAAK,MAIPF,EAAU,KAAK,CACb,IAAK,OACL,WAAY3gB,GAAeA,GAAe,GAAI4gB,CAAI,EAAG,GAAI,CACvD,EAAG,m4CACJ,EACF,EACD,IAAIE,EAAkB9gB,GAAeA,GAAe,GAAI6gB,CAAc,EAAG,GAAI,CAC3E,cAAe,UAChB,EACGE,EAAM,CACR,IAAK,SACL,WAAY/gB,GAAeA,GAAe,GAAI4gB,CAAI,EAAG,GAAI,CACvD,GAAI,MACJ,GAAI,MACJ,EAAG,KACJ,EACD,SAAU,EAAC,EAEb,OAAKF,GACHK,EAAI,SAAS,KAAK,CAChB,IAAK,UACL,WAAY/gB,GAAeA,GAAe,GAAI6gB,CAAc,EAAG,GAAI,CACjE,cAAe,IACf,OAAQ,qBACT,GACA,CACD,IAAK,UACL,WAAY7gB,GAAeA,GAAe,GAAI8gB,CAAe,EAAG,GAAI,CAClE,OAAQ,eACT,EACF,EAEHH,EAAU,KAAKI,CAAG,EAClBJ,EAAU,KAAK,CACb,IAAK,OACL,WAAY3gB,GAAeA,GAAe,GAAI4gB,CAAI,EAAG,GAAI,CACvD,QAAS,IACT,EAAG,uSACJ,EACD,SAAUF,EAAe,GAAK,CAAC,CAC7B,IAAK,UACL,WAAY1gB,GAAeA,GAAe,GAAI8gB,CAAe,EAAG,GAAI,CAClE,OAAQ,eACT,EACF,EACF,EACIJ,GAEHC,EAAU,KAAK,CACb,IAAK,OACL,WAAY3gB,GAAeA,GAAe,GAAI4gB,CAAI,EAAG,GAAI,CACvD,QAAS,IACT,EAAG,8IACJ,EACD,SAAU,CAAC,CACT,IAAK,UACL,WAAY5gB,GAAeA,GAAe,GAAI8gB,CAAe,EAAG,GAAI,CAClE,OAAQ,eACT,EACF,EACF,EAEI,CACL,IAAK,IACL,WAAY,CACV,MAAO,WAET,SAAUH,CAAA,CAEd,CACF,CACF,EAEIK,GAAa,CACf,MAAO,UAAiB,CACtB,MAAO,CACL,oBAAqB,SAA6BvO,EAAahrE,EAAM,CACnE,IAAIw5E,EAAax5E,EAAK,aAAa,gBAAgB,EAC/CysE,EAAS+M,IAAe,KAAO,GAAQA,IAAe,GAAK,GAAOA,EACtE,OAAAxO,EAAY,OAAYyB,EACjBzB,CACT,EAEJ,CACF,EAEIyO,GAAU,CAAC5V,GAAWyP,GAAiBK,GAAQE,GAAeC,GAAYyD,GAAgBE,GAAoBI,GAAiBI,GAAOe,GAAsBO,EAAU,EAE1K7O,GAAgB+O,GAAS,CACvB,UAAWxN,EACb,CAAC,EACcA,GAAI,OACJA,GAAI,OACHA,GAAI,QACRA,GAAI,IAChB,IAAIyN,GAAUzN,GAAI,MACSA,GAAI,mBAChBA,GAAI,OACnB,IAAIjH,GAAOiH,GAAI,KACHA,GAAI,MACLA,GAAI,KACDA,GAAI,QC5jHlB,SAASjU,GAAgB,EAAG/jE,EAAGkyB,EAAG,CAChC,OAAQlyB,EAAI0jE,GAAe1jE,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAChE,MAAOkyB,EACP,WAAY,GACZ,aAAc,GACd,SAAU,GACX,EAAI,EAAElyB,CAAC,EAAIkyB,EAAG,CACjB,CAOA,SAASmyC,GAAQ,EAAGrkE,EAAG,CACrB,IAAIkyB,EAAI,OAAO,KAAK,CAAC,EACrB,GAAI,OAAO,sBAAuB,CAChC,IAAI0jB,EAAI,OAAO,sBAAsB,CAAC,EACtC51C,IAAM41C,EAAIA,EAAE,OAAO,SAAU51C,EAAG,CAC9B,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAC/C,CAAC,GAAIkyB,EAAE,KAAK,MAAMA,EAAG0jB,CAAC,CACxB,CACA,OAAO1jB,CACT,CACA,SAASoyC,GAAe,EAAG,CACzB,QAAStkE,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CACzC,IAAIkyB,EAAY,UAAUlyB,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,GAC9CA,EAAI,EAAIqkE,GAAQ,OAAOnyC,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlyB,EAAG,CAClD+jE,GAAgB,EAAG/jE,EAAGkyB,EAAElyB,CAAC,CAAC,CAC5B,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BkyB,CAAC,CAAC,EAAImyC,GAAQ,OAAOnyC,CAAC,CAAC,EAAE,QAAQ,SAAUlyB,EAAG,CAChJ,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBkyB,EAAGlyB,CAAC,CAAC,CACnE,CAAC,CACH,CACA,OAAO,CACT,CACA,SAAS0lF,GAAyB,EAAG,EAAG,CACtC,GAAY,GAAR,KAAW,MAAO,GACtB,IAAI9vC,EACF,EACA3lD,EAAI01F,GAA8B,EAAG,CAAC,EACxC,GAAI,OAAO,sBAAuB,CAChC,IAAInzF,EAAI,OAAO,sBAAsB,CAAC,EACtC,IAAK,EAAI,EAAG,EAAIA,EAAE,OAAQ,IAAKojD,EAAIpjD,EAAE,CAAC,EAAU,EAAE,QAAQojD,CAAC,IAAlB,IAAuB,GAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAM3lD,EAAE2lD,CAAC,EAAI,EAAEA,CAAC,EACnH,CACA,OAAO3lD,CACT,CACA,SAAS01F,GAA8B3lF,EAAG5I,EAAG,CAC3C,GAAY4I,GAAR,KAAW,MAAO,GACtB,IAAIkyB,EAAI,GACR,QAAS1/B,KAAKwN,EAAG,GAAI,GAAG,eAAe,KAAKA,EAAGxN,CAAC,EAAG,CACjD,GAAW4E,EAAE,QAAQ5E,CAAC,IAAlB,GAAqB,SACzB0/B,EAAE1/B,CAAC,EAAIwN,EAAExN,CAAC,CACZ,CACA,OAAO0/B,CACT,CAIA,SAASuyC,GAAavyC,EAAGlyB,EAAG,CAC1B,GAAgB,OAAOkyB,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EACvC,IAAI96B,EAAI86B,EAAE,OAAO,WAAW,EAC5B,GAAe96B,IAAX,OAAc,CAChB,IAAInH,EAAImH,EAAE,KAAK86B,EAAGlyB,CAAc,EAChC,GAAgB,OAAO/P,GAAnB,SAAsB,OAAOA,EACjC,MAAM,IAAI,UAAU,8CAA8C,CACpE,CACA,OAAqB+P,IAAb,SAAiB,OAAS,QAAQkyB,CAAC,CAC7C,CACA,SAASwxC,GAAexxC,EAAG,CACzB,IAAIjiC,EAAIw0E,GAAavyC,EAAG,QAAQ,EAChC,OAAmB,OAAOjiC,GAAnB,SAAuBA,EAAIA,EAAI,EACxC,CACA,SAASy0E,GAAQ9uB,EAAG,CAClB,0BAEA,OAAO8uB,GAAwB,OAAO,QAArB,YAA2C,OAAO,OAAO,UAA1B,SAAqC,SAAU9uB,EAAG,CAChG,OAAO,OAAOA,CAChB,EAAI,SAAUA,EAAG,CACf,OAAOA,GAAmB,OAAO,QAArB,YAA+BA,EAAE,cAAgB,QAAUA,IAAM,OAAO,UAAY,SAAW,OAAOA,CACpH,EAAG8uB,GAAQ9uB,CAAC,CACd,CASA,SAASgwC,GAAcv2F,EAAK2B,EAAO,CACjC,OAAO,MAAM,QAAQA,CAAK,GAAKA,EAAM,OAAS,GAAK,CAAC,MAAM,QAAQA,CAAK,GAAKA,EAAQ+yE,GAAgB,GAAI10E,EAAK2B,CAAK,EAAI,EACxH,CACA,SAAS60F,GAAUnyF,EAAO,CACxB,IAAIoyF,EACA5G,GAAW4G,EAAW,CACxB,UAAWpyF,EAAM,KACjB,WAAYA,EAAM,MAElB,QAASA,EAAM,WACf,YAAaA,EAAM,OACnB,QAASA,EAAM,SACf,aAAcA,EAAM,QACpB,UAAWA,EAAM,OAAS,GAC1B,qBAAsBA,EAAM,OAAS,cAAgBA,EAAM,OAAS,OACpE,mBAAoBA,EAAM,OAAS,YAAcA,EAAM,OAAS,QAC/DqwE,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgBA,GAAgB+hB,EAAU,MAAM,OAAOpyF,EAAM,IAAI,EAAGA,EAAM,OAAS,IAAI,EAAG,aAAa,OAAOA,EAAM,QAAQ,EAAGA,EAAM,WAAa,IAAI,EAAG,eAAgBA,EAAM,QAAQ,EAAG,WAAW,OAAOA,EAAM,IAAI,EAAGA,EAAM,OAAS,IAAI,EAAG,kBAAmBA,EAAM,WAAW,EAAG,YAAaA,EAAM,MAAM,EAAG,WAAYA,EAAM,KAAK,EAAG,UAAWA,EAAM,IAAI,EAAG,UAAWA,EAAM,IAAI,EAAG,eAAgBA,EAAM,QAAQ,EAAGqwE,GAAgBA,GAAgBA,GAAgBA,GAAgB+hB,EAAU,WAAYpyF,EAAM,KAAK,EAAG,gBAAiBA,EAAM,SAAS,EAAG,kBAAmBA,EAAM,WAAW,EAAG,gBAAiBA,EAAM,SAAS,GAC9uB,OAAO,OAAO,KAAKwrF,CAAO,EAAE,IAAI,SAAU7vF,EAAK,CAC7C,OAAO6vF,EAAQ7vF,CAAG,EAAIA,EAAM,IAC9B,CAAC,EAAE,OAAO,SAAUA,EAAK,CACvB,OAAOA,CACT,CAAC,CACH,CAEA,IAAI02F,GAAiB,OAAO,WAAe,IAAc,WAAa,OAAO,OAAW,IAAc,OAAS,OAAO,OAAW,IAAc,OAAS,OAAO,KAAS,IAAc,KAAO,GAEzLC,GAAU,CAAC,QAAS,EAAC,GAExB,SAAUC,EAAQ,EAClB,SAASC,EAAQ,CAEf,IAAIC,EAAe,SAASC,EAAS/zF,EAAKsQ,EAAS,CACjD,GAAG,CAAC0jF,EAAUh0F,CAAG,GAAKi0F,EAAQj0F,CAAG,GAAKk0F,EAAUl0F,CAAG,GAAKm0F,EAAWn0F,CAAG,GAAKo0F,EAAYp0F,CAAG,EACxF,OAAOA,EAGT,IAAIssD,EACA1uD,EAAI,EACJuF,EAAI,EAER,GAAGkxF,EAASr0F,CAAG,EAEb,IADAssD,EAAS,GACLnpD,EAAEnD,EAAI,OAAQpC,EAAEuF,EAAGvF,IACrB0uD,EAAO,KAAKwnC,EAAaC,EAAS/zF,EAAIpC,CAAC,EAAG0S,CAAO,CAAC,MAGjD,CACHg8C,EAAS,GACT,QAAQtvD,KAAOgD,EACV,OAAO,UAAU,eAAe,KAAKA,EAAKhD,CAAG,IAC9CsvD,EAAOynC,EAAQ/2F,EAAKsT,CAAO,CAAC,EAAIwjF,EAAaC,EAAS/zF,EAAIhD,CAAG,EAAGsT,CAAO,EAG7E,CACA,OAAOg8C,CACT,EAIIgoC,EAAgB,SAASjmC,EAAQ/9C,EAAS,CAC5CA,EAAUA,GAAW,GACrB,IAAI5H,EAAY4H,EAAQ,WAAa,IACjC4pD,EAAQ5pD,EAAQ,OAAS,YAE7B,OAAO+9C,EAAO,MAAM6L,CAAK,EAAE,KAAKxxD,CAAS,CAC3C,EAEItJ,EAAW,SAASivD,EAAQ,CAC9B,OAAIkmC,EAAalmC,CAAM,EACdA,GAETA,EAASA,EAAO,QAAQ,gBAAiB,SAAS3W,EAAO88C,EAAK,CAC5D,OAAOA,EAAMA,EAAI,cAAgB,EACnC,CAAC,EAEMnmC,EAAO,OAAO,EAAG,CAAC,EAAE,cAAgBA,EAAO,OAAO,CAAC,EAC5D,EAEIomC,EAAY,SAASpmC,EAAQ,CAC/B,IAAIqmC,EAAYt1F,EAASivD,CAAM,EAE/B,OAAOqmC,EAAU,OAAO,EAAG,CAAC,EAAE,cAAgBA,EAAU,OAAO,CAAC,CAClE,EAEIC,EAAa,SAAStmC,EAAQ/9C,EAAS,CACzC,OAAOgkF,EAAcjmC,EAAQ/9C,CAAO,EAAE,aACxC,EAKIo1D,EAAW,OAAO,UAAU,SAE5B0uB,EAAc,SAASp0F,EAAK,CAC9B,OAAO,OAAOA,GAAS,UACzB,EACIg0F,EAAY,SAASh0F,EAAK,CAC5B,OAAOA,IAAQ,OAAOA,CAAG,CAC3B,EACIq0F,EAAW,SAASr0F,EAAK,CAC3B,OAAO0lE,EAAS,KAAK1lE,CAAG,GAAK,gBAC/B,EACIi0F,EAAU,SAASj0F,EAAK,CAC1B,OAAO0lE,EAAS,KAAK1lE,CAAG,GAAK,eAC/B,EACIk0F,EAAY,SAASl0F,EAAK,CAC5B,OAAO0lE,EAAS,KAAK1lE,CAAG,GAAK,iBAC/B,EACIm0F,EAAa,SAASn0F,EAAK,CAC7B,OAAO0lE,EAAS,KAAK1lE,CAAG,GAAK,kBAC/B,EAGIu0F,EAAe,SAASv0F,EAAK,CAC/B,OAAAA,EAAMA,EAAM,EACLA,IAAQA,CACjB,EAII40F,EAAa,SAASb,EAASzjF,EAAS,CAC1C,IAAIlE,EAAWkE,GAAW,YAAaA,EAAUA,EAAQ,QAAUA,EAEnE,OAAG,OAAOlE,GAAc,WACf2nF,EAGF,SAAS1lC,EAAQ/9C,EAAS,CAC/B,OAAOlE,EAASiiD,EAAQ0lC,EAASzjF,CAAO,CAC1C,CACF,EAEIukF,EAAQ,CACV,SAAAz1F,EACA,WAAAu1F,EACA,UAAAF,EACA,YAAaE,EACb,aAAc,SAASjtF,EAAQ4I,EAAS,CACtC,OAAOwjF,EAAac,EAAWx1F,EAAUkR,CAAO,EAAG5I,CAAM,CAC3D,EACA,eAAgB,SAASA,EAAQ4I,EAAS,CACxC,OAAOwjF,EAAac,EAAWD,EAAYrkF,CAAO,EAAG5I,EAAQ4I,CAAO,CACtE,EACA,cAAe,SAAS5I,EAAQ4I,EAAS,CACvC,OAAOwjF,EAAac,EAAWH,EAAWnkF,CAAO,EAAG5I,CAAM,CAC5D,EACA,gBAAiB,UAAY,CAC3B,OAAO,KAAK,eAAe,MAAM,KAAM,SAAS,CAClD,GAGEksF,EAAO,QACTA,EAAO,QAAUiB,EAEjBhB,EAAO,MAAQgB,CAGnB,GAAGnB,EAAc,CAClB,GAAGC,EAAO,EAEV,IAAIkB,GAAQlB,GAAQ,QAEhBmB,GAAY,CAAC,QAAS,OAAO,EAOjC,SAASC,GAAcxzF,EAAO,CAC5B,OAAOA,EAAM,MAAM,GAAG,EAAE,IAAI,SAAU6P,EAAG,CACvC,OAAOA,EAAE,MACX,CAAC,EAAE,OAAO,SAAUA,EAAG,CACrB,OAAOA,CACT,CAAC,EAAE,OAAO,SAAUk7C,EAAQ0oC,EAAM,CAChC,IAAIC,EAAMD,EAAK,QAAQ,GAAG,EACtBpmE,EAAOimE,GAAM,SAASG,EAAK,MAAM,EAAGC,CAAG,CAAC,EACxCt2F,EAAQq2F,EAAK,MAAMC,EAAM,CAAC,EAAE,OAChC,OAAA3oC,EAAO19B,CAAI,EAAIjwB,EACR2tD,CACT,EAAG,EAAE,CACP,CAOA,SAAS4oC,GAAcrI,EAAS,CAC9B,OAAOA,EAAQ,MAAM,KAAK,EAAE,OAAO,SAAUvgC,EAAQ6oC,EAAW,CAC9D,OAAA7oC,EAAO6oC,CAAS,EAAI,GACb7oC,CACT,EAAG,EAAE,CACP,CASA,SAASynC,GAAQqB,EAAiB,CAChC,IAAI/zF,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC5E6rB,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAEhF,GAAI,OAAOkoE,GAAoB,SAC7B,OAAOA,EAIT,IAAIv9E,GAAYu9E,EAAgB,UAAY,IAAI,IAAI,SAAUh8E,EAAO,CACnE,OAAO26E,GAAQ36E,CAAK,CACtB,CAAC,EAGG+Q,EAAS,OAAO,KAAKirE,EAAgB,YAAc,EAAE,EAAE,OAAO,SAAUjrE,EAAQntB,EAAK,CACvF,IAAI2B,EAAQy2F,EAAgB,WAAWp4F,CAAG,EAC1C,OAAQA,EAAA,CACN,IAAK,QACHmtB,EAAO,MAAQ+qE,GAAcv2F,CAAK,EAClC,MACF,IAAK,QACHwrB,EAAO,MAAQ4qE,GAAcp2F,CAAK,EAClC,MACF,QACEwrB,EAAO,MAAMntB,CAAG,EAAI2B,CAAA,CAExB,OAAOwrB,CACT,EAAG,CACD,MAAO,GACP,MAAO,GACP,MAAO,EAAC,CACT,EAGD+C,EAAM,MACJ,IAAImoE,EAAenoE,EAAM,MACzBooE,EAASD,IAAiB,OAAS,GAAKA,EACxCE,EAAalC,GAAyBnmE,EAAO4nE,EAAS,EACxD,OAAO/qE,GAAEqrE,EAAgB,IAAKnjB,GAAeA,GAAeA,GAAe,GAAI5wE,CAAK,EAAG,GAAI,CACzF,MAAO8oB,EAAO,MACd,MAAO8nD,GAAeA,GAAe,GAAI9nD,EAAO,KAAK,EAAGmrE,CAAM,GAC7DnrE,EAAO,KAAK,EAAGorE,CAAU,EAAG19E,CAAQ,CACzC,CAEA,IAAIwhE,GAAa,GACjB,GAAI,CACFA,GAAa,EACf,MAAY,CAAC,CACb,SAASmc,IAAO,CACd,GAAI,CAACnc,IAAc,SAAW,OAAO,QAAQ,OAAU,WAAY,CACjE,IAAIoc,GACHA,EAAW,SAAS,MAAM,MAAMA,EAAU,SAAS,CACtD,CACF,CAEA,SAASC,GAAkBhX,EAAM,CAC/B,GAAIA,GAAQrM,GAAQqM,CAAI,IAAM,UAAYA,EAAK,QAAUA,EAAK,UAAYA,EAAK,KAC7E,OAAOA,EAET,GAAIjnC,GAAM,KACR,OAAOA,GAAM,KAAKinC,CAAI,EAExB,GAAIA,IAAS,KACX,OAAO,KAET,GAAIrM,GAAQqM,CAAI,IAAM,UAAYA,EAAK,QAAUA,EAAK,SACpD,OAAOA,EAET,GAAI,MAAM,QAAQA,CAAI,GAAKA,EAAK,SAAW,EACzC,MAAO,CACL,OAAQA,EAAK,CAAC,EACd,SAAUA,EAAK,CAAC,GAGpB,GAAI,OAAOA,GAAS,SAClB,MAAO,CACL,OAAQ,MACR,SAAUA,CAAA,CAGhB,CACA,IAAIiX,GAAkBv3E,GAAgB,CACpC,KAAM,kBACN,MAAO,CACL,OAAQ,CACN,KAAM,QACN,QAAS,IAGX,WAAY,CACV,KAAM,QACN,QAAS,IAEX,KAAM,CACJ,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,GACT,UAAW,SAAmBzf,EAAO,CACnC,MAAO,CAAC,GAAM,GAAO,aAAc,WAAY,MAAM,EAAE,QAAQA,CAAK,EAAI,EAC1E,GAEF,KAAM,CACJ,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,SAAU,IAEZ,KAAM,CACJ,KAAM,CAAC,OAAQ,MAAO,MAAM,EAC5B,QAAS,MAEX,OAAQ,CACN,KAAM,OACN,QAAS,MAEX,SAAU,CACR,KAAM,QACN,QAAS,IAEX,KAAM,CACJ,KAAM,OACN,QAAS,KACT,UAAW,SAAmBA,EAAO,CACnC,MAAO,CAAC,QAAS,MAAM,EAAE,QAAQA,CAAK,EAAI,EAC5C,GAEF,MAAO,CACL,KAAM,QACN,QAAS,IAEX,SAAU,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,KACT,UAAW,SAAmBA,EAAO,CACnC,MAAO,CAAC,GAAI,IAAK,GAAG,EAAE,QAAQ,OAAO,SAASA,EAAO,EAAE,CAAC,EAAI,EAC9D,GAGF,SAAU,CACR,KAAM,QACN,QAAS,IAEX,YAAa,CACX,KAAM,QACN,QAAS,IAEX,KAAM,CACJ,KAAM,OACN,QAAS,KACT,UAAW,SAAmBA,EAAO,CACnC,MAAO,CAAC,MAAO,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAK,EAAE,QAAQA,CAAK,EAAI,EAC9H,GAEF,KAAM,CACJ,KAAM,QACN,QAAS,IAEX,UAAW,CACT,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MAEX,OAAQ,CACN,KAAM,CAAC,QAAS,MAAM,EACtB,QAAS,IAEX,MAAO,CACL,KAAM,OACN,QAAS,MAEX,QAAS,CACP,KAAM,OACN,QAAS,MAEX,QAAS,CACP,KAAM,QACN,QAAS,IAEX,OAAQ,CACN,KAAM,QACN,QAAS,IAEX,MAAO,CACL,KAAM,QACN,QAAS,IAEX,KAAM,CACJ,KAAM,QACN,QAAS,IAEX,KAAM,CACJ,KAAM,QACN,QAAS,IAEX,SAAU,CACR,KAAM,QACN,QAAS,IAEX,MAAO,CACL,KAAM,QACN,QAAS,IAEX,UAAW,CACT,KAAM,QACN,QAAS,IAEX,YAAa,CACX,KAAM,QACN,QAAS,IAGX,UAAW,CACT,KAAM,QACN,QAAS,GACX,EAEF,MAAO,SAAe0C,EAAOqxE,EAAM,CACjC,IAAIxlD,EAAQwlD,EAAK,MACbkjB,EAASpwF,EAAS,UAAY,CAChC,OAAOkwF,GAAkBr0F,EAAM,IAAI,CACrC,CAAC,EACGwrF,EAAUrnF,EAAS,UAAY,CACjC,OAAO+tF,GAAc,UAAWC,GAAUnyF,CAAK,CAAC,CAClD,CAAC,EACG46E,EAAYz2E,EAAS,UAAY,CACnC,OAAO+tF,GAAc,YAAa,OAAOlyF,EAAM,WAAc,SAAWo2C,GAAM,UAAUp2C,EAAM,SAAS,EAAIA,EAAM,SAAS,CAC5H,CAAC,EACG4kF,EAAOzgF,EAAS,UAAY,CAC9B,OAAO+tF,GAAc,OAAQmC,GAAkBr0F,EAAM,IAAI,CAAC,CAC5D,CAAC,EACGw0F,EAAerwF,EAAS,UAAY,CACtC,IAAIswF,EAAY7jB,GAAeA,GAAeA,GAAeA,GAAe,GAAI4a,EAAQ,KAAK,EAAG5Q,EAAU,KAAK,EAAGgK,EAAK,KAAK,EAAG,GAAI,CACjI,OAAQ5kF,EAAM,OACd,OAAQA,EAAM,OACf,EAGD,OAAAy0F,EAAU,MAAQz0F,EAAM,MACxBy0F,EAAU,QAAUz0F,EAAM,QACnBq9E,GAAKkX,EAAO,MAAOE,CAAS,CACrC,CAAC,EACD1lF,GAAMylF,EAAc,SAAUl3F,EAAO,CACnC,GAAI,CAACA,EACH,OAAO62F,GAAI,qCAAsCI,EAAO,MAAO3P,EAAK,KAAK,CAE7E,EAAG,CACD,UAAW,GACZ,EACD,IAAI5wE,EAAQ7P,EAAS,UAAY,CAC/B,OAAOqwF,EAAa,MAAQ9B,GAAQ8B,EAAa,MAAM,SAAS,CAAC,EAAG,GAAI3oE,CAAK,EAAI,IACnF,CAAC,EACD,OAAO,UAAY,CACjB,OAAO7X,EAAM,KACf,CACF,CACF,CAAC,sIC1hBCm0C,GAA6DusC,EAAAJ,EAAA,GAA3C,KAAMl0C,EAAA,KAAO,KAAMA,EAAA,mCAAeA,EAAA,KAAK,QC6QxD,IAACu0C,GAAW,CACb,OAAQ,MACR,SAAU,SACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,wNAAwN,CACvP,EAsBIC,GAAa,CACf,OAAQ,MACR,SAAU,WACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,KAAM,KAAK,EAAG,OAAQ,8QAA8Q,CAChU,EAkGIC,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,KAAK,EAAG,OAAQ,mXAAmX,CAC/Z,EAwCIC,GAAgB,CAClB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,MAAO,KAAK,EAAG,KAAM,4NAA4N,CAC5Q,EAmNIC,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,YAAa,YAAa,wBAAwB,EAAG,OAAQ,gXAAgX,CACjc,EA4cIC,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,qRAAqR,CACpT,EAoEIC,GAAe,CACjB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,aAAa,EAAG,OAAQ,+NAA+N,CAClR,EACIC,GAAeD,GAoPfE,GAAgB,CAClB,OAAQ,MACR,SAAU,gBACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAM,EAAG,OAAQ,ogBAAogB,CACziB,EACIC,GAASD,GAkCTE,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,YAAY,EAAG,OAAQ,0LAA0L,CAC7O,EA4pBIC,GAAY,CACd,OAAQ,MACR,SAAU,UACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,KAAK,EAAG,OAAQ,kMAAkM,CAC9O,EA+DIC,GAAe,CACjB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,WAAW,EAAG,OAAQ,uqBAAuqB,CACjtB,EACIC,GAAcD,GA2DdE,GAAW,CACb,OAAQ,MACR,SAAU,SACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAM,EAAG,OAAQ,sOAAsO,CAC3Q,EAuMIC,GAAiB,CACnB,OAAQ,MACR,SAAU,gBACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAK,EAAG,OAAQ,mSAAmS,CACvU,EAsRIC,GAAW,CACb,OAAQ,MACR,SAAU,SACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,MAAO,YAAY,EAAG,OAAQ,8gBAA8gB,CACtkB,EAsKIC,GAAe,CACjB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,IAAI,EAAG,OAAQ,2KAA2K,CAC9M,EA4NIC,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,IAAI,EAAG,OAAQ,4QAA4Q,CAC/S,EAsEIC,GAAsB,CACxB,OAAQ,MACR,SAAU,qBACV,KAAM,CAAC,IAAK,IAAK,CAAC,oBAAoB,EAAG,OAAQ,gOAAgO,CACnR,EACIC,GAAsBD,GA8GtBE,GAAc,CAChB,OAAQ,MACR,SAAU,aACV,KAAM,CAAC,IAAK,IAAK,CAAC,YAAY,EAAG,OAAQ,sWAAsW,CACjZ,EA6CIC,GAAgB,CAClB,OAAQ,MACR,SAAU,gBACV,KAAM,CAAC,IAAK,IAAK,CAAC,UAAU,EAAG,OAAQ,0QAA0Q,CACnT,EAaIC,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,KAAK,EAAG,OAAQ,0wBAA0wB,CACpzB,EA+bIC,GAAW,CACb,OAAQ,MACR,SAAU,SACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,6SAA6S,CAC5U,EAiFIC,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,KAAK,EAAG,OAAQ,2MAA2M,CACtP,EAsUIC,GAAW,CACb,OAAQ,MACR,SAAU,SACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,8YAA8Y,CAC7a,EA0KIC,GAAe,CACjB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,IAAI,EAAG,OAAQ,+NAA+N,CAClQ,EA8JIC,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,MAAO,MAAO,MAAO,IAAK,QAAS,WAAY,SAAU,OAAO,EAAG,OAAQ,yRAAyR,CAChY,EAIIC,GAAUD,GAkCVE,GAAc,CAChB,OAAQ,MACR,SAAU,aACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,OAAQ,MAAO,WAAY,WAAW,EAAG,OAAQ,iZAAiZ,CAC9d,EAwOIC,GAAgB,CAClB,OAAQ,MACR,SAAU,eACV,KAAM,CAAC,IAAK,IAAK,CAAC,WAAY,gBAAgB,EAAG,OAAQ,yYAAyY,CACpc,EAwJIC,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,CAAC,cAAc,EAAG,OAAQ,4mBAA4mB,CACzpB,EA6EIC,GAAoB,CACtB,OAAQ,MACR,SAAU,oBACV,KAAM,CAAC,IAAK,IAAK,CAAC,SAAS,EAAG,OAAQ,kgBAAkgB,CAC1iB,EAoBIC,GAAc,CAChB,OAAQ,MACR,SAAU,aACV,KAAM,CAAC,IAAK,IAAK,CAAC,IAAI,EAAG,OAAQ,0KAA0K,CAC7M,EAkIIC,GAAuB,CACzB,OAAQ,MACR,SAAU,wBACV,KAAM,CAAC,IAAK,IAAK,CAAC,mBAAoB,sBAAsB,EAAG,OAAQ,mkBAAmkB,CAC5oB,EAqDIC,GAAgB,CAClB,OAAQ,MACR,SAAU,eACV,KAAM,CAAC,IAAK,IAAK,CAAC,IAAI,EAAG,OAAQ,uKAAuK,CAC1M,EAMIC,GAAgB,CAClB,OAAQ,MACR,SAAU,iBACV,KAAM,CAAC,IAAK,IAAK,CAAC,mBAAoB,mBAAmB,EAAG,OAAQ,0oBAA0oB,CAChtB,EAmBIC,GAAc,CAChB,OAAQ,MACR,SAAU,aACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,KAAK,EAAG,OAAQ,6fAA6f,CACziB,EAkBIC,GAAgB,CAClB,OAAQ,MACR,SAAU,iBACV,KAAM,CAAC,IAAK,IAAK,CAAC,kBAAmB,qBAAqB,EAAG,OAAQ,iqBAAiqB,CACxuB,EAmEIC,GAAwB,CAC1B,OAAQ,MACR,SAAU,uBACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,uBAAwB,SAAS,EAAG,OAAQ,qVAAqV,CAC3Z,EACIC,GAAwBD,GACxBE,GAAYF,GAgDZG,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAM,EAAG,OAAQ,gOAAgO,CACrQ,EA6HIC,GAAa,CACf,OAAQ,MACR,SAAU,WACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,0aAA0a,CACzc,EAkSIC,GAAgB,CAClB,OAAQ,MACR,SAAU,iBACV,KAAM,CAAC,IAAK,IAAK,CAAC,oBAAqB,uBAAuB,EAAG,OAAQ,woBAAwoB,CACntB,EA0NIC,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,CAAC,MAAO,MAAO,KAAK,EAAG,KAAM,0MAA0M,CAC1P,EA8DIC,GAAqB,CACvB,OAAQ,MACR,SAAU,qBACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,qBAAsB,uBAAwB,MAAM,EAAG,OAAQ,4YAA4Y,CACre,EACIC,GAAqBD,GAcrBE,GAAuB,CACzB,OAAQ,MACR,SAAU,wBACV,KAAM,CAAC,IAAK,IAAK,CAAC,kBAAmB,kBAAkB,EAAG,OAAQ,okBAAokB,CACxoB,EAkDIC,GAAY,CACd,OAAQ,MACR,SAAU,UACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,KAAM,IAAI,EAAG,OAAQ,m3BAAm3B,CACl6B,EAoHIC,GAAoB,CACtB,OAAQ,MACR,SAAU,oBACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,oBAAqB,oBAAqB,wBAAyB,MAAM,EAAG,OAAQ,6WAA6W,CAC3d,EAIIC,GAASD,GA4LTE,GAA2B,CAC7B,OAAQ,MACR,SAAU,6BACV,KAAM,CAAC,IAAK,IAAK,CAAC,eAAe,EAAG,OAAQ,0bAA0b,CACxe,EACIC,GAAiBD,GA8jBjBE,GAAiB,CACnB,OAAQ,MACR,SAAU,gBACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,UAAW,MAAM,EAAG,OAAQ,qrBAAqrB,CAC7uB,EACIC,GAAYD,GA0DZE,GAAW,CACb,OAAQ,MACR,SAAU,UACV,KAAM,CAAC,IAAK,IAAK,CAAC,WAAW,EAAG,OAAQ,sZAAsZ,CAChc,EAYIC,GAAgB,CAClB,OAAQ,MACR,SAAU,iBACV,KAAM,CAAC,IAAK,IAAK,CAAC,iBAAkB,iBAAiB,EAAG,OAAQ,ysBAAysB,CAC3wB,EA2IIC,GAAe,CACjB,OAAQ,MACR,SAAU,cACV,KAAM,CAAC,IAAK,IAAK,CAAC,aAAa,EAAG,OAAQ,0QAA0Q,CACtT,EACIC,GAAeD,gUC/wOnB,MAAMt4F,EAAQogD,EACR3G,EAASuG,GAAA,EAEf,SAASw4C,GAAkB,CACzB,OAAQx4F,EAAM,aAAa,UACzB,IAAK,YACHy5C,EAAO,KAAKi2B,GAAW,cAAc,mBAAmB,IAAI,EAC5D,MACF,IAAK,sBACHj2B,EAAO,KAAKi2B,GAAW,WAAW,IAAI,EACtC,MACF,IAAK,eACHj2B,EAAO,KAAKi2B,GAAW,YAAY,EACnC,MACF,IAAK,kBACHj2B,EAAO,KAAKi2B,GAAW,WAAW,IAAI,EACtC,MACF,IAAK,kBACH,GAAI1vE,EAAM,aAAa,YAAY,QAAUA,EAAM,aAAa,WAAW,CAAC,EAAE,OAAO,SAAS,EAAI,EAAG,CACnG,MAAMkvE,EAAYlvE,EAAM,aAAa,WAAW,CAAC,EAAE,UAAU,CAAC,EAC9Dy5C,EAAO,KAAK,CAAE,KAAMi2B,GAAW,SAAS,cAAc,KAAKR,CAAS,EAAG,CACzE,MACEz1B,EAAO,KAAKi2B,GAAW,cAAc,IAAI,EAE3C,MACF,IAAK,iBACHj2B,EAAO,KAAKi2B,GAAW,cAAc,IAAI,EACzC,MACF,IAAK,mBACHj2B,EAAO,KAAKi2B,GAAW,cAAc,eAAe,IAAI,EACxD,KACF,CAEJ,CAEA,MAAM2N,EAAOl5E,EAAS,IAAM,CAC1B,OAAQnE,EAAM,aAAa,UACzB,IAAK,YACL,IAAK,kBACL,IAAK,sBACH,OAAOw1F,GACT,IAAK,eACH,OAAOY,GACT,IAAK,kBACL,IAAK,iBACH,OAAOxB,GACT,IAAK,uBACH,OAAOE,GACT,QACE,OAAO,KAEb,CAAC,EAEK2D,EAAUt0F,EAAS,IAAM,CAC7B,GAAInE,EAAM,aAAa,WAAa2uE,GAAS,MAC3C,OAAO6nB,GACT,GAAWx2F,EAAM,aAAa,WAAa,mBACzC,OAAQA,EAAM,aAAa,YACzB,IAAK,yBACH,OAAO21F,GACT,IAAK,yBACH,OAAO8B,GACT,IAAK,yBACH,OAAOzC,EAAA,CAGb,OAAO,IACT,CAAC,gBAIC30C,EAAA,EAAAC,EAsBM,MAtBNC,GAsBM,CArBJC,EAoBM,OApBD,MAAM,SAAU,QAAOg4C,CAAA,GAC1Bh4C,EAkBM,MAlBNC,GAkBM,CAjBJD,EAIM,MAJNG,GAIM,CAHU08B,EAAA,WAAdl1B,GAA8HuwC,GAAA,OAA1G,MAAK72C,GAAA,CAAC,OAAM,QAAmB7hD,EAAM,aAAa,WAAa00F,EAAA/lB,EAAA,EAAS,MAAK,GAAK,KAAM0O,EAAA,MAAM,KAAK,iCACvHh9B,IAAAC,EAA8D,IAA9DQ,EAA8D,GAChD23C,EAAA,WAAdtwC,GAA6HuwC,GAAA,OAAtG,MAAK72C,GAAA,CAAC,gBAAe,QAAmBzB,EAAA,aAAa,WAAas0C,EAAA/lB,EAAA,EAAS,MAAK,GAAK,KAAM8pB,EAAA,4CAEpHj4C,EAQM,MARNW,GAQM,CAPJX,EAMM,MANNm4C,GAMM,CALJn4C,EAIM,MAJNo4C,GAIM,CAHJp4C,EAEI,IAFJq4C,GAEIh4C,GADCT,EAAA,aAAa,WAAW,WAKnCI,EAEM,MAFNs4C,GAEM,CADJr+D,GAA4Ds+D,GAAA,CAA/C,WAAU34C,EAAA,aAAa,+NC1F9C,MAAM44C,EAAYzsF,GAAyC,CAAE,KAAM,GAAI,WAAY,EAAG,gBAIpF8zC,EAAA,EAAAC,EAgBM,MAhBNC,GAgBM,CAfJ9lB,GAcWw+D,GAAA,CAdD,UAAQ,2BAAyBD,EAAA,2CAAAA,EAAS,MAAA93C,GAAG,uBAAsB,EAAI,aAAc,GAAK,kBAAiB,KACxG,QACT,IAGM,CAHNV,EAGM,MAHNC,GAGM,CAFJC,EAAA,KAAAA,EAAA,GAAAF,EAAuB,UAAnB,iBAAc,MAClBH,EAAA,IAAAC,EAAmFS,GAAA,KAAAC,GAAtDg4C,EAAA,MAAU,KAAlB55F,QAArB+oD,GAAmF+wC,GAAA,CAArC,aAAc95F,EAAO,IAAKA,EAAK,yCAGtE,UACV,IAIM,CAJM45F,EAAA,MAAU,WAAU,IAA/B34C,IAAAC,EAIM,MAJNK,GAIM,CAHJH,EAEM,MAFNM,GAEM,CADJrmB,GAAqHi6D,EAAAh6C,EAAA,GAAxG,GAAIg6C,EAAAhlB,EAAA,EAAW,OAAQ,MAAM,4DAA+C,IAAe,IAAAhvB,EAAA,KAAAA,EAAA,OAAf,kBAAe,4LCxBpH,MAAM1gD,EAAQogD,eAMKpgD,EAAM,UAIrBioD,GAAQC,EAAA,0BAHRD,GAA2BC,EAAA,iCCOxB,SAASixC,GAASC,EAAsBC,EAAqC,CAClF,GAAID,EAAQ,eAAiBC,GAAe,uBAC1C,MAAO,eAEX,CAEO,IAAKC,QACVA,EAAA,MAAQ,QACRA,EAAA,YAAc,cACdA,EAAA,gCAAkC,kCAClCA,EAAA,uBAAyB,yBACzBA,EAAA,yBAA2B,2BAC3BA,EAAA,qCAAuC,uCACvCA,EAAA,kCAAoC,oCACpCA,EAAA,mCAAqC,qCACrCA,EAAA,8BAAgC,gCATtBA,QAAA,ICrBAC,QACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SAHCA,QAAA,ICEZ,MAAMC,GAAiBtrB,GAAO,SAAS,GAAI,EACrCurB,GAAiBvrB,GAAO,SAAS,GAAK,GAAI,EAC1CwrB,GAAexrB,GAAO,SAAS,KAAU,GAAI,EAC7CyrB,GAAczrB,GAAO,SAAS,KAAU,GAAK,GAAI,EAOhD,SAAS0rB,GAAct8F,EAA+B,CAC3D,MAAM2lE,EAAO,CAAE,MAAO,IAAK,KAAM,MACjC,GAAI3lE,EAAO,CACT,MAAMwhC,EAAWovC,GAAO,SAAS5wE,CAAK,EAClCwhC,GAAY66D,GACd12B,EAAK,MAAQ42B,GAAgB/6D,EAAS,MAAM,EAAI,MAAQ+6D,GAAgB/6D,EAAS,OAAO,EAAI,OACnFA,GAAY46D,IACrBz2B,EAAK,MAAQ42B,GAAgB/6D,EAAS,QAAS,EAAI,EAAI,IAAM+6D,GAAgB/6D,EAAS,UAAW,EAAI,EACrGmkC,EAAK,KAAO,MACHnkC,GAAY26D,IACrBx2B,EAAK,MAAQ42B,GAAgB/6D,EAAS,SAAS,EAAI,IAAM+6D,GAAgB/6D,EAAS,SAAS,EAC3FmkC,EAAK,KAAO,OACHnkC,GAAY06D,IACrBv2B,EAAK,MAAQ42B,GAAgB/6D,EAAS,SAAS,EAC/CmkC,EAAK,KAAO,QAEZA,EAAK,MAAQ42B,GAAgB/6D,EAAS,gBAAgB,EACtDmkC,EAAK,KAAO,KAEhB,CAEA,OAAOA,CACT,CAEO,SAAS62B,GAAuBx8F,EAAe,CACpD,MAAMy8F,MAAY,KAClBA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EACzB,MAAMrjD,EAAO,IAAI,KAAKp5C,EAAM,QAAQ,IAAK,EAAE,CAAC,EAAE,UAAYy8F,EAAM,UAChE,OAAO,KAAK,MAAMrjD,EAAO,IAAO,GAAK,GAAK,EAAE,CAC9C,CAEO,SAASsjD,GAAqBC,EAAaC,EAAkB,CAClE,MAAMC,EAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAE9C,GAAI,MAAMF,CAAG,EACX,MAAO,GAGT,GAAIA,EAAM,IACR,OAAOjuB,GAAMiuB,EAAKC,CAAQ,EAAE,iBAG9B,MAAME,EAAM,KAAK,MAAM,KAAK,IAAIH,CAAG,EAAI,KAAK,IAAI,GAAI,CAAC,EAErD,MAAO,GAAGjuB,GAAMiuB,EAAM,KAAK,IAAI,IAAMG,CAAG,EAAGF,CAAQ,EAAE,gBAAgB,GAAGC,EAASC,EAAM,CAAC,CAAC,EAC3F,CAEA,SAASpuB,GAAMiuB,EAAaC,EAAkB,CAC5C,OAAO,OAAOD,EAAI,QAAQC,CAAQ,CAAC,CACrC,CAEA,SAASL,GAAgBQ,EAAmBC,EAAmB,GAAO,CACpE,MAAMC,EAAW,KAAK,MAAMF,CAAS,EACrC,MAAO,GAAGC,GAAoB,IAAMC,GAAU,MAAM,EAAE,EAAIA,EAAS,gBAAgB,EACrF,CC3DO,MAAMC,GAAkB90C,GAAY,eAAgB,IAAM,CAC/D,MAAM+0C,EAAsBp0C,GAAA,EAEtB+yC,EAAUhwF,GAAsB,CACpC,QAAS,GACT,gBAAiB,GACjB,8BAA+B,GAC/B,aAAc,GACd,cAAe,GACf,cAAe,GACf,cAAe,GACf,OAAQ,GACR,eAAgBkwF,GAAc,YAC9B,sBAAuB,GACxB,EAEKoB,EAAgBtxF,GAAS,CAC7B,sBAAuB,GACvB,2BAA4B,GAC5B,eAAgB,GAChB,kBAAmB,GACnB,uBAAwB,GACxB,wBAAyB,GACzB,uCAAwC,GACxC,oCAAqC,GACrC,qCAAsC,GACtC,UAAW,GACX,gBAAiB,GACjB,qBAAsB,GACtB,cAAe,GACf,aAAcmwF,GAAoB,KAClC,oBAAqB,GACtB,EAEKoB,EAAUpuF,GAAI,EAAK,EAGnBquF,EAAiBz2F,EAAS,IACvB,GAAGi1F,EAAQ,YAAY,GAAGA,EAAQ,QAAU,KAAKA,EAAQ,OAAO,GAAK,EAAE,EAC/E,EAEKyB,EAAwB12F,EAAS,IAC9Bi1F,EAAQ,eAAiB,8EACjC,EAEK0B,EAA0B32F,EAAS,IAChCi1F,EAAQ,gBAAkB,IAAI,KAAKA,EAAQ,gBAAgB,QAAQ,IAAK,EAAE,CAAC,EAAE,qBAAuB,EAC5G,EAEK2B,EAAuC52F,EAAS,IAC7Ci1F,EAAQ,8BAAgC,IAAI,KAAKA,EAAQ,8BAA8B,QAAQ,IAAK,EAAE,CAAC,EAAE,qBAAuB,EACxI,EAED,eAAezyC,GAAU,CACvBg0C,EAAQ,MAAQ,GAChB,GAAI,CACF,MAAMK,EAAM,MAAMC,EAAA,EAClB,GAAID,IAAQ,KACV,OAEF5B,EAAQ,aAAe4B,EAAI,aAC3B5B,EAAQ,gBAAkB4B,EAAI,gBAC9B5B,EAAQ,cAAgB4B,EAAI,cAC5B5B,EAAQ,QAAU4B,EAAI,QACtB5B,EAAQ,eAAiB4B,EAAI,eAC7B5B,EAAQ,cAAgB4B,EAAI,cAC5B5B,EAAQ,cAAgB4B,EAAI,cAC5B5B,EAAQ,OAAS4B,EAAI,OACrB5B,EAAQ,sBAAwB4B,EAAI,uBAAyB,0DAC7D5B,EAAQ,8BAAgC4B,EAAI,8BAE5CN,EAAc,sBAAwBQ,EAAA,EACtCR,EAAc,2BAA6BS,EAAA,EAC3CT,EAAc,eAAiBtB,EAAQ,cACvCsB,EAAc,kBAAoBtB,EAAQ,iBAAmBE,GAAc,gCAC3EoB,EAAc,wBAA0BtB,EAAQ,iBAAmBE,GAAc,uBACjFoB,EAAc,uBAAyBtB,EAAQ,iBAAmBE,GAAc,yBAChFoB,EAAc,uCAAyCtB,EAAQ,iBAAmBE,GAAc,qCAChGoB,EAAc,oCAAsCtB,EAAQ,iBAAmBE,GAAc,kCAC7FoB,EAAc,qCAAuCtB,EAAQ,iBAAmBE,GAAc,mCAC9FoB,EAAc,gBAAkBU,EAAA,EAChCV,EAAc,qBAAuBW,EAAA,EACrCX,EAAc,cAAgBY,EAAA,EAC9BZ,EAAc,aAAea,EAAA,EAC7Bb,EAAc,UAAYA,EAAc,mBAAqBA,EAAc,wBAA0BA,EAAc,uCACnHA,EAAc,oBAAsBtB,EAAQ,qBAC9C,SACEuB,EAAQ,MAAQ,EAClB,CACF,CAEA,eAAeM,GAAa,CAC1B,GAAI,CACF,KAAM,EAAGt2E,CAAI,EAAI,MAAM81E,EAAoB,6BAA0C,8CAA8C,EACnI,OAAO91E,CACT,OAAS9gB,EAAK,CACZ,eAAQ,MAAM,qCAAsCA,CAAG,EAChD,IACT,CACF,CAEA,SAAS03F,GAAyB,CAChC,OAAQnC,EAAQ,gBACd,KAAKE,GAAc,yBACnB,KAAKA,GAAc,gCACnB,KAAKA,GAAc,qCACjB,OAAOC,GAAoB,OAC7B,KAAKD,GAAc,mCACnB,KAAKA,GAAc,uBACnB,KAAKA,GAAc,kCACnB,KAAKA,GAAc,8BACjB,OAAOC,GAAoB,QAC7B,QACE,OAAOA,GAAoB,KAEjC,CAEA,SAAS4B,GAA6B,CACpC,OAAO/B,EAAQ,gCAAkC,QAAaA,EAAQ,gCAAkC,EAC1G,CAEA,SAAS8B,GAAwB,CAC/B,OAAO9B,EAAQ,kBAAoB,QAAaA,EAAQ,kBAAoB,IAAM,CAACA,EAAQ,aAC7F,CAEA,SAASiC,GAA0B,CACjC,GAAIjC,EAAQ,iBAAmBE,GAAc,gCAAiC,MAAO,aAErF,MAAMkC,EAAapC,EAAQ,iBAAmBE,GAAc,8BAC5D,OAAOmC,EAAgBD,EAAYpC,EAAQ,eAAe,CAC5D,CAEA,SAASkC,GAAmB,CAC1B,GAAIlC,EAAQ,iBAAmBE,GAAc,yBAA0B,MAAO,aAE9E,MAAMkC,EAAapC,EAAQ,iBAAmBE,GAAc,uBAC5D,OAAOmC,EAAgBD,EAAYpC,EAAQ,eAAe,CAC5D,CAEA,SAASqC,EAAgBD,EAAqBE,EAAwB,CACpE,MAAMC,EAAa7B,GAAuB4B,CAAc,EACxD,OAAI,MAAMC,CAAU,EAAU,GACzBH,EACDG,IAAe,EAAU,oBACzBA,IAAe,EAAU,uBACtB,kBAAkBA,CAAU,QAHX,MAAMA,CAAU,YAI1C,CAEA,SAASP,GAAqB,CAC5B,GAAIhC,EAAQ,iBAAmBE,GAAc,qCAAsC,MAAO,aAE1F,MAAMqC,EAAa7B,GAAuBV,EAAQ,6BAA6B,EAE/E,OAAI,MAAMuC,CAAU,EAAU,GAC1BA,GAAc,EAAU,aACxBA,IAAe,EAAU,oBACzBA,IAAe,EAAU,gBACtB,MAAQA,EAAa,YAC9B,CAEA,MAAO,CACL,QAAAh1C,EACA,QAAAyyC,EACA,cAAAsB,EACA,QAAAC,EACA,eAAAC,EACA,sBAAAC,EACA,wBAAAC,EACA,qCAAAC,CAAA,CAEJ,CAAC,gSC3KD,MAAMa,EAAepB,GAAA,EACf,CAAE,cAAAE,EAAe,QAAAtB,CAAA,EAAYwC,+DAIjBlH,EAAAgG,CAAA,EAAc,mBAC5Br6C,IAAAC,EAMM,MANNC,GAMM,CALJG,EAAA,KAAAA,EAAA,GAAAF,EAAiC,UAA7B,2BAAwB,KAC5BE,EAAA,KAAAA,EAAA,GAAAF,EAAmF,SAAhF,+EAA4E,KAC/EA,EAEM,MAFNC,GAEM,CADJhmB,GAA6HohE,EAAA,CAAjH,MAAM,8BAA+B,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,kBAAM,IAAoB,IAAAhvB,EAAA,KAAAA,EAAA,OAApB,uBAAoB,qCAItGg0C,EAAAgG,CAAA,EAAc,wBAC5Br6C,IAAAC,EAOM,MAPNK,GAOM,CANJD,EAAA,KAAAA,EAAA,GAAAF,EAAwB,UAApB,kBAAe,KACnBE,EAAA,KAAAA,EAAA,GAAAF,EAAoF,SAAjF,gFAA6E,KAChFA,EAGM,MAHNM,GAGM,CAFJN,EAAsJ,KAAnJ,MAAM,8BAA+B,KAAMk0C,EAAA0E,CAAA,EAAQ,sBAAuB,OAAO,0BAAS,uBAAoB,KAAA3+D,GAAiCi+D,GAAA,CAAxB,KAAMhE,EAAAuD,EAAA,GAAc,wBAC9Ix9D,GAA+HohE,EAAA,CAAnH,MAAM,gCAAiC,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,kBAAM,IAAoB,IAAAhvB,EAAA,KAAAA,EAAA,OAApB,uBAAoB,qCAIxGg0C,EAAAgG,CAAA,EAAc,wCAC5Br6C,IAAAC,EAMM,MANNq4C,GAMM,CALJj4C,EAAA,KAAAA,EAAA,GAAAF,EAAiC,UAA7B,2BAAwB,KAC5BE,EAAA,KAAAA,EAAA,GAAAF,EAAiH,SAA9G,6GAA0G,KAC7GA,EAEM,MAFNo4C,GAEM,CADJn+D,GAA6HohE,EAAA,CAAjH,MAAM,8BAA+B,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,kBAAM,IAAoB,IAAAhvB,EAAA,KAAAA,EAAA,OAApB,uBAAoB,yFC9BxH,MAAMk7C,EAAepB,GAAA,EACf,CAAE,cAAAE,GAAkBkB,oBAIxBzzC,GAKoB2zC,GAAA,CALA,UAAS,CAAGpH,EAAAgG,CAAA,EAAc,YACjC,eACT,IAAkB,CAAlBjgE,GAAkBshE,EAAA,eAEpB,IAAQ,CAAR9zC,GAAQC,EAAA,8CCkDL,IAAK8zC,QACVA,EAAA,WAAa,aACbA,EAAA,SAAW,WACXA,EAAA,YAAc,cACdA,EAAA,SAAW,WAJDA,QAAA,ICmBZ,SAASC,GAAkBr+F,EAAIyE,EAAc,CAC5C,OAAIF,GAAe,GAClBC,GAAexE,EAAIyE,CAAY,EACxB,IAED,EACR,CAyJA,MAAM65F,GAAW,OAAO,OAAW,KAAe,OAAO,SAAa,IACrD,OAAO,kBAAsB,KAAe,sBAAsB,kBAMnF,MAAM73B,GAAW,OAAO,UAAU,SAC5BlnE,GAAYvB,GAAQyoE,GAAS,KAAKzoE,CAAG,IAAM,kBAI3C4tC,GAAO,IAAM,CAAC,EA6BpB,SAAS2yD,GAAoB/8E,EAAQxhB,EAAI,CACxC,SAASqgC,KAAWj3B,EAAM,CACzB,OAAO,IAAI,QAAQ,CAAC2b,EAAS+tB,IAAW,CACvC,QAAQ,QAAQtxB,EAAO,IAAMxhB,EAAG,MAAM,KAAMoJ,CAAI,EAAG,CAClD,GAAApJ,EACA,QAAS,KACT,KAAAoJ,CACJ,CAAI,CAAC,EAAE,KAAK2b,CAAO,EAAE,MAAM+tB,CAAM,CAC/B,CAAC,CACF,CACA,OAAOzS,CACR,CAOA,SAASm+D,GAAexoC,EAAI3kD,EAAU,GAAI,CACzC,IAAIotF,EACAC,EACAC,EAAe/yD,GACnB,MAAMgzD,EAAiBC,GAAY,CAClC,aAAaA,CAAO,EACpBF,EAAY,EACZA,EAAe/yD,EAChB,EACA,IAAIkzD,EA2BJ,OA1BgBC,GAAa,CAC5B,MAAM79D,EAAW/xB,GAAQ6mD,CAAE,EACrBgpC,EAAc7vF,GAAQkC,EAAQ,OAAO,EAE3C,OADIotF,GAAOG,EAAcH,CAAK,EAC1Bv9D,GAAY,GAAK89D,IAAgB,QAAUA,GAAe,GACzDN,IACHE,EAAcF,CAAQ,EACtBA,EAAW,QAEL,QAAQ,QAAQK,GAAU,GAE3B,IAAI,QAAQ,CAACh6E,EAAS+tB,IAAW,CACvC6rD,EAAettF,EAAQ,eAAiByhC,EAAS/tB,EACjD+5E,EAAcC,EACVC,GAAe,CAACN,IAAUA,EAAW,WAAW,IAAM,CACrDD,GAAOG,EAAcH,CAAK,EAC9BC,EAAW,OACX35E,EAAQ+5E,EAAW,CAAE,CACtB,EAAGE,CAAW,GACdP,EAAQ,WAAW,IAAM,CACpBC,GAAUE,EAAcF,CAAQ,EACpCA,EAAW,OACX35E,EAAQg6E,EAAQ,CAAE,CACnB,EAAG79D,CAAQ,CACZ,CAAC,CACF,CAED,CA2JA,SAASmnC,GAAQ3oE,EAAO,CACvB,OAAO,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAACA,CAAK,CAC7C,CAsRA,SAASu/F,GAAcj/F,EAAIg2D,EAAK,IAAK3kD,EAAU,GAAI,CAClD,OAAOktF,GAAoBC,GAAexoC,EAAI3kD,CAAO,EAAGrR,CAAE,CAC3D,CAouBA,SAASk/F,GAAWr4D,EAAe,EAAGx1B,EAAU,GAAI,CACnD,IAAI8tF,EAAgBlwF,EAAM43B,CAAY,EACtC,MAAMu4D,EAAQvwF,GAAWg4B,CAAY,EAC/B,CAAE,IAAApkB,EAAM,OAAO,kBAAmB,IAAAi+C,EAAM,OAAO,iBAAiB,EAAKrvD,EACrEguF,EAAM,CAAClvD,EAAQ,IAAMivD,EAAM,MAAQ,KAAK,IAAI,KAAK,IAAI38E,EAAK28E,EAAM,MAAQjvD,CAAK,EAAGuwB,CAAG,EACnF4+B,EAAM,CAACnvD,EAAQ,IAAMivD,EAAM,MAAQ,KAAK,IAAI,KAAK,IAAI1+B,EAAK0+B,EAAM,MAAQjvD,CAAK,EAAG1tB,CAAG,EACnFspD,EAAQ,IAAMqzB,EAAM,MACpB1rC,EAAS11D,GAAQohG,EAAM,MAAQ,KAAK,IAAI1+B,EAAK,KAAK,IAAIj+C,EAAKzkB,CAAG,CAAC,EAC/DwlB,EAAQ,CAACxlB,EAAMmhG,KACpBA,EAAgBnhG,EACT01D,EAAM11D,CAAG,GAEjB,MAAO,CACN,MAAOiQ,GAAgBmxF,CAAK,EAC5B,IAAAC,EACA,IAAAC,EACA,IAAKvzB,EACL,IAAKrY,EACL,MAAAlwC,CACF,CACA,CA8LA,SAAS+7E,GAAanuF,EAAIw/D,EAAUv/D,EAAU,GAAI,CACjD,KAAM,CAAE,UAAAC,EAAY,GAAM,kBAAAkuF,EAAoB,EAAK,EAAKnuF,EAClDouF,EAAY5wF,GAAW,EAAK,EAClC,IAAI4vF,EACJ,SAASiB,GAAQ,CACZjB,IACH,aAAaA,CAAK,EAClBA,EAAQ,OAEV,CACA,SAASkB,GAAO,CACfF,EAAU,MAAQ,GAClBC,EAAK,CACN,CACA,SAASjrF,KAASrL,EAAM,CACnBo2F,GAAmBpuF,EAAE,EACzBsuF,EAAK,EACLD,EAAU,MAAQ,GAClBhB,EAAQ,WAAW,IAAM,CACxBgB,EAAU,MAAQ,GAClBhB,EAAQ,OACRrtF,EAAG,GAAGhI,CAAI,CACX,EAAG+F,GAAQyhE,CAAQ,CAAC,CACrB,CACA,OAAIt/D,IACHmuF,EAAU,MAAQ,GACdnB,IAAU7pF,EAAK,GAEpB4pF,GAAkBsB,CAAI,EACf,CACN,UAAW1xF,GAAgBwxF,CAAS,EACpC,MAAAhrF,EACA,KAAAkrF,CACF,CACA,CAkNA,SAASC,GAAexwF,EAAQgC,EAAIC,EAAS,CAC5C,OAAOF,GAAM/B,EAAQgC,EAAI,CACxB,GAAGC,EACH,UAAW,EACb,CAAE,CACF,CCh7DA,SAASwuF,GAAcC,EAAoBj6C,EAAck6C,EAAc,CACtE,IAAIC,EACJ,IAAI3uF,EACA/N,GAAMy8F,CAAY,EAAG1uF,EAAU,CAAE,WAAY0uF,CAAY,EACxD1uF,EAAU0uF,GAAgB,GAC/B,KAAM,CAAE,KAAAj3D,EAAO,GAAO,MAAA/P,EAAQ,OAAQ,WAAAknE,EAAa,OAAQ,QAAAlzF,EAAU,GAAM,QAAAy6C,GAAWw4C,EAAwB,WAAW,eAAiB,MAAQA,IAA0B,OAASA,EAAwBp0D,EAAI,EAAKv6B,EAChN2wC,EAAUnzC,GAAW,CAACi6B,CAAI,EAC1BjoB,EAAU9T,EAAU8B,GAAWg3C,CAAY,EAAIl3C,GAAIk3C,CAAY,EACrE,IAAIq6C,EAAU,EAwBd,OAvBAtnE,GAAY,MAAOunE,GAAiB,CACnC,GAAI,CAACn+C,EAAQ,MAAO,OACpBk+C,IACA,MAAME,EAAqBF,EAC3B,IAAIG,EAAc,GACdJ,GAAY,QAAQ,QAAO,EAAG,KAAK,IAAM,CAC5CA,EAAW,MAAQ,EACpB,CAAC,EACD,GAAI,CACH,MAAMh2F,EAAS,MAAM61F,EAAoBQ,GAAmB,CAC3DH,EAAa,IAAM,CACdF,IAAYA,EAAW,MAAQ,IAC9BI,GAAaC,EAAc,CACjC,CAAC,CACF,CAAC,EACGF,IAAuBF,IAASr/E,EAAQ,MAAQ5W,EACrD,OAASnE,EAAG,CACX0hD,EAAQ1hD,CAAC,CACV,QAAC,CACIm6F,GAAcG,IAAuBF,IAASD,EAAW,MAAQ,IACrEI,EAAc,EACf,CACD,EAAG,CAAE,MAAAtnE,EAAO,EACR+P,EAAaviC,EAAS,KACzBy7C,EAAQ,MAAQ,GACTnhC,EAAQ,MACf,EACWA,CACb,CAiIA,MAAM0/E,GAAgBjC,GAAW,OAAS,OACpCkC,GAAkBlC,GAAW,OAAO,SAAW,OAWrD,SAASmC,GAAaC,EAAO,CAC5B,IAAIC,EACJ,MAAMC,EAAQzxF,GAAQuxF,CAAK,EAC3B,OAAQC,EAAqDC,GAAM,OAAS,MAAQD,IAAS,OAASA,EAAOC,CAC9G,CAIA,SAASC,MAAoBz3F,EAAM,CAClC,MAAM8H,EAAW,GACXhK,EAAU,IAAM,CACrBgK,EAAS,QAASlR,GAAOA,EAAE,CAAE,EAC7BkR,EAAS,OAAS,CACnB,EACMsZ,EAAW,CAAC9rB,EAAI27B,EAAOua,EAAUvjC,KACtC3S,EAAG,iBAAiB27B,EAAOua,EAAUvjC,CAAO,EACrC,IAAM3S,EAAG,oBAAoB27B,EAAOua,EAAUvjC,CAAO,GAEvDyvF,EAAoBv6F,EAAS,IAAM,CACxC,MAAMw6F,EAAO14B,GAAQl5D,GAAQ/F,EAAK,CAAC,CAAC,CAAC,EAAE,OAAQtD,GAAMA,GAAK,IAAI,EAC9D,OAAOi7F,EAAK,MAAOj7F,GAAM,OAAOA,GAAM,QAAQ,EAAIi7F,EAAO,MAC1D,CAAC,EACKC,EAAYpB,GAAe,IAAM,CACtC,IAAIqB,EAAuBC,EAC3B,MAAO,EACLD,GAAyBC,EAAyBJ,EAAkB,SAAW,MAAQI,IAA2B,OAAS,OAASA,EAAuB,IAAKp7F,GAAM26F,GAAa36F,CAAC,CAAC,KAAO,MAAQm7F,IAA0B,OAASA,EAAwB,CAACV,EAAa,EAAE,OAAQz6F,GAAMA,GAAK,IAAI,EACvSuiE,GAAQl5D,GAAQ2xF,EAAkB,MAAQ13F,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CAAC,EAC5Di/D,GAAQp5D,EAAM6xF,EAAkB,MAAQ13F,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CAAC,EAC1D+F,GAAQ2xF,EAAkB,MAAQ13F,EAAK,CAAC,EAAIA,EAAK,CAAC,CAAC,CACtD,CACC,EAAG,CAAC,CAAC+3F,EAAaC,EAAYC,EAAeC,CAAW,IAAM,CAE7D,GADAp6F,EAAO,EACH,CAA4Di6F,GAAY,QAAW,CAA0DC,GAAW,QAAW,CAAgEC,GAAc,OAAS,OAC9P,MAAME,EAAehiG,GAAS+hG,CAAW,EAAI,CAAE,GAAGA,CAAW,EAAKA,EAClEpwF,EAAS,KAAK,GAAGiwF,EAAY,QAASziG,GAAO0iG,EAAW,QAAS/mE,GAAUgnE,EAAc,IAAKzsD,GAAapqB,EAAS9rB,EAAI27B,EAAOua,EAAU2sD,CAAY,CAAC,CAAC,CAAC,CAAC,CAC1J,EAAG,CAAE,MAAO,OAAQ,EACd5B,EAAO,IAAM,CAClBqB,EAAS,EACT95F,EAAO,CACR,EACA,OAAAm3F,GAAkBn3F,CAAO,EAClBy4F,CACR,CAKA,SAAS6B,GAAe35F,EAAQmjB,EAAS3Z,EAAU,GAAI,CACtD,KAAM,CAAE,OAAQowF,EAAWlB,GAAe,OAAAmB,EAAS,GAAI,QAAAC,EAAU,GAAM,aAAAC,EAAe,GAAO,SAAAC,EAAW,EAAK,EAAKxwF,EAClH,GAAI,CAACowF,EAAU,OAAOI,EAAW,CAChC,KAAMj2D,GACN,OAAQA,GACR,QAASA,EACX,EAAKA,GAOJ,IAAIk2D,EAAe,GACnB,MAAMC,EAAgB1nE,GACdlrB,GAAQuyF,CAAM,EAAE,KAAMM,GAAa,CACzC,GAAI,OAAOA,GAAa,SAAU,OAAO,MAAM,KAAKP,EAAS,SAAS,iBAAiBO,CAAQ,CAAC,EAAE,KAAMtjG,GAAOA,IAAO27B,EAAM,QAAUA,EAAM,aAAY,EAAG,SAAS37B,CAAE,CAAC,EAClK,CACJ,MAAMA,EAAK+hG,GAAauB,CAAQ,EAChC,OAAOtjG,IAAO27B,EAAM,SAAW37B,GAAM27B,EAAM,aAAY,EAAG,SAAS37B,CAAE,EACtE,CACD,CAAC,EAMF,SAASujG,EAAiBD,EAAU,CACnC,MAAME,EAAK/yF,GAAQ6yF,CAAQ,EAC3B,OAAOE,GAAMA,EAAG,EAAE,QAAQ,YAAc,EACzC,CACA,SAASC,EAAmBH,EAAU3nE,EAAO,CAC5C,MAAM6nE,EAAK/yF,GAAQ6yF,CAAQ,EACrBppF,EAAWspF,EAAG,EAAE,SAAWA,EAAG,EAAE,QAAQ,SAC9C,OAAItpF,GAAY,MAAQ,CAAC,MAAM,QAAQA,CAAQ,EAAU,GAClDA,EAAS,KAAMuB,GAAUA,EAAM,KAAOkgB,EAAM,QAAUA,EAAM,aAAY,EAAG,SAASlgB,EAAM,EAAE,CAAC,CACrG,CACA,MAAMy6B,EAAYva,GAAU,CAC3B,MAAM37B,EAAK+hG,GAAa54F,CAAM,EAC9B,GAAIwyB,EAAM,QAAU,MAChB,IAAE37B,aAAc,UAAYujG,EAAiBp6F,CAAM,GAAKs6F,EAAmBt6F,EAAQwyB,CAAK,IACxF,GAAC37B,GAAMA,IAAO27B,EAAM,QAAUA,EAAM,aAAY,EAAG,SAAS37B,CAAE,GAElE,IADI,WAAY27B,GAASA,EAAM,SAAW,IAAGynE,EAAe,CAACC,EAAa1nE,CAAK,GAC3E,CAACynE,EAAc,CAClBA,EAAe,GACf,MACD,CACA92E,EAAQqP,CAAK,EACd,EACA,IAAI+nE,EAAoB,GACxB,MAAMl7F,EAAU,CACf25F,GAAiBY,EAAU,QAAUpnE,GAAU,CACzC+nE,IACJA,EAAoB,GACpB,WAAW,IAAM,CAChBA,EAAoB,EACrB,EAAG,CAAC,EACJxtD,EAASva,CAAK,EAEhB,EAAG,CACF,QAAS,GACT,QAAAsnE,CACH,CAAG,EACDd,GAAiBY,EAAU,cAAgB37F,GAAM,CAChD,MAAMpH,EAAK+hG,GAAa54F,CAAM,EAC9Bi6F,EAAe,CAACC,EAAaj8F,CAAC,GAAK,CAAC,EAAEpH,GAAM,CAACoH,EAAE,aAAY,EAAG,SAASpH,CAAE,EAC1E,EAAG,CAAE,QAAS,GAAM,EACpBkjG,GAAgBf,GAAiBY,EAAU,OAASpnE,GAAU,CAC7D,WAAW,IAAM,CAChB,IAAIgoE,EACJ,MAAM3jG,EAAK+hG,GAAa54F,CAAM,IACxBw6F,EAAwBZ,EAAS,SAAS,iBAAmB,MAAQY,IAA0B,OAAS,OAASA,EAAsB,WAAa,UAAY,CAA0C3jG,GAAG,SAAS+iG,EAAS,SAAS,aAAa,GAAIz2E,EAAQqP,CAAK,CAC7Q,EAAG,CAAC,CACL,EAAG,CAAE,QAAS,EAAI,CAAE,CACtB,EAAG,OAAO,OAAO,EACVslE,EAAO,IAAMz4F,EAAQ,QAASlH,GAAOA,GAAI,EAC/C,OAAI6hG,EAAiB,CACpB,KAAAlC,EACA,OAAQ,IAAM,CACbmC,EAAe,EAChB,EACA,QAAUznE,GAAU,CACnBynE,EAAe,GACfltD,EAASva,CAAK,EACdynE,EAAe,EAChB,CACF,EACQnC,CACR,CAi6EA,SAAS2C,GAAsBjxF,EAAU,GAAI,CAC5C,KAAM,CAAE,SAAUkxF,EAAa/B,EAAe,EAAKnvF,EACnD,GAAI,CAACkxF,EAAY,OAAO1zF,GAAW,SAAS,EAC5C,MAAM2zF,EAAa3zF,GAAW0zF,EAAW,eAAe,EACxD,OAAA1B,GAAiB0B,EAAY,mBAAoB,IAAM,CACtDC,EAAW,MAAQD,EAAW,eAC/B,EAAG,CAAE,QAAS,GAAM,EACbC,CACR,CAqsEA,SAASC,GAAWC,EAAUrxF,EAAS,CAKtC,MAAMpR,EAFE+N,GAAgC,IAAI,GAAK,EAM3C20F,EAAc,IAAIv5F,IAAwG,KAAK,UAAUA,CAAI,EAI7Iw5F,EAAY,CAAC7kG,KAAQqL,KAC1BnJ,EAAM,IAAIlC,EAAK2kG,EAAS,GAAGt5F,CAAI,CAAC,EACzBnJ,EAAM,IAAIlC,CAAG,GAEfqsD,EAAW,IAAIhhD,IAASw5F,EAAUD,EAAY,GAAGv5F,CAAI,EAAG,GAAGA,CAAI,EAI/Dy5F,EAAa,IAAIz5F,IAAS,CAC/BnJ,EAAM,OAAO0iG,EAAY,GAAGv5F,CAAI,CAAC,CAClC,EAIM05F,EAAY,IAAM,CACvB7iG,EAAM,MAAK,CACZ,EACM8iG,EAAW,IAAI35F,IAAS,CAC7B,MAAMrL,EAAM4kG,EAAY,GAAGv5F,CAAI,EAC/B,OAAInJ,EAAM,IAAIlC,CAAG,EAAUkC,EAAM,IAAIlC,CAAG,EACjC6kG,EAAU7kG,EAAK,GAAGqL,CAAI,CAC9B,EACA,OAAA25F,EAAS,KAAO34C,EAChB24C,EAAS,OAASF,EAClBE,EAAS,MAAQD,EACjBC,EAAS,YAAcJ,EACvBI,EAAS,MAAQ9iG,EACV8iG,CACR,CA6iDA,SAASC,GAASn7F,EAAQwJ,EAAU,GAAI,CACvC,KAAM,CAAE,UAAAu9D,EAAY,GAAI,QAAAq0B,EAAS,WAAAC,EAAY,aAAAC,EAAc,QAAAC,EAAU,EAAI,EAAK/xF,EACxEgyF,EAAc73F,GAAS,CAC5B,EAAG,EACH,EAAG,CACL,CAAE,EACK83F,EAAY93F,GAAS,CAC1B,EAAG,EACH,EAAG,CACL,CAAE,EACK+3F,EAAQh9F,EAAS,IAAM88F,EAAY,EAAIC,EAAU,CAAC,EAClDE,EAAQj9F,EAAS,IAAM88F,EAAY,EAAIC,EAAU,CAAC,EAClD,CAAE,IAAA7gF,EAAK,IAAAmqD,CAAG,EAAK,KACf62B,EAAsBl9F,EAAS,IAAMkc,EAAImqD,EAAI22B,EAAM,KAAK,EAAG32B,EAAI42B,EAAM,KAAK,CAAC,GAAK50B,CAAS,EACzF80B,EAAY70F,GAAW,EAAK,EAC5Bo1D,EAAY19D,EAAS,IACrBk9F,EAAoB,MACrB72B,EAAI22B,EAAM,KAAK,EAAI32B,EAAI42B,EAAM,KAAK,EAAUD,EAAM,MAAQ,EAAI,OAAS,QAC/DC,EAAM,MAAQ,EAAI,KAAO,OAFE,MAGvC,EACKG,EAAuB79F,GAAM,CAACA,EAAE,QAAQ,CAAC,EAAE,QAASA,EAAE,QAAQ,CAAC,EAAE,OAAO,EACxE89F,EAAoB,CAACv6F,EAAG8pD,IAAM,CACnCkwC,EAAY,EAAIh6F,EAChBg6F,EAAY,EAAIlwC,CACjB,EACM0wC,EAAkB,CAACx6F,EAAG8pD,IAAM,CACjCmwC,EAAU,EAAIj6F,EACdi6F,EAAU,EAAInwC,CACf,EACM2wC,EAAkB,CACvB,QAAAV,EACA,QAAS,CAACA,CACZ,EACOW,EAAcj+F,GAAM,CACrB49F,EAAU,OAAuDR,IAAWp9F,EAAGm+D,EAAU,KAAK,EAClGy/B,EAAU,MAAQ,EACnB,EACMM,EAAQ,CACbnD,GAAiBh5F,EAAQ,aAAe/B,GAAM,CAC7C,GAAIA,EAAE,QAAQ,SAAW,EAAG,OAC5B,KAAM,CAAC,EAAGqtD,CAAC,EAAIwwC,EAAoB79F,CAAC,EACpC89F,EAAkB,EAAGzwC,CAAC,EACtB0wC,EAAgB,EAAG1wC,CAAC,EACgCgwC,IAAar9F,CAAC,CACnE,EAAGg+F,CAAe,EAClBjD,GAAiBh5F,EAAQ,YAAc/B,GAAM,CAC5C,GAAIA,EAAE,QAAQ,SAAW,EAAG,OAC5B,KAAM,CAAC,EAAGqtD,CAAC,EAAIwwC,EAAoB79F,CAAC,EACpC+9F,EAAgB,EAAG1wC,CAAC,EAChB2wC,EAAgB,SAAW,CAACA,EAAgB,SAAW,KAAK,IAAIP,EAAM,KAAK,EAAI,KAAK,IAAIC,EAAM,KAAK,GAAG19F,EAAE,eAAc,EACtH,CAAC49F,EAAU,OAASD,EAAoB,QAAOC,EAAU,MAAQ,IACjEA,EAAU,OAAiDT,IAAQn9F,CAAC,CACzE,EAAGg+F,CAAe,EAClBjD,GAAiBh5F,EAAQ,CAAC,WAAY,aAAa,EAAGk8F,EAAYD,CAAe,CACnF,EAEC,MAAO,CACN,UAAAJ,EACA,UAAAz/B,EACA,YAAAo/B,EACA,UAAAC,EACA,QAASC,EACT,QAASC,EACT,KARY,IAAMQ,EAAM,QAAS7xF,GAAMA,GAAG,CAS5C,CACA,CAmWA,SAAS8xF,GAAejkG,EAAI4wE,EAAUv/D,EAAU,GAAI,CACnD,KAAM,CAAE,UAAAC,EAAY,GAAM,kBAAAkuF,EAAoB,EAAK,EAAKnuF,EAClD,CAAE,MAAAoD,CAAK,EAAK8qF,GAAa2E,EAAMtzB,EAAU,CAAE,UAAAt/D,EAAW,EACtD+qC,EAAWxtC,GAAW,EAAK,EACjC,eAAeq1F,GAAO,CAChB7nD,EAAS,QACd,MAAMr8C,EAAE,EACRyU,EAAK,EACN,CACA,SAAS0vF,GAAS,CACZ9nD,EAAS,QACbA,EAAS,MAAQ,GACbmjD,GAAmBx/F,EAAE,EACzByU,EAAK,EAEP,CACA,SAAS2vF,GAAQ,CAChB/nD,EAAS,MAAQ,EAClB,CACA,OAAI/qC,GAAagtF,IAAU6F,EAAM,EACjC9F,GAAkB+F,CAAK,EAChB,CACN,SAAA/nD,EACA,MAAA+nD,EACA,OAAAD,CACF,CACA,CC17NO,MAAME,GAA8Bv8C,GAAY,2BAA4B,IAAM,CACvF,MAAM+0C,EAAsBp0C,GAAA,EACtB,CAAE,oBAAAI,CAAA,EAAwBV,GAAY00C,CAAmB,EAEzDyH,EAAqB31F,GAAI,CAAC,EAC1B41F,EAAuB51F,GAAI,CAAC,EAC5B61F,EAA6B71F,GAAI,CAAC,EAClC81F,EAA6B91F,GAAI,CAAC,EAElC,CAAE,MAAO+1F,EAA2C,IAAArF,EAAK,IAAAC,CAAA,EAAQJ,GAAW,CAAC,EACnF,SAASyF,GAA6B,CACpCppF,GAAU,IAAM8jF,GAAK,EACrB/7E,GAAY,IAAMg8E,GAAK,CACzB,CAEA,MAAMsF,EAAkBp5F,GAA0B,CAChD,UAAW,GACX,WAAY,GACZ,kBAAmB,GACnB,gBAAiB,KAClB,EAEKq5F,EAA4Br5F,GAA0B,CAC1D,UAAW,GACX,WAAY,GACZ,kBAAmB,GACnB,gBAAiB,KAClB,EAEKs5F,EAA4Bv+F,EAAS,KAAOq+F,EAAgB,iBAAoBC,EAA0B,iBAAmBh8C,EAAoB,QAAW,EAAK,EAEvK,eAAeE,GAAU,CACvB,MAAMg8C,EAAuBC,EAAsB5G,GAAoB,UAAU,EAC3E6G,EAAyBP,EAA0C,MAAQ,EAAIM,EAAsB5G,GAAoB,QAAQ,EAAI,EACrI8G,EAAuBR,EAA0C,MAAQ,EAAIM,EAAsB5G,GAAoB,WAAW,EAAI,EACtI+G,EAAmCC,EAAA,EAEnC,CAACC,EAAgBC,EAAkBC,EAAgBC,CAAqB,EAAI,MAAM,QAAQ,IAAI,CAACT,EAAsBE,EAAwBC,EAAsBC,CAAgC,CAAC,EAE1Mb,EAAmB,MAAQe,EAC3Bd,EAAqB,MAAQe,EAC7Bd,EAA2B,MAAQe,EACnCd,EAA2B,MAAQe,CACrC,CAEA,SAASR,EAAsBS,EAA6B,CAC1D,OAAOC,GACL,IAAM7I,EAAoB,6BAA4C,iBAAiB4I,CAAM,EAAE,EAC/Fb,EACCt7C,GAAa,SAASA,EAAS,QAAQ,IAAI,aAAa,GAAK,GAAG,EACjE,EAEJ,CAEA,SAAS87C,GAAgC,CACvC,OAAOM,GACL,IAAM7I,EAAoB,yBAAiC,kCAAkC,EAC7FgI,EACA,CAAC37D,EAAGniB,IACKA,EAET,EAEJ,CAEA,MAAO,CACL,QAAAgiC,EACA,mBAAAu7C,EACA,2BAAAK,EACA,qBAAAJ,EACA,2BAAAC,EACA,2BAAAC,EACA,gBAAAG,EACA,0BAAAC,EACA,0BAAAC,CAAA,CAEJ,CAAC,EAED,eAAeY,GAAuCC,EAA+Cf,EAAkCz9C,EAAkDy+C,EAAwB,CAC/M,GAAIhB,EAAgB,WAElB,GAAI,CACF,KAAM,CAACt7C,EAAUviC,CAAI,EAAI,MAAM4+E,EAAA,EAC/B,GAAIr8C,GAAY,MAAQviC,GAAQ,KAC9B,OAAO,MAAMogC,EAAOmC,EAAUviC,CAAI,CAEtC,OAAS9gB,EAAK,CACZ,eAAQ,IAAIA,CAAG,EACR2/F,CACT,CAEF,GAAI,CACGhB,EAAgB,YACnBA,EAAgB,WAAa,GAC7BA,EAAgB,UAAY,IAG9B,GAAI,CACF,KAAM,CAACt7C,EAAUviC,CAAI,EAAI,MAAM4+E,EAAA,EAC/B,IAAI17F,EAAyB,KAS7B,GARIq/C,GAAY,MAAQviC,GAAQ,OAC9B9c,EAAS,MAAMk9C,EAAOmC,EAAUviC,CAAI,GAEtC69E,EAAgB,gBAAkB,GAClCA,EAAgB,kBAAoB,GACpCA,EAAgB,UAAY,GAC5BA,EAAgB,WAAa,GAEzB36F,EACF,OAAOA,CAEX,OAAShE,EAAK,CACZ2+F,EAAgB,UAAY,GAC5BA,EAAgB,gBAAkB,GAClCA,EAAgB,kBAAoB,GACpCA,EAAgB,WAAa,GAC7B,QAAQ,IAAI3+F,CAAG,CACjB,CACF,MAAQ,CACN2+F,EAAgB,WAAa,GAC7BA,EAAgB,UAAY,EAC9B,CAEA,OAAOgB,CACT,CChIA,SAAwBC,GAAwB3jG,EAAc4jG,EAA4BC,EAAoB,CAC5G,IAAIC,EAAoC,KACxC,KAAM,CAAE,MAAA5G,EAAO,IAAAC,EAAK,IAAAC,EAAK,MAAA97E,CAAA,EAAU07E,GAAW,CAAC,EACzCtuB,EAAWjiE,GAAIo3F,CAAU,EACzBE,EAAet3F,GAAI,EAAK,EACxBu3F,EAAe,SAAY,CAC3BD,EAAa,QAGjBA,EAAa,MAAQ,GACrB,MAAMH,EAAA,EACNG,EAAa,MAAQ,GACvB,EACM,CAAE,MAAA7B,EAAO,OAAAD,CAAA,EAAWF,GACxBiC,EACAt1B,EACA,CAAE,UAAW,GAAO,kBAAmB,GAAK,EAGxC4xB,EAAaF,GAAA,EAEb7tF,EAAQ,SAAY,CACxB4qF,EAAA,EACID,EAAM,QAAU,GAClB,QAAQ,MAAM,2CAA2Cl9F,CAAI,UAAU0uE,EAAS,KAAK,IAAI,EACzFuzB,EAAA,EACA6B,EAAY70F,GAAMqxF,EAAY,CAAC3hF,EAASslF,IAAa,CAC/CtlF,IAAY,WAAaslF,IAAa,WACxC,QAAQ,MAAM,2CAA2CjkG,CAAI,6BAA6B,EAC1FiiG,EAAA,GAGEtjF,IAAY,UAAYslF,IAAa,YACvC,QAAQ,MAAM,0CAA0CjkG,CAAI,4BAA4B,EACxFkiG,EAAA,EAEJ,CAAC,IAED,QAAQ,MAAM,0CAA0CliG,CAAI,OAAOk9F,EAAM,KAAK,EAAE,EAEhF,MAAM8G,EAAA,EAEV,EAEMvG,EAAO,IAAM,CACjBL,EAAA,EACIF,EAAM,OAAS,GACjB,QAAQ,MAAM,2CAA2Cl9F,CAAI,EAAE,EAC/DkiG,EAAA,EACA4B,IAAA,EACAA,EAAY,KACZxiF,EAAA,GAEA,QAAQ,MAAM,0CAA0CthB,CAAI,OAAOk9F,EAAM,KAAK,EAAE,CAEpF,EAEMgH,EAAkBC,GAA0B,CAChDz1B,EAAS,MAAQy1B,CACnB,EAEA,MAAO,CAAE,WAAYH,EAAc,aAAcj4F,GAAgBg4F,CAAY,EAAG,eAAAG,EAAgB,MAAA3xF,EAAO,KAAAkrF,CAAA,CACzG,CC9DO,SAAS2G,GAAepkG,EAAc6mD,EAA8Bg9C,EAAoB,CAC7F,KAAM,CAAE,MAAAtxF,EAAO,KAAAkrF,CAAA,EAASkG,GAAwB3jG,EAAM6mD,EAASg9C,CAAU,EAEzE,SAASO,GAAiB,CACnBvqF,OACLR,GAAU9G,CAAK,EACf6O,GAAYq8E,CAAI,EAClB,CAEA,OAAO2G,CACT,CAYO,SAASC,GAAqErkG,EAAc+lD,EAAwB89C,EAAoB,CAC7I,MAAMh9C,EAAU,IACTjD,EAGEA,EAAM,UAFJ,QAAQ,UAInB,IAAIA,EAAuB,KAC3B,MAAM0gD,EAAcF,GAAepkG,EAAM6mD,EAASg9C,CAAU,EAE5D,MAAO,KACLjgD,EAAQmC,EAAA,EACRu+C,EAAA,EACO,CAAE,MAAA1gD,CAAA,EAEb,CCrCA,MAAA2gD,GAAeF,GAAoB,sBAAuBlC,GAA6B,GAAI,iJCG3F,KAAM,CAAE,MAAOqC,CAAA,EAAoBD,GAAA,EAC7B7B,EAAkB8B,EAAgB,gBAClC7J,EAAsBp0C,GAAA,EACtB,CAAE,kBAAAC,CAAA,EAAsBP,GAAY00C,CAAmB,eAI9B/F,EAAA8N,CAAA,EAAgB,YAAU,CAAK9N,EAAA8N,CAAA,EAAgB,iBAA5EniD,EAAA,EAAAC,EAA+F,MAA/FC,EAA+F,QAC/F4H,GAYoB2zC,GAAA,OAZO,UAAS,CAAGpH,EAAA8N,CAAA,EAAgB,kBAC1C,eACT,IAOM,CAPNhiD,EAOM,MAPNC,GAOM,CANJC,EAAA,KAAAA,EAAA,GAAAF,EAAyC,UAArC,mCAAgC,KACpCA,EAII,yBAJD,wEAED,KAAAA,EACC,OADDG,GACCE,GAD+B6zC,EAAApuC,CAAA,CAAiB,oBAChD,oFACH,sBAGJ,IAAQ,CAAR2B,GAAQC,EAAA,sSCbVC,GAMa0zC,EAAA,CAND,aAAW,iBAAiB,UAAM,eAAc,kBAA6Bz7C,UAAO,iBAAsBA,EAAA,cAAkBA,EAAA,QAAO,GAAK,GAAIA,EAAA,iBACtJ,IAAiC,CAAjC3lB,GAAiCi+D,GAAA,CAAxB,KAAMt4C,EAAA,KAAM,KAAK,uBACdA,EAAA,QAAO,OAAnBE,EAAoG,OAApGC,GAAoGM,GAAjBT,EAAA,OAAO,eAC1FI,EAEK,WADHyH,GAAaC,EAAA,0GCVNq8C,GAAuB7+C,GAAY,oBAAqB,IAAM,CACzE,MAAMif,EAAS,gBAET81B,EAAsBp0C,GAAA,EAEtBjF,EAAa70C,GAAI,CAAC,EAClBi4F,EAAej4F,GAAI,CAAC,EACpBk4F,EAAel4F,GAAmB,EAAE,EAEpC,CAAE,MAAAywF,EAAO,IAAAC,EAAK,IAAAC,CAAA,EAAQJ,GAAW,CAAC,EAClC4H,EAAcvgG,EAAS,IAAM64F,EAAM,MAAQ,CAAC,EAE5Cr2C,EAAU,SAAY,CAC1B,GAAI,CAAA+9C,EAAY,MAGhB,GAAI,CACF,KAAM,CAACx9C,EAAUviC,CAAI,EAAI,MAAM81E,EAAoB,6BAA4C,iCAAiCr5C,EAAW,KAAK,EAAE,EAClJqjD,EAAa,MAAQ9/E,EACrB6/E,EAAa,MAAQ,SAASt9C,EAAS,QAAQ,IAAI,aAAa,GAAK,GAAG,CAC1E,OAASxjD,EAAG,CACV,MAAA+gG,EAAa,MAAQ,GACrBD,EAAa,MAAQ,EACf9gG,CACR,CACF,EAEAqL,GAAMqyC,EAAY,IAAMuF,GAAS,EAEjC,eAAeg+C,EAAmBvyF,EAAY,CAC5C,GAAI,CACF6qF,EAAA,EAEAwH,EAAa,MAAQA,EAAa,MAAM,OAAQx9F,GAAMA,EAAE,KAAOmL,CAAE,EACjEoyF,EAAa,QAGb,MAAMI,EAAOxyF,EAAG,oBAAoB,WAAWuyD,CAAM,EAAIvyD,EAAG,UAAUuyD,EAAO,MAAM,EAAIvyD,EACvF,MAAMqoF,EAAoB,yBAAyB,GAAG91B,CAAM,GAAGigC,CAAI,EAAE,CACvE,SACE1H,EAAA,CACF,CACF,CAEA,MAAO,CACL,QAAAv2C,EACA,mBAAAg+C,EACA,WAAAvjD,EACA,aAAAojD,EACA,aAAAC,CAAA,CAEJ,CAAC,ECtDDI,GAAeV,GAAoB,eAAgBI,GAAsB,GAAI,qDCI7E,KAAM,CAAE,MAAA7gD,CAAA,EAAUmhD,GAAA,EACZ,CAAE,aAAAL,CAAA,EAAiBz+C,GAAYrC,CAAK,oBAIxCyE,GAAmH28C,GAAA,CAAnG,QAASpQ,EAAA8P,CAAA,EAAe,IAAK9P,EAAAhlB,EAAA,EAAW,aAAe,KAAMglB,EAAA0B,EAAA,eAAS,IAAa,IAAA11C,EAAA,KAAAA,EAAA,OAAb,gBAAa,6CCC9F,IAAKqkD,QACVA,EAAA,MAAQ,UACRA,EAAA,KAAO,OAFGA,QAAA,ICEAC,QACVA,EAAA,UAAY,MACZA,EAAA,WAAa,OAFHA,QAAA,ICbZ,SAAwBC,GAAmBnnE,EAAyD1pB,EAAoB,CACtH,GAAI,CAAC0pB,EACH,MAAO,IAAM,EAEf,MAAMonE,EAAW,CAACC,EAAiBC,IAAqB,CACtD,MAAMn+F,EAAI62B,EAASqnE,CAAY,EACzBp0C,EAAIjzB,EAASsnE,CAAa,EAChC,OAAIn+F,EAAI8pD,EACC,EACE9pD,EAAI8pD,EACN,GAEF,CACT,EAEA,OAAO38C,IAAQ4wF,GAAc,UAAYE,EAAW,CAACC,EAAiBC,IAAqB,CAACF,EAASC,EAAcC,CAAa,CAClI,CClBA,MAAMC,GAAW,mHAEV,SAASC,GAAmBC,EAAwBC,EAAuB,CAChF,MAAMC,EAASrvD,GAAMovD,EAAc,MAAM,GAAG,EAAE,CAAC,CAAC,EAC1C/mF,EAAU23B,GAAMmvD,EAAe,MAAM,GAAG,EAAE,CAAC,CAAC,EAGlD,OADIE,GAAU,MACVhnF,GAAW,KAAa,GAExBgnF,EAAO,QAAUhnF,EAAQ,MACpBgnF,EAAO,MAAQhnF,EAAQ,MAE5BgnF,EAAO,QAAUhnF,EAAQ,MACpBgnF,EAAO,MAAQhnF,EAAQ,MAE5BgnF,EAAO,QAAUhnF,EAAQ,MACpBgnF,EAAO,MAAQhnF,EAAQ,MAGzB,EACT,CAEO,SAASinF,GAAYH,EAAwBI,EAA6B,CAC/E,MAAMC,EAAexvD,GAAMuvD,CAAmB,EACxClnF,EAAU23B,GAAMmvD,CAAc,EAEpC,OAAI9mF,GAAW,KAAa,GACxBmnF,GAAgB,KAAa,GAE7BA,EAAa,QAAUnnF,EAAQ,MAC1BmnF,EAAa,OAASnnF,EAAQ,MAEnCmnF,EAAa,QAAUnnF,EAAQ,MAC1BmnF,EAAa,OAASnnF,EAAQ,MAEnCmnF,EAAa,QAAUnnF,EAAQ,MAC1BmnF,EAAa,OAASnnF,EAAQ,MAGhC,EACT,CAYA,SAAS23B,GAAMvrB,EAAiB,CAK9B,MAAM1B,EAAIk8E,GAAS,KAAKx6E,CAAO,GAAK,GAEpC,SAASg7E,EAAc5L,EAAa,CAClC,MAAMn7F,EAAI,SAASm7F,EAAK,EAAE,EAE1B,OAAO,MAAMn7F,CAAC,EAAI,EAAIA,CACxB,CAEA,OAAaqqB,EAAE,SAAR,EACH,KACQ,CACN,OAAQA,EAAE,CAAC,EACX,QAASA,EAAE,CAAC,EACZ,MAAO08E,EAAc18E,EAAE,CAAC,CAAC,EACzB,MAAO08E,EAAc18E,EAAE,CAAC,CAAC,EACzB,MAAO08E,EAAc18E,EAAE,CAAC,CAAC,EACzB,QAASA,EAAE,CAAC,EACZ,MAAOA,EAAE,CAAC,EAElB,CCnEO,MAAM28E,GAAiCpgD,GAAY,8BAA+B,IAAM,CAC7F,MAAM+0C,EAAsBp0C,GAAA,EAEtB0/C,EAAc38F,GAAS,CAC3B,mBAAoB,GACpB,WAAY,GACZ,6BAA8B,QAC9B,sBAAuB,GACvB,WAAYg9C,KAAmB,QAC/B,sBAAuB,GACvB,oBAAqB,GACrB,oBAAqB,GACrB,6BAA8B,GAC9B,uBAAwB,GACxB,cAAe,GACf,WAAY,GACZ,cAAe,GACf,mBAAoB,GACpB,UAAW,GACZ,EAEK4/C,EAAc58F,GAAS,CAC3B,aAAc,CACZ,aAAc,GACd,iBAAkB,GAClB,mBAAoB,IAEtB,aAAc,CACZ,aAAc,GACd,iBAAkB,GAClB,mBAAoB,IAEtB,YAAa,CACX,YAAa,GACb,gBAAiB,GACjB,kBAAmB,GACrB,CACD,EAEK68F,EAA8B5F,GAAY6F,GAA4B/hG,EAAS,IAAMuhG,GAAYK,EAAY,WAAYG,CAAe,CAAC,CAAC,EAEhJ,eAAev/C,GAAU,CACvB,MAAMw/C,EAAiBC,GAAA,EACjBC,EAAWC,EAAA,EACXC,EAAUC,EAAA,EAEV,CAACC,EAAUC,CAAK,EAAI,MAAM,QAAQ,IAAI,CAACP,EAAgBE,EAAUE,CAAO,CAAC,EAC3EG,IACFX,EAAY,sBAAwB,CAAC,CAACW,EAAM,oBAC5CX,EAAY,sBAAwBL,GAAYK,EAAY,WAAYA,EAAY,4BAA4B,EAChHA,EAAY,oBAAsBW,GAASA,EAAM,oBACjDX,EAAY,oBAAsBW,GAASA,EAAM,oBACjDX,EAAY,6BAA+BW,EAAM,6BACjDX,EAAY,uBAAyBW,EAAM,uBAC3CX,EAAY,cAAgBW,EAAM,cAClCX,EAAY,WAAaW,EAAM,WAC/BX,EAAY,cAAgBW,EAAM,cAClCX,EAAY,mBAAqBW,EAAM,mBACvCX,EAAY,UAAYW,EAAM,WAE5BD,EAAS,UAAYnB,GAAmBS,EAAY,WAAYU,EAAS,SAAS,GAAG,IACvFT,EAAY,aAAa,aAAe,GACxCA,EAAY,aAAa,iBAAmBS,EAAS,SAAS,QAC9DT,EAAY,aAAa,mBAAqBS,EAAS,SAAS,KAE9DA,EAAS,UAAYnB,GAAmBS,EAAY,WAAYU,EAAS,SAAS,GAAG,IACvFT,EAAY,aAAa,aAAe,GACxCA,EAAY,aAAa,iBAAmBS,EAAS,SAAS,QAC9DT,EAAY,aAAa,mBAAqBS,EAAS,SAAS,KAE9DA,EAAS,UAAYnB,GAAmBS,EAAY,mBAAoBU,EAAS,SAAS,GAAG,IAC/FT,EAAY,YAAY,YAAc,GACtCA,EAAY,YAAY,gBAAkBS,EAAS,SAAS,QAC5DT,EAAY,YAAY,kBAAoBS,EAAS,SAAS,IAElE,CAEA,eAAeH,GAAoB,CACjC,GAAI,CACF,KAAM,CAACp/C,EAAUviC,CAAI,EAAI,MAAM81E,EAAoB,6BAAuC,EAAE,EAC5F,OAAAsL,EAAY,WAAa7+C,EAAS,QAAQ,IAAI,sBAAsB,GAAK,GAClEviC,CACT,MAAQ,CACN,OAAO,IACT,CACF,CAEA,eAAe6hF,GAAuB,CACpC,GAAI,CACF,KAAM,CAACt/C,CAAQ,EAAI,MAAMuzC,EAAoB,yBAAyB,EAAE,EACpEvzC,IACF6+C,EAAY,mBAAqB7+C,EAAS,QAAQ,IAAI,sBAAsB,GAAK,GAErF,MAAQ,CACN6+C,EAAY,mBAAqB,EACnC,CACF,CAEA,MAAO,CACL,QAAAp/C,EACA,YAAAo/C,EACA,YAAAC,EACA,4BAAAC,CAAA,CAEJ,CAAC,EAED,eAAeU,GAAQnzD,EAAa,CAClC,GAAI,CAEF,OAAQ,MADS,MAAM,MAAMA,CAAG,GACT,MACzB,OAAS9vC,EAAG,CACV,eAAQ,IAAIA,CAAC,EACN,CACL,CACE,IAAK,UACL,QAAS,UACT,UAAW,UACb,CAEJ,CACF,CAEA,eAAe0iG,IAAwB,CACrC,MAAMQ,EAAQ,yDACRC,EAAQ,2DAERC,EAAeH,GAAQC,CAAK,EAC5BG,EAAiBJ,GAAQE,CAAK,EAE9B,CAACG,EAAIC,CAAE,EAAI,MAAM,QAAQ,IAAI,CAACH,EAAcC,CAAc,CAAC,EAC3DG,EAAWF,EAAG,CAAC,EACfG,EAAWF,EAAG,CAAC,EAErB,MAAO,CAAE,SAAAC,EAAU,SAAAC,CAAA,CACrB,CC5IA,MAAAC,GAAejD,GAAoB,yBAA0B2B,GAAgC,GAAI,ECDpFuB,GAAsC,QAEnD,SAAwBC,IAAiC,CACvD,KAAM,CAAE,MAAOC,CAAA,EAAqBH,GAAA,EACpC,OAAOG,EAAiB,4BAA4BF,EAAmC,CACzF,CCFO,MAAMG,GAA2B9hD,GAAY,wBAAyB,IAAM,CACjF,MAAM+hD,EAAiD,CAAE,KAAM,GAAI,gBAAiB,IAC9EhN,EAAsBp0C,GAAA,EAEtBqhD,EAA8BJ,GAAA,EAEpC,eAAeK,GAAmD,CAChE,GAAI,CAACD,EAA4B,MAAO,MAAO,CAACD,CAA4B,EAE5E,KAAM,EAAG9iF,CAAI,EAAI,MAAM81E,EAAoB,6BAAiD,mBAAmB,EAC/G,OAAO91E,CACT,CAEA,MAAO,CACL,6BAAA8iF,EACA,oBAAAE,CAAA,CAEJ,CAAC,ECVM,IAAKC,QACVA,EAAA,KAAO,OACPA,EAAA,cAAgB,gBAChBA,EAAA,eAAiB,iBACjBA,EAAA,cAAgB,kBAChBA,EAAA,MAAQ,QACRA,EAAA,QAAU,mBACVA,EAAA,YAAc,yBAPJA,QAAA,IAgBZ,MAAMC,OAAqB,IAA8D,CACvF,CAAC,OAAmBC,GAAaA,EAAS,IAAI,EAC9C,CAAC,gBAA4BA,GAAaA,EAAS,YAAcA,EAAS,UAAU,EACpF,CAAC,iBAA6BA,GAAaA,EAAS,YAAcA,EAAS,UAAU,EACrF,CAAC,kBAA4BA,GAAa55B,GAAO,IAAI45B,EAAS,uBAAuB,gBAAkB,qBAAqB,CAAC,EAC7H,CACE,QACCA,GAAa,CACZ,OAAQA,EAAS,aACf,IAAK,GACH,MAAO,GACT,KAAKA,EAAS,YAAcA,EAAS,WACnC,MAAO,GACT,QACE,MAAO,GAEb,GAEF,CAAC,mBAAsBA,GAAaA,EAAS,eAAe,EAC5D,CAAC,yBAA0BA,GAAaA,EAAS,eAAe,CAClE,CAAC,EAEYC,GAAqBriD,GAAY,kBAAmB,IAAM,CACrE,MAAM+0C,EAAsBp0C,GAAA,EACtB2hD,EAAwBR,GAAA,EAExBS,EAAkB17F,GAAc,CACpC,SAAU,OACV,YAAa,GACd,EAEK27F,EAAgC37F,GAAIy7F,EAAsB,6BAA6B,eAAe,EACtGG,EAAuB57F,GAAI,EAAE,EAC7Bs7C,EAAet7C,GAAI,EAAE,EACrB67F,EAAoB77F,GAAqB,EAAE,EAC3C87F,EAAW97F,GAAwB,EAAE,EACrC+7F,EAAkBnkG,EAA4B,IAClDokG,EAAsBH,EAAkB,MAAOC,EAAS,KAAK,EAAE,KAAKpD,GAAgB4C,GAAe,IAAII,EAAgB,MAAM,QAAQ,EAAGA,EAAgB,MAAM,YAAcjD,GAAc,UAAYA,GAAc,UAAU,CAAC,GAE3NwD,EAAoBrkG,EAA4B,IAAMmkG,EAAgB,MAAM,OAAQR,GAAa,CAACK,EAAqB,OAASL,EAAS,KAAK,cAAc,SAASK,EAAqB,MAAM,aAAa,CAAC,CAAC,EAC/MM,EAAmBtkG,EAA4B,IACnDmkG,EAAgB,MAAM,OAAO,SAAUR,EAAU,CAC/C,OAAOA,EAAS,mBAAqBA,EAAS,uBAAuB,kBAAoB/C,GAAe,QAAW+C,EAAS,iBAAmBA,EAAS,aAAe,GAAO,CAACA,EAAS,iBAAmBA,EAAS,YAAc,EACpO,CAAC,GAEGY,EAA2BvkG,EAA4B,IAAMskG,EAAiB,MAAM,OAAQX,GAAa,CAACK,EAAqB,OAASL,EAAS,KAAK,cAAc,SAASK,EAAqB,MAAM,aAAa,CAAC,CAAC,EACvNQ,EAAqBxkG,EAA4B,IACrDmkG,EAAgB,MAAM,OAAO,SAAUR,EAAU,CAC/C,MAAO,CAACA,EAAS,mBAAqBA,EAAS,uBAAuB,kBAAoB/C,GAAe,MAAS+C,EAAS,iBAAmBA,EAAS,WAAa,GAAO,CAACA,EAAS,iBAAmBA,EAAS,cAAgB,CACnO,CAAC,GAEGc,EAA6BzkG,EAA4B,IAAMwkG,EAAmB,MAAM,OAAQb,GAAa,CAACK,EAAqB,OAASL,EAAS,KAAK,cAAc,SAASK,EAAqB,MAAM,aAAa,CAAC,CAAC,EAC3NU,EAAwB1kG,EAAS,IAAM,CAC3C,IAAI25F,EAAU,EAEd,UAAWgL,KAAWR,EAAgB,MAAO,CAC3C,MAAMS,EAAmCX,EAAkB,MAAM,OAAQx3F,GAAaA,EAAS,OAASk4F,EAAQ,MAAQl4F,EAAS,iBAAiB,EAE9Ik4F,EAAQ,gBACNC,EAAiC,KAAMn4F,GAAaA,EAAS,uBAAuB,kBAAoBm0F,GAAe,KAAK,GAC9HjH,IAGGiL,EAAiC,KAAMn4F,GAAaA,EAAS,uBAAuB,kBAAoBm0F,GAAe,KAAK,GAC/HjH,GAGN,CAEA,OAAOA,CACT,CAAC,EACD/uF,GAAMo5F,EAAuBtiG,GAAa,CACxCmjG,EAAwBnjG,CAAQ,CAClC,CAAC,EAED,MAAM8gD,EAAU,SAAY,CAC1B,GAAI,CACF,KAAM,CAAC,EAAGhiC,CAAI,EAAGskF,CAAK,EAAI,MAAM,QAAQ,IAAI,CAACxO,EAAoB,6BAA8C,WAAW,EAAGuN,EAAsB,qBAAqB,CAAC,EACzKI,EAAkB,MAAQzjF,EAC1B0jF,EAAS,MAAQY,EACjBf,EAA8B,MAAQe,EAAM,KAAM3rG,GAAUA,EAAM,OAAS,EAAE,EAAG,eAClF,OAASoG,EAAG,CACV,MAAA0kG,EAAkB,MAAQC,EAAS,MAAQ,GACrC3kG,CACR,CACF,EAEA,eAAewlG,EAAuBC,EAAgE,CACpG,MAAM,QAAQ,IAAIA,EAAU,IAAKrB,GAAarN,EAAoB,sBAAsB,qBAAqBqN,EAAS,IAAI,GAAI,CAAE,gBAAiB,CAACA,EAAS,gBAAiB,CAAC,CAAC,EAC9K,MAAMnhD,EAAA,CACR,CAEA,SAASyiD,EAAoBtB,EAA2B,CACtD,MAAM76B,EAAQ66B,EAAS,YAAcA,EAAS,WAE9C,OAAIA,EAAS,gBACJ,GAAGA,EAAS,WAAW,IAAI76B,CAAK,GAEhC,GAAG66B,EAAS,WAAW,EAElC,CAEA,SAASkB,EAAwB5pF,EAAgB,CAC/C+oF,EAAqB,MAAQ/oF,CAC/B,CAEA,SAASiqF,EAAgB/rG,EAAe,CACtCuqD,EAAa,MAAQvqD,CACvB,CAEA,SAASirG,EAAsBY,EAA4Bd,EAAiD,CAG1G,MAFqB,CAAC,GAAG,IAAI,IAAIc,EAAU,IAAKrB,GAAaA,EAAS,IAAI,CAAC,CAAC,EAExD,IAAKh5B,GAAiB,CACxC,MAAMs5B,EAAoBe,EAAU,OAAQrB,GAAaA,EAAS,OAASh5B,CAAY,EAGjFw6B,EAFYlB,EAAkB,OAAQN,GAAaA,EAAS,uBAAyBA,EAAS,sBAAsB,kBAAoB/C,GAAe,KAAK,EAErI,OACvBwE,EAAYnB,EAAkB,OAASkB,EAE7C,MAAO,CACL,GAAIx6B,EACJ,KAAMA,EACN,YAAaw6B,EACb,WAAYC,EACZ,YAAanB,EAAkB,OAAQN,GAAa,CAACA,EAAS,iBAAiB,EAAE,OACjF,gBAAiBO,EAAS,KAAM/qG,GAAUA,EAAM,OAASwxE,CAAY,GAAG,iBAAmBo5B,EAA8B,MACzH,sBAAuB,CACrB,gBAAiBoB,EAAa,EAAIvE,GAAe,MAAQA,GAAe,KACxE,eAAgBqD,EAAkB,OAAO,CAACoB,EAAmC1B,KACvEA,GAAS,sBACP0B,EACKt7B,GAAO,IAAI45B,GAAS,sBAAsB,cAAc,EAAI55B,GAAO,IAAIs7B,EAAY,sBAAuB,cAAc,EAAI1B,GAAW0B,EAEzI1B,GAEF0B,EACN,IAAI,GAAG,uBAAuB,gBAEnC,kBAAmBpB,EAAkB,MAAON,GAAaA,EAAS,iBAAiB,EAEvF,CAAC,CACH,CAEA,MAAO,CACL,QAAAnhD,EACA,8BAAAuhD,EACA,uBAAAgB,EACA,gBAAAZ,EACA,kBAAAE,EACA,kBAAAJ,EACA,iBAAAK,EACA,yBAAAC,EACA,mBAAAC,EACA,2BAAAC,EACA,sBAAAC,EACA,oBAAAO,EACA,gBAAAnB,EACA,qBAAAE,EACA,aAAAtgD,EACA,gBAAAwhD,CAAA,CAEJ,CAAC,EC3LDI,GAAetF,GAAoB,aAAc4D,GAAoB,GAAI,mDCGzE,KAAM,CAAE,MAAArkD,CAAA,EAAU+lD,GAAA,oBAIhBthD,GAAsI28C,GAAA,CAAtH,QAASpQ,EAAAhxC,CAAA,EAAM,sBAAwB,IAAKgxC,EAAAhlB,EAAA,EAAW,WAAW,KAAO,KAAMglB,EAAAc,EAAA,eAAa,IAAU,IAAA90C,EAAA,KAAAA,EAAA,OAAV,aAAU,kGCHxH,KAAM,CAAE,MAAOgpD,CAAA,EAAerF,GAAA,EACxB,CAAE,mBAAAnC,CAAA,EAAuBn8C,GAAY2jD,CAAU,oBAInDvhD,GAAoI28C,GAAA,CAApH,QAASpQ,EAAAwN,CAAA,EAAqB,IAAKxN,EAAAhlB,EAAA,EAAW,cAAc,KAAO,KAAMglB,EAAAE,EAAA,eAAY,IAAe,IAAAl0C,EAAA,KAAAA,EAAA,OAAf,kBAAe,sUCFpHL,EAAA,EAAAC,EA0BM,MA1BNC,GA0BM,CAzBJ9lB,GAwB0BkvE,GAAA,iBAvBxB,IAsBoB,CAtBpBlvE,GAsBoBmvE,GAAA,iBArBlB,IAoBM,CApBNppD,EAoBM,MApBNC,GAoBM,CAnBJD,EAiBM,MAjBNG,GAiBM,CAhBJD,EAAA,KAAAA,EAAA,GAAAF,EAAsB,UAAlB,gBAAa,KACjBA,EAcM,MAdNM,GAcM,CAbJN,EAYM,MAZNW,GAYM,CAXJX,EAUM,MAVNm4C,GAUM,CATJn4C,EAEM,MAFNo4C,GAEM,CADJn+D,GAA2BovE,EAAA,IAE7BrpD,EAEM,MAFNq4C,GAEM,CADJp+D,GAA+BqvE,EAAA,IAEjCtpD,EAEM,MAFNs4C,GAEM,CADJr+D,GAA6BsvE,EAAA,YAMvCtvE,GAAiCuvE,EAAA,sEC9B3C,SAAwBC,GAAgB9yE,EAAc,CACpD,MAAMmX,EAAQ2R,GAAA,EACRiqD,EAAY1wD,GAAQ,CAAE,GAAIriB,CAAA,CAAM,EAAE,MAAM,MAE9C,OAAOmX,EAAM,QAAQ,KAAM+H,GAAUA,EAAM,OAAS6zD,EAAU,IAAI,CACpE,ofCEA,MAAMC,EAAmB/jD,KAAmB,iBACtC,CAAE,MAAOgkD,CAAA,EAA6B/F,GAAA,EAC5C+F,EAAyB,6BACzB,MAAM5H,EAAkB4H,EAAyB,gBAC3C,CAAE,mBAAAlI,EAAoB,qBAAAC,EAAsB,2BAAAC,CAAA,EAA+Br8C,GAAYqkD,CAAwB,oBAInHjiD,GA+CoByhD,GAAA,iBA9ClB,IA6CM,CA7CNppD,EA6CM,MA7CND,GA6CM,aA5CJC,EAIM,OAJD,MAAM,OAAK,CACdA,EAEM,OAFD,MAAM,UAAQ,CACjBA,EAAwB,UAApB,iBAAe,UAGvBA,EAqCM,MArCNC,GAqCM,CApCJD,EAmCM,MAnCNG,GAmCM,CAlCJH,EAiCM,MAjCNM,GAiCM,CA/BJN,EAMK,MANA,MAAKqB,GAAA,QAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,IAAI,GAAKglB,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,MAAM,KAAI,iBAAoBglB,EAAA8N,CAAA,EAAgB,WAAS,CAAK9N,EAAA8N,CAAA,EAAgB,kBAAiB,IACjO/nE,GAGai6D,EAAAh6C,EAAA,GAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,kBAAM,IAEnE,gBAFmE,0BAEnE,KAAA26B,GAAA7pD,EAAoD,YAAZ,QAAK,UAA/Bk0C,EAAAwN,CAAA,IAAkB,sBAEtBxN,EAAAwN,CAAA,IAAkB,OAA9B5hD,EAA6J,OAA7Ja,GAAqJ,GAAC,gBAIxJX,EAGK,MAHA,iBAAiBk0C,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,eAAe,IAAI,YAAcglB,EAAA8N,CAAA,EAAgB,WAAS,CAAK9N,EAAA8N,CAAA,EAAgB,kBAAiB,IAC7J/nE,GAAgGi6D,EAAAh6C,EAAA,GAAnF,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,eAAe,kBAAM,IAAoB,IAAAhvB,EAAA,KAAAA,EAAA,OAApB,uBAAoB,uBACvEg0C,EAAAwN,CAAA,IAAkB,OAA9B5hD,EAAmG,OAAnGq4C,GAAmG93C,GAA5B6zC,EAAAwN,CAAA,CAAkB,mBAI3F1hD,EAGK,MAHA,MAAKqB,GAAA,QAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,IAAI,GAAKglB,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,aAAa,KAAI,iBAAoBglB,EAAA8N,CAAA,EAAgB,WAAS,CAAK9N,EAAA8N,CAAA,EAAgB,kBAAiB,IACxO/nE,GAAyGi6D,EAAAh6C,EAAA,GAA5F,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,kBAAM,IAAuB,IAAAhvB,EAAA,KAAAA,EAAA,OAAvB,0BAAuB,uBAChFg0C,EAAAyN,CAAA,IAAoB,OAAhC7hD,EAAgK,OAAhKs4C,GAAwJ,GAAC,gBAI3Jp4C,EAGK,MAHA,iBAAiBk0C,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,gBAAgB,IAAI,YAAcglB,EAAA8N,CAAA,EAAgB,WAAS,CAAK9N,EAAA8N,CAAA,EAAgB,kBAAiB,IAC9J/nE,GAAkGi6D,EAAAh6C,EAAA,GAArF,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,gBAAgB,kBAAM,IAAqB,IAAAhvB,EAAA,KAAAA,EAAA,OAArB,wBAAqB,uBACzEg0C,EAAAyN,CAAA,IAAoB,OAAhC7hD,EAAuG,OAAvGu4C,GAAuGh4C,GAA9B6zC,EAAAyN,CAAA,CAAoB,mBAIrFzN,EAAAyV,CAAA,OAAV7pD,EAGK,YAHwB,iBAAiBo0C,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,eAAe,IAAI,YAAcglB,EAAA8N,CAAA,EAAgB,WAAS,CAAK9N,EAAA8N,CAAA,EAAgB,kBAAiB,IACrL/nE,GAA4Fi6D,EAAAh6C,EAAA,GAA/E,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,eAAe,kBAAM,IAAgB,IAAAhvB,EAAA,KAAAA,EAAA,OAAhB,mBAAgB,uBACnEg0C,EAAA0N,CAAA,IAA0B,OAAtC9hD,EAAmH,OAAnHw4C,GAAmHj4C,GAApC6zC,EAAA0N,CAAA,CAA0B,mCAKjH3nE,GAAci6D,EAAAz4C,EAAA,iBCrDpB,IAAIkK,GAAgB,CAChB,YAAa,KACb,KAAM,WACN,OAAQ,GACR,OAAQ,GACR,SAAU,gBACd,EACImkD,IAAmC,UAAY,CAC/C,SAASA,GAAoB,CACzB,KAAK,uBAAyBnkD,EAClC,CACA,OAAAmkD,EAAkB,UAAU,OAAS,SAAUrkD,EAAQ,CACnD,QAASskD,KAAgB,KAAK,uBAC1B,KAAK,uBAAuBA,CAAY,EAAItkD,EAAOskD,CAAY,EACzDtkD,EAAOskD,CAAY,EACnBpkD,GAAcokD,CAAY,CAExC,EACAD,EAAkB,UAAU,IAAM,SAAUE,EAAS,CACjD,IAAIltG,EAAQ,mBAAmB,SAAS,OAAO,QAAQ,IAAI,OAAO,mBAC9D,mBAAmBktG,CAAO,EAAE,QAAQ,cAAe,MAAM,EACzD,6BAA6B,EAAG,IAAI,CAAC,GAAK,KAC9C,GAAIltG,GACAA,EAAM,UAAU,EAAG,CAAC,IAAM,KAC1BA,EAAM,UAAUA,EAAM,OAAS,EAAGA,EAAM,MAAM,IAAM,IACpD,GAAI,CACAA,EAAQ,KAAK,MAAMA,CAAK,CAC5B,MACU,CACN,OAAOA,CACX,CAEJ,OAAOA,CACX,EACAgtG,EAAkB,UAAU,IAAM,SAAUE,EAASltG,EAAOmtG,EAAatzE,EAAMuzE,EAAQC,EAAQC,EAAU,CACrG,GAAKJ,GAGA,GAAI,qDAAqD,KAAKA,CAAO,EACtE,MAAM,IAAI,MAAM,yHACZA,CAAO,MAJX,OAAM,IAAI,MAAM,iDAAiD,EAOjEltG,GAASA,EAAM,cAAgB,SAC/BA,EAAQ,KAAK,UAAUA,CAAK,GAEhC,IAAIutG,EAAW,GAMf,GALIJ,GAAe,OACfA,EAAc,KAAK,uBAAuB,YACpC,KAAK,uBAAuB,YAC5B,IAENA,GAAeA,GAAe,EAC9B,OAAQA,EAAY,YAAW,CAC3B,KAAK,OACGA,IAAgB,KAAYA,IAAgB,GAC5CI,EAAW,0CAEXA,EAAW,aAAeJ,EAC9B,MACJ,KAAK,OACD,GAAI,4BAA4B,KAAKA,CAAW,EAAG,CAE/C,IAAIK,EAAcL,EAAY,QAAQ,4BAA6B,IAAI,EAEvE,OAAQA,EACH,QAAQ,4BAA6B,IAAI,EACzC,YAAW,EAAE,CAEd,IAAK,IACDI,EAAW,cAAe,CAACC,EAAc,OACzC,MACJ,IAAK,IACDD,EAAW,cAAe,CAACC,EAAc,MACzC,MACJ,IAAK,IACDD,EAAW,cAAe,CAACC,EAAc,KACzC,MACJ,IAAK,MACDD,EAAW,cAAe,CAACC,EAAc,GACzC,MACJ,IAAK,IACDD,EAAW,aAAeC,EAC1B,MACJ,IAAK,IACDD,EAAW,cAAe,CAACC,EAAc,QACzC,KAGhC,CACoB,MAEID,EAAW,aAAeJ,EAE9B,MACJ,KAAK,KACDI,EAAW,aAAeJ,EAAY,cACtC,KACpB,CAEQ,gBAAS,OACL,mBAAmBD,CAAO,EACtB,IACA,mBAAmBltG,CAAK,EACxButG,GACCH,EACK,YAAcA,EACd,KAAK,uBAAuB,OACxB,KAAK,uBAAuB,OAC5B,KACTvzE,EACK,UAAYA,EACZ,KAAK,uBAAuB,KACxB,KAAK,uBAAuB,KAC5B,aACTwzE,GAAU,KACL,KAAK,uBAAuB,OACxB,WACA,GACJA,EACI,WACA,KACTC,GAAY,KACP,KAAK,uBAAuB,SACxB,cAAgB,KAAK,uBAAuB,SAC5C,GACJA,EACI,cAAgBA,EAChB,IACX,IACX,EACAN,EAAkB,UAAU,OAAS,SAAUE,EAASrzE,EAAMuzE,EAAQ,CAClE,MAAI,CAACF,GAAW,CAAC,KAAK,MAAMA,CAAO,EACxB,IAEX,SAAS,OACL,mBAAmBA,CAAO,EACtB,4CACCE,EACK,YAAcA,EACd,KAAK,uBAAuB,OACxB,KAAK,uBAAuB,OAC5B,KACTvzE,EACK,UAAYA,EACZ,KAAK,uBAAuB,KACxB,KAAK,uBAAuB,KAC5B,YACV,iBACD,GACX,EACAmzE,EAAkB,UAAU,MAAQ,SAAUE,EAAS,CACnD,OAAO,IAAI,OAAO,cACd,mBAAmBA,CAAO,EAAE,QAAQ,cAAe,MAAM,EACzD,SAAS,EAAE,KAAK,SAAS,MAAM,CACvC,EACAF,EAAkB,UAAU,KAAO,UAAY,CAC3C,GAAI,CAAC,SAAS,OACV,MAAO,GAIX,QAHIS,EAAQ,SAAS,OAChB,QAAQ,0DAA2D,EAAE,EACrE,MAAM,qBAAqB,EACvBC,EAAS,EAAGA,EAASD,EAAM,OAAQC,IACxCD,EAAMC,CAAM,EAAI,mBAAmBD,EAAMC,CAAM,CAAC,EAEpD,OAAOD,CACX,EACOT,CACX,GAAC,EASGW,GAAyB,KAO7B,SAASC,IAAa,CACdD,IAA0B,OAC1BA,GAAyB,IAAIX,IAEjC,IAAIa,EAAU/hG,GAAS6hG,EAAsB,EAC7C,MAAO,CAAE,QAASE,EACtB,CC3LO,MAAMC,GAAkC1lD,GAAY,+BAAgC,IAAM,CAC/F,KAAM,CAAE,QAAAylD,CAAA,EAAYD,GAAA,EACd58D,EAAQ2R,GAAA,EACRxG,EAASuG,GAAA,EAETqrD,EAAqC,CACzC,CAAE,KAAM,EAAG,KAAM,KAAM,mBAAoB,EAAI,IAAM,oBAAqB,4DAC1E,CAAE,KAAM,EAAG,KAAM,KAAM,mBAAoB,EAAI,IAAM,oBAAqB,gEAC1E,CAAE,KAAM,GAAI,KAAM,MAAO,mBAAoB,GAAK,IAAM,oBAAqB,kEAC7E,CAAE,KAAM,GAAI,KAAM,MAAO,mBAAoB,GAAK,IAAM,oBAAqB,kEAC7E,CAAE,KAAM,GAAI,KAAM,MAAO,mBAAoB,GAAK,IAAM,oBAAqB,kEAC7E,CAAE,KAAM,GAAI,KAAM,KAAM,mBAAoB,GAAK,IAAM,oBAAqB,yDAAyD,EAGvI,SAASC,EAAiBh9D,EAAuCi9D,EAA0B,CACzF,MAAMzpC,EAASypC,IAAoBj9D,GAAO,OAAO,eAAe,YAAc68D,EAAQ,IAAI,gBAAgB,GAE1G,OAAOK,EAAW,MAAM,KAAMpjG,GAAUA,EAAM,OAAS,SAAS05D,CAAM,CAAC,GAAKupC,EAAQ,CAAC,CACvF,CAEA,MAAMG,EAAaj/F,GAA+B8+F,CAAO,EAEnD77B,EAAgBjjE,GAA6B++F,EAAiBh9D,CAAK,CAAC,EAM1E,eAAem9D,EAAiBF,EAA0B,CACxD/7B,EAAc,MAAQ87B,EAAiBh9D,EAAOi9D,CAAe,EAC7DJ,EAAQ,IAAI,iBAAkB37B,EAAc,MAAM,KAAK,UAAU,EACjE,MAAM/1B,EAAO,QAAQ,CAAE,MAAO,CAAE,GAAGnL,EAAM,MAAO,cAAekhC,EAAc,MAAM,MAAQ,CAC7F,CAEA,MAAO,CACL,WAAAg8B,EACA,cAAAh8B,EACA,iBAAAi8B,CAAA,CAEJ,CAAC,ECzCYC,GAAqBhmD,GAAY,kBAAmB,IAAM,CACrE,MAAMimD,EAAqBP,GAAA,EAErB98D,EAAQ2R,GAAA,EACRxG,EAASuG,GAAA,EACT,CAAE,MAAOskD,CAAA,EAAoBD,GAAA,EAC7B5J,EAAsBp0C,GAAA,EAGtBulD,EAAWr/F,GAAI,CACnB,iBAAkB,GAClB,cAAe,EACf,iBAAkB,EACnB,EAEKs/F,EAASt/F,GAAc,CAC3B,SAAU,OACV,YAAa,GACd,EAEKu/F,EAAev/F,GAAgB,EAAE,EACjCw/F,EAA4Bx/F,GAAI,CAAC,EACjCy/F,EAAez/F,GAAI,EAAE,EACrB0/F,EAAoB9nG,EAAiB,IAAM2nG,EAAa,MAAM,MAAM,EACpEI,EAAsB/nG,EAAkB,IAAM8nG,EAAkB,QAAU,CAAC,EAC3EE,EAAwBhoG,EAAkB,IAAMynG,EAAS,MAAM,mBAAqB,CAAC,EACrFQ,EAAkBjoG,EAAqB,IAAO6nG,EAAa,MAAQF,EAAa,MAAM,OAAQhE,GAAaA,EAAS,KAAK,cAAc,SAASkE,EAAa,MAAM,aAAa,CAAC,EAAIF,EAAa,KAAM,EAE9M/8F,GAAM88F,EAAQ,SAAY,MAAMQ,EAAA,EAAsB,CAAE,KAAM,GAAM,EACpEt9F,GAAMi9F,EAAc,MAAOnmG,GAAa,CACtC,MAAMymG,EAAmBzmG,CAAQ,CACnC,CAAC,EAGD,eAAeymG,EAAmBltF,EAAwB,KAAM,CAG9D,GAFA4sF,EAAa,MAAQ5sF,GAAUkvB,EAAM,MAAM,QAAQ,YAAc,GAE7D09D,EAAa,QAAU,GAAI,CAE7B,KAAM,CAAE,OAAA5sF,EAAQ,GAAGmtF,CAAA,EAAkBj+D,EAAM,MAC3C,MAAMmL,EAAO,QAAQ,CAAE,MAAO8yD,EAAe,CAC/C,MACE,MAAM9yD,EAAO,QAAQ,CAAE,MAAO,CAAE,GAAGnL,EAAM,MAAO,OAAQ09D,EAAa,MAAM,CAAG,EAEhFQ,EAAA,CACF,CAEA,eAAeH,GAAqB,CAC9B/H,EAAgB,0BAA0B,gBAC5CwH,EAAa,MAAQ,GAErBA,EAAa,MAAQ,MAAMW,EAAA,EAExBP,EAAoB,QACvBQ,EAAA,EACIP,EAAsB,MACxBK,EAAA,EAEAG,EAAA,EAGN,CAEA,eAAeF,GAA2B,CACxC,IAAItD,EAAwB,GAC5B,GAAI1O,EAAoB,oBACtB,GAAI,CACF,KAAM,EAAG91E,CAAI,EAAI,MAAM81E,EAAoB,yBAAqC,+BAA+BkR,EAAmB,cAAc,IAAI,EAAE,EACtJxC,EAAYxkF,GAAQ,GACpB,KAAM,EAAGioF,CAAe,EAAI,MAAMnS,EAAoB,6BAA+C,qCAAqC,EAGtImS,EAAgB,OAAS,IAE3BA,EAAgB,KAAK,CAACrsG,EAAGC,IAAOD,EAAE,MAAQC,EAAE,MAAQ,EAAID,EAAE,MAAQC,EAAE,MAAQ,GAAK,CAAE,EACnFosG,EACG,OAAQC,GAAmBA,EAAe,mBAAqB,kBAAkB,EACjF,QAASA,GAAmB,CAC3B,MAAMC,EAAoB3D,EAAU,KAAM/pG,GAASA,EAAK,OAASytG,EAAe,KAAK,EACjFC,IACFA,EAAkB,iBAAmBD,EAAe,GACpDC,EAAkB,WAAaD,EAAe,MAElD,CAAC,EAEP,OAASjpG,EAAO,CACd,QAAQ,MAAMA,CAAK,CACrB,CAEF,OAAOulG,CACT,CAEA,SAAS4D,EAAuBC,EAAmB,CACjDpB,EAAS,MAAM,iBAAmBoB,EAC9BA,IAAc,EAChBL,EAAA,EAEAH,EAAA,CAEJ,CAEA,SAASE,GAAsB,CAC7Bd,EAAS,MAAM,cAAgBE,EAAa,MAAM,OAAO,CAACzjG,EAAK+I,IAAQ,KAAK,IAAI/I,EAAK+I,EAAI,KAAK,MAAM,GAAG,EAAE,OAAS,CAAC,EAAG,CAAC,CACzH,CAEA,SAASo7F,GAAyB,CAChC,MAAMS,MAAa,IACnB,UAAW9zB,KAAWizB,EAAgB,MAAO,CAC3C,MAAMc,EAAcC,EAAch0B,EAASyyB,EAAS,MAAM,gBAAgB,EAEpEwB,EAAcH,EAAO,IAAIC,EAAY,SAAS,GAAK,CACvD,MAAOA,EAAY,UACnB,UAAW,EAAC,EAEdE,EAAY,UAAU,KAAKF,CAAW,EACtCD,EAAO,IAAIC,EAAY,UAAWE,CAAW,CAC/C,CAEAxB,EAAS,MAAM,iBAAmB,CAAC,GAAGqB,EAAO,QAAQ,EACrDI,EAAA,CACF,CAEA,SAASF,EAAcrF,EAAoBwF,EAA0B,CACnE,GAAIA,IAAqB,EACvB,MAAO,CACL,UAAW,YACX,UAAWxF,EAAS,KACpB,SAAAA,CAAA,EAIJ,MAAM1wE,EAAW0wE,EAAS,KAAK,MAAM,GAAG,EAClCyF,EAAgBn2E,EAAS,MAAM,EAAGk2E,CAAgB,EAClDE,EAAmBp2E,EAAS,MAAMk2E,CAAgB,EACxD,OAAIE,EAAiB,SAAW,EAEvBL,EAAcrF,EAAUwF,EAAmB,CAAC,EAG9C,CACL,UAAWC,EAAc,KAAK,GAAG,EACjC,UAAWC,EAAiB,KAAK,GAAG,EACpC,SAAA1F,CAAA,CAEJ,CAEA,SAAS6E,GAAmB,CAC1B,MAAMc,EACA5B,EAAO,MAAM,WAAa,OACrB,CAACtrG,EAAaC,IAAiBqrG,EAAO,MAAM,YAActrG,EAAE,KAAK,cAAcC,EAAE,IAAI,EAAIA,EAAE,KAAK,cAAcD,EAAE,IAAI,EAEpH,CAACA,EAAaC,IAAgB,CACnC,MAAMktG,EAAYntG,EAAE,QAAQsrG,EAAO,MAAM,QAAQ,EAAE,QAC7C8B,EAAYntG,EAAE,QAAQqrG,EAAO,MAAM,QAAQ,EAAE,QAEnD,OAAOA,EAAO,MAAM,YAAc6B,EAAYC,EAAYA,EAAYD,CACxE,EAIJ5B,EAAa,MAAM,KAAK2B,CAAU,CACpC,CAEA,SAASJ,GAA0B,CACjC,IAAII,EACJ,MAAMG,EAA8B,CAACrtG,EAAoBC,IAChDqrG,EAAO,MAAM,YAActrG,EAAE,UAAU,cAAcC,EAAE,SAAS,EAAIA,EAAE,UAAU,cAAcD,EAAE,SAAS,EAG9GsrG,EAAO,MAAM,WAAa,SAC5B4B,EAAa,CAACltG,EAAkBC,IAAqB,CACnD,MAAMqtG,EAAattG,EAAE,MACfutG,EAAattG,EAAE,MACfutG,EAAqBxtG,EAAE,UACvBytG,GAAqBxtG,EAAE,UAG7B,OAAAutG,EAAmB,KAAKH,CAA2B,EACnDI,GAAmB,KAAKJ,CAA2B,EAE5C/B,EAAO,MAAM,YAAcgC,EAAW,cAAcC,CAAU,EAAIA,EAAW,cAAcD,CAAU,CAC9G,GAIEjC,EAAS,MAAM,iBAAiB,OAAS,EAC3CA,EAAS,MAAM,iBAAiB,KAAK6B,CAAU,EACtC7B,EAAS,MAAM,iBAAiB,SAAW,GACpDA,EAAS,MAAM,iBAAiB,CAAC,EAAE,UAAU,KAAKgC,CAA2B,CAEjF,CAEA,MAAO,CAEL,SAAAhC,EACA,aAAAE,EACA,0BAAAC,EACA,aAAAC,EACA,OAAAH,EAGA,kBAAAI,EACA,oBAAAC,EACA,sBAAAC,EACA,gBAAAC,EAGA,uBAAAW,EACA,mBAAAV,EACA,mBAAAC,CAAA,CAEJ,CAAC,8dCvND,MAAMtsG,EAAQogD,EAkBR6tD,EAAe9pG,EAAS,IAAMnE,EAAM,QAAUA,EAAM,IAAI,EACxDkuG,EAAmB/tD,iBAAsB,EACzCguD,EAAehqG,EAAS,IAAM+pG,GAAkB,OAAO,WAAaD,EAAa,KAAK,EACtFG,EAAWjqG,EAAS,IAAO+pG,GAAkB,OAAO,YAAc,UAAY,WAAY,EAEhG,SAASG,GAAa,CACpBH,EAAiB,MAAQ,CAAE,SAAUD,EAAa,MAAO,YAAaE,EAAa,MAAQ,CAACD,GAAkB,OAAO,YAAcluG,EAAM,iBAC3I,8CAIEsgD,EA8BM,OA9BD,KAAK,eAAgB,aAAYtgD,EAAM,OAC1CwgD,EA4BM,MA5BNC,GA4BM,CA3BUzgD,EAAM,cAApBsgD,EAcS,gBAdsB,QAAO+tD,EAAY,MAAM,uBAAwB,aAAYruG,EAAM,OAChGwgD,EAYO,mBAXFxgD,EAAM,KAAK,EAAG,IACjB,GAAYA,EAAM,MAAlBqgD,EAAA,EAAAC,EAAyE,OAAzEQ,GAAyED,GAApB7gD,EAAM,IAAI,eACnDmuG,EAAA,WAAZ7tD,EAEO,OAAAa,GAAA,CADLX,EAA2D,KAAxD,KAAK,MAAO,SAAO4tD,EAAA,KAAQ,EAAG,aAAYA,EAAA,+BAElCE,SAAO,UAApBnmD,GAKQomD,EAAA,OALkB,YAAU,QAAS,YAAavuG,EAAM,kBAEnD,WACT,IAAoB,CAApBioD,GAAoBC,EAAA,yCAFtB,IAA4C,CAA5CztB,GAA4Ci+D,GAAA,CAAnC,KAAMhE,EAAA6D,EAAA,EAAc,MAAM,wEAOzCl4C,IAAAC,EAWM,MAXNs4C,GAWM,CAVJp4C,EAGO,mBAFFxgD,EAAM,KAAK,EAAG,IACjB,GAAYA,EAAM,MAAlBqgD,EAAA,EAAAC,EAAyE,OAAzEu4C,GAAyEh4C,GAApB7gD,EAAM,IAAI,iBAEpDsuG,SAAO,UAApBnmD,GAKQomD,EAAA,OALkB,YAAU,QAAS,YAAavuG,EAAM,kBAEnD,WACT,IAAoB,CAApBioD,GAAoBC,EAAA,yCAFtB,IAA4C,CAA5CztB,GAA4Ci+D,GAAA,CAAnC,KAAMhE,EAAA6D,EAAA,EAAc,MAAM,yHCvDtC,SAASiW,GAAoBhmD,EAAuC,CACzE,GAAIA,GAAS,KAAM,CACjB,MAAMimD,EAAYjmD,EAAM,OAAO,OAAS,EAAIA,EAAM,OAAOA,EAAM,OAAO,OAAS,CAAC,EAAI,EACpF,OAAOoxC,GAAc6U,CAAS,CAChC,CACA,MAAO,CAAE,MAAO,IAAK,KAAM,GAC7B,CAEO,SAASC,GAA6BlmD,EAAgBmmD,EAAuB,CAClFnmD,EAAQA,GAAS,EACjB,IAAI0xC,EAAW,EACf,OAAI1xC,EAAQ,IAAMA,EAAQ,OACxB0xC,EAAW,GAENF,GAAqBxxC,EAAOmmD,GAAQzU,CAAQ,CACrD,CAEO,SAAS0U,GAAmBpmD,EAAwBmmD,EAAuB,CAChFnmD,EAAQA,GAAS,CACf,OAAQ,GACR,QAAS,GAEX,MAAMimD,EAAYjmD,EAAM,OAAO,OAAS,EAAIA,EAAM,OAAOA,EAAM,OAAO,OAAS,CAAC,EAAI,EACpF,OAAOkmD,GAA6BD,EAAWE,CAAI,CACrD,CAEO,MAAME,GAA0B,OAAO,OAAO,CACnD,YAAa,GACb,kBAAmB,GACnB,mBAAoB,EACtB,CAAC,EAEYC,GAA0B,OAAO,OAAO,CACnD,YAAa,GACb,WAAY,GACZ,QAAS,GACT,eAAgB,GAChB,aAAc,EAChB,CAAC,ECtCM,SAASC,GAASC,EAAsCC,EAAwCC,EAAY,IAAM,GAAI,CAC3H,MAAMC,EAAa5iG,GAAI,EAAE,EACvB6iG,EAAa7iG,GAAI,EAAE,EACnB8iG,EAAW9iG,GAAI,EAAE,EACjB+iG,EAAU/iG,GAAI,CAAC,EACfgjG,EAAchjG,GAAI,EAAE,EAEhBijG,EAAc,IAAM,CACxB,MAAMC,EAAW1iG,GAAQiiG,CAAQ,GAAK,CAAE,OAAQ,GAAI,QAAS,GACvDj+F,GAAU,IAAM,CACpB,IAAIlJ,EAAS4nG,EAAS,OACtB,OAAI5nG,EAAO,SAAW,IACpBA,EAAS,IAAI,MAAMkF,GAAQmiG,CAAS,CAAC,EAAE,KAAK,CAAC,GAExCrnG,CACT,KACM6nG,EAAQ,KAAO3+F,EAAO,OAAS,GAC/B4+F,EAAc5+F,EAAO,OAAO,CAAC6+F,EAAsBC,EAAQtzG,IAAM,CAAC,GAAGqzG,EAAQ,CAACrzG,EAAImzG,EAAOG,CAAM,CAAe,EAAG,EAAE,EACzHV,EAAW,MAAQ,IAAIW,GAAA,EAAO,QAAQH,EAAY,CAAC,CAAC,EAAE,kBAAkBA,EAAY,MAAM,CAAC,CAAC,EAAE,WAC9FP,EAAW,MAAQ,IAAIU,GAAA,EAAO,QAAQ,CAAC,EAAG,CAAC,CAAC,EAAE,kBAAkBH,CAAW,EAAE,OAAO,CAAC,IAAK,CAAC,CAAC,EAAE,QAAQ,WAEtGL,EAAQ,MAAQG,EAAS,QAGzB,MAAMM,EAAWhjG,GAAQkiG,CAAY,GAAK,GACpCe,EAAgB,MAAMD,CAAQ,EAAuB,GAAnB,OAAOA,CAAQ,EACvDV,EAAS,MAAQ,KAAK,IAAQ,GAAGt+F,EAAQu+F,EAAQ,MAAQ,IAAKU,CAAa,EAE3ET,EAAY,MAAQ,IAAIO,GAAA,EAAO,QAAQ,CAAC,EAAGR,EAAQ,KAAK,CAAC,EAAE,OAAO,CAAC,IAAKA,EAAQ,KAAK,CAAC,EAAE,UAC1F,EAEA,OAAA94E,GAAY,IAAMg5E,GAAa,EAExB,CAAE,WAAAL,EAAY,WAAAC,EAAY,SAAAC,EAAU,QAAAC,EAAS,YAAAC,CAAA,CACtD,CAEA,MAAMO,EAAK,CACTG,GAA0B,GAC1BC,GAAY,GAEZ,QAAQ,CAACjpG,EAAG8pD,CAAC,EAAe,CAC1B,GAAI,KAAKk/C,GAAc,OAAS,EAAG,MAAM,IAAI,MAAM,0CAA0C,EAC7F,OAAO,KAAK,OAAO,CAAChpG,EAAG8pD,CAAC,CAAC,CAC3B,CAEA,OAAO,CAAC9pD,EAAG8pD,CAAC,EAAe,CACzB,GAAI,KAAKm/C,GAAW,MAAM,IAAI,MAAM,wBAAwB,EAC5D,YAAKD,GAAc,KAAK,IAAIhpG,CAAC,IAAI8pD,CAAC,EAAE,EAC7B,IACT,CAEA,OAAO,CAAC9pD,EAAG8pD,CAAC,EAAe,CACzB,GAAI,KAAKm/C,GAAW,MAAM,IAAI,MAAM,wBAAwB,EAC5D,YAAKD,GAAc,KAAK,IAAIhpG,CAAC,IAAI8pD,CAAC,EAAE,EAC7B,IACT,CAEA,kBAAkB4+C,EAA2B,CAC3C,UAAW3xG,KAAK2xG,EACd,KAAK,OAAO3xG,CAAC,EAEf,OAAO,IACT,CAEA,OAAQ,CACN,GAAI,KAAKkyG,GAAW,MAAM,IAAI,MAAM,wBAAwB,EAC5D,GAAI,KAAKD,GAAc,SAAW,EAAG,MAAM,IAAI,MAAM,4BAA4B,EACjF,YAAKA,GAAc,KAAK,GAAG,EAC3B,KAAKC,GAAY,GACV,IACT,CAEA,UAAW,CACT,OAAO,KAAKD,GAAc,KAAK,GAAG,CACpC,CACF,iQCxEA,MAAMjwG,EAAQogD,EAQR+vD,EAAQ5jG,GAAI,EAAK,EAEjB,CAAE,WAAA4iG,EAAY,WAAAC,EAAY,SAAAC,EAAU,QAAAC,EAAS,YAAAC,GAAgBR,GACjE,IAAM/uG,EAAM,SACZ,IAAMA,EAAM,cAGRowG,EAAoBjsG,EAAS,IAAOnE,EAAM,gBAAkB45F,GAAc0V,EAAQ,KAAK,EAAE,MAAQtV,GAAqBsV,EAAQ,MAAO,CAAC,CAAE,EACxIe,EAAqBlsG,EAAS,IAAOnE,EAAM,gBAAkB45F,GAAc0V,EAAQ,KAAK,EAAE,KAAK,cAAiBtvG,EAAM,cAAgB,EAAI,EAG1IswG,EAAuBnsG,EAAS,IAAM,QAASmrG,EAAQ,MAAQD,EAAS,MAAS,EAAE,WAAW,oBAIlG/uD,EAgBM,OAhBD,MAAKuB,GAAA,CAAC,mCAAkC,CAAUsuD,EAAA,MAAK,cAAmB,2BAAWA,EAAA,MAAK,IAAU,0BAAUA,EAAA,MAAK,MACtH3vD,EAQM,MARND,GAQM,MAPJD,EAMM,OAND,aAAW,QAAS,mBAAoBo0C,EAAA2a,CAAA,CAAQ,GAAI,oBAAoB,SAC3E7uD,EAII,KAJA,SAAOJ,EAAA,IAAI,IACbI,EAAgD,QAAzC,EAAGk0C,EAAA0a,CAAA,EAAY,MAAM,8BAC5B5uD,EAAmF,QAA5E,EAAGk0C,EAAAya,CAAA,EAAY,gBAAc,qBAAqB,MAAM,8BAC/D3uD,EAAmF,QAA5E,EAAGk0C,EAAA6a,CAAA,EAAa,gBAAc,qBAAqB,MAAM,2CAItE/uD,EAKM,OALD,MAAKqB,GAAA,CAAC,cAAsBzB,EAAA,IAAI,GAAG,iBAAiBkwD,EAAA,MAAoB,IAC3E5vD,EAAA,KAAAA,EAAA,GAAAF,EAAc,WAAT,MAAG,KACRA,EAEM,MAFNm4C,GAEM,CADD/3C,GAAAC,GAAAuvD,EAAA,KAAiB,EAAG,IAAC,GAAA5vD,EAAqC,eAA5B6vD,EAAA,KAAkB,gECnC3D,IAAIE,GAAM,MACNC,GAAS,SACTC,GAAQ,QACRC,GAAO,OACPC,GAAO,OACPC,GAAiB,CAACL,GAAKC,GAAQC,GAAOC,EAAI,EAC1Cr+F,GAAQ,QACRC,GAAM,MACNu+F,GAAkB,kBAClBC,GAAW,WACXC,GAAS,SACTC,GAAY,YACZC,GAAmCL,GAAe,OAAO,SAAUvoG,EAAK6oG,EAAW,CACrF,OAAO7oG,EAAI,OAAO,CAAC6oG,EAAY,IAAM7+F,GAAO6+F,EAAY,IAAM5+F,EAAG,CAAC,CACpE,EAAG,EAAE,EACD6+F,GAA0B,GAAG,OAAOP,GAAgB,CAACD,EAAI,CAAC,EAAE,OAAO,SAAUtoG,EAAK6oG,EAAW,CAC/F,OAAO7oG,EAAI,OAAO,CAAC6oG,EAAWA,EAAY,IAAM7+F,GAAO6+F,EAAY,IAAM5+F,EAAG,CAAC,CAC/E,EAAG,EAAE,EAED8+F,GAAa,aACbC,GAAO,OACPC,GAAY,YAEZC,GAAa,aACb5sB,GAAO,OACP6sB,GAAY,YAEZC,GAAc,cACdC,GAAQ,QACRC,GAAa,aACbC,GAAiB,CAACR,GAAYC,GAAMC,GAAWC,GAAY5sB,GAAM6sB,GAAWC,GAAaC,GAAOC,EAAU,EAE9G,SAASE,GAAY14B,EAAS,CAC5B,OAAOA,GAAWA,EAAQ,UAAY,IAAI,YAAW,EAAK,IAC5D,CAEA,SAAS24B,GAAUz5F,EAAM,CACvB,GAAIA,GAAQ,KACV,OAAO,OAGT,GAAIA,EAAK,SAAQ,IAAO,kBAAmB,CACzC,IAAI05F,EAAgB15F,EAAK,cACzB,OAAO05F,GAAgBA,EAAc,aAAe,MACtD,CAEA,OAAO15F,CACT,CAEA,SAAS25F,GAAU35F,EAAM,CACvB,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,QACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,OACvD,CAEA,SAAS65F,GAAc75F,EAAM,CAC3B,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,YACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,WACvD,CAEA,SAAS85F,GAAa95F,EAAM,CAE1B,GAAI,OAAO,WAAe,IACxB,MAAO,GAGT,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,WACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,UACvD,CAIA,SAAS+5F,GAAY/gC,EAAM,CACzB,IAAIn4D,EAAQm4D,EAAK,MACjB,OAAO,KAAKn4D,EAAM,QAAQ,EAAE,QAAQ,SAAUpZ,EAAM,CAClD,IAAII,EAAQgZ,EAAM,OAAOpZ,CAAI,GAAK,GAC9By6E,EAAarhE,EAAM,WAAWpZ,CAAI,GAAK,GACvCq5E,EAAUjgE,EAAM,SAASpZ,CAAI,EAE7B,CAACoyG,GAAc/4B,CAAO,GAAK,CAAC04B,GAAY14B,CAAO,IAOnD,OAAO,OAAOA,EAAQ,MAAOj5E,CAAK,EAClC,OAAO,KAAKq6E,CAAU,EAAE,QAAQ,SAAUz6E,EAAM,CAC9C,IAAIxC,EAAQi9E,EAAWz6E,CAAI,EAEvBxC,IAAU,GACZ67E,EAAQ,gBAAgBr5E,CAAI,EAE5Bq5E,EAAQ,aAAar5E,EAAMxC,IAAU,GAAO,GAAKA,CAAK,CAE1D,CAAC,EACH,CAAC,CACH,CAEA,SAASqS,GAAO0pE,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MACdg5B,EAAgB,CAClB,OAAQ,CACN,SAAUn5F,EAAM,QAAQ,SACxB,KAAM,IACN,IAAK,IACL,OAAQ,GACd,EACI,MAAO,CACL,SAAU,UAChB,EACI,UAAW,EACf,EACE,cAAO,OAAOA,EAAM,SAAS,OAAO,MAAOm5F,EAAc,MAAM,EAC/Dn5F,EAAM,OAASm5F,EAEXn5F,EAAM,SAAS,OACjB,OAAO,OAAOA,EAAM,SAAS,MAAM,MAAOm5F,EAAc,KAAK,EAGxD,UAAY,CACjB,OAAO,KAAKn5F,EAAM,QAAQ,EAAE,QAAQ,SAAUpZ,EAAM,CAClD,IAAIq5E,EAAUjgE,EAAM,SAASpZ,CAAI,EAC7By6E,EAAarhE,EAAM,WAAWpZ,CAAI,GAAK,GACvCwyG,EAAkB,OAAO,KAAKp5F,EAAM,OAAO,eAAepZ,CAAI,EAAIoZ,EAAM,OAAOpZ,CAAI,EAAIuyG,EAAcvyG,CAAI,CAAC,EAE1GI,EAAQoyG,EAAgB,OAAO,SAAUpyG,EAAOuiE,EAAU,CAC5D,OAAAviE,EAAMuiE,CAAQ,EAAI,GACXviE,CACT,EAAG,EAAE,EAED,CAACgyG,GAAc/4B,CAAO,GAAK,CAAC04B,GAAY14B,CAAO,IAInD,OAAO,OAAOA,EAAQ,MAAOj5E,CAAK,EAClC,OAAO,KAAKq6E,CAAU,EAAE,QAAQ,SAAUg4B,EAAW,CACnDp5B,EAAQ,gBAAgBo5B,CAAS,CACnC,CAAC,EACH,CAAC,CACH,CACF,CAGA,IAAIC,GAAgB,CAClB,KAAM,cACN,QAAS,GACT,MAAO,QACP,GAAIJ,GACJ,OAAQziG,GACR,SAAU,CAAC,eAAe,CAC5B,EAEA,SAAS8iG,GAAiBvB,EAAW,CACnC,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CAEA,IAAI7wF,GAAM,KAAK,IACXi+C,GAAM,KAAK,IACX0N,GAAQ,KAAK,MAEjB,SAAS0mC,GAAsBv5B,EAASw5B,EAAc,CAChDA,IAAiB,SACnBA,EAAe,IAGjB,IAAIC,EAAOz5B,EAAQ,sBAAqB,EACpC05B,EAAS,EACTC,EAAS,EAEb,GAAIZ,GAAc/4B,CAAO,GAAKw5B,EAAc,CAC1C,IAAII,EAAe55B,EAAQ,aACvB65B,EAAc75B,EAAQ,YAGtB65B,EAAc,IAChBH,EAAS7mC,GAAM4mC,EAAK,KAAK,EAAII,GAAe,GAG1CD,EAAe,IACjBD,EAAS9mC,GAAM4mC,EAAK,MAAM,EAAIG,GAAgB,EAElD,CAEA,MAAO,CACL,MAAOH,EAAK,MAAQC,EACpB,OAAQD,EAAK,OAASE,EACtB,IAAKF,EAAK,IAAME,EAChB,MAAOF,EAAK,MAAQC,EACpB,OAAQD,EAAK,OAASE,EACtB,KAAMF,EAAK,KAAOC,EAClB,EAAGD,EAAK,KAAOC,EACf,EAAGD,EAAK,IAAME,CAClB,CACA,CAIA,SAASG,GAAc95B,EAAS,CAC9B,IAAI+5B,EAAaR,GAAsBv5B,CAAO,EAG1CkC,EAAQlC,EAAQ,YAChBoC,EAASpC,EAAQ,aAErB,OAAI,KAAK,IAAI+5B,EAAW,MAAQ73B,CAAK,GAAK,IACxCA,EAAQ63B,EAAW,OAGjB,KAAK,IAAIA,EAAW,OAAS33B,CAAM,GAAK,IAC1CA,EAAS23B,EAAW,QAGf,CACL,EAAG/5B,EAAQ,WACX,EAAGA,EAAQ,UACX,MAAOkC,EACP,OAAQE,CACZ,CACA,CAEA,SAAS43B,GAAS7gF,EAAQva,EAAO,CAC/B,IAAIq7F,EAAWr7F,EAAM,aAAeA,EAAM,YAAW,EAErD,GAAIua,EAAO,SAASva,CAAK,EACvB,MAAO,GAEJ,GAAIq7F,GAAYjB,GAAaiB,CAAQ,EAAG,CACzC,IAAIzvG,EAAOoU,EAEX,EAAG,CACD,GAAIpU,GAAQ2uB,EAAO,WAAW3uB,CAAI,EAChC,MAAO,GAITA,EAAOA,EAAK,YAAcA,EAAK,IACjC,OAASA,EACX,CAGF,MAAO,EACT,CAEA,SAAS0vG,GAAiBl6B,EAAS,CACjC,OAAO24B,GAAU34B,CAAO,EAAE,iBAAiBA,CAAO,CACpD,CAEA,SAASm6B,GAAen6B,EAAS,CAC/B,MAAO,CAAC,QAAS,KAAM,IAAI,EAAE,QAAQ04B,GAAY14B,CAAO,CAAC,GAAK,CAChE,CAEA,SAASo6B,GAAmBp6B,EAAS,CAEnC,QAAS64B,GAAU74B,CAAO,EAAIA,EAAQ,cACtCA,EAAQ,WAAa,OAAO,UAAU,eACxC,CAEA,SAASq6B,GAAcr6B,EAAS,CAC9B,OAAI04B,GAAY14B,CAAO,IAAM,OACpBA,EAMPA,EAAQ,cACRA,EAAQ,aACRg5B,GAAah5B,CAAO,EAAIA,EAAQ,KAAO,OAEvCo6B,GAAmBp6B,CAAO,CAG9B,CAEA,SAASs6B,GAAoBt6B,EAAS,CACpC,MAAI,CAAC+4B,GAAc/4B,CAAO,GAC1Bk6B,GAAiBl6B,CAAO,EAAE,WAAa,QAC9B,KAGFA,EAAQ,YACjB,CAIA,SAASu6B,GAAmBv6B,EAAS,CACnC,IAAIw6B,EAAY,UAAU,UAAU,YAAW,EAAG,QAAQ,SAAS,IAAM,GACrEC,EAAO,UAAU,UAAU,QAAQ,SAAS,IAAM,GAEtD,GAAIA,GAAQ1B,GAAc/4B,CAAO,EAAG,CAElC,IAAI06B,EAAaR,GAAiBl6B,CAAO,EAEzC,GAAI06B,EAAW,WAAa,QAC1B,OAAO,IAEX,CAIA,QAFIC,EAAcN,GAAcr6B,CAAO,EAEhC+4B,GAAc4B,CAAW,GAAK,CAAC,OAAQ,MAAM,EAAE,QAAQjC,GAAYiC,CAAW,CAAC,EAAI,GAAG,CAC3F,IAAIj6B,EAAMw5B,GAAiBS,CAAW,EAItC,GAAIj6B,EAAI,YAAc,QAAUA,EAAI,cAAgB,QAAUA,EAAI,UAAY,SAAW,CAAC,YAAa,aAAa,EAAE,QAAQA,EAAI,UAAU,IAAM,IAAM85B,GAAa95B,EAAI,aAAe,UAAY85B,GAAa95B,EAAI,QAAUA,EAAI,SAAW,OAC5O,OAAOi6B,EAEPA,EAAcA,EAAY,UAE9B,CAEA,OAAO,IACT,CAIA,SAASC,GAAgB56B,EAAS,CAIhC,QAHI66B,EAASlC,GAAU34B,CAAO,EAC1B86B,EAAeR,GAAoBt6B,CAAO,EAEvC86B,GAAgBX,GAAeW,CAAY,GAAKZ,GAAiBY,CAAY,EAAE,WAAa,UACjGA,EAAeR,GAAoBQ,CAAY,EAGjD,OAAIA,IAAiBpC,GAAYoC,CAAY,IAAM,QAAUpC,GAAYoC,CAAY,IAAM,QAAUZ,GAAiBY,CAAY,EAAE,WAAa,UACxID,EAGFC,GAAgBP,GAAmBv6B,CAAO,GAAK66B,CACxD,CAEA,SAASE,GAAyBhD,EAAW,CAC3C,MAAO,CAAC,MAAO,QAAQ,EAAE,QAAQA,CAAS,GAAK,EAAI,IAAM,GAC3D,CAEA,SAASiD,GAAOC,EAAO92G,EAAO+2G,EAAO,CACnC,OAAOh0F,GAAI+zF,EAAO91C,GAAIhhE,EAAO+2G,CAAK,CAAC,CACrC,CACA,SAASC,GAAeh2C,EAAKhhE,EAAO+iB,EAAK,CACvC,IAAI5e,EAAI0yG,GAAO71C,EAAKhhE,EAAO+iB,CAAG,EAC9B,OAAO5e,EAAI4e,EAAMA,EAAM5e,CACzB,CAEA,SAAS8yG,IAAqB,CAC5B,MAAO,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,CACV,CACA,CAEA,SAASC,GAAmBC,EAAe,CACzC,OAAO,OAAO,OAAO,GAAIF,GAAkB,EAAIE,CAAa,CAC9D,CAEA,SAASC,GAAgBp3G,EAAOkhB,EAAM,CACpC,OAAOA,EAAK,OAAO,SAAUm2F,EAASh5G,EAAK,CACzC,OAAAg5G,EAAQh5G,CAAG,EAAI2B,EACRq3G,CACT,EAAG,EAAE,CACP,CAEA,IAAIC,GAAkB,SAAyBC,EAAS37F,EAAO,CAC7D,OAAA27F,EAAU,OAAOA,GAAY,WAAaA,EAAQ,OAAO,OAAO,GAAI37F,EAAM,MAAO,CAC/E,UAAWA,EAAM,SACrB,CAAG,CAAC,EAAI27F,EACCL,GAAmB,OAAOK,GAAY,SAAWA,EAAUH,GAAgBG,EAASjE,EAAc,CAAC,CAC5G,EAEA,SAASkE,GAAMzjC,EAAM,CACnB,IAAI0jC,EAEA77F,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KACZpiE,EAAUoiE,EAAK,QACf2jC,EAAe97F,EAAM,SAAS,MAC9B+7F,EAAgB/7F,EAAM,cAAc,cACpCg8F,EAAgBzC,GAAiBv5F,EAAM,SAAS,EAChDi8F,EAAOjB,GAAyBgB,CAAa,EAC7CE,EAAa,CAAC1E,GAAMD,EAAK,EAAE,QAAQyE,CAAa,GAAK,EACrD/+E,EAAMi/E,EAAa,SAAW,QAElC,GAAI,GAACJ,GAAgB,CAACC,GAItB,KAAIR,EAAgBG,GAAgB3lG,EAAQ,QAASiK,CAAK,EACtDm8F,EAAYpC,GAAc+B,CAAY,EACtCM,EAAUH,IAAS,IAAM5E,GAAMG,GAC/B6E,EAAUJ,IAAS,IAAM3E,GAASC,GAClC+E,EAAUt8F,EAAM,MAAM,UAAUid,CAAG,EAAIjd,EAAM,MAAM,UAAUi8F,CAAI,EAAIF,EAAcE,CAAI,EAAIj8F,EAAM,MAAM,OAAOid,CAAG,EACjHs/E,EAAYR,EAAcE,CAAI,EAAIj8F,EAAM,MAAM,UAAUi8F,CAAI,EAC5DO,EAAoB3B,GAAgBiB,CAAY,EAChDW,EAAaD,EAAoBP,IAAS,IAAMO,EAAkB,cAAgB,EAAIA,EAAkB,aAAe,EAAI,EAC3HE,EAAoBJ,EAAU,EAAIC,EAAY,EAG9Cn3C,EAAMm2C,EAAca,CAAO,EAC3Bj1F,EAAMs1F,EAAaN,EAAUl/E,CAAG,EAAIs+E,EAAcc,CAAO,EACzDM,EAASF,EAAa,EAAIN,EAAUl/E,CAAG,EAAI,EAAIy/E,EAC/CtoE,EAAS6mE,GAAO71C,EAAKu3C,EAAQx1F,CAAG,EAEhCy1F,EAAWX,EACfj8F,EAAM,cAAcpZ,CAAI,GAAKi1G,EAAwB,GAAIA,EAAsBe,CAAQ,EAAIxoE,EAAQynE,EAAsB,aAAeznE,EAASuoE,EAAQd,GAC3J,CAEA,SAASgB,GAAS18B,EAAO,CACvB,IAAIngE,EAAQmgE,EAAM,MACdpqE,EAAUoqE,EAAM,QAChB28B,EAAmB/mG,EAAQ,QAC3B+lG,EAAegB,IAAqB,OAAS,sBAAwBA,EAErEhB,GAAgB,OAKhB,OAAOA,GAAiB,WAC1BA,EAAe97F,EAAM,SAAS,OAAO,cAAc87F,CAAY,EAE3D,CAACA,IAKF7B,GAASj6F,EAAM,SAAS,OAAQ87F,CAAY,IAKjD97F,EAAM,SAAS,MAAQ87F,GACzB,CAGA,IAAIiB,GAAU,CACZ,KAAM,QACN,QAAS,GACT,MAAO,OACP,GAAInB,GACJ,OAAQiB,GACR,SAAU,CAAC,eAAe,EAC1B,iBAAkB,CAAC,iBAAiB,CACtC,EAEA,SAASG,GAAahF,EAAW,CAC/B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CAEA,IAAIiF,GAAa,CACf,IAAK,OACL,MAAO,OACP,OAAQ,OACR,KAAM,MACR,EAIA,SAASC,GAAkB/kC,EAAM,CAC/B,IAAIpqE,EAAIoqE,EAAK,EACTtgB,EAAIsgB,EAAK,EACTglC,EAAM,OACNC,EAAMD,EAAI,kBAAoB,EAClC,MAAO,CACL,EAAGrqC,GAAM/kE,EAAIqvG,CAAG,EAAIA,GAAO,EAC3B,EAAGtqC,GAAMjb,EAAIulD,CAAG,EAAIA,GAAO,CAC/B,CACA,CAEA,SAASC,GAAYl9B,EAAO,CAC1B,IAAIm9B,EAEAzF,EAAS13B,EAAM,OACfo9B,EAAap9B,EAAM,WACnB63B,EAAY73B,EAAM,UAClBq9B,EAAYr9B,EAAM,UAClBs9B,EAAUt9B,EAAM,QAChB5sC,EAAW4sC,EAAM,SACjBu9B,EAAkBv9B,EAAM,gBACxBw9B,EAAWx9B,EAAM,SACjBy9B,EAAez9B,EAAM,aACrB09B,EAAU19B,EAAM,QAEhB0S,EAAQ+qB,IAAiB,GAAOV,GAAkBO,CAAO,EAAI,OAAOG,GAAiB,WAAaA,EAAaH,CAAO,EAAIA,EAC1HK,EAAUjrB,EAAM,EAChB9kF,EAAI+vG,IAAY,OAAS,EAAIA,EAC7BC,EAAUlrB,EAAM,EAChBh7B,EAAIkmD,IAAY,OAAS,EAAIA,EAE7BC,EAAOP,EAAQ,eAAe,GAAG,EACjCQ,EAAOR,EAAQ,eAAe,GAAG,EACjCS,EAAQ1G,GACR2G,EAAQ9G,GACR8F,EAAM,OAEV,GAAIQ,EAAU,CACZ,IAAI5C,EAAeF,GAAgBhD,CAAM,EACrCuG,EAAa,eACbC,EAAY,cAchB,GAZItD,IAAiBnC,GAAUf,CAAM,IACnCkD,EAAeV,GAAmBxC,CAAM,EAEpCsC,GAAiBY,CAAY,EAAE,WAAa,UAAYxnE,IAAa,aACvE6qE,EAAa,eACbC,EAAY,gBAKhBtD,EAAeA,EAEX/C,IAAcX,KAAQW,IAAcR,IAAQQ,IAAcT,KAAUiG,IAAcpkG,GAAK,CACzF+kG,EAAQ7G,GACR,IAAIgH,EAAUT,GAAWV,EAAI,eAAiBA,EAAI,eAAe,OACjEpC,EAAaqD,CAAU,EACvBvmD,GAAKymD,EAAUf,EAAW,OAC1B1lD,GAAK6lD,EAAkB,EAAI,EAC7B,CAEA,GAAI1F,IAAcR,KAASQ,IAAcX,IAAOW,IAAcV,KAAWkG,IAAcpkG,GAAK,CAC1F8kG,EAAQ3G,GACR,IAAIgH,EAAUV,GAAWV,EAAI,eAAiBA,EAAI,eAAe,MACjEpC,EAAasD,CAAS,EACtBtwG,GAAKwwG,EAAUhB,EAAW,MAC1BxvG,GAAK2vG,EAAkB,EAAI,EAC7B,CACF,CAEA,IAAIc,EAAe,OAAO,OAAO,CAC/B,SAAUjrE,CACd,EAAKoqE,GAAYV,EAAU,EAEzB,GAAIS,EAAiB,CACnB,IAAIe,EAEJ,OAAO,OAAO,OAAO,GAAID,GAAeC,EAAiB,GAAIA,EAAeN,CAAK,EAAIF,EAAO,IAAM,GAAIQ,EAAeP,CAAK,EAAIF,EAAO,IAAM,GAAIS,EAAe,WAAatB,EAAI,kBAAoB,IAAM,EAAI,aAAepvG,EAAI,OAAS8pD,EAAI,MAAQ,eAAiB9pD,EAAI,OAAS8pD,EAAI,SAAU4mD,EAAc,CACjT,CAEA,OAAO,OAAO,OAAO,GAAID,GAAelB,EAAkB,GAAIA,EAAgBa,CAAK,EAAIF,EAAOpmD,EAAI,KAAO,GAAIylD,EAAgBY,CAAK,EAAIF,EAAOjwG,EAAI,KAAO,GAAIuvG,EAAgB,UAAY,GAAIA,EAAe,CAC7M,CAEA,SAASoB,GAAcC,EAAO,CAC5B,IAAI3+F,EAAQ2+F,EAAM,MACd5oG,EAAU4oG,EAAM,QAChBC,EAAwB7oG,EAAQ,gBAChC2nG,EAAkBkB,IAA0B,OAAS,GAAOA,EAC5DC,EAAoB9oG,EAAQ,SAC5B4nG,EAAWkB,IAAsB,OAAS,GAAOA,EACjDC,EAAwB/oG,EAAQ,aAChC6nG,EAAekB,IAA0B,OAAS,GAAOA,EAEzDN,EAAe,CACjB,UAAWjF,GAAiBv5F,EAAM,SAAS,EAC3C,UAAWg9F,GAAah9F,EAAM,SAAS,EACvC,OAAQA,EAAM,SAAS,OACvB,WAAYA,EAAM,MAAM,OACxB,gBAAiB09F,EACjB,QAAS19F,EAAM,QAAQ,WAAa,OACxC,EAEMA,EAAM,cAAc,eAAiB,OACvCA,EAAM,OAAO,OAAS,OAAO,OAAO,GAAIA,EAAM,OAAO,OAAQq9F,GAAY,OAAO,OAAO,GAAImB,EAAc,CACvG,QAASx+F,EAAM,cAAc,cAC7B,SAAUA,EAAM,QAAQ,SACxB,SAAU29F,EACV,aAAcC,CACpB,CAAK,CAAC,CAAC,GAGD59F,EAAM,cAAc,OAAS,OAC/BA,EAAM,OAAO,MAAQ,OAAO,OAAO,GAAIA,EAAM,OAAO,MAAOq9F,GAAY,OAAO,OAAO,GAAImB,EAAc,CACrG,QAASx+F,EAAM,cAAc,MAC7B,SAAU,WACV,SAAU,GACV,aAAc49F,CACpB,CAAK,CAAC,CAAC,GAGL59F,EAAM,WAAW,OAAS,OAAO,OAAO,GAAIA,EAAM,WAAW,OAAQ,CACnE,wBAAyBA,EAAM,SACnC,CAAG,CACH,CAGA,IAAI++F,GAAkB,CACpB,KAAM,gBACN,QAAS,GACT,MAAO,cACP,GAAIL,GACJ,KAAM,EACR,EAEI5W,GAAU,CACZ,QAAS,EACX,EAEA,SAASkX,GAAS7mC,EAAM,CACtB,IAAIn4D,EAAQm4D,EAAK,MACbzgE,EAAWygE,EAAK,SAChBpiE,EAAUoiE,EAAK,QACf8mC,EAAkBlpG,EAAQ,OAC1Bm/B,EAAS+pE,IAAoB,OAAS,GAAOA,EAC7CC,EAAkBnpG,EAAQ,OAC1BopG,EAASD,IAAoB,OAAS,GAAOA,EAC7CpE,EAASlC,GAAU54F,EAAM,SAAS,MAAM,EACxCo/F,EAAgB,GAAG,OAAOp/F,EAAM,cAAc,UAAWA,EAAM,cAAc,MAAM,EAEvF,OAAIk1B,GACFkqE,EAAc,QAAQ,SAAUC,EAAc,CAC5CA,EAAa,iBAAiB,SAAU3nG,EAAS,OAAQowF,EAAO,CAClE,CAAC,EAGCqX,GACFrE,EAAO,iBAAiB,SAAUpjG,EAAS,OAAQowF,EAAO,EAGrD,UAAY,CACb5yD,GACFkqE,EAAc,QAAQ,SAAUC,EAAc,CAC5CA,EAAa,oBAAoB,SAAU3nG,EAAS,OAAQowF,EAAO,CACrE,CAAC,EAGCqX,GACFrE,EAAO,oBAAoB,SAAUpjG,EAAS,OAAQowF,EAAO,CAEjE,CACF,CAGA,IAAIwX,GAAiB,CACnB,KAAM,iBACN,QAAS,GACT,MAAO,QACP,GAAI,UAAc,CAAC,EACnB,OAAQN,GACR,KAAM,EACR,EAEI3sE,GAAO,CACT,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACA,SAASktE,GAAqBvH,EAAW,CACvC,OAAOA,EAAU,QAAQ,yBAA0B,SAAUngE,EAAS,CACpE,OAAOxF,GAAKwF,CAAO,CACrB,CAAC,CACH,CAEA,IAAI2nE,GAAS,CACX,MAAO,MACP,IAAK,OACP,EACA,SAASC,GAA8BzH,EAAW,CAChD,OAAOA,EAAU,QAAQ,aAAc,SAAUngE,EAAS,CACxD,OAAO2nE,GAAO3nE,CAAO,CACvB,CAAC,CACH,CAEA,SAAS6nE,GAAgBvgG,EAAM,CAC7B,IAAIg+F,EAAMvE,GAAUz5F,CAAI,EACpBwgG,EAAaxC,EAAI,YACjByC,EAAYzC,EAAI,YACpB,MAAO,CACL,WAAYwC,EACZ,UAAWC,CACf,CACA,CAEA,SAASC,GAAoB5/B,EAAS,CAQpC,OAAOu5B,GAAsBa,GAAmBp6B,CAAO,CAAC,EAAE,KAAOy/B,GAAgBz/B,CAAO,EAAE,UAC5F,CAEA,SAAS6/B,GAAgB7/B,EAAS,CAChC,IAAIk9B,EAAMvE,GAAU34B,CAAO,EACvB8/B,EAAO1F,GAAmBp6B,CAAO,EACjC+/B,EAAiB7C,EAAI,eACrBh7B,EAAQ49B,EAAK,YACb19B,EAAS09B,EAAK,aACdhyG,EAAI,EACJ8pD,EAAI,EAMR,OAAImoD,IACF79B,EAAQ69B,EAAe,MACvB39B,EAAS29B,EAAe,OASnB,iCAAiC,KAAK,UAAU,SAAS,IAC5DjyG,EAAIiyG,EAAe,WACnBnoD,EAAImoD,EAAe,YAIhB,CACL,MAAO79B,EACP,OAAQE,EACR,EAAGt0E,EAAI8xG,GAAoB5/B,CAAO,EAClC,EAAGpoB,CACP,CACA,CAIA,SAASooD,GAAgBhgC,EAAS,CAChC,IAAIigC,EAEAH,EAAO1F,GAAmBp6B,CAAO,EACjCkgC,EAAYT,GAAgBz/B,CAAO,EACnCmgC,GAAQF,EAAwBjgC,EAAQ,gBAAkB,KAAO,OAASigC,EAAsB,KAChG/9B,EAAQh7D,GAAI44F,EAAK,YAAaA,EAAK,YAAaK,EAAOA,EAAK,YAAc,EAAGA,EAAOA,EAAK,YAAc,CAAC,EACxG/9B,EAASl7D,GAAI44F,EAAK,aAAcA,EAAK,aAAcK,EAAOA,EAAK,aAAe,EAAGA,EAAOA,EAAK,aAAe,CAAC,EAC7GryG,EAAI,CAACoyG,EAAU,WAAaN,GAAoB5/B,CAAO,EACvDpoB,EAAI,CAACsoD,EAAU,UAEnB,OAAIhG,GAAiBiG,GAAQL,CAAI,EAAE,YAAc,QAC/ChyG,GAAKoZ,GAAI44F,EAAK,YAAaK,EAAOA,EAAK,YAAc,CAAC,EAAIj+B,GAGrD,CACL,MAAOA,EACP,OAAQE,EACR,EAAGt0E,EACH,EAAG8pD,CACP,CACA,CAEA,SAASwoD,GAAepgC,EAAS,CAE/B,IAAIqgC,EAAoBnG,GAAiBl6B,CAAO,EAC5C1f,EAAW+/C,EAAkB,SAC7BC,EAAYD,EAAkB,UAC9BE,EAAYF,EAAkB,UAElC,MAAO,6BAA6B,KAAK//C,EAAWigD,EAAYD,CAAS,CAC3E,CAEA,SAASE,GAAgBthG,EAAM,CAC7B,MAAI,CAAC,OAAQ,OAAQ,WAAW,EAAE,QAAQw5F,GAAYx5F,CAAI,CAAC,GAAK,EAEvDA,EAAK,cAAc,KAGxB65F,GAAc75F,CAAI,GAAKkhG,GAAelhG,CAAI,EACrCA,EAGFshG,GAAgBnG,GAAcn7F,CAAI,CAAC,CAC5C,CASA,SAASuhG,GAAkBzgC,EAAS35B,EAAM,CACxC,IAAI45D,EAEA55D,IAAS,SACXA,EAAO,IAGT,IAAI+4D,EAAeoB,GAAgBxgC,CAAO,EACtC0gC,EAAStB,MAAmBa,EAAwBjgC,EAAQ,gBAAkB,KAAO,OAASigC,EAAsB,MACpH/C,EAAMvE,GAAUyG,CAAY,EAC5B9yG,EAASo0G,EAAS,CAACxD,CAAG,EAAE,OAAOA,EAAI,gBAAkB,GAAIkD,GAAehB,CAAY,EAAIA,EAAe,EAAE,EAAIA,EAC7GuB,EAAct6D,EAAK,OAAO/5C,CAAM,EACpC,OAAOo0G,EAASC,EAChBA,EAAY,OAAOF,GAAkBpG,GAAc/tG,CAAM,CAAC,CAAC,CAC7D,CAEA,SAASs0G,GAAiBnH,EAAM,CAC9B,OAAO,OAAO,OAAO,GAAIA,EAAM,CAC7B,KAAMA,EAAK,EACX,IAAKA,EAAK,EACV,MAAOA,EAAK,EAAIA,EAAK,MACrB,OAAQA,EAAK,EAAIA,EAAK,MAC1B,CAAG,CACH,CAEA,SAASoH,GAA2B7gC,EAAS,CAC3C,IAAIy5B,EAAOF,GAAsBv5B,CAAO,EACxC,OAAAy5B,EAAK,IAAMA,EAAK,IAAMz5B,EAAQ,UAC9By5B,EAAK,KAAOA,EAAK,KAAOz5B,EAAQ,WAChCy5B,EAAK,OAASA,EAAK,IAAMz5B,EAAQ,aACjCy5B,EAAK,MAAQA,EAAK,KAAOz5B,EAAQ,YACjCy5B,EAAK,MAAQz5B,EAAQ,YACrBy5B,EAAK,OAASz5B,EAAQ,aACtBy5B,EAAK,EAAIA,EAAK,KACdA,EAAK,EAAIA,EAAK,IACPA,CACT,CAEA,SAASqH,GAA2B9gC,EAAS+gC,EAAgB,CAC3D,OAAOA,IAAmBpJ,GAAWiJ,GAAiBf,GAAgB7/B,CAAO,CAAC,EAAI64B,GAAUkI,CAAc,EAAIF,GAA2BE,CAAc,EAAIH,GAAiBZ,GAAgB5F,GAAmBp6B,CAAO,CAAC,CAAC,CAC1N,CAKA,SAASghC,GAAmBhhC,EAAS,CACnC,IAAI03B,EAAkB+I,GAAkBpG,GAAcr6B,CAAO,CAAC,EAC1DihC,EAAoB,CAAC,WAAY,OAAO,EAAE,QAAQ/G,GAAiBl6B,CAAO,EAAE,QAAQ,GAAK,EACzFkhC,EAAiBD,GAAqBlI,GAAc/4B,CAAO,EAAI46B,GAAgB56B,CAAO,EAAIA,EAE9F,OAAK64B,GAAUqI,CAAc,EAKtBxJ,EAAgB,OAAO,SAAUqJ,EAAgB,CACtD,OAAOlI,GAAUkI,CAAc,GAAK/G,GAAS+G,EAAgBG,CAAc,GAAKxI,GAAYqI,CAAc,IAAM,SAAWE,EAAoB/G,GAAiB6G,CAAc,EAAE,WAAa,SAAW,GAC1M,CAAC,EANQ,EAOX,CAIA,SAASI,GAAgBnhC,EAASohC,EAAUC,EAAc,CACxD,IAAIC,EAAsBF,IAAa,kBAAoBJ,GAAmBhhC,CAAO,EAAI,GAAG,OAAOohC,CAAQ,EACvG1J,EAAkB,GAAG,OAAO4J,EAAqB,CAACD,CAAY,CAAC,EAC/DE,EAAsB7J,EAAgB,CAAC,EACvC8J,EAAe9J,EAAgB,OAAO,SAAU+J,EAASV,EAAgB,CAC3E,IAAItH,EAAOqH,GAA2B9gC,EAAS+gC,CAAc,EAC7D,OAAAU,EAAQ,IAAMv6F,GAAIuyF,EAAK,IAAKgI,EAAQ,GAAG,EACvCA,EAAQ,MAAQt8C,GAAIs0C,EAAK,MAAOgI,EAAQ,KAAK,EAC7CA,EAAQ,OAASt8C,GAAIs0C,EAAK,OAAQgI,EAAQ,MAAM,EAChDA,EAAQ,KAAOv6F,GAAIuyF,EAAK,KAAMgI,EAAQ,IAAI,EACnCA,CACT,EAAGX,GAA2B9gC,EAASuhC,CAAmB,CAAC,EAC3D,OAAAC,EAAa,MAAQA,EAAa,MAAQA,EAAa,KACvDA,EAAa,OAASA,EAAa,OAASA,EAAa,IACzDA,EAAa,EAAIA,EAAa,KAC9BA,EAAa,EAAIA,EAAa,IACvBA,CACT,CAEA,SAASE,GAAexpC,EAAM,CAC5B,IAAI2/B,EAAY3/B,EAAK,UACjB8H,EAAU9H,EAAK,QACf6/B,EAAY7/B,EAAK,UACjB6jC,EAAgBhE,EAAYuB,GAAiBvB,CAAS,EAAI,KAC1DwF,EAAYxF,EAAYgF,GAAahF,CAAS,EAAI,KAClD4J,EAAU9J,EAAU,EAAIA,EAAU,MAAQ,EAAI73B,EAAQ,MAAQ,EAC9D4hC,EAAU/J,EAAU,EAAIA,EAAU,OAAS,EAAI73B,EAAQ,OAAS,EAChEw9B,EAEJ,OAAQzB,EAAa,CACnB,KAAK3E,GACHoG,EAAU,CACR,EAAGmE,EACH,EAAG9J,EAAU,EAAI73B,EAAQ,MACjC,EACM,MAEF,KAAKq3B,GACHmG,EAAU,CACR,EAAGmE,EACH,EAAG9J,EAAU,EAAIA,EAAU,MACnC,EACM,MAEF,KAAKP,GACHkG,EAAU,CACR,EAAG3F,EAAU,EAAIA,EAAU,MAC3B,EAAG+J,CACX,EACM,MAEF,KAAKrK,GACHiG,EAAU,CACR,EAAG3F,EAAU,EAAI73B,EAAQ,MACzB,EAAG4hC,CACX,EACM,MAEF,QACEpE,EAAU,CACR,EAAG3F,EAAU,EACb,EAAGA,EAAU,CACrB,CACA,CAEE,IAAIgK,EAAW9F,EAAgBhB,GAAyBgB,CAAa,EAAI,KAEzE,GAAI8F,GAAY,KAAM,CACpB,IAAI7kF,EAAM6kF,IAAa,IAAM,SAAW,QAExC,OAAQtE,EAAS,CACf,KAAKrkG,GACHskG,EAAQqE,CAAQ,EAAIrE,EAAQqE,CAAQ,GAAKhK,EAAU76E,CAAG,EAAI,EAAIgjD,EAAQhjD,CAAG,EAAI,GAC7E,MAEF,KAAK7jB,GACHqkG,EAAQqE,CAAQ,EAAIrE,EAAQqE,CAAQ,GAAKhK,EAAU76E,CAAG,EAAI,EAAIgjD,EAAQhjD,CAAG,EAAI,GAC7E,KACR,CACE,CAEA,OAAOwgF,CACT,CAEA,SAASsE,GAAe/hG,EAAOjK,EAAS,CAClCA,IAAY,SACdA,EAAU,IAGZ,IAAIisG,EAAWjsG,EACXksG,EAAqBD,EAAS,UAC9BhK,EAAYiK,IAAuB,OAASjiG,EAAM,UAAYiiG,EAC9DC,EAAoBF,EAAS,SAC7BX,EAAWa,IAAsB,OAASvK,GAAkBuK,EAC5DC,EAAwBH,EAAS,aACjCV,EAAea,IAA0B,OAASvK,GAAWuK,EAC7DC,EAAwBJ,EAAS,eACjCK,EAAiBD,IAA0B,OAASvK,GAASuK,EAC7DE,EAAuBN,EAAS,YAChCO,EAAcD,IAAyB,OAAS,GAAQA,EACxDE,EAAmBR,EAAS,QAC5BrG,EAAU6G,IAAqB,OAAS,EAAIA,EAC5CjH,EAAgBD,GAAmB,OAAOK,GAAY,SAAWA,EAAUH,GAAgBG,EAASjE,EAAc,CAAC,EACnH+K,EAAaJ,IAAmBxK,GAASC,GAAYD,GACrD0F,EAAav9F,EAAM,MAAM,OACzBigE,EAAUjgE,EAAM,SAASuiG,EAAcE,EAAaJ,CAAc,EAClEK,EAAqBtB,GAAgBtI,GAAU74B,CAAO,EAAIA,EAAUA,EAAQ,gBAAkBo6B,GAAmBr6F,EAAM,SAAS,MAAM,EAAGqhG,EAAUC,CAAY,EAC/JqB,EAAsBnJ,GAAsBx5F,EAAM,SAAS,SAAS,EACpE+7F,EAAgB4F,GAAe,CACjC,UAAWgB,EACX,QAASpF,EAET,UAAWvF,CACf,CAAG,EACG4K,EAAmB/B,GAAiB,OAAO,OAAO,GAAItD,EAAYxB,CAAa,CAAC,EAChF8G,EAAoBR,IAAmBxK,GAAS+K,EAAmBD,EAGnEG,EAAkB,CACpB,IAAKJ,EAAmB,IAAMG,EAAkB,IAAMtH,EAAc,IACpE,OAAQsH,EAAkB,OAASH,EAAmB,OAASnH,EAAc,OAC7E,KAAMmH,EAAmB,KAAOG,EAAkB,KAAOtH,EAAc,KACvE,MAAOsH,EAAkB,MAAQH,EAAmB,MAAQnH,EAAc,KAC9E,EACMwH,EAAa/iG,EAAM,cAAc,OAErC,GAAIqiG,IAAmBxK,IAAUkL,EAAY,CAC3C,IAAI3uE,EAAS2uE,EAAW/K,CAAS,EACjC,OAAO,KAAK8K,CAAe,EAAE,QAAQ,SAAUrgH,EAAK,CAClD,IAAIugH,EAAW,CAACzL,GAAOD,EAAM,EAAE,QAAQ70G,CAAG,GAAK,EAAI,EAAI,GACnDw5G,EAAO,CAAC5E,GAAKC,EAAM,EAAE,QAAQ70G,CAAG,GAAK,EAAI,IAAM,IACnDqgH,EAAgBrgH,CAAG,GAAK2xC,EAAO6nE,CAAI,EAAI+G,CACzC,CAAC,CACH,CAEA,OAAOF,CACT,CAEA,SAASG,GAAqBjjG,EAAOjK,EAAS,CACxCA,IAAY,SACdA,EAAU,IAGZ,IAAIisG,EAAWjsG,EACXiiG,EAAYgK,EAAS,UACrBX,EAAWW,EAAS,SACpBV,EAAeU,EAAS,aACxBrG,EAAUqG,EAAS,QACnBkB,EAAiBlB,EAAS,eAC1BmB,EAAwBnB,EAAS,sBACjCoB,EAAwBD,IAA0B,OAASlL,GAAakL,EACxE3F,EAAYR,GAAahF,CAAS,EAClCqL,EAAe7F,EAAY0F,EAAiBnL,GAAsBA,GAAoB,OAAO,SAAUC,EAAW,CACpH,OAAOgF,GAAahF,CAAS,IAAMwF,CACrC,CAAC,EAAI9F,GACD4L,EAAoBD,EAAa,OAAO,SAAUrL,EAAW,CAC/D,OAAOoL,EAAsB,QAAQpL,CAAS,GAAK,CACrD,CAAC,EAEGsL,EAAkB,SAAW,IAC/BA,EAAoBD,GAItB,IAAIE,EAAYD,EAAkB,OAAO,SAAUn0G,EAAK6oG,EAAW,CACjE,OAAA7oG,EAAI6oG,CAAS,EAAI+J,GAAe/hG,EAAO,CACrC,UAAWg4F,EACX,SAAUqJ,EACV,aAAcC,EACd,QAAS3F,CACf,CAAK,EAAEpC,GAAiBvB,CAAS,CAAC,EACvB7oG,CACT,EAAG,EAAE,EACL,OAAO,OAAO,KAAKo0G,CAAS,EAAE,KAAK,SAAUl8G,EAAGC,EAAG,CACjD,OAAOi8G,EAAUl8G,CAAC,EAAIk8G,EAAUj8G,CAAC,CACnC,CAAC,CACH,CAEA,SAASk8G,GAA8BxL,EAAW,CAChD,GAAIuB,GAAiBvB,CAAS,IAAMP,GAClC,MAAO,GAGT,IAAIgM,EAAoBlE,GAAqBvH,CAAS,EACtD,MAAO,CAACyH,GAA8BzH,CAAS,EAAGyL,EAAmBhE,GAA8BgE,CAAiB,CAAC,CACvH,CAEA,SAASC,GAAKvrC,EAAM,CAClB,IAAIn4D,EAAQm4D,EAAK,MACbpiE,EAAUoiE,EAAK,QACfvxE,EAAOuxE,EAAK,KAEhB,GAAI,CAAAn4D,EAAM,cAAcpZ,CAAI,EAAE,MAoC9B,SAhCI+8G,EAAoB5tG,EAAQ,SAC5B6tG,EAAgBD,IAAsB,OAAS,GAAOA,EACtDE,EAAmB9tG,EAAQ,QAC3B+tG,EAAeD,IAAqB,OAAS,GAAOA,EACpDE,EAA8BhuG,EAAQ,mBACtC4lG,EAAU5lG,EAAQ,QAClBsrG,EAAWtrG,EAAQ,SACnBurG,EAAevrG,EAAQ,aACvBwsG,EAAcxsG,EAAQ,YACtBiuG,EAAwBjuG,EAAQ,eAChCmtG,EAAiBc,IAA0B,OAAS,GAAOA,EAC3DZ,EAAwBrtG,EAAQ,sBAChCkuG,EAAqBjkG,EAAM,QAAQ,UACnCg8F,EAAgBzC,GAAiB0K,CAAkB,EACnDC,EAAkBlI,IAAkBiI,EACpCE,EAAqBJ,IAAgCG,GAAmB,CAAChB,EAAiB,CAAC3D,GAAqB0E,CAAkB,CAAC,EAAIT,GAA8BS,CAAkB,GACvLhM,EAAa,CAACgM,CAAkB,EAAE,OAAOE,CAAkB,EAAE,OAAO,SAAUh1G,GAAK6oG,GAAW,CAChG,OAAO7oG,GAAI,OAAOoqG,GAAiBvB,EAAS,IAAMP,GAAOwL,GAAqBjjG,EAAO,CACnF,UAAWg4F,GACX,SAAUqJ,EACV,aAAcC,EACd,QAAS3F,EACT,eAAgBuH,EAChB,sBAAuBE,CAC7B,CAAK,EAAIpL,EAAS,CAChB,EAAG,EAAE,EACDoM,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBqkG,EAAY,IAAI,IAChBC,EAAqB,GACrBC,EAAwBtM,EAAW,CAAC,EAE/B50G,EAAI,EAAGA,EAAI40G,EAAW,OAAQ50G,IAAK,CAC1C,IAAI20G,EAAYC,EAAW50G,CAAC,EAExBmhH,EAAiBjL,GAAiBvB,CAAS,EAE3CyM,EAAmBzH,GAAahF,CAAS,IAAM7+F,GAC/C+iG,GAAa,CAAC7E,GAAKC,EAAM,EAAE,QAAQkN,CAAc,GAAK,EACtDvnF,GAAMi/E,GAAa,QAAU,SAC7B37C,GAAWwhD,GAAe/hG,EAAO,CACnC,UAAWg4F,EACX,SAAUqJ,EACV,aAAcC,EACd,YAAaiB,EACb,QAAS5G,CACf,CAAK,EACG+I,EAAoBxI,GAAauI,EAAmBlN,GAAQC,GAAOiN,EAAmBnN,GAASD,GAE/F+M,EAAcnnF,EAAG,EAAIsgF,EAAWtgF,EAAG,IACrCynF,EAAoBnF,GAAqBmF,CAAiB,GAG5D,IAAIC,GAAmBpF,GAAqBmF,CAAiB,EACzDE,GAAS,GAUb,GARIhB,GACFgB,GAAO,KAAKrkD,GAASikD,CAAc,GAAK,CAAC,EAGvCV,GACFc,GAAO,KAAKrkD,GAASmkD,CAAiB,GAAK,EAAGnkD,GAASokD,EAAgB,GAAK,CAAC,EAG3EC,GAAO,MAAM,SAAUC,GAAO,CAChC,OAAOA,EACT,CAAC,EAAG,CACFN,EAAwBvM,EACxBsM,EAAqB,GACrB,KACF,CAEAD,EAAU,IAAIrM,EAAW4M,EAAM,CACjC,CAEA,GAAIN,EAqBF,QAnBIQ,GAAiB5B,EAAiB,EAAI,EAEtC6B,GAAQ,SAAeC,GAAI,CAC7B,IAAIC,GAAmBhN,EAAW,KAAK,SAAUD,EAAW,CAC1D,IAAI4M,GAASP,EAAU,IAAIrM,CAAS,EAEpC,GAAI4M,GACF,OAAOA,GAAO,MAAM,EAAGI,EAAE,EAAE,MAAM,SAAUH,EAAO,CAChD,OAAOA,CACT,CAAC,CAEL,CAAC,EAED,GAAII,GACF,OAAAV,EAAwBU,GACjB,OAEX,EAESD,GAAKF,GAAgBE,GAAK,EAAGA,KAAM,CAC1C,IAAIE,GAAOH,GAAMC,EAAE,EAEnB,GAAIE,KAAS,QAAS,KACxB,CAGEllG,EAAM,YAAcukG,IACtBvkG,EAAM,cAAcpZ,CAAI,EAAE,MAAQ,GAClCoZ,EAAM,UAAYukG,EAClBvkG,EAAM,MAAQ,IAElB,CAGA,IAAImlG,GAAS,CACX,KAAM,OACN,QAAS,GACT,MAAO,OACP,GAAIzB,GACJ,iBAAkB,CAAC,QAAQ,EAC3B,KAAM,CACJ,MAAO,EACX,CACA,EAEA,SAAS0B,GAAe7kD,EAAUm5C,EAAM2L,EAAkB,CACxD,OAAIA,IAAqB,SACvBA,EAAmB,CACjB,EAAG,EACH,EAAG,CACT,GAGS,CACL,IAAK9kD,EAAS,IAAMm5C,EAAK,OAAS2L,EAAiB,EACnD,MAAO9kD,EAAS,MAAQm5C,EAAK,MAAQ2L,EAAiB,EACtD,OAAQ9kD,EAAS,OAASm5C,EAAK,OAAS2L,EAAiB,EACzD,KAAM9kD,EAAS,KAAOm5C,EAAK,MAAQ2L,EAAiB,CACxD,CACA,CAEA,SAASC,GAAsB/kD,EAAU,CACvC,MAAO,CAAC82C,GAAKE,GAAOD,GAAQE,EAAI,EAAE,KAAK,SAAU+N,EAAM,CACrD,OAAOhlD,EAASglD,CAAI,GAAK,CAC3B,CAAC,CACH,CAEA,SAASC,GAAKrtC,EAAM,CAClB,IAAIn4D,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KACZisC,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBqlG,EAAmBrlG,EAAM,cAAc,gBACvCylG,EAAoB1D,GAAe/hG,EAAO,CAC5C,eAAgB,WACpB,CAAG,EACG0lG,EAAoB3D,GAAe/hG,EAAO,CAC5C,YAAa,EACjB,CAAG,EACG2lG,EAA2BP,GAAeK,EAAmBrB,CAAa,EAC1EwB,EAAsBR,GAAeM,EAAmBnI,EAAY8H,CAAgB,EACpFQ,EAAoBP,GAAsBK,CAAwB,EAClEG,EAAmBR,GAAsBM,CAAmB,EAChE5lG,EAAM,cAAcpZ,CAAI,EAAI,CAC1B,yBAA0B++G,EAC1B,oBAAqBC,EACrB,kBAAmBC,EACnB,iBAAkBC,CACtB,EACE9lG,EAAM,WAAW,OAAS,OAAO,OAAO,GAAIA,EAAM,WAAW,OAAQ,CACnE,+BAAgC6lG,EAChC,sBAAuBC,CAC3B,CAAG,CACH,CAGA,IAAIC,GAAS,CACX,KAAM,OACN,QAAS,GACT,MAAO,OACP,iBAAkB,CAAC,iBAAiB,EACpC,GAAIP,EACN,EAEA,SAASQ,GAAwBhO,EAAWiO,EAAO7xE,EAAQ,CACzD,IAAI4nE,EAAgBzC,GAAiBvB,CAAS,EAC1CkO,EAAiB,CAAC1O,GAAMH,EAAG,EAAE,QAAQ2E,CAAa,GAAK,EAAI,GAAK,EAEhE7jC,EAAO,OAAO/jC,GAAW,WAAaA,EAAO,OAAO,OAAO,GAAI6xE,EAAO,CACxE,UAAWjO,CACf,CAAG,CAAC,EAAI5jE,EACF+xE,EAAWhuC,EAAK,CAAC,EACjBiuC,EAAWjuC,EAAK,CAAC,EAErB,OAAAguC,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAAC1O,GAAMD,EAAK,EAAE,QAAQyE,CAAa,GAAK,EAAI,CACjD,EAAGoK,EACH,EAAGD,CACP,EAAM,CACF,EAAGA,EACH,EAAGC,CACP,CACA,CAEA,SAAShyE,GAAO+rC,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MACdpqE,EAAUoqE,EAAM,QAChBv5E,EAAOu5E,EAAM,KACbkmC,EAAkBtwG,EAAQ,OAC1Bq+B,EAASiyE,IAAoB,OAAS,CAAC,EAAG,CAAC,EAAIA,EAC/C56F,EAAOwsF,GAAW,OAAO,SAAU9oG,EAAK6oG,EAAW,CACrD,OAAA7oG,EAAI6oG,CAAS,EAAIgO,GAAwBhO,EAAWh4F,EAAM,MAAOo0B,CAAM,EAChEjlC,CACT,EAAG,EAAE,EACDm3G,EAAwB76F,EAAKzL,EAAM,SAAS,EAC5CjS,EAAIu4G,EAAsB,EAC1BzuD,EAAIyuD,EAAsB,EAE1BtmG,EAAM,cAAc,eAAiB,OACvCA,EAAM,cAAc,cAAc,GAAKjS,EACvCiS,EAAM,cAAc,cAAc,GAAK63C,GAGzC73C,EAAM,cAAcpZ,CAAI,EAAI6kB,CAC9B,CAGA,IAAI86F,GAAW,CACb,KAAM,SACN,QAAS,GACT,MAAO,OACP,SAAU,CAAC,eAAe,EAC1B,GAAInyE,EACN,EAEA,SAAS2nE,GAAc5jC,EAAM,CAC3B,IAAIn4D,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KAKhBn4D,EAAM,cAAcpZ,CAAI,EAAI+6G,GAAe,CACzC,UAAW3hG,EAAM,MAAM,UACvB,QAASA,EAAM,MAAM,OAErB,UAAWA,EAAM,SACrB,CAAG,CACH,CAGA,IAAIwmG,GAAkB,CACpB,KAAM,gBACN,QAAS,GACT,MAAO,OACP,GAAIzK,GACJ,KAAM,EACR,EAEA,SAAS0K,GAAWxK,EAAM,CACxB,OAAOA,IAAS,IAAM,IAAM,GAC9B,CAEA,SAASyK,GAAgBvuC,EAAM,CAC7B,IAAIn4D,EAAQm4D,EAAK,MACbpiE,EAAUoiE,EAAK,QACfvxE,EAAOuxE,EAAK,KACZwrC,EAAoB5tG,EAAQ,SAC5B6tG,EAAgBD,IAAsB,OAAS,GAAOA,EACtDE,EAAmB9tG,EAAQ,QAC3B+tG,EAAeD,IAAqB,OAAS,GAAQA,EACrDxC,EAAWtrG,EAAQ,SACnBurG,EAAevrG,EAAQ,aACvBwsG,EAAcxsG,EAAQ,YACtB4lG,EAAU5lG,EAAQ,QAClB4wG,EAAkB5wG,EAAQ,OAC1B6wG,EAASD,IAAoB,OAAS,GAAOA,EAC7CE,EAAwB9wG,EAAQ,aAChC+wG,EAAeD,IAA0B,OAAS,EAAIA,EACtDtmD,EAAWwhD,GAAe/hG,EAAO,CACnC,SAAUqhG,EACV,aAAcC,EACd,QAAS3F,EACT,YAAa4G,CACjB,CAAG,EACGvG,EAAgBzC,GAAiBv5F,EAAM,SAAS,EAChDw9F,EAAYR,GAAah9F,EAAM,SAAS,EACxCkkG,EAAkB,CAAC1G,EACnBsE,EAAW9G,GAAyBgB,CAAa,EACjD+K,EAAUN,GAAW3E,CAAQ,EAC7B/F,EAAgB/7F,EAAM,cAAc,cACpCokG,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBgnG,EAAoB,OAAOF,GAAiB,WAAaA,EAAa,OAAO,OAAO,GAAI9mG,EAAM,MAAO,CACvG,UAAWA,EAAM,SACrB,CAAG,CAAC,EAAI8mG,EACFG,EAA8B,OAAOD,GAAsB,SAAW,CACxE,SAAUA,EACV,QAASA,CACb,EAAM,OAAO,OAAO,CAChB,SAAU,EACV,QAAS,CACb,EAAKA,CAAiB,EAChBE,EAAsBlnG,EAAM,cAAc,OAASA,EAAM,cAAc,OAAOA,EAAM,SAAS,EAAI,KACjGyL,EAAO,CACT,EAAG,EACH,EAAG,CACP,EAEE,GAAKswF,EAIL,IAAI6H,EAAe,CACjB,IAAIuD,EAEAC,GAAWtF,IAAa,IAAMzK,GAAMG,GACpC6P,GAAUvF,IAAa,IAAMxK,GAASC,GACtCt6E,GAAM6kF,IAAa,IAAM,SAAW,QACpC1tE,EAAS2nE,EAAc+F,CAAQ,EAC/B5G,GAAQ9mE,EAASmsB,EAAS6mD,EAAQ,EAClCjM,GAAQ/mE,EAASmsB,EAAS8mD,EAAO,EACjCC,GAAWV,EAAS,CAACrJ,EAAWtgF,EAAG,EAAI,EAAI,EAC3CsqF,GAAS/J,IAAcrkG,GAAQirG,EAAcnnF,EAAG,EAAIsgF,EAAWtgF,EAAG,EAClEuqF,GAAShK,IAAcrkG,GAAQ,CAACokG,EAAWtgF,EAAG,EAAI,CAACmnF,EAAcnnF,EAAG,EAGpE6+E,GAAe97F,EAAM,SAAS,MAC9Bm8F,GAAYyK,GAAU9K,GAAe/B,GAAc+B,EAAY,EAAI,CACrE,MAAO,EACP,OAAQ,CACd,EACQ2L,GAAqBznG,EAAM,cAAc,kBAAkB,EAAIA,EAAM,cAAc,kBAAkB,EAAE,QAAUq7F,GAAkB,EACnIqM,GAAkBD,GAAmBL,EAAQ,EAC7CO,EAAkBF,GAAmBJ,EAAO,EAM5CO,GAAW3M,GAAO,EAAGmJ,EAAcnnF,EAAG,EAAGk/E,GAAUl/E,EAAG,CAAC,EACvD4qF,EAAY3D,EAAkBE,EAAcnnF,EAAG,EAAI,EAAIqqF,GAAWM,GAAWF,GAAkBT,EAA4B,SAAWM,GAASK,GAAWF,GAAkBT,EAA4B,SACxMa,EAAY5D,EAAkB,CAACE,EAAcnnF,EAAG,EAAI,EAAIqqF,GAAWM,GAAWD,EAAkBV,EAA4B,SAAWO,GAASI,GAAWD,EAAkBV,EAA4B,SACzMzK,EAAoBx8F,EAAM,SAAS,OAAS66F,GAAgB76F,EAAM,SAAS,KAAK,EAChF+nG,EAAevL,EAAoBsF,IAAa,IAAMtF,EAAkB,WAAa,EAAIA,EAAkB,YAAc,EAAI,EAC7HwL,GAAuBb,EAA+DD,IAAoBpF,CAAQ,IAAM,KAAOqF,EAAwB,EACvJc,EAAY7zE,EAASyzE,EAAYG,EAAsBD,EACvDG,EAAY9zE,EAAS0zE,EAAYE,EACjCG,EAAkBlN,GAAO2L,EAASxhD,GAAI81C,GAAO+M,CAAS,EAAI/M,GAAO9mE,EAAQwyE,EAASz/F,GAAIg0F,GAAO+M,CAAS,EAAI/M,EAAK,EACnHY,EAAc+F,CAAQ,EAAIqG,EAC1B18F,EAAKq2F,CAAQ,EAAIqG,EAAkB/zE,CACrC,CAEA,GAAI0vE,EAAc,CAChB,IAAIsE,EAEAC,EAAYvG,IAAa,IAAMzK,GAAMG,GAErC8Q,EAAWxG,IAAa,IAAMxK,GAASC,GAEvCgR,EAAUxM,EAAcgL,CAAO,EAE/B59B,EAAO49B,IAAY,IAAM,SAAW,QAEpCyB,EAAOD,EAAUhoD,EAAS8nD,CAAS,EAEnCI,EAAOF,EAAUhoD,EAAS+nD,CAAQ,EAElCI,GAAe,CAACrR,GAAKG,EAAI,EAAE,QAAQwE,CAAa,IAAM,GAEtD2M,GAAwBP,EAAgElB,IAAoBH,CAAO,IAAM,KAAOqB,EAAyB,EAEzJQ,GAAaF,GAAeF,EAAOD,EAAUnE,EAAcj7B,CAAI,EAAIo0B,EAAWp0B,CAAI,EAAIw/B,EAAuB1B,EAA4B,QAEzI4B,GAAaH,GAAeH,EAAUnE,EAAcj7B,CAAI,EAAIo0B,EAAWp0B,CAAI,EAAIw/B,EAAuB1B,EAA4B,QAAUwB,EAE5IK,GAAmBlC,GAAU8B,GAAetN,GAAewN,GAAYL,EAASM,EAAU,EAAI5N,GAAO2L,EAASgC,GAAaJ,EAAMD,EAAS3B,EAASiC,GAAaJ,CAAI,EAExK1M,EAAcgL,CAAO,EAAI+B,GACzBr9F,EAAKs7F,CAAO,EAAI+B,GAAmBP,CACrC,CAEAvoG,EAAM,cAAcpZ,CAAI,EAAI6kB,EAC9B,CAGA,IAAIs9F,GAAoB,CACtB,KAAM,kBACN,QAAS,GACT,MAAO,OACP,GAAIrC,GACJ,iBAAkB,CAAC,QAAQ,CAC7B,EAEA,SAASsC,GAAqB/oC,EAAS,CACrC,MAAO,CACL,WAAYA,EAAQ,WACpB,UAAWA,EAAQ,SACvB,CACA,CAEA,SAASgpC,GAAc9pG,EAAM,CAC3B,OAAIA,IAASy5F,GAAUz5F,CAAI,GAAK,CAAC65F,GAAc75F,CAAI,EAC1CugG,GAAgBvgG,CAAI,EAEpB6pG,GAAqB7pG,CAAI,CAEpC,CAEA,SAAS+pG,GAAgBjpC,EAAS,CAChC,IAAIy5B,EAAOz5B,EAAQ,sBAAqB,EACpC05B,EAAS7mC,GAAM4mC,EAAK,KAAK,EAAIz5B,EAAQ,aAAe,EACpD25B,EAAS9mC,GAAM4mC,EAAK,MAAM,EAAIz5B,EAAQ,cAAgB,EAC1D,OAAO05B,IAAW,GAAKC,IAAW,CACpC,CAIA,SAASuP,GAAiBC,EAAyBrO,EAAc8C,EAAS,CACpEA,IAAY,SACdA,EAAU,IAGZ,IAAIwL,EAA0BrQ,GAAc+B,CAAY,EACpDuO,EAAuBtQ,GAAc+B,CAAY,GAAKmO,GAAgBnO,CAAY,EAClFwO,EAAkBlP,GAAmBU,CAAY,EACjDrB,EAAOF,GAAsB4P,EAAyBE,CAAoB,EAC1Ep0E,EAAS,CACX,WAAY,EACZ,UAAW,CACf,EACMuoE,EAAU,CACZ,EAAG,EACH,EAAG,CACP,EAEE,OAAI4L,GAA2B,CAACA,GAA2B,CAACxL,MACtDlF,GAAYoC,CAAY,IAAM,QAClCsF,GAAekJ,CAAe,KAC5Br0E,EAAS+zE,GAAclO,CAAY,GAGjC/B,GAAc+B,CAAY,GAC5B0C,EAAUjE,GAAsBuB,EAAc,EAAI,EAClD0C,EAAQ,GAAK1C,EAAa,WAC1B0C,EAAQ,GAAK1C,EAAa,WACjBwO,IACT9L,EAAQ,EAAIoC,GAAoB0J,CAAe,IAI5C,CACL,EAAG7P,EAAK,KAAOxkE,EAAO,WAAauoE,EAAQ,EAC3C,EAAG/D,EAAK,IAAMxkE,EAAO,UAAYuoE,EAAQ,EACzC,MAAO/D,EAAK,MACZ,OAAQA,EAAK,MACjB,CACA,CAEA,SAAS8P,GAAMruG,EAAW,CACxB,IAAI3Y,EAAM,IAAI,IACVinH,EAAU,IAAI,IACd96G,EAAS,GACbwM,EAAU,QAAQ,SAAUuuG,EAAU,CACpClnH,EAAI,IAAIknH,EAAS,KAAMA,CAAQ,CACjC,CAAC,EAED,SAASC,EAAKD,EAAU,CACtBD,EAAQ,IAAIC,EAAS,IAAI,EACzB,IAAIE,EAAW,GAAG,OAAOF,EAAS,UAAY,GAAIA,EAAS,kBAAoB,EAAE,EACjFE,EAAS,QAAQ,SAAUz+G,EAAK,CAC9B,GAAI,CAACs+G,EAAQ,IAAIt+G,CAAG,EAAG,CACrB,IAAI0+G,EAAcrnH,EAAI,IAAI2I,CAAG,EAEzB0+G,GACFF,EAAKE,CAAW,CAEpB,CACF,CAAC,EACDl7G,EAAO,KAAK+6G,CAAQ,CACtB,CAEA,OAAAvuG,EAAU,QAAQ,SAAUuuG,EAAU,CAC/BD,EAAQ,IAAIC,EAAS,IAAI,GAE5BC,EAAKD,CAAQ,CAEjB,CAAC,EACM/6G,CACT,CAEA,SAASm7G,GAAe3uG,EAAW,CAEjC,IAAI4uG,EAAmBP,GAAMruG,CAAS,EAEtC,OAAOu9F,GAAe,OAAO,SAAUvpG,EAAK66G,EAAO,CACjD,OAAO76G,EAAI,OAAO46G,EAAiB,OAAO,SAAUL,EAAU,CAC5D,OAAOA,EAAS,QAAUM,CAC5B,CAAC,CAAC,CACJ,EAAG,EAAE,CACP,CAEA,SAASC,GAASvlH,EAAI,CACpB,IAAIwlH,EACJ,OAAO,UAAY,CACjB,OAAKA,IACHA,EAAU,IAAI,QAAQ,SAAUzgG,EAAS,CACvC,QAAQ,UAAU,KAAK,UAAY,CACjCygG,EAAU,OACVzgG,EAAQ/kB,EAAE,CAAE,CACd,CAAC,CACH,CAAC,GAGIwlH,CACT,CACF,CAEA,SAASC,GAAYhvG,EAAW,CAC9B,IAAI4V,EAAS5V,EAAU,OAAO,SAAU4V,EAAQxL,EAAS,CACvD,IAAIL,EAAW6L,EAAOxL,EAAQ,IAAI,EAClC,OAAAwL,EAAOxL,EAAQ,IAAI,EAAIL,EAAW,OAAO,OAAO,GAAIA,EAAUK,EAAS,CACrE,QAAS,OAAO,OAAO,GAAIL,EAAS,QAASK,EAAQ,OAAO,EAC5D,KAAM,OAAO,OAAO,GAAIL,EAAS,KAAMK,EAAQ,IAAI,CACzD,CAAK,EAAIA,EACEwL,CACT,EAAG,EAAE,EAEL,OAAO,OAAO,KAAKA,CAAM,EAAE,IAAI,SAAUtuB,EAAK,CAC5C,OAAOsuB,EAAOtuB,CAAG,CACnB,CAAC,CACH,CAEA,IAAI2nH,GAAkB,CACpB,UAAW,SACX,UAAW,GACX,SAAU,UACZ,EAEA,SAASC,IAAmB,CAC1B,QAASlhC,EAAO,UAAU,OAAQr7E,EAAO,IAAI,MAAMq7E,CAAI,EAAGhhF,EAAO,EAAGA,EAAOghF,EAAMhhF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAG7B,MAAO,CAAC2F,EAAK,KAAK,SAAUmyE,EAAS,CACnC,MAAO,EAAEA,GAAW,OAAOA,EAAQ,uBAA0B,WAC/D,CAAC,CACH,CAEA,SAASqqC,GAAgBC,EAAkB,CACrCA,IAAqB,SACvBA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkB,iBAC1CE,EAAmBD,IAA0B,OAAS,GAAKA,EAC3DE,EAAyBH,EAAkB,eAC3CI,EAAiBD,IAA2B,OAASP,GAAkBO,EAC3E,OAAO,SAAsB7S,EAAWD,EAAQ9hG,EAAS,CACnDA,IAAY,SACdA,EAAU60G,GAGZ,IAAI5qG,EAAQ,CACV,UAAW,SACX,iBAAkB,GAClB,QAAS,OAAO,OAAO,GAAIoqG,GAAiBQ,CAAc,EAC1D,cAAe,GACf,SAAU,CACR,UAAW9S,EACX,OAAQD,CAChB,EACM,WAAY,GACZ,OAAQ,EACd,EACQgT,EAAmB,GACnBC,EAAc,GACdpzG,EAAW,CACb,MAAOsI,EACP,WAAY,SAAoB+qG,EAAkB,CAChD,IAAIh1G,EAAU,OAAOg1G,GAAqB,WAAaA,EAAiB/qG,EAAM,OAAO,EAAI+qG,EACzFC,EAAsB,EACtBhrG,EAAM,QAAU,OAAO,OAAO,GAAI4qG,EAAgB5qG,EAAM,QAASjK,CAAO,EACxEiK,EAAM,cAAgB,CACpB,UAAW84F,GAAUhB,CAAS,EAAI4I,GAAkB5I,CAAS,EAAIA,EAAU,eAAiB4I,GAAkB5I,EAAU,cAAc,EAAI,GAC1I,OAAQ4I,GAAkB7I,CAAM,CAC1C,EAGQ,IAAIkS,EAAmBD,GAAeK,GAAY,GAAG,OAAOO,EAAkB1qG,EAAM,QAAQ,SAAS,CAAC,CAAC,EAEvG,OAAAA,EAAM,iBAAmB+pG,EAAiB,OAAO,SAAU95F,EAAG,CAC5D,OAAOA,EAAE,OACX,CAAC,EAEDg7F,EAAkB,EACXvzG,EAAS,OAAM,CACxB,EAMA,YAAa,UAAuB,CAClC,GAAI,CAAAozG,EAIJ,KAAII,EAAkBlrG,EAAM,SACxB83F,EAAYoT,EAAgB,UAC5BrT,EAASqT,EAAgB,OAG7B,GAAKb,GAAiBvS,EAAWD,CAAM,EAMvC,CAAA73F,EAAM,MAAQ,CACZ,UAAWmpG,GAAiBrR,EAAW+C,GAAgBhD,CAAM,EAAG73F,EAAM,QAAQ,WAAa,OAAO,EAClG,OAAQ+5F,GAAclC,CAAM,CACtC,EAMQ73F,EAAM,MAAQ,GACdA,EAAM,UAAYA,EAAM,QAAQ,UAKhCA,EAAM,iBAAiB,QAAQ,SAAU0pG,EAAU,CACjD,OAAO1pG,EAAM,cAAc0pG,EAAS,IAAI,EAAI,OAAO,OAAO,GAAIA,EAAS,IAAI,CAC7E,CAAC,EAED,QAASx6G,EAAQ,EAAGA,EAAQ8Q,EAAM,iBAAiB,OAAQ9Q,IAAS,CAElE,GAAI8Q,EAAM,QAAU,GAAM,CACxBA,EAAM,MAAQ,GACd9Q,EAAQ,GACR,QACF,CAEA,IAAIi8G,EAAwBnrG,EAAM,iBAAiB9Q,CAAK,EACpDxK,EAAKymH,EAAsB,GAC3BC,EAAyBD,EAAsB,QAC/CnJ,EAAWoJ,IAA2B,OAAS,GAAKA,EACpDxkH,EAAOukH,EAAsB,KAE7B,OAAOzmH,GAAO,aAChBsb,EAAQtb,EAAG,CACT,MAAOsb,EACP,QAASgiG,EACT,KAAMp7G,EACN,SAAU8Q,CACxB,CAAa,GAAKsI,EAEV,GACF,EAGA,OAAQiqG,GAAS,UAAY,CAC3B,OAAO,IAAI,QAAQ,SAAUxgG,EAAS,CACpC/R,EAAS,YAAW,EACpB+R,EAAQzJ,CAAK,CACf,CAAC,CACH,CAAC,EACD,QAAS,UAAmB,CAC1BgrG,EAAsB,EACtBF,EAAc,EAChB,CACN,EAEI,GAAI,CAACT,GAAiBvS,EAAWD,CAAM,EAErC,OAAOngG,EAGTA,EAAS,WAAW3B,CAAO,EAAE,KAAK,SAAUiK,EAAO,CAC7C,CAAC8qG,GAAe/0G,EAAQ,eAC1BA,EAAQ,cAAciK,CAAK,CAE/B,CAAC,EAMD,SAASirG,GAAqB,CAC5BjrG,EAAM,iBAAiB,QAAQ,SAAU6yE,EAAO,CAC9C,IAAIjsF,EAAOisF,EAAM,KACbw4B,EAAgBx4B,EAAM,QACtB98E,EAAUs1G,IAAkB,OAAS,GAAKA,EAC1C50G,EAASo8E,EAAM,OAEnB,GAAI,OAAOp8E,GAAW,WAAY,CAChC,IAAIf,EAAYe,EAAO,CACrB,MAAOuJ,EACP,KAAMpZ,EACN,SAAU8Q,EACV,QAAS3B,CACrB,CAAW,EAEGu1G,EAAS,UAAkB,CAAC,EAEhCT,EAAiB,KAAKn1G,GAAa41G,CAAM,CAC3C,CACF,CAAC,CACH,CAEA,SAASN,GAAyB,CAChCH,EAAiB,QAAQ,SAAUnmH,EAAI,CACrC,OAAOA,EAAE,CACX,CAAC,EACDmmH,EAAmB,EACrB,CAEA,OAAOnzG,CACT,CACF,CAEA,IAAIgzG,GAAmB,CAACpL,GAAgBkH,GAAiBzH,GAAiBzF,GAAeiN,GAAUpB,GAAQ4D,GAAmBhM,GAASgJ,EAAM,EACzIwF,GAA4BjB,GAAgB,CAC9C,iBAAkBI,EACpB,CAAC,EASGc,GAAY,YACZC,GAAgB,gBAChBC,GAAiB,iBACjBC,GAAc,cACdC,GAAkB,kBAClBC,GAAgB,CAClB,QAAS,GACT,QAAS,EACX,EACIC,GAA0B,UAAmC,CAC/D,OAAO,SAAS,IAClB,EACA,SAASC,GAAwB3nH,EAAO8K,EAAO6F,EAAc,CAC3D,GAAI,MAAM,QAAQ3Q,CAAK,EAAG,CACxB,IAAImE,EAAInE,EAAM8K,CAAK,EACnB,OAAO3G,IAAY,MAAM,QAAQwM,CAAY,EAAIA,EAAa7F,CAAK,EAAI6F,EACzE,CAEA,OAAO3Q,CACT,CACA,SAAS4nH,GAAO5nH,EAAOoI,EAAM,CAC3B,IAAIjK,EAAM,GAAG,SAAS,KAAK6B,CAAK,EAChC,OAAO7B,EAAI,QAAQ,SAAS,IAAM,GAAKA,EAAI,QAAQiK,EAAO,GAAG,EAAI,EACnE,CACA,SAASy/G,GAAuB7nH,EAAO0J,EAAM,CAC3C,OAAO,OAAO1J,GAAU,WAAaA,EAAM,MAAM,OAAQ0J,CAAI,EAAI1J,CACnE,CACA,SAAS8nH,GAAWxnH,EAAIg2D,EAAI,CAE1B,GAAIA,IAAO,EACT,OAAOh2D,EAGT,IAAIijC,EACJ,OAAO,SAAUpiC,EAAK,CACpB,aAAaoiC,CAAO,EACpBA,EAAU,WAAW,UAAY,CAC/BjjC,EAAGa,CAAG,CACR,EAAGm1D,CAAE,CACP,CACF,CACA,SAASyxD,GAAiB1mH,EAAK6f,EAAM,CACnC,IAAIynB,EAAQ,OAAO,OAAO,GAAItnC,CAAG,EACjC,OAAA6f,EAAK,QAAQ,SAAU7iB,EAAK,CAC1B,OAAOsqC,EAAMtqC,CAAG,CAClB,CAAC,EACMsqC,CACT,CACA,SAASq/E,GAAchoH,EAAO,CAC5B,OAAOA,EAAM,MAAM,KAAK,EAAE,OAAO,OAAO,CAC1C,CACA,SAASioH,GAAiBjoH,EAAO,CAC/B,MAAO,GAAG,OAAOA,CAAK,CACxB,CACA,SAASkoH,GAAanpH,EAAKiB,EAAO,CAC5BjB,EAAI,QAAQiB,CAAK,IAAM,IACzBjB,EAAI,KAAKiB,CAAK,CAElB,CACA,SAASmoH,GAAOppH,EAAK,CACnB,OAAOA,EAAI,OAAO,SAAU+C,EAAMgJ,EAAO,CACvC,OAAO/L,EAAI,QAAQ+C,CAAI,IAAMgJ,CAC/B,CAAC,CACH,CACA,SAASs9G,GAAmBxU,EAAW,CACrC,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASyU,GAAUroH,EAAO,CACxB,MAAO,GAAG,MAAM,KAAKA,CAAK,CAC5B,CACA,SAASsoH,GAAqBjnH,EAAK,CACjC,OAAO,OAAO,KAAKA,CAAG,EAAE,OAAO,SAAU0J,EAAK1M,EAAK,CACjD,OAAIgD,EAAIhD,CAAG,IAAM,SACf0M,EAAI1M,CAAG,EAAIgD,EAAIhD,CAAG,GAGb0M,CACT,EAAG,EAAE,CACP,CAEA,SAASw9G,IAAM,CACb,OAAO,SAAS,cAAc,KAAK,CACrC,CACA,SAASC,GAAYxoH,EAAO,CAC1B,MAAO,CAAC,UAAW,UAAU,EAAE,KAAK,SAAUoI,EAAM,CAClD,OAAOw/G,GAAO5nH,EAAOoI,CAAI,CAC3B,CAAC,CACH,CACA,SAASqgH,GAAWzoH,EAAO,CACzB,OAAO4nH,GAAO5nH,EAAO,UAAU,CACjC,CACA,SAAS0oH,GAAa1oH,EAAO,CAC3B,OAAO4nH,GAAO5nH,EAAO,YAAY,CACnC,CACA,SAAS2oH,GAAmB3oH,EAAO,CACjC,MAAO,CAAC,EAAEA,GAASA,EAAM,QAAUA,EAAM,OAAO,YAAcA,EAChE,CACA,SAAS4oH,GAAmB5oH,EAAO,CACjC,OAAIwoH,GAAYxoH,CAAK,EACZ,CAACA,CAAK,EAGXyoH,GAAWzoH,CAAK,EACXqoH,GAAUroH,CAAK,EAGpB,MAAM,QAAQA,CAAK,EACdA,EAGFqoH,GAAU,SAAS,iBAAiBroH,CAAK,CAAC,CACnD,CACA,SAAS6oH,GAAsBC,EAAK9oH,EAAO,CACzC8oH,EAAI,QAAQ,SAAU9pH,EAAI,CACpBA,IACFA,EAAG,MAAM,mBAAqBgB,EAAQ,KAE1C,CAAC,CACH,CACA,SAAS+oH,GAAmBD,EAAKltG,EAAO,CACtCktG,EAAI,QAAQ,SAAU9pH,EAAI,CACpBA,GACFA,EAAG,aAAa,aAAc4c,CAAK,CAEvC,CAAC,CACH,CACA,SAASotG,GAAiBC,EAAmB,CAC3C,IAAInN,EAEAoN,EAAoBjB,GAAiBgB,CAAiB,EACtDptC,EAAUqtC,EAAkB,CAAC,EAGjC,OAAOrtC,GAAW,OAASigC,EAAwBjgC,EAAQ,gBAAkB,MAAQigC,EAAsB,KAAOjgC,EAAQ,cAAgB,QAC5I,CACA,SAASstC,GAAiCC,EAAgBzuF,EAAO,CAC/D,IAAI0uF,EAAU1uF,EAAM,QAChB2uF,EAAU3uF,EAAM,QACpB,OAAOyuF,EAAe,MAAM,SAAUr1C,EAAM,CAC1C,IAAIolC,EAAaplC,EAAK,WAClBw1C,EAAcx1C,EAAK,YACnBrxE,EAAQqxE,EAAK,MACby1C,EAAoB9mH,EAAM,kBAC1Bk1G,EAAgBwQ,GAAmBmB,EAAY,SAAS,EACxD5K,EAAa4K,EAAY,cAAc,OAE3C,GAAI,CAAC5K,EACH,MAAO,GAGT,IAAI8K,EAAc7R,IAAkB,SAAW+G,EAAW,IAAI,EAAI,EAC9D+K,EAAiB9R,IAAkB,MAAQ+G,EAAW,OAAO,EAAI,EACjEgL,EAAe/R,IAAkB,QAAU+G,EAAW,KAAK,EAAI,EAC/DiL,EAAgBhS,IAAkB,OAAS+G,EAAW,MAAM,EAAI,EAChEkL,EAAa1Q,EAAW,IAAMmQ,EAAUG,EAAcD,EACtDM,EAAgBR,EAAUnQ,EAAW,OAASuQ,EAAiBF,EAC/DO,EAAc5Q,EAAW,KAAOkQ,EAAUM,EAAeH,EACzDQ,EAAeX,EAAUlQ,EAAW,MAAQyQ,EAAgBJ,EAChE,OAAOK,GAAcC,GAAiBC,GAAeC,CACvD,CAAC,CACH,CACA,SAASC,GAA4BC,EAAKziE,EAAQvS,EAAU,CAC1D,IAAI9qC,EAASq9C,EAAS,gBAGtB,CAAC,gBAAiB,qBAAqB,EAAE,QAAQ,SAAU9sB,EAAO,CAChEuvF,EAAI9/G,CAAM,EAAEuwB,EAAOua,CAAQ,CAC7B,CAAC,CACH,CAMA,SAASi1E,GAAen1F,EAAQva,EAAO,CAGrC,QAFItS,EAASsS,EAENtS,GAAQ,CACb,IAAIiiH,EAEJ,GAAIp1F,EAAO,SAAS7sB,CAAM,EACxB,MAAO,GAGTA,EAASA,EAAO,aAAe,OAAiBiiH,EAAsBjiH,EAAO,YAAW,IAAO,KAAzD,OAAyEiiH,EAAoB,IACrI,CAEA,MAAO,EACT,CAEA,IAAIC,GAAe,CACjB,QAAS,EACX,EACIC,GAAoB,EAQxB,SAASC,IAAuB,CAC1BF,GAAa,UAIjBA,GAAa,QAAU,GAEnB,OAAO,aACT,SAAS,iBAAiB,YAAaG,EAAmB,EAE9D,CAOA,SAASA,IAAsB,CAC7B,IAAI98D,EAAM,YAAY,IAAG,EAErBA,EAAM48D,GAAoB,KAC5BD,GAAa,QAAU,GACvB,SAAS,oBAAoB,YAAaG,EAAmB,GAG/DF,GAAoB58D,CACtB,CAQA,SAAS+8D,IAAe,CACtB,IAAIC,EAAgB,SAAS,cAE7B,GAAI/B,GAAmB+B,CAAa,EAAG,CACrC,IAAIp3G,EAAWo3G,EAAc,OAEzBA,EAAc,MAAQ,CAACp3G,EAAS,MAAM,WACxCo3G,EAAc,KAAI,CAEtB,CACF,CACA,SAASC,IAA2B,CAClC,SAAS,iBAAiB,aAAcJ,GAAsB9C,EAAa,EAC3E,OAAO,iBAAiB,OAAQgD,EAAY,CAC9C,CAEA,IAAI7+E,GAAY,OAAO,OAAW,KAAe,OAAO,SAAa,IACjEg/E,GAASh/E,GACb,CAAC,CAAC,OAAO,SAAW,GAEhBi/E,GAAc,CAChB,YAAa,GACb,aAAc,GACd,kBAAmB,GACnB,OAAQ,EACV,EACIC,GAAc,CAChB,UAAW,GACX,UAAW,OACX,MAAO,GACP,QAAS,GACT,QAAS,GACT,SAAU,IACV,KAAM,UACN,MAAO,GACP,OAAQ,IACV,EACIC,GAAe,OAAO,OAAO,CAC/B,SAAUrD,GACV,KAAM,CACJ,QAAS,OACT,SAAU,MACd,EACE,MAAO,EACP,SAAU,CAAC,IAAK,GAAG,EACnB,uBAAwB,KACxB,YAAa,GACb,iBAAkB,GAClB,YAAa,GACb,kBAAmB,EACnB,oBAAqB,EACrB,eAAgB,GAChB,OAAQ,CAAC,EAAG,EAAE,EACd,cAAe,UAAyB,CAAC,EACzC,eAAgB,UAA0B,CAAC,EAC3C,SAAU,UAAoB,CAAC,EAC/B,UAAW,UAAqB,CAAC,EACjC,SAAU,UAAoB,CAAC,EAC/B,OAAQ,UAAkB,CAAC,EAC3B,QAAS,UAAmB,CAAC,EAC7B,OAAQ,UAAkB,CAAC,EAC3B,QAAS,UAAmB,CAAC,EAC7B,UAAW,UAAqB,CAAC,EACjC,YAAa,UAAuB,CAAC,EACrC,eAAgB,UAA0B,CAAC,EAC3C,UAAW,MACX,QAAS,GACT,cAAe,GACf,OAAQ,KACR,aAAc,GACd,MAAO,GACP,QAAS,mBACT,cAAe,IACjB,EAAGmD,GAAaC,EAAW,EACvBE,GAAc,OAAO,KAAKD,EAAY,EACtCE,GAAkB,SAAyBC,EAAc,CAE3D,IAAIhqG,EAAO,OAAO,KAAKgqG,CAAY,EACnChqG,EAAK,QAAQ,SAAU7iB,EAAK,CAC1B0sH,GAAa1sH,CAAG,EAAI6sH,EAAa7sH,CAAG,CACtC,CAAC,CACH,EACA,SAAS8sH,GAAuBC,EAAa,CAC3C,IAAI52B,EAAU42B,EAAY,SAAW,GACjCP,EAAcr2B,EAAQ,OAAO,SAAUzpF,EAAKyiB,EAAQ,CACtD,IAAIhrB,EAAOgrB,EAAO,KACd7c,EAAe6c,EAAO,aAE1B,GAAIhrB,EAAM,CACR,IAAIogD,EAEJ73C,EAAIvI,CAAI,EAAI4oH,EAAY5oH,CAAI,IAAM,OAAY4oH,EAAY5oH,CAAI,GAAKogD,EAAQmoE,GAAavoH,CAAI,IAAM,KAAOogD,EAAQjyC,CACnH,CAEA,OAAO5F,CACT,EAAG,EAAE,EACL,OAAO,OAAO,OAAO,GAAIqgH,EAAaP,CAAW,CACnD,CACA,SAASQ,GAAsB3X,EAAWlf,EAAS,CACjD,IAAI82B,EAAW92B,EAAU,OAAO,KAAK22B,GAAuB,OAAO,OAAO,GAAIJ,GAAc,CAC1F,QAASv2B,CACb,CAAG,CAAC,CAAC,EAAIw2B,GACHtoH,EAAQ4oH,EAAS,OAAO,SAAUvgH,EAAK1M,EAAK,CAC9C,IAAIktH,GAAiB7X,EAAU,aAAa,cAAgBr1G,CAAG,GAAK,IAAI,KAAI,EAE5E,GAAI,CAACktH,EACH,OAAOxgH,EAGT,GAAI1M,IAAQ,UACV0M,EAAI1M,CAAG,EAAIktH,MAEX,IAAI,CACFxgH,EAAI1M,CAAG,EAAI,KAAK,MAAMktH,CAAa,CACrC,MAAY,CACVxgH,EAAI1M,CAAG,EAAIktH,CACb,CAGF,OAAOxgH,CACT,EAAG,EAAE,EACL,OAAOrI,CACT,CACA,SAAS8oH,GAAc9X,EAAWhxG,EAAO,CACvC,IAAI8pE,EAAM,OAAO,OAAO,GAAI9pE,EAAO,CACjC,QAASmlH,GAAuBnlH,EAAM,QAAS,CAACgxG,CAAS,CAAC,CAC9D,EAAKhxG,EAAM,iBAAmB,GAAK2oH,GAAsB3X,EAAWhxG,EAAM,OAAO,CAAC,EAChF,OAAA8pE,EAAI,KAAO,OAAO,OAAO,GAAIu+C,GAAa,KAAMv+C,EAAI,IAAI,EACxDA,EAAI,KAAO,CACT,SAAUA,EAAI,KAAK,WAAa,OAAS9pE,EAAM,YAAc8pE,EAAI,KAAK,SACtE,QAASA,EAAI,KAAK,UAAY,OAAS9pE,EAAM,YAAc,KAAO,cAAgB8pE,EAAI,KAAK,OAC/F,EACSA,CACT,CAEA,IAAIi/C,GAAY,UAAqB,CACnC,MAAO,WACT,EAEA,SAASC,GAAwB7vC,EAAS8/B,EAAM,CAC9C9/B,EAAQ4vC,GAAS,CAAE,EAAI9P,CACzB,CAEA,SAASgQ,GAAmB3rH,EAAO,CACjC,IAAIw3G,EAAQ+Q,GAAG,EAEf,OAAIvoH,IAAU,GACZw3G,EAAM,UAAY+P,IAElB/P,EAAM,UAAYgQ,GAEdgB,GAAYxoH,CAAK,EACnBw3G,EAAM,YAAYx3G,CAAK,EAEvB0rH,GAAwBlU,EAAOx3G,CAAK,GAIjCw3G,CACT,CAEA,SAASoU,GAAW5tF,EAASt7B,EAAO,CAC9B8lH,GAAY9lH,EAAM,OAAO,GAC3BgpH,GAAwB1tF,EAAS,EAAE,EACnCA,EAAQ,YAAYt7B,EAAM,OAAO,GACxB,OAAOA,EAAM,SAAY,aAC9BA,EAAM,UACRgpH,GAAwB1tF,EAASt7B,EAAM,OAAO,EAE9Cs7B,EAAQ,YAAct7B,EAAM,QAGlC,CACA,SAASmpH,GAAYpY,EAAQ,CAC3B,IAAIyW,EAAMzW,EAAO,kBACbqY,EAAczD,GAAU6B,EAAI,QAAQ,EACxC,MAAO,CACL,IAAKA,EACL,QAAS4B,EAAY,KAAK,SAAU/wG,EAAM,CACxC,OAAOA,EAAK,UAAU,SAASssG,EAAa,CAC9C,CAAC,EACD,MAAOyE,EAAY,KAAK,SAAU/wG,EAAM,CACtC,OAAOA,EAAK,UAAU,SAASwsG,EAAW,GAAKxsG,EAAK,UAAU,SAASysG,EAAe,CACxF,CAAC,EACD,SAAUsE,EAAY,KAAK,SAAU/wG,EAAM,CACzC,OAAOA,EAAK,UAAU,SAASusG,EAAc,CAC/C,CAAC,CACL,CACA,CACA,SAASv9F,GAAOzW,EAAU,CACxB,IAAImgG,EAAS8U,GAAG,EACZ2B,EAAM3B,GAAG,EACb2B,EAAI,UAAY9C,GAChB8C,EAAI,aAAa,aAAc,QAAQ,EACvCA,EAAI,aAAa,WAAY,IAAI,EACjC,IAAIlsF,EAAUuqF,GAAG,EACjBvqF,EAAQ,UAAYqpF,GACpBrpF,EAAQ,aAAa,aAAc,QAAQ,EAC3C4tF,GAAW5tF,EAAS1qB,EAAS,KAAK,EAClCmgG,EAAO,YAAYyW,CAAG,EACtBA,EAAI,YAAYlsF,CAAO,EACvB+tF,EAASz4G,EAAS,MAAOA,EAAS,KAAK,EAEvC,SAASy4G,EAASj2F,EAAW+F,EAAW,CACtC,IAAImwF,EAAeH,GAAYpY,CAAM,EACjCyW,EAAM8B,EAAa,IACnBhuF,EAAUguF,EAAa,QACvBxU,EAAQwU,EAAa,MAErBnwF,EAAU,MACZquF,EAAI,aAAa,aAAcruF,EAAU,KAAK,EAE9CquF,EAAI,gBAAgB,YAAY,EAG9B,OAAOruF,EAAU,WAAc,SACjCquF,EAAI,aAAa,iBAAkBruF,EAAU,SAAS,EAEtDquF,EAAI,gBAAgB,gBAAgB,EAGlCruF,EAAU,QACZquF,EAAI,aAAa,eAAgB,EAAE,EAEnCA,EAAI,gBAAgB,cAAc,EAGpCA,EAAI,MAAM,SAAW,OAAOruF,EAAU,UAAa,SAAWA,EAAU,SAAW,KAAOA,EAAU,SAEhGA,EAAU,KACZquF,EAAI,aAAa,OAAQruF,EAAU,IAAI,EAEvCquF,EAAI,gBAAgB,MAAM,GAGxBp0F,EAAU,UAAY+F,EAAU,SAAW/F,EAAU,YAAc+F,EAAU,YAC/E+vF,GAAW5tF,EAAS1qB,EAAS,KAAK,EAGhCuoB,EAAU,MACP27E,EAEM1hF,EAAU,QAAU+F,EAAU,QACvCquF,EAAI,YAAY1S,CAAK,EACrB0S,EAAI,YAAYyB,GAAmB9vF,EAAU,KAAK,CAAC,GAHnDquF,EAAI,YAAYyB,GAAmB9vF,EAAU,KAAK,CAAC,EAK5C27E,GACT0S,EAAI,YAAY1S,CAAK,CAEzB,CAEA,MAAO,CACL,OAAQ/D,EACR,SAAUsY,CACd,CACA,CAGAhiG,GAAO,QAAU,GAEjB,IAAIkiG,GAAY,EACZC,GAAqB,GAErBC,GAAmB,GACvB,SAASC,GAAY1Y,EAAW0X,EAAa,CAC3C,IAAI1oH,EAAQ8oH,GAAc9X,EAAW,OAAO,OAAO,GAAIqX,GAAcI,GAAuB7C,GAAqB8C,CAAW,CAAC,CAAC,CAAC,EAI3HiB,EACAC,EACAC,EACAC,EAAqB,GACrBC,EAAgC,GAChCC,EAAe,GACfC,EAAsB,GACtBC,EACAC,EACAC,EACAj4E,EAAY,GACZk4E,EAAuBjF,GAAWkF,EAAatqH,EAAM,mBAAmB,EACxEuqH,EAIAn4G,EAAKm3G,KACLiB,EAAiB,KACjB14B,EAAU2zB,GAAOzlH,EAAM,OAAO,EAC9BkZ,EAAQ,CAEV,UAAW,GAEX,UAAW,GAEX,YAAa,GAEb,UAAW,GAEX,QAAS,EACb,EACMtI,EAAW,CAEb,GAAIwB,EACJ,UAAW4+F,EACX,OAAQ6U,GAAG,EACX,eAAgB2E,EAChB,MAAOxqH,EACP,MAAOkZ,EACP,QAAS44E,EAET,mBAAoB24B,GACpB,SAAUC,GACV,WAAYxB,GACZ,KAAMyB,GACN,KAAMjM,GACN,sBAAuBkM,GACvB,OAAQC,GACR,QAASC,EACT,QAASpzG,GACT,QAASo7B,EACb,EAKE,GAAI,CAAC9yC,EAAM,OAET,OAAO4Q,EAMT,IAAIm6G,EAAgB/qH,EAAM,OAAO4Q,CAAQ,EACrCmgG,EAASga,EAAc,OACvB1B,EAAW0B,EAAc,SAE7Bha,EAAO,aAAa,kBAAmB,EAAE,EACzCA,EAAO,GAAK,SAAWngG,EAAS,GAChCA,EAAS,OAASmgG,EAClBC,EAAU,OAASpgG,EACnBmgG,EAAO,OAASngG,EAChB,IAAIo6G,EAAel5B,EAAQ,IAAI,SAAUhnE,GAAQ,CAC/C,OAAOA,GAAO,GAAGla,CAAQ,CAC3B,CAAC,EACGq6G,EAAkBja,EAAU,aAAa,eAAe,EAC5D,OAAAka,EAAY,EACZC,GAA2B,EAC3BC,EAAY,EACZC,GAAW,WAAY,CAACz6G,CAAQ,CAAC,EAE7B5Q,EAAM,cACRsrH,EAAY,EAKdva,EAAO,iBAAiB,aAAc,UAAY,CAC5CngG,EAAS,MAAM,aAAeA,EAAS,MAAM,WAC/CA,EAAS,mBAAkB,CAE/B,CAAC,EACDmgG,EAAO,iBAAiB,aAAc,UAAY,CAC5CngG,EAAS,MAAM,aAAeA,EAAS,MAAM,QAAQ,QAAQ,YAAY,GAAK,GAChF26G,KAAc,iBAAiB,YAAalB,CAAoB,CAEpE,CAAC,EACMz5G,EAIP,SAAS46G,GAA6B,CACpC,IAAIC,GAAQ76G,EAAS,MAAM,MAC3B,OAAO,MAAM,QAAQ66G,EAAK,EAAIA,GAAQ,CAACA,GAAO,CAAC,CACjD,CAEA,SAASC,GAA2B,CAClC,OAAOF,EAA0B,EAAG,CAAC,IAAM,MAC7C,CAEA,SAASG,GAAuB,CAC9B,IAAIC,GAGJ,MAAO,CAAC,GAAGA,GAAwBh7G,EAAS,MAAM,SAAW,MAAQg7G,GAAsB,QAC7F,CAEA,SAASC,GAAmB,CAC1B,OAAOtB,GAAiBvZ,CAC1B,CAEA,SAASua,IAAc,CACrB,IAAIj5F,GAASu5F,EAAgB,EAAG,WAChC,OAAOv5F,GAASg0F,GAAiBh0F,EAAM,EAAI,QAC7C,CAEA,SAASw5F,IAA6B,CACpC,OAAO3C,GAAYpY,CAAM,CAC3B,CAEA,SAASgb,GAASC,GAAQ,CAIxB,OAAIp7G,EAAS,MAAM,WAAa,CAACA,EAAS,MAAM,WAAa+2G,GAAa,SAAWuC,GAAoBA,EAAiB,OAAS,QAC1H,EAGFjF,GAAwBr0G,EAAS,MAAM,MAAOo7G,GAAS,EAAI,EAAG3D,GAAa,KAAK,CACzF,CAEA,SAAS+C,EAAaa,GAAU,CAC1BA,KAAa,SACfA,GAAW,IAGblb,EAAO,MAAM,cAAgBngG,EAAS,MAAM,aAAe,CAACq7G,GAAW,GAAK,OAC5Elb,EAAO,MAAM,OAAS,GAAKngG,EAAS,MAAM,MAC5C,CAEA,SAASy6G,GAAW32G,GAAM1N,GAAMklH,GAAuB,CAWrD,GAVIA,KAA0B,SAC5BA,GAAwB,IAG1BlB,EAAa,QAAQ,SAAUmB,GAAa,CACtCA,GAAYz3G,EAAI,GAClBy3G,GAAYz3G,EAAI,EAAE,MAAMy3G,GAAanlH,EAAI,CAE7C,CAAC,EAEGklH,GAAuB,CACzB,IAAIE,IAEHA,GAAkBx7G,EAAS,OAAO8D,EAAI,EAAE,MAAM03G,GAAiBplH,EAAI,CACtE,CACF,CAEA,SAASqlH,IAA6B,CACpC,IAAIC,GAAO17G,EAAS,MAAM,KAE1B,GAAK07G,GAAK,QAIV,KAAIpzC,GAAO,QAAUozC,GAAK,QACtBl6G,GAAK2+F,EAAO,GACZwb,GAAQhH,GAAiB30G,EAAS,MAAM,eAAiBogG,CAAS,EACtEub,GAAM,QAAQ,SAAUl0G,GAAM,CAC5B,IAAI+2B,GAAe/2B,GAAK,aAAa6gE,EAAI,EAEzC,GAAItoE,EAAS,MAAM,UACjByH,GAAK,aAAa6gE,GAAM9pC,GAAeA,GAAe,IAAMh9B,GAAKA,EAAE,MAC9D,CACL,IAAI4xB,GAAYoL,IAAgBA,GAAa,QAAQh9B,GAAI,EAAE,EAAE,KAAI,EAE7D4xB,GACF3rB,GAAK,aAAa6gE,GAAMl1C,EAAS,EAEjC3rB,GAAK,gBAAgB6gE,EAAI,CAE7B,CACF,CAAC,EACH,CAEA,SAASiyC,IAA8B,CACrC,GAAI,EAAAF,GAAmB,CAACr6G,EAAS,MAAM,KAAK,UAI5C,KAAI27G,GAAQhH,GAAiB30G,EAAS,MAAM,eAAiBogG,CAAS,EACtEub,GAAM,QAAQ,SAAUl0G,GAAM,CACxBzH,EAAS,MAAM,YACjByH,GAAK,aAAa,gBAAiBzH,EAAS,MAAM,WAAayH,KAASwzG,EAAgB,EAAK,OAAS,OAAO,EAE7GxzG,GAAK,gBAAgB,eAAe,CAExC,CAAC,EACH,CAEA,SAASm0G,IAAmC,CAC1CjB,KAAc,oBAAoB,YAAalB,CAAoB,EACnEb,GAAqBA,GAAmB,OAAO,SAAUh3E,GAAU,CACjE,OAAOA,KAAa63E,CACtB,CAAC,CACH,CAEA,SAASoC,GAAgBx0F,GAAO,CAE9B,GAAI,EAAA0vF,GAAa,UACXqC,GAAgB/xF,GAAM,OAAS,cAKrC,KAAIy0F,GAAez0F,GAAM,cAAgBA,GAAM,aAAY,EAAG,CAAC,GAAKA,GAAM,OAE1E,GAAI,EAAArnB,EAAS,MAAM,aAAe62G,GAAe1W,EAAQ2b,EAAY,GAKrE,IAAInH,GAAiB30G,EAAS,MAAM,eAAiBogG,CAAS,EAAE,KAAK,SAAU10G,GAAI,CACjF,OAAOmrH,GAAenrH,GAAIowH,EAAY,CACxC,CAAC,GAKC,GAJI/E,GAAa,SAIb/2G,EAAS,MAAM,WAAaA,EAAS,MAAM,QAAQ,QAAQ,OAAO,GAAK,EACzE,YAGFy6G,GAAW,iBAAkB,CAACz6G,EAAUqnB,EAAK,CAAC,EAG5CrnB,EAAS,MAAM,cAAgB,KACjCA,EAAS,mBAAkB,EAC3BA,EAAS,KAAI,EAIbm5G,EAAgC,GAChC,WAAW,UAAY,CACrBA,EAAgC,EAClC,CAAC,EAIIn5G,EAAS,MAAM,WAClB+7G,GAAmB,IAGzB,CAEA,SAASC,IAAc,CACrB5C,EAAe,EACjB,CAEA,SAAS6C,IAAe,CACtB7C,EAAe,EACjB,CAEA,SAAS8C,IAAmB,CAC1B,IAAIrvF,GAAM8tF,GAAW,EACrB9tF,GAAI,iBAAiB,YAAagvF,GAAiB,EAAI,EACvDhvF,GAAI,iBAAiB,WAAYgvF,GAAiB1H,EAAa,EAC/DtnF,GAAI,iBAAiB,aAAcovF,GAAc9H,EAAa,EAC9DtnF,GAAI,iBAAiB,YAAamvF,GAAa7H,EAAa,CAC9D,CAEA,SAAS4H,IAAsB,CAC7B,IAAIlvF,GAAM8tF,GAAW,EACrB9tF,GAAI,oBAAoB,YAAagvF,GAAiB,EAAI,EAC1DhvF,GAAI,oBAAoB,WAAYgvF,GAAiB1H,EAAa,EAClEtnF,GAAI,oBAAoB,aAAcovF,GAAc9H,EAAa,EACjEtnF,GAAI,oBAAoB,YAAamvF,GAAa7H,EAAa,CACjE,CAEA,SAASgI,EAAkBjuF,GAAU/zB,GAAU,CAC7CiiH,EAAgBluF,GAAU,UAAY,CAChC,CAACluB,EAAS,MAAM,WAAamgG,EAAO,YAAcA,EAAO,WAAW,SAASA,CAAM,GACrFhmG,GAAQ,CAEZ,CAAC,CACH,CAEA,SAASkiH,GAAiBnuF,GAAU/zB,GAAU,CAC5CiiH,EAAgBluF,GAAU/zB,EAAQ,CACpC,CAEA,SAASiiH,EAAgBluF,GAAU/zB,GAAU,CAC3C,IAAIy8G,GAAMsE,GAA0B,EAAG,IAEvC,SAASt5E,GAASva,GAAO,CACnBA,GAAM,SAAWuvF,KACnBD,GAA4BC,GAAK,SAAUh1E,EAAQ,EACnDznC,GAAQ,EAEZ,CAIA,GAAI+zB,KAAa,EACf,OAAO/zB,GAAQ,EAGjBw8G,GAA4BC,GAAK,SAAU2C,CAA4B,EACvE5C,GAA4BC,GAAK,MAAOh1E,EAAQ,EAChD23E,EAA+B33E,EACjC,CAEA,SAAS06E,EAAGC,GAAWvkG,GAAS3Z,GAAS,CACnCA,KAAY,SACdA,GAAU,IAGZ,IAAIs9G,GAAQhH,GAAiB30G,EAAS,MAAM,eAAiBogG,CAAS,EACtEub,GAAM,QAAQ,SAAUl0G,GAAM,CAC5BA,GAAK,iBAAiB80G,GAAWvkG,GAAS3Z,EAAO,EACjDkjC,EAAU,KAAK,CACb,KAAM95B,GACN,UAAW80G,GACX,QAASvkG,GACT,QAAS3Z,EACjB,CAAO,CACH,CAAC,CACH,CAEA,SAASi8G,GAAe,CAClBQ,EAAwB,IAC1BwB,EAAG,aAAcE,EAAW,CAC1B,QAAS,EACjB,CAAO,EACDF,EAAG,WAAYG,EAAc,CAC3B,QAAS,EACjB,CAAO,GAGH/H,GAAc10G,EAAS,MAAM,OAAO,EAAE,QAAQ,SAAUu8G,GAAW,CACjE,GAAIA,KAAc,SAMlB,OAFAD,EAAGC,GAAWC,CAAS,EAEfD,GAAS,CACf,IAAK,aACHD,EAAG,aAAcG,CAAY,EAC7B,MAEF,IAAK,QACHH,EAAGhF,GAAS,WAAa,OAAQoF,CAAgB,EACjD,MAEF,IAAK,UACHJ,EAAG,WAAYI,CAAgB,EAC/B,KACV,CACI,CAAC,CACH,CAEA,SAASC,GAAkB,CACzBp7E,EAAU,QAAQ,SAAUk/B,GAAM,CAChC,IAAIh5D,GAAOg5D,GAAK,KACZ87C,GAAY97C,GAAK,UACjBzoD,GAAUyoD,GAAK,QACfpiE,GAAUoiE,GAAK,QACnBh5D,GAAK,oBAAoB80G,GAAWvkG,GAAS3Z,EAAO,CACtD,CAAC,EACDkjC,EAAY,EACd,CAEA,SAASi7E,EAAUn1F,GAAO,CACxB,IAAIu1F,GAEAC,GAA0B,GAE9B,GAAI,GAAC78G,EAAS,MAAM,WAAa88G,EAAuBz1F,EAAK,GAAK8xF,GAIlE,KAAI4D,KAAeH,GAAoBtD,IAAqB,KAAO,OAASsD,GAAkB,QAAU,QACxGtD,EAAmBjyF,GACnBsyF,EAAgBtyF,GAAM,cACtBkzF,GAA2B,EAEvB,CAACv6G,EAAS,MAAM,WAAao1G,GAAa/tF,EAAK,GAKjDuxF,GAAmB,QAAQ,SAAUh3E,GAAU,CAC7C,OAAOA,GAASva,EAAK,CACvB,CAAC,EAICA,GAAM,OAAS,UAAYrnB,EAAS,MAAM,QAAQ,QAAQ,YAAY,EAAI,GAAKk5G,IAAuBl5G,EAAS,MAAM,cAAgB,IAASA,EAAS,MAAM,UAC/J68G,GAA0B,GAE1BnC,EAAarzF,EAAK,EAGhBA,GAAM,OAAS,UACjB6xF,EAAqB,CAAC2D,IAGpBA,IAA2B,CAACE,IAC9BC,EAAa31F,EAAK,EAEtB,CAEA,SAASqyF,EAAYryF,GAAO,CAC1B,IAAIxyB,GAASwyB,GAAM,OACf41F,GAAgChC,EAAgB,EAAG,SAASpmH,EAAM,GAAKsrG,EAAO,SAAStrG,EAAM,EAEjG,GAAI,EAAAwyB,GAAM,OAAS,aAAe41F,IAIlC,KAAInH,GAAiBoH,IAAsB,OAAO/c,CAAM,EAAE,IAAI,SAAUA,GAAQ,CAC9E,IAAIgd,GAEAn9G,GAAWmgG,GAAO,OAClB73F,IAAS60G,GAAwBn9G,GAAS,iBAAmB,KAAO,OAASm9G,GAAsB,MAEvG,OAAI70G,GACK,CACL,WAAY63F,GAAO,sBAAqB,EACxC,YAAa73F,GACb,MAAOlZ,CACjB,EAGa,IACT,CAAC,EAAE,OAAO,OAAO,EAEbymH,GAAiCC,GAAgBzuF,EAAK,IACxDu0F,GAAgC,EAChCoB,EAAa31F,EAAK,GAEtB,CAEA,SAASo1F,EAAap1F,GAAO,CAC3B,IAAI+1F,GAAaN,EAAuBz1F,EAAK,GAAKrnB,EAAS,MAAM,QAAQ,QAAQ,OAAO,GAAK,GAAKk5G,EAElG,GAAI,CAAAkE,GAIJ,IAAIp9G,EAAS,MAAM,YAAa,CAC9BA,EAAS,sBAAsBqnB,EAAK,EACpC,MACF,CAEA21F,EAAa31F,EAAK,EACpB,CAEA,SAASq1F,EAAiBr1F,GAAO,CAC3BrnB,EAAS,MAAM,QAAQ,QAAQ,SAAS,EAAI,GAAKqnB,GAAM,SAAW4zF,KAKlEj7G,EAAS,MAAM,aAAeqnB,GAAM,eAAiB84E,EAAO,SAAS94E,GAAM,aAAa,GAI5F21F,EAAa31F,EAAK,CACpB,CAEA,SAASy1F,EAAuBz1F,GAAO,CACrC,OAAO0vF,GAAa,QAAU+D,MAA+BzzF,GAAM,KAAK,QAAQ,OAAO,GAAK,EAAI,EAClG,CAEA,SAASg2F,GAAuB,CAC9BC,EAAqB,EACrB,IAAIC,GAAmBv9G,EAAS,MAC5Bw9G,GAAgBD,GAAiB,cACjCjd,GAAYid,GAAiB,UAC7B7gF,GAAS6gF,GAAiB,OAC1BE,GAAyBF,GAAiB,uBAC1CG,GAAiBH,GAAiB,eAClCrZ,GAAQ6W,EAAoB,EAAKxC,GAAYpY,CAAM,EAAE,MAAQ,KAC7Dwd,GAAoBF,GAAyB,CAC/C,sBAAuBA,GACvB,eAAgBA,GAAuB,gBAAkBxC,EAAgB,CAC/E,EAAQ7a,EACAwd,GAAgB,CAClB,KAAM,UACN,QAAS,GACT,MAAO,cACP,SAAU,CAAC,eAAe,EAC1B,GAAI,SAAYn1C,GAAO,CACrB,IAAIngE,GAAQmgE,GAAM,MAElB,GAAIsyC,EAAoB,EAAI,CAC1B,IAAI8C,GAAwB3C,GAA0B,EAClDtE,GAAMiH,GAAsB,IAEhC,CAAC,YAAa,mBAAoB,SAAS,EAAE,QAAQ,SAAUv1C,GAAM,CAC/DA,KAAS,YACXsuC,GAAI,aAAa,iBAAkBtuG,GAAM,SAAS,EAE9CA,GAAM,WAAW,OAAO,eAAiBggE,EAAI,EAC/CsuC,GAAI,aAAa,QAAUtuC,GAAM,EAAE,EAEnCsuC,GAAI,gBAAgB,QAAUtuC,EAAI,CAGxC,CAAC,EACDhgE,GAAM,WAAW,OAAS,EAC5B,CACF,CACN,EACQ7E,GAAY,CAAC,CACf,KAAM,SACN,QAAS,CACP,OAAQi5B,EAChB,CACA,EAAO,CACD,KAAM,kBACN,QAAS,CACP,QAAS,CACP,IAAK,EACL,OAAQ,EACR,KAAM,EACN,MAAO,CACjB,CACA,CACA,EAAO,CACD,KAAM,OACN,QAAS,CACP,QAAS,CACjB,CACA,EAAO,CACD,KAAM,gBACN,QAAS,CACP,SAAU,CAACghF,EACnB,CACA,EAAOE,EAAa,EAEZ7C,EAAoB,GAAM7W,IAC5BzgG,GAAU,KAAK,CACb,KAAM,QACN,QAAS,CACP,QAASygG,GACT,QAAS,CACnB,CACA,CAAO,EAGHzgG,GAAU,KAAK,MAAMA,GAA6C+5G,IAAc,WAAc,EAAE,EAChGx9G,EAAS,eAAiB6zG,GAAa8J,GAAmBxd,EAAQ,OAAO,OAAO,GAAIqd,GAAe,CACjG,UAAWld,GACX,cAAekZ,EACf,UAAW/1G,EACjB,CAAK,CAAC,CACJ,CAEA,SAAS65G,GAAwB,CAC3Bt9G,EAAS,iBACXA,EAAS,eAAe,QAAO,EAC/BA,EAAS,eAAiB,KAE9B,CAEA,SAASgG,GAAQ,CACf,IAAI83G,GAAW99G,EAAS,MAAM,SAC1B2H,GAMAF,GAAOwzG,EAAgB,EAEvBj7G,EAAS,MAAM,aAAe89G,KAAa1J,IAA2B0J,KAAa,SACrFn2G,GAAaF,GAAK,WAElBE,GAAa4sG,GAAuBuJ,GAAU,CAACr2G,EAAI,CAAC,EAKjDE,GAAW,SAASw4F,CAAM,GAC7Bx4F,GAAW,YAAYw4F,CAAM,EAG/BngG,EAAS,MAAM,UAAY,GAC3Bq9G,EAAoB,CACtB,CAEA,SAASH,GAAsB,CAC7B,OAAOnI,GAAU5U,EAAO,iBAAiB,mBAAmB,CAAC,CAC/D,CAEA,SAASua,EAAarzF,GAAO,CAC3BrnB,EAAS,mBAAkB,EAEvBqnB,IACFozF,GAAW,YAAa,CAACz6G,EAAUqnB,EAAK,CAAC,EAG3C60F,GAAgB,EAChB,IAAI6B,GAAQ5C,GAAS,EAAI,EAErB6C,GAAwBpD,EAA0B,EAClDqD,GAAaD,GAAsB,CAAC,EACpCE,GAAaF,GAAsB,CAAC,EAEpCjH,GAAa,SAAWkH,KAAe,QAAUC,KACnDH,GAAQG,IAGNH,GACFhF,EAAc,WAAW,UAAY,CACnC/4G,EAAS,KAAI,CACf,EAAG+9G,EAAK,EAER/9G,EAAS,KAAI,CAEjB,CAEA,SAASg9G,EAAa31F,GAAO,CAI3B,GAHArnB,EAAS,mBAAkB,EAC3By6G,GAAW,cAAe,CAACz6G,EAAUqnB,EAAK,CAAC,EAEvC,CAACrnB,EAAS,MAAM,UAAW,CAC7B+7G,GAAmB,EACnB,MACF,CAMA,GAAI,EAAA/7G,EAAS,MAAM,QAAQ,QAAQ,YAAY,GAAK,GAAKA,EAAS,MAAM,QAAQ,QAAQ,OAAO,GAAK,GAAK,CAAC,aAAc,WAAW,EAAE,QAAQqnB,GAAM,IAAI,GAAK,GAAK6xF,GAIjK,KAAI6E,GAAQ5C,GAAS,EAAK,EAEtB4C,GACF/E,EAAc,WAAW,UAAY,CAC/Bh5G,EAAS,MAAM,WACjBA,EAAS,KAAI,CAEjB,EAAG+9G,EAAK,EAIR9E,EAA6B,sBAAsB,UAAY,CAC7Dj5G,EAAS,KAAI,CACf,CAAC,EAEL,CAKA,SAASi6G,IAAS,CAChBj6G,EAAS,MAAM,UAAY,EAC7B,CAEA,SAASk6G,GAAU,CAGjBl6G,EAAS,KAAI,EACbA,EAAS,MAAM,UAAY,EAC7B,CAEA,SAAS65G,IAAqB,CAC5B,aAAad,CAAW,EACxB,aAAaC,CAAW,EACxB,qBAAqBC,CAA0B,CACjD,CAEA,SAASa,GAASlC,GAAc,CAE9B,GAAI,CAAA53G,EAAS,MAAM,YAInB,CAAAy6G,GAAW,iBAAkB,CAACz6G,EAAU43G,EAAY,CAAC,EACrD+E,EAAe,EACf,IAAIn6F,GAAYxiB,EAAS,MACrBuoB,GAAY2vF,GAAc9X,EAAW,OAAO,OAAO,GAAI59E,GAAWwyF,GAAqB4C,EAAY,EAAG,CACxG,iBAAkB,EACxB,CAAK,CAAC,EACF53G,EAAS,MAAQuoB,GACjB+xF,EAAY,EAER93F,GAAU,sBAAwB+F,GAAU,sBAC9CqzF,GAAgC,EAChCnC,EAAuBjF,GAAWkF,EAAanxF,GAAU,mBAAmB,GAI1E/F,GAAU,eAAiB,CAAC+F,GAAU,cACxCosF,GAAiBnyF,GAAU,aAAa,EAAE,QAAQ,SAAU/a,GAAM,CAChEA,GAAK,gBAAgB,eAAe,CACtC,CAAC,EACQ8gB,GAAU,eACnB63E,EAAU,gBAAgB,eAAe,EAG3Cma,GAA2B,EAC3BC,EAAY,EAER/B,GACFA,EAASj2F,GAAW+F,EAAS,EAG3BvoB,EAAS,iBACXq9G,IAKAH,EAAmB,EAAG,QAAQ,SAAUiB,GAAc,CAGpD,sBAAsBA,GAAa,OAAO,eAAe,WAAW,CACtE,CAAC,GAGH1D,GAAW,gBAAiB,CAACz6G,EAAU43G,EAAY,CAAC,EACtD,CAEA,SAASU,GAAW5tF,GAAS,CAC3B1qB,EAAS,SAAS,CAChB,QAAS0qB,EACf,CAAK,CACH,CAEA,SAASqvF,IAAO,CAGd,IAAIqE,GAAmBp+G,EAAS,MAAM,UAClCozG,GAAcpzG,EAAS,MAAM,YAC7BkI,GAAa,CAAClI,EAAS,MAAM,UAC7Bq+G,GAA0BtH,GAAa,SAAW,CAAC/2G,EAAS,MAAM,MAClEkuB,GAAWmmF,GAAwBr0G,EAAS,MAAM,SAAU,EAAGy3G,GAAa,QAAQ,EAExF,GAAI,EAAA2G,IAAoBhL,IAAelrG,IAAcm2G,KAOjD,CAAApD,EAAgB,EAAG,aAAa,UAAU,IAI9CR,GAAW,SAAU,CAACz6G,CAAQ,EAAG,EAAK,EAElCA,EAAS,MAAM,OAAOA,CAAQ,IAAM,IAmBxC,IAfAA,EAAS,MAAM,UAAY,GAEvB+6G,EAAoB,IACtB5a,EAAO,MAAM,WAAa,WAG5Bqa,EAAY,EACZ0B,GAAgB,EAEXl8G,EAAS,MAAM,YAClBmgG,EAAO,MAAM,WAAa,QAKxB4a,EAAoB,EAAI,CAC1B,IAAIuD,GAAyBpD,GAA0B,EACnDtE,GAAM0H,GAAuB,IAC7B5zF,GAAU4zF,GAAuB,QAErC/I,GAAsB,CAACqB,GAAKlsF,EAAO,EAAG,CAAC,CACzC,CAEA8uF,EAAgB,UAAyB,CACvC,IAAI+E,GAEJ,GAAI,GAACv+G,EAAS,MAAM,WAAaq5G,GASjC,IALAA,EAAsB,GAEjBlZ,EAAO,aACZA,EAAO,MAAM,WAAangG,EAAS,MAAM,eAErC+6G,EAAoB,GAAM/6G,EAAS,MAAM,UAAW,CACtD,IAAIw+G,GAAyBtD,GAA0B,EACnDuD,GAAOD,GAAuB,IAC9BvhC,GAAWuhC,GAAuB,QAEtCjJ,GAAsB,CAACkJ,GAAMxhC,EAAQ,EAAG/uD,EAAQ,EAChDunF,GAAmB,CAACgJ,GAAMxhC,EAAQ,EAAG,SAAS,CAChD,CAEAw+B,GAA0B,EAC1BlB,GAA2B,EAC3B3F,GAAaiE,GAAkB74G,CAAQ,GAGtCu+G,GAAyBv+G,EAAS,iBAAmB,MAAgBu+G,GAAuB,YAAW,EACxG9D,GAAW,UAAW,CAACz6G,CAAQ,CAAC,EAE5BA,EAAS,MAAM,WAAa+6G,EAAoB,GAClDsB,GAAiBnuF,GAAU,UAAY,CACrCluB,EAAS,MAAM,QAAU,GACzBy6G,GAAW,UAAW,CAACz6G,CAAQ,CAAC,CAClC,CAAC,EAEL,EAEAgG,EAAK,EACP,CAEA,SAAS8nG,IAAO,CAGd,IAAI4Q,GAAkB,CAAC1+G,EAAS,MAAM,UAClCozG,GAAcpzG,EAAS,MAAM,YAC7BkI,GAAa,CAAClI,EAAS,MAAM,UAC7BkuB,GAAWmmF,GAAwBr0G,EAAS,MAAM,SAAU,EAAGy3G,GAAa,QAAQ,EAExF,GAAI,EAAAiH,IAAmBtL,IAAelrG,MAItCuyG,GAAW,SAAU,CAACz6G,CAAQ,EAAG,EAAK,EAElCA,EAAS,MAAM,OAAOA,CAAQ,IAAM,IAiBxC,IAbAA,EAAS,MAAM,UAAY,GAC3BA,EAAS,MAAM,QAAU,GACzBq5G,EAAsB,GACtBH,EAAqB,GAEjB6B,EAAoB,IACtB5a,EAAO,MAAM,WAAa,UAG5Byb,GAAgC,EAChCG,GAAmB,EACnBvB,EAAa,EAAI,EAEbO,EAAoB,EAAI,CAC1B,IAAI4D,GAAyBzD,GAA0B,EACnDtE,GAAM+H,GAAuB,IAC7Bj0F,GAAUi0F,GAAuB,QAEjC3+G,EAAS,MAAM,YACjBu1G,GAAsB,CAACqB,GAAKlsF,EAAO,EAAGwD,EAAQ,EAC9CunF,GAAmB,CAACmB,GAAKlsF,EAAO,EAAG,QAAQ,EAE/C,CAEA+wF,GAA0B,EAC1BlB,GAA2B,EAEvBv6G,EAAS,MAAM,UACb+6G,EAAoB,GACtBoB,EAAkBjuF,GAAUluB,EAAS,OAAO,EAG9CA,EAAS,QAAO,EAEpB,CAEA,SAASg6G,GAAsB3yF,GAAO,CAEpCszF,KAAc,iBAAiB,YAAalB,CAAoB,EAChE7E,GAAagE,GAAoBa,CAAoB,EACrDA,EAAqBpyF,EAAK,CAC5B,CAEA,SAASvgB,IAAU,CAEb9G,EAAS,MAAM,WACjBA,EAAS,KAAI,EAGVA,EAAS,MAAM,YAIpBs9G,IAIAJ,EAAmB,EAAG,QAAQ,SAAUiB,GAAc,CACpDA,GAAa,OAAO,QAAO,CAC7B,CAAC,EAEGhe,EAAO,YACTA,EAAO,WAAW,YAAYA,CAAM,EAGtC0Y,GAAmBA,GAAiB,OAAO,SAAUltH,GAAG,CACtD,OAAOA,KAAMqU,CACf,CAAC,EACDA,EAAS,MAAM,UAAY,GAC3By6G,GAAW,WAAY,CAACz6G,CAAQ,CAAC,EACnC,CAEA,SAASkiC,IAAU,CAEbliC,EAAS,MAAM,cAInBA,EAAS,mBAAkB,EAC3BA,EAAS,QAAO,EAChB28G,EAAe,EACf,OAAOvc,EAAU,OACjBpgG,EAAS,MAAM,YAAc,GAC7By6G,GAAW,YAAa,CAACz6G,CAAQ,CAAC,EACpC,CACF,CAEA,SAAS4+G,GAAMC,EAASC,EAAe,CACjCA,IAAkB,SACpBA,EAAgB,IAGlB,IAAI59B,EAAUu2B,GAAa,QAAQ,OAAOqH,EAAc,SAAW,EAAE,EAErEzH,GAAwB,EACxB,IAAIS,EAAc,OAAO,OAAO,GAAIgH,EAAe,CACjD,QAAS59B,CACb,CAAG,EACG69B,EAAWzJ,GAAmBuJ,CAAO,EAErCG,EAAYD,EAAS,OAAO,SAAUtnH,EAAK2oG,EAAW,CACxD,IAAIpgG,EAAWogG,GAAa0Y,GAAY1Y,EAAW0X,CAAW,EAE9D,OAAI93G,GACFvI,EAAI,KAAKuI,CAAQ,EAGZvI,CACT,EAAG,EAAE,EACL,OAAOy9G,GAAY2J,CAAO,EAAIG,EAAU,CAAC,EAAIA,CAC/C,CAEAJ,GAAM,aAAenH,GACrBmH,GAAM,gBAAkBjH,GACxBiH,GAAM,aAAe7H,GAiCrB,IAAIkI,GAAsB,OAAO,OAAO,GAAIrd,GAAe,CACzD,OAAQ,SAAgBnhC,EAAM,CAC5B,IAAIn4D,EAAQm4D,EAAK,MACbghC,EAAgB,CAClB,OAAQ,CACN,SAAUn5F,EAAM,QAAQ,SACxB,KAAM,IACN,IAAK,IACL,OAAQ,GAChB,EACM,MAAO,CACL,SAAU,UAClB,EACM,UAAW,EACjB,EACI,OAAO,OAAOA,EAAM,SAAS,OAAO,MAAOm5F,EAAc,MAAM,EAC/Dn5F,EAAM,OAASm5F,EAEXn5F,EAAM,SAAS,OACjB,OAAO,OAAOA,EAAM,SAAS,MAAM,MAAOm5F,EAAc,KAAK,CAIjE,CACF,CAAC,EAEGyd,GAAkB,SAAyBC,EAAgBL,EAAe,CAC5E,IAAIM,EAEAN,IAAkB,SACpBA,EAAgB,IAGlB,IAAIO,EAAsBF,EACtBG,EAAa,GACbC,EAAiB,GACjB5F,EACA6F,EAAYV,EAAc,UAC1BW,EAA4B,GAC5BC,EAAgB,GAEpB,SAASC,GAAoB,CAC3BJ,EAAiBF,EAAoB,IAAI,SAAUr/G,EAAU,CAC3D,OAAO20G,GAAiB30G,EAAS,MAAM,eAAiBA,EAAS,SAAS,CAC5E,CAAC,EAAE,OAAO,SAAUvI,EAAKjJ,EAAM,CAC7B,OAAOiJ,EAAI,OAAOjJ,CAAI,CACxB,EAAG,EAAE,CACP,CAEA,SAASoxH,GAAgB,CACvBN,EAAaD,EAAoB,IAAI,SAAUr/G,EAAU,CACvD,OAAOA,EAAS,SAClB,CAAC,CACH,CAEA,SAAS6/G,EAAgBC,EAAW,CAClCT,EAAoB,QAAQ,SAAUr/G,EAAU,CAC1C8/G,EACF9/G,EAAS,OAAM,EAEfA,EAAS,QAAO,CAEpB,CAAC,CACH,CAEA,SAAS+/G,EAAkBC,EAAW,CACpC,OAAOX,EAAoB,IAAI,SAAUr/G,EAAU,CACjD,IAAIigH,EAAmBjgH,EAAS,SAEhC,OAAAA,EAAS,SAAW,SAAU5Q,EAAO,CACnC6wH,EAAiB7wH,CAAK,EAElB4Q,EAAS,YAAc25G,GACzBqG,EAAU,SAAS5wH,CAAK,CAE5B,EAEO,UAAY,CACjB4Q,EAAS,SAAWigH,CACtB,CACF,CAAC,CACH,CAGA,SAASC,EAAgBF,EAAWnrH,EAAQ,CAC1C,IAAI2C,EAAQ+nH,EAAe,QAAQ1qH,CAAM,EAEzC,GAAIA,IAAW8kH,EAIf,CAAAA,EAAgB9kH,EAChB,IAAIsrH,GAAiBX,GAAa,IAAI,OAAO,SAAS,EAAE,OAAO,SAAU/nH,EAAKklB,EAAM,CAClF,OAAAllB,EAAIklB,CAAI,EAAI0iG,EAAoB7nH,CAAK,EAAE,MAAMmlB,CAAI,EAC1CllB,CACT,EAAG,EAAE,EACLuoH,EAAU,SAAS,OAAO,OAAO,GAAIG,EAAe,CAClD,uBAAwB,OAAOA,EAAc,wBAA2B,WAAaA,EAAc,uBAAyB,UAAY,CACtI,IAAIC,EAEJ,OAAQA,EAAoBd,EAAW9nH,CAAK,IAAM,KAAO,OAAS4oH,EAAkB,sBAAqB,CAC3G,CACN,CAAK,CAAC,EACJ,CAEAP,EAAgB,EAAK,EACrBD,EAAa,EACbD,EAAiB,EACjB,IAAIzlG,EAAS,CACX,GAAI,UAAc,CAChB,MAAO,CACL,UAAW,UAAqB,CAC9B2lG,EAAgB,EAAI,CACtB,EACA,SAAU,UAAoB,CAC5BlG,EAAgB,IAClB,EACA,eAAgB,SAAwB35G,EAAU,CAC5CA,EAAS,MAAM,cAAgB,CAAC0/G,IAClCA,EAAgB,GAChB/F,EAAgB,KAEpB,EACA,OAAQ,SAAgB35G,EAAU,CAC5BA,EAAS,MAAM,cAAgB,CAAC0/G,IAClCA,EAAgB,GAChBQ,EAAgBlgH,EAAUs/G,EAAW,CAAC,CAAC,EAE3C,EACA,UAAW,SAAmBt/G,EAAUqnB,EAAO,CAC7C64F,EAAgBlgH,EAAUqnB,EAAM,aAAa,CAC/C,CACR,CACI,CACJ,EACM24F,EAAYpB,GAAM3J,GAAG,EAAI,OAAO,OAAO,GAAIR,GAAiBqK,EAAe,CAAC,WAAW,CAAC,EAAG,CAC7F,QAAS,CAAC5kG,CAAM,EAAE,OAAO4kG,EAAc,SAAW,EAAE,EACpD,cAAeS,EACf,cAAe,OAAO,OAAO,GAAIT,EAAc,cAAe,CAC5D,UAAW,GAAG,SAASM,EAAwBN,EAAc,gBAAkB,KAAO,OAASM,EAAsB,YAAc,GAAI,CAACH,EAAmB,CAAC,CAClK,CAAK,CACL,CAAG,CAAC,EACEoB,EAAeL,EAAU,KAE7BA,EAAU,KAAO,SAAUnrH,EAAQ,CAIjC,GAHAwrH,IAGI,CAAC1G,GAAiB9kH,GAAU,KAC9B,OAAOqrH,EAAgBF,EAAWV,EAAW,CAAC,CAAC,EAKjD,GAAI,EAAA3F,GAAiB9kH,GAAU,MAK/B,IAAI,OAAOA,GAAW,SACpB,OAAOyqH,EAAWzqH,CAAM,GAAKqrH,EAAgBF,EAAWV,EAAWzqH,CAAM,CAAC,EAI5E,GAAIwqH,EAAoB,QAAQxqH,CAAM,GAAK,EAAG,CAC5C,IAAI8G,EAAM9G,EAAO,UACjB,OAAOqrH,EAAgBF,EAAWrkH,CAAG,CACvC,CAGA,GAAI2jH,EAAW,QAAQzqH,CAAM,GAAK,EAChC,OAAOqrH,EAAgBF,EAAWnrH,CAAM,EAE5C,EAEAmrH,EAAU,SAAW,UAAY,CAC/B,IAAI3gC,EAAQigC,EAAW,CAAC,EAExB,GAAI,CAAC3F,EACH,OAAOqG,EAAU,KAAK,CAAC,EAGzB,IAAIxoH,EAAQ8nH,EAAW,QAAQ3F,CAAa,EAC5CqG,EAAU,KAAKV,EAAW9nH,EAAQ,CAAC,GAAK6nF,CAAK,CAC/C,EAEA2gC,EAAU,aAAe,UAAY,CACnC,IAAI3uH,EAAOiuH,EAAWA,EAAW,OAAS,CAAC,EAE3C,GAAI,CAAC3F,EACH,OAAOqG,EAAU,KAAK3uH,CAAI,EAG5B,IAAImG,EAAQ8nH,EAAW,QAAQ3F,CAAa,EACxC9kH,EAASyqH,EAAW9nH,EAAQ,CAAC,GAAKnG,EACtC2uH,EAAU,KAAKnrH,CAAM,CACvB,EAEA,IAAIorH,EAAmBD,EAAU,SAEjC,OAAAA,EAAU,SAAW,SAAU5wH,EAAO,CACpCowH,EAAYpwH,EAAM,WAAaowH,EAC/BS,EAAiB7wH,CAAK,CACxB,EAEA4wH,EAAU,aAAe,SAAUM,EAAe,CAChDT,EAAgB,EAAI,EACpBJ,EAA0B,QAAQ,SAAUzyH,EAAI,CAC9C,OAAOA,EAAE,CACX,CAAC,EACDqyH,EAAsBiB,EACtBT,EAAgB,EAAK,EACrBD,EAAa,EACbD,EAAiB,EACjBF,EAA4BM,EAAkBC,CAAS,EACvDA,EAAU,SAAS,CACjB,cAAeT,CACrB,CAAK,CACH,EAEAE,EAA4BM,EAAkBC,CAAS,EAChDA,CACT,EAEIO,GAAc,CAChB,KAAM,cACN,aAAc,GACd,GAAI,SAAYvgH,EAAU,CACxB,IAAIg7G,EAGJ,GAAI,GAAGA,EAAwBh7G,EAAS,MAAM,SAAW,MAAQg7G,EAAsB,SAErF,MAAO,GAGT,IAAItC,EAAeH,GAAYv4G,EAAS,MAAM,EAC1C42G,EAAM8B,EAAa,IACnBhuF,EAAUguF,EAAa,QAEvB8H,EAAWxgH,EAAS,MAAM,YAAcygH,GAAqB,EAAK,KACtE,MAAO,CACL,SAAU,UAAoB,CACxBD,IACF5J,EAAI,aAAa4J,EAAU5J,EAAI,iBAAiB,EAChDA,EAAI,aAAa,mBAAoB,EAAE,EACvCA,EAAI,MAAM,SAAW,SACrB52G,EAAS,SAAS,CAChB,MAAO,GACP,UAAW,YACvB,CAAW,EAEL,EACA,QAAS,UAAmB,CAC1B,GAAIwgH,EAAU,CACZ,IAAIE,EAAqB9J,EAAI,MAAM,mBAC/B1oF,EAAW,OAAOwyF,EAAmB,QAAQ,KAAM,EAAE,CAAC,EAI1Dh2F,EAAQ,MAAM,gBAAkB,KAAK,MAAMwD,EAAW,EAAE,EAAI,KAC5DsyF,EAAS,MAAM,mBAAqBE,EACpCjL,GAAmB,CAAC+K,CAAQ,EAAG,SAAS,CAC1C,CACF,EACA,OAAQ,UAAkB,CACpBA,IACFA,EAAS,MAAM,mBAAqB,MAExC,EACA,OAAQ,UAAkB,CACpBA,GACF/K,GAAmB,CAAC+K,CAAQ,EAAG,QAAQ,CAE3C,CACN,CACE,CACF,EAEA,SAASC,IAAwB,CAC/B,IAAID,EAAWvL,GAAG,EAClB,OAAAuL,EAAS,UAAYxM,GACrByB,GAAmB,CAAC+K,CAAQ,EAAG,QAAQ,EAChCA,CACT,CAEA,IAAIG,GAAc,CAChB,QAAS,EACT,QAAS,CACX,EACIC,GAAkB,GAEtB,SAASC,GAAiBpgD,EAAM,CAC9B,IAAIs1C,EAAUt1C,EAAK,QACfu1C,EAAUv1C,EAAK,QACnBkgD,GAAc,CACZ,QAAS5K,EACT,QAASC,CACb,CACA,CAEA,SAAS8K,GAAuBj0F,EAAK,CACnCA,EAAI,iBAAiB,YAAag0F,EAAgB,CACpD,CAEA,SAASE,GAA0Bl0F,EAAK,CACtCA,EAAI,oBAAoB,YAAag0F,EAAgB,CACvD,CAEA,IAAIG,GAAe,CACjB,KAAM,eACN,aAAc,GACd,GAAI,SAAYhhH,EAAU,CACxB,IAAIogG,EAAYpgG,EAAS,UACrB6sB,EAAM6oF,GAAiB11G,EAAS,MAAM,eAAiBogG,CAAS,EAChE6gB,EAAmB,GACnBC,EAAgB,GAChBC,EAAc,GACd3+F,EAAYxiB,EAAS,MAEzB,SAASohH,GAAuB,CAC9B,OAAOphH,EAAS,MAAM,eAAiB,WAAaA,EAAS,MAAM,SACrE,CAEA,SAASqhH,GAAc,CACrBx0F,EAAI,iBAAiB,YAAa6sF,CAAW,CAC/C,CAEA,SAAS4H,GAAiB,CACxBz0F,EAAI,oBAAoB,YAAa6sF,CAAW,CAClD,CAEA,SAAS6H,GAA8B,CACrCN,EAAmB,GACnBjhH,EAAS,SAAS,CAChB,uBAAwB,IAChC,CAAO,EACDihH,EAAmB,EACrB,CAEA,SAASvH,EAAYryF,EAAO,CAG1B,IAAIm6F,EAAwBn6F,EAAM,OAAS+4E,EAAU,SAAS/4E,EAAM,MAAM,EAAI,GAC1E25F,EAAehhH,EAAS,MAAM,aAC9B+1G,EAAU1uF,EAAM,QAChB2uF,EAAU3uF,EAAM,QAChB26E,EAAO5B,EAAU,sBAAqB,EACtCqhB,EAAY1L,EAAU/T,EAAK,KAC3B0f,EAAY1L,EAAUhU,EAAK,KAE3Bwf,GAAyB,CAACxhH,EAAS,MAAM,cAC3CA,EAAS,SAAS,CAEhB,uBAAwB,UAAkC,CACxD,IAAIgiG,EAAO5B,EAAU,sBAAqB,EACtC/pG,EAAI0/G,EACJ51D,EAAI61D,EAEJgL,IAAiB,YACnB3qH,EAAI2rG,EAAK,KAAOyf,EAChBthE,EAAI6hD,EAAK,IAAM0f,GAGjB,IAAI/hB,EAAMqhB,IAAiB,aAAehf,EAAK,IAAM7hD,EACjD0/C,EAAQmhB,IAAiB,WAAahf,EAAK,MAAQ3rG,EACnDupG,EAASohB,IAAiB,aAAehf,EAAK,OAAS7hD,EACvD2/C,GAAOkhB,IAAiB,WAAahf,EAAK,KAAO3rG,EACrD,MAAO,CACL,MAAOwpG,EAAQC,GACf,OAAQF,EAASD,EACjB,IAAKA,EACL,MAAOE,EACP,OAAQD,EACR,KAAME,EACpB,CACU,CACV,CAAS,CAEL,CAEA,SAAS6hB,GAAS,CACZ3hH,EAAS,MAAM,eACjB4gH,GAAgB,KAAK,CACnB,SAAU5gH,EACV,IAAK6sB,CACf,CAAS,EACDi0F,GAAuBj0F,CAAG,EAE9B,CAEA,SAASqV,GAAU,CACjB0+E,GAAkBA,GAAgB,OAAO,SAAU7sG,EAAM,CACvD,OAAOA,EAAK,WAAa/T,CAC3B,CAAC,EAEG4gH,GAAgB,OAAO,SAAU7sG,EAAM,CACzC,OAAOA,EAAK,MAAQ8Y,CACtB,CAAC,EAAE,SAAW,GACZk0F,GAA0Bl0F,CAAG,CAEjC,CAEA,MAAO,CACL,SAAU80F,EACV,UAAWz/E,EACX,eAAgB,UAA0B,CACxC1f,EAAYxiB,EAAS,KACvB,EACA,cAAe,SAAuBk2B,EAAGuyC,EAAO,CAC9C,IAAIu4C,EAAev4C,EAAM,aAErBw4C,GAIAD,IAAiB,QAAax+F,EAAU,eAAiBw+F,IAC3D9+E,EAAO,EAEH8+E,GACFW,EAAM,EAEF3hH,EAAS,MAAM,WAAa,CAACkhH,GAAiB,CAACE,KACjDC,EAAW,IAGbC,EAAc,EACdC,EAA2B,GAGjC,EACA,QAAS,UAAmB,CACtBvhH,EAAS,MAAM,cAAgB,CAACkhH,IAC9BC,IACFzH,EAAYiH,EAAW,EACvBQ,EAAc,IAGXC,EAAoB,GACvBC,EAAW,EAGjB,EACA,UAAW,SAAmBnrF,EAAG7O,EAAO,CAClC+tF,GAAa/tF,CAAK,IACpBs5F,GAAc,CACZ,QAASt5F,EAAM,QACf,QAASA,EAAM,OAC3B,GAGQ65F,EAAgB75F,EAAM,OAAS,OACjC,EACA,SAAU,UAAoB,CACxBrnB,EAAS,MAAM,eACjBuhH,EAA2B,EAC3BD,EAAc,EACdH,EAAc,GAElB,CACN,CACE,CACF,EAEA,SAASS,GAASxyH,EAAO4iH,EAAU,CACjC,IAAI6P,EAEJ,MAAO,CACL,cAAe,OAAO,OAAO,GAAIzyH,EAAM,cAAe,CACpD,UAAW,GAAG,UAAUyyH,EAAuBzyH,EAAM,gBAAkB,KAAO,OAASyyH,EAAqB,YAAc,IAAI,OAAO,SAAUphD,EAAM,CACnJ,IAAIvxE,EAAOuxE,EAAK,KAChB,OAAOvxE,IAAS8iH,EAAS,IAC3B,CAAC,EAAG,CAACA,CAAQ,CAAC,CACpB,CAAK,CACL,CACA,CAEA,IAAI8P,GAAoB,CACtB,KAAM,oBACN,aAAc,GACd,GAAI,SAAY9hH,EAAU,CACxB,IAAIogG,EAAYpgG,EAAS,UAEzB,SAAS8/G,GAAY,CACnB,MAAO,CAAC,CAAC9/G,EAAS,MAAM,iBAC1B,CAEA,IAAIsgG,EACAyhB,EAAkB,GAClBd,EAAmB,GACnBe,EAAkB,GAClBhQ,EAAW,CACb,KAAM,yBACN,QAAS,GACT,MAAO,aACP,GAAI,SAAYvpC,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MAEdq3C,EAAS,IACPkC,EAAgB,QAAQ15G,EAAM,SAAS,IAAM,KAC/C05G,EAAkB,IAGhB1hB,IAAch4F,EAAM,WAAa05G,EAAgB,QAAQ15G,EAAM,SAAS,IAAM,KAChF05G,EAAgB,KAAK15G,EAAM,SAAS,EACpCtI,EAAS,SAAS,CAEhB,uBAAwB,UAAkC,CACxD,OAAOiiH,EAAwB35G,EAAM,SAAS,CAChD,CACd,CAAa,GAGHg4F,EAAYh4F,EAAM,UAEtB,CACN,EAEI,SAAS25G,EAAwB3hB,EAAW,CAC1C,OAAO4hB,GAA4BpN,GAAmBxU,CAAS,EAAGF,EAAU,wBAAyB2U,GAAU3U,EAAU,eAAc,CAAE,EAAG2hB,CAAe,CAC7J,CAEA,SAASI,EAAiBvK,EAAc,CACtCqJ,EAAmB,GACnBjhH,EAAS,SAAS43G,CAAY,EAC9BqJ,EAAmB,EACrB,CAEA,SAASmB,GAAc,CAChBnB,GACHkB,EAAiBP,GAAS5hH,EAAS,MAAOgyG,CAAQ,CAAC,CAEvD,CAEA,MAAO,CACL,SAAUoQ,EACV,cAAeA,EACf,UAAW,SAAmBlsF,EAAG7O,EAAO,CACtC,GAAI+tF,GAAa/tF,CAAK,EAAG,CACvB,IAAIknF,EAAQwG,GAAU/0G,EAAS,UAAU,eAAc,CAAE,EACrDqiH,EAAa9T,EAAM,KAAK,SAAUvM,EAAM,CAC1C,OAAOA,EAAK,KAAO,GAAK36E,EAAM,SAAW26E,EAAK,MAAQ,GAAK36E,EAAM,SAAW26E,EAAK,IAAM,GAAK36E,EAAM,SAAW26E,EAAK,OAAS,GAAK36E,EAAM,OACxI,CAAC,EACG7vB,EAAQ+2G,EAAM,QAAQ8T,CAAU,EACpCN,EAAkBvqH,EAAQ,GAAKA,EAAQuqH,CACzC,CACF,EACA,SAAU,UAAoB,CAC5BA,EAAkB,EACpB,CACN,CACE,CACF,EACA,SAASG,GAA4BI,EAAsBC,EAAcC,EAAaT,EAAiB,CAErG,GAAIS,EAAY,OAAS,GAAKF,IAAyB,KACrD,OAAOC,EAIT,GAAIC,EAAY,SAAW,GAAKT,GAAmB,GAAKS,EAAY,CAAC,EAAE,KAAOA,EAAY,CAAC,EAAE,MAC3F,OAAOA,EAAYT,CAAe,GAAKQ,EAGzC,OAAQD,EAAoB,CAC1B,IAAK,MACL,IAAK,SACH,CACE,IAAIG,EAAYD,EAAY,CAAC,EACzBE,EAAWF,EAAYA,EAAY,OAAS,CAAC,EAC7CG,EAAQL,IAAyB,MACjC3iB,EAAM8iB,EAAU,IAChB7iB,EAAS8iB,EAAS,OAClB5iB,EAAO6iB,EAAQF,EAAU,KAAOC,EAAS,KACzC7iB,EAAQ8iB,EAAQF,EAAU,MAAQC,EAAS,MAC3Cj4C,EAAQo1B,EAAQC,EAChBn1B,EAASi1B,EAASD,EACtB,MAAO,CACL,IAAKA,EACL,OAAQC,EACR,KAAME,EACN,MAAOD,EACP,MAAOp1B,EACP,OAAQE,CAClB,CACM,CAEF,IAAK,OACL,IAAK,QACH,CACE,IAAIi4C,EAAU,KAAK,IAAI,MAAM,KAAMJ,EAAY,IAAI,SAAUjU,EAAO,CAClE,OAAOA,EAAM,IACf,CAAC,CAAC,EACEsU,EAAW,KAAK,IAAI,MAAM,KAAML,EAAY,IAAI,SAAUjU,EAAO,CACnE,OAAOA,EAAM,KACf,CAAC,CAAC,EACEuU,EAAeN,EAAY,OAAO,SAAUxgB,EAAM,CACpD,OAAOsgB,IAAyB,OAAStgB,EAAK,OAAS4gB,EAAU5gB,EAAK,QAAU6gB,CAClF,CAAC,EACGE,EAAOD,EAAa,CAAC,EAAE,IACvBE,EAAUF,EAAaA,EAAa,OAAS,CAAC,EAAE,OAChDG,EAAQL,EACRM,EAASL,EAETM,EAASD,EAASD,EAElBG,EAAUJ,EAAUD,EAExB,MAAO,CACL,IAAKA,EACL,OAAQC,EACR,KAAMC,EACN,MAAOC,EACP,MAAOC,EACP,OAAQC,CAClB,CACM,CAEF,QAEI,OAAOb,CAEf,CACA,CAEA,IAAIc,GAAS,CACX,KAAM,SACN,aAAc,GACd,GAAI,SAAYrjH,EAAU,CACxB,IAAIogG,EAAYpgG,EAAS,UACrBmgG,EAASngG,EAAS,OAEtB,SAASsjH,GAAe,CACtB,OAAOtjH,EAAS,eAAiBA,EAAS,eAAe,MAAM,SAAS,UAAYogG,CACtF,CAEA,SAASmjB,EAAY72H,EAAO,CAC1B,OAAOsT,EAAS,MAAM,SAAW,IAAQA,EAAS,MAAM,SAAWtT,CACrE,CAEA,IAAI82H,EAAc,KACdC,EAAc,KAElB,SAASC,GAAiB,CACxB,IAAIC,EAAiBJ,EAAY,WAAW,EAAID,EAAY,EAAG,sBAAqB,EAAK,KACrFM,EAAiBL,EAAY,QAAQ,EAAIpjB,EAAO,sBAAqB,EAAK,MAE1EwjB,GAAkBE,GAAkBL,EAAaG,CAAc,GAAKC,GAAkBC,GAAkBJ,EAAaG,CAAc,IACjI5jH,EAAS,gBACXA,EAAS,eAAe,OAAM,EAIlCwjH,EAAcG,EACdF,EAAcG,EAEV5jH,EAAS,MAAM,WACjB,sBAAsB0jH,CAAc,CAExC,CAEA,MAAO,CACL,QAAS,UAAmB,CACtB1jH,EAAS,MAAM,QACjB0jH,EAAc,CAElB,CACN,CACE,CACF,EAEA,SAASG,GAAkBC,EAAOC,EAAO,CACvC,OAAID,GAASC,EACJD,EAAM,MAAQC,EAAM,KAAOD,EAAM,QAAUC,EAAM,OAASD,EAAM,SAAWC,EAAM,QAAUD,EAAM,OAASC,EAAM,KAGlH,EACT,CAEAnF,GAAM,gBAAgB,CACpB,OAAQnoG,EACV,CAAC,EAEDmoG,GAAM,gBAAgB,CAElB,OAAQ5+G,GAAY,CAChB,GAAI,CAACA,EAAS,MAAM,QAChB,MAAO,EACf,CACJ,CAAC,EACD,MAAMgkH,GAAuBt3H,GAClBA,aAAiB,QAAU,MAAOA,GAAS,QAASA,EAE/D,SAASu3H,GAASv4H,EAAIw4H,EAAO,GAAIzsB,EAAW,CAAE,MAAO,GAAM,QAAS,SAAW,CAC3EA,EAAW,OAAO,OAAO,CAAE,MAAO,GAAM,QAAS,SAAWA,CAAQ,EACpE,MAAMvI,EAAKnmF,KACL/I,EAAWrE,KACX2M,EAAQ3M,GAAI,CACd,UAAW,GACX,UAAW,GACX,YAAa,GACb,UAAW,GACX,QAAS,EACjB,CAAK,EACKwoH,EAActoH,KACpB,IAAI8I,EAAY,KAChB,MAAMy/G,EAAe,IACbz/G,IAEJA,EAAY,SAAS,yBACdA,GAEL0/G,EAAc35F,GAAY,CAC5B,IAAI45F,EACAC,EAAmBj0H,GAAMo6B,CAAO,EAC9BA,EAAQ,MACRA,EACN,OAAInb,GAAQg1G,CAAgB,GACnBJ,EAAY,QACbA,EAAY,MAAQjsF,GAAU,CAC1B,KAAMu/D,EAAS,QACf,MAAO,IACI,IAAMnnG,GAAMo6B,CAAO,EAAIA,EAAQ,MAAQA,CAEtE,CAAiB,EACGwkE,GACA,OAAO,OAAOi1B,EAAY,MAAM,SAAUj1B,EAAG,UAAU,EAE3Di1B,EAAY,MAAM,MAAMC,EAAY,CAAE,GAE1CE,EAAa,IAAMF,KAEd,OAAOG,GAAqB,UAC5BJ,EAAY,QACbA,EAAY,MAAQjsF,GAAU,CAC1B,KAAMu/D,EAAS,QACf,MAAO,IACI,IAAM3/E,GAAExnB,GAAMo6B,CAAO,EAAIA,EAAQ,MAAQA,CAAO,CAE/E,CAAiB,EACGwkE,GACA,OAAO,OAAOi1B,EAAY,MAAM,SAAUj1B,EAAG,UAAU,EAE3Di1B,EAAY,MAAM,MAAMC,EAAY,CAAE,GAE1CE,EAAa,IAAMF,KAGnBE,EAAaC,EAEVD,CACX,EACM1C,EAAYsC,GAAS,CACvB,IAAI7lH,EAAU,GACd,OAAI/N,GAAM4zH,CAAI,EACV7lH,EAAU6lH,EAAK,OAAS,GAEnB1oH,GAAW0oH,CAAI,EACpB7lH,EAAU,CAAE,GAAG6lH,GAGf7lH,EAAU,CAAE,GAAG6lH,GAEf7lH,EAAQ,UACRA,EAAQ,QAAUgmH,EAAWhmH,EAAQ,OAAO,GAE5CA,EAAQ,gBACRA,EAAQ,cAAgB/N,GAAM+N,EAAQ,aAAa,EAC7CA,EAAQ,cAAc,MACtBA,EAAQ,gBAEd,CAACA,EAAQ,SAAW,CAAC,MAAM,QAAQA,EAAQ,OAAO,KAClDA,EAAQ,QAAU,IAEtBA,EAAQ,QAAUA,EAAQ,QAAQ,OAAQ6b,GAAWA,EAAO,OAAS,uBAAuB,EAC5F7b,EAAQ,QAAQ,KAAK,CACjB,KAAM,wBACN,GAAI,KACO,CACH,UAAW,CACPiK,EAAM,MAAM,UAAY,EAC5B,EACA,SAAU,CACNA,EAAM,MAAM,UAAY,EAC5B,EACA,QAAS,CACLA,EAAM,MAAM,UAAY,GACxBA,EAAM,MAAM,UAAY,EAC5B,EACA,SAAU,CACNA,EAAM,MAAM,QAAU,EAC1B,EACA,QAAS,CACLA,EAAM,MAAM,UAAY,GACxBA,EAAM,MAAM,UAAY,EAC5B,EACA,UAAW,CACPA,EAAM,MAAM,QAAU,EAC1B,EACA,aAAc,CACVA,EAAM,MAAM,UAAY,EAC5B,EACA,WAAY,CACRA,EAAM,MAAM,YAAc,EAC9B,CACpB,EAEA,CAAS,EACMjK,CACX,EACM03C,EAAU,IAAM,CACb/1C,EAAS,OAEdA,EAAS,MAAM,SAAS4hH,EAASsC,CAAI,CAAC,CAC1C,EACMM,EAAiB,IAAM,CACrB,CAACxkH,EAAS,OAAS,CAACkkH,EAAK,SAE7BlkH,EAAS,MAAM,WAAWqkH,EAAWH,EAAK,OAAO,CAAC,CACtD,EACM5L,EAAc5rH,GAAU,CAC1B,IAAIoE,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,WAAWuzH,EAAW33H,CAAK,CAAC,CAC9F,EACMotH,EAAYptH,GAAU,CACxB,IAAIoE,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,SAAS8wH,EAASl1H,CAAK,CAAC,CAC1F,EACMw1C,EAAU,IAAM,CAClB,IAAIpxC,EACAkP,EAAS,QACTA,EAAS,MAAM,UACfA,EAAS,MAAQ,QAErB2E,EAAY,MACX7T,EAAKqzH,EAAY,SAAW,MAAQrzH,IAAO,QAAkBA,EAAG,UACjEqzH,EAAY,MAAQ,MACxB,EACMpK,EAAO,IAAM,CACf,IAAIjpH,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,MAClE,EACMg9G,EAAO,IAAM,CACf,IAAIh9G,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,MAClE,EACMopH,EAAU,IAAM,CAClB,IAAIppH,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,UAC9DwX,EAAM,MAAM,UAAY,EAC5B,EACM2xG,EAAS,IAAM,CACjB,IAAInpH,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,SAC9DwX,EAAM,MAAM,UAAY,EAC5B,EACMxB,EAAU,IAAM,CAClB,IAAIhW,GACHA,EAAKkP,EAAS,SAAW,MAAQlP,IAAO,QAAkBA,EAAG,SAClE,EACMkV,EAAQ,IAAM,CAChB,GAAI,CAACta,EACD,OACJ,IAAImJ,EAASvE,GAAM5E,CAAE,EAAIA,EAAG,MAAQA,EAChC,OAAOmJ,GAAW,aAClBA,EAASA,EAAM,GACfmvH,GAAoBnvH,CAAM,IAC1BA,EAASA,EAAO,KAEhBA,IAEAmL,EAAS,MAAQ4+G,GAAM/pH,EAAQ+sH,EAASsC,CAAI,CAAC,EAE7CrvH,EAAO,OAASyhD,EAExB,EACMA,EAAW,CACb,MAAOt2C,EACP,QAAA+1C,EACA,eAAAyuE,EACA,WAAAlM,EACA,SAAAwB,EACA,QAAA53E,EACA,KAAA4rE,EACA,KAAAiM,EACA,QAAAG,EACA,OAAAD,EACA,QAAAnzG,EACA,MAAAd,EACA,MAAAsC,CACR,EACI,OAAImvF,EAAS,QACLvI,EACIA,EAAG,UACHlpF,IAGAuC,GAAUvC,CAAK,EAInBA,KAGJkpF,GACA5+E,GAAY,IAAM,CACd4xB,GACJ,CAAC,EAED5xC,GAAM4zH,CAAI,GAAK1oH,GAAW0oH,CAAI,EAC9B/lH,GAAM+lH,EAAMnuE,EAAS,CAAE,UAAW,EAAK,CAAE,EAEpCzlD,GAAM4zH,EAAK,OAAO,GACvB/lH,GAAM+lH,EAAK,QAASM,EAAgB,CAAE,UAAW,EAAK,CAAE,EAErDluE,CACX,CAgBA,SAASmuE,GAAazF,EAAWF,EAAe,CAC5C,MAAMkB,EAAYrkH,KAClB,OAAA4M,GAAU,IAAM,CAMZ,MAAM42G,GALwB,MAAM,QAAQH,CAAS,EAC/CA,EAAU,IAAIrzH,GAAKA,EAAE,KAAK,EAC1B,OAAOqzH,GAAc,WACjBA,EAAS,EACTA,EAAU,OAEf,IAAKh/G,GACFA,aAAoB,QAEbA,EAAS,OAEbA,CACV,EACI,OAAO,OAAO,EACnBggH,EAAU,MAAQd,GAAgBC,EAAgBL,EAC5C,CAAE,UAAW,GAAM,GAAGA,CAAa,EACnC,CAAE,UAAW,EAAI,CAAE,CAC7B,CAAC,EACM,CACH,UAAAkB,CACR,CACA,CAEA,SAAS7jH,GAAQT,EAAG,CAChB,OAAO,OAAOA,GAAM,WACdA,EAAC,EACDO,EAAMP,CAAC,CACjB,CACA,SAAS+xF,GAAaC,EAAO,CACzB,IAAI58F,EAAI4zH,EACR,MAAM92B,EAAQzxF,GAAQuxF,CAAK,EAC3B,OAAQg3B,GAAM5zH,EAAK88F,KAAW,MAAQ98F,IAAO,OAAS,OAASA,EAAG,OAAS,MAAQ4zH,IAAO,OAASA,EAAK92B,CAC5G,CACK,MAAC+2B,GAAiBx4G,GAAgB,CACnC,MAAO,CACH,GAAI,CACA,KAAM,CAAC,OAAQ,QAAQ,CACnC,EACQ,IAAK,CACD,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACrB,EACQ,WAAY,CACR,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,MACrB,EACQ,aAAc,CACV,KAAM,OACN,QAAS,IACrB,EACQ,SAAU,CAAE,QAAS,IAAMyyG,GAAM,aAAa,QAAW,EACzD,KAAM,CAAE,QAAS,IAAMA,GAAM,aAAa,IAAO,EACjD,MAAO,CAAE,QAAS,IAAMA,GAAM,aAAa,KAAQ,EACnD,SAAU,CAAE,QAAS,IAAMA,GAAM,aAAa,QAAW,EACzD,uBAAwB,CAAE,QAAS,IAAMA,GAAM,aAAa,sBAAyB,EACrF,YAAa,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,IAAMA,GAAM,aAAa,WAAc,EACxF,iBAAkB,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,gBAAmB,EACxF,YAAa,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,WAAc,EAC9E,kBAAmB,CAAE,QAAS,IAAMA,GAAM,aAAa,iBAAoB,EAC3E,oBAAqB,CAAE,QAAS,IAAMA,GAAM,aAAa,mBAAsB,EAC/E,eAAgB,CAAE,QAAS,IAAMA,GAAM,aAAa,cAAiB,EACrE,OAAQ,CAAE,QAAS,IAAMA,GAAM,aAAa,MAAS,EACrD,cAAe,CAAE,QAAS,IAAMA,GAAM,aAAa,aAAgB,EACnE,eAAgB,CAAE,QAAS,IAAMA,GAAM,aAAa,cAAiB,EACrE,SAAU,CAAE,QAAS,IAAMA,GAAM,aAAa,QAAW,EACzD,UAAW,CAAE,QAAS,IAAMA,GAAM,aAAa,SAAY,EAC3D,SAAU,CAAE,QAAS,IAAMA,GAAM,aAAa,QAAW,EACzD,OAAQ,CAAE,QAAS,IAAMA,GAAM,aAAa,MAAS,EACrD,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,OAAQ,CAAE,QAAS,IAAMA,GAAM,aAAa,MAAS,EACrD,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,UAAW,CAAE,QAAS,IAAMA,GAAM,aAAa,SAAY,EAC3D,YAAa,CAAE,QAAS,IAAMA,GAAM,aAAa,WAAc,EAC/D,eAAgB,CAAE,QAAS,IAAMA,GAAM,aAAa,cAAiB,EACrE,UAAW,CAAE,QAAS,IAAMA,GAAM,aAAa,SAAY,EAC3D,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,cAAe,CAAE,QAAS,IAAMA,GAAM,aAAa,aAAgB,EACnE,OAAQ,CAAE,QAAS,IAAMA,GAAM,aAAa,MAAS,EACrD,aAAc,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,YAAe,EAChF,MAAO,CAAE,KAAM,CAAC,QAAS,OAAQ,KAAK,EAAG,QAAS,IAAMA,GAAM,aAAa,KAAQ,EACnF,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,cAAe,CAAE,QAAS,IAAMA,GAAM,aAAa,aAAgB,EACnE,YAAa,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,WAAc,EAC9E,aAAc,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,IAAMA,GAAM,aAAa,YAAe,EAC1F,kBAAmB,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,iBAAoB,EAC1F,OAAQ,CAAE,KAAM,CAAC,QAAS,MAAM,EAAG,QAAS,IAAMA,GAAM,aAAa,MAAS,EAC9E,UAAW,CAAE,KAAM,QAAS,QAAS,IAAMA,GAAM,aAAa,SAAY,EAC1E,UAAW,CAAE,QAAS,IAAMA,GAAM,aAAa,SAAY,EAC3D,MAAO,CAAE,QAAS,IAAMA,GAAM,aAAa,KAAQ,EACnD,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,QAAS,CAAE,QAAS,IAAMA,GAAM,aAAa,OAAU,EACvD,SAAU,CAAE,QAAS,IAAMA,GAAM,aAAa,QAAW,EACzD,KAAM,CAAE,QAAS,IAAMA,GAAM,aAAa,IAAO,EACjD,MAAO,CAAE,QAAS,IAAMA,GAAM,aAAa,KAAQ,EACnD,OAAQ,CAAE,QAAS,IAAMA,GAAM,aAAa,MAAS,CAC7D,EACI,MAAO,CAAC,OAAO,EACf,MAAMxvH,EAAO,CAAE,MAAA0Z,EAAO,KAAAse,EAAM,OAAAtQ,CAAM,EAAI,CAClC,MAAM8tG,EAAOjpH,KACPkpH,EAAmBlpH,KACnBmpH,EAAcnpH,KACdqa,EAAUra,GAAI,EAAK,EACnBopH,EAAa,IAAM,CACrB,IAAI1mH,EAAU,CAAE,GAAGjP,GACnB,UAAWutB,IAAQ,CAAC,KAAM,MAAO,aAAc,cAAc,EACrDte,EAAQ,eAAese,CAAI,GAE3B,OAAOte,EAAQse,CAAI,EAG3B,OAAOte,CACX,EACA,IAAIxJ,EAAS,IAAM44F,GAAam3B,CAAI,EAChCx1H,EAAM,KACF,OAAO,QAAY,KAAeA,EAAM,cAAc,QACtDyF,EAAS,IAAMzF,EAAM,GAEhBA,EAAM,KAAO,SAClByF,EAAS,IAAM,CACX,IAAInJ,EAAKk5H,EAAK,MACd,OAAKl5H,IACDA,EAAKk5H,EAAK,MAAQC,EAAiB,MAAM,eAEtCn5H,CACX,GAEK,OAAO0D,EAAM,IAAO,UAAYA,EAAM,cAAc,UACzDyF,EAAS,IAAM,SAAS,cAAczF,EAAM,EAAE,IAGtD,MAAMwvH,EAAQqF,GAASpvH,EAAQkwH,EAAU,CAAE,EAC3C,IAAIC,EAAcl8G,EAAM,QACpB,CAACk8G,GAAe51H,EAAM,KAAO,WAC7B41H,EAAcl8G,EAAM,SAExBP,GAAU,IAAM,CACZyN,EAAQ,MAAQ,GAChB3U,GAAS,IAAM,CACP2jH,GACApG,EAAM,WAAW,IAAMkG,EAAY,KAAK,CAChD,CAAC,CACL,CAAC,EACD3mH,GAAMygH,EAAM,MAAO,IAAM,CACrBx3F,EAAK,QAASnrB,EAAM2iH,EAAM,KAAK,CAAC,CACpC,EAAG,CAAE,UAAW,GAAM,KAAM,EAAI,CAAE,EAClCzgH,GAAM,IAAM/O,EAAO,IAAM,CACrBwvH,EAAM,SAASmG,EAAU,CAAE,EACvBC,GACApG,EAAM,WAAW,IAAMkG,EAAY,KAAK,CAChD,EAAG,CAAE,KAAM,EAAI,CAAE,EACjB,IAAIptG,EAAUlf,GAAS,CACnB,KAAAosH,EACA,YAAAE,EACA,QAAA9uG,EACA,GAAG4oG,CACf,CAAS,EACD,OAAA9nG,EAAOY,CAAO,EACP,IAAM,CACT,MAAMutG,GAAa,OAAO71H,EAAM,YAAe,SAAWA,EAAM,YAC1Ds7B,EAAUs6F,EACVltG,GAAEmtG,EAAY,CACZ,IAAKH,EACL,MAAO,CAAE,QAAS9uG,EAAQ,MAAQ,UAAY,MAAM,EACpD,MAAO5mB,EAAM,YACjC,EAAmB41H,EAAYttG,CAAO,CAAC,EACrB,KACN,GAAItoB,EAAM,KAAO,SAAU,CACvB,MAAM6H,EAAS,GACf,GAAI,CAAC2tH,EAAK,MAAO,CACb,MAAMM,EAAuBptG,GAAE,OAAQ,CACnC,IAAK+sG,EACL,eAAgB,GAChB,MAAO,CAAE,QAAS,MAAM,CAChD,CAAqB,EACD5tH,EAAO,KAAKiuH,CAAoB,CACpC,CACA,OAAIx6F,GACAzzB,EAAO,KAAKyzB,CAAO,EAEhBzzB,CACX,CACA,MAAMub,EAAO1J,EAAM,QAAUA,EAAM,QAAQ4O,CAAO,EAAI,GACtD,GAAI,CAACtoB,EAAM,IAAK,CACZ,MAAM4F,EAAU8iB,GAAEtF,EAAK,CAAC,EAAG,CACvB,IAAKoyG,EAAM,eAAgB,EAC/C,CAAiB,EACD,OAAOl6F,EAAU,CAAC11B,EAAS01B,CAAO,EAAI11B,CAC1C,CACA,MAAMg4B,GAAM,OAAO59B,EAAM,KAAQ,SAAWA,EAAM,KAClD,OAAO0oB,GAAEkV,EAAK,CAAE,IAAK43F,EAAM,eAAgB,EAAE,EAAIl6F,EAAU,CAAClY,EAAMkY,CAAO,EAAIlY,CAAI,CACrF,CACJ,CACJ,CAAC,EAEK2yG,GAAe,CACjB,OACA,YACA,QACA,OACA,eACA,cACA,mBACA,UACA,cACA,OACA,WACA,aACA,QACA,WACJ,EACA,IAAI/1H,GAAQ,GACZ,OAAO,KAAKwvH,GAAM,YAAY,EAAE,QAASjiG,GAAS,CAC1CwoG,GAAa,SAASxoG,CAAI,EAC1BvtB,GAAMutB,CAAI,EAAI,CACV,KAAM,QACN,QAAS,UAAY,CACjB,OAAOiiG,GAAM,aAAajiG,CAAI,CAClC,CACZ,EAGQvtB,GAAMutB,CAAI,EAAI,CACV,QAAS,UAAY,CACjB,OAAOiiG,GAAM,aAAajiG,CAAI,CAClC,CACZ,CAEA,CAAC,EACD,MAAMyoG,GAAiBj5G,GAAgB,CACnC,MAAA/c,GACA,MAAMA,EAAO,CACT,MAAM4vH,EAAYrjH,GAAI,EAAE,EAClB,CAAE,UAAAqkH,CAAS,EAAKyE,GAAazF,EAAW5vH,CAAK,EACnD,MAAO,CAAE,UAAA4vH,EAAW,UAAAgB,EACxB,EACA,SAAU,CACN,IAAIlvH,EAEJ,MAAMiuH,EADS,KAAK,IAAI,cACA,iBAAiB,gBAAgB,EACzD,KAAK,UAAY,MAAM,KAAKA,CAAQ,EAC/B,IAAKrzH,GAAOA,EAAG,MAAM,EACrB,OAAO,OAAO,GAClBoF,EAAK,KAAK,aAAe,MAAQA,IAAO,QAAkBA,EAAG,aAAa,KAAK,SAAS,CAC7F,EACA,QAAS,CACL,IAAI0hB,EAAO,KAAK,OAAO,QAAU,KAAK,OAAO,QAAO,EAAK,GACzD,OAAOsF,GAAE,IAAMtF,CAAI,CACvB,CACJ,CAAC,EAEK4H,GAAY,CACd,QAAQ1uB,EAAImY,EAAST,EAAO,CACxB,MAAM8gH,EAAO,OAAOrgH,EAAQ,OAAU,SAAW,CAAE,QAASA,EAAQ,KAAK,EAAKA,EAAQ,OAAS,GACzFJ,EAAY,OAAO,KAAKI,EAAQ,WAAa,EAAE,EAC/Cy8F,EAAY78F,EAAU,KAAKuuG,GAAYA,IAAa,OAAO,EAC3DqT,EAAY5hH,EAAU,UAAUuuG,GAAYA,IAAa,OAAO,IAAM,GACxE1R,IACA4jB,EAAK,UAAYA,EAAK,WAAa5jB,GAEnC+kB,IACAnB,EAAK,MAAQA,EAAK,QAAU,OAAYA,EAAK,MAAQ,IAErD9gH,EAAM,OAASA,EAAM,MAAM,cAC3B8gH,EAAK,OAAS,YAAa9tH,EAAM,CAC7B,IAAItF,EACJ,OAAQA,EAAKsS,EAAM,SAAW,MAAQtS,IAAO,OAAS,OAASA,EAAG,YAAY,GAAGsF,CAAI,CACzF,GAEAgN,EAAM,OAASA,EAAM,MAAM,eAC3B8gH,EAAK,QAAU,YAAa9tH,EAAM,CAC9B,IAAItF,EACJ,OAAQA,EAAKsS,EAAM,SAAW,MAAQtS,IAAO,OAAS,OAASA,EAAG,aAAa,GAAGsF,CAAI,CAC1F,GAEAgN,EAAM,OAASA,EAAM,MAAM,gBAC3B8gH,EAAK,SAAW,YAAa9tH,EAAM,CAC/B,IAAItF,EACJ,OAAQA,EAAKsS,EAAM,SAAW,MAAQtS,IAAO,OAAS,OAASA,EAAG,cAAc,GAAGsF,CAAI,CAC3F,GAEAgN,EAAM,OAASA,EAAM,MAAM,cAC3B8gH,EAAK,OAAS,YAAa9tH,EAAM,CAC7B,IAAItF,EACJ,OAAQA,EAAKsS,EAAM,SAAW,MAAQtS,IAAO,OAAS,OAASA,EAAG,YAAY,GAAGsF,CAAI,CACzF,GAEAgN,EAAM,OAASA,EAAM,MAAM,eAC3B8gH,EAAK,QAAU,YAAa9tH,EAAM,CAC9B,IAAItF,EACJ,OAAQA,EAAKsS,EAAM,SAAW,MAAQtS,IAAO,OAAS,OAASA,EAAG,aAAa,GAAGsF,CAAI,CAC1F,GAEA1K,EAAG,aAAa,OAAO,GAAK,CAACw4H,EAAK,UAClCA,EAAK,QAAUx4H,EAAG,aAAa,OAAO,EACtCA,EAAG,gBAAgB,OAAO,GAE1BA,EAAG,aAAa,SAAS,GAAK,CAACw4H,EAAK,UACpCA,EAAK,QAAUx4H,EAAG,aAAa,SAAS,GAE5Cu4H,GAASv4H,EAAIw4H,CAAI,CACrB,EACA,UAAUx4H,EAAI,CACNA,EAAG,OACHA,EAAG,OAAO,UAELA,EAAG,QACRA,EAAG,OAAO,SAElB,EACA,QAAQA,EAAImY,EAAS,CACjB,MAAMqgH,EAAO,OAAOrgH,EAAQ,OAAU,SAAW,CAAE,QAASA,EAAQ,KAAK,EAAKA,EAAQ,OAAS,GAE1FqgH,EAAK,UACNA,EAAK,QAAU,MAEfx4H,EAAG,aAAa,OAAO,GAAK,CAACw4H,EAAK,UAClCA,EAAK,QAAUx4H,EAAG,aAAa,OAAO,EACtCA,EAAG,gBAAgB,OAAO,GAE1BA,EAAG,aAAa,SAAS,GAAK,CAACw4H,EAAK,UACpCA,EAAK,QAAUx4H,EAAG,aAAa,SAAS,GAExCA,EAAG,OACHA,EAAG,OAAO,SAASw4H,GAAQ,EAAE,EAExBx4H,EAAG,QACRA,EAAG,OAAO,SAASw4H,GAAQ,EAAE,CAErC,CACJ,EAEMhqG,GAAS,CACX,QAAQF,EAAK3b,EAAU,GAAI,CACvBugH,GAAM,gBAAgBvgH,EAAQ,cAAgB,EAAE,EAChD2b,EAAI,UAAU3b,EAAQ,WAAa,QAAS+b,EAAS,EACrDJ,EAAI,UAAU3b,EAAQ,WAAa,QAASsmH,EAAc,EAC1D3qG,EAAI,UAAU3b,EAAQ,oBAAsB,kBAAmB+mH,EAAc,CACjF,CACJ,EAEME,GAAoB1G,GAAM,gBAChC0G,GAAkB,CACd,iBAAkB,GAClB,QAAS,CAACjC,GAAQvB,GAAmBd,GAAcT,EAAW,CAClE,CAAC,EC58IM,MAAMgF,GAAkC,CAC7C,KAAM,oBACN,MAAO,mBACT,EAEaC,GAAmC,CAC9C,KAAM,eACN,MAAO,eACT,EAEaC,GAAmC,CAC9C,KAAM,OACN,MAAO,eACT,EAEaC,GAAiC,CAC5C,KAAM,aACN,MAAO,aACP,KAAM,WACN,QAAS,+FACX,EAEaC,GAAuC,CAClD,KAAM,UACN,MAAO,oBACP,KAAM,WACN,QAAS,oGACX,EAEaC,GAAqC,CAChD,KAAM,iBACN,MAAO,kBACP,KAAM,MACN,QAAS,6FACX,EAEaC,GAAmC,CAC9C,KAAM,eACN,MAAO,gBACP,KAAM,MACN,QAAS,4HACX,EAEaC,GAAkC,CAC7C,KAAM,cACN,MAAO,eACP,KAAM,SACN,QAAS,qGACX,4gDCxCA,MAAMruB,EAAWjoD,EAIXu2E,EAA+BvrB,GAAA,EAC/BwrB,EAAkBlrB,GAAA,EAClBmrB,EAAY1yH,EAAkB,IAAMyyH,EAAgB,qBAAqB,EACzE9uB,EAAW3jG,EAAmB,IAC3B0yH,EAAU,MAASxuB,EAAS,SAA6B,SAAYA,EAAS,QACtF,EACKyuB,EAAY3yH,EAAS,IAClB0yH,EAAU,MAASxuB,EAAS,SAA6B,UAAYP,EAAS,MAAM,IAC5F,EACKivB,EAAwBxqH,GAAA,EACxB,CAAE,cAAAijE,CAAA,EAAkBzpB,GAAY4wE,CAA4B,EAE5DK,EAA8B7yH,EAAS,IAAMqqG,GAAoB1G,EAAS,MAAM,QAAQ,cAAc,CAAC,EACvGmvB,EAA4B9yH,EAAS,IAAMqqG,GAAoB1G,EAAS,MAAM,QAAQ,YAAY,CAAC,0DAIvGtnD,EAmCM,OAnCD,KAAK,WAAY,aAAYk0C,EAAA2hC,EAAA,EAAa,KAAM,MAAM,gDACzD71E,EAiCM,MAjCNC,GAiCM,CAhCJD,EASM,OATA,aAAYs2E,EAAA,MAAW,MAAM,kEACjCr8F,GAOQi6D,EAAAwiC,EAAA,GAPA,aAAYpvB,EAAA,MAAS,KAAO,MAAO,UAC9B,WACT,IAAkE,CAAlEtnD,EAAkE,IAAlEM,GAAkED,GAApBinD,EAAA,MAAS,IAAI,kBAE7D,IAEa,CAFbrtE,GAEai6D,EAAAh6C,EAAA,GAFD,MAAM,sDAAsD,aAAW,eAAgB,GAAIg6C,EAAAhlB,EAAA,EAAW,WAAW,gBAAgB,KAAKo4B,QAAS,KAAMpT,EAAAllB,CAAA,EAAc,IAAI,eACjL,IAAe,OAAZsnD,EAAA,KAAS,sDAIwDhvB,EAAA,MAAS,gBAAkBA,EAAA,MAAS,kBAA9GuC,IAAAhqD,EAAA,EAAAC,EAEC,OAFDa,GAEC,CAFoLP,GAAA,KAClLC,GAAGinD,EAAA,MAAS,cAAc,EAAG,IAACjnD,GAAGinD,EAAA,MAAS,eAAiBA,EAAA,MAAS,iBAAiB,EAAG,IAAC,UAD8C,yCAAyC,aAGnLtnD,EAkBM,MAlBNm4C,GAkBM,CAjBsCmP,EAAA,MAAS,SAAO,MAAY,WAAWmvB,EAAA,MAA0B,KAAK,KAAhH52E,EAAA,EAAAC,EAEO,OAFPs4C,GAEO,CADLyR,GAAA7pD,EAAoI,IAApIq4C,GAAoI,cAAlG,4FAA4F,gBAEtFiP,EAAA,MAAS,4BAAnDznD,IAAAC,EAEO,OAFPw4C,GAEO,CADLuR,GAAA7pD,EAA2G,IAA3G22E,GAA2G,cAA9C,wCAAwC,gBAE5DrvB,EAAA,MAAS,SAAO,CAAKivB,SAAqB,CAAMjvB,EAAA,MAAS,eAApGuC,IAAAhqD,EAAA,EAAAC,EAIO,OAJP82E,GAIO,CAHL38F,GAEai6D,EAAAh6C,EAAA,GAFA,GAAIg6C,EAAAhlB,EAAA,EAAW,WAAW,gBAAgB,KAAKo4B,QAAS,KAAMpT,EAAAllB,CAAA,EAAc,KAAI,sBAAyB,MAAM,6BAC1H,IAA6F,IAAA9uB,EAAA,KAAAA,EAAA,IAA7FF,EAA6F,KAA1F,KAAK,MAAM,aAAW,mBAAmB,MAAM,6EAFuE,oCAAoC,aAKvHsnD,EAAA,MAAS,WAAnDuC,IAAAhqD,IAAAC,EAKO,OALP+2E,GAKO,CAJkFvvB,EAAA,MAAS,gBAAhG3/C,GAGausC,EAAAh6C,EAAA,SAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,MAAM,KAAKo4B,EAAA,MAAS,gBAAgB,EAA8B,MAAM,qCAChH,IAA0D,CAA1DrtE,GAA0Di+D,GAAA,CAAjD,KAAMhE,EAAAE,EAAA,EAAY,MAAM,yCACjCp0C,EAA6F,OAA7F82E,GAA6Fz2E,GAA7BinD,EAAA,MAAS,UAAU,oCAHf,CAAAyvB,EAAAzvB,EAAA,MAAS,WAAU,4FAUjGtnD,EAoBM,OApBD,KAAK,WAAY,aAAYk0C,EAAAgiC,EAAA,EAAY,KAAM,MAAM,cACxDl2E,EAkBM,MAlBNg3E,GAkBM,CAjBJh3E,EAWM,MAXNi3E,GAWM,CAVJh9F,GASEi9F,GAAA,CARA,KAAK,MACJ,aAAYhjC,EAAAgiC,EAAA,EAAY,KACxB,KAAM,eACN,gBAAiB,GACjB,SAAU5uB,EAAA,MAAS,QAAQ,YAC3B,aAAcpT,EAAAoa,EAAA,EAAwB,YACtC,cAAe,UACf,aAAc,2DAGnBtuD,EAIM,MAJNm3E,GAIM,CAHD/2E,GAAAC,GAAAinD,EAAA,MAAS,SAAO,IAAYA,EAAA,MAAS,4BAA0B,MAAgBpT,EAAAka,EAAA,EAAmB9G,QAAS,QAAQ,gBAAkB,IACxI,GAAcA,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,mCAA5CxnD,EAAgK,SAAAs3E,GAAA,IAAAl3E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAAtE,mEAAmE,aACtIonD,EAAA,MAAS,mCAAvBxnD,EAAgH,SAAAu3E,GAAA,IAAAn3E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAA3C,wCAAwC,wBAK1GF,EAoBM,OApBD,KAAK,WAAY,aAAYk0C,EAAA4hC,EAAA,EAAW,KAAM,MAAM,cACvD91E,EAkBM,MAlBNs3E,GAkBM,CAjBJt3E,EAWM,MAXNu3E,GAWM,CAVJt9F,GASEi9F,GAAA,CARA,KAAK,MACJ,aAAYhjC,EAAA4hC,EAAA,EAAW,KACvB,KAAM,aACN,gBAAiB,GACjB,SAAUxuB,EAAA,MAAS,QAAQ,WAC3B,aAAcpT,EAAAoa,EAAA,EAAwB,WACtC,cAAe,UACf,aAAc,6DAGnBtuD,EAIM,MAJNw3E,GAIM,CAHDp3E,GAAAC,GAAAinD,EAAA,MAAS,SAAO,IAAYA,EAAA,MAAS,4BAA0B,MAAgBpT,EAAAka,EAAA,EAAmB9G,QAAS,QAAQ,eAAiB,IACvI,GAAcA,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,mCAA5CxnD,EAAgK,SAAA23E,GAAA,IAAAv3E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAAtE,mEAAmE,aACtIonD,EAAA,MAAS,mCAAvBxnD,EAAgH,SAAA43E,GAAA,IAAAx3E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAA3C,wCAAwC,wBAK1GF,EAWM,OAXD,KAAK,WAAY,aAAYk0C,EAAA6hC,EAAA,EAAiB,KAAM,MAAM,cAC7D/1E,EASM,MATN23E,GASM,CARJ33E,EAEM,MAFN43E,GAEM,CADJ39F,GAAiPi9F,GAAA,CAArO,KAAK,MAAO,aAAYhjC,EAAA6hC,EAAA,EAAiB,KAAO,KAAM,UAAY,gBAAiB,GAAQ,SAAUzuB,EAAA,MAAS,QAAQ,QAAU,aAAcpT,EAAAoa,EAAA,EAAwB,QAAU,cAAe,UAAY,aAAc,6DAEvOtuD,EAIM,MAJN63E,GAIM,CAHDz3E,GAAAC,GAAAinD,EAAA,MAAS,SAAO,IAAYA,EAAA,MAAS,4BAA0B,MAAgBpT,EAAAka,EAAA,EAAmB9G,QAAS,QAAQ,YAAc,IACpI,GAAcA,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,mCAA5CxnD,EAAgK,SAAAg4E,GAAA,IAAA53E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAAtE,mEAAmE,aACtIonD,EAAA,MAAS,mCAAvBxnD,EAAgH,SAAAi4E,GAAA,IAAA73E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAA3C,wCAAwC,wBAK1GF,EAYM,OAZD,KAAK,WAAY,aAAYk0C,EAAA8hC,EAAA,EAAe,KAAM,MAAM,cAC3Dh2E,EAUM,MAVNg4E,GAUM,CATJh4E,EAEM,MAFNi4E,GAEM,CADJh+F,GAA2Oi9F,GAAA,CAA/N,KAAK,MAAO,aAAYhjC,EAAA8hC,EAAA,EAAe,KAAO,KAAM,kBAAoB,gBAAiB,GAAO,SAAU1uB,EAAA,MAAS,QAAQ,eAAiB,aAAcpT,EAAAoa,EAAA,EAAwB,eAAiB,cAAe,8DAEhOtuD,EAKM,MALNk4E,GAKM,OAJD5wB,EAAA,MAAS,SAAO,IAAYA,EAAA,MAAS,4BAA0B,MAAgBkvB,EAAA,MAA4B,KAAK,EAAG,IACtH,GAAclvB,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,mCAA5CxnD,EAAgK,SAAAq4E,GAAA,IAAAj4E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAAtE,mEAAmE,aACtIonD,EAAA,MAAS,mCAAvBxnD,EAAgH,SAAAs4E,GAAA,IAAAl4E,EAAA,KAAAA,EAAA,OAAV,IAAC,aAA3C,wCAAwC,aACvF,CAAAonD,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,gCAA3CxnD,EAAqH,OAAAu4E,GAAAh4E,GAA1Cm2E,EAAA,MAA4B,IAAI,0BAKjHx2E,EAYM,OAZD,KAAK,WAAY,aAAYk0C,EAAA+hC,EAAA,EAAa,KAAM,MAAM,cACzDj2E,EAUM,MAVNs4E,GAUM,CATJt4E,EAEM,MAFNu4E,GAEM,CADJt+F,GAAmOi9F,GAAA,CAAvN,KAAK,MAAO,aAAYhjC,EAAA+hC,EAAA,EAAa,KAAO,KAAM,gBAAkB,gBAAiB,GAAO,SAAU3uB,EAAA,MAAS,QAAQ,aAAe,aAAcpT,EAAAoa,EAAA,EAAwB,aAAe,cAAe,8DAExNtuD,EAKM,OALD,KAAK,OAAO,aAAW,YAAY,UAAM,kCAAiC,UAAqB,WAAWy2E,EAAA,MAA0B,KAAK,eACzInvB,EAAA,MAAS,SAAO,IAAYA,EAAA,MAAS,4BAA0B,MAAgBmvB,EAAA,MAA0B,KAAK,EAAG,IACpH,GAAcnvB,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,gCAA5CxnD,EAA4J,SAA5J04E,GAAkJ,GAAC,YACrIlxB,EAAA,MAAS,gCAAvBxnD,EAA4G,SAA5G24E,GAAkG,GAAC,YACtF,CAAAnxB,EAAA,MAAS,SAAO,CAAKA,EAAA,MAAS,4BAA3CznD,EAAA,EAAAC,EAAgI,OAAhI44E,GAAgIr4E,GAAxCo2E,EAAA,MAA0B,IAAI,icClJ9H,MAAML,EAAkBlrB,GAAA,EAClB,CAAE,OAAQytB,GAAiBpzE,GAAY6wE,CAAe,gBAI1Dv2E,EAAA,EAAAC,EAuCU,UAvCVC,GAuCU,CArCRC,EAiBM,MAjBNC,GAiBM,CAhBJhmB,GAAgJ2+F,GAAA,CAAjI,KAAM1kC,EAAA2hC,EAAA,EAAa,KAAO,MAAO3hC,EAAA2hC,EAAA,EAAa,MAAO,MAAM,6BAA2B3hC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAS,8DAC5HzmB,GAEe2+F,GAAA,CAFA,KAAM1kC,EAAAgiC,EAAA,EAAY,KAAO,MAAOhiC,EAAAgiC,EAAA,EAAY,MAAQ,KAAMhiC,EAAAgiC,EAAA,EAAY,KAAM,MAAM,uBAAqBhiC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAU,UAASwzC,EAAAkiC,CAAA,EAAgB,sBAAqB,GAAQliC,EAAAgiC,EAAA,EAAY,OACnM,QAAK,IAAyB,CAAtB91E,GAAAC,GAAA6zC,EAAAgiC,EAAA,EAAY,OAAO,8DAExCj8F,GAEe2+F,GAAA,CAFA,KAAM1kC,EAAA4hC,EAAA,EAAW,KAAO,MAAO5hC,EAAA4hC,EAAA,EAAW,MAAQ,KAAM5hC,EAAA4hC,EAAA,EAAW,KAAM,MAAM,uBAAqB5hC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAU,UAASwzC,EAAAkiC,CAAA,EAAgB,sBAAqB,GAAQliC,EAAA4hC,EAAA,EAAW,OAC/L,QAAK,IAAwB,CAArB11E,GAAAC,GAAA6zC,EAAA4hC,EAAA,EAAW,OAAO,8DAEvC77F,GAEe2+F,GAAA,CAFA,KAAM1kC,EAAA6hC,EAAA,EAAiB,KAAO,MAAO7hC,EAAA6hC,EAAA,EAAiB,MAAQ,KAAM7hC,EAAA6hC,EAAA,EAAiB,KAAM,MAAM,uBAAqB7hC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAU,UAASwzC,EAAAkiC,CAAA,EAAgB,sBAAqB,GAAQliC,EAAA6hC,EAAA,EAAiB,OACvN,QAAK,IAA8B,CAA3B31E,GAAAC,GAAA6zC,EAAA6hC,EAAA,EAAiB,OAAO,8DAE7C97F,GAEe2+F,GAAA,CAFA,KAAM1kC,EAAA8hC,EAAA,EAAe,KAAO,MAAO9hC,EAAA8hC,EAAA,EAAe,MAAQ,KAAM9hC,EAAA8hC,EAAA,EAAe,KAAM,MAAM,uBAAqB9hC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAU,UAASwzC,EAAAkiC,CAAA,EAAgB,sBAAqB,GAAQliC,EAAA8hC,EAAA,EAAe,OAC/M,QAAK,IAAyB,CAAtB51E,GAAAC,GAAA6zC,EAAA8hC,EAAA,EAAe,IAAI,8DAExC/7F,GAEe2+F,GAAA,CAFA,KAAM1kC,EAAA+hC,EAAA,EAAa,KAAO,MAAO/hC,EAAA+hC,EAAA,EAAa,MAAQ,KAAM/hC,EAAA+hC,EAAA,EAAa,KAAM,MAAM,uBAAqB/hC,EAAAykC,CAAA,6CAAAA,EAAY,MAAAj4E,EAAA,MAAE,YAAU,UAASwzC,EAAAkiC,CAAA,EAAgB,sBAAqB,GAAQliC,EAAA+hC,EAAA,EAAa,OACvM,QAAK,IAA0B,CAAvB71E,GAAAC,GAAA6zC,EAAA+hC,EAAA,EAAa,OAAO,gEAG3Cj2E,EAkBM,YAjBOk0C,EAAAkiC,CAAA,EAAgB,uBAA3Bv2E,IAAAC,EAWM,MAXNK,GAWM,EAVJN,EAAA,IAAAC,EASMS,WATqF2zC,EAAAkiC,CAAA,EAAgB,SAAS,iBAA1CyC,QAA1E/4E,EASM,OATD,KAAK,MAAO,kBAAiB+4E,EAAc,MAAO,MAAM,MAA0E,IAAKA,EAAc,QACxJ74E,EAEM,OAFD,KAAK,YAAY,MAAM,uBAAwB,GAAI64E,EAAc,OACjEx4E,GAAAw4E,EAAc,KAAK,IAAAl4E,EAAA,EAExBX,EAIM,OAJD,KAAK,QAAS,kBAAiB64E,EAAc,SAChDh5E,EAAA,IAAAC,EAEMS,GAAA,KAAAC,GAFyIq4E,EAAc,UAAjCC,QAA5Hh5E,EAEM,OAFD,KAAK,MAAO,aAAYg5E,EAAgB,UAAW,mBAAiB,eAAe,MAAM,uBAA2E,IAAKA,EAAgB,SAAS,OACrM7+F,GAA+C8+F,GAAA,CAA7B,SAAUD,CAAA,EAAe,8DAKnDj5E,EAAA,EAAAC,EAIM,MAJNu4C,GAIM,EAHJx4C,EAAA,IAAAC,EAEMS,GAAA,KAAAC,GAF8E0zC,EAAAkiC,CAAA,EAAgB,gBAA5B9uB,QAAxExnD,EAEM,OAFD,KAAK,MAAO,aAAYwnD,EAAS,KAAM,MAAM,eAAoE,IAAKA,EAAS,OAClIrtE,GAAwC8+F,GAAA,CAAtB,SAAAzxB,CAAA,EAAkB,iGC5CvCvnD,GAAA,OAAM,KAAK,mBAAhB,OAAAF,EAAA,EAAAC,EAwBM,MAxBNC,GAwBM,IAAAG,EAAA,KAAAA,EAAA,y3CCrBR,MAAMyf,EAAQhgB,GAAmBC,EAAA,YAAmB,EAC9CpoB,EAAOwhG,EACPx5H,EAAQogD,EACRijB,EAAal/D,EAAS,CAC1B,KAAM,CACJ,OAAOg8D,EAAM,KACf,EACA,IAAIt6D,EAAU,CACZ4zH,EAAoB5zH,CAAQ,CAC9B,EACD,EACK6zH,EAAYx8G,GAAiC,WAAW,EACxDu8G,EAAsB58B,GAAev/F,GAAkB,CAC3D6iE,EAAM,MAAQ7iE,CAChB,EAAG,GAAG,EAENq8H,EAAa,CAAE,MAAAC,EAAO,EAEtB,SAASA,GAAQ,CACfF,EAAU,OAAO,OACnB,eAIEr5E,EAAA,EAAAC,EAGM,MAHNC,GAGM,CAFJ9lB,GAAwCi+D,GAAA,CAA/B,KAAMhE,EAAAC,EAAA,EAAU,MAAM,4BAC/Bn0C,EAAqN,iBAA1M,YAAJ,IAAIk5E,EAAY,KAAK,SAAU,wBAAa1hG,EAAI,UAAY,uBAAYA,EAAI,SAAW,YAAah4B,EAAM,YAAc,aAAYA,EAAM,UAAW,MAAM,iEAAqCqjE,EAAU,MAAAniB,EAAA,mBAAVmiB,EAAA,KAAU,2aC3BrN,MAAMuzD,EAAkBlrB,GAAA,EAClBP,EAAUD,KAAa,QACvBU,EAAWr/F,GAAIqqH,EAAgB,QAAQ,EAE7C,eAAeiD,EAAY7sB,EAAmB,CAC5C8sB,EAAkB9sB,CAAS,EAC3B,MAAM4pB,EAAgB,uBAAuB5pB,CAAS,CACxD,CAEA,SAAS8sB,EAAkB9sB,EAAmB,CAC5C7B,EAAQ,IAAI,sBAAuB6B,EAAU,UAAU,CACzD,CAEA,SAAS+sB,GAA0B,CACjC,MAAMC,EAAuB7uB,EAAQ,IAAI,qBAAqB,EAC1D6uB,GAAwB,MAAQ,CAAC,MAAM,SAASA,CAAoB,CAAC,EACvEH,EAAY,SAASG,CAAoB,CAAC,EAE1CH,EAAY,CAAC,CAEjB,CAEA,OAAA1gH,GAAU,IAAM,CACd4gH,EAAA,CACF,CAAC,8BAIC,OAAA1vB,IAAAhqD,EAAA,EAAAC,EAYM,MAZNC,GAYM,aAXJC,EAAmE,SAA5D,GAAG,kBAAkB,MAAM,iBAAgB,YAAS,KAC3DA,EAES,SAFTC,GAESI,GADJ+qD,EAAA,MAAS,mBAAgB,wBAAmCA,EAAA,MAAS,iBAAgB,gBAE1FprD,EAMK,KANLG,GAMK,CALHH,EAAoE,WAAhEA,EAA2D,KAAxD,KAAK,IAAK,0BAAeq5E,EAAW,kBAAK,aAAW,gBAC3Dr5E,EAA0C,MAAtC,KAAK,YAAY,MAAM,sBAC3BH,EAAA,IAAAC,EAEKS,GAAA,KAAAC,GAFiB4qD,EAAA,MAAS,cAApBj/D,QAAX2T,EAEK,MAF0C,IAAK3T,GAAO,CACzD6T,EAAiF,KAA9E,KAAK,IAAK,QAAKS,GAAAC,GAAU24E,EAAYltF,CAAO,gBAAG,QAAKkU,GAAGlU,CAAO,EAAG,YAAS,EAAAmU,EAAA,qBAT9B,2HAA6H,oOC3BpL,MAAM61E,EAA+BvrB,GAAA,EAC/BI,EAAamrB,EAA6B,WAC1C,CAAE,cAAesD,GAAmBl0E,GAAY4wE,CAA4B,EAElF,eAAeuD,EAAoBp4D,EAAiC,CAClE,MAAM60D,EAA6B,iBAAiB70D,EAAO,KAAK,UAAU,CAC5E,CAEA,MAAMxzB,EAAQ2R,GAAA,EACd,OAAAlxC,GACE,IAAMu/B,EAAM,MAAM,cAClB,SAAY,CACV,MAAMqoF,EAA6B,iBAAiBroF,GAAO,OAAO,eAAe,UAAU,CAC7F,EACA,CAAE,UAAW,GAAK,8BAKlB,OAAA+R,EAAA,EAAAC,EAYK,KAZLC,GAYK,QAXHD,EAUKS,GAAA,KAAAC,GARc0zC,EAAA8W,CAAA,EAAV1pC,WAFTxhB,EAUK,MATH,oBAAkB,MAEjB,IAAKwhB,EAAO,KACZ,aAAYA,EAAO,KAAK,WAExB,MAAKjgB,GAAA,QAAYigB,EAAO,OAAS4yB,EAAAulC,CAAA,EAAe,KAAI,YAAen4D,EAAO,OAAS4yB,EAAAulC,CAAA,EAAe,KAAI,EACtG,gBAAen4D,EAAO,OAAS4yB,EAAAulC,CAAA,EAAe,OAE/Cz5E,EAAiF,KAA7E,KAAM,IAAM,QAAKS,GAAAC,GAAUg5E,EAAoBp4D,CAAM,gBAAMjhB,GAAAihB,EAAO,IAAI,IAAAnhB,EAAA,YAJjE,CAAA42E,EAAAz1D,EAAO,mBAAmB,mJCzBzC,MAAM80D,EAAkBlrB,GAAA,gBAItBrrD,EAAA,EAAAC,EAIM,MAJNC,GAIM,CAHJ9lB,GAAkB0/F,EAAA,EAClB1/F,GAAW2/F,EAAA,EACX3/F,GAAsD4/F,GAAA,CAAhC,WAAA3lC,EAAAkiC,CAAA,EAAgB,aAAhB,sBAAAl2E,EAAA,KAAAA,EAAA,GAAAQ,GAAAwzC,EAAAkiC,CAAA,EAAgB,aAAY11E,EAAA,2ECRzCo5E,GAAwB50E,GAAY,qBAAsB,IAAM,CAC3E,MAAM2zC,EAAgB9sF,GAA0B,IAAI,EAE9CkuF,EAAsBp0C,GAAA,EACtB,CAAE,kBAAAC,CAAA,EAAsBP,GAAY00C,CAAmB,EAEvD8/B,EAAyBp2H,EAAS,IAAMk1F,EAAc,OAAO,yBAA2B,MAAS,EAEvG,eAAe1yC,GAAU,CACvB,GAAI,CAACL,EAAkB,MAAO,OAE9B,MAAMY,EAAW,MAAMuzC,EAAoB,wBAAwB,eAAe,EAClFpB,EAAc,MAAQ,MAAMnyC,EAAS,MACvC,CAEA,OAAAn4C,GAAMu3C,EAAmBK,EAAS,CAAE,UAAW,GAAM,EAE9C,CACL,cAAA0yC,EACA,QAAA1yC,EACA,uBAAA4zE,CAAA,CAEJ,CAAC,yJCtBD,MAAMC,EAAqBF,GAAA,EACrB,CAAE,uBAAAC,CAAA,EAA2Bx0E,GAAYy0E,CAAkB,gBAI/Dn6E,EAAA,EAAAC,EAUM,MAVNC,GAUM,aATJC,EAEM,OAFD,MAAM,yCAAuC,CAChDA,EAA2B,UAAvB,oBAAkB,QAExBA,EAEM,MAFNC,GAEM,CADJhmB,GAAoBggG,EAAA,IAEI/lC,EAAA6lC,CAAA,GAA1Bl6E,EAAA,EAAAC,EAEM,MAFNK,GAEM,IAAAD,EAAA,KAAAA,EAAA,IADJF,EAAiJ,OAA5I,MAAM,oBAAmB,gHAA6G,mJCLjJ,MAAMo2E,EAAkBlrB,GAAA,EAClBirB,EAA+BvrB,GAAA,EAC/B,CAAE,cAAA57B,CAAA,EAAkBzpB,GAAY4wE,CAA4B,EAC5D+D,EAASv2H,EAAS,IAAMyyH,EAAgB,mBAAmB,EAEjE,IAAI+D,EAEJ5rH,GAAMygE,EAAe,MAAO3pE,GAAa,CACvC,MAAM+0H,EAAsB/0H,EAAS,kBAAkB,CACzD,CAAC,EAED,eAAe+0H,EAAsBv7D,EAAsB,CACrDs7D,GACF,OAAO,cAAcA,CAAe,EAEtC,MAAM/D,EAAgB,qBACtB+D,EAAkB,OAAO,YAAY,SAAY,CAC/C,MAAM/D,EAAgB,oBACxB,EAAGv3D,CAAY,CACjB,CAEA,OAAAn+C,GAAY,IAAM,CACZy5G,GACF,OAAO,cAAcA,CAAe,CAExC,CAAC,EAEDxhH,GAAU,SAAY,CACpB,MAAMy9G,EAAgB,qBACtB,MAAMgE,EAAsBjE,EAA6B,cAAc,kBAAkB,CAC3F,CAAC,UAICt2E,EAAA,EAAAC,EAUM,MAVNC,GAUM,CATJ9lB,GAQ0BkvE,GAAA,iBAPxB,IAMoB,CANpBlvE,GAMoBmvE,GAAA,iBALlB,IAAmD,CAA3B8wB,EAAA,WAAxBvyE,GAAmD0yE,GAAA,mBAClCH,EAAA,oBAAjBp6E,EAGWS,GAAA,SAFTtmB,GAAkBqgG,EAAA,EAClBrgG,GAAgBsgG,EAAA,uJC5C1B,MAAM/hC,EAAYzsF,GAAyC,CAAE,KAAM,GAAI,WAAY,EAAG,oBAIpF47C,GAsB0BwhD,GAAA,iBArBxB,IAoBoB,CApBpBlvE,GAoBoBmvE,GAAA,iBAnBlB,IAkBM,CAlBNppD,EAkBM,MAlBND,GAkBM,aAjBJC,EAIM,OAJD,MAAM,OAAK,CACdA,EAEM,OAFD,MAAM,UAAQ,CACjBA,EAAe,UAAX,QAAM,UAIdA,EAUM,MAVNC,GAUM,CATJD,EAQM,MARNG,GAQM,CAPJH,EAMM,MANNM,GAMM,CALJrmB,GAIWw+D,GAAA,CAJD,UAAQ,2BAAyBD,EAAA,2CAAAA,EAAS,MAAA93C,GAAG,uBAAsB,EAAI,sBAAqB,GAAO,iBAAgB,KAChH,QACK,IAA8B,EAA5Cb,EAAA,IAAAC,EAAmFS,GAAA,KAAAC,GAAtDg4C,EAAA,MAAU,KAAlB55F,QAArB+oD,GAAmF+wC,GAAA,CAArC,aAAc95F,EAAO,IAAKA,EAAK,0FC3BxF,IAAK47H,QACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,OAAS,SAHCA,QAAA,kFCKZ,MAAMh7H,EAAQogD,eASIpgD,EAAM,OAAS00F,EAAAsmC,EAAA,EAAa,UAC1C7yE,GAA2GuwC,GAAA,OAAlG,KAAMhE,EAAA0C,EAAA,EAAwB,SAAOp3F,EAAM,OAAS00F,EAAAsmC,EAAA,EAAa,OAAM,uGCZpF,SAAwBC,GAAsBC,EAA4B,CACxE,OAAQA,EAAA,CACN,KAAK3hC,GAAoB,KACvB,OAAOyhC,GAAa,KACtB,KAAKzhC,GAAoB,QACvB,OAAOyhC,GAAa,QACtB,KAAKzhC,GAAoB,OACvB,OAAOyhC,GAAa,OAE1B,CCZO,SAASG,GAAuBhgG,EAAcigG,EAAkBC,EAAkB,CACvF,MAAMC,EAAW,IAAI,KAAK,CAACngG,CAAI,EAAG,CAAE,KAAMigG,EAAU,EAC9C5nF,EAAM,IAAI,gBAAgB8nF,CAAQ,EACxCC,GAAa/nF,EAAK4nF,EAAUC,CAAQ,CACtC,CAEA,eAAsBG,GAAyBt0E,EAAoBk0E,EAAkBC,EAAkB,CACrG,MAAMC,EAAW,MAAMp0E,EAAS,OAC1B1T,EAAM,IAAI,gBAAgB,IAAI,KAAK,CAAC8nF,CAAQ,EAAG,CAAE,KAAMF,CAAA,CAAU,CAAC,EACxEG,GAAa/nF,EAAK4nF,EAAUC,CAAQ,CACtC,CAEA,SAASE,GAAa/nF,EAAa4nF,EAAkBC,EAAkB,CACrE,MAAMr4H,EAAO,SAAS,cAAc,GAAG,EACvCA,EAAK,KAAOwwC,EACZxwC,EAAK,aAAa,WAAYq4H,CAAQ,EACtCr4H,EAAK,QAAQ,YAAc,CAACo4H,EAAUp4H,EAAK,SAAUA,EAAK,IAAI,EAAE,KAAK,GAAG,EACxEA,EAAK,MAAM,QAAU,OACrB,SAAS,KAAK,YAAYA,CAAI,EAC9BA,EAAK,QACL,SAAS,KAAK,YAAYA,CAAI,EAC9B,WAAW,IAAM,CACf,IAAI,gBAAgBA,EAAK,IAAI,CAC/B,EAAG,IAAI,CACT,CCrBA,MAAMy4H,GAA4B,qBAC5BC,GAAoB,yBAEpBC,GAAc,uBAEdC,GAEN,oKAGMC,GAAmB,sIAEnBC,GAA0B,mDAC1BC,GAAangI,GAER,OAAOA,CAAG,EAAE,QAAQ8/H,GAAmB,GAAG,EAE9C,MAAMM,EAAmB,CAC5B,YAAYt2H,EAAMu2H,EAAY,CAC1B,KAAK,KAAOv2H,EACZ,KAAK,WAAau2H,CACtB,CACJ,CAqDA,MAAMC,GAAU,CAACC,EAAMC,IAAQ,OAAO,aAAa,OAAO,SAASA,EAAK,EAAE,CAAC,EAW3E,SAASC,GAAY5gI,EAAK,CACtB,MAAM46C,EAAQwlF,GAAiB,KAAKpgI,CAAG,EACvC,GAAI,CAAC46C,EACD,MAAM,IAAI,UAAU,8BAA8B,EACtD,MAAMimF,EAAUjmF,EAAM,CAAC,EAAE,YAAW,EAC9BkmF,EAAUlmF,EAAM,CAAC,EACvB,IAAI/4C,EACJ,OAAQg/H,EAAO,CACX,IAAK,aACDh/H,EAAQy+H,GAAUQ,EAAQ,QAAQd,GAA2BS,EAAO,CAAC,EACrE,MACJ,IAAK,QACD,GAAI,CACA5+H,EAAQ,mBAAmBi/H,CAAO,CACtC,MACM,CACF,MAAM,IAAI,UAAU,uBAAuB,CAC/C,CACA,MACJ,QACI,MAAM,IAAI,UAAU,uCAAuC,CACvE,CACI,OAAOj/H,CACX,CAKO,SAAS84C,GAAMomF,EAAQ,CAC1B,IAAInmF,EAAQylF,GAAwB,KAAKU,CAAM,EAC/C,GAAI,CAACnmF,EACD,MAAM,IAAI,UAAU,qBAAqB,EAE7C,IAAIjuC,EAAQiuC,EAAM,CAAC,EAAE,OACrB,MAAM3wC,EAAO2wC,EAAM,CAAC,EAAE,YAAW,EACjC,IAAI16C,EACJ,MAAMi9D,EAAQ,GACRtvB,EAAS,GACf,IAAIhsC,EAIJ,IAFA8K,EAAQwzH,GAAa,UAAYvlF,EAAM,CAAC,EAAE,MAAM,EAAE,IAAM,IAAMjuC,EAAQ,EAAIA,EAElEiuC,EAAQulF,GAAa,KAAKY,CAAM,GAAI,CACxC,GAAInmF,EAAM,QAAUjuC,EAChB,MAAM,IAAI,UAAU,0BAA0B,EAIlD,GAHAA,GAASiuC,EAAM,CAAC,EAAE,OAClB16C,EAAM06C,EAAM,CAAC,EAAE,YAAW,EAC1B/4C,EAAQ+4C,EAAM,CAAC,EACXuiB,EAAM,QAAQj9D,CAAG,IAAM,GACvB,MAAM,IAAI,UAAU,6BAA6B,EAGrD,GADAi9D,EAAM,KAAKj9D,CAAG,EACVA,EAAI,QAAQ,GAAG,EAAI,IAAMA,EAAI,OAAQ,CAErCA,EAAMA,EAAI,MAAM,EAAG,EAAE,EACrB2B,EAAQ++H,GAAY/+H,CAAK,EAEzBgsC,EAAO3tC,CAAG,EAAI2B,EACd,QACJ,CACI,OAAOgsC,EAAO3tC,CAAG,GAAM,WAEvB2B,EAAM,CAAC,IAAM,MACbA,EAAQA,EAAM,MAAM,EAAGA,EAAM,OAAS,CAAC,EAAE,QAAQq+H,GAAa,IAAI,GAEtEryF,EAAO3tC,CAAG,EAAI2B,EAClB,CACA,GAAI8K,IAAU,IAAMA,IAAUo0H,EAAO,OACjC,MAAM,IAAI,UAAU,0BAA0B,EAElD,OAAO,IAAIR,GAAmBt2H,EAAM4jC,CAAM,CAC9C,CCtJA,MAAMmzF,EAAiB,CAErB,YAAqBC,EAAkB,CAAlB,cAAAA,EAEnB,KAAK,oBAAsBr2E,GAAA,CAC7B,CAJA,oBAMA,MAAa,WAAY,CACvB,KAAM,EAAG1hC,CAAI,EAAI,MAAM,KAAK,oBAAoB,6BAA0D,GAAG,KAAK,QAAQ,YAAY,EAEtI,OAAOA,CACT,CAEA,MAAa,iBAAiBA,EAA4C,CACxE,MAAM,KAAK,oBAAoB,qBAAqB,GAAG,KAAK,QAAQ,oBAAqBA,CAAI,CAC/F,CAEA,MAAa,MAAO,CAClB,KAAM,EAAGA,CAAI,EAAI,MAAM,KAAK,oBAAoB,6BAAoD,GAAG,KAAK,QAAQ,gBAAgB,EACpI,OAAOA,CACT,CAEA,MAAa,SAAU,CACrB,KAAM,EAAGA,CAAI,EAAI,MAAM,KAAK,oBAAoB,6BAA2D,GAAG,KAAK,QAAQ,gBAAgB,EAC3I,OAAOA,CACT,CAEA,MAAa,iBAAkB,CAC7B,KAAM,EAAGA,CAAI,EAAI,MAAM,KAAK,oBAAoB,6BAAoD,GAAG,KAAK,QAAQ,mBAAmB,EACvI,OAAOA,CACT,CAEA,MAAa,gBAAiB,CAC5B,MAAMuiC,EAAW,MAAM,KAAK,oBAAoB,wBAAwB,GAAG,KAAK,QAAQ,0BAA0B,mBAAmBd,GAAA,EAAmB,OAAO,CAAC,EAAE,EAClK,GAAIc,EAAS,GAAI,CACf,IAAIm0E,EAAW,yBACf,MAAMsB,EAAcz1E,EAAS,QAAQ,IAAI,cAAc,GAAK,mBACtD01E,EAAqB11E,EAAS,QAAQ,IAAI,qBAAqB,EACrE,GAAI,CACE01E,GAAsB,OACxBvB,EAAWjlF,GAAMwmF,CAAkB,EAAE,WAAW,SAEpD,MAAQ,CAER,CACA,aAAMpB,GAAyBt0E,EAAUy1E,EAAatB,CAAQ,EACvDA,CACT,CACA,MAAO,EACT,CAEA,MAAa,UAAW,CACtB,KAAM,EAAG12G,CAAI,EAAI,MAAM,KAAK,oBAAoB,6BAAuC,GAAG,KAAK,QAAQ,iBAAiB,EACxH,OAAOA,CACT,CAEA,MAAa,YAAYA,EAA+B,CACtD,MAAM,KAAK,oBAAoB,qBAAqB,GAAG,KAAK,QAAQ,yBAA0BA,CAAI,CACpG,CACF,CAEA,MAAAk4G,GAAe,IAAM,IAAIJ,GAAiB,WAAW,ECvE9C,IAAKK,QACVA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,kBAAoB,oBACpBA,EAAA,2BAA6B,kBAC7BA,EAAA,kBAAoB,oBACpBA,EAAA,SAAW,WACXA,EAAA,UAAY,eACZA,EAAA,UAAY,YACZA,EAAA,WAAa,aATHA,QAAA,ICEL,MAAMC,GAAgC,QAE7C,SAAwBC,IAA2B,CACjD,KAAM,CAAE,MAAOz1B,CAAA,EAAqBH,GAAA,EACpC,OAAOG,EAAiB,4BAA4Bw1B,EAA6B,CACnF,CCCO,MAAME,GAAqBv3E,GAAY,kBAAmB,IAAM,CACrE,MAAM+0C,EAAsBp0C,GAAA,EACtB,CAAE,oBAAAI,CAAA,EAAwBV,GAAY00C,CAAmB,EAEzDyiC,EAAc3wH,GAAkC,IAAI,EACpD4wH,EAAwBH,GAAA,EACxBI,EAAmBP,GAAA,EAEnBl2E,EAAU,SAAY,CACtBw2E,EAAsB,QACxBD,EAAY,MAAQ,MAAME,EAAiB,OAE/C,EAEMC,EAAYl5H,EAAS,IAErBm5H,EAAkB,OAAS,CAACJ,EAAY,OAAO,yBAAyB,uBAMxE,CAACA,EAAY,OAAO,wBAAwB,sBAEvC,GAILz2E,EAAoB,MACf,CAACy2E,EAAY,OAAO,6BAA6B,sBAInD,EACR,EACKK,EAAYp5H,EAAS,IACrB+4H,EAAY,OAAS,KAChBJ,GAAU,KAGZI,EAAY,MAAM,SAC1B,EACKI,EAAoBn5H,EAAS,IAAM,CACvC,OAAQo5H,EAAU,OAChB,KAAKT,GAAU,KACf,KAAKA,GAAU,KACf,KAAKA,GAAU,kBACf,KAAKA,GAAU,kBACb,MAAO,GACT,QACE,MAAO,GAEb,CAAC,EACKU,EAA+B,IAAM,CACzC,OAAQD,EAAU,OAChB,KAAKT,GAAU,kBACb,MAAO,sBACT,KAAKA,GAAU,2BACb,MAAO,oBACT,KAAKA,GAAU,KACb,MAAO,OACT,KAAKA,GAAU,kBACb,MAAO,qBACT,KAAKA,GAAU,SACb,MAAO,WACT,KAAKA,GAAU,UACb,MAAO,aACT,KAAKA,GAAU,UACb,MAAO,aACT,KAAKA,GAAU,WACb,MAAO,aAEb,EACMW,EAAmC,IAAM,CAC7C,OAAQF,EAAU,OAChB,KAAKT,GAAU,kBACf,KAAKA,GAAU,kBACf,KAAKA,GAAU,KACb,MAAO,mGACT,KAAKA,GAAU,2BACb,MAAO,2FACT,KAAKA,GAAU,SACb,MAAO,kFACT,KAAKA,GAAU,UACb,MAAO,mFACT,KAAKA,GAAU,UACb,MAAO,oFACT,KAAKA,GAAU,WACb,MAAO,oFAEb,EAEA,OAAA/tH,GAAMouH,EAAwB7/H,GAAU,CAClCA,GACFqpD,EAAA,CAEJ,CAAC,EAEM,CACL,YAAAu2E,EACA,QAAAv2E,EACA,6BAAA62E,EACA,iCAAAC,EACA,kBAAAH,EACA,UAAAD,EACA,UAAAE,CAAA,CAEJ,CAAC,EChHDG,GAAev5B,GAAoB,aAAc84B,GAAoB,KAAU,GAAiB,ECSnFU,GAAoBj4E,GAAY,iBAAkB,IAAM,CACnE,MAAMk4E,EAAYx0H,GAAoB,CACpC,KAAM,GACN,OAAQ,GACR,MAAO,EACR,EAEKqxF,EAAsBp0C,GAAA,EAE5B,eAAew3E,GAAiB,CAC9B,KAAM,EAAGl5G,CAAI,EAAI,MAAM81E,EAAoB,6BAA6C,yBAAyB,EACjHmjC,EAAU,OAASj5G,EAAK,IAAK1d,GAAMA,EAAE,gBAAgB,CACvD,CAEA,eAAe62H,GAAe,CAC5B,KAAM,CAAC52E,EAAUviC,CAAI,EAAI,MAAM81E,EAAoB,6BAAyC,WAAW,EACvGmjC,EAAU,MAAQ,SAAS12E,EAAS,QAAQ,IAAI,aAAa,GAAK,GAAG,EACrE02E,EAAU,KAAOj5G,CACnB,CAEA,eAAegiC,GAAU,CACvB,MAAM,QAAQ,IAAI,CAACm3E,IAAgBD,EAAA,CAAgB,CAAC,CACtD,CAEA,eAAeE,EAA6BC,EAAmB,CAC7D,MAAM92E,EAAW,MAAMuzC,EAAoB,qBAAqB,iBAAiBujC,CAAS,QAAQ,EAClG,MAAO,CACL,QAAS92E,EAAS,GAAK,UAAY,SAASA,EAAS,UAAU,GAC/D,OAAQA,EAAS,OACjB,WAAYA,EAAS,WAEzB,CAEA,MAAO,CAAE,QAAAP,EAAS,UAAAi3E,EAAW,6BAAAG,CAAA,CAC/B,CAAC,kIChCD,KAAM,CAAE,MAAOE,CAAA,EAAoBP,GAAA,EAC7B,CAAE,UAAAL,CAAA,EAAct3E,GAAYk4E,CAAe,EAC3C,CAAE,MAAO35B,CAAA,EAAoBD,GAAA,EAC7B7B,EAAkB8B,EAAgB,gBAClC45B,EAAiBP,GAAA,EACjB/hC,EAAepB,GAAA,EACf,CAAE,cAAAE,GAAkBkB,EAE1BziF,GAAU,SAAY,CACpB,GAAIglH,EAAa,MAAO,CACtB,MAAM1kF,EAASuG,GAAA,EAEf,GAAIvG,EAAO,aAAa,MAAM,OAAS2kF,EAAyB,KAAM,CACpE,MAAM3kF,EAAO,KAAK,CAAE,KAAM2kF,EAAyB,KAAM,EACzD,MACF,CACF,CAEAF,EAAe,SACjB,CAAC,EAED,MAAMC,EAAeh6H,EAAS,IAAM,CAACq+F,EAAgB,WAAa,CAACA,EAAgB,iBAAiB,EAE9F47B,EAA2B5kF,GAAQ,CAAE,GAAIk2B,GAAW,cAAc,YAAY,KAAM,EAAE,MAAM,MAElG,SAAS2uD,EAAkB36H,EAAU,CAC/By6H,EAAa,OACfz6H,EAAE,gBAEN,2DAIE,OAAA28C,EAAA,EAAAC,EAuDM,MAvDNC,GAuDM,aAtDJC,EAIM,OAJD,MAAM,OAAK,CACdA,EAEM,OAFD,MAAM,aAAW,CACpBA,EAAsB,UAAlB,eAAa,UAGrBA,EA+CM,MA/CNC,GA+CM,CA9CJD,EA6CM,MA7CNG,GA6CM,CA5CJH,EA2CM,MA3CNM,GA2CM,CA1CJN,EAGK,MAHA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,IAAI,WAAayuD,EAAA,OAAyD,UAAU,kBAAnCE,EAAoC,KAAK,MAAM,aAAW,YAChL5jG,GAA4EohE,EAAA,CAA/D,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,kBAAM,IAAO,IAAAhvB,EAAA,KAAAA,EAAA,OAAP,UAAO,uBAC/DjmB,GAA8E6jG,GAAA,CAA3D,KAAM5pC,EAAAumC,EAAA,EAAsBvmC,EAAAgG,CAAA,EAAc,YAAY,yBAE3El6C,EASK,MARF,kBAAiBk0C,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,WAAW,MAAM,IAAI,GAAKglB,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,WAAW,MAAM,KAAK,IAAI,GAAKglB,EAAAuV,EAAA,EAAgBvV,MAAW,WAAW,MAAM,YAAY,IAAI,WAAaypC,EAAA,OAEpM,UAAU,kBADAE,EAEhB,KAAK,MACL,aAAW,gBAEX5jG,GAA2EohE,EAAA,CAA9D,GAAInH,EAAAhlB,EAAA,EAAW,WAAW,MAAM,kBAAM,IAAW,IAAAhvB,EAAA,KAAAA,EAAA,OAAX,cAAW,uBACVg0C,EAAA2oC,CAAA,OAApDl1E,GAAiEm2E,GAAA,OAA9C,KAAM5pC,EAAAsmC,EAAA,EAAa,wCAEvBtmC,EAAAgG,CAAA,EAAc,eAqB7Bp6C,EAKK,YALA,MAAKuB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,YAAY,IAAI,GAAW,UAAU,GAAC,KAAK,MAAM,aAAW,gBACzHj1C,GAGaohE,EAAA,CAHA,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,YAAY,kBAAM,IAE1D,gBAF0D,gBAE1D,KAAwBglB,EAAA4P,CAAA,EAAgB,+BAAxCn8C,GAAiGm2E,GAAA,OAA7B,KAAM5pC,EAAAsmC,EAAA,EAAa,8DAxB7F16E,EAmBWS,GAAA,SAlBTP,EAEK,MAFA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,IAAI,WAAayuD,EAAA,OAAyD,UAAU,kBAAnCE,EAAoC,KAAK,MAAM,aAAW,2BAC7L5jG,GAAuGohE,EAAA,CAA1F,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,qBAAqB,kBAAM,IAAqB,IAAAhvB,EAAA,KAAAA,EAAA,OAArB,wBAAqB,4BAE5FF,EAEK,MAFA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,yBAAyB,IAAI,WAAayuD,EAAA,OAAyD,UAAU,kBAAnCE,EAAoC,KAAK,MAAM,aAAW,+BACjM5jG,GAAgHohE,EAAA,CAAnG,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,yBAAyB,kBAAM,IAA0B,IAAAhvB,EAAA,KAAAA,EAAA,OAA1B,6BAA0B,4BAErGF,EAEK,MAFA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,eAAe,IAAI,WAAayuD,EAAA,OAAyD,UAAU,kBAAnCE,EAAoC,KAAK,MAAM,aAAW,oBACvL5jG,GAAkIohE,EAAA,CAArH,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,eAAe,kBAAM,IAAiB,CAAjB9uB,GAAA,uBAAoB8zC,EAAAwpC,CAAA,EAAe,UAAU,KAAK,EAAG,IAAC,yBAEvH19E,EAKK,MALA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,YAAY,IAAI,GAAW,UAAU,GAAC,KAAK,MAAM,aAAW,gBACzHj1C,GAGaohE,EAAA,CAHA,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,YAAY,kBAAM,IAE1D,gBAF0D,gBAE1D,KAAwBglB,EAAA4P,CAAA,EAAgB,+BAAxCn8C,GAAiGm2E,GAAA,OAA7B,KAAM5pC,EAAAsmC,EAAA,EAAa,wDAG3Fx6E,EAEK,MAFA,MAAKqB,GAAA,SAAY6yC,EAAAuV,EAAA,EAAgBvV,EAAAhlB,EAAA,EAAW,cAAc,mBAAmB,IAAI,WAAayuD,EAAA,OAAyD,UAAU,kBAAnCE,EAAoC,KAAK,MAAM,aAAW,wBAC3L5jG,GAAmGohE,EAAA,CAAtF,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,mBAAmB,kBAAM,IAAmB,IAAAhvB,EAAA,KAAAA,EAAA,OAAnB,sBAAmB,wCAchGjmB,GAAc8jG,CAAA,yPCpGlB,MAAMv+H,EAAQogD,gBAMZC,EAAA,EAAAC,EAeM,MAfNC,GAeM,CAdJC,EAaM,MAbNC,GAaM,CAZJD,EAWM,MAXNG,GAWM,CAVJH,EASM,MATNM,GASM,CARJN,EAOM,MAPNW,GAOM,CANJX,EAKM,MALNm4C,GAKM,CAJJn4C,EAA+D,IAA/Do4C,GAA+D/3C,GAApB7gD,EAAM,OAAO,KACxDioD,GAEOC,sBAFP,IAEO,CADLxH,EAAA,KAAAA,EAAA,GAAAF,EAAa,SAAV,IAAM,sEC4KtB,IAAC60C,GAAU,CACZ,OAAQ,MACR,SAAU,QACV,KAAM,CAAC,IAAK,IAAK,CAAC,OAAQ,YAAY,EAAG,OAAQ,6OAA6O,CAChS,EAuGImpC,GAAgB,CAClB,OAAQ,MACR,SAAU,eACV,KAAM,CAAC,IAAK,IAAK,CAAC,KAAM,KAAM,MAAO,cAAc,EAAG,OAAQ,yaAAya,CACze,EACIC,GAAgBD,GAifhBE,GAAS,CACX,OAAQ,MACR,SAAU,OACV,KAAM,CAAC,IAAK,IAAK,GAAI,OAAQ,ifAAif,CAChhB,EC5mBO,SAASC,GAAOz8E,EAAGpjD,EAAG,CAC3B,IAAIqqB,EAAI,OAAO,QAAW,YAAc+4B,EAAE,OAAO,QAAQ,EACzD,GAAI,CAAC/4B,EAAG,OAAO+4B,EACf,IAAI3lD,EAAI4sB,EAAE,KAAK+4B,CAAC,EAAG51C,EAAGsyH,EAAK,GAAIl7H,EAC/B,GAAI,CACA,MAAQ5E,IAAM,QAAUA,KAAM,IAAM,EAAEwN,EAAI/P,EAAE,KAAI,GAAI,MAAMqiI,EAAG,KAAKtyH,EAAE,KAAK,CAC7E,OACO1I,EAAO,CAAEF,EAAI,CAAE,MAAOE,CAAK,CAAI,QACxC,CACM,GAAI,CACI0I,GAAK,CAACA,EAAE,OAAS6c,EAAI5sB,EAAE,SAAY4sB,EAAE,KAAK5sB,CAAC,CACnD,QACN,CAAgB,GAAImH,EAAG,MAAMA,EAAE,KAAO,CACpC,CACA,OAAOk7H,CACT,CCnMA,IAAIC,IAAuB,UAAY,CACnC,SAASA,EAAMvyH,EAAG2vB,EAAGz7B,EAAG,CACpB,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,EAAI,EACT,KAAK,IAAI8L,EAAG2vB,EAAGz7B,CAAC,CACpB,CACA,OAAAq+H,EAAM,UAAU,IAAM,SAAUvyH,EAAG2vB,EAAGz7B,EAAG,CACrC,KAAK,EAAI,KAAK,MAAM8L,CAAC,EACrB,KAAK,EAAI,KAAK,MAAM2vB,CAAC,EACrB,KAAK,EAAI,KAAK,MAAMz7B,CAAC,CACzB,EAOAq+H,EAAM,UAAU,UAAY,SAAUC,EAAO,CACrCA,IAAU,SAAUA,EAAQ,GAChCA,EAASA,EAAQ,IAAO,KAAK,GAC7B,IAAIC,EAAM,KAAK,IAAID,CAAK,EACpBE,EAAM,KAAK,IAAIF,CAAK,EACxB,KAAK,SAAS,CACV,KAAQE,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,IAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,KAC5B,KAAQC,EAAM,KAAQD,EAAM,IACxC,CAAS,CACL,EAOAF,EAAM,UAAU,UAAY,SAAUvhI,EAAO,CACrCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,SAAS,CACV,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,GACvB,MAAS,OAAU,EAAIA,EACnC,CAAS,CACL,EAOAuhI,EAAM,UAAU,MAAQ,SAAUvhI,EAAO,CACjCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,SAAS,CACV,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,GACrB,KAAQ,MAAS,EAAIA,EACjC,CAAS,CACL,EAOAuhI,EAAM,UAAU,SAAW,SAAUvhI,EAAO,CACpCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,SAAS,CACV,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,EAChB,KAAQ,KAAQA,CAC5B,CAAS,CACL,EACAuhI,EAAM,UAAU,SAAW,SAAUI,EAAQ,CAEzC,IAAIC,EAAO,KAAK,MAAM,KAAK,EAAID,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,CAAC,EAC9EE,EAAO,KAAK,MAAM,KAAK,EAAIF,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,CAAC,EAC9EG,EAAO,KAAK,MAAM,KAAK,EAAIH,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,EAAI,KAAK,EAAIA,EAAO,CAAC,CAAC,EAClF,KAAK,EAAIC,EACT,KAAK,EAAIC,EACT,KAAK,EAAIC,CACb,EAOAP,EAAM,UAAU,WAAa,SAAUvhI,EAAO,CACtCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,OAAOA,CAAK,CACrB,EAOAuhI,EAAM,UAAU,SAAW,SAAUvhI,EAAO,CACpCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,OAAOA,EAAO,EAAE,GAAMA,GAAS,EAAG,CAC3C,EACAuhI,EAAM,UAAU,OAAS,SAAUQ,EAAOC,EAAW,CAC7CD,IAAU,SAAUA,EAAQ,GAC5BC,IAAc,SAAUA,EAAY,GACxC,KAAK,EAAI,KAAK,MAAM,KAAK,EAAID,EAAQC,EAAY,GAAG,EACpD,KAAK,EAAI,KAAK,MAAM,KAAK,EAAID,EAAQC,EAAY,GAAG,EACpD,KAAK,EAAI,KAAK,MAAM,KAAK,EAAID,EAAQC,EAAY,GAAG,CACxD,EAOAT,EAAM,UAAU,OAAS,SAAUvhI,EAAO,CAClCA,IAAU,SAAUA,EAAQ,GAChC,KAAK,EAAI,KAAK,OAAOA,EAAS,KAAK,EAAI,KAAQ,EAAI,EAAIA,IAAU,GAAG,EACpE,KAAK,EAAI,KAAK,OAAOA,EAAS,KAAK,EAAI,KAAQ,EAAI,EAAIA,IAAU,GAAG,EACpE,KAAK,EAAI,KAAK,OAAOA,EAAS,KAAK,EAAI,KAAQ,EAAI,EAAIA,IAAU,GAAG,CACxE,EAOAuhI,EAAM,UAAU,IAAM,UAAY,CAC9B,IAAIU,EAAM,KAAK,EAAI,IACfC,EAAQ,KAAK,EAAI,IACjBC,EAAO,KAAK,EAAI,IAEhBp/G,EAAM,KAAK,IAAIk/G,EAAKC,EAAOC,CAAI,EAC/BnhE,EAAM,KAAK,IAAIihE,EAAKC,EAAOC,CAAI,EAC/BC,EAAM,EACNC,EAAa,EACbC,GAAav/G,EAAMi+C,GAAO,EAG9B,GAAIj+C,IAAQi+C,EACR,MAAO,CACH,EAAG,EACH,EAAG,EACH,EAAGshE,EAAY,GAC/B,EAGQ,IAAI7xF,EAAQ1tB,EAAMi+C,EAClB,OAAAqhE,EAAaC,EAAY,GAAM7xF,GAAS,EAAI1tB,EAAMi+C,GAAOvwB,GAAS1tB,EAAMi+C,GACpEj+C,IAAQk/G,EACRG,GAAOF,EAAQC,GAAQ1xF,GAASyxF,EAAQC,EAAO,EAAI,GAE9Cp/G,IAAQm/G,EACbE,GAAOD,EAAOF,GAAOxxF,EAAQ,EAExB1tB,IAAQo/G,IACbC,GAAOH,EAAMC,GAASzxF,EAAQ,GAElC2xF,GAAO,EACA,CACH,EAAGA,EAAM,IACT,EAAGC,EAAa,IAChB,EAAGC,EAAY,GAC3B,CACI,EAWAf,EAAM,UAAU,MAAQ,SAAUvhI,EAAO,CAGrC,OAAO,KAAK,IAAI,KAAK,IAAIA,EAAO,CAAC,EAAG,GAAG,CAC3C,EACOuhI,CACX,KC1MIgB,IAAwB,UAAY,CACpC,SAASA,EAAOp6H,EAAQwJ,EAAS,CAC7B,KAAK,OAASxJ,EACd,KAAK,UAAYA,EAAO,IAAG,EAC3B,KAAK,QAAU,OAAO,OAAO,GAE7B,CACI,yBAA0B,EAC1B,UAAW,EACvB,EAAWwJ,CAAO,EAOV,KAAK,YAAc,IAAI4vH,GAAM,EAAG,EAAG,CAAC,CACxC,CAOA,OAAAgB,EAAO,UAAU,MAAQ,UAAY,CACjC,IAAIh4H,EAAS,KAAK,YAAY,KAAK,UAAS,CAAE,EAC9C,MAAO,CACH,OAAQA,EAAO,OACf,OAAQA,EAAO,OACf,KAAMA,EAAO,KACb,OAAQ,KAAK,IAAIA,EAAO,MAAM,CAC1C,CACI,EAQAg4H,EAAO,UAAU,UAAY,UAAY,CAQrC,QAPIxtD,EAAI,EACJr0E,EAAI,GAGJuC,EAAI,CAAC,GAAI,IAAK,KAAO,IAAK,IAAK,GAAG,EAClCu/H,EAAO,CAAE,KAAM,GAAQ,EACvBhiC,EAAU,EACPgiC,EAAK,KAAO,KAAK,QAAQ,0BAA0B,CACtD,IAAIC,EAAsB,CAAC,GAAI,GAAI,KAAM,GAAI,IAAK,GAAG,EACjDl4H,EAAS,KAAK,KAAK,CACnB,EAAGwqE,EACH,EAAG9xE,EACH,EAAGvC,EACH,OAAQ+hI,EAGR,eAAgB,GAChC,CAAa,EAKD,GAJIl4H,EAAO,KAAOi4H,EAAK,OACnBA,EAAOj4H,GAEXi2F,GAAW,EACPA,GAAW,KAAK,QAAQ,UACxB,KAER,CACA,OAAO,OAAO,OAAO,GAAIgiC,EAAM,CAAE,OAAQhiC,EAAS,CACtD,EASA+hC,EAAO,UAAU,YAAc,SAAUG,EAAM,CAC3C,IAAI3tD,EAAI2tD,EAAK,KACThiI,EAAI,EACJiiI,EAAK5tD,EAAI,EAGT9xE,EAAI,CAAC,IAAO0/H,EAAI,IAAOA,EAAIA,EAAI,IAAOA,EAAI,GAAMA,EAAI,GAAMA,CAAE,EAChE,OAAO,KAAK,KAAK,CACb,EAAG5tD,EACH,EAAG9xE,EACH,EAAGvC,EACH,OAAQgiI,EAAK,OACb,eAAgB,IAChB,OAAQA,EAAK,MACzB,CAAS,CACL,EAYAH,EAAO,UAAU,oBAAsB,SAAUviI,EAAOs2F,EAAK,CACzD,IAAIvzE,EAAM,IAEV,OAAIuzE,IAAQ,EACRvzE,EAAM,MAEDuzE,IAAQ,GAAsBA,IAAQ,KAC3CvzE,EAAM,KAENuzE,IAAQ,EACJt2F,EAAQ+iB,EACR/iB,GAAS+iB,EAEJ/iB,EAAQ,IACbA,EAAQ+iB,EAAO/iB,EAAQ+iB,GAKtB/iB,EAAQ,EACbA,EAAQ,EAEHA,EAAQ+iB,IACb/iB,EAAQ+iB,GAEL/iB,CACX,EACAuiI,EAAO,UAAU,KAAO,SAAUn+H,EAAI,CAWlC,QAVI2wE,EAAI3wE,EAAG,EAAGnB,EAAImB,EAAG,EAAG1D,EAAI0D,EAAG,EAAGqP,EAASrP,EAAG,OAAQ4zH,EAAK5zH,EAAG,eAAgBw+H,EAAiB5K,IAAO,OAAS,IAAMA,EAAI6K,EAAKz+H,EAAG,OAAQ4a,EAAS6jH,IAAO,OAAS,EAAIA,EAClKC,EAAQ,EACRC,EAAQ,mBACRP,EAAO,KACPQ,EAAW,IACXC,EAAS,IAAI,MAAM,CAAC,EACpBC,EAAW,IAAI,MAAM,CAAC,EACtBC,EAAU,IAAI,MAAM,CAAC,EAErBC,EAAyB,EACpB/kI,EAAM,EAAGA,EAAMukI,EAAgBvkI,IAAO,CAE3C,QADIglI,EAAK3iI,EAAI,KAAK,IAAIrC,EAAM,EAAG0kI,CAAK,EAC3B9jI,EAAI,EAAGA,EAAImkI,EAAwBnkI,IACxCgkI,EAAOhkI,CAAC,EAAI,KAAK,OAAM,EAAK,GAAM,EAAI,GACtCikI,EAASjkI,CAAC,EAAIwU,EAAOxU,CAAC,EAAIokI,EAAKJ,EAAOhkI,CAAC,EACvCkkI,EAAQlkI,CAAC,EAAIwU,EAAOxU,CAAC,EAAIokI,EAAKJ,EAAOhkI,CAAC,EAG1C,QADIqkI,EAAW,KAAK,KAAKJ,CAAQ,EAAI,KAAK,KAAKC,CAAO,EAC7ClkI,EAAI,EAAGA,EAAImkI,EAAwBnkI,IAAK,CAC7C,IAAI0/B,EAAK2kG,GAAY,EAAID,GAAOJ,EAAOhkI,CAAC,EACpCskI,EAAKtgI,EAAEhE,CAAC,EAAI,KAAK,IAAI81E,EAAI12E,EAAM,EAAGykI,CAAK,EAC3CrvH,EAAOxU,CAAC,EAAI,KAAK,oBAAoBwU,EAAOxU,CAAC,EAAIskI,EAAK5kG,EAAG1/B,CAAC,CAC9D,CACA,IAAIukI,EAAO,KAAK,KAAK/vH,CAAM,EACvB+vH,EAAOR,IACPR,EAAO/uH,EAAO,MAAM,CAAC,EACrBuvH,EAAWQ,EAEnB,CACA,MAAO,CAAE,OAAQhB,EAAM,KAAMQ,EAAU,OAAQhkH,CAAM,CACzD,EASAujH,EAAO,UAAU,KAAO,SAAUh4G,EAAS,CAEvC,IAAIk5G,EAAQ,KAAK,YAGjBA,EAAM,IAAI,EAAG,EAAG,CAAC,EACjBA,EAAM,OAAOl5G,EAAQ,CAAC,EAAI,GAAG,EAC7Bk5G,EAAM,MAAMl5G,EAAQ,CAAC,EAAI,GAAG,EAC5Bk5G,EAAM,SAASl5G,EAAQ,CAAC,EAAI,GAAG,EAC/Bk5G,EAAM,UAAUl5G,EAAQ,CAAC,EAAI,GAAG,EAChCk5G,EAAM,WAAWl5G,EAAQ,CAAC,EAAI,GAAG,EACjCk5G,EAAM,SAASl5G,EAAQ,CAAC,EAAI,GAAG,EAC/B,IAAIm5G,EAAWD,EAAM,IAAG,EACxB,OAAQ,KAAK,IAAIA,EAAM,EAAI,KAAK,OAAO,CAAC,EACpC,KAAK,IAAIA,EAAM,EAAI,KAAK,OAAO,CAAC,EAChC,KAAK,IAAIA,EAAM,EAAI,KAAK,OAAO,CAAC,EAChC,KAAK,IAAIC,EAAS,EAAI,KAAK,UAAU,CAAC,EACtC,KAAK,IAAIA,EAAS,EAAI,KAAK,UAAU,CAAC,EACtC,KAAK,IAAIA,EAAS,EAAI,KAAK,UAAU,CAAC,CAC9C,EASAnB,EAAO,UAAU,IAAM,SAAUh4G,EAAS,CACtC,IAAIo5G,EAAmC,SAAUrtC,EAAKstC,EAAY,CAC9D,OAAIA,IAAe,SAAUA,EAAa,GACnC,KAAK,MAAMr5G,EAAQ+rE,CAAG,EAAIstC,CAAU,CAC/C,EACA,MAAO,CACH,UAAU,OAAOD,EAAiC,CAAC,EAAG,IAAI,EAC1D,SAAS,OAAOA,EAAiC,CAAC,EAAG,IAAI,EACzD,YAAY,OAAOA,EAAiC,CAAC,EAAG,IAAI,EAC5D,cAAc,OAAOA,EAAiC,EAAG,GAAG,EAAG,MAAM,EACrE,cAAc,OAAOA,EAAiC,CAAC,EAAG,IAAI,EAC9D,YAAY,OAAOA,EAAiC,CAAC,EAAG,IAAI,CACxE,EAAU,KAAK,GAAG,CACd,EACOpB,CACX,KC9MIsB,GAAW,SAAU/E,EAAK,CAC1B,OAAIA,EAAI,SAAW,EACR,CAAC,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,EAAG,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,EAAG,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,CAAC,EAEhJA,EAAI,SAAW,EACR,CAAC,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,EAAG,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,EAAG,SAAS,KAAK,OAAOA,EAAI,CAAC,CAAC,EAAE,OAAOA,EAAI,CAAC,CAAC,CAAC,CAAC,EAE7I,EACX,EACIgF,GAAY,SAAUtiI,EAAG,CAAE,MAAO,CAAC,MAAM,WAAWA,CAAC,CAAC,GAAK,SAASA,CAAC,CAAG,EAGxEuiI,GAAU,GAQHC,GAAiB,SAAUC,EAAYzM,EAAM,CACpD,IAAIpzH,EACAozH,IAAS,SAAUA,EAAO,IAC9B,IAAIyK,EACAC,EACAC,EACJ,GAAI4B,GAAQE,CAAU,GAAK,CAACzM,EAAK,yBAC7B,OAAO,OAAO,OAAO,GAAIuM,GAAQE,CAAU,EAAG,CAAE,MAAO,GAAM,EAEjE,IAAIR,EACJ,GAAI,CAEA,GADAr/H,EAAKi9H,GAAOwC,GAASI,CAAU,EAAG,CAAC,EAAGhC,EAAM79H,EAAG,CAAC,EAAG89H,EAAQ99H,EAAG,CAAC,EAAG+9H,EAAO/9H,EAAG,CAAC,EACzE,CAAC0/H,GAAU7B,CAAG,GAAK,CAAC6B,GAAU5B,CAAK,GAAK,CAAC4B,GAAU3B,CAAI,EACvD,MAAM,IAAI,MAAM,4CAA4C,OAAO8B,EAAY,GAAG,CAAC,EAEvFR,EAAQ,IAAIlC,GAAM,OAAOU,CAAG,EAAG,OAAOC,CAAK,EAAG,OAAOC,CAAI,CAAC,CAC9D,OACO77H,EAAO,CACV,MAAM,IAAI,MAAM,wCAAwC,OAAOA,CAAK,CAAC,CACzE,CACA,IAAI49H,EAAS,IAAI3B,GAAOkB,EAAO,OAAO,OAAO,GAE7C,CACI,yBAA0B,EAC1B,UAAW,GACX,yBAA0B,EAClC,EAAOjM,CAAI,CAAC,EACR,OAAQuM,GAAQE,CAAU,EAAI,OAAO,OAAO,GAAIC,EAAO,QAAS,CAC5D,IAAKD,EACL,IAAK,CAAChC,EAAKC,EAAOC,CAAI,EACtB,MAAO,EACf,CAAK,CACL,ylBClDA,KAAM,CAAE,MAAA/7E,CAAA,EAAUmhD,GAAA,EACZ48B,EAAgBH,GAAe,SAAS,EAAE,qBAI9CjhF,EAAA,EAAAC,EA0BM,MA1BNC,GA0BM,CAzBJC,EAwBM,MAxBNC,GAwBM,CAvBJD,EAsBM,MAtBNG,GAsBM,CArBJH,EAiBM,MAjBNM,GAiBM,CAhBJN,EAeM,MAfNW,GAeM,CAdJX,EAaM,MAbNm4C,GAaM,CAZJn4C,EAAwG,IAAxGo4C,GAAwG/3C,GAAjCT,EAAA,YAAY,cAAc,KACjGI,EAUM,MAVNq4C,GAUM,CATJr4C,EAQM,MARNs4C,GAQM,CAPJt4C,EAMI,IANJ22E,GAMI,CALF32E,EAA8G,OAA9G42E,GAA8G,CAAvF38F,GAAuCi+D,GAAA,CAA9B,KAAMhE,EAAA0B,EAAA,EAAS,MAAM,4BAAS,WAAQv1C,GAAGT,EAAA,YAAY,eAAe,OACpGI,EAAyG,OAAzG62E,GAAyG,CAAlF58F,GAAsCi+D,GAAA,CAA7B,KAAMhE,EAAAiC,EAAA,EAAQ,MAAM,4BAAS,cAAW91C,GAAGT,EAAA,YAAY,QAAQ,OAC/FI,EAAwK,OAAxK82E,GAAwK,CAAjJ92E,EAAoF,KAAjF,cAAY,OAAO,MAAM,iBAAkB,iBAAiBk0C,EAAA+sC,CAAA,EAAa,WAAQ7gF,GAAA,cAAWC,GAAGT,EAAA,YAAY,qBAAqB,IAAI,OAC9JI,EAAwH,OAAxHkhF,GAAwH,CAAjGjnG,GAAwCi+D,GAAA,CAA/B,KAAMhE,EAAA2B,EAAA,EAAU,MAAM,yBAASz1C,GAAA,UAAOC,GAAGT,EAAA,YAAY,qBAAqB,IAAI,OAC9GI,EAAmM,OAAnMg3E,GAAmM,CAA5K/8F,GAAuCi+D,GAAA,CAA9B,KAAMhE,EAAAW,EAAA,EAAS,MAAM,wCAAS,kBAAe,KAAA56D,GAA+Gs+D,GAAA,CAAnG,WAAU34C,EAAA,YAAY,YAAa,KAAK,OAAO,aAAW,iEAO/JI,EAEM,YADJA,EAAoO,UAA5N,KAAK,SAAS,MAAM,kBAAkB,MAAM,8DAA8D,KAAK,SAAS,aAAW,uBAAwB,uBAAOk0C,EAAAhxC,CAAA,EAAM,mBAAmBtD,EAAA,YAAY,EAAE,IAAG,SAAO,kQC/BrO,KAAM,CAAE,MAAAsD,CAAA,EAAUmhD,GAAA,EAEZ,CAAE,WAAAzjD,EAAY,aAAAojD,EAAc,aAAAC,CAAA,EAAiB1+C,GAAYrC,CAAK,gBAIlErD,EAAA,EAAAC,EAkBM,MAlBNC,GAkBM,aAjBJC,EAIM,OAJD,SAAM,IAAI,QACbA,EAEM,OAFD,MAAM,oBAAkB,CAC3BA,EAAsB,UAAlB,eAAa,UAIrBA,EAUU,UAVVC,GAUU,CATMi0C,EAAA8P,CAAA,IAAY,OAA1Br8C,GAAmHw5E,GAAA,OAAjF,QAAQ,0BAA0B,KAAK,OAAO,aAAW,0BAC3FthF,EAAA,EAAAC,EAOM,MAPNK,GAOM,CANJH,EAKM,MALNM,GAKM,QAJJR,EAAoFS,GAAA,KAAAC,GAApD0zC,EAAA+P,CAAA,EAARrlG,QAAxB+oD,GAAoFy5E,GAAA,CAArC,IAAKxiI,EAAK,GAAK,eAAcA,CAAA,mCAC5EohD,EAEM,MAFNW,GAEM,CADJ1mB,GAAyI4tB,GAAA,CAAvH,iBAAgB,GAAK,cAAaqsC,EAAA8P,CAAA,aAAuB9P,EAAAtzC,CAAA,6CAAAA,EAAU,MAAAF,EAAA,MAAE,KAAK,MAAM,aAAW,4RCfzH,KAAM,CAAE,MAAAwC,CAAA,EAAU+lD,GAAA,EACZ,CAAE,mBAAAd,EAAoB,iBAAAF,EAAkB,qBAAAN,CAAA,EAAyBpiD,GAAYrC,CAAK,EAElF82E,EAAqBF,GAAA,EACrB,CAAE,uBAAAC,CAAA,EAA2Bx0E,GAAYy0E,CAAkB,oBAI/DryE,GAuC0BwhD,GAAA,iBAtCxB,IAqCoB,CArCpBlvE,GAqCoBmvE,GAAA,iBApClB,IAmCM,CAnCNppD,EAmCM,MAnCND,GAmCM,CAlCJC,EAOM,MAPNC,GAOM,aANJD,EAEM,OAFD,MAAM,UAAQ,CACjBA,EAA4B,UAAxB,qBAAmB,QAECk0C,EAAA6lC,CAAA,GAA1Bl6E,EAAA,EAAAC,EAEM,MAFNK,GAEM,IAAAD,EAAA,KAAAA,EAAA,IADJF,EAAgJ,OAA3I,MAAM,oBAAmB,+GAA4G,oBAG9IA,EAwBM,MAxBNM,GAwBM,CAvBJN,EAsBM,MAtBNW,GAsBM,CArBJX,EAoBM,MApBNm4C,GAoBM,CAnBJn4C,EAeM,YAbJA,EAEK,MAFA,MAAKqB,GAAA,QAAY6yC,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,UAAU,IAAI,MACxEj1C,GAA6Mi6D,EAAAh6C,EAAA,GAAjM,KAAK,MAAO,gBAAeg6C,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,UAAU,IAAI,EAAI,GAAIglB,EAAAhlB,EAAA,EAAW,WAAW,UAAU,kBAAM,IAAsB,CAAtB9uB,GAAA,yBAAsBC,GAAG6zC,EAAAiU,CAAA,EAAmB,MAAM,EAAG,KAAE,wCAIlMnoD,EAEK,MAFA,MAAKqB,GAAA,QAAY6yC,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,QAAQ,IAAI,MACtEj1C,GAAqMi6D,EAAAh6C,EAAA,GAAzL,KAAK,MAAO,gBAAeg6C,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,QAAQ,IAAI,EAAI,GAAIglB,EAAAhlB,EAAA,EAAW,WAAW,QAAQ,kBAAM,IAAoB,CAApB9uB,GAAA,uBAAoBC,GAAG6zC,EAAA+T,CAAA,EAAiB,MAAM,EAAG,KAAE,wCAI1LjoD,EAEK,MAFA,MAAKqB,GAAA,QAAY6yC,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,cAAc,IAAI,MAC5Ej1C,GAA6Ki6D,EAAAh6C,EAAA,GAAjK,KAAK,MAAO,gBAAeg6C,MAAgBA,EAAAhlB,EAAA,EAAW,WAAW,cAAc,IAAI,EAAI,GAAIglB,EAAAhlB,EAAA,EAAW,WAAW,cAAc,kBAAM,IAAe,IAAAhvB,EAAA,KAAAA,EAAA,OAAf,kBAAe,6CAGpKF,EAEM,MAFNo4C,GAEM,CADJn+D,GAA8C4/F,GAAA,YAAxB3lC,EAAAyT,CAAA,6CAAAA,EAAoB,MAAAjnD,EAAA,sCAKlDzmB,GAAci6D,EAAAz4C,EAAA,qECvDtB,IAAI4lF,GAAY,OAAO,eACnBC,GAAsB,OAAO,sBAC7BC,GAAe,OAAO,UAAU,eAChCC,GAAe,OAAO,UAAU,qBAChCC,GAAkB,CAACtjI,EAAKhD,EAAK2B,IAAU3B,KAAOgD,EAAMkjI,GAAUljI,EAAKhD,EAAK,CAAE,WAAY,GAAM,aAAc,GAAM,SAAU,GAAM,MAAA2B,CAAK,CAAE,EAAIqB,EAAIhD,CAAG,EAAI2B,EACtJ4kI,GAAiB,CAAC3hI,EAAGC,IAAM,CAC7B,QAAS+sB,KAAQ/sB,IAAMA,EAAI,IACrBuhI,GAAa,KAAKvhI,EAAG+sB,CAAI,GAC3B00G,GAAgB1hI,EAAGgtB,EAAM/sB,EAAE+sB,CAAI,CAAC,EACpC,GAAIu0G,GACF,QAASv0G,KAAQu0G,GAAoBthI,CAAC,EAChCwhI,GAAa,KAAKxhI,EAAG+sB,CAAI,GAC3B00G,GAAgB1hI,EAAGgtB,EAAM/sB,EAAE+sB,CAAI,CAAC,EAEtC,OAAOhtB,CACT,EAUIvD,GAAcM,GAAU,OAAOA,GAAU,WACzCL,GAAYK,GAAU,OAAOA,GAAU,SACvC6kI,GAAoB7kI,GAAUL,GAASK,CAAK,GAAKA,EAAM,OAAO,OAAS,EACvEsrD,GAAYtrD,GAAU,OAAOA,GAAU,SACvCqrD,GAAerrD,GAAU,OAAOA,EAAU,IAC1CH,GAAYG,GAAU,OAAOA,GAAU,UAAYA,IAAU,KAC7D8kI,GAASzjI,GAAQ0jI,GAAQ1jI,EAAK,KAAK,GAAKwjI,GAAiBxjI,EAAI,GAAG,EAChE2jI,GAAgBrqG,GAAU,OAAO,YAAcA,aAAiB,WAChEsqG,GAAoB5jI,GAAQ0jI,GAAQ1jI,EAAK,WAAW,GAAK6jI,GAAe7jI,EAAI,SAAS,EACrF8jI,GAAkBzkI,GAAMhB,GAAWgB,CAAC,GAAKb,GAASa,CAAC,EACnDwkI,GAAkB7jI,GAAQ,CAACgqD,GAAYhqD,CAAG,IAAM1B,GAAS0B,CAAG,GAAK8jI,GAAe9jI,CAAG,GAAK4jI,GAAiB5jI,CAAG,GAC5G+jI,GAAa/jI,GAAQxB,GAASwB,CAAG,GAAK,CAAC,SAAU,QAAS,QAAS,OAAQ,MAAO,QAAQ,EAAE,MAAOuT,GAAM02C,GAASjqD,EAAIuT,CAAC,CAAC,CAAC,EACzHmwH,GAAU,CAAC1jI,EAAKgkI,KAAaxlI,GAASwB,CAAG,GAAK3B,GAAW2B,CAAG,IAAMgkI,KAAWhkI,EAC7E+T,IAAUnW,GAAM,IAAMA,KAAK,CAAC,EAChC,SAASqmI,GAAK3qG,EAAO,CACnB,OAAOqqG,GAAarqG,CAAK,EAAIA,EAAM,cAAc,CAAC,EAAE,QAAUA,EAAM,OACtE,CACA,SAAS4qG,GAAK5qG,EAAO,CACnB,OAAOqqG,GAAarqG,CAAK,EAAIA,EAAM,cAAc,CAAC,EAAE,QAAUA,EAAM,OACtE,CACA,IAAI6qG,GAAiBxmI,GAAO,CACrBqsD,GAAYrsD,EAAG,MAAM,EAEfA,EAAG,YACZA,EAAG,WAAW,YAAYA,CAAE,EAF5BA,EAAG,OAAM,CAIb,EACIymI,GAA0BpkI,GACxB4jI,GAAiB5jI,CAAG,EACfokI,GAAuBpkI,EAAI,SAAS,EAEzCyjI,GAAMzjI,CAAG,EACJoe,GAAgB,CACrB,QAAS,CACP,OAAOpe,CACT,CACN,CAAK,EAEI,OAAOA,GAAQ,SAAWA,EAAM+H,GAAMmG,EAAMlO,CAAG,CAAC,EAErDqkI,GAA2BrkI,GAAQ,CACrC,GAAI,OAAOA,GAAQ,SACjB,OAAOA,EAET,MAAMqB,EAAQqiI,GAAQ1jI,EAAK,OAAO,GAAKxB,GAASwB,EAAI,KAAK,EAAIA,EAAI,MAAQ,GACnEwzC,EAAYkwF,GAAQ1jI,EAAK,WAAW,GAAKxB,GAASwB,EAAI,SAAS,EAAIA,EAAI,UAAY,GACzF,MAAO,CAAE,UAAWokI,GAAuBpkI,CAAG,EAAG,MAAAqB,EAAO,UAAAmyC,CAAS,CACnE,EACIjJ,GAAY,IAAM,OAAO,OAAW,IAGpC+5F,GAAW,KAAM,CACnB,aAAc,CACZ,KAAK,YAAc,EACrB,CACA,YAAY9V,EAAW,CACrB,OAAO,KAAK,YAAYA,CAAS,GAAK,EACxC,CACA,GAAGA,EAAWvkG,EAAS,CACrB,MAAMmnB,EAAW,KAAK,YAAYo9E,CAAS,EAC3Cp9E,EAAS,KAAKnnB,CAAO,EACrB,KAAK,YAAYukG,CAAS,EAAIp9E,CAChC,CACA,IAAIo9E,EAAWvkG,EAAS,CACtB,MAAMmnB,EAAW,KAAK,YAAYo9E,CAAS,EAC3Cp9E,EAAS,OAAOA,EAAS,QAAQnnB,CAAO,IAAM,EAAG,CAAC,CACpD,CACA,KAAKukG,EAAWl1F,EAAO,CACJ,KAAK,YAAYk1F,CAAS,EAClC,QAASvkG,GAAYA,EAAQqP,CAAK,CAAC,CAC9C,CACF,EACIirG,GAAuB,GAAM,CAAC,KAAM,MAAO,MAAM,EAAE,MAAO1yD,GAAM6xD,GAAQ,EAAG7xD,CAAC,GAAKxzE,GAAW,EAAEwzE,CAAC,CAAC,CAAC,EAMjG2yD,IACH,SAASC,EAAO,CACfA,EAAM,QAAa,UACnBA,EAAM,MAAW,QACjBA,EAAM,QAAa,UACnBA,EAAM,KAAU,OAChBA,EAAM,QAAa,SACrB,GAAGD,KAASA,GAAO,GAAG,EACtB,IAAIE,IACH,SAASC,EAAW,CACnBA,EAAU,SAAc,WACxBA,EAAU,WAAgB,aAC1BA,EAAU,UAAe,YACzBA,EAAU,YAAiB,cAC3BA,EAAU,cAAmB,gBAC7BA,EAAU,aAAkB,cAC9B,GAAGD,KAAaA,GAAW,GAAG,EAC9B,IAAIE,IACH,SAASC,EAAS,CACjBA,EAAQ,IAAS,MACjBA,EAAQ,QAAa,UACrBA,EAAQ,OAAY,SACpBA,EAAQ,MAAW,QACnBA,EAAQ,gBAAqB,iBAC/B,GAAGD,KAAWA,GAAS,GAAG,EAC1B,IAAIE,GAAe,qBAGfC,GAAS,CACX,KAAM,CACJ,KAAM,OACN,QAASP,GAAK,OAClB,EACE,WAAY,CACV,KAAM,CAAC,OAAQ,KAAK,EACpB,QAAS,IAAM,EACnB,EACE,YAAa,CACX,KAAM,QACN,QAAS,EACb,CACA,EACIQ,GAAO,CACT,KAAMD,GAAO,KACb,WAAY,CACV,KAAM,CAAC,OAAQ,QAAS,OAAQ,QAAQ,EACxC,QAAS,EACb,CACA,EACIE,GAAe,CACjB,UAAW,CACT,KAAM,CAAC,OAAQ,OAAQ,SAAU,OAAO,EACxC,QAAS,QACb,EACE,WAAYF,GAAO,WACnB,YAAa,CACX,KAAM,QACN,QAAS,EACb,EACE,UAAW,CACT,KAAM,OACN,QAAS,OACb,CACA,EACIG,GAAe,CACjB,QAAS,CACP,KAAM,CAAC,OAAQ,OAAO,EACtB,QAAS,GACb,EACE,gBAAiB,CACf,KAAM,QACN,QAAS,EACb,EACE,UAAW,CACT,KAAM,QACN,QAAS,EACb,CACA,EACI3lG,GAAa,CACf,WAAY,CACV,KAAM,CAAC,OAAQ,MAAM,EACrB,QAAS,GAAGulG,EAAY,UAC5B,CACA,EACIK,GAAa,CACf,SAAU,CACR,KAAM,OACN,QAAST,GAAS,SACtB,EACE,UAAWK,GAAO,YAClB,iBAAkB,CAChB,KAAM,OACN,QAAS,EACb,EACE,iBAAkBA,GAAO,YACzB,aAAcA,GAAO,YACrB,aAAcA,GAAO,YACrB,QAASG,GAAa,QACtB,gBAAiBA,GAAa,gBAC9B,eAAgBH,GAAO,WACvB,cAAeA,GAAO,WACtB,KAAMC,GAAK,WACX,YAAaC,GAAa,UAC1B,qBAAsBA,GAAa,WACnC,uBAAwBA,GAAa,YACrC,cAAe,CACb,KAAM,OACN,QAAS,KAAO,CACd,UAAW,QACX,iBAAkB,OACxB,EACA,EACE,IAAK,CACH,KAAM,QACN,QAAS,EACb,EACE,SAAU,CACR,KAAM,OACN,SAAU,GACV,QAAS,IAAM,IAAIX,EACvB,CACA,EACIc,GAAQ,CACV,GAAI,CACF,KAAM,CAAC,OAAQ,MAAM,EACrB,SAAU,GACV,QAAS,CACb,EACE,KAAML,GAAO,KACb,QAAS,CACP,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAC/B,SAAU,GACV,QAAS,EACb,EACE,QAAS,CACP,KAAM,SACN,QAAS,MACb,EACE,QAAS,CACP,KAAM,SACN,QAAS,MACb,CACA,EACIM,GAAY,CACd,UAAW,CACT,KAAM,CACJ,OACA,QACN,EACI,QAAS,IAAM,SAAS,IAC5B,EACE,YAAaN,GAAO,YACpB,UAAW,CACT,KAAM,OACN,QAAS,EACb,EACE,WAAYxlG,GAAW,WACvB,cAAe,OACf,mBAAoB,CAClB,KAAM,SACN,QAAU+lG,GAAUA,CACxB,EACE,aAAc,CACZ,KAAM,SACN,QAAUC,GAAWA,CACzB,EACE,mBAAoBR,GAAO,WAC3B,UAAW,SACX,gBAAiB,CAAC,QAAS,MAAM,CACnC,EACIS,GAAyB,CAC3B,WAAAL,GACA,MAAAC,GACA,UAAAC,GACA,aAAAH,GACA,KAAAF,GACA,WAAAzlG,GACA,aAAA0lG,EACF,EAOIQ,GAAwBC,GAAiB,CAC3C,KAAM,gBACN,MAAOF,GAAuB,aAC9B,MAAO,CACL,MAAO,CACL,SAAU,EAChB,CACE,EACA,SAAU,CACR,OAAQ,CACN,MAAO,CACL,kBAAmB,GAAG,KAAK,OAAO,KAClC,mBAAoB,KAAK,UAAY,UAAY,SACjD,QAAS,KAAK,gBAAkB,EAAI,CAC5C,CACI,EACA,SAAU,CACR,OAAO,KAAK,SAAW,GAAGV,EAAY,iBAAmB,EAC3D,CACJ,EACE,MAAO,CACL,SAAU,CACR,KAAK,SAAW,GAChB,KAAK,UAAU,IAAM,KAAK,SAAW,EAAI,CAC3C,CACJ,EACE,SAAU,CACR,KAAK,IAAI,iBAAiB,eAAgB,KAAK,cAAc,CAC/D,EACA,eAAgB,CACd,KAAK,IAAI,oBAAoB,eAAgB,KAAK,cAAc,CAClE,EACA,QAAS,CACP,gBAAiB,CACf,KAAK,MAAM,aAAa,CAC1B,CACJ,CACA,CAAC,EAID,SAASp8G,GAAO6gC,EAAMxH,EAAQ,CAC5B,OAAOL,EAAU,EAAIC,EAAoB,MAAO,CAC9C,MAAOgkF,GAAgBp8E,EAAK,KAAK,EACjC,MAAOrG,GAAgBqG,EAAK,OAAO,CACvC,EAAK,KAAM,CAAC,CACZ,CAGAk8E,GAAsB,OAAS/8G,GAC/B,IAAIk9G,GAAyBH,GAIzBI,GAAwBC,GAAiB,CAC3C,KAAM,gBACN,MAAON,GAAuB,aAC9B,SAAU,CACR,iBAAkB,CAChB,OAAI,KAAK,YAAc,GACdpB,GAAuB,KAAK,SAAS,EAEvC,QACT,EACA,SAAU,CACR,MAAMv3C,EAAU,CAAC,GAAGi4C,EAAY,gBAAgB,EAChD,OAAI,KAAK,aACPj4C,EAAQ,KAAK,eAAe,EAEvBA,EAAQ,OAAO,KAAK,UAAU,CACvC,CACJ,CACA,CAAC,EAIGjrC,GAA6BK,GAAiB,KAAQ,EAC1D,SAAS9nB,GAAQovB,EAAMxH,EAAQ,CAC7B,OAAOgkF,EAAW,EAAIv8E,GAAaw8E,GAAyBz8E,EAAK,eAAe,EAAG08E,GAAY,CAC7F,aAAc18E,EAAK,UACnB,MAAOA,EAAK,OAChB,EAAKA,EAAK,MAAM,EAAG,CACf,QAAS28E,GAAS,IAAM,CACtBtkF,EACN,CAAK,EACD,EAAG,CACP,EAAK,GAAI,CAAC,aAAc,OAAO,CAAC,CAChC,CAGAikF,GAAsB,OAAS1rG,GAC/B,IAAIgsG,GAAyBN,GAMzBO,GAAwB,GAIxB1N,GAAc,CAChB,cAAe,OACf,UAAW,QACX,cAAe,MACf,YAAa,eACb,MAAO,yCACP,KAAM,MACN,MAAO,6BACP,QAAS,aACX,EACI52E,GAA6BD,EAAoB,OAAQ,CAC3D,KAAM,eACN,EAAG,sWACL,EAAG,KAAM,EAAE,EACPG,GAAa,CACfF,EACF,EACA,SAASukF,GAAQ98E,EAAMxH,EAAQ,CAC7B,OAAOukF,EAAW,EAAIC,EAAqB,MAAO7N,GAAa12E,EAAU,CAC3E,CAGAokF,GAAsB,OAASC,GAC/B,IAAIG,GAAyBJ,GAGzBK,GAAqB,GAIrB9N,GAAc,CAChB,cAAe,OACf,UAAW,QACX,cAAe,MACf,YAAa,cACb,MAAO,wCACP,KAAM,MACN,MAAO,6BACP,QAAS,aACX,EACIS,GAA8BsN,EAAqB,OAAQ,CAC7D,KAAM,eACN,EAAG,iZACL,EAAG,KAAM,EAAE,EACPC,GAAc,CAChBvN,EACF,EACA,SAASwN,GAAQr9E,EAAMxH,EAAQ,CAC7B,OAAO8kF,EAAW,EAAIC,EAAqB,MAAOnO,GAAagO,EAAW,CAC5E,CAGAF,GAAmB,OAASG,GAC5B,IAAIG,GAAsBN,GAGtBO,GAAwB,GAIxBjE,GAAc,CAChB,cAAe,OACf,UAAW,QACX,cAAe,MACf,YAAa,qBACb,MAAO,+CACP,KAAM,MACN,MAAO,6BACP,QAAS,aACX,EACI1J,GAA8B4N,EAAqB,OAAQ,CAC7D,KAAM,eACN,EAAG,gYACL,EAAG,KAAM,EAAE,EACPpN,GAAc,CAChBR,EACF,EACA,SAAS6N,GAAQ39E,EAAMxH,EAAQ,CAC7B,OAAOolF,EAAW,EAAIC,EAAqB,MAAOrE,GAAalJ,EAAW,CAC5E,CAGAmN,GAAsB,OAASE,GAC/B,IAAIG,GAAyBL,GAGzBM,GAAsB,GAItBzO,GAAc,CAChB,cAAe,OACf,UAAW,QACX,cAAe,MACf,YAAa,uBACb,MAAO,iDACP,KAAM,MACN,MAAO,6BACP,QAAS,aACX,EACIS,GAA8BiO,EAAqB,OAAQ,CAC7D,KAAM,eACN,EAAG,kcACL,EAAG,KAAM,EAAE,EACPzN,GAAc,CAChBR,EACF,EACA,SAASkO,GAAQj+E,EAAMxH,EAAQ,CAC7B,OAAO0lF,EAAW,EAAIC,EAAqB,MAAO7O,GAAaiB,EAAW,CAC5E,CAGAwN,GAAoB,OAASE,GAC7B,IAAIG,GAAuBL,GAGvBM,GAAiBC,GAAiB,CACpC,KAAM,SACN,MAAOrC,GAAuB,KAC9B,SAAU,CACR,oBAAqB,CACnB,OAAO9B,GAAQ,KAAK,WAAY,cAAc,EAAI,KAAK,UAAU,KAAK,WAAW,YAAY,EAAI,EACnG,EACA,iBAAkB,CAChB,OAAIplI,GAAS,KAAK,UAAU,EACnB,KAAK,UAAU,KAAK,UAAU,EAC5BolI,GAAQ,KAAK,WAAY,WAAW,EACtC,KAAK,UAAU,KAAK,WAAW,SAAS,EAE1C,EACT,EACA,eAAgB,CACd,OAAIA,GAAQ,KAAK,WAAY,SAAS,EAC7B,KAAK,UAAU,KAAK,WAAW,QAAS,GAAG,EAE7C,GACT,EACA,eAAgB,CACd,OAAO,KAAK,gBAAgB,OAAS,CACvC,EACA,WAAY,CACV,OAAI,KAAK,cACA,KAAK,cAEVG,GAAe,KAAK,UAAU,EACzBO,GAAuB,KAAK,UAAU,EAExC,KAAK,iBACd,EACA,mBAAoB,CAQlB,MAPc,CACZ,CAACI,GAAK,OAAO,EAAGuC,GAChB,CAACvC,GAAK,IAAI,EAAGuC,GACb,CAACvC,GAAK,OAAO,EAAGgC,GAChB,CAAChC,GAAK,KAAK,EAAGmD,GACd,CAACnD,GAAK,OAAO,EAAG6C,EACxB,EACmB,KAAK,IAAI,CACxB,EACA,aAAc,CACZ,MAAMx6C,EAAU,CAAC,GAAGi4C,EAAY,QAAQ,EACxC,OAAI,KAAK,cACAj4C,EAAQ,OAAO,KAAK,eAAe,EAErCA,CACT,CACJ,EACE,QAAS,CACP,UAAUluF,EAAOmpI,EAAQ,GAAI,CAC3B,OAAOtE,GAAiB7kI,CAAK,EAAIA,EAAM,KAAI,EAAKmpI,CAClD,CACJ,CACA,CAAC,EAID,SAASC,GAAQx+E,EAAMxH,EAAQ,CAC7B,OAAOimF,EAAW,EAAIC,GAAcC,GAA0B3+E,EAAK,SAAS,EAAG,CAC7E,MAAO4+E,GAAiB5+E,EAAK,WAAW,CAC5C,EAAK,CACD,QAAS6+E,GAAU,IAAM,CACvBC,GAAkBnmF,GAAiBqH,EAAK,kBAAkB,EAAG,CAAC,CACpE,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,OAAO,CAAC,CACjB,CAGAq+E,GAAe,OAASG,GACxB,IAAIO,GAAkBV,GAGlBW,GAAkBC,GAAiB,CACrC,KAAM,UACN,WAAY,CAAE,YAAa5C,GAAwB,YAAaO,GAAwB,KAAMmC,EAAe,EAC7G,aAAc,GACd,MAAO,OAAO,OAAO,GAAI9C,GAAuB,WAAYA,GAAuB,KAAK,EACxF,MAAO,CASL,MARa,CACX,UAAW,GACX,mBAAoB,GACpB,aAAc,GACd,UAAW,EACX,QAAS,CAAE,EAAG,EAAG,EAAG,CAAC,EACrB,SAAU,EAChB,CAEE,EACA,SAAU,CACR,SAAU,CACR,MAAM34C,EAAU,CACd,GAAGi4C,EAAY,UACf,GAAGA,EAAY,YAAY,KAAK,IAAI,GACpC,GAAG,KAAK,QAAQ,EACxB,EAAQ,OAAO,KAAK,cAAc,EAC5B,OAAI,KAAK,oBACPj4C,EAAQ,KAAK,oBAAoB,EAE/B,KAAK,KACPA,EAAQ,KAAK,GAAGi4C,EAAY,cAAc,EAErCj4C,CACT,EACA,aAAc,CAIZ,MAHgB,CACd,GAAGi4C,EAAY,WAAWxmI,GAAS,KAAK,OAAO,EAAI,OAAS,gBAAgB,EACpF,EAAQ,OAAO,KAAK,aAAa,CAE7B,EACA,gBAAiB,CACf,OAAI,KAAK,YAAc,KAAK,QAAQ,EAC3B,GACE,KAAK,aACP,CACL,UAAW,cAAc,KAAK,SAAS,MACvC,QAAS,EAAI,KAAK,IAAI,KAAK,UAAY,KAAK,eAAe,CACrE,EAEe,CACL,WAAY,+BACZ,UAAW,gBACX,QAAS,CACnB,CAEI,EACA,WAAY,CACV,OAAO,KAAK,aAAe,KAAK,QAAQ,EAAI,KAAK,UAAY,CAC/D,EACA,iBAAkB,CAChB,OAAIylI,GAAU,KAAK,QAAQ,GACjB,KAAK,SAAS,MAAQ,KAAK,SAAS,MAAQ,KAAK,iBAEpD,CACT,CACJ,EACE,SAAU,CACJ,KAAK,WACP,KAAK,eAAc,EAEjB,KAAK,kBACP,KAAK,WAAU,CAEnB,EACA,eAAgB,CACV,KAAK,WACP,KAAK,iBAAgB,EAEnB,KAAK,kBACP,KAAK,aAAY,CAErB,EACA,QAAS,CACP,QAAAL,GACA,uBAAAU,GACA,YAAa,CACX,KAAK,SAAS,KAAKQ,GAAO,QAAS,KAAK,EAAE,CAC5C,EACA,cAAe,CACT,KAAK,SACP,KAAK,QAAQ,KAAK,UAAU,EAE1B,KAAK,eACH,CAAC,KAAK,cAAgB,KAAK,YAAc,KAAK,QAAQ,IACxD,KAAK,WAAU,CAGrB,EACA,gBAAiB,CACf,KAAK,WAAU,CACjB,EACA,YAAa,CACP,KAAK,eACP,KAAK,UAAY,GAErB,EACA,WAAY,CACN,KAAK,eACP,KAAK,UAAY,GAErB,EACA,YAAa,CACX,KAAK,UAAY,EACnB,EACA,WAAY,CACV,KAAK,UAAY,EACnB,EACA,YAAa,CACX,iBAAiB,OAAQ,KAAK,UAAU,EACxC,iBAAiB,QAAS,KAAK,SAAS,CAC1C,EACA,cAAe,CACb,oBAAoB,OAAQ,KAAK,UAAU,EAC3C,oBAAoB,QAAS,KAAK,SAAS,CAC7C,EACA,gBAAiB,CACf,MAAMpqD,EAAU,KAAK,IACrBA,EAAQ,iBAAiB,aAAc,KAAK,YAAa,CACvD,QAAS,EACjB,CAAO,EACDA,EAAQ,iBAAiB,YAAa,KAAK,WAAW,EACtD,iBAAiB,YAAa,KAAK,WAAY,CAAE,QAAS,GAAO,EACjE,iBAAiB,YAAa,KAAK,UAAU,EAC7C,iBAAiB,WAAY,KAAK,SAAS,EAC3C,iBAAiB,UAAW,KAAK,SAAS,CAC5C,EACA,kBAAmB,CACjB,MAAMA,EAAU,KAAK,IACrBA,EAAQ,oBAAoB,aAAc,KAAK,WAAW,EAC1DA,EAAQ,oBAAoB,YAAa,KAAK,WAAW,EACzD,oBAAoB,YAAa,KAAK,UAAU,EAChD,oBAAoB,YAAa,KAAK,UAAU,EAChD,oBAAoB,WAAY,KAAK,SAAS,EAC9C,oBAAoB,UAAW,KAAK,SAAS,CAC/C,EACA,YAAYlhD,EAAO,CACjB,KAAK,aAAe,GACpB,KAAK,QAAU,CAAE,EAAG2qG,GAAK3qG,CAAK,EAAG,EAAG4qG,GAAK5qG,CAAK,CAAC,EAC/C,KAAK,UAAY2qG,GAAK3qG,CAAK,EAC3B,KAAK,SAAW,KAAK,IAAI,sBAAqB,CAChD,EACA,WAAWA,EAAO,CACZ,KAAK,eACPA,EAAM,eAAc,EAChB,KAAK,YACP,KAAK,UAAY,IAEnB,KAAK,QAAU,CAAE,EAAG2qG,GAAK3qG,CAAK,EAAG,EAAG4qG,GAAK5qG,CAAK,CAAC,EAEnD,EACA,WAAY,CACN,KAAK,eACH,KAAK,IAAI,KAAK,SAAS,GAAK,KAAK,iBACnC,KAAK,mBAAqB,GAC1B,KAAK,UAAU,IAAM,KAAK,WAAU,CAAE,GAEtC,WAAW,IAAM,CACf,KAAK,aAAe,GAChByqG,GAAU,KAAK,QAAQ,GAAK,KAAK,cAAgB,KAAK,SAAS,QAAU,KAAK,QAAQ,GAAK,KAAK,QAAQ,GAAK,KAAK,SAAS,KAAO,KAAK,SAAS,MAAQ,KAAK,QAAQ,GAAK,KAAK,QAAQ,GAAK,KAAK,SAAS,MAC5M,KAAK,UAAY,GAEjB,KAAK,UAAY,EAErB,CAAC,EAGP,CACJ,CACA,CAAC,EAIGjL,GAAc,CAAC,MAAM,EACzB,SAAS2P,GAAQl/E,EAAMxH,EAAQ,CAC7B,MAAM2mF,EAAkBC,GAAkB,MAAM,EAC1CC,EAAyBD,GAAkB,aAAa,EACxDE,EAAyBF,GAAkB,aAAa,EAC9D,OAAOG,EAAW,EAAIC,EAAqB,MAAO,CAChD,MAAOC,GAAiBz/E,EAAK,OAAO,EACpC,MAAO0/E,GAAiB1/E,EAAK,cAAc,EAC3C,QAASxH,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,cAAgBA,EAAK,aAAa,GAAGlhD,CAAI,GAC9F,aAAc05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,YAAcA,EAAK,WAAW,GAAGlhD,CAAI,GAC/F,aAAc05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,WAAaA,EAAK,UAAU,GAAGlhD,CAAI,EACjG,EAAK,CACDkhD,EAAK,MAAQu/E,IAAeI,GAAcR,EAAiB,CACzD,IAAK,EACL,cAAen/E,EAAK,KACpB,KAAMA,EAAK,IACjB,EAAO,KAAM,EAAG,CAAC,cAAe,MAAM,CAAC,GAAK4/E,EAAoB,OAAQ,EAAI,EACxEC,EAAqB,MAAO,CAC1B,KAAM7/E,EAAK,cAAc,WAAa,QACtC,MAAOy/E,GAAiBz/E,EAAK,WAAW,CAC9C,EAAO,CACD,OAAOA,EAAK,SAAY,UAAYu/E,EAAW,EAAIC,EAAqB3mF,GAAW,CAAE,IAAK,GAAK,CAC7FinF,GAAkBC,GAAkB//E,EAAK,OAAO,EAAG,CAAC,CAC5D,EAAS,IAAI,IAAMu/E,EAAW,EAAII,GAAcK,GAA0BhgF,EAAK,uBAAuBA,EAAK,OAAO,CAAC,EAAGigF,GAAa,CAC3H,IAAK,EACL,WAAYjgF,EAAK,EACzB,EAASA,EAAK,QAAQA,EAAK,QAAS,OAAO,EAAIA,EAAK,QAAQ,MAAQ,GAAIkgF,GAAYlgF,EAAK,QAAQA,EAAK,QAAS,WAAW,EAAIA,EAAK,QAAQ,UAAY,EAAE,EAAG,CAAE,aAAcA,EAAK,UAAU,CAAE,EAAG,KAAM,GAAI,CAAC,WAAY,cAAc,CAAC,EACtO,EAAO,GAAIuvE,EAAW,EAChBvvE,EAAK,aAAeu/E,EAAW,EAAII,GAAcN,EAAwB,CACzE,IAAK,EACL,UAAWr/E,EAAK,YAChB,cAAeA,EAAK,qBACpB,gBAAiBA,EAAK,uBACtB,aAAcA,EAAK,cAAc,iBACjC,QAASjH,GAAeiH,EAAK,WAAY,CAAC,MAAM,CAAC,CACvD,EAAO,KAAM,EAAG,CAAC,YAAa,cAAe,gBAAiB,aAAc,SAAS,CAAC,GAAK4/E,EAAoB,OAAQ,EAAI,EACvH5/E,EAAK,SAAWu/E,IAAeI,GAAcL,EAAwB,CACnE,IAAK,EACL,aAAct/E,EAAK,UACnB,oBAAqBA,EAAK,gBAC1B,QAASA,EAAK,QACd,aAAcA,EAAK,cACzB,EAAO,KAAM,EAAG,CAAC,aAAc,oBAAqB,UAAW,cAAc,CAAC,GAAK4/E,EAAoB,OAAQ,EAAI,CACnH,EAAK,EAAE,CACP,CAGAZ,GAAgB,OAASE,GACzB,IAAIiB,GAAmBnB,GAInBoB,GAAuBC,GAAiB,CAC1C,KAAM,eACN,MAAOpE,GAAuB,WAC9B,MAAO,CAAC,OAAO,EACf,QAAS,CACP,QAAA9B,GACA,MAAM/lI,EAAI,CACJA,aAAc,cAChBA,EAAG,MAAM,KAAOA,EAAG,WAAa,KAChCA,EAAG,MAAM,IAAMA,EAAG,UAAY,KAC9BA,EAAG,MAAM,MAAQ,iBAAiBA,CAAE,EAAE,MACtCA,EAAG,MAAM,SAAW,WAExB,CACJ,CACA,CAAC,EAID,SAASksI,GAAQtgF,EAAMxH,EAAQ,CAC7B,OAAO+nF,EAAW,EAAIC,GAAcC,GAAkB,CACpD,IAAK,MACL,qBAAsBzgF,EAAK,WAAW,MAAQA,EAAK,WAAW,MAAQ,GAAGA,EAAK,UAAU,gBACxF,aAAcA,EAAK,WAAW,KAAOA,EAAK,WAAW,KAAO,GAAGA,EAAK,UAAU,QAC9E,qBAAsBA,EAAK,WAAW,MAAQA,EAAK,WAAW,MAAQ,GAAGA,EAAK,UAAU,gBACxF,QAASA,EAAK,KAClB,EAAK,CACD,QAAS0gF,GAAU,IAAM,CACvB3gF,GAAYC,EAAK,OAAQ,SAAS,CACxC,CAAK,EACD,EAAG,CACP,EAAK,EAAG,CAAC,qBAAsB,aAAc,qBAAsB,SAAS,CAAC,CAC7E,CAGAogF,GAAqB,OAASE,GAC9B,IAAIK,GAAwBP,GAGxBQ,GAA2BC,GAAiB,CAC9C,KAAM,oBACN,SAAU,CACR,KAAM,EACV,EACE,WAAY,CAAE,MAAOV,GAAkB,aAAcQ,EAAqB,EAC1E,MAAO,OAAO,OAAO,GAAI1E,GAAuB,WAAYA,GAAuB,UAAWA,GAAuB,UAAU,EAC/H,MAAO,CAOL,MANa,CACX,MAAO,EACP,UAAW,OAAO,OAAOd,EAAQ,EACjC,OAAQ,GACR,SAAU,EAChB,CAEE,EACA,SAAU,CACR,YAAa,CACX,OAAO,OAAO,OAAO,KAAK,MAAM,CAClC,EACA,gBAAiB,CACf,OAAO,KAAK,SAAS,aAAa,KAAK,UAAU,CACnD,CACJ,EACE,aAAc,CACZ,MAAM2F,EAAS,KAAK,SACpBA,EAAO,GAAGzF,GAAO,IAAK,KAAK,QAAQ,EACnCyF,EAAO,GAAGzF,GAAO,MAAO,KAAK,WAAW,EACxCyF,EAAO,GAAGzF,GAAO,QAAS,KAAK,YAAY,EAC3CyF,EAAO,GAAGzF,GAAO,OAAQ,KAAK,WAAW,EACzCyF,EAAO,GAAGzF,GAAO,gBAAiB,KAAK,cAAc,EACrD,KAAK,SAAW,KAAK,MACvB,EACA,SAAU,CACR,KAAK,MAAM,KAAK,SAAS,CAC3B,EACA,QAAS,CACP,MAAM,MAAMhuH,EAAW,CACjBvY,GAAWuY,CAAS,IACtBA,EAAY,MAAMA,EAAS,GAE7ButH,GAAc,KAAK,GAAG,EACtBvtH,EAAU,YAAY,KAAK,GAAG,CAChC,EACA,SAASvV,EAAO,CACT2oD,GAAY3oD,EAAM,EAAE,IACvB,KAAK,OAAOA,EAAM,EAAE,EAAIA,EAE5B,EACA,SAASspC,EAAQ,CACfA,EAAO,QAAU05F,GAAwB15F,EAAO,OAAO,EACvD,MAAMtpC,EAAQ,OAAO,OAAO,GAAI,KAAK,SAAUspC,EAAO,MAAQ,KAAK,SAAS,eAAiB,KAAK,SAAS,cAAcA,EAAO,IAAI,EAAGA,CAAM,EACvI26F,EAAQ,KAAK,SAAS,mBAAmBjkI,EAAO,KAAK,UAAU,EACrEikI,GAAS,KAAK,SAASA,CAAK,CAC9B,EACA,aAAa7xH,EAAI,CACf,MAAM6xH,EAAQ,KAAK,OAAO7xH,CAAE,EACxB,CAACu2C,GAAYs7E,CAAK,GAAK,CAACt7E,GAAYs7E,EAAM,OAAO,GACnDA,EAAM,QAAO,EAEf,OAAO,KAAK,OAAO7xH,CAAE,CACvB,EACA,aAAc,CACZ,OAAO,KAAK,KAAK,MAAM,EAAE,QAASA,GAAO,CACvC,KAAK,aAAaA,CAAE,CACtB,CAAC,CACH,EACA,kBAAkBq6B,EAAU,CAC1B,MAAMy3F,EAAS,KAAK,eAAe,OAAQD,GAAUA,EAAM,WAAax3F,CAAQ,EAAE,MAAM,EAAG,KAAK,SAAS,SAAS,EAClH,OAAO,KAAK,SAAS,YAAcy3F,EAAO,QAAO,EAAKA,CACxD,EACA,eAAehxG,EAAQ,CAChBy1B,GAAYz1B,EAAO,SAAS,GAC/B,KAAK,MAAMA,EAAO,SAAS,EAE7B,KAAK,SAAW,OAAO,OAAO,GAAI,KAAK,SAAUA,CAAM,CACzD,EACA,YAAY,CACV,GAAA9gB,EACA,QAAAnD,EACA,OAAAsjH,CACN,EAAO,CACG,KAAK,OAAOngH,CAAE,GACZnD,EAAQ,SAAWA,EAAQ,UAAY,KAAK,OAAOmD,CAAE,EAAE,SACzDnD,EAAQ,UAEV,KAAK,SAAS,OAAO,OAAO,GAAI,KAAK,OAAOmD,CAAE,EAAGnD,CAAO,CAAC,GAChDsjH,GACT,KAAK,SAAS,OAAO,OAAO,GAAI,CAAE,GAAAngH,CAAE,EAAInD,CAAO,CAAC,CAEpD,EACA,WAAWw9B,EAAU,CAEnB,MADgB,CAAC,GAAGg3F,EAAY,cAAeh3F,CAAQ,EACxC,OAAO,KAAK,SAAS,kBAAkB,CACxD,CACJ,CACA,CAAC,EAID,SAASw8F,GAAS/gF,EAAMxH,EAAQ,CAC9B,MAAMwoF,EAAmBC,GAAmB,OAAO,EAC7CC,EAA0BD,GAAmB,cAAc,EACjE,OAAOE,EAAY,EAAIC,EAAqB,MAAO,KAAM,EACtDD,EAAa,EAAI,EAAGC,EAAqBC,GAAY,KAAMvoF,GAAYkH,EAAK,UAAYsP,IAChF6xE,EAAY,EAAIC,EAAqB,MAAO,CAAE,IAAK9xE,GAAO,CAC/D/8B,GAAa2uG,EAAyB,CACpC,WAAYlhF,EAAK,SAAS,WAC1B,MAAOshF,GAAiBthF,EAAK,WAAWsP,CAAG,CAAC,CACtD,EAAW,CACD,QAASiyE,GAAU,IAAM,EACtBJ,EAAa,EAAI,EAAGC,EAAqBC,GAAY,KAAMvoF,GAAYkH,EAAK,kBAAkBsP,CAAG,EAAIysE,IAC7FoF,EAAY,EAAIK,GAAcR,EAAkBS,GAAa,CAClE,IAAK1F,EAAM,EAC3B,EAAiBA,CAAK,EAAG,KAAM,EAAE,EACpB,EAAG,GAAG,EACnB,CAAW,EACD,EAAG,CACb,EAAW,KAAM,CAAC,aAAc,OAAO,CAAC,CACxC,CAAO,EACF,EAAG,GAAG,EACX,CAAG,CACH,CAGA6E,GAAyB,OAASG,GAClC,IAAIW,GAA4Bd,GAG5Be,GAAiB,CAACxyF,EAAgB,GAAIyyF,EAAiB,KAAS,CAClE,MAAMd,EAAS3xF,EAAc,SAAWA,EAAc,UAAY,IAAI4rF,GAClE6G,GACF73H,GAAS,IAAM,CACb,MAAM2Y,EAAMke,GAAU8gG,GAA2B1H,GAAe,GAAI7qF,CAAa,CAAC,EAC5E/0B,EAAYsI,EAAI,MAAM,SAAS,cAAc,KAAK,CAAC,EACnDzR,EAAYk+B,EAAc,UAIhC,GAHKsR,GAAYxvC,CAAS,GACxBA,EAAUmJ,EAAWsI,CAAG,EAEtBysB,EAAc,gBAAiB,CACjC,MAAM0yF,EAAU1yF,EAAc,gBAC1B0yF,IAAY,GACd,QAAQ,KAAK,IAAItG,EAAY,+CAA+C,GAE5E74G,EAAI,SAAS,WAAam/G,EAAQ,SAAS,WAC3Cn/G,EAAI,SAAS,WAAam/G,EAAQ,SAAS,WAC3Cn/G,EAAI,SAAS,OAASm/G,EAAQ,SAAS,OACvCn/G,EAAI,SAAS,SAAWm/G,EAAQ,SAAS,SACzCn/G,EAAI,OAAO,iBAAmBm/G,EAAQ,OAAO,iBAEjD,CACF,CAAC,EAEH,MAAM9F,EAAQ,CAAC3oG,EAASrsB,IAAY,CAClC,MAAMjP,EAAQ,OAAO,OAAO,GAAI,CAAE,GAAI0S,GAAK,EAAI,KAAMywH,GAAK,OAAO,EAAIl0H,EAAS,CAC5E,QAAAqsB,CACN,CAAK,EACD,OAAA0tG,EAAO,KAAKzF,GAAO,IAAKvjI,CAAK,EACtBA,EAAM,EACf,EACAikI,EAAM,MAAQ,IAAM+E,EAAO,KAAKzF,GAAO,MAAO,MAAM,EACpDU,EAAM,eAAkB/wG,GAAW,CACjC81G,EAAO,KAAKzF,GAAO,gBAAiBrwG,CAAM,CAC5C,EACA+wG,EAAM,QAAW7xH,GAAO,CACtB42H,EAAO,KAAKzF,GAAO,QAASnxH,CAAE,CAChC,EACA,SAAS43H,EAAY53H,EAAI,CAAE,QAAAkpB,EAAS,QAAArsB,CAAO,EAAIsjH,EAAS,GAAO,CAC7D,MAAMzsG,EAAM,OAAO,OAAO,GAAI7W,EAAS,CAAE,QAAAqsB,EAAS,EAClD0tG,EAAO,KAAKzF,GAAO,OAAQ,CACzB,GAAAnxH,EACA,QAAS0T,EACT,OAAAysG,CACN,CAAK,CACH,CACA,OAAA0R,EAAM,OAAS+F,EACf/F,EAAM,QAAU,CAAC3oG,EAASrsB,IAAYg1H,EAAM3oG,EAAS,OAAO,OAAO,GAAIrsB,EAAS,CAAE,KAAMk0H,GAAK,OAAO,CAAE,CAAC,EACvGc,EAAM,KAAO,CAAC3oG,EAASrsB,IAAYg1H,EAAM3oG,EAAS,OAAO,OAAO,GAAIrsB,EAAS,CAAE,KAAMk0H,GAAK,IAAI,CAAE,CAAC,EACjGc,EAAM,MAAQ,CAAC3oG,EAASrsB,IAAYg1H,EAAM3oG,EAAS,OAAO,OAAO,GAAIrsB,EAAS,CAAE,KAAMk0H,GAAK,KAAK,CAAE,CAAC,EACnGc,EAAM,QAAU,CAAC3oG,EAASrsB,IAAYg1H,EAAM3oG,EAAS,OAAO,OAAO,GAAIrsB,EAAS,CAAE,KAAMk0H,GAAK,OAAO,CAAE,CAAC,EAChGc,CACT,EAGIgG,GAA2B,IAAM,CACnC,MAAMhG,EAAQ,IAAM,QAAQ,KAAK,IAAIR,EAAY,qCAAqC,EACtF,OAAO,IAAI,MAAMQ,EAAO,CACtB,KAAM,CACJ,OAAOA,CACT,CACJ,CAAG,CACH,EACA,SAASiG,GAAqBC,EAAmB,CAC/C,OAAKjhG,GAAS,EAGVg6F,GAAoBiH,CAAiB,EAChCN,GAAe,CAAE,SAAUM,CAAiB,EAAI,EAAK,EAEvDN,GAAeM,EAAmB,EAAI,EALpCF,GAAwB,CAMnC,CACA,IAAIG,GAAoB,OAAO,mBAAmB,EAC9CC,GAAiB,IAAIpH,GACrBqH,GAA0B,CAACC,EAAKt7H,IAAY,CACdA,GAAQ,kBAAqB,KAC3DA,EAAQ,gBAAkBs7H,GAE5B,MAAMC,EAAQN,GAAqBhI,GAAe,CAChD,SAAUmI,EACd,EAAKp7H,CAAO,CAAC,EACXs7H,EAAI,QAAQH,GAAmBI,CAAK,CACtC,EAOIC,GAAYC,GAAa,CAI3B,MAAMzG,EAAQtqH,GAAkB,EAAK8O,GAAO2hH,GAAmB,MAAM,EAAI,OACzE,OAAOnG,GAAgBiG,GAAqBG,EAAc,CAC5D,EACIM,GAAcL,4YCjjClB,MAAMtqI,EAAQogD,oBAQZE,EAyCM,YAxCYtgD,EAAM,OAAS00F,EAAAyuC,EAAA,EAAK,SAClC9iF,IAAAC,EAKM,MALNC,GAKM,CAJJC,EAEI,UADFA,EAAkC,cAAAK,GAAvB7gD,EAAM,KAAK,OAExBwgD,EAAoC,QAA9B,UAAQxgD,EAAM,gCAGRA,EAAM,OAAS00F,EAAAyuC,EAAA,EAAK,MAClC9iF,IAAAC,EAKM,MALNK,GAKM,CAJJH,EAEI,UADFA,EAAkC,cAAAK,GAAvB7gD,EAAM,KAAK,OAExBwgD,EAAoC,QAA9B,UAAQxgD,EAAM,gCAGRA,EAAM,OAAS00F,EAAAyuC,EAAA,EAAK,OAClC9iF,IAAAC,EAKM,MALNa,GAKM,CAJJX,EAEI,UADFA,EAAkC,cAAAK,GAAvB7gD,EAAM,KAAK,OAExBwgD,EAAoC,QAA9B,UAAQxgD,EAAM,gCAGRA,EAAM,OAAS00F,EAAAyuC,EAAA,EAAK,SAClC9iF,IAAAC,EAKM,MALNs4C,GAKM,CAJJp4C,EAEI,UADFA,EAAkC,cAAAK,GAAvB7gD,EAAM,KAAK,OAExBwgD,EAAoC,QAA9B,UAAQxgD,EAAM,gCAGRA,EAAM,OAAS00F,EAAAyuC,EAAA,EAAK,SAClC9iF,IAAAC,EAKM,MALNw4C,GAKM,CAJJt4C,EAEI,UADFA,EAAkC,cAAAK,GAAvB7gD,EAAM,KAAK,OAExBwgD,EAAoC,QAA9B,UAAQxgD,EAAM,sCC7CrB,SAAS4qI,GAAallI,EAAY+oE,EAAe/5B,EAAiBm2F,EAA2B,GAAO57H,EAAwB,CACnHw7H,GAAA,EACE,CAEd,UAAWK,GAGX,MAAO,CACL,KAAAplI,EACA,MAAA+oE,EACA,QAAA/5B,CAAA,CACF,EAEa,CACb,QAASm2F,EAAkB,GAAQ,OACnC,KAAAnlI,EACA,GAAGuJ,CAAA,CACJ,CACH,CAEO,MAAM87H,GAA0B,MAAOC,EAAgCC,EAAiBx8D,EAAe/5B,IAAoB,CAChI,MAAMs2F,EAAA,EACNJ,GAAaK,EAAWx8D,EAAO/5B,CAAO,CACxC,6JCvBA,MAAMyoF,EAAwBH,GAAA,oBAI5B70E,GAmBoB2zC,GAAA,CAnBA,UAAWpH,EAAAyoC,CAAA,GAAqB,CACvC,eACT,IAcM,CAdN38E,EAcM,MAdND,GAcM,CAbJC,EAYM,MAZNC,GAYM,CAXJD,EAUM,MAVNG,GAUM,CATJH,EAQM,MARNM,GAQM,CAPJN,EAGI,yBAHD,kFAED,KAAAA,EAAkD,eAAxCk0C,EAAAqoC,EAAA,CAA6B,oBAAW,KACpD,mBACAv8E,EAEM,YADJA,EAA0I,KAAvI,MAAM,8BAA8B,KAAK,mCAAmC,OAAO,UAAS,yCAAuC,6BAOlJ,IAAQ,CAARyH,GAAQC,EAAA,waCPZ,MAAMloD,EAAQogD,EASR8qF,EAAiB,CACrB,QAAS,cACT,UAAW,gBACX,OAAQ,aACR,KAAM,WACN,QAAS,eAGLC,EAAc,CAClB,GAAI,SACJ,GAAI,SACJ,QAAS,qDAKT7qF,EAcS,UAbP,MAAKuB,GAAA,CAAC,MAAK,CACFqpF,EAAelrI,EAAM,OAAO,EAAGmrI,EAAYnrI,EAAM,IAAI,YAAeA,EAAM,UAAYA,EAAM,QAAO,IAC3G,SAAUA,EAAM,UAAYA,EAAM,QAClC,KAAMA,EAAM,KACZ,aAAYA,EAAM,YAGLA,EAAM,MAAQA,EAAM,eAAY,SAAgBA,EAAM,aAApEmoD,GAAoHuwC,GAAA,OAAtC,KAAM14F,EAAM,KAAM,MAAM,wCACxFA,EAAM,aAApBmoD,GAAgEuwC,GAAA,OAAnC,MAAM,SAAU,KAAMhE,EAAAyD,EAAA,8BACvCmW,SAAO,SAAnBjuD,IAAAC,EAEO,OAFPG,GAEO,CADLwH,GAAQC,EAAA,2CAEIloD,EAAM,MAAQA,EAAM,eAAY,UAAiBA,EAAM,aAArEmoD,GAAsHuwC,GAAA,OAAvC,KAAM14F,EAAM,KAAM,MAAM,mDAP9F,CAAAu3H,EAAAv3H,EAAM,OAAO,iZC9C1B,MAAMg4B,EAAOwhG,EAYb,SAAS4R,GAAU,CACjBpzG,EAAK,SAAS,CAChB,CAEA,SAASqzG,GAAQ,CACfrzG,EAAK,QAAQ,CACf,CAEA,OAAA9W,GAAY,IAAM,CAEhB,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAAE,UAAY,EACvD,CAAC,EAED/H,GAAU,IAAM,CAEd,SAAS,qBAAqB,MAAM,EAAE,CAAC,EAAE,UAAY,YACvD,CAAC,UAICknC,EAAA,EAAAC,EAkBM,MAlBNC,GAkBM,CAjBJC,EAgBM,MAhBNC,GAgBM,CAfJD,EAcM,OAdD,MAAM,kBAAkB,KAAK,SAAU,aAAYJ,EAAA,UACtDI,EAIM,MAJNM,GAIM,CAHJN,EAEM,MAFNW,GAEM,CADJX,EAAsB,aAAfJ,EAAA,OAAO,SAGlBI,EAGM,MAHNm4C,GAGM,CAFJn4C,EAAiB,YAAXJ,EAAA,IAAI,KACDA,EAAA,iBAAmBA,EAAA,gBAAgB,QAA5CC,EAAA,EAAAC,EAA6E,UAAtBF,EAAA,eAAe,iBAExEI,EAGM,MAHNq4C,GAGM,CAFJp+D,GAAuI6wG,GAAA,CAAzH,QAAQ,UAAW,aAAYlrF,EAAA,WAAU,WAAkB,QAAOgrF,CAAA,cAAS,IAA+B,OAA5BhrF,EAAA,WAAU,wCACjFA,EAAA,yBAArB+H,GAAiFmjF,GAAA,OAAhD,aAAW,KAAM,QAAOD,CAAA,cAAO,IAAE,IAAA3qF,EAAA,KAAAA,EAAA,OAAF,KAAE,mRCrC5E,MAAM6qF,EAAch/H,GAAa,EAAK,EAEhC4wH,EAAwBH,GAAA,EACxBI,EAAmBP,GAAA,EAEnB2O,EAAc/tC,GAAc,SAAa0/B,EAAsB,MAAQ,MAAMC,EAAiB,kBAAoB,KAAO,IAAI,EAEnI,eAAeqO,GAAiB,EACd,MAAMrO,EAAiB,aACK,KAAM9/H,GAAU,CAACA,EAAM,cAAc,EAG/EiuI,EAAY,MAAQ,GAEpB,MAAMG,EAAA,CAEV,CAEA,eAAeA,GAAiB,CAC9BH,EAAY,MAAQ,GACpB,MAAMlQ,EAAW,MAAM+B,EAAiB,iBAEpC/B,IAAa,IACfuP,GAAazH,GAAK,KAAM,oBAAqB,iBAAiB9H,CAAQ,6BAA8B,EAAI,CAE5G,mDAIElzE,GAsB0BwhD,GAAA,iBArBxB,IAoBsB,CApBtBlvE,GAoBsBkxG,GAAA,iBAnBpB,IAkBM,CAlBNnrF,EAkBM,MAlBND,GAkBM,CAjBJC,EAWM,MAXNC,GAWM,aAVJD,EAEM,OAFD,MAAM,YAAU,CACnBA,EAAc,UAAV,OAAK,QAEXA,EAMM,MANNG,GAMM,CALwB+zC,EAAA82C,CAAA,GAAa,kCAAzCnrF,IAAAC,EAAkG,OAAlGQ,GAAkGD,GAA7B6zC,EAAA82C,CAAA,GAAa,MAAM,MACxFhrF,EAAqN,UAA7M,KAAK,SAAS,aAAW,kBAAkB,MAAM,0BAA2B,uBAAOirF,KAAmB,SAAQ,CAAG/2C,EAAA82C,CAAA,GAAa,0BAAyB/wG,GAA6Bi+D,GAAA,CAApB,KAAMhE,EAAA6C,EAAA,GAAU,gCAAI,mBAAgB,iBAC5MpvC,GAEWyjF,GAAA,CAFD,GAAG,iBAAe,CACLL,EAAA,WAArBpjF,GAAmM0jF,GAAA,OAAjK,QAAQ,qDAAqD,KAAK,qCAAsC,wBAAQN,EAAA,MAAW,IAAW,UAASG,CAAA,oBAIvLlrF,EAIM,MAJNm4C,GAIM,CAHJn4C,EAEM,MAFNo4C,GAEM,CADJn+D,GAAc8jG,CAAA,wECnDnB,IAAKuN,QACVA,EAAA,SAAW,YACXA,EAAA,eAAiB,kBACjBA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBAJLA,QAAA,IAOL,MAAMC,GAAgBrmF,GAAY,aAAc,IAAM,CAC3D,MAAM+0C,EAAsBp0C,GAAA,EAEtB4hD,EAAkB17F,GAAc,CACpC,SAAU,YACV,YAAa,GACd,EAEKmhE,EAAYnhE,GAAe,EAAE,EAC7By/H,EAAsBz/H,GAAI,EAAE,EAC5Bs7C,EAAet7C,GAAI,GAAG,EACtB0/H,EAAa1/H,GAAI,CAAC,EAClB2/H,EAAW3/H,GAAe,EAAE,EAC5B4/H,EAAuB5/H,GAAY,EAAE,EACrC48F,EAAY58F,GAAqB,EAAE,EAEzC,eAAe6/H,GAAgB,CAC7B,GAAI,CACF,KAAM,EAAGznH,CAAI,EAAI,MAAM81E,EAAoB,6BAA8C,WAAW,EACpG0O,EAAU,MAAQxkF,CACpB,OAASjhB,EAAG,CACV,MAAAylG,EAAU,MAAQ,GACZzlG,CACR,CACF,CAEA,eAAeijD,GAAU,CACvB,GAAI,CACF,KAAM,CAACinB,EAAU5H,CAAM,EAAI0H,EAAU,MAC/BpkD,EAAOskD,GAAU,eAAiB,GAClCvkD,EAAK28C,GAAQ,eAAiB,GAC9B,CAAC9e,EAAUviC,CAAI,EAAI,MAAM81E,EAAoB,6BACjD,4BAA4B0xC,EAAqB,KAAK,SAAS7iH,CAAI,OAAOD,CAAE,MAAM2iH,EAAoB,KAAK,cAAcnkF,EAAa,KAAK,SAASogD,EAAgB,MAAM,QAAQ,cAAcA,EAAgB,MAAM,YAAc,MAAQ,MAAM,IAEpPgkC,EAAW,MAAQ,SAAS/kF,EAAS,QAAQ,IAAI,aAAa,GAAK,GAAG,EACtEglF,EAAS,MAAQvnH,CACnB,OAASjhB,EAAG,CACV,MAAAwoI,EAAS,MAAQ,GACXxoI,CACR,CACF,CAEA,MAAO,CACL,QAAAijD,EACA,cAAAylF,EACA,OAAQnkC,EACR,SAAAikC,EACA,oBAAAF,EACA,qBAAAG,EACA,aAAAtkF,EACA,WAAAokF,EACA,UAAA9iC,EACA,UAAAz7B,CAAA,CAEJ,CAAC,4HC7DCrtB,EAAA,EAAAC,EAEM,MAFNC,GAEM,CADJC,EAA2D,WAAtD,WAAQK,GAAGT,EAAA,SAAS,EAAG,OAAIS,GAAGT,EAAA,KAAK,EAAG,aAAU,6qBCHzD,MAAMisF,EAAWlsF,GAAmBC,EAAA,YAAmB,EACjDpgD,EAAQogD,EAYRhhC,EAAS7S,GAAI,EAAE,EACf+/H,EAAgB//H,GAAIvM,EAAM,KAAK,EAErC+O,GAAM,CAACqQ,EAAQ,IAAMpf,EAAM,KAAK,EAAG,IAAM,CACnCof,EAAO,QAAU,IAAMA,EAAO,OAAS,KACzCktH,EAAc,MAAQtsI,EAAM,MAAM,OAAQZ,GAASA,EAAK,cAAc,SAASggB,EAAO,MAAM,aAAa,CAAC,EAE1GktH,EAAc,MAAQtsI,EAAM,KAEhC,CAAC,EAED,SAASusI,EAAUntI,EAAcotI,EAAqB,CACpDH,EAAS,MAAQG,GAAcxsI,EAAM,SAAW,GAAKZ,CACvD,CACA,MAAMqtI,EAAoBvvH,GAAmC,mBAAmB,EAC1EwvH,EAAcxvH,GAA6C,aAAa,EAC9E,OAAA/D,GAAU,IAAM,CACdszH,EAAkB,OAAO,iBAAiB,oBAAqB,IAAM,CACnEC,EAAY,OAAO,OACrB,CAAC,CACH,CAAC,cAICpsF,EAoBM,eApBG,oBAAJ,IAAImsF,EAAoB,MAAM,aACjCjsF,EAES,SAFTD,GAES,CADPC,EAAiE,OAAjEC,GAAiEI,GAAtCwrF,EAAA,OAAYjsF,EAAA,gBAAgB,OAEzDI,EAeM,MAfNG,GAeM,CAdJH,EAAkD,MAAlDM,GAAkDD,GAArBT,EAAA,YAAY,KAC9BA,EAAA,YAAXC,EAAA,EAAAC,EAEM,MAFNa,GAEM,CADJ1mB,GAAuF4/F,GAAA,SAAtE,cAAJ,IAAIqS,aAAuBttH,EAAA,2CAAAA,EAAM,MAAA8hC,GAAG,sBAAuBd,EAAA,QAAQ,sDAElFI,EASM,MATNm4C,GASM,CAR8Bv4C,EAAA,WAAaisF,EAAA,WAA/C/rF,EAGM,aAHD,MAAM,iBAA+C,2BAAqBisF,EAAS,uBACtF9xG,GAA4Ci+D,GAAA,CAApC,MAAM,YAAa,KAAMhE,EAAA8B,EAAA,oBACjCh2C,EAAyD,OAAzDo4C,GAAoB,sBAAmBx4C,EAAA,QAAQ,wBAEjDE,EAGMS,GAAA,KAAAC,GAHqCsrF,EAAA,MAARltI,QAAnCkhD,EAGM,OAHD,MAAM,iBAAgD,IAAKlhD,EAAO,eAAqBmtI,EAAUntI,EAAMA,IAASitI,EAAA,KAAQ,iBAC7GjtI,IAASitI,EAAA,WAAvBlkF,GAAqEuwC,GAAA,OAApC,MAAM,YAAa,KAAMhE,EAAA0B,EAAA,8BAC1D51C,EAA6E,QAAvE,MAAKqB,GAAA,CAAC,OAAM,UAAqBziD,IAASitI,EAAA,MAAQ,OAAOjtI,CAAI,8ECnDvEk/D,GAAM,KAAK,IACXj+C,GAAM,KAAK,IACX2rD,GAAQ,KAAK,MACb2gE,GAAQ,KAAK,MACbC,GAAenrI,IAAM,CACzB,EAAGA,EACH,EAAGA,CACL,GACMorI,GAAkB,CACtB,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACMC,GAAuB,CAC3B,MAAO,MACP,IAAK,OACP,EACA,SAASC,GAAM16H,EAAO/U,EAAOgV,EAAK,CAChC,OAAO+N,GAAIhO,EAAOisD,GAAIhhE,EAAOgV,CAAG,CAAC,CACnC,CACA,SAAS06H,GAAS1vI,EAAOk5C,EAAO,CAC9B,OAAO,OAAOl5C,GAAU,WAAaA,EAAMk5C,CAAK,EAAIl5C,CACtD,CACA,SAAS2vI,GAAQ/7B,EAAW,CAC1B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASg8B,GAAah8B,EAAW,CAC/B,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CACA,SAASi8B,GAAgBh4B,EAAM,CAC7B,OAAOA,IAAS,IAAM,IAAM,GAC9B,CACA,SAASi4B,GAAcj4B,EAAM,CAC3B,OAAOA,IAAS,IAAM,SAAW,OACnC,CACA,MAAMk4B,GAA0B,IAAI,IAAI,CAAC,MAAO,QAAQ,CAAC,EACzD,SAASC,GAAYp8B,EAAW,CAC9B,OAAOm8B,GAAW,IAAIJ,GAAQ/7B,CAAS,CAAC,EAAI,IAAM,GACpD,CACA,SAASq8B,GAAiBr8B,EAAW,CACnC,OAAOi8B,GAAgBG,GAAYp8B,CAAS,CAAC,CAC/C,CACA,SAASs8B,GAAkBt8B,EAAWiO,EAAOsuB,EAAK,CAC5CA,IAAQ,SACVA,EAAM,IAER,MAAMC,EAAYR,GAAah8B,CAAS,EAClCy8B,EAAgBJ,GAAiBr8B,CAAS,EAC1Ct3D,EAASwzF,GAAcO,CAAa,EAC1C,IAAIC,EAAoBD,IAAkB,IAAMD,KAAeD,EAAM,MAAQ,SAAW,QAAU,OAASC,IAAc,QAAU,SAAW,MAC9I,OAAIvuB,EAAM,UAAUvlE,CAAM,EAAIulE,EAAM,SAASvlE,CAAM,IACjDg0F,EAAoBn1B,GAAqBm1B,CAAiB,GAErD,CAACA,EAAmBn1B,GAAqBm1B,CAAiB,CAAC,CACpE,CACA,SAASC,GAAsB38B,EAAW,CACxC,MAAMyL,EAAoBlE,GAAqBvH,CAAS,EACxD,MAAO,CAAC48B,GAA8B58B,CAAS,EAAGyL,EAAmBmxB,GAA8BnxB,CAAiB,CAAC,CACvH,CACA,SAASmxB,GAA8B58B,EAAW,CAChD,OAAOA,EAAU,QAAQ,aAAcw8B,GAAaZ,GAAqBY,CAAS,CAAC,CACrF,CACA,MAAMK,GAAc,CAAC,OAAQ,OAAO,EAC9BC,GAAc,CAAC,QAAS,MAAM,EAC9BC,GAAc,CAAC,MAAO,QAAQ,EAC9BC,GAAc,CAAC,SAAU,KAAK,EACpC,SAASC,GAAY1vB,EAAM2vB,EAASX,EAAK,CACvC,OAAQhvB,EAAI,CACV,IAAK,MACL,IAAK,SACH,OAAIgvB,EAAYW,EAAUJ,GAAcD,GACjCK,EAAUL,GAAcC,GACjC,IAAK,OACL,IAAK,QACH,OAAOI,EAAUH,GAAcC,GACjC,QACE,MAAO,EACb,CACA,CACA,SAASG,GAA0Bn9B,EAAWo9B,EAAezsE,EAAW4rE,EAAK,CAC3E,MAAMC,EAAYR,GAAah8B,CAAS,EACxC,IAAI1xD,EAAO2uF,GAAYlB,GAAQ/7B,CAAS,EAAGrvC,IAAc,QAAS4rE,CAAG,EACrE,OAAIC,IACFluF,EAAOA,EAAK,IAAIi/D,GAAQA,EAAO,IAAMivB,CAAS,EAC1CY,IACF9uF,EAAOA,EAAK,OAAOA,EAAK,IAAIsuF,EAA6B,CAAC,IAGvDtuF,CACT,CACA,SAASi5D,GAAqBvH,EAAW,CACvC,OAAOA,EAAU,QAAQ,yBAA0BuN,GAAQouB,GAAgBpuB,CAAI,CAAC,CAClF,CACA,SAAS8vB,GAAoB15B,EAAS,CACpC,MAAO,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,EACN,GAAGA,CACP,CACA,CACA,SAAS25B,GAAiB35B,EAAS,CACjC,OAAO,OAAOA,GAAY,SAAW05B,GAAoB15B,CAAO,EAAI,CAClE,IAAKA,EACL,MAAOA,EACP,OAAQA,EACR,KAAMA,CACV,CACA,CACA,SAASkF,GAAiBnH,EAAM,CAC9B,KAAM,CACJ,EAAA3rG,EACA,EAAA8pD,EACA,MAAAsqB,EACA,OAAAE,CACJ,EAAMq3B,EACJ,MAAO,CACL,MAAAv3B,EACA,OAAAE,EACA,IAAKxqB,EACL,KAAM9pD,EACN,MAAOA,EAAIo0E,EACX,OAAQtqB,EAAIwqB,EACZ,EAAAt0E,EACA,EAAA8pD,CACJ,CACA,CCrIA,SAAS09E,GAA2Bp9D,EAAM6/B,EAAWu8B,EAAK,CACxD,GAAI,CACF,UAAAz8B,EACA,SAAA09B,CACJ,EAAMr9D,EACJ,MAAMs9D,EAAWrB,GAAYp8B,CAAS,EAChCy8B,EAAgBJ,GAAiBr8B,CAAS,EAC1C09B,EAAcxB,GAAcO,CAAa,EACzClvB,EAAOwuB,GAAQ/7B,CAAS,EACxBkE,EAAau5B,IAAa,IAC1B7zB,EAAU9J,EAAU,EAAIA,EAAU,MAAQ,EAAI09B,EAAS,MAAQ,EAC/D3zB,EAAU/J,EAAU,EAAIA,EAAU,OAAS,EAAI09B,EAAS,OAAS,EACjEG,EAAc79B,EAAU49B,CAAW,EAAI,EAAIF,EAASE,CAAW,EAAI,EACzE,IAAIE,EACJ,OAAQrwB,EAAI,CACV,IAAK,MACHqwB,EAAS,CACP,EAAGh0B,EACH,EAAG9J,EAAU,EAAI09B,EAAS,MAClC,EACM,MACF,IAAK,SACHI,EAAS,CACP,EAAGh0B,EACH,EAAG9J,EAAU,EAAIA,EAAU,MACnC,EACM,MACF,IAAK,QACH89B,EAAS,CACP,EAAG99B,EAAU,EAAIA,EAAU,MAC3B,EAAG+J,CACX,EACM,MACF,IAAK,OACH+zB,EAAS,CACP,EAAG99B,EAAU,EAAI09B,EAAS,MAC1B,EAAG3zB,CACX,EACM,MACF,QACE+zB,EAAS,CACP,EAAG99B,EAAU,EACb,EAAGA,EAAU,CACrB,CACA,CACE,OAAQk8B,GAAah8B,CAAS,EAAC,CAC7B,IAAK,QACH49B,EAAOnB,CAAa,GAAKkB,GAAepB,GAAOr4B,EAAa,GAAK,GACjE,MACF,IAAK,MACH05B,EAAOnB,CAAa,GAAKkB,GAAepB,GAAOr4B,EAAa,GAAK,GACjE,KACN,CACE,OAAO05B,CACT,CASA,MAAMC,GAAkB,MAAO/9B,EAAW09B,EAAUzoF,IAAW,CAC7D,KAAM,CACJ,UAAAirD,EAAY,SACZ,SAAA89B,EAAW,WACX,WAAAC,EAAa,GACb,SAAAC,CACJ,EAAMjpF,EACEkpF,EAAkBF,EAAW,OAAO,OAAO,EAC3CxB,EAAM,MAAOyB,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMR,CAAQ,GAC5E,IAAIvvB,EAAQ,MAAM+vB,EAAS,gBAAgB,CACzC,UAAAl+B,EACA,SAAA09B,EACA,SAAAM,CACJ,CAAG,EACG,CACF,EAAA/nI,EACA,EAAA8pD,CACJ,EAAM09E,GAA2BtvB,EAAOjO,EAAWu8B,CAAG,EAChD2B,EAAoBl+B,EACpBm+B,EAAiB,GACjBC,EAAa,EACjB,QAAS/yI,EAAI,EAAGA,EAAI4yI,EAAgB,OAAQ5yI,IAAK,CAC/C,KAAM,CACJ,KAAAuD,EACA,GAAAlC,CACN,EAAQuxI,EAAgB5yI,CAAC,EACf,CACJ,EAAGgzI,EACH,EAAGC,EACH,KAAA7qH,EACA,MAAAvD,CACN,EAAQ,MAAMxjB,EAAG,CACX,EAAAqJ,EACA,EAAA8pD,EACA,iBAAkBmgD,EAClB,UAAWk+B,EACX,SAAAJ,EACA,eAAAK,EACA,MAAAlwB,EACA,SAAA+vB,EACA,SAAU,CACR,UAAAl+B,EACA,SAAA09B,CACR,CACA,CAAK,EACDznI,EAAIsoI,GAAwBtoI,EAC5B8pD,EAAIy+E,GAAwBz+E,EAC5Bs+E,EAAiB,CACf,GAAGA,EACH,CAACvvI,CAAI,EAAG,CACN,GAAGuvI,EAAevvI,CAAI,EACtB,GAAG6kB,CACX,CACA,EACQvD,GAASkuH,GAAc,KACzBA,IACI,OAAOluH,GAAU,WACfA,EAAM,YACRguH,EAAoBhuH,EAAM,WAExBA,EAAM,QACR+9F,EAAQ/9F,EAAM,QAAU,GAAO,MAAM8tH,EAAS,gBAAgB,CAC5D,UAAAl+B,EACA,SAAA09B,EACA,SAAAM,CACZ,CAAW,EAAI5tH,EAAM,OAEZ,CACC,EAAAna,EACA,EAAA8pD,CACV,EAAY09E,GAA2BtvB,EAAOiwB,EAAmB3B,CAAG,GAE9DlxI,EAAI,GAER,CACA,MAAO,CACL,EAAA0K,EACA,EAAA8pD,EACA,UAAWq+E,EACX,SAAAJ,EACA,eAAAK,CACJ,CACA,EAUA,eAAep0B,GAAe/hG,EAAOjK,EAAS,CAC5C,IAAIwgI,EACAxgI,IAAY,SACdA,EAAU,IAEZ,KAAM,CACJ,EAAAhI,EACA,EAAA8pD,EACA,SAAAm+E,EACA,MAAA/vB,EACA,SAAAwQ,EACA,SAAAqf,CACJ,EAAM91H,EACE,CACJ,SAAAqhG,EAAW,oBACX,aAAAC,EAAe,WACf,eAAAe,EAAiB,WACjB,YAAAE,EAAc,GACd,QAAA5G,EAAU,CACd,EAAMm4B,GAAS/9H,EAASiK,CAAK,EACrBu7F,EAAgB+5B,GAAiB35B,CAAO,EAExC17B,EAAUw2C,EAASlU,EADNF,IAAmB,WAAa,YAAc,WACbA,CAAc,EAC5DK,EAAqB7B,GAAiB,MAAMm1B,EAAS,gBAAgB,CACzE,SAAWO,EAAwB,MAAOP,EAAS,WAAa,KAAO,OAASA,EAAS,UAAU/1D,CAAO,KAAO,MAAOs2D,EAAgCt2D,EAAUA,EAAQ,gBAAmB,MAAO+1D,EAAS,oBAAsB,KAAO,OAASA,EAAS,mBAAmBvf,EAAS,QAAQ,GAChS,SAAApV,EACA,aAAAC,EACA,SAAAw0B,CACJ,CAAG,CAAC,EACIp8B,EAAO2I,IAAmB,WAAa,CAC3C,EAAAt0G,EACA,EAAA8pD,EACA,MAAOouD,EAAM,SAAS,MACtB,OAAQA,EAAM,SAAS,MAC3B,EAAMA,EAAM,UACJlL,EAAe,MAAOi7B,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgBvf,EAAS,QAAQ,GAC5G+f,EAAe,MAAOR,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUj7B,CAAY,GAAO,MAAOi7B,EAAS,UAAY,KAAO,OAASA,EAAS,SAASj7B,CAAY,IAAO,CACvL,EAAG,EACH,EAAG,CACP,EAAM,CACF,EAAG,EACH,EAAG,CACP,EACQ8H,EAAoBhC,GAAiBm1B,EAAS,sDAAwD,MAAMA,EAAS,sDAAsD,CAC/K,SAAAvf,EACA,KAAA/c,EACA,aAAAqB,EACA,SAAA+6B,CACJ,CAAG,EAAIp8B,CAAI,EACT,MAAO,CACL,KAAMgJ,EAAmB,IAAMG,EAAkB,IAAMtH,EAAc,KAAOi7B,EAAY,EACxF,QAAS3zB,EAAkB,OAASH,EAAmB,OAASnH,EAAc,QAAUi7B,EAAY,EACpG,MAAO9zB,EAAmB,KAAOG,EAAkB,KAAOtH,EAAc,MAAQi7B,EAAY,EAC5F,OAAQ3zB,EAAkB,MAAQH,EAAmB,MAAQnH,EAAc,OAASi7B,EAAY,CACpG,CACA,CAOA,MAAM56B,GAAQ7lG,IAAY,CACxB,KAAM,QACN,QAAAA,EACA,MAAM,GAAGiK,EAAO,CACd,KAAM,CACJ,EAAAjS,EACA,EAAA8pD,EACA,UAAAmgD,EACA,MAAAiO,EACA,SAAA+vB,EACA,SAAAvf,EACA,eAAA0f,CACN,EAAQn2H,EAEE,CACJ,QAAAigE,EACA,QAAA07B,EAAU,CAChB,EAAQm4B,GAAS/9H,EAASiK,CAAK,GAAK,GAChC,GAAIigE,GAAW,KACb,MAAO,GAET,MAAMs7B,EAAgB+5B,GAAiB35B,CAAO,EACxCi6B,EAAS,CACb,EAAA7nI,EACA,EAAA8pD,CACN,EACUokD,EAAOo4B,GAAiBr8B,CAAS,EACjCt3D,EAASwzF,GAAcj4B,CAAI,EAC3Bw6B,EAAkB,MAAMT,EAAS,cAAc/1D,CAAO,EACtDy2D,EAAUz6B,IAAS,IACnBG,EAAUs6B,EAAU,MAAQ,OAC5Br6B,EAAUq6B,EAAU,SAAW,QAC/BC,EAAaD,EAAU,eAAiB,cACxCp6B,EAAU2J,EAAM,UAAUvlE,CAAM,EAAIulE,EAAM,UAAUhK,CAAI,EAAI25B,EAAO35B,CAAI,EAAIgK,EAAM,SAASvlE,CAAM,EAChG67D,EAAYq5B,EAAO35B,CAAI,EAAIgK,EAAM,UAAUhK,CAAI,EAC/CO,EAAoB,MAAOw5B,EAAS,iBAAmB,KAAO,OAASA,EAAS,gBAAgB/1D,CAAO,GAC7G,IAAIw8B,EAAaD,EAAoBA,EAAkBm6B,CAAU,EAAI,GAGjE,CAACl6B,GAAc,CAAE,MAAOu5B,EAAS,WAAa,KAAO,OAASA,EAAS,UAAUx5B,CAAiB,MACpGC,EAAaga,EAAS,SAASkgB,CAAU,GAAK1wB,EAAM,SAASvlE,CAAM,GAErE,MAAMg8D,EAAoBJ,EAAU,EAAIC,EAAY,EAI9Cq6B,EAAyBn6B,EAAa,EAAIg6B,EAAgB/1F,CAAM,EAAI,EAAI,EACxEm2F,EAAazxE,GAAIm2C,EAAca,CAAO,EAAGw6B,CAAsB,EAC/DE,EAAa1xE,GAAIm2C,EAAcc,CAAO,EAAGu6B,CAAsB,EAI/D17B,EAAQ27B,EACR1vH,EAAMs1F,EAAag6B,EAAgB/1F,CAAM,EAAIo2F,EAC7Cn6B,GAASF,EAAa,EAAIg6B,EAAgB/1F,CAAM,EAAI,EAAIg8D,EACxDtoE,GAASy/F,GAAM34B,EAAOyB,GAAQx1F,CAAG,EAMjC4vH,GAAkB,CAACZ,EAAe,OAASnC,GAAah8B,CAAS,GAAK,MAAQ2E,KAAWvoE,IAAU6xE,EAAM,UAAUvlE,CAAM,EAAI,GAAKi8D,GAASzB,EAAQ27B,EAAaC,GAAcL,EAAgB/1F,CAAM,EAAI,EAAI,EAC5Ms2F,EAAkBD,GAAkBp6B,GAASzB,EAAQyB,GAASzB,EAAQyB,GAASx1F,EAAM,EAC3F,MAAO,CACL,CAAC80F,CAAI,EAAG25B,EAAO35B,CAAI,EAAI+6B,EACvB,KAAM,CACJ,CAAC/6B,CAAI,EAAG7nE,GACR,aAAcuoE,GAASvoE,GAAS4iG,EAChC,GAAID,IAAmB,CACrB,gBAAAC,CACV,CACA,EACM,MAAOD,EACb,CACE,CACF,GA+GMrzB,GAAO,SAAU3tG,EAAS,CAC9B,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,OACN,QAAAA,EACA,MAAM,GAAGiK,EAAO,CACd,IAAIi3H,EAAuBC,EAC3B,KAAM,CACJ,UAAAl/B,EACA,eAAAm+B,EACA,MAAAlwB,EACA,iBAAAkxB,EACA,SAAAnB,EACA,SAAAvf,CACR,EAAUz2G,EACE,CACJ,SAAU4jG,EAAgB,GAC1B,UAAWwzB,EAAiB,GAC5B,mBAAoBrzB,EACpB,iBAAAszB,EAAmB,UACnB,0BAAAC,EAA4B,OAC5B,cAAAlC,EAAgB,GAChB,GAAGmC,CACX,EAAUzD,GAAS/9H,EAASiK,CAAK,EAM3B,IAAKi3H,EAAwBd,EAAe,QAAU,MAAQc,EAAsB,gBAClF,MAAO,GAET,MAAM1xB,EAAOwuB,GAAQ/7B,CAAS,EACxBw/B,EAAkBpD,GAAY+C,CAAgB,EAC9CjzB,EAAkB6vB,GAAQoD,CAAgB,IAAMA,EAChD5C,EAAM,MAAOyB,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMvf,EAAS,QAAQ,GAC/EtS,EAAqBJ,IAAgCG,GAAmB,CAACkxB,EAAgB,CAAC71B,GAAqB43B,CAAgB,CAAC,EAAIxC,GAAsBwC,CAAgB,GAC1KM,EAA+BH,IAA8B,OAC/D,CAACvzB,GAA+B0zB,GAClCtzB,EAAmB,KAAK,GAAGgxB,GAA0BgC,EAAkB/B,EAAekC,EAA2B/C,CAAG,CAAC,EAEvH,MAAMt8B,EAAa,CAACk/B,EAAkB,GAAGhzB,CAAkB,EACrD5jD,EAAW,MAAMwhD,GAAe/hG,EAAOu3H,CAAqB,EAC5Dh0B,EAAY,GAClB,IAAIm0B,IAAkBR,EAAuBf,EAAe,OAAS,KAAO,OAASe,EAAqB,YAAc,GAIxH,GAHItzB,GACFL,EAAU,KAAKhjD,EAASglD,CAAI,CAAC,EAE3B6xB,EAAgB,CAClB,MAAMO,GAAQrD,GAAkBt8B,EAAWiO,EAAOsuB,CAAG,EACrDhxB,EAAU,KAAKhjD,EAASo3E,GAAM,CAAC,CAAC,EAAGp3E,EAASo3E,GAAM,CAAC,CAAC,CAAC,CACvD,CAOA,GANAD,EAAgB,CAAC,GAAGA,EAAe,CACjC,UAAA1/B,EACA,UAAAuL,CACR,CAAO,EAGG,CAACA,EAAU,MAAMgC,IAAQA,IAAQ,CAAC,EAAG,CACvC,IAAIqyB,EAAuBC,EAC3B,MAAMj8G,MAAeg8G,EAAwBzB,EAAe,OAAS,KAAO,OAASyB,EAAsB,QAAU,GAAK,EACpHE,GAAgB7/B,EAAWr8E,EAAS,EAC1C,GAAIk8G,KAEE,EAD4BV,IAAmB,YAAcI,IAAoBpD,GAAY0D,EAAa,EAAI,KAIlHJ,EAAc,MAAM9uG,IAAKwrG,GAAYxrG,GAAE,SAAS,IAAM4uG,EAAkB5uG,GAAE,UAAU,CAAC,EAAI,EAAI,EAAI,GAE/F,MAAO,CACL,KAAM,CACJ,MAAOhN,GACP,UAAW87G,CAC3B,EACc,MAAO,CACL,UAAWI,EAC3B,CACA,EAMQ,IAAIC,IAAkBF,EAAwBH,EAAc,OAAO9uG,GAAKA,EAAE,UAAU,CAAC,GAAK,CAAC,EAAE,KAAK,CAACvhC,EAAGC,KAAMD,EAAE,UAAU,CAAC,EAAIC,GAAE,UAAU,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAASuwI,EAAsB,UAG1L,GAAI,CAACE,GACH,OAAQV,EAAgB,CACtB,IAAK,UACH,CACE,IAAIW,EACJ,MAAMhgC,GAAaggC,EAAyBN,EAAc,OAAO9uG,IAAK,CACpE,GAAI6uG,EAA8B,CAChC,MAAMQ,GAAkB7D,GAAYxrG,GAAE,SAAS,EAC/C,OAAOqvG,KAAoBT,GAG3BS,KAAoB,GACtB,CACA,MAAO,EACT,CAAC,EAAE,IAAIrvG,IAAK,CAACA,GAAE,UAAWA,GAAE,UAAU,OAAO23B,IAAYA,GAAW,CAAC,EAAE,OAAO,CAACpxD,GAAKoxD,KAAapxD,GAAMoxD,GAAU,CAAC,CAAC,CAAC,EAAE,KAAK,CAACl5D,GAAGC,KAAMD,GAAE,CAAC,EAAIC,GAAE,CAAC,CAAC,EAAE,CAAC,IAAM,KAAO,OAAS0wI,EAAuB,CAAC,EAC7LhgC,IACF+/B,GAAiB//B,GAEnB,KACF,CACF,IAAK,mBACH+/B,GAAiBZ,EACjB,KACd,CAEQ,GAAIn/B,IAAc+/B,GAChB,MAAO,CACL,MAAO,CACL,UAAWA,EACzB,CACA,CAEM,CACA,MAAO,EACT,CACJ,CACA,EA0MMG,GAA2B,IAAI,IAAI,CAAC,OAAQ,KAAK,CAAC,EAKxD,eAAeC,GAAqBn4H,EAAOjK,EAAS,CAClD,KAAM,CACJ,UAAAiiG,EACA,SAAAg+B,EACA,SAAAvf,CACJ,EAAMz2G,EACEu0H,EAAM,MAAOyB,EAAS,OAAS,KAAO,OAASA,EAAS,MAAMvf,EAAS,QAAQ,GAC/ElR,EAAOwuB,GAAQ/7B,CAAS,EACxBw8B,EAAYR,GAAah8B,CAAS,EAClCkE,EAAak4B,GAAYp8B,CAAS,IAAM,IACxCogC,EAAgBF,GAAY,IAAI3yB,CAAI,EAAI,GAAK,EAC7C8yB,EAAiB9D,GAAOr4B,EAAa,GAAK,EAC1C1oG,EAAWsgI,GAAS/9H,EAASiK,CAAK,EAGxC,GAAI,CACF,SAAA8hG,EACA,UAAAw2B,EACA,cAAA7D,CACJ,EAAM,OAAOjhI,GAAa,SAAW,CACjC,SAAUA,EACV,UAAW,EACX,cAAe,IACnB,EAAM,CACF,SAAUA,EAAS,UAAY,EAC/B,UAAWA,EAAS,WAAa,EACjC,cAAeA,EAAS,aAC5B,EACE,OAAIghI,GAAa,OAAOC,GAAkB,WACxC6D,EAAY9D,IAAc,MAAQC,EAAgB,GAAKA,GAElDv4B,EAAa,CAClB,EAAGo8B,EAAYD,EACf,EAAGv2B,EAAWs2B,CAClB,EAAM,CACF,EAAGt2B,EAAWs2B,EACd,EAAGE,EAAYD,CACnB,CACA,CASA,MAAMjkG,GAAS,SAAUr+B,EAAS,CAChC,OAAIA,IAAY,SACdA,EAAU,GAEL,CACL,KAAM,SACN,QAAAA,EACA,MAAM,GAAGiK,EAAO,CACd,IAAIu4H,EAAuBtB,EAC3B,KAAM,CACJ,EAAAlpI,EACA,EAAA8pD,EACA,UAAAmgD,EACA,eAAAm+B,CACR,EAAUn2H,EACEw4H,EAAa,MAAML,GAAqBn4H,EAAOjK,CAAO,EAI5D,OAAIiiG,MAAgBugC,EAAwBpC,EAAe,SAAW,KAAO,OAASoC,EAAsB,aAAetB,EAAwBd,EAAe,QAAU,MAAQc,EAAsB,gBACjM,GAEF,CACL,EAAGlpI,EAAIyqI,EAAW,EAClB,EAAG3gF,EAAI2gF,EAAW,EAClB,KAAM,CACJ,GAAGA,EACH,UAAAxgC,CACV,CACA,CACI,CACJ,CACA,EAOMjnC,GAAQ,SAAUh7D,EAAS,CAC/B,OAAIA,IAAY,SACdA,EAAU,IAEL,CACL,KAAM,QACN,QAAAA,EACA,MAAM,GAAGiK,EAAO,CACd,KAAM,CACJ,EAAAjS,EACA,EAAA8pD,EACA,UAAAmgD,CACR,EAAUh4F,EACE,CACJ,SAAU4jG,EAAgB,GAC1B,UAAWwzB,EAAiB,GAC5B,QAAAqB,EAAU,CACR,GAAItgE,GAAQ,CACV,GAAI,CACF,EAAApqE,EACA,EAAA8pD,CACd,EAAgBsgB,EACJ,MAAO,CACL,EAAApqE,EACA,EAAA8pD,CACd,CACU,CACV,EACQ,GAAG0/E,CACX,EAAUzD,GAAS/9H,EAASiK,CAAK,EACrB41H,EAAS,CACb,EAAA7nI,EACA,EAAA8pD,CACR,EACY0I,EAAW,MAAMwhD,GAAe/hG,EAAOu3H,CAAqB,EAC5De,EAAYlE,GAAYL,GAAQ/7B,CAAS,CAAC,EAC1C8J,EAAWmyB,GAAgBqE,CAAS,EAC1C,IAAII,EAAgB9C,EAAO9zB,CAAQ,EAC/B62B,EAAiB/C,EAAO0C,CAAS,EACrC,GAAI10B,EAAe,CACjB,MAAMg1B,EAAU92B,IAAa,IAAM,MAAQ,OACrC+2B,EAAU/2B,IAAa,IAAM,SAAW,QACxC18C,EAAMszE,EAAgBn4E,EAASq4E,CAAO,EACtCzxH,EAAMuxH,EAAgBn4E,EAASs4E,CAAO,EAC5CH,EAAgB7E,GAAMzuE,EAAKszE,EAAevxH,CAAG,CAC/C,CACA,GAAIiwH,EAAgB,CAClB,MAAMwB,EAAUN,IAAc,IAAM,MAAQ,OACtCO,EAAUP,IAAc,IAAM,SAAW,QACzClzE,EAAMuzE,EAAiBp4E,EAASq4E,CAAO,EACvCzxH,EAAMwxH,EAAiBp4E,EAASs4E,CAAO,EAC7CF,EAAiB9E,GAAMzuE,EAAKuzE,EAAgBxxH,CAAG,CACjD,CACA,MAAM2xH,EAAgBL,EAAQ,GAAG,CAC/B,GAAGz4H,EACH,CAAC8hG,CAAQ,EAAG42B,EACZ,CAACJ,CAAS,EAAGK,CACrB,CAAO,EACD,MAAO,CACL,GAAGG,EACH,KAAM,CACJ,EAAGA,EAAc,EAAI/qI,EACrB,EAAG+qI,EAAc,EAAIjhF,EACrB,QAAS,CACP,CAACiqD,CAAQ,EAAG8B,EACZ,CAAC00B,CAAS,EAAGlB,CACzB,CACA,CACA,CACI,CACJ,CACA,EC93BA,SAAS2B,IAAY,CACnB,OAAO,OAAO,OAAW,GAC3B,CACA,SAASpgC,GAAYx5F,EAAM,CACzB,OAAI65H,GAAO75H,CAAI,GACLA,EAAK,UAAY,IAAI,YAAW,EAKnC,WACT,CACA,SAASy5F,GAAUz5F,EAAM,CACvB,IAAI85H,EACJ,OAAQ95H,GAAQ,OAAS85H,EAAsB95H,EAAK,gBAAkB,KAAO,OAAS85H,EAAoB,cAAgB,MAC5H,CACA,SAAS5+B,GAAmBl7F,EAAM,CAChC,IAAIg5D,EACJ,OAAQA,GAAQ6gE,GAAO75H,CAAI,EAAIA,EAAK,cAAgBA,EAAK,WAAa,OAAO,WAAa,KAAO,OAASg5D,EAAK,eACjH,CACA,SAAS6gE,GAAO50I,EAAO,CACrB,OAAK20I,GAAS,EAGP30I,aAAiB,MAAQA,aAAiBw0G,GAAUx0G,CAAK,EAAE,KAFzD,EAGX,CACA,SAAS00G,GAAU10G,EAAO,CACxB,OAAK20I,GAAS,EAGP30I,aAAiB,SAAWA,aAAiBw0G,GAAUx0G,CAAK,EAAE,QAF5D,EAGX,CACA,SAAS40G,GAAc50G,EAAO,CAC5B,OAAK20I,GAAS,EAGP30I,aAAiB,aAAeA,aAAiBw0G,GAAUx0G,CAAK,EAAE,YAFhE,EAGX,CACA,SAAS60G,GAAa70G,EAAO,CAC3B,MAAI,CAAC20I,GAAS,GAAM,OAAO,WAAe,IACjC,GAEF30I,aAAiB,YAAcA,aAAiBw0G,GAAUx0G,CAAK,EAAE,UAC1E,CACA,MAAM80I,GAA4C,IAAI,IAAI,CAAC,SAAU,UAAU,CAAC,EAChF,SAASC,GAAkBl5D,EAAS,CAClC,KAAM,CACJ,SAAA1f,EACA,UAAAggD,EACA,UAAAC,EACA,QAAA44B,CACJ,EAAMj/B,GAAiBl6B,CAAO,EAC5B,MAAO,kCAAkC,KAAK1f,EAAWigD,EAAYD,CAAS,GAAK,CAAC24B,GAA6B,IAAIE,CAAO,CAC9H,CACA,MAAMC,GAA6B,IAAI,IAAI,CAAC,QAAS,KAAM,IAAI,CAAC,EAChE,SAASj/B,GAAen6B,EAAS,CAC/B,OAAOo5D,GAAc,IAAI1gC,GAAY14B,CAAO,CAAC,CAC/C,CACA,MAAMq5D,GAAoB,CAAC,gBAAiB,QAAQ,EACpD,SAASC,GAAWt5D,EAAS,CAC3B,OAAOq5D,GAAkB,KAAK10G,GAAY,CACxC,GAAI,CACF,OAAOq7C,EAAQ,QAAQr7C,CAAQ,CACjC,MAAa,CACX,MAAO,EACT,CACF,CAAC,CACH,CACA,MAAM40G,GAAsB,CAAC,YAAa,YAAa,QAAS,SAAU,aAAa,EACjFC,GAAmB,CAAC,YAAa,YAAa,QAAS,SAAU,cAAe,QAAQ,EACxFC,GAAgB,CAAC,QAAS,SAAU,SAAU,SAAS,EAC7D,SAASC,GAAkBC,EAAc,CACvC,MAAMC,EAASC,GAAQ,EACjBn5D,EAAMm4B,GAAU8gC,CAAY,EAAIz/B,GAAiBy/B,CAAY,EAAIA,EAIvE,OAAOJ,GAAoB,KAAKp1I,GAASu8E,EAAIv8E,CAAK,EAAIu8E,EAAIv8E,CAAK,IAAM,OAAS,EAAK,IAAMu8E,EAAI,cAAgBA,EAAI,gBAAkB,SAAW,KAAU,CAACk5D,IAAWl5D,EAAI,eAAiBA,EAAI,iBAAmB,OAAS,KAAU,CAACk5D,IAAWl5D,EAAI,OAASA,EAAI,SAAW,OAAS,KAAU84D,GAAiB,KAAKr1I,IAAUu8E,EAAI,YAAc,IAAI,SAASv8E,CAAK,CAAC,GAAKs1I,GAAc,KAAKt1I,IAAUu8E,EAAI,SAAW,IAAI,SAASv8E,CAAK,CAAC,CACza,CACA,SAASo2G,GAAmBv6B,EAAS,CACnC,IAAI26B,EAAcN,GAAcr6B,CAAO,EACvC,KAAO+4B,GAAc4B,CAAW,GAAK,CAACm/B,GAAsBn/B,CAAW,GAAG,CACxE,GAAI++B,GAAkB/+B,CAAW,EAC/B,OAAOA,EACF,GAAI2+B,GAAW3+B,CAAW,EAC/B,OAAO,KAETA,EAAcN,GAAcM,CAAW,CACzC,CACA,OAAO,IACT,CACA,SAASk/B,IAAW,CAClB,OAAI,OAAO,IAAQ,KAAe,CAAC,IAAI,SAAiB,GACjD,IAAI,SAAS,0BAA2B,MAAM,CACvD,CACA,MAAME,GAAwC,IAAI,IAAI,CAAC,OAAQ,OAAQ,WAAW,CAAC,EACnF,SAASD,GAAsB56H,EAAM,CACnC,OAAO66H,GAAyB,IAAIrhC,GAAYx5F,CAAI,CAAC,CACvD,CACA,SAASg7F,GAAiBl6B,EAAS,CACjC,OAAO24B,GAAU34B,CAAO,EAAE,iBAAiBA,CAAO,CACpD,CACA,SAASgpC,GAAchpC,EAAS,CAC9B,OAAI64B,GAAU74B,CAAO,EACZ,CACL,WAAYA,EAAQ,WACpB,UAAWA,EAAQ,SACzB,EAES,CACL,WAAYA,EAAQ,QACpB,UAAWA,EAAQ,OACvB,CACA,CACA,SAASq6B,GAAcn7F,EAAM,CAC3B,GAAIw5F,GAAYx5F,CAAI,IAAM,OACxB,OAAOA,EAET,MAAMxQ,EAENwQ,EAAK,cAELA,EAAK,YAEL85F,GAAa95F,CAAI,GAAKA,EAAK,MAE3Bk7F,GAAmBl7F,CAAI,EACvB,OAAO85F,GAAatqG,CAAM,EAAIA,EAAO,KAAOA,CAC9C,CACA,SAASsrI,GAA2B96H,EAAM,CACxC,MAAME,EAAai7F,GAAcn7F,CAAI,EACrC,OAAI46H,GAAsB16H,CAAU,EAC3BF,EAAK,cAAgBA,EAAK,cAAc,KAAOA,EAAK,KAEzD65F,GAAc35F,CAAU,GAAK85H,GAAkB95H,CAAU,EACpDA,EAEF46H,GAA2B56H,CAAU,CAC9C,CACA,SAAS66H,GAAqB/6H,EAAMmnC,EAAM6zF,EAAiB,CACzD,IAAIC,EACA9zF,IAAS,SACXA,EAAO,IAEL6zF,IAAoB,SACtBA,EAAkB,IAEpB,MAAME,EAAqBJ,GAA2B96H,CAAI,EACpDwhG,EAAS05B,MAAyBD,EAAuBj7H,EAAK,gBAAkB,KAAO,OAASi7H,EAAqB,MACrHj9B,EAAMvE,GAAUyhC,CAAkB,EACxC,GAAI15B,EAAQ,CACV,MAAM25B,EAAeC,GAAgBp9B,CAAG,EACxC,OAAO72D,EAAK,OAAO62D,EAAKA,EAAI,gBAAkB,GAAIg8B,GAAkBkB,CAAkB,EAAIA,EAAqB,GAAIC,GAAgBH,EAAkBD,GAAqBI,CAAY,EAAI,EAAE,CAC9L,CACA,OAAOh0F,EAAK,OAAO+zF,EAAoBH,GAAqBG,EAAoB,GAAIF,CAAe,CAAC,CACtG,CACA,SAASI,GAAgBp9B,EAAK,CAC5B,OAAOA,EAAI,QAAU,OAAO,eAAeA,EAAI,MAAM,EAAIA,EAAI,aAAe,IAC9E,CCzJA,SAASq9B,GAAiBv6D,EAAS,CACjC,MAAMU,EAAM85D,GAAmBx6D,CAAO,EAGtC,IAAIkC,EAAQ,WAAWxB,EAAI,KAAK,GAAK,EACjC0B,EAAS,WAAW1B,EAAI,MAAM,GAAK,EACvC,MAAM+5D,EAAY1hC,GAAc/4B,CAAO,EACjC65B,EAAc4gC,EAAYz6D,EAAQ,YAAckC,EAChD03B,EAAe6gC,EAAYz6D,EAAQ,aAAeoC,EAClDs4D,EAAiB7nE,GAAMqP,CAAK,IAAM23B,GAAehnC,GAAMuP,CAAM,IAAMw3B,EACzE,OAAI8gC,IACFx4D,EAAQ23B,EACRz3B,EAASw3B,GAEJ,CACL,MAAA13B,EACA,OAAAE,EACA,EAAGs4D,CACP,CACA,CAEA,SAASC,GAAc36D,EAAS,CAC9B,OAAQ64B,GAAU74B,CAAO,EAA6BA,EAAzBA,EAAQ,cACvC,CAEA,SAAS46D,GAAS56D,EAAS,CACzB,MAAM66D,EAAaF,GAAc36D,CAAO,EACxC,GAAI,CAAC+4B,GAAc8hC,CAAU,EAC3B,OAAOpH,GAAa,CAAC,EAEvB,MAAMh6B,EAAOohC,EAAW,sBAAqB,EACvC,CACJ,MAAA34D,EACA,OAAAE,EACA,EAAA04D,CACJ,EAAMP,GAAiBM,CAAU,EAC/B,IAAI/sI,GAAKgtI,EAAIjoE,GAAM4mC,EAAK,KAAK,EAAIA,EAAK,OAASv3B,EAC3CtqB,GAAKkjF,EAAIjoE,GAAM4mC,EAAK,MAAM,EAAIA,EAAK,QAAUr3B,EAIjD,OAAI,CAACt0E,GAAK,CAAC,OAAO,SAASA,CAAC,KAC1BA,EAAI,IAEF,CAAC8pD,GAAK,CAAC,OAAO,SAASA,CAAC,KAC1BA,EAAI,GAEC,CACL,EAAA9pD,EACA,EAAA8pD,CACJ,CACA,CAEA,MAAMmjF,GAAyBtH,GAAa,CAAC,EAC7C,SAASuH,GAAiBh7D,EAAS,CACjC,MAAMk9B,EAAMvE,GAAU34B,CAAO,EAC7B,MAAI,CAAC65D,GAAQ,GAAM,CAAC38B,EAAI,eACf69B,GAEF,CACL,EAAG79B,EAAI,eAAe,WACtB,EAAGA,EAAI,eAAe,SAC1B,CACA,CACA,SAAS+9B,GAAuBj7D,EAAS49B,EAASs9B,EAAsB,CAItE,OAHIt9B,IAAY,SACdA,EAAU,IAER,CAACs9B,GAAwBt9B,GAAWs9B,IAAyBviC,GAAU34B,CAAO,EACzE,GAEF49B,CACT,CAEA,SAASrE,GAAsBv5B,EAASw5B,EAAc2hC,EAAiBrgC,EAAc,CAC/EtB,IAAiB,SACnBA,EAAe,IAEb2hC,IAAoB,SACtBA,EAAkB,IAEpB,MAAMphC,EAAa/5B,EAAQ,sBAAqB,EAC1C66D,EAAaF,GAAc36D,CAAO,EACxC,IAAIo7D,EAAQ3H,GAAa,CAAC,EACtBj6B,IACEsB,EACEjC,GAAUiC,CAAY,IACxBsgC,EAAQR,GAAS9/B,CAAY,GAG/BsgC,EAAQR,GAAS56D,CAAO,GAG5B,MAAMq7D,EAAgBJ,GAAuBJ,EAAYM,EAAiBrgC,CAAY,EAAIkgC,GAAiBH,CAAU,EAAIpH,GAAa,CAAC,EACvI,IAAI3lI,GAAKisG,EAAW,KAAOshC,EAAc,GAAKD,EAAM,EAChDxjF,GAAKmiD,EAAW,IAAMshC,EAAc,GAAKD,EAAM,EAC/Cl5D,EAAQ63B,EAAW,MAAQqhC,EAAM,EACjCh5D,EAAS23B,EAAW,OAASqhC,EAAM,EACvC,GAAIP,EAAY,CACd,MAAM39B,EAAMvE,GAAUkiC,CAAU,EAC1BS,EAAYxgC,GAAgBjC,GAAUiC,CAAY,EAAInC,GAAUmC,CAAY,EAAIA,EACtF,IAAIygC,EAAar+B,EACbs+B,EAAgBlB,GAAgBiB,CAAU,EAC9C,KAAOC,GAAiB1gC,GAAgBwgC,IAAcC,GAAY,CAChE,MAAME,EAAcb,GAASY,CAAa,EACpCE,EAAaF,EAAc,sBAAqB,EAChD96D,EAAM85D,GAAmBgB,CAAa,EACtCjkC,EAAOmkC,EAAW,MAAQF,EAAc,WAAa,WAAW96D,EAAI,WAAW,GAAK+6D,EAAY,EAChGrkC,EAAMskC,EAAW,KAAOF,EAAc,UAAY,WAAW96D,EAAI,UAAU,GAAK+6D,EAAY,EAClG3tI,GAAK2tI,EAAY,EACjB7jF,GAAK6jF,EAAY,EACjBv5D,GAASu5D,EAAY,EACrBr5D,GAAUq5D,EAAY,EACtB3tI,GAAKypG,EACL3/C,GAAKw/C,EACLmkC,EAAa5iC,GAAU6iC,CAAa,EACpCA,EAAgBlB,GAAgBiB,CAAU,CAC5C,CACF,CACA,OAAO36B,GAAiB,CACtB,MAAA1+B,EACA,OAAAE,EACA,EAAAt0E,EACA,EAAA8pD,CACJ,CAAG,CACH,CAIA,SAASgoD,GAAoB5/B,EAASy5B,EAAM,CAC1C,MAAMkiC,EAAa3yB,GAAchpC,CAAO,EAAE,WAC1C,OAAKy5B,EAGEA,EAAK,KAAOkiC,EAFVpiC,GAAsBa,GAAmBp6B,CAAO,CAAC,EAAE,KAAO27D,CAGrE,CAEA,SAASC,GAActyB,EAAiBr0E,EAAQ,CAC9C,MAAM4mG,EAAWvyB,EAAgB,sBAAqB,EAChDx7G,EAAI+tI,EAAS,KAAO5mG,EAAO,WAAa2qE,GAAoB0J,EAAiBuyB,CAAQ,EACrFjkF,EAAIikF,EAAS,IAAM5mG,EAAO,UAChC,MAAO,CACL,EAAAnnC,EACA,EAAA8pD,CACJ,CACA,CAEA,SAASkkF,GAAsD5jE,EAAM,CACnE,GAAI,CACF,SAAAs+C,EACA,KAAA/c,EACA,aAAAqB,EACA,SAAA+6B,CACJ,EAAM39D,EACJ,MAAM0lC,EAAUi4B,IAAa,QACvBvsB,EAAkBlP,GAAmBU,CAAY,EACjDihC,EAAWvlB,EAAW8iB,GAAW9iB,EAAS,QAAQ,EAAI,GAC5D,GAAI1b,IAAiBwO,GAAmByyB,GAAYn+B,EAClD,OAAOnE,EAET,IAAIxkE,EAAS,CACX,WAAY,EACZ,UAAW,CACf,EACMmmG,EAAQ3H,GAAa,CAAC,EAC1B,MAAMj2B,EAAUi2B,GAAa,CAAC,EACxBrqB,EAA0BrQ,GAAc+B,CAAY,EAC1D,IAAIsO,GAA2B,CAACA,GAA2B,CAACxL,MACtDlF,GAAYoC,CAAY,IAAM,QAAUo+B,GAAkB5vB,CAAe,KAC3Er0E,EAAS+zE,GAAclO,CAAY,GAEjC/B,GAAc+B,CAAY,GAAG,CAC/B,MAAMkhC,EAAaziC,GAAsBuB,CAAY,EACrDsgC,EAAQR,GAAS9/B,CAAY,EAC7B0C,EAAQ,EAAIw+B,EAAW,EAAIlhC,EAAa,WACxC0C,EAAQ,EAAIw+B,EAAW,EAAIlhC,EAAa,SAC1C,CAEF,MAAMmhC,EAAa3yB,GAAmB,CAACF,GAA2B,CAACxL,EAAUg+B,GAActyB,EAAiBr0E,CAAM,EAAIw+F,GAAa,CAAC,EACpI,MAAO,CACL,MAAOh6B,EAAK,MAAQ2hC,EAAM,EAC1B,OAAQ3hC,EAAK,OAAS2hC,EAAM,EAC5B,EAAG3hC,EAAK,EAAI2hC,EAAM,EAAInmG,EAAO,WAAammG,EAAM,EAAI59B,EAAQ,EAAIy+B,EAAW,EAC3E,EAAGxiC,EAAK,EAAI2hC,EAAM,EAAInmG,EAAO,UAAYmmG,EAAM,EAAI59B,EAAQ,EAAIy+B,EAAW,CAC9E,CACA,CAEA,SAASC,GAAel8D,EAAS,CAC/B,OAAO,MAAM,KAAKA,EAAQ,eAAc,CAAE,CAC5C,CAIA,SAASggC,GAAgBhgC,EAAS,CAChC,MAAM8/B,EAAO1F,GAAmBp6B,CAAO,EACjC/qC,EAAS+zE,GAAchpC,CAAO,EAC9BmgC,EAAOngC,EAAQ,cAAc,KAC7BkC,EAAQh7D,GAAI44F,EAAK,YAAaA,EAAK,YAAaK,EAAK,YAAaA,EAAK,WAAW,EAClF/9B,EAASl7D,GAAI44F,EAAK,aAAcA,EAAK,aAAcK,EAAK,aAAcA,EAAK,YAAY,EAC7F,IAAIryG,EAAI,CAACmnC,EAAO,WAAa2qE,GAAoB5/B,CAAO,EACxD,MAAMpoB,EAAI,CAAC3iB,EAAO,UAClB,OAAIulG,GAAmBr6B,CAAI,EAAE,YAAc,QACzCryG,GAAKoZ,GAAI44F,EAAK,YAAaK,EAAK,WAAW,EAAIj+B,GAE1C,CACL,MAAAA,EACA,OAAAE,EACA,EAAAt0E,EACA,EAAA8pD,CACJ,CACA,CAKA,MAAMukF,GAAgB,GACtB,SAASt8B,GAAgB7/B,EAAS61D,EAAU,CAC1C,MAAM34B,EAAMvE,GAAU34B,CAAO,EACvB8/B,EAAO1F,GAAmBp6B,CAAO,EACjC+/B,EAAiB7C,EAAI,eAC3B,IAAIh7B,EAAQ49B,EAAK,YACb19B,EAAS09B,EAAK,aACdhyG,EAAI,EACJ8pD,EAAI,EACR,GAAImoD,EAAgB,CAClB79B,EAAQ69B,EAAe,MACvB39B,EAAS29B,EAAe,OACxB,MAAMq8B,EAAsBvC,GAAQ,GAChC,CAACuC,GAAuBA,GAAuBvG,IAAa,WAC9D/nI,EAAIiyG,EAAe,WACnBnoD,EAAImoD,EAAe,UAEvB,CACA,MAAMs8B,EAAmBz8B,GAAoBE,CAAI,EAIjD,GAAIu8B,GAAoB,EAAG,CACzB,MAAM/3G,EAAMw7E,EAAK,cACXK,EAAO77E,EAAI,KACXg4G,EAAa,iBAAiBn8B,CAAI,EAClCo8B,EAAmBj4G,EAAI,aAAe,cAAe,WAAWg4G,EAAW,UAAU,EAAI,WAAWA,EAAW,WAAW,GAAK,EAC/HE,EAA+B,KAAK,IAAI18B,EAAK,YAAcK,EAAK,YAAco8B,CAAgB,EAChGC,GAAgCL,KAClCj6D,GAASs6D,EAEb,MAAWH,GAAoBF,KAG7Bj6D,GAASm6D,GAEX,MAAO,CACL,MAAAn6D,EACA,OAAAE,EACA,EAAAt0E,EACA,EAAA8pD,CACJ,CACA,CAEA,MAAM6kF,GAA+B,IAAI,IAAI,CAAC,WAAY,OAAO,CAAC,EAElE,SAAS57B,GAA2B7gC,EAAS61D,EAAU,CACrD,MAAM97B,EAAaR,GAAsBv5B,EAAS,GAAM61D,IAAa,OAAO,EACtEz+B,EAAM2C,EAAW,IAAM/5B,EAAQ,UAC/Bu3B,EAAOwC,EAAW,KAAO/5B,EAAQ,WACjCo7D,EAAQriC,GAAc/4B,CAAO,EAAI46D,GAAS56D,CAAO,EAAIyzD,GAAa,CAAC,EACnEvxD,EAAQlC,EAAQ,YAAco7D,EAAM,EACpCh5D,EAASpC,EAAQ,aAAeo7D,EAAM,EACtCttI,EAAIypG,EAAO6jC,EAAM,EACjBxjF,EAAIw/C,EAAMgkC,EAAM,EACtB,MAAO,CACL,MAAAl5D,EACA,OAAAE,EACA,EAAAt0E,EACA,EAAA8pD,CACJ,CACA,CACA,SAAS8kF,GAAkC18D,EAAS28D,EAAkB9G,EAAU,CAC9E,IAAIp8B,EACJ,GAAIkjC,IAAqB,WACvBljC,EAAOoG,GAAgB7/B,EAAS61D,CAAQ,UAC/B8G,IAAqB,WAC9BljC,EAAOuG,GAAgB5F,GAAmBp6B,CAAO,CAAC,UACzC64B,GAAU8jC,CAAgB,EACnCljC,EAAOoH,GAA2B87B,EAAkB9G,CAAQ,MACvD,CACL,MAAMwF,EAAgBL,GAAiBh7D,CAAO,EAC9Cy5B,EAAO,CACL,EAAGkjC,EAAiB,EAAItB,EAAc,EACtC,EAAGsB,EAAiB,EAAItB,EAAc,EACtC,MAAOsB,EAAiB,MACxB,OAAQA,EAAiB,MAC/B,CACE,CACA,OAAO/7B,GAAiBnH,CAAI,CAC9B,CACA,SAASmjC,GAAyB58D,EAAS68D,EAAU,CACnD,MAAMz9H,EAAai7F,GAAcr6B,CAAO,EACxC,OAAI5gE,IAAey9H,GAAY,CAAChkC,GAAUz5F,CAAU,GAAK06H,GAAsB16H,CAAU,EAChF,GAEFo7H,GAAmBp7H,CAAU,EAAE,WAAa,SAAWw9H,GAAyBx9H,EAAYy9H,CAAQ,CAC7G,CAKA,SAASC,GAA4B98D,EAASt7E,EAAO,CACnD,MAAMq4I,EAAer4I,EAAM,IAAIs7E,CAAO,EACtC,GAAI+8D,EACF,OAAOA,EAET,IAAIruI,EAASurI,GAAqBj6D,EAAS,GAAI,EAAK,EAAE,OAAO78E,GAAM01G,GAAU11G,CAAE,GAAKu1G,GAAYv1G,CAAE,IAAM,MAAM,EAC1G65I,EAAsC,KAC1C,MAAMC,EAAiBzC,GAAmBx6D,CAAO,EAAE,WAAa,QAChE,IAAI26B,EAAcsiC,EAAiB5iC,GAAcr6B,CAAO,EAAIA,EAG5D,KAAO64B,GAAU8B,CAAW,GAAK,CAACm/B,GAAsBn/B,CAAW,GAAG,CACpE,MAAMuiC,EAAgB1C,GAAmB7/B,CAAW,EAC9CwiC,EAA0BzD,GAAkB/+B,CAAW,EACzD,CAACwiC,GAA2BD,EAAc,WAAa,UACzDF,EAAsC,OAEVC,EAAiB,CAACE,GAA2B,CAACH,EAAsC,CAACG,GAA2BD,EAAc,WAAa,UAAY,CAAC,CAACF,GAAuCP,GAAgB,IAAIO,EAAoC,QAAQ,GAAK9D,GAAkBv+B,CAAW,GAAK,CAACwiC,GAA2BP,GAAyB58D,EAAS26B,CAAW,GAG5YjsG,EAASA,EAAO,OAAO0xC,GAAYA,IAAau6D,CAAW,EAG3DqiC,EAAsCE,EAExCviC,EAAcN,GAAcM,CAAW,CACzC,CACA,OAAAj2G,EAAM,IAAIs7E,EAAStxE,CAAM,EAClBA,CACT,CAIA,SAASyyG,GAAgBjpC,EAAM,CAC7B,GAAI,CACF,QAAA8H,EACA,SAAAohC,EACA,aAAAC,EACA,SAAAw0B,CACJ,EAAM39D,EAEJ,MAAMklE,EAAoB,CAAC,GADMh8B,IAAa,oBAAsBk4B,GAAWt5D,CAAO,EAAI,GAAK88D,GAA4B98D,EAAS,KAAK,EAAE,EAAI,GAAG,OAAOohC,CAAQ,EACzGC,CAAY,EAC9Dg8B,EAAwBD,EAAkB,CAAC,EAC3C57B,EAAe47B,EAAkB,OAAO,CAAC37B,EAASk7B,IAAqB,CAC3E,MAAMljC,EAAOijC,GAAkC18D,EAAS28D,EAAkB9G,CAAQ,EAClF,OAAAp0B,EAAQ,IAAMv6F,GAAIuyF,EAAK,IAAKgI,EAAQ,GAAG,EACvCA,EAAQ,MAAQt8C,GAAIs0C,EAAK,MAAOgI,EAAQ,KAAK,EAC7CA,EAAQ,OAASt8C,GAAIs0C,EAAK,OAAQgI,EAAQ,MAAM,EAChDA,EAAQ,KAAOv6F,GAAIuyF,EAAK,KAAMgI,EAAQ,IAAI,EACnCA,CACT,EAAGi7B,GAAkC18D,EAASq9D,EAAuBxH,CAAQ,CAAC,EAC9E,MAAO,CACL,MAAOr0B,EAAa,MAAQA,EAAa,KACzC,OAAQA,EAAa,OAASA,EAAa,IAC3C,EAAGA,EAAa,KAChB,EAAGA,EAAa,GACpB,CACA,CAEA,SAAS87B,GAAct9D,EAAS,CAC9B,KAAM,CACJ,MAAAkC,EACA,OAAAE,CACJ,EAAMm4D,GAAiBv6D,CAAO,EAC5B,MAAO,CACL,MAAAkC,EACA,OAAAE,CACJ,CACA,CAEA,SAASm7D,GAA8Bv9D,EAAS86B,EAAc+6B,EAAU,CACtE,MAAMzsB,EAA0BrQ,GAAc+B,CAAY,EACpDwO,EAAkBlP,GAAmBU,CAAY,EACjD8C,EAAUi4B,IAAa,QACvBp8B,EAAOF,GAAsBv5B,EAAS,GAAM49B,EAAS9C,CAAY,EACvE,IAAI7lE,EAAS,CACX,WAAY,EACZ,UAAW,CACf,EACE,MAAMuoE,EAAUi2B,GAAa,CAAC,EAI9B,SAAS+J,GAA4B,CACnChgC,EAAQ,EAAIoC,GAAoB0J,CAAe,CACjD,CACA,GAAIF,GAA2B,CAACA,GAA2B,CAACxL,EAI1D,IAHIlF,GAAYoC,CAAY,IAAM,QAAUo+B,GAAkB5vB,CAAe,KAC3Er0E,EAAS+zE,GAAclO,CAAY,GAEjCsO,EAAyB,CAC3B,MAAM4yB,EAAaziC,GAAsBuB,EAAc,GAAM8C,EAAS9C,CAAY,EAClF0C,EAAQ,EAAIw+B,EAAW,EAAIlhC,EAAa,WACxC0C,EAAQ,EAAIw+B,EAAW,EAAIlhC,EAAa,SAC1C,MAAWwO,GACTk0B,EAAyB,EAGzB5/B,GAAW,CAACwL,GAA2BE,GACzCk0B,EAAyB,EAE3B,MAAMvB,EAAa3yB,GAAmB,CAACF,GAA2B,CAACxL,EAAUg+B,GAActyB,EAAiBr0E,CAAM,EAAIw+F,GAAa,CAAC,EAC9H3lI,EAAI2rG,EAAK,KAAOxkE,EAAO,WAAauoE,EAAQ,EAAIy+B,EAAW,EAC3DrkF,EAAI6hD,EAAK,IAAMxkE,EAAO,UAAYuoE,EAAQ,EAAIy+B,EAAW,EAC/D,MAAO,CACL,EAAAnuI,EACA,EAAA8pD,EACA,MAAO6hD,EAAK,MACZ,OAAQA,EAAK,MACjB,CACA,CAEA,SAASgkC,GAAmBz9D,EAAS,CACnC,OAAOw6D,GAAmBx6D,CAAO,EAAE,WAAa,QAClD,CAEA,SAASs6B,GAAoBt6B,EAAS09D,EAAU,CAC9C,GAAI,CAAC3kC,GAAc/4B,CAAO,GAAKw6D,GAAmBx6D,CAAO,EAAE,WAAa,QACtE,OAAO,KAET,GAAI09D,EACF,OAAOA,EAAS19D,CAAO,EAEzB,IAAI29D,EAAkB39D,EAAQ,aAM9B,OAAIo6B,GAAmBp6B,CAAO,IAAM29D,IAClCA,EAAkBA,EAAgB,cAAc,MAE3CA,CACT,CAIA,SAAS/iC,GAAgB56B,EAAS09D,EAAU,CAC1C,MAAMxgC,EAAMvE,GAAU34B,CAAO,EAC7B,GAAIs5D,GAAWt5D,CAAO,EACpB,OAAOk9B,EAET,GAAI,CAACnE,GAAc/4B,CAAO,EAAG,CAC3B,IAAI49D,EAAkBvjC,GAAcr6B,CAAO,EAC3C,KAAO49D,GAAmB,CAAC9D,GAAsB8D,CAAe,GAAG,CACjE,GAAI/kC,GAAU+kC,CAAe,GAAK,CAACH,GAAmBG,CAAe,EACnE,OAAOA,EAETA,EAAkBvjC,GAAcujC,CAAe,CACjD,CACA,OAAO1gC,CACT,CACA,IAAIpC,EAAeR,GAAoBt6B,EAAS09D,CAAQ,EACxD,KAAO5iC,GAAgBX,GAAeW,CAAY,GAAK2iC,GAAmB3iC,CAAY,GACpFA,EAAeR,GAAoBQ,EAAc4iC,CAAQ,EAE3D,OAAI5iC,GAAgBg/B,GAAsBh/B,CAAY,GAAK2iC,GAAmB3iC,CAAY,GAAK,CAAC4+B,GAAkB5+B,CAAY,EACrHoC,EAEFpC,GAAgBP,GAAmBv6B,CAAO,GAAKk9B,CACxD,CAEA,MAAM2gC,GAAkB,eAAgBryH,EAAM,CAC5C,MAAMsyH,EAAoB,KAAK,iBAAmBljC,GAC5CmjC,EAAkB,KAAK,cACvBC,EAAqB,MAAMD,EAAgBvyH,EAAK,QAAQ,EAC9D,MAAO,CACL,UAAW+xH,GAA8B/xH,EAAK,UAAW,MAAMsyH,EAAkBtyH,EAAK,QAAQ,EAAGA,EAAK,QAAQ,EAC9G,SAAU,CACR,EAAG,EACH,EAAG,EACH,MAAOwyH,EAAmB,MAC1B,OAAQA,EAAmB,MACjC,CACA,CACA,EAEA,SAASC,GAAMj+D,EAAS,CACtB,OAAOw6D,GAAmBx6D,CAAO,EAAE,YAAc,KACnD,CAEA,MAAM+1D,GAAW,CACf,sDAAA+F,GACF,mBAAE1hC,GACF,gBAAE+G,GACF,gBAAEvG,GACA,gBAAAijC,GACA,eAAA3B,GACA,cAAAoB,GACA,SAAA1C,GACF,UAAE/hC,GACF,MAAEolC,EACF,EAEA,SAASC,GAAc92I,EAAGC,EAAG,CAC3B,OAAOD,EAAE,IAAMC,EAAE,GAAKD,EAAE,IAAMC,EAAE,GAAKD,EAAE,QAAUC,EAAE,OAASD,EAAE,SAAWC,EAAE,MAC7E,CAGA,SAAS82I,GAAYn+D,EAASo+D,EAAQ,CACpC,IAAIC,EAAK,KACLC,EACJ,MAAM1kH,EAAOwgF,GAAmBp6B,CAAO,EACvC,SAASr0E,GAAU,CACjB,IAAI4yI,EACJ,aAAaD,CAAS,GACrBC,EAAMF,IAAO,MAAQE,EAAI,WAAU,EACpCF,EAAK,IACP,CACA,SAAS7wF,EAAQgxF,EAAMnrE,EAAW,CAC5BmrE,IAAS,SACXA,EAAO,IAELnrE,IAAc,SAChBA,EAAY,GAEd1nE,EAAO,EACP,MAAM8yI,EAA2Bz+D,EAAQ,sBAAqB,EACxD,CACJ,KAAAu3B,EACA,IAAAH,EACA,MAAAl1B,EACA,OAAAE,CACN,EAAQq8D,EAIJ,GAHKD,GACHJ,EAAM,EAEJ,CAACl8D,GAAS,CAACE,EACb,OAEF,MAAMs8D,EAAWlL,GAAMp8B,CAAG,EACpBunC,EAAanL,GAAM55G,EAAK,aAAe29E,EAAOr1B,EAAM,EACpD08D,EAAcpL,GAAM55G,EAAK,cAAgBw9E,EAAMh1B,EAAO,EACtDy8D,EAAYrL,GAAMj8B,CAAI,EAEtBzhG,EAAU,CACd,WAFiB,CAAC4oI,EAAW,MAAQ,CAACC,EAAa,MAAQ,CAACC,EAAc,MAAQ,CAACC,EAAY,KAG/F,UAAW33H,GAAI,EAAGi+C,GAAI,EAAGkO,CAAS,CAAC,GAAK,CAC9C,EACI,IAAIyrE,EAAgB,GACpB,SAASC,EAAc52I,EAAS,CAC9B,MAAM62I,EAAQ72I,EAAQ,CAAC,EAAE,kBACzB,GAAI62I,IAAU3rE,EAAW,CACvB,GAAI,CAACyrE,EACH,OAAOtxF,EAAO,EAEXwxF,EAOHxxF,EAAQ,GAAOwxF,CAAK,EAJpBV,EAAY,WAAW,IAAM,CAC3B9wF,EAAQ,GAAO,IAAI,CACrB,EAAG,GAAI,CAIX,CACIwxF,IAAU,GAAK,CAACd,GAAcO,EAA0Bz+D,EAAQ,sBAAqB,CAAE,GAQzFxyB,EAAO,EAETsxF,EAAgB,EAClB,CAIA,GAAI,CACFT,EAAK,IAAI,qBAAqBU,EAAe,CAC3C,GAAGjpI,EAEH,KAAM8jB,EAAK,aACnB,CAAO,CACH,MAAa,CACXykH,EAAK,IAAI,qBAAqBU,EAAejpI,CAAO,CACtD,CACAuoI,EAAG,QAAQr+D,CAAO,CACpB,CACA,OAAAxyB,EAAQ,EAAI,EACL7hD,CACT,CAUA,SAASszI,GAAWpnC,EAAW09B,EAAUx7G,EAAQjkB,EAAS,CACpDA,IAAY,SACdA,EAAU,IAEZ,KAAM,CACJ,eAAAopI,EAAiB,GACjB,eAAAC,EAAiB,GACjB,cAAAC,EAAgB,OAAO,gBAAmB,WAC1C,YAAAC,EAAc,OAAO,sBAAyB,WAC9C,eAAAC,EAAiB,EACrB,EAAMxpI,EACEypI,EAAc5E,GAAc9iC,CAAS,EACrC2nC,EAAYN,GAAkBC,EAAiB,CAAC,GAAII,EAActF,GAAqBsF,CAAW,EAAI,GAAK,GAAGtF,GAAqB1E,CAAQ,CAAC,EAAI,GACtJiK,EAAU,QAAQp/F,GAAY,CAC5B8+F,GAAkB9+F,EAAS,iBAAiB,SAAUrmB,EAAQ,CAC5D,QAAS,EACf,CAAK,EACDolH,GAAkB/+F,EAAS,iBAAiB,SAAUrmB,CAAM,CAC9D,CAAC,EACD,MAAM0lH,EAAYF,GAAeF,EAAclB,GAAYoB,EAAaxlH,CAAM,EAAI,KAClF,IAAI2lH,EAAiB,GACjBC,EAAiB,KACjBP,IACFO,EAAiB,IAAI,eAAeznE,GAAQ,CAC1C,GAAI,CAAC0nE,CAAU,EAAI1nE,EACf0nE,GAAcA,EAAW,SAAWL,GAAeI,IAGrDA,EAAe,UAAUpK,CAAQ,EACjC,qBAAqBmK,CAAc,EACnCA,EAAiB,sBAAsB,IAAM,CAC3C,IAAIG,GACHA,EAAkBF,IAAmB,MAAQE,EAAgB,QAAQtK,CAAQ,CAChF,CAAC,GAEHx7G,EAAM,CACR,CAAC,EACGwlH,GAAe,CAACD,GAClBK,EAAe,QAAQJ,CAAW,EAEpCI,EAAe,QAAQpK,CAAQ,GAEjC,IAAIuK,EACA7kB,EAAcqkB,EAAiB/lC,GAAsB1B,CAAS,EAAI,KAClEynC,GACFS,EAAS,EAEX,SAASA,GAAY,CACnB,MAAMC,EAAczmC,GAAsB1B,CAAS,EAC/CojB,GAAe,CAACijB,GAAcjjB,EAAa+kB,CAAW,GACxDjmH,EAAM,EAERkhG,EAAc+kB,EACdF,EAAU,sBAAsBC,CAAS,CAC3C,CACA,OAAAhmH,EAAM,EACC,IAAM,CACX,IAAIkmH,EACJT,EAAU,QAAQp/F,GAAY,CAC5B8+F,GAAkB9+F,EAAS,oBAAoB,SAAUrmB,CAAM,EAC/DolH,GAAkB/+F,EAAS,oBAAoB,SAAUrmB,CAAM,CACjE,CAAC,EACoB0lH,IAAS,GAC7BQ,EAAmBN,IAAmB,MAAQM,EAAiB,WAAU,EAC1EN,EAAiB,KACbL,GACF,qBAAqBQ,CAAO,CAEhC,CACF,CAmBA,MAAM3rG,GAASmyE,GAeTx1C,GAAQovE,GAQRz8B,GAAOyB,GAsBPvJ,GAAQmB,GAkBR84B,GAAkB,CAAC/9B,EAAW09B,EAAUz/H,IAAY,CAIxD,MAAMpR,EAAQ,IAAI,IACZy7I,EAAgB,CACpB,SAAApK,GACA,GAAGjgI,CACP,EACQsqI,EAAoB,CACxB,GAAGD,EAAc,SACjB,GAAIz7I,CACR,EACE,OAAO27I,GAAkBxoC,EAAW09B,EAAU,CAC5C,GAAG4K,EACH,SAAUC,CACd,CAAG,CACH,ECjwBA,SAASE,GAA0Bh0I,EAAQ,CACzC,OAAOA,GAAU,MAAQ,OAAOA,GAAW,UAAY,QAASA,CAClE,CACA,SAASquI,GAAcruI,EAAQ,CAC7B,GAAIg0I,GAA0Bh0I,CAAM,EAAG,CACrC,MAAM0zE,EAAU1zE,EAAO,IACvB,OAAOysI,GAAO/4D,CAAO,GAAK04B,GAAY14B,CAAO,IAAM,WAAa,KAAOA,CACzE,CACA,OAAO1zE,CACT,CAEA,SAASsH,GAAQC,EAAQ,CACvB,OAAO,OAAOA,GAAW,WAAaA,EAAM,EAAKH,EAAMG,CAAM,CAC/D,CAOA,SAAS8nG,GAAM7lG,EAAS,CACtB,MAAO,CACL,KAAM,QACN,QAAAA,EACA,GAAGjI,EAAM,CACP,MAAMmyE,EAAU26D,GAAc/mI,GAAQkC,EAAQ,OAAO,CAAC,EACtD,OAAIkqE,GAAW,KACN,GAEF88B,GAAQ,CACb,QAAA98B,EACA,QAASlqE,EAAQ,OACzB,CAAO,EAAE,GAAGjI,CAAI,CACZ,CACJ,CACA,CAEA,SAAS0yI,GAAOvgE,EAAS,CACvB,OAAI,OAAO,OAAW,IACb,GAEGA,EAAQ,cAAc,aAAe,QACtC,kBAAoB,CACjC,CAEA,SAASwgE,GAAWxgE,EAAS77E,EAAO,CAClC,MAAMg5G,EAAMojC,GAAOvgE,CAAO,EAC1B,OAAO,KAAK,MAAM77E,EAAQg5G,CAAG,EAAIA,CACnC,CASA,SAASsjC,GAAY5oC,EAAW09B,EAAUz/H,EAAS,CAC7CA,IAAY,SACdA,EAAU,IAEZ,MAAM4qI,EAA6B5qI,EAAQ,qBACrC6qI,EAAa31I,EAAS,IAAM,CAChC,IAAI41I,EACJ,OAAQA,EAAWhtI,GAAQkC,EAAQ,IAAI,IAAM,KAAO8qI,EAAW,EACjE,CAAC,EACKC,EAAmB71I,EAAS,IAAM4I,GAAQkC,EAAQ,UAAU,CAAC,EAC7DgrI,EAAkB91I,EAAS,IAAM,CACrC,IAAI+1I,EACJ,OAAQA,EAAYntI,GAAQkC,EAAQ,SAAS,IAAM,KAAOirI,EAAY,QACxE,CAAC,EACKC,EAAiBh2I,EAAS,IAAM,CACpC,IAAIi2I,EACJ,OAAQA,EAAYrtI,GAAQkC,EAAQ,QAAQ,IAAM,KAAOmrI,EAAY,UACvE,CAAC,EACKC,EAAkBl2I,EAAS,IAAM,CACrC,IAAIm2I,EACJ,OAAQA,EAAYvtI,GAAQkC,EAAQ,SAAS,IAAM,KAAOqrI,EAAY,EACxE,CAAC,EACKC,EAAmBp2I,EAAS,IAAM2vI,GAAc9iC,EAAU,KAAK,CAAC,EAChEwpC,EAAkBr2I,EAAS,IAAM2vI,GAAcpF,EAAS,KAAK,CAAC,EAC9DznI,EAAIsF,GAAI,CAAC,EACTwkD,EAAIxkD,GAAI,CAAC,EACTyiI,EAAWziI,GAAI4tI,EAAe,KAAK,EACnCjpC,EAAY3kG,GAAI0tI,EAAgB,KAAK,EACrC5K,EAAiB5iI,GAAW,EAAE,EAC9BguI,EAAeluI,GAAI,EAAK,EACxBmuI,EAAiBv2I,EAAS,IAAM,CACpC,MAAMkuG,EAAgB,CACpB,SAAU28B,EAAS,MACnB,KAAM,IACN,IAAK,GACX,EACI,GAAI,CAACwL,EAAgB,MACnB,OAAOnoC,EAET,MAAMsoC,EAAOhB,GAAWa,EAAgB,MAAOvzI,EAAE,KAAK,EAChD2zI,EAAOjB,GAAWa,EAAgB,MAAOzpF,EAAE,KAAK,EACtD,OAAIspF,EAAgB,MACX,CACL,GAAGhoC,EACH,UAAW,aAAesoC,EAAO,OAASC,EAAO,MACjD,GAAIlB,GAAOc,EAAgB,KAAK,GAAK,KAAO,CAC1C,WAAY,WACtB,CACA,EAEW,CACL,SAAUxL,EAAS,MACnB,KAAM2L,EAAO,KACb,IAAKC,EAAO,IAClB,CACE,CAAC,EACD,IAAIC,EACJ,SAAS3nH,GAAS,CAChB,GAAIqnH,EAAiB,OAAS,MAAQC,EAAgB,OAAS,KAC7D,OAEF,MAAMM,EAAOhB,EAAW,MACxB/K,GAAgBwL,EAAiB,MAAOC,EAAgB,MAAO,CAC7D,WAAYR,EAAiB,MAC7B,UAAWC,EAAgB,MAC3B,SAAUE,EAAe,KAC/B,CAAK,EAAE,KAAK1tG,GAAY,CAClBxlC,EAAE,MAAQwlC,EAAS,EACnBskB,EAAE,MAAQtkB,EAAS,EACnBuiG,EAAS,MAAQviG,EAAS,SAC1BykE,EAAU,MAAQzkE,EAAS,UAC3B4iG,EAAe,MAAQ5iG,EAAS,eAOhCguG,EAAa,MAAQK,IAAS,EAChC,CAAC,CACH,CACA,SAASh2I,GAAU,CACb,OAAO+1I,GAAgC,aACzCA,EAA2B,EAC3BA,EAA8B,OAElC,CACA,SAASE,GAAS,CAEhB,GADAj2I,EAAO,EACH+0I,IAA+B,OAAW,CAC5C3mH,EAAM,EACN,MACF,CACA,GAAIqnH,EAAiB,OAAS,MAAQC,EAAgB,OAAS,KAAM,CACnEK,EAA8BhB,EAA2BU,EAAiB,MAAOC,EAAgB,MAAOtnH,CAAM,EAC9G,MACF,CACF,CACA,SAAS9R,GAAQ,CACV04H,EAAW,QACdW,EAAa,MAAQ,GAEzB,CACA,OAAA1rI,GAAM,CAACirI,EAAkBC,EAAiBE,EAAgBL,CAAU,EAAG5mH,EAAQ,CAC7E,MAAO,MACX,CAAG,EACDnkB,GAAM,CAACwrI,EAAkBC,CAAe,EAAGO,EAAQ,CACjD,MAAO,MACX,CAAG,EACDhsI,GAAM+qI,EAAY14H,EAAO,CACvB,MAAO,MACX,CAAG,EACGjf,GAAe,GACjBC,GAAe0C,CAAO,EAEjB,CACL,EAAG+G,GAAgB5E,CAAC,EACpB,EAAG4E,GAAgBklD,CAAC,EACpB,SAAUllD,GAAgBmjI,CAAQ,EAClC,UAAWnjI,GAAgBqlG,CAAS,EACpC,eAAgBrlG,GAAgBwjI,CAAc,EAC9C,aAAcxjI,GAAgB4uI,CAAY,EAC1C,eAAAC,EACA,OAAAxnH,CACJ,CACA,CC/GO,MAAM8nH,GAAqB,OAOrBC,GAAoB,MAOpBC,GAAuB,IAOvBC,GAAqB,KAOrBC,GAAuB,IA+GvBC,GAAsB,OAAO,IAAI,mBAAmB,EClL1D,SAASC,GAAc7pF,EAAMn0D,EAAO,CACzC,OAAI,OAAOm0D,GAAS,WAAmBA,EAAKn0D,CAAK,EAE7Cm0D,GAAQ,OAAOA,GAAS,UAAY4pF,MAAuB5pF,EACtDA,EAAK4pF,EAAmB,EAAE/9I,CAAK,EAEpCm0D,aAAgB,KAAa,IAAIA,EAAK,YAAYn0D,CAAK,EAEpD,IAAI,KAAKA,CAAK,CACvB,CCNO,SAAS0oE,GAAOu1E,EAAU/wH,EAAS,CAExC,OAAO8wH,GAAc9wH,GAAW+wH,EAAUA,CAAQ,CACpD,CCdO,SAASC,GAAQ/pF,EAAMgqF,EAAQxsI,EAAS,CAC7C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAI,MAAMwsI,CAAM,EAAUH,GAAcrsI,GAAS,IAAMwiD,EAAM,GAAG,GAG3DgqF,GAELC,EAAM,QAAQA,EAAM,QAAO,EAAKD,CAAM,EAC/BC,EACT,CCLO,SAASC,GAAUlqF,EAAMgqF,EAAQxsI,EAAS,CAC/C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,GAAI,MAAMwsI,CAAM,EAAG,OAAOH,GAA6B7pF,EAAM,GAAG,EAChE,GAAI,CAACgqF,EAEH,OAAOC,EAET,MAAME,EAAaF,EAAM,QAAO,EAU1BG,EAAoBP,GAA6B7pF,EAAMiqF,EAAM,QAAO,CAAE,EAC5EG,EAAkB,SAASH,EAAM,SAAQ,EAAKD,EAAS,EAAG,CAAC,EAC3D,MAAMzpF,EAAc6pF,EAAkB,QAAO,EAC7C,OAAID,GAAc5pF,EAGT6pF,GASPH,EAAM,YACJG,EAAkB,YAAW,EAC7BA,EAAkB,SAAQ,EAC1BD,CACN,EACWF,EAEX,CCjCO,SAAS1rG,GAAIyhB,EAAM3yB,EAAU7vB,EAAS,CAC3C,KAAM,CACJ,MAAA8vD,EAAQ,EACR,OAAAE,EAAS,EACT,MAAAC,EAAQ,EACR,KAAAC,EAAO,EACP,MAAApH,EAAQ,EACR,QAAAC,EAAU,EACV,QAAAoH,EAAU,CACd,EAAMtgC,EAGE48G,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChC6sI,EACJ78E,GAAUF,EAAQ48E,GAAUD,EAAOz8E,EAASF,EAAQ,EAAE,EAAI28E,EAGtDK,EACJ58E,GAAQD,EAAQs8E,GAAQM,EAAgB38E,EAAOD,EAAQ,CAAC,EAAI48E,EAGxDE,EAAehkF,EAAUD,EAAQ,GAEjCkkF,GADe78E,EAAU48E,EAAe,IACf,IAE/B,OAAOV,GAA6B7pF,EAAM,CAACsqF,EAAeE,CAAO,CACnE,CCjEA,IAAIn4B,GAAiB,GAEd,SAASo4B,IAAoB,CAClC,OAAOp4B,EACT,CC8BO,SAASq4B,GAAY1qF,EAAMxiD,EAAS,CACzC,MAAM60G,EAAiBo4B,GAAiB,EAClCE,EACJntI,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1B60G,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEI43B,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCsnD,EAAMmlF,EAAM,OAAM,EAClBhlG,GAAQ6f,EAAM6lF,EAAe,EAAI,GAAK7lF,EAAM6lF,EAElD,OAAAV,EAAM,QAAQA,EAAM,QAAO,EAAKhlG,CAAI,EACpCglG,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCpBO,SAASW,GAAe5qF,EAAMxiD,EAAS,CAC5C,OAAOktI,GAAY1qF,EAAM,CAAE,GAAGxiD,EAAS,aAAc,EAAG,CAC1D,CCJO,SAASqtI,GAAe7qF,EAAMxiD,EAAS,CAC5C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCohD,EAAOqrF,EAAM,YAAW,EAExBa,EAA4BjB,GAAcI,EAAO,CAAC,EACxDa,EAA0B,YAAYlsF,EAAO,EAAG,EAAG,CAAC,EACpDksF,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBH,GAAeE,CAAyB,EAE1DE,EAA4BnB,GAAcI,EAAO,CAAC,EACxDe,EAA0B,YAAYpsF,EAAM,EAAG,CAAC,EAChDosF,EAA0B,SAAS,EAAG,EAAG,EAAG,CAAC,EAC7C,MAAMC,EAAkBL,GAAeI,CAAyB,EAEhE,OAAIf,EAAM,QAAO,GAAMc,EAAgB,QAAO,EACrCnsF,EAAO,EACLqrF,EAAM,QAAO,GAAMgB,EAAgB,QAAO,EAC5CrsF,EAEAA,EAAO,CAElB,CCpCO,SAASssF,GAAgClrF,EAAM,CACpD,MAAMiqF,EAAQ11E,GAAOvU,CAAI,EACnBmrF,EAAU,IAAI,KAClB,KAAK,IACHlB,EAAM,YAAW,EACjBA,EAAM,SAAQ,EACdA,EAAM,QAAO,EACbA,EAAM,SAAQ,EACdA,EAAM,WAAU,EAChBA,EAAM,WAAU,EAChBA,EAAM,gBAAe,CAC3B,CACA,EACE,OAAAkB,EAAQ,eAAelB,EAAM,aAAa,EACnC,CAACjqF,EAAO,CAACmrF,CAClB,CC1BO,SAASC,GAAeryH,KAAYsyH,EAAO,CAChD,MAAMC,EAAYzB,GAAc,KAC9B,KACWwB,EAAM,KAAMrrF,GAAS,OAAOA,GAAS,QAAQ,CAC5D,EACE,OAAOqrF,EAAM,IAAIC,CAAS,CAC5B,CCoBO,SAASC,GAAWvrF,EAAMxiD,EAAS,CACxC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAAysI,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCQO,SAASuB,GAAyBC,EAAWC,EAAaluI,EAAS,CACxE,KAAM,CAACmuI,EAAYC,CAAY,EAAIR,GACjC5tI,GAAS,GACTiuI,EACAC,CACJ,EAEQG,EAAkBN,GAAWI,CAAU,EACvCG,EAAoBP,GAAWK,CAAY,EAE3CG,EACJ,CAACF,EAAkBX,GAAgCW,CAAe,EAC9DG,EACJ,CAACF,EAAoBZ,GAAgCY,CAAiB,EAKxE,OAAO,KAAK,OAAOC,EAAiBC,GAAoBxC,EAAiB,CAC3E,CC1BO,SAASyC,GAAmBjsF,EAAMxiD,EAAS,CAChD,MAAMohD,EAAOisF,GAAe7qF,EAAMxiD,CAAO,EACnC0uI,EAAkBrC,GAA6B7pF,EAAM,CAAC,EAC5D,OAAAksF,EAAgB,YAAYttF,EAAM,EAAG,CAAC,EACtCstF,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BtB,GAAesB,CAAe,CACvC,CCXO,SAASC,GAAYnsF,EAAMgqF,EAAQxsI,EAAS,CACjD,OAAO0sI,GAAUlqF,EAAMgqF,EAAS,EAAGxsI,CAAO,CAC5C,CCFO,SAAS4uI,GAASpsF,EAAMgqF,EAAQxsI,EAAS,CAC9C,OAAO0sI,GAAUlqF,EAAMgqF,EAAS,GAAIxsI,CAAO,CAC7C,CCIO,SAAS6uI,GAAWC,EAAUC,EAAW,CAC9C,MAAMtnG,EAAO,CAACsvB,GAAO+3E,CAAQ,EAAI,CAAC/3E,GAAOg4E,CAAS,EAElD,OAAItnG,EAAO,EAAU,GACZA,EAAO,EAAU,EAGnBA,CACT,CCVO,SAAS55C,GAAOQ,EAAO,CAC5B,OACEA,aAAiB,MAChB,OAAOA,GAAU,UAChB,OAAO,UAAU,SAAS,KAAKA,CAAK,IAAM,eAEhD,CCJO,SAASisD,GAAQkI,EAAM,CAC5B,MAAO,EAAG,CAAC30D,GAAO20D,CAAI,GAAK,OAAOA,GAAS,UAAa,MAAM,CAACuU,GAAOvU,CAAI,CAAC,EAC7E,CCZO,SAASwsF,GAAWxsF,EAAMxiD,EAAS,CACxC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAEtC,OADgB,KAAK,MAAMysI,EAAM,SAAQ,EAAK,CAAC,EAAI,CAErD,CCAO,SAASwC,GAA0BhB,EAAWC,EAAaluI,EAAS,CACzE,KAAM,CAACmuI,EAAYC,CAAY,EAAIR,GACjC5tI,GAAS,GACTiuI,EACAC,CACJ,EACE,OAAOC,EAAW,cAAgBC,EAAa,YAAW,CAC5D,CCnCO,SAASc,GAAkBz2I,EAAQ,CACxC,OAAQ8+B,GAAW,CAEjB,MAAM3+B,GADQH,EAAS,KAAKA,CAAM,EAAI,KAAK,OACtB8+B,CAAM,EAE3B,OAAO3+B,IAAW,EAAI,EAAIA,CAC5B,CACF,CCoBO,SAASu2I,GAAkBlB,EAAWC,EAAaluI,EAAS,CACjE,KAAM,CAACmuI,EAAYC,CAAY,EAAIR,GACjC5tI,GAAS,GACTiuI,EACAC,CACJ,EAIQ5xF,EAAOuyF,GAAWV,EAAYC,CAAY,EAI1C3mG,EAAO,KAAK,IAAIwnG,GAA0Bd,EAAYC,CAAY,CAAC,EAKzED,EAAW,YAAY,IAAI,EAC3BC,EAAa,YAAY,IAAI,EAO7B,MAAMgB,EAAUP,GAAWV,EAAYC,CAAY,IAAM,CAAC9xF,EAEpD1jD,EAAS0jD,GAAQ7U,EAAO,CAAC2nG,GAG/B,OAAOx2I,IAAW,EAAI,EAAIA,CAC5B,CCzDO,SAASy2I,GAAkB9zH,EAASgkD,EAAU,CACnD,KAAM,CAACn8D,EAAOC,CAAG,EAAIuqI,GAAeryH,EAASgkD,EAAS,MAAOA,EAAS,GAAG,EACzE,MAAO,CAAE,MAAAn8D,EAAO,IAAAC,CAAG,CACrB,CCuCO,SAASisI,GAAkB/vE,EAAUv/D,EAAS,CACnD,KAAM,CAAE,MAAAoD,EAAO,IAAAC,CAAG,EAAKgsI,GAAkBrvI,GAAS,GAAIu/D,CAAQ,EAE9D,IAAIgwE,EAAW,CAACnsI,EAAQ,CAACC,EACzB,MAAMmsI,EAAUD,EAAW,CAACnsI,EAAQ,CAACC,EAC/Bm/C,EAAO+sF,EAAWlsI,EAAMD,EAC9Bo/C,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExB,IAAIitF,EAAwB,EAO5B,MAAM5B,EAAQ,GAEd,KAAO,CAACrrF,GAAQgtF,GACd3B,EAAM,KAAKxB,GAAcjpI,EAAOo/C,CAAI,CAAC,EACrCA,EAAK,QAAQA,EAAK,QAAO,EAAKitF,CAAI,EAClCjtF,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAG1B,OAAO+sF,EAAW1B,EAAM,QAAO,EAAKA,CACtC,CCxCO,SAAS6B,GAAeltF,EAAMxiD,EAAS,CAC5C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChC2vI,EAAelD,EAAM,SAAQ,EAC7BlqF,EAAQotF,EAAgBA,EAAe,EAC7C,OAAAlD,EAAM,SAASlqF,EAAO,CAAC,EACvBkqF,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCSO,SAASmD,GAAsBrwE,EAAUv/D,EAAS,CACvD,KAAM,CAAE,MAAAoD,EAAO,IAAAC,CAAG,EAAKgsI,GAAkBrvI,GAAS,GAAIu/D,CAAQ,EAE9D,IAAIgwE,EAAW,CAACnsI,EAAQ,CAACC,EACzB,MAAMmsI,EAAUD,EAAW,CAACG,GAAetsI,CAAK,EAAI,CAACssI,GAAersI,CAAG,EACvE,IAAIm/C,EAAkBktF,GAAXH,EAA0BlsI,EAAsBD,CAAnB,EAEpCqsI,EAAwB,EAO5B,MAAM5B,EAAQ,GAEd,KAAO,CAACrrF,GAAQgtF,GACd3B,EAAM,KAAKxB,GAAcjpI,EAAOo/C,CAAI,CAAC,EACrCA,EAAOmsF,GAAYnsF,EAAMitF,CAAI,EAG/B,OAAOF,EAAW1B,EAAM,QAAO,EAAKA,CACtC,CCrCO,SAASgC,GAAartF,EAAMxiD,EAAS,CAC1C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAAysI,EAAM,QAAQ,CAAC,EACfA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCNO,SAASqD,GAAUttF,EAAMxiD,EAAS,CACvC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCohD,EAAOqrF,EAAM,YAAW,EAC9B,OAAAA,EAAM,YAAYrrF,EAAO,EAAG,EAAG,CAAC,EAChCqrF,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCNO,SAASsD,GAAYvtF,EAAMxiD,EAAS,CACzC,MAAMgwI,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAAgwI,EAAM,YAAYA,EAAM,YAAW,EAAI,EAAG,CAAC,EAC3CA,EAAM,SAAS,EAAG,EAAG,EAAG,CAAC,EAClBA,CACT,CCCO,SAASC,GAAUztF,EAAMxiD,EAAS,CACvC,MAAM60G,EAAiBo4B,GAAiB,EAClCE,EACJntI,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1B60G,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEI43B,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCsnD,EAAMmlF,EAAM,OAAM,EAClBhlG,GAAQ6f,EAAM6lF,EAAe,GAAK,GAAK,GAAK7lF,EAAM6lF,GAExD,OAAAV,EAAM,QAAQA,EAAM,QAAO,EAAKhlG,CAAI,EACpCglG,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCtBO,SAASyD,GAAa1tF,EAAMxiD,EAAS,CAC1C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChC2vI,EAAelD,EAAM,SAAQ,EAC7BlqF,EAAQotF,EAAgBA,EAAe,EAAK,EAClD,OAAAlD,EAAM,SAASlqF,EAAO,CAAC,EACvBkqF,EAAM,SAAS,GAAI,GAAI,GAAI,GAAG,EACvBA,CACT,CCnCA,MAAM0D,GAAuB,CAC3B,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EAEE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EAEE,YAAa,gBAEb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EAEE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,MAAO,CACL,IAAK,QACL,MAAO,gBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,EAEE,QAAS,CACP,IAAK,UACL,MAAO,kBACX,EAEE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EAEE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EAEE,WAAY,CACV,IAAK,cACL,MAAO,sBACX,EAEE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,CACA,EAEaC,GAAiB,CAACzpG,EAAOonD,EAAO/tF,IAAY,CACvD,IAAIpH,EAEJ,MAAMy3I,EAAaF,GAAqBxpG,CAAK,EAS7C,OARI,OAAO0pG,GAAe,SACxBz3I,EAASy3I,EACAtiD,IAAU,EACnBn1F,EAASy3I,EAAW,IAEpBz3I,EAASy3I,EAAW,MAAM,QAAQ,YAAatiD,EAAM,UAAU,EAG7D/tF,GAAS,UACPA,EAAQ,YAAcA,EAAQ,WAAa,EACtC,MAAQpH,EAERA,EAAS,OAIbA,CACT,ECpGO,SAAS03I,GAAkBv4I,EAAM,CACtC,MAAO,CAACiI,EAAU,KAAO,CAEvB,MAAMosE,EAAQpsE,EAAQ,MAAQ,OAAOA,EAAQ,KAAK,EAAIjI,EAAK,aAE3D,OADeA,EAAK,QAAQq0E,CAAK,GAAKr0E,EAAK,QAAQA,EAAK,YAAY,CAEtE,CACF,CCLA,MAAMw4I,GAAc,CAClB,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAEMC,GAAc,CAClB,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAEMC,GAAkB,CACtB,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAEaC,GAAa,CACxB,KAAMJ,GAAkB,CACtB,QAASC,GACT,aAAc,MAClB,CAAG,EAED,KAAMD,GAAkB,CACtB,QAASE,GACT,aAAc,MAClB,CAAG,EAED,SAAUF,GAAkB,CAC1B,QAASG,GACT,aAAc,MAClB,CAAG,CACH,ECtCME,GAAuB,CAC3B,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAEaC,GAAiB,CAACjqG,EAAO8lG,EAAOoE,EAAW5kC,IACtD0kC,GAAqBhqG,CAAK,EC6BrB,SAASmqG,GAAgB/4I,EAAM,CACpC,MAAO,CAAC1J,EAAO2R,IAAY,CACzB,MAAMub,EAAUvb,GAAS,QAAU,OAAOA,EAAQ,OAAO,EAAI,aAE7D,IAAI+wI,EACJ,GAAIx1H,IAAY,cAAgBxjB,EAAK,iBAAkB,CACrD,MAAMi5I,EAAej5I,EAAK,wBAA0BA,EAAK,aACnDq0E,EAAQpsE,GAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIgxI,EAEvDD,EACEh5I,EAAK,iBAAiBq0E,CAAK,GAAKr0E,EAAK,iBAAiBi5I,CAAY,CACtE,KAAO,CACL,MAAMA,EAAej5I,EAAK,aACpBq0E,EAAQpsE,GAAS,MAAQ,OAAOA,EAAQ,KAAK,EAAIjI,EAAK,aAE5Dg5I,EAAch5I,EAAK,OAAOq0E,CAAK,GAAKr0E,EAAK,OAAOi5I,CAAY,CAC9D,CACA,MAAM73I,EAAQpB,EAAK,iBAAmBA,EAAK,iBAAiB1J,CAAK,EAAIA,EAGrE,OAAO0iJ,EAAY53I,CAAK,CAC1B,CACF,CC3DA,MAAM83I,GAAY,CAChB,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAEMC,GAAgB,CACpB,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAMMC,GAAc,CAClB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EAEE,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACJ,CACA,EAEMC,GAAY,CAChB,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACJ,CACA,EAEMC,GAAkB,CACtB,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,CACA,EAEMC,GAA4B,CAChC,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,CACA,EAEMC,GAAgB,CAACC,EAAavlC,IAAa,CAC/C,MAAM10E,EAAS,OAAOi6G,CAAW,EAS3BC,EAASl6G,EAAS,IACxB,GAAIk6G,EAAS,IAAMA,EAAS,GAC1B,OAAQA,EAAS,GAAE,CACjB,IAAK,GACH,OAAOl6G,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,KAClB,IAAK,GACH,OAAOA,EAAS,IACxB,CAEE,OAAOA,EAAS,IAClB,EAEam6G,GAAW,CACtB,cAAAH,GAEA,IAAKT,GAAgB,CACnB,OAAQG,GACR,aAAc,MAClB,CAAG,EAED,QAASH,GAAgB,CACvB,OAAQI,GACR,aAAc,OACd,iBAAmBS,GAAYA,EAAU,CAC7C,CAAG,EAED,MAAOb,GAAgB,CACrB,OAAQK,GACR,aAAc,MAClB,CAAG,EAED,IAAKL,GAAgB,CACnB,OAAQM,GACR,aAAc,MAClB,CAAG,EAED,UAAWN,GAAgB,CACzB,OAAQO,GACR,aAAc,OACd,iBAAkBC,GAClB,uBAAwB,MAC5B,CAAG,CACH,EC1LO,SAASM,GAAa75I,EAAM,CACjC,MAAO,CAACgmD,EAAQ/9C,EAAU,KAAO,CAC/B,MAAMosE,EAAQpsE,EAAQ,MAEhB6xI,EACHzlE,GAASr0E,EAAK,cAAcq0E,CAAK,GAClCr0E,EAAK,cAAcA,EAAK,iBAAiB,EACrC+5I,EAAc/zF,EAAO,MAAM8zF,CAAY,EAE7C,GAAI,CAACC,EACH,OAAO,KAET,MAAMC,EAAgBD,EAAY,CAAC,EAE7BE,EACH5lE,GAASr0E,EAAK,cAAcq0E,CAAK,GAClCr0E,EAAK,cAAcA,EAAK,iBAAiB,EAErCrL,EAAM,MAAM,QAAQslJ,CAAa,EACnCC,GAAUD,EAAgBzgI,GAAYA,EAAQ,KAAKwgI,CAAa,CAAC,EAEjEG,GAAQF,EAAgBzgI,GAAYA,EAAQ,KAAKwgI,CAAa,CAAC,EAEnE,IAAI1jJ,EAEJA,EAAQ0J,EAAK,cAAgBA,EAAK,cAAcrL,CAAG,EAAIA,EACvD2B,EAAQ2R,EAAQ,cAEZA,EAAQ,cAAc3R,CAAK,EAC3BA,EAEJ,MAAM+iF,EAAOrzB,EAAO,MAAMg0F,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA1jJ,EAAO,KAAA+iF,CAAI,CACtB,CACF,CAEA,SAAS8gE,GAAQ96I,EAAQ+6I,EAAW,CAClC,UAAWzlJ,KAAO0K,EAChB,GACE,OAAO,UAAU,eAAe,KAAKA,EAAQ1K,CAAG,GAChDylJ,EAAU/6I,EAAO1K,CAAG,CAAC,EAErB,OAAOA,CAIb,CAEA,SAASulJ,GAAU16I,EAAO46I,EAAW,CACnC,QAASzlJ,EAAM,EAAGA,EAAM6K,EAAM,OAAQ7K,IACpC,GAAIylJ,EAAU56I,EAAM7K,CAAG,CAAC,EACtB,OAAOA,CAIb,CCxDO,SAAS0lJ,GAAoBr6I,EAAM,CACxC,MAAO,CAACgmD,EAAQ/9C,EAAU,KAAO,CAC/B,MAAM8xI,EAAc/zF,EAAO,MAAMhmD,EAAK,YAAY,EAClD,GAAI,CAAC+5I,EAAa,OAAO,KACzB,MAAMC,EAAgBD,EAAY,CAAC,EAE7BO,EAAct0F,EAAO,MAAMhmD,EAAK,YAAY,EAClD,GAAI,CAACs6I,EAAa,OAAO,KACzB,IAAIhkJ,EAAQ0J,EAAK,cACbA,EAAK,cAAcs6I,EAAY,CAAC,CAAC,EACjCA,EAAY,CAAC,EAGjBhkJ,EAAQ2R,EAAQ,cAAgBA,EAAQ,cAAc3R,CAAK,EAAIA,EAE/D,MAAM+iF,EAAOrzB,EAAO,MAAMg0F,EAAc,MAAM,EAE9C,MAAO,CAAE,MAAA1jJ,EAAO,KAAA+iF,CAAI,CACtB,CACF,CChBA,MAAMkhE,GAA4B,wBAC5BC,GAA4B,OAE5BC,GAAmB,CACvB,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EACMC,GAAmB,CACvB,IAAK,CAAC,MAAO,SAAS,CACxB,EAEMC,GAAuB,CAC3B,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EACMC,GAAuB,CAC3B,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAEMC,GAAqB,CACzB,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EACMC,GAAqB,CACzB,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EAEE,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACJ,CACA,EAEMC,GAAmB,CACvB,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EACMC,GAAmB,CACvB,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAEMC,GAAyB,CAC7B,OAAQ,6DACR,IAAK,gFACP,EACMC,GAAyB,CAC7B,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACX,CACA,EAEa7rG,GAAQ,CACnB,cAAegrG,GAAoB,CACjC,aAAcE,GACd,aAAcC,GACd,cAAgBlkJ,GAAU,SAASA,EAAO,EAAE,CAChD,CAAG,EAED,IAAKujJ,GAAa,CAChB,cAAeY,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,QAASb,GAAa,CACpB,cAAec,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgBx5I,GAAUA,EAAQ,CACtC,CAAG,EAED,MAAOy4I,GAAa,CAClB,cAAegB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,IAAKjB,GAAa,CAChB,cAAekB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EAED,UAAWnB,GAAa,CACtB,cAAeoB,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,CACH,ECrHaC,GAAO,CAClB,KAAM,QACN,eAAgB9C,GAChB,WAAYM,GACZ,eAAgBE,GAChB,SAAUc,GACV,MAAOtqG,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CAC3B,CACA,ECCO,SAAS+rG,GAAa3wF,EAAMxiD,EAAS,CAC1C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAGtC,OAFaguI,GAAyBvB,EAAOsD,GAAYtD,CAAK,CAAC,EACtC,CAE3B,CCFO,SAAS2G,GAAW5wF,EAAMxiD,EAAS,CACxC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCynC,EAAO,CAAC2lG,GAAeX,CAAK,EAAI,CAACgC,GAAmBhC,CAAK,EAK/D,OAAO,KAAK,MAAMhlG,EAAOskG,EAAkB,EAAI,CACjD,CCMO,SAASsH,GAAY7wF,EAAMxiD,EAAS,CACzC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCohD,EAAOqrF,EAAM,YAAW,EAExB53B,EAAiBo4B,GAAiB,EAClCqG,EACJtzI,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1B60G,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEI0+B,EAAsBlH,GAAcrsI,GAAS,IAAMwiD,EAAM,CAAC,EAChE+wF,EAAoB,YAAYnyF,EAAO,EAAG,EAAGkyF,CAAqB,EAClEC,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAMhG,EAAkBL,GAAYqG,EAAqBvzI,CAAO,EAE1DwzI,EAAsBnH,GAAcrsI,GAAS,IAAMwiD,EAAM,CAAC,EAChEgxF,EAAoB,YAAYpyF,EAAM,EAAGkyF,CAAqB,EAC9DE,EAAoB,SAAS,EAAG,EAAG,EAAG,CAAC,EACvC,MAAM/F,EAAkBP,GAAYsG,EAAqBxzI,CAAO,EAEhE,MAAI,CAACysI,GAAS,CAACc,EACNnsF,EAAO,EACL,CAACqrF,GAAS,CAACgB,EACbrsF,EAEAA,EAAO,CAElB,CC1BO,SAASqyF,GAAgBjxF,EAAMxiD,EAAS,CAC7C,MAAM60G,EAAiBo4B,GAAiB,EAClCqG,EACJtzI,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1B60G,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIzzD,EAAOiyF,GAAY7wF,EAAMxiD,CAAO,EAChC0zI,EAAYrH,GAAcrsI,GAAS,IAAMwiD,EAAM,CAAC,EACtD,OAAAkxF,EAAU,YAAYtyF,EAAM,EAAGkyF,CAAqB,EACpDI,EAAU,SAAS,EAAG,EAAG,EAAG,CAAC,EACfxG,GAAYwG,EAAW1zI,CAAO,CAE9C,CClBO,SAAS2zI,GAAQnxF,EAAMxiD,EAAS,CACrC,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCynC,EAAO,CAACylG,GAAYT,EAAOzsI,CAAO,EAAI,CAACyzI,GAAgBhH,EAAOzsI,CAAO,EAK3E,OAAO,KAAK,MAAMynC,EAAOskG,EAAkB,EAAI,CACjD,CCnDO,SAAS6H,GAAgBr8G,EAAQ2kB,EAAc,CACpD,MAAMI,EAAO/kB,EAAS,EAAI,IAAM,GAC1BykB,EAAS,KAAK,IAAIzkB,CAAM,EAAE,WAAW,SAAS2kB,EAAc,GAAG,EACrE,OAAOI,EAAON,CAChB,CCWO,MAAM63F,GAAkB,CAE7B,EAAErxF,EAAM7b,EAAO,CAUb,MAAMmtG,EAAatxF,EAAK,YAAW,EAE7BpB,EAAO0yF,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOF,GAAgBjtG,IAAU,KAAOya,EAAO,IAAMA,EAAMza,EAAM,MAAM,CACzE,EAGA,EAAE6b,EAAM7b,EAAO,CACb,MAAM4b,EAAQC,EAAK,SAAQ,EAC3B,OAAO7b,IAAU,IAAM,OAAO4b,EAAQ,CAAC,EAAIqxF,GAAgBrxF,EAAQ,EAAG,CAAC,CACzE,EAGA,EAAEC,EAAM7b,EAAO,CACb,OAAOitG,GAAgBpxF,EAAK,QAAO,EAAI7b,EAAM,MAAM,CACrD,EAGA,EAAE6b,EAAM7b,EAAO,CACb,MAAMotG,EAAqBvxF,EAAK,SAAQ,EAAK,IAAM,EAAI,KAAO,KAE9D,OAAQ7b,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOotG,EAAmB,YAAW,EACvC,IAAK,MACH,OAAOA,EACT,IAAK,QACH,OAAOA,EAAmB,CAAC,EAC7B,IAAK,OACL,QACE,OAAOA,IAAuB,KAAO,OAAS,MACtD,CACE,EAGA,EAAEvxF,EAAM7b,EAAO,CACb,OAAOitG,GAAgBpxF,EAAK,SAAQ,EAAK,IAAM,GAAI7b,EAAM,MAAM,CACjE,EAGA,EAAE6b,EAAM7b,EAAO,CACb,OAAOitG,GAAgBpxF,EAAK,SAAQ,EAAI7b,EAAM,MAAM,CACtD,EAGA,EAAE6b,EAAM7b,EAAO,CACb,OAAOitG,GAAgBpxF,EAAK,WAAU,EAAI7b,EAAM,MAAM,CACxD,EAGA,EAAE6b,EAAM7b,EAAO,CACb,OAAOitG,GAAgBpxF,EAAK,WAAU,EAAI7b,EAAM,MAAM,CACxD,EAGA,EAAE6b,EAAM7b,EAAO,CACb,MAAMqtG,EAAiBrtG,EAAM,OACvBypB,EAAe5N,EAAK,gBAAe,EACnCyxF,EAAoB,KAAK,MAC7B7jF,EAAe,KAAK,IAAI,GAAI4jF,EAAiB,CAAC,CACpD,EACI,OAAOJ,GAAgBK,EAAmBttG,EAAM,MAAM,CACxD,CACF,EClFMutG,GAAgB,CAGpB,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACT,EAgDaC,GAAa,CAExB,EAAG,SAAU3xF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM3jF,EAAMvL,EAAK,YAAW,EAAK,EAAI,EAAI,EACzC,OAAQ7b,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+qG,EAAS,IAAI3jF,EAAK,CAAE,MAAO,aAAa,CAAE,EAEnD,IAAK,QACH,OAAO2jF,EAAS,IAAI3jF,EAAK,CAAE,MAAO,QAAQ,CAAE,EAE9C,IAAK,OACL,QACE,OAAO2jF,EAAS,IAAI3jF,EAAK,CAAE,MAAO,MAAM,CAAE,CAClD,CACE,EAGA,EAAG,SAAUvL,EAAM7b,EAAO+qG,EAAU,CAElC,GAAI/qG,IAAU,KAAM,CAClB,MAAMmtG,EAAatxF,EAAK,YAAW,EAE7BpB,EAAO0yF,EAAa,EAAIA,EAAa,EAAIA,EAC/C,OAAOpC,EAAS,cAActwF,EAAM,CAAE,KAAM,MAAM,CAAE,CACtD,CAEA,OAAOyyF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU1xI,EAAS,CAC3C,MAAMo0I,EAAiBf,GAAY7wF,EAAMxiD,CAAO,EAE1CutD,EAAW6mF,EAAiB,EAAIA,EAAiB,EAAIA,EAG3D,GAAIztG,IAAU,KAAM,CAClB,MAAM0tG,EAAe9mF,EAAW,IAChC,OAAOqmF,GAAgBS,EAAc,CAAC,CACxC,CAGA,OAAI1tG,IAAU,KACL+qG,EAAS,cAAcnkF,EAAU,CAAE,KAAM,MAAM,CAAE,EAInDqmF,GAAgBrmF,EAAU5mB,EAAM,MAAM,CAC/C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO,CACxB,MAAM2tG,EAAcjH,GAAe7qF,CAAI,EAGvC,OAAOoxF,GAAgBU,EAAa3tG,EAAM,MAAM,CAClD,EAWA,EAAG,SAAU6b,EAAM7b,EAAO,CACxB,MAAMya,EAAOoB,EAAK,YAAW,EAC7B,OAAOoxF,GAAgBxyF,EAAMza,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMnvF,EAAK,SAAQ,EAAK,GAAK,CAAC,EACnD,OAAQ7b,EAAK,CAEX,IAAK,IACH,OAAO,OAAOgrG,CAAO,EAEvB,IAAK,KACH,OAAOiC,GAAgBjC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnvF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAMC,EAAU,KAAK,MAAMnvF,EAAK,SAAQ,EAAK,GAAK,CAAC,EACnD,OAAQ7b,EAAK,CAEX,IAAK,IACH,OAAO,OAAOgrG,CAAO,EAEvB,IAAK,KACH,OAAOiC,GAAgBjC,EAAS,CAAC,EAEnC,IAAK,KACH,OAAOD,EAAS,cAAcC,EAAS,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOD,EAAS,QAAQC,EAAS,CAC/B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUnvF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAMnvF,EAAQC,EAAK,SAAQ,EAC3B,OAAQ7b,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOktG,GAAgB,EAAErxF,EAAM7b,CAAK,EAEtC,IAAK,KACH,OAAO+qG,EAAS,cAAcnvF,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOmvF,EAAS,MAAMnvF,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmvF,EAAS,MAAMnvF,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmvF,EAAS,MAAMnvF,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACE,EAGA,EAAG,SAAUC,EAAM7b,EAAO+qG,EAAU,CAClC,MAAMnvF,EAAQC,EAAK,SAAQ,EAC3B,OAAQ7b,EAAK,CAEX,IAAK,IACH,OAAO,OAAO4b,EAAQ,CAAC,EAEzB,IAAK,KACH,OAAOqxF,GAAgBrxF,EAAQ,EAAG,CAAC,EAErC,IAAK,KACH,OAAOmvF,EAAS,cAAcnvF,EAAQ,EAAG,CAAE,KAAM,QAAS,EAE5D,IAAK,MACH,OAAOmvF,EAAS,MAAMnvF,EAAO,CAC3B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAOmvF,EAAS,MAAMnvF,EAAO,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAOmvF,EAAS,MAAMnvF,EAAO,CAAE,MAAO,OAAQ,QAAS,aAAc,CAC7E,CACE,EAGA,EAAG,SAAUC,EAAM7b,EAAO+qG,EAAU1xI,EAAS,CAC3C,MAAMmlD,EAAOwuF,GAAQnxF,EAAMxiD,CAAO,EAElC,OAAI2mC,IAAU,KACL+qG,EAAS,cAAcvsF,EAAM,CAAE,KAAM,MAAM,CAAE,EAG/CyuF,GAAgBzuF,EAAMxe,EAAM,MAAM,CAC3C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM6C,EAAUnB,GAAW5wF,CAAI,EAE/B,OAAI7b,IAAU,KACL+qG,EAAS,cAAc6C,EAAS,CAAE,KAAM,MAAM,CAAE,EAGlDX,GAAgBW,EAAS5tG,EAAM,MAAM,CAC9C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,OAAI/qG,IAAU,KACL+qG,EAAS,cAAclvF,EAAK,QAAO,EAAI,CAAE,KAAM,OAAQ,EAGzDqxF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,MAAMnsF,EAAY4tF,GAAa3wF,CAAI,EAEnC,OAAI7b,IAAU,KACL+qG,EAAS,cAAcnsF,EAAW,CAAE,KAAM,WAAW,CAAE,EAGzDquF,GAAgBruF,EAAW5e,EAAM,MAAM,CAChD,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM8C,EAAYhyF,EAAK,OAAM,EAC7B,OAAQ7b,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+qG,EAAS,IAAI8C,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUhyF,EAAM7b,EAAO+qG,EAAU1xI,EAAS,CAC3C,MAAMw0I,EAAYhyF,EAAK,OAAM,EACvBiyF,GAAkBD,EAAYx0I,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQ2mC,EAAK,CAEX,IAAK,IACH,OAAO,OAAO8tG,CAAc,EAE9B,IAAK,KACH,OAAOb,GAAgBa,EAAgB,CAAC,EAE1C,IAAK,KACH,OAAO/C,EAAS,cAAc+C,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO/C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUhyF,EAAM7b,EAAO+qG,EAAU1xI,EAAS,CAC3C,MAAMw0I,EAAYhyF,EAAK,OAAM,EACvBiyF,GAAkBD,EAAYx0I,EAAQ,aAAe,GAAK,GAAK,EACrE,OAAQ2mC,EAAK,CAEX,IAAK,IACH,OAAO,OAAO8tG,CAAc,EAE9B,IAAK,KACH,OAAOb,GAAgBa,EAAgB9tG,EAAM,MAAM,EAErD,IAAK,KACH,OAAO+qG,EAAS,cAAc+C,EAAgB,CAAE,KAAM,KAAK,CAAE,EAC/D,IAAK,MACH,OAAO/C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUhyF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM8C,EAAYhyF,EAAK,OAAM,EACvBkyF,EAAeF,IAAc,EAAI,EAAIA,EAC3C,OAAQ7tG,EAAK,CAEX,IAAK,IACH,OAAO,OAAO+tG,CAAY,EAE5B,IAAK,KACH,OAAOd,GAAgBc,EAAc/tG,EAAM,MAAM,EAEnD,IAAK,KACH,OAAO+qG,EAAS,cAAcgD,EAAc,CAAE,KAAM,KAAK,CAAE,EAE7D,IAAK,MACH,OAAOhD,EAAS,IAAI8C,EAAW,CAC7B,MAAO,cACP,QAAS,YACnB,CAAS,EAEH,IAAK,QACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,QACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OAAO9C,EAAS,IAAI8C,EAAW,CAC7B,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUhyF,EAAM7b,EAAO+qG,EAAU,CAElC,MAAMqC,EADQvxF,EAAK,SAAQ,EACQ,IAAM,EAAI,KAAO,KAEpD,OAAQ7b,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO+qG,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOrC,EACJ,UAAUqC,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,YAAW,EAChB,IAAK,QACH,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUvxF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM5oF,EAAQtG,EAAK,SAAQ,EAC3B,IAAIuxF,EASJ,OARIjrF,IAAU,GACZirF,EAAqBG,GAAc,KAC1BprF,IAAU,EACnBirF,EAAqBG,GAAc,SAEnCH,EAAqBjrF,EAAQ,IAAM,EAAI,KAAO,KAGxCniB,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAO+qG,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,MACH,OAAOrC,EACJ,UAAUqC,EAAoB,CAC7B,MAAO,cACP,QAAS,YACrB,CAAW,EACA,YAAW,EAChB,IAAK,QACH,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUvxF,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM5oF,EAAQtG,EAAK,SAAQ,EAC3B,IAAIuxF,EAWJ,OAVIjrF,GAAS,GACXirF,EAAqBG,GAAc,QAC1BprF,GAAS,GAClBirF,EAAqBG,GAAc,UAC1BprF,GAAS,EAClBirF,EAAqBG,GAAc,QAEnCH,EAAqBG,GAAc,MAG7BvtG,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OAAO+qG,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,cACP,QAAS,YACnB,CAAS,EACH,IAAK,QACH,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OAAOrC,EAAS,UAAUqC,EAAoB,CAC5C,MAAO,OACP,QAAS,YACnB,CAAS,CACT,CACE,EAGA,EAAG,SAAUvxF,EAAM7b,EAAO+qG,EAAU,CAClC,GAAI/qG,IAAU,KAAM,CAClB,IAAImiB,EAAQtG,EAAK,SAAQ,EAAK,GAC9B,OAAIsG,IAAU,IAAGA,EAAQ,IAClB4oF,EAAS,cAAc5oF,EAAO,CAAE,KAAM,MAAM,CAAE,CACvD,CAEA,OAAO+qF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,OAAI/qG,IAAU,KACL+qG,EAAS,cAAclvF,EAAK,SAAQ,EAAI,CAAE,KAAM,OAAQ,EAG1DqxF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,MAAM5oF,EAAQtG,EAAK,SAAQ,EAAK,GAEhC,OAAI7b,IAAU,KACL+qG,EAAS,cAAc5oF,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhD8qF,GAAgB9qF,EAAOniB,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,IAAI5oF,EAAQtG,EAAK,SAAQ,EAGzB,OAFIsG,IAAU,IAAGA,EAAQ,IAErBniB,IAAU,KACL+qG,EAAS,cAAc5oF,EAAO,CAAE,KAAM,MAAM,CAAE,EAGhD8qF,GAAgB9qF,EAAOniB,EAAM,MAAM,CAC5C,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,OAAI/qG,IAAU,KACL+qG,EAAS,cAAclvF,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DqxF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO+qG,EAAU,CAClC,OAAI/qG,IAAU,KACL+qG,EAAS,cAAclvF,EAAK,WAAU,EAAI,CAAE,KAAM,SAAU,EAG9DqxF,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAO,CACxB,OAAOktG,GAAgB,EAAErxF,EAAM7b,CAAK,CACtC,EAGA,EAAG,SAAU6b,EAAM7b,EAAOguG,EAAW,CACnC,MAAMC,EAAiBpyF,EAAK,kBAAiB,EAE7C,GAAIoyF,IAAmB,EACrB,MAAO,IAGT,OAAQjuG,EAAK,CAEX,IAAK,IACH,OAAOkuG,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACE,EAGA,EAAG,SAAUpyF,EAAM7b,EAAOguG,EAAW,CACnC,MAAMC,EAAiBpyF,EAAK,kBAAiB,EAE7C,OAAQ7b,EAAK,CAEX,IAAK,IACH,OAAOkuG,GAAkCD,CAAc,EAKzD,IAAK,OACL,IAAK,KACH,OAAOE,GAAeF,CAAc,EAKtC,IAAK,QACL,IAAK,MACL,QACE,OAAOE,GAAeF,EAAgB,GAAG,CACjD,CACE,EAGA,EAAG,SAAUpyF,EAAM7b,EAAOguG,EAAW,CACnC,MAAMC,EAAiBpyF,EAAK,kBAAiB,EAE7C,OAAQ7b,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQouG,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACE,EAGA,EAAG,SAAUpyF,EAAM7b,EAAOguG,EAAW,CACnC,MAAMC,EAAiBpyF,EAAK,kBAAiB,EAE7C,OAAQ7b,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,MAAO,MAAQouG,GAAoBH,EAAgB,GAAG,EAExD,IAAK,OACL,QACE,MAAO,MAAQE,GAAeF,EAAgB,GAAG,CACzD,CACE,EAGA,EAAG,SAAUpyF,EAAM7b,EAAOguG,EAAW,CACnC,MAAMK,EAAY,KAAK,MAAM,CAACxyF,EAAO,GAAI,EACzC,OAAOoxF,GAAgBoB,EAAWruG,EAAM,MAAM,CAChD,EAGA,EAAG,SAAU6b,EAAM7b,EAAOguG,EAAW,CACnC,OAAOf,GAAgB,CAACpxF,EAAM7b,EAAM,MAAM,CAC5C,CACF,EAEA,SAASouG,GAAoB12G,EAAQ42G,EAAY,GAAI,CACnD,MAAM34F,EAAOje,EAAS,EAAI,IAAM,IAC1B62G,EAAY,KAAK,IAAI72G,CAAM,EAC3ByqB,EAAQ,KAAK,MAAMosF,EAAY,EAAE,EACjCnsF,EAAUmsF,EAAY,GAC5B,OAAInsF,IAAY,EACPzM,EAAO,OAAOwM,CAAK,EAErBxM,EAAO,OAAOwM,CAAK,EAAImsF,EAAYrB,GAAgB7qF,EAAS,CAAC,CACtE,CAEA,SAAS8rF,GAAkCx2G,EAAQ42G,EAAW,CAC5D,OAAI52G,EAAS,KAAO,GACLA,EAAS,EAAI,IAAM,KAClBu1G,GAAgB,KAAK,IAAIv1G,CAAM,EAAI,GAAI,CAAC,EAEjDy2G,GAAez2G,EAAQ42G,CAAS,CACzC,CAEA,SAASH,GAAez2G,EAAQ42G,EAAY,GAAI,CAC9C,MAAM34F,EAAOje,EAAS,EAAI,IAAM,IAC1B62G,EAAY,KAAK,IAAI72G,CAAM,EAC3ByqB,EAAQ8qF,GAAgB,KAAK,MAAMsB,EAAY,EAAE,EAAG,CAAC,EACrDnsF,EAAU6qF,GAAgBsB,EAAY,GAAI,CAAC,EACjD,OAAO54F,EAAOwM,EAAQmsF,EAAYlsF,CACpC,CCvwBA,MAAMosF,GAAoB,CAAC5jI,EAASm/H,IAAe,CACjD,OAAQn/H,EAAO,CACb,IAAK,IACH,OAAOm/H,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEM0E,GAAoB,CAAC7jI,EAASm/H,IAAe,CACjD,OAAQn/H,EAAO,CACb,IAAK,IACH,OAAOm/H,EAAW,KAAK,CAAE,MAAO,OAAO,CAAE,EAC3C,IAAK,KACH,OAAOA,EAAW,KAAK,CAAE,MAAO,QAAQ,CAAE,EAC5C,IAAK,MACH,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,EAC1C,IAAK,OACL,QACE,OAAOA,EAAW,KAAK,CAAE,MAAO,MAAM,CAAE,CAC9C,CACA,EAEM2E,GAAwB,CAAC9jI,EAASm/H,IAAe,CACrD,MAAMoB,EAAcvgI,EAAQ,MAAM,WAAW,GAAK,GAC5C+jI,EAAcxD,EAAY,CAAC,EAC3ByD,EAAczD,EAAY,CAAC,EAEjC,GAAI,CAACyD,EACH,OAAOJ,GAAkB5jI,EAASm/H,CAAU,EAG9C,IAAI8E,EAEJ,OAAQF,EAAW,CACjB,IAAK,IACHE,EAAiB9E,EAAW,SAAS,CAAE,MAAO,OAAO,CAAE,EACvD,MACF,IAAK,KACH8E,EAAiB9E,EAAW,SAAS,CAAE,MAAO,QAAQ,CAAE,EACxD,MACF,IAAK,MACH8E,EAAiB9E,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,MACF,IAAK,OACL,QACE8E,EAAiB9E,EAAW,SAAS,CAAE,MAAO,MAAM,CAAE,EACtD,KACN,CAEE,OAAO8E,EACJ,QAAQ,WAAYL,GAAkBG,EAAa5E,CAAU,CAAC,EAC9D,QAAQ,WAAY0E,GAAkBG,EAAa7E,CAAU,CAAC,CACnE,EAEa+E,GAAiB,CAC5B,EAAGL,GACH,EAAGC,EACL,EC/DMK,GAAmB,OACnBC,GAAkB,OAElBC,GAAc,CAAC,IAAK,KAAM,KAAM,MAAM,EAErC,SAASC,GAA0BlvG,EAAO,CAC/C,OAAO+uG,GAAiB,KAAK/uG,CAAK,CACpC,CAEO,SAASmvG,GAAyBnvG,EAAO,CAC9C,OAAOgvG,GAAgB,KAAKhvG,CAAK,CACnC,CAEO,SAASovG,GAA0BpvG,EAAOmT,EAAQP,EAAO,CAC9D,MAAMy8F,EAAWvwG,GAAQkB,EAAOmT,EAAQP,CAAK,EAE7C,GADA,QAAQ,KAAKy8F,CAAQ,EACjBJ,GAAY,SAASjvG,CAAK,EAAG,MAAM,IAAI,WAAWqvG,CAAQ,CAChE,CAEA,SAASvwG,GAAQkB,EAAOmT,EAAQP,EAAO,CACrC,MAAMu0B,EAAUnnC,EAAM,CAAC,IAAM,IAAM,QAAU,oBAC7C,MAAO,SAASA,EAAM,YAAW,CAAE,mBAAmBA,CAAK,YAAYmT,CAAM,sBAAsBg0B,CAAO,mBAAmBv0B,CAAK,iFACpI,CCKA,MAAM08F,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MACpBC,GAAgC,WAoS/B,SAASv8F,GAAO0I,EAAM8zF,EAAWt2I,EAAS,CAC/C,MAAM60G,EAAiBo4B,GAAiB,EAClClzF,EAAS/5C,GAAS,QAAU60G,EAAe,QAAU0hC,GAErDjD,EACJtzI,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1B60G,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIs4B,EACJntI,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1B60G,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEI2hC,EAAez/E,GAAOvU,EAAMxiD,GAAS,EAAE,EAE7C,GAAI,CAACs6C,GAAQk8F,CAAY,EACvB,MAAM,IAAI,WAAW,oBAAoB,EAG3C,IAAIxlF,EAAQslF,EACT,MAAMJ,EAA0B,EAChC,IAAKO,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,KAAOA,IAAmB,IAAK,CACpD,MAAMC,EAAgBlB,GAAeiB,CAAc,EACnD,OAAOC,EAAcF,EAAW18F,EAAO,UAAU,CACnD,CACA,OAAO08F,CACT,CAAC,EACA,KAAK,EAAE,EACP,MAAMR,EAAsB,EAC5B,IAAKQ,GAAc,CAElB,GAAIA,IAAc,KAChB,MAAO,CAAE,QAAS,GAAO,MAAO,GAAG,EAGrC,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,IAAmB,IACrB,MAAO,CAAE,QAAS,GAAO,MAAOE,GAAmBH,CAAS,CAAC,EAG/D,GAAItC,GAAWuC,CAAc,EAC3B,MAAO,CAAE,QAAS,GAAM,MAAOD,CAAS,EAG1C,GAAIC,EAAe,MAAML,EAA6B,EACpD,MAAM,IAAI,WACR,iEACEK,EACA,GACZ,EAGM,MAAO,CAAE,QAAS,GAAO,MAAOD,CAAS,CAC3C,CAAC,EAGC18F,EAAO,SAAS,eAClBiX,EAAQjX,EAAO,SAAS,aAAay8F,EAAcxlF,CAAK,GAG1D,MAAM6lF,EAAmB,CACvB,sBAAAvD,EACA,aAAAnG,EACA,OAAApzF,CACJ,EAEE,OAAOiX,EACJ,IAAK8lF,GAAS,CACb,GAAI,CAACA,EAAK,QAAS,OAAOA,EAAK,MAE/B,MAAMnwG,EAAQmwG,EAAK,OAGhB,CAAC92I,GAAS,6BACT81I,GAAyBnvG,CAAK,GAC/B,CAAC3mC,GAAS,8BACT61I,GAA0BlvG,CAAK,IAEjCovG,GAA0BpvG,EAAO2vG,EAAW,OAAO9zF,CAAI,CAAC,EAG1D,MAAMu0F,EAAY5C,GAAWxtG,EAAM,CAAC,CAAC,EACrC,OAAOowG,EAAUP,EAAc7vG,EAAOoT,EAAO,SAAU88F,CAAgB,CACzE,CAAC,EACA,KAAK,EAAE,CACZ,CAEA,SAASD,GAAmBr9F,EAAO,CACjC,MAAMzX,EAAUyX,EAAM,MAAM48F,EAAmB,EAE/C,OAAKr0G,EAIEA,EAAQ,CAAC,EAAE,QAAQs0G,GAAmB,GAAG,EAHvC78F,CAIX,CCtZO,SAASy9F,GAAOx0F,EAAMxiD,EAAS,CACpC,OAAO+2D,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,OAAM,CACzC,CCDO,SAAS+jD,GAAevB,EAAMxiD,EAAS,CAC5C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCohD,EAAOqrF,EAAM,YAAW,EACxBwK,EAAaxK,EAAM,SAAQ,EAC3ByK,EAAiB7K,GAAcI,EAAO,CAAC,EAC7C,OAAAyK,EAAe,YAAY91F,EAAM61F,EAAa,EAAG,CAAC,EAClDC,EAAe,SAAS,EAAG,EAAG,EAAG,CAAC,EAC3BA,EAAe,QAAO,CAC/B,CCPO,SAASjK,IAAoB,CAClC,OAAO,OAAO,OAAO,GAAIkK,GAAyB,CAAE,CACtD,CCJO,SAASC,GAAS50F,EAAMxiD,EAAS,CACtC,OAAO+2D,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,SAAQ,CAC3C,CCCO,SAASq3I,GAAU70F,EAAMxiD,EAAS,CACvC,MAAMsnD,EAAMyP,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,OAAM,EAC5C,OAAOsnD,IAAQ,EAAI,EAAIA,CACzB,CCNO,SAASgwF,GAAW90F,EAAMxiD,EAAS,CACxC,OAAO+2D,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,WAAU,CAC7C,CCFO,SAASu3I,GAAS/0F,EAAMxiD,EAAS,CACtC,OAAO+2D,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,SAAQ,CAC3C,CCPO,SAASw3I,GAAWh1F,EAAM,CAC/B,OAAOuU,GAAOvU,CAAI,EAAE,WAAU,CAChC,CCGO,SAASi1F,GAAQj1F,EAAMxiD,EAAS,CACrC,OAAO+2D,GAAOvU,EAAMxiD,GAAS,EAAE,EAAE,YAAW,CAC9C,CCNO,SAASm0D,GAAQ3R,EAAMk1F,EAAe,CAC3C,MAAO,CAAC3gF,GAAOvU,CAAI,EAAI,CAACuU,GAAO2gF,CAAa,CAC9C,CCFO,SAASrjF,GAAS7R,EAAMk1F,EAAe,CAC5C,MAAO,CAAC3gF,GAAOvU,CAAI,EAAI,CAACuU,GAAO2gF,CAAa,CAC9C,CCCO,SAASC,GAAQC,EAAUC,EAAW,CAC3C,MAAO,CAAC9gF,GAAO6gF,CAAQ,GAAM,CAAC7gF,GAAO8gF,CAAS,CAChD,CCKO,SAASC,GAAUt1F,EAAMu1F,EAAa,CAC3C,MAAM/H,EAAQgI,GAAcD,CAAW,EACnC,IAAIA,EAAY,CAAC,EACjB1L,GAAc0L,EAAa,CAAC,EAChC,OAAA/H,EAAM,YAAYxtF,EAAK,YAAW,EAAIA,EAAK,SAAQ,EAAIA,EAAK,SAAS,EACrEwtF,EAAM,SACJxtF,EAAK,SAAQ,EACbA,EAAK,WAAU,EACfA,EAAK,WAAU,EACfA,EAAK,gBAAe,CACxB,EACSwtF,CACT,CAEA,SAASgI,GAAcD,EAAa,CAClC,OACE,OAAOA,GAAgB,YACvBA,EAAY,WAAW,cAAgBA,CAE3C,CC9CA,MAAME,GAAyB,GAExB,MAAMC,EAAO,CAClB,YAAc,EAEd,SAASC,EAAUlsC,EAAU,CAC3B,MAAO,EACT,CACF,CAEO,MAAMmsC,WAAoBF,EAAO,CACtC,YACE7pJ,EAEAgqJ,EAEAC,EAEAC,EACAC,EACA,CACA,MAAK,EACL,KAAK,MAAQnqJ,EACb,KAAK,cAAgBgqJ,EACrB,KAAK,SAAWC,EAChB,KAAK,SAAWC,EACZC,IACF,KAAK,YAAcA,EAEvB,CAEA,SAASh2F,EAAMxiD,EAAS,CACtB,OAAO,KAAK,cAAcwiD,EAAM,KAAK,MAAOxiD,CAAO,CACrD,CAEA,IAAIwiD,EAAMjI,EAAOv6C,EAAS,CACxB,OAAO,KAAK,SAASwiD,EAAMjI,EAAO,KAAK,MAAOv6C,CAAO,CACvD,CACF,CAEO,MAAMy4I,WAA2BP,EAAO,CAC7C,SAAWD,GACX,YAAc,GAEd,YAAY18H,EAASwmF,EAAW,CAC9B,MAAK,EACL,KAAK,QAAUxmF,IAAainC,GAAS6pF,GAActqC,EAAWv/C,CAAI,EACpE,CAEA,IAAIA,EAAMjI,EAAO,CACf,OAAIA,EAAM,eAAuBiI,EAC1B6pF,GAAc7pF,EAAMs1F,GAAUt1F,EAAM,KAAK,OAAO,CAAC,CAC1D,CACF,CCtDO,MAAMk2F,EAAO,CAClB,IAAIC,EAAYhyG,EAAOS,EAAOpnC,EAAS,CACrC,MAAMpH,EAAS,KAAK,MAAM+/I,EAAYhyG,EAAOS,EAAOpnC,CAAO,EAC3D,OAAKpH,EAIE,CACL,OAAQ,IAAIw/I,GACVx/I,EAAO,MACP,KAAK,SACL,KAAK,IACL,KAAK,SACL,KAAK,WACb,EACM,KAAMA,EAAO,IACnB,EAZa,IAaX,CAEA,SAASu/I,EAAUS,EAAQ3sC,EAAU,CACnC,MAAO,EACT,CACF,CCtBO,MAAM4sC,WAAkBH,EAAO,CACpC,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACES,EAAM,IAAIuxG,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9CvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAQ,CAAE,EAI7C,IAAK,QACH,OAAOvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAQ,CAAE,EAElD,IAAK,OACL,QACE,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,MAAM,CAAE,GACvCvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,aAAa,CAAE,GAC9CvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAQ,CAAE,CAEnD,CACE,CAEA,IAAIn2F,EAAMjI,EAAOlsD,EAAO,CACtB,OAAAksD,EAAM,IAAMlsD,EACZm0D,EAAK,YAAYn0D,EAAO,EAAG,CAAC,EAC5Bm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,CAC1C,CCtCO,MAAMs2F,GAAkB,CAC7B,MAAO,iBACP,KAAM,qBACN,UAAW,kCACX,KAAM,qBACN,QAAS,qBACT,QAAS,qBACT,QAAS,iBACT,QAAS,iBACT,OAAQ,YACR,OAAQ,YAER,YAAa,MACb,UAAW,WACX,YAAa,WACb,WAAY,WAEZ,gBAAiB,SACjB,kBAAmB,QACnB,gBAAiB,aACjB,kBAAmB,aACnB,iBAAkB,YACpB,EAEaC,GAAmB,CAC9B,qBAAsB,2BACtB,MAAO,0BACP,qBAAsB,oCACtB,SAAU,2BACV,wBAAyB,qCAC3B,ECtBO,SAASC,GAASC,EAAeC,EAAO,CAC7C,OAAKD,GAIE,CACL,MAAOC,EAAMD,EAAc,KAAK,EAChC,KAAMA,EAAc,IACxB,CACA,CAEO,SAASE,GAAoB5nI,EAASonI,EAAY,CACvD,MAAM7G,EAAc6G,EAAW,MAAMpnI,CAAO,EAE5C,OAAKugI,EAIE,CACL,MAAO,SAASA,EAAY,CAAC,EAAG,EAAE,EAClC,KAAM6G,EAAW,MAAM7G,EAAY,CAAC,EAAE,MAAM,CAChD,EANW,IAOX,CAEO,SAASsH,GAAqB7nI,EAASonI,EAAY,CACxD,MAAM7G,EAAc6G,EAAW,MAAMpnI,CAAO,EAE5C,GAAI,CAACugI,EACH,OAAO,KAIT,GAAIA,EAAY,CAAC,IAAM,IACrB,MAAO,CACL,MAAO,EACP,KAAM6G,EAAW,MAAM,CAAC,CAC9B,EAGE,MAAMr8F,EAAOw1F,EAAY,CAAC,IAAM,IAAM,EAAI,GACpChpF,EAAQgpF,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EACxD/oF,EAAU+oF,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAC1D3hF,EAAU2hF,EAAY,CAAC,EAAI,SAASA,EAAY,CAAC,EAAG,EAAE,EAAI,EAEhE,MAAO,CACL,MACEx1F,GACCwM,EAAQojF,GACPnjF,EAAUkjF,GACV97E,EAAUg8E,IACd,KAAMwM,EAAW,MAAM7G,EAAY,CAAC,EAAE,MAAM,CAChD,CACA,CAEO,SAASuH,GAAqBV,EAAY,CAC/C,OAAOQ,GAAoBL,GAAgB,gBAAiBH,CAAU,CACxE,CAEO,SAASW,GAAazpJ,EAAG8oJ,EAAY,CAC1C,OAAQ9oJ,EAAC,CACP,IAAK,GACH,OAAOspJ,GAAoBL,GAAgB,YAAaH,CAAU,EACpE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,UAAWH,CAAU,EAClE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,YAAaH,CAAU,EACpE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,WAAYH,CAAU,EACnE,QACE,OAAOQ,GAAoB,IAAI,OAAO,UAAYtpJ,EAAI,GAAG,EAAG8oJ,CAAU,CAC5E,CACA,CAEO,SAASY,GAAmB1pJ,EAAG8oJ,EAAY,CAChD,OAAQ9oJ,EAAC,CACP,IAAK,GACH,OAAOspJ,GAAoBL,GAAgB,kBAAmBH,CAAU,EAC1E,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,gBAAiBH,CAAU,EACxE,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,kBAAmBH,CAAU,EAC1E,IAAK,GACH,OAAOQ,GAAoBL,GAAgB,iBAAkBH,CAAU,EACzE,QACE,OAAOQ,GAAoB,IAAI,OAAO,YAActpJ,EAAI,GAAG,EAAG8oJ,CAAU,CAC9E,CACA,CAEO,SAASa,GAAqBC,EAAW,CAC9C,OAAQA,EAAS,CACf,IAAK,UACH,MAAO,GACT,IAAK,UACH,MAAO,IACT,IAAK,KACL,IAAK,OACL,IAAK,YACH,MAAO,IACT,IAAK,KACL,IAAK,WACL,IAAK,QACL,QACE,MAAO,EACb,CACA,CAEO,SAASC,GAAsBrF,EAAcsF,EAAa,CAC/D,MAAMC,EAAcD,EAAc,EAK5BE,EAAiBD,EAAcD,EAAc,EAAIA,EAEvD,IAAI/gJ,EACJ,GAAIihJ,GAAkB,GACpBjhJ,EAASy7I,GAAgB,QACpB,CACL,MAAMyF,EAAWD,EAAiB,GAC5BE,EAAkB,KAAK,MAAMD,EAAW,GAAG,EAAI,IAC/CE,EAAoB3F,GAAgByF,EAAW,IACrDlhJ,EAASy7I,EAAe0F,GAAmBC,EAAoB,IAAM,EACvE,CAEA,OAAOJ,EAAchhJ,EAAS,EAAIA,CACpC,CAEO,SAASqhJ,GAAgB74F,EAAM,CACpC,OAAOA,EAAO,MAAQ,GAAMA,EAAO,IAAM,GAAKA,EAAO,MAAQ,CAC/D,CC7HO,MAAM84F,WAAmBxB,EAAO,CACrC,SAAW,IACX,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAEtE,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,MAAM+yG,EAAiB/4F,IAAU,CAC/B,KAAAA,EACA,eAAgBza,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAOqyG,GAASM,GAAa,EAAGX,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDwB,CACV,EACM,QACE,OAAOnB,GAASM,GAAa3yG,EAAM,OAAQgyG,CAAU,EAAGwB,CAAa,CAC7E,CACE,CAEA,SAAS1N,EAAOp+I,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAC9C,CAEA,IAAIm0D,EAAMjI,EAAOlsD,EAAO,CACtB,MAAMsrJ,EAAcn3F,EAAK,YAAW,EAEpC,GAAIn0D,EAAM,eAAgB,CACxB,MAAM+rJ,EAAyBV,GAC7BrrJ,EAAM,KACNsrJ,CACR,EACM,OAAAn3F,EAAK,YAAY43F,EAAwB,EAAG,CAAC,EAC7C53F,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,MAAMpB,EACJ,EAAE,QAAS7G,IAAUA,EAAM,MAAQ,EAAIlsD,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAAm0D,EAAK,YAAYpB,EAAM,EAAG,CAAC,EAC3BoB,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CACF,CCpDO,MAAM63F,WAA4B3B,EAAO,CAC9C,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,MAAM+yG,EAAiB/4F,IAAU,CAC/B,KAAAA,EACA,eAAgBza,IAAU,IAChC,GAEI,OAAQA,EAAK,CACX,IAAK,IACH,OAAOqyG,GAASM,GAAa,EAAGX,CAAU,EAAGwB,CAAa,EAC5D,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,MAClB,CAAW,EACDwB,CACV,EACM,QACE,OAAOnB,GAASM,GAAa3yG,EAAM,OAAQgyG,CAAU,EAAGwB,CAAa,CAC7E,CACE,CAEA,SAAS1N,EAAOp+I,EAAO,CACrB,OAAOA,EAAM,gBAAkBA,EAAM,KAAO,CAC9C,CAEA,IAAIm0D,EAAMjI,EAAOlsD,EAAO2R,EAAS,CAC/B,MAAM25I,EAActG,GAAY7wF,EAAMxiD,CAAO,EAE7C,GAAI3R,EAAM,eAAgB,CACxB,MAAM+rJ,EAAyBV,GAC7BrrJ,EAAM,KACNsrJ,CACR,EACM,OAAAn3F,EAAK,YACH43F,EACA,EACAp6I,EAAQ,qBAChB,EACMwiD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjB0qF,GAAY1qF,EAAMxiD,CAAO,CAClC,CAEA,MAAMohD,EACJ,EAAE,QAAS7G,IAAUA,EAAM,MAAQ,EAAIlsD,EAAM,KAAO,EAAIA,EAAM,KAChE,OAAAm0D,EAAK,YAAYpB,EAAM,EAAGphD,EAAQ,qBAAqB,EACvDwiD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjB0qF,GAAY1qF,EAAMxiD,CAAO,CAClC,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCpEO,MAAMs6I,WAA0B5B,EAAO,CAC5C,SAAW,IAEX,MAAMC,EAAYhyG,EAAO,CACvB,OACS4yG,GADL5yG,IAAU,IACc,EAGFA,EAAM,OAHDgyG,CAAU,CAI3C,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,MAAMmsJ,EAAkBnO,GAAc7pF,EAAM,CAAC,EAC7C,OAAAg4F,EAAgB,YAAYnsJ,EAAO,EAAG,CAAC,EACvCmsJ,EAAgB,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5BpN,GAAeoN,CAAe,CACvC,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCtCO,MAAMC,WAA2B/B,EAAO,CAC7C,SAAW,IAEX,MAAMC,EAAYhyG,EAAO,CACvB,OACS4yG,GADL5yG,IAAU,IACc,EAGFA,EAAM,OAHDgyG,CAAU,CAI3C,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,YAAYn0D,EAAO,EAAG,CAAC,EAC5Bm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CAC7E,CClBO,MAAMk4F,WAAsBhC,EAAO,CACxC,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO2yG,GAAa3yG,EAAM,OAAQgyG,CAAU,EAE9C,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACEvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,EAIL,IAAK,QACH,OAAOvxG,EAAM,QAAQuxG,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,UAAUn0D,EAAQ,GAAK,EAAG,CAAC,EAChCm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC7EO,MAAMm4F,WAAgCjC,EAAO,CAClD,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO2yG,GAAa3yG,EAAM,OAAQgyG,CAAU,EAE9C,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,SAAS,CAAE,EAE5D,IAAK,MACH,OACEvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,EAIL,IAAK,QACH,OAAOvxG,EAAM,QAAQuxG,EAAY,CAC/B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,OACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,QAAQuxG,EAAY,CACxB,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,UAAUn0D,EAAQ,GAAK,EAAG,CAAC,EAChCm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC5EO,MAAMo4F,WAAoBlC,EAAO,CACtC,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,EAEE,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,MAAM+yG,EAAiB9rJ,GAAUA,EAAQ,EAEzC,OAAQs4C,EAAK,CAEX,IAAK,IACH,OAAOqyG,GACLG,GAAoBL,GAAgB,MAAOH,CAAU,EACrDwB,CACV,EAEM,IAAK,KACH,OAAOnB,GAASM,GAAa,EAAGX,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDwB,CACV,EAEM,IAAK,MACH,OACE/yG,EAAM,MAAMuxG,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAItE,IAAK,QACH,OAAOvxG,EAAM,MAAMuxG,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChEvxG,EAAM,MAAMuxG,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE5E,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASn0D,EAAO,CAAC,EACtBm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CACF,CC/EO,MAAMq4F,WAA8BnC,EAAO,CAChD,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,MAAM+yG,EAAiB9rJ,GAAUA,EAAQ,EAEzC,OAAQs4C,EAAK,CAEX,IAAK,IACH,OAAOqyG,GACLG,GAAoBL,GAAgB,MAAOH,CAAU,EACrDwB,CACV,EAEM,IAAK,KACH,OAAOnB,GAASM,GAAa,EAAGX,CAAU,EAAGwB,CAAa,EAE5D,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,OAClB,CAAW,EACDwB,CACV,EAEM,IAAK,MACH,OACE/yG,EAAM,MAAMuxG,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAItE,IAAK,QACH,OAAOvxG,EAAM,MAAMuxG,EAAY,CAC7B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,OACL,QACE,OACEvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAChEvxG,EAAM,MAAMuxG,EAAY,CACtB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,MAAMuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE5E,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASn0D,EAAO,CAAC,EACtBm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCvCO,SAASs4F,GAAQt4F,EAAM2C,EAAMnlD,EAAS,CAC3C,MAAMgwI,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCynC,EAAOksG,GAAQ3D,EAAOhwI,CAAO,EAAImlD,EACvC,OAAA6qF,EAAM,QAAQA,EAAM,QAAO,EAAKvoG,EAAO,CAAC,EACjCsvB,GAAOi5E,EAAOhwI,GAAS,EAAE,CAClC,CC1CO,MAAM+6I,WAAwBrC,EAAO,CAC1C,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO2R,EAAS,CAChC,OAAOktI,GAAY4N,GAAQt4F,EAAMn0D,EAAO2R,CAAO,EAAGA,CAAO,CAC3D,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCdO,SAASg7I,GAAWx4F,EAAM2C,EAAMnlD,EAAS,CAC9C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCynC,EAAO2rG,GAAW3G,EAAOzsI,CAAO,EAAImlD,EAC1C,OAAAsnF,EAAM,QAAQA,EAAM,QAAO,EAAKhlG,EAAO,CAAC,EACjCglG,CACT,CC5BO,MAAMwO,WAAsBvC,EAAO,CACxC,SAAW,IAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAO++I,GAAe4N,GAAWx4F,EAAMn0D,CAAK,CAAC,CAC/C,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCrCA,MAAM6sJ,GAAgB,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAE,EAC/DC,GAA0B,CAC9B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC9C,EAGO,MAAMC,WAAmB1C,EAAO,CACrC,SAAW,GACX,YAAc,EAEd,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,KAAMH,CAAU,EAC7D,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASn2F,EAAMn0D,EAAO,CACpB,MAAM+yD,EAAOoB,EAAK,YAAW,EACvBrB,EAAa84F,GAAgB74F,CAAI,EACjCmB,EAAQC,EAAK,SAAQ,EAC3B,OAAIrB,EACK9yD,GAAS,GAAKA,GAAS8sJ,GAAwB54F,CAAK,EAEpDl0D,GAAS,GAAKA,GAAS6sJ,GAAc34F,CAAK,CAErD,CAEA,IAAIC,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,QAAQn0D,CAAK,EAClBm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCpDO,MAAM64F,WAAwB3C,EAAO,CAC1C,SAAW,GAEX,YAAc,EAEd,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACL,IAAK,KACH,OAAOwyG,GAAoBL,GAAgB,UAAWH,CAAU,EAClE,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASn2F,EAAMn0D,EAAO,CACpB,MAAM+yD,EAAOoB,EAAK,YAAW,EAE7B,OADmBy3F,GAAgB74F,CAAI,EAE9B/yD,GAAS,GAAKA,GAAS,IAEvBA,GAAS,GAAKA,GAAS,GAElC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAAS,EAAGn0D,CAAK,EACtBm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCxBO,SAAS84F,GAAO94F,EAAM8E,EAAKtnD,EAAS,CACzC,MAAM60G,EAAiBo4B,GAAiB,EAClCE,EACJntI,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1B60G,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEIm7B,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCu7I,EAAavL,EAAM,OAAM,EAGzBwL,GADYl0F,EAAM,EACM,GAAK,EAE7BxoB,EAAQ,EAAIquG,EACZ1lG,EACJ6f,EAAM,GAAKA,EAAM,EACbA,GAAQi0F,EAAaz8G,GAAS,GAC5B08G,EAAW18G,GAAS,GAAOy8G,EAAaz8G,GAAS,EACzD,OAAOytG,GAAQyD,EAAOvoG,EAAMznC,CAAO,CACrC,CCpDO,MAAMy7I,WAAkB/C,EAAO,CACpC,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CAEX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACES,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAOvxG,EAAM,IAAIuxG,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,OACL,QACE,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9DvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO2R,EAAS,CAChC,OAAAwiD,EAAO84F,GAAO94F,EAAMn0D,EAAO2R,CAAO,EAClCwiD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CCvDO,MAAMk5F,WAAuBhD,EAAO,CACzC,SAAW,GACX,MAAMC,EAAYhyG,EAAOS,EAAOpnC,EAAS,CACvC,MAAMm6I,EAAiB9rJ,GAAU,CAE/B,MAAMstJ,EAAgB,KAAK,OAAOttJ,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQ2R,EAAQ,aAAe,GAAK,EAAK27I,CACpD,EAEA,OAAQh1G,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOqyG,GAASM,GAAa3yG,EAAM,OAAQgyG,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDwB,CACV,EAEM,IAAK,MACH,OACE/yG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAOvxG,EAAM,IAAIuxG,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,OACL,QACE,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9DvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO2R,EAAS,CAChC,OAAAwiD,EAAO84F,GAAO94F,EAAMn0D,EAAO2R,CAAO,EAClCwiD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CCxFO,MAAMo5F,WAAiClD,EAAO,CACnD,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAOpnC,EAAS,CACvC,MAAMm6I,EAAiB9rJ,GAAU,CAE/B,MAAMstJ,EAAgB,KAAK,OAAOttJ,EAAQ,GAAK,CAAC,EAAI,EACpD,OAASA,EAAQ2R,EAAQ,aAAe,GAAK,EAAK27I,CACpD,EAEA,OAAQh1G,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAOqyG,GAASM,GAAa3yG,EAAM,OAAQgyG,CAAU,EAAGwB,CAAa,EAEvE,IAAK,KACH,OAAOnB,GACL5xG,EAAM,cAAcuxG,EAAY,CAC9B,KAAM,KAClB,CAAW,EACDwB,CACV,EAEM,IAAK,MACH,OACE/yG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,QACH,OAAOvxG,EAAM,IAAIuxG,EAAY,CAC3B,MAAO,SACP,QAAS,YACnB,CAAS,EAEH,IAAK,SACH,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,EAIpE,IAAK,OACL,QACE,OACEvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,OAAQ,QAAS,aAAc,GAC9DvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,QAAS,QAAS,aAAc,GAC/DvxG,EAAM,IAAIuxG,EAAY,CAAE,MAAO,SAAU,QAAS,YAAY,CAAE,CAE1E,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO2R,EAAS,CAChC,OAAAwiD,EAAO84F,GAAO94F,EAAMn0D,EAAO2R,CAAO,EAClCwiD,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CC/DO,SAASq5F,GAAUr5F,EAAM8E,EAAKtnD,EAAS,CAC5C,MAAMgwI,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCu7I,EAAalE,GAAUrH,EAAOhwI,CAAO,EACrCynC,EAAO6f,EAAMi0F,EACnB,OAAOhP,GAAQyD,EAAOvoG,EAAMznC,CAAO,CACrC,CC/BO,MAAM87I,WAAqBpD,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,MAAM+yG,EAAiB9rJ,GACjBA,IAAU,EACL,EAEFA,EAGT,OAAQs4C,EAAK,CAEX,IAAK,IACL,IAAK,KACH,OAAO2yG,GAAa3yG,EAAM,OAAQgyG,CAAU,EAE9C,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,KAAK,CAAE,EAExD,IAAK,MACH,OAAOK,GACL5xG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACrB,CAAW,GACCvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACDvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACV,EAEM,IAAK,QACH,OAAOnB,GACL5xG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,SACP,QAAS,YACrB,CAAW,EACDwB,CACV,EAEM,IAAK,SACH,OAAOnB,GACL5xG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,QACP,QAAS,YACrB,CAAW,GACCvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACV,EAEM,IAAK,OACL,QACE,OAAOnB,GACL5xG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,OACP,QAAS,YACrB,CAAW,GACCvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,cACP,QAAS,YACvB,CAAa,GACDvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,QACP,QAAS,YACvB,CAAa,GACDvxG,EAAM,IAAIuxG,EAAY,CACpB,MAAO,SACP,QAAS,YACvB,CAAa,EACHwB,CACV,CACA,CACE,CAEA,SAAS1N,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,CAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAOq5F,GAAUr5F,EAAMn0D,CAAK,EAC5Bm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EACjBA,CACT,CAEA,mBAAqB,CACnB,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACJ,CACA,CChHO,MAAMu5F,WAAmBrD,EAAO,CACrC,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACES,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAOvxG,EAAM,UAAUuxG,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASg3F,GAAqBnrJ,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3Cm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CCjDO,MAAMw5F,WAA2BtD,EAAO,CAC7C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACES,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAOvxG,EAAM,UAAUuxG,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASg3F,GAAqBnrJ,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3Cm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACpD,CChDO,MAAMy5F,WAAwBvD,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACL,IAAK,KACL,IAAK,MACH,OACES,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,EAGL,IAAK,QACH,OAAOvxG,EAAM,UAAUuxG,EAAY,CACjC,MAAO,SACP,QAAS,YACnB,CAAS,EACH,IAAK,OACL,QACE,OACEvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,OACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,cACP,QAAS,YACrB,CAAW,GACDvxG,EAAM,UAAUuxG,EAAY,CAC1B,MAAO,SACP,QAAS,YACrB,CAAW,CAEX,CACE,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASg3F,GAAqBnrJ,CAAK,EAAG,EAAG,EAAG,CAAC,EAC3Cm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,GAAG,CAC1C,CCjDO,MAAM05F,WAAwBxD,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,MAAM8tJ,EAAO35F,EAAK,SAAQ,GAAM,GAChC,OAAI25F,GAAQ9tJ,EAAQ,GAClBm0D,EAAK,SAASn0D,EAAQ,GAAI,EAAG,EAAG,CAAC,EACxB,CAAC8tJ,GAAQ9tJ,IAAU,GAC5Bm0D,EAAK,SAAS,EAAG,EAAG,EAAG,CAAC,EAExBA,EAAK,SAASn0D,EAAO,EAAG,EAAG,CAAC,EAEvBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAC/C,CC/BO,MAAM45F,WAAwB1D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,SAASn0D,EAAO,EAAG,EAAG,CAAC,EACrBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACzD,CCxBO,MAAM65F,WAAwB3D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CAEvB,OADam0D,EAAK,SAAQ,GAAM,IACpBn0D,EAAQ,GAClBm0D,EAAK,SAASn0D,EAAQ,GAAI,EAAG,EAAG,CAAC,EAEjCm0D,EAAK,SAASn0D,EAAO,EAAG,EAAG,CAAC,EAEvBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,GAAG,CAC/C,CC7BO,MAAM85F,WAAwB5D,EAAO,CAC1C,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,QAASH,CAAU,EAChE,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,MAAM,CAAE,EACzD,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,MAAMy6D,EAAQz6D,GAAS,GAAKA,EAAQ,GAAKA,EACzC,OAAAm0D,EAAK,SAASsG,EAAO,EAAG,EAAG,CAAC,EACrBtG,CACT,CAEA,mBAAqB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,CACzD,CCzBO,MAAM+5F,WAAqB7D,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,OAAQH,CAAU,EAC/D,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,WAAWn0D,EAAO,EAAG,CAAC,EACpBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCxBO,MAAMg6F,WAAqB9D,EAAO,CACvC,SAAW,GAEX,MAAMC,EAAYhyG,EAAOS,EAAO,CAC9B,OAAQT,EAAK,CACX,IAAK,IACH,OAAOwyG,GAAoBL,GAAgB,OAAQH,CAAU,EAC/D,IAAK,KACH,OAAOvxG,EAAM,cAAcuxG,EAAY,CAAE,KAAM,QAAQ,CAAE,EAC3D,QACE,OAAOW,GAAa3yG,EAAM,OAAQgyG,CAAU,CACpD,CACE,CAEA,SAASlM,EAAOp+I,EAAO,CACrB,OAAOA,GAAS,GAAKA,GAAS,EAChC,CAEA,IAAIm0D,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,WAAWn0D,EAAO,CAAC,EACjBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCzBO,MAAMi6F,WAA+B/D,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAYhyG,EAAO,CACvB,MAAMwzG,EAAiB9rJ,GACrB,KAAK,MAAMA,EAAQ,KAAK,IAAI,GAAI,CAACs4C,EAAM,OAAS,CAAC,CAAC,EACpD,OAAOqyG,GAASM,GAAa3yG,EAAM,OAAQgyG,CAAU,EAAGwB,CAAa,CACvE,CAEA,IAAI33F,EAAM+3F,EAAQlsJ,EAAO,CACvB,OAAAm0D,EAAK,gBAAgBn0D,CAAK,EACnBm0D,CACT,CAEA,mBAAqB,CAAC,IAAK,GAAG,CAChC,CCXO,MAAMk6F,WAA+BhE,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAYhyG,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOyyG,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,KACH,OAAOS,GAAqBL,GAAiB,MAAOJ,CAAU,EAChE,IAAK,OACH,OAAOS,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,QACH,OAAOS,GACLL,GAAiB,wBACjBJ,CACV,EACM,IAAK,MACL,QACE,OAAOS,GAAqBL,GAAiB,SAAUJ,CAAU,CACzE,CACE,CAEA,IAAIn2F,EAAMjI,EAAOlsD,EAAO,CACtB,OAAIksD,EAAM,eAAuBiI,EAC1B6pF,GACL7pF,EACAA,EAAK,QAAO,EAAKkrF,GAAgClrF,CAAI,EAAIn0D,CAC/D,CACE,CAEA,mBAAqB,CAAC,IAAK,IAAK,GAAG,CACrC,CCrCO,MAAMsuJ,WAA0BjE,EAAO,CAC5C,SAAW,GAEX,MAAMC,EAAYhyG,EAAO,CACvB,OAAQA,EAAK,CACX,IAAK,IACH,OAAOyyG,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,KACH,OAAOS,GAAqBL,GAAiB,MAAOJ,CAAU,EAChE,IAAK,OACH,OAAOS,GACLL,GAAiB,qBACjBJ,CACV,EACM,IAAK,QACH,OAAOS,GACLL,GAAiB,wBACjBJ,CACV,EACM,IAAK,MACL,QACE,OAAOS,GAAqBL,GAAiB,SAAUJ,CAAU,CACzE,CACE,CAEA,IAAIn2F,EAAMjI,EAAOlsD,EAAO,CACtB,OAAIksD,EAAM,eAAuBiI,EAC1B6pF,GACL7pF,EACAA,EAAK,QAAO,EAAKkrF,GAAgClrF,CAAI,EAAIn0D,CAC/D,CACE,CAEA,mBAAqB,CAAC,IAAK,IAAK,GAAG,CACrC,CCxCO,MAAMuuJ,WAA+BlE,EAAO,CACjD,SAAW,GAEX,MAAMC,EAAY,CAChB,OAAOU,GAAqBV,CAAU,CACxC,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,MAAO,CAACg+I,GAAc7pF,EAAMn0D,EAAQ,GAAI,EAAG,CAAE,eAAgB,GAAM,CACrE,CAEA,mBAAqB,GACvB,CCZO,MAAMwuJ,WAAoCnE,EAAO,CACtD,SAAW,GAEX,MAAMC,EAAY,CAChB,OAAOU,GAAqBV,CAAU,CACxC,CAEA,IAAIn2F,EAAM+3F,EAAQlsJ,EAAO,CACvB,MAAO,CAACg+I,GAAc7pF,EAAMn0D,CAAK,EAAG,CAAE,eAAgB,GAAM,CAC9D,CAEA,mBAAqB,GACvB,CC0DO,MAAMyuJ,GAAU,CACrB,EAAG,IAAIjE,GACP,EAAG,IAAIqB,GACP,EAAG,IAAIG,GACP,EAAG,IAAIC,GACP,EAAG,IAAIG,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIE,GACP,EAAG,IAAIG,GACP,EAAG,IAAIC,GACP,EAAG,IAAII,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIE,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIE,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,GACP,EAAG,IAAIC,EACT,EC1EM5G,GACJ,wDAIIC,GAA6B,oCAE7BC,GAAsB,eACtBC,GAAoB,MAEpB2G,GAAsB,KACtB1G,GAAgC,WA4S/B,SAASlvG,GAAM61G,EAAS1G,EAAW2G,EAAej9I,EAAS,CAChE,MAAMy9C,EAAc,IAAM4uF,GAAcrsI,GAAS,IAAMi9I,EAAe,GAAG,EACnEpoC,EAAiBo4B,GAAiB,EAClClzF,EAAS/5C,GAAS,QAAU60G,EAAe,QAAU0hC,GAErDjD,EACJtzI,GAAS,uBACTA,GAAS,QAAQ,SAAS,uBAC1B60G,EAAe,uBACfA,EAAe,QAAQ,SAAS,uBAChC,EAEIs4B,EACJntI,GAAS,cACTA,GAAS,QAAQ,SAAS,cAC1B60G,EAAe,cACfA,EAAe,QAAQ,SAAS,cAChC,EAEF,GAAI,CAACyhC,EACH,OAAO0G,EAAUv/F,EAAW,EAAKsZ,GAAOkmF,EAAej9I,GAAS,EAAE,EAEpE,MAAMk9I,EAAe,CACnB,sBAAA5J,EACA,aAAAnG,EACA,OAAApzF,CACJ,EAIQ7sB,EAAU,CAAC,IAAIurH,GAAmBz4I,GAAS,GAAIi9I,CAAa,CAAC,EAE7Dr3G,EAAS0wG,EACZ,MAAMJ,EAA0B,EAChC,IAAKO,GAAc,CAClB,MAAMC,EAAiBD,EAAU,CAAC,EAClC,GAAIC,KAAkBjB,GAAgB,CACpC,MAAMkB,EAAgBlB,GAAeiB,CAAc,EACnD,OAAOC,EAAcF,EAAW18F,EAAO,UAAU,CACnD,CACA,OAAO08F,CACT,CAAC,EACA,KAAK,EAAE,EACP,MAAMR,EAAsB,EAEzBkH,EAAa,GAEnB,QAASx2G,KAASf,EAAQ,CAEtB,CAAC5lC,GAAS,6BACV81I,GAAyBnvG,CAAK,GAE9BovG,GAA0BpvG,EAAO2vG,EAAW0G,CAAO,EAGnD,CAACh9I,GAAS,8BACV61I,GAA0BlvG,CAAK,GAE/BovG,GAA0BpvG,EAAO2vG,EAAW0G,CAAO,EAGrD,MAAMtG,EAAiB/vG,EAAM,CAAC,EACxBqB,EAAS80G,GAAQpG,CAAc,EACrC,GAAI1uG,EAAQ,CACV,KAAM,CAAE,mBAAAo1G,CAAkB,EAAKp1G,EAC/B,GAAI,MAAM,QAAQo1G,CAAkB,EAAG,CACrC,MAAMC,EAAoBF,EAAW,KAClCG,GACCF,EAAmB,SAASE,EAAU,KAAK,GAC3CA,EAAU,QAAU5G,CAChC,EACQ,GAAI2G,EACF,MAAM,IAAI,WACR,uCAAuCA,EAAkB,SAAS,YAAY12G,CAAK,qBAC/F,CAEM,SAAWqB,EAAO,qBAAuB,KAAOm1G,EAAW,OAAS,EAClE,MAAM,IAAI,WACR,uCAAuCx2G,CAAK,yCACtD,EAGMw2G,EAAW,KAAK,CAAE,MAAOzG,EAAgB,UAAW/vG,EAAO,EAE3D,MAAM0rG,EAAcrqG,EAAO,IACzBg1G,EACAr2G,EACAoT,EAAO,MACPmjG,CACR,EAEM,GAAI,CAAC7K,EACH,OAAO50F,EAAW,EAGpBvwB,EAAQ,KAAKmlH,EAAY,MAAM,EAE/B2K,EAAU3K,EAAY,IACxB,KAAO,CACL,GAAIqE,EAAe,MAAML,EAA6B,EACpD,MAAM,IAAI,WACR,iEACEK,EACA,GACZ,EAWM,GAPI/vG,IAAU,KACZA,EAAQ,IACC+vG,IAAmB,MAC5B/vG,EAAQiwG,GAAmBjwG,CAAK,GAI9Bq2G,EAAQ,QAAQr2G,CAAK,IAAM,EAC7Bq2G,EAAUA,EAAQ,MAAMr2G,EAAM,MAAM,MAEpC,QAAO8W,EAAW,CAEtB,CACF,CAGA,GAAIu/F,EAAQ,OAAS,GAAKD,GAAoB,KAAKC,CAAO,EACxD,OAAOv/F,EAAW,EAGpB,MAAM8/F,EAAwBrwH,EAC3B,IAAKhuB,GAAWA,EAAO,QAAQ,EAC/B,KAAK,CAAC5N,EAAGC,IAAMA,EAAID,CAAC,EACpB,OAAO,CAACinJ,EAAUp/I,EAAO5B,IAAUA,EAAM,QAAQghJ,CAAQ,IAAMp/I,CAAK,EACpE,IAAKo/I,GACJrrH,EACG,OAAQhuB,GAAWA,EAAO,WAAaq5I,CAAQ,EAC/C,KAAK,CAACjnJ,EAAGC,IAAMA,EAAE,YAAcD,EAAE,WAAW,CACrD,EACK,IAAKksJ,GAAgBA,EAAY,CAAC,CAAC,EAEtC,IAAIh7F,EAAOuU,GAAOkmF,EAAej9I,GAAS,EAAE,EAE5C,GAAI,MAAM,CAACwiD,CAAI,EAAG,OAAO/E,EAAW,EAEpC,MAAMlD,EAAQ,GACd,UAAWr7C,KAAUq+I,EAAuB,CAC1C,GAAI,CAACr+I,EAAO,SAASsjD,EAAM06F,CAAY,EACrC,OAAOz/F,EAAW,EAGpB,MAAM7kD,EAASsG,EAAO,IAAIsjD,EAAMjI,EAAO2iG,CAAY,EAE/C,MAAM,QAAQtkJ,CAAM,GACtB4pD,EAAO5pD,EAAO,CAAC,EACf,OAAO,OAAO2hD,EAAO3hD,EAAO,CAAC,CAAC,GAG9B4pD,EAAO5pD,CAEX,CAEA,OAAO4pD,CACT,CAEA,SAASo0F,GAAmBr9F,EAAO,CACjC,OAAOA,EAAM,MAAM48F,EAAmB,EAAE,CAAC,EAAE,QAAQC,GAAmB,GAAG,CAC3E,CC9dO,SAASqH,GAAcxP,EAAWC,EAAaluI,EAAS,CAC7D,KAAM,CAAC09I,EAAWC,CAAU,EAAI/P,GAC9B5tI,GAAS,GACTiuI,EACAC,CACJ,EACE,MAAO,CAACwB,GAAegO,CAAS,GAAM,CAAChO,GAAeiO,CAAU,CAClE,CCbO,SAASC,GAAQp7F,EAAMgqF,EAAQxsI,EAAS,CAC7C,OAAOusI,GAAQ/pF,EAAM,CAACgqF,EAAQxsI,CAAO,CACvC,CCkBO,SAAS69I,GAAsBr7F,EAAMxiD,EAAS,CACnD,MAAM89I,EAAY99I,GAAS,WAAa,EAExC,GAAI89I,EAAY,GAAKA,EAAY,GAAI,OAAOzR,GAAc7pF,EAAM,GAAG,EAEnE,MAAMwtF,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCi0I,EAAoBjE,EAAM,WAAU,EAAK,GACzC+N,EAAyB/N,EAAM,gBAAe,EAAK,IAAO,GAC1DjnF,EACJinF,EAAM,aAAeiE,EAAoB8J,EAErCtlJ,EAASuH,GAAS,gBAAkB,QAGpCg+I,EAFiB9O,GAAkBz2I,CAAM,EAETswD,EAAU+0F,CAAS,EAAIA,EAE7D,OAAA9N,EAAM,WAAWgO,EAAgB,EAAG,CAAC,EAC9BhO,CACT,CCjCO,SAASnsF,GAASrB,EAAMD,EAAOviD,EAAS,CAC7C,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAChCohD,EAAOqrF,EAAM,YAAW,EACxBnlF,EAAMmlF,EAAM,QAAO,EAEnBwR,EAAW5R,GAA6B7pF,EAAM,CAAC,EACrDy7F,EAAS,YAAY78F,EAAMmB,EAAO,EAAE,EACpC07F,EAAS,SAAS,EAAG,EAAG,EAAG,CAAC,EAC5B,MAAMl7F,EAAcgB,GAAek6F,CAAQ,EAG3C,OAAAxR,EAAM,SAASlqF,EAAO,KAAK,IAAI+E,EAAKvE,CAAW,CAAC,EACzC0pF,CACT,CCDO,SAASpuI,GAAImkD,EAAM1gD,EAAQ9B,EAAS,CACzC,IAAIysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EAGpC,OAAI,MAAM,CAACysI,CAAK,EAAUJ,GAA6B7pF,EAAM,GAAG,GAE5D1gD,EAAO,MAAQ,MAAM2qI,EAAM,YAAY3qI,EAAO,IAAI,EAClDA,EAAO,OAAS,OAAM2qI,EAAQ5oF,GAAS4oF,EAAO3qI,EAAO,KAAK,GAC1DA,EAAO,MAAQ,MAAM2qI,EAAM,QAAQ3qI,EAAO,IAAI,EAC9CA,EAAO,OAAS,MAAM2qI,EAAM,SAAS3qI,EAAO,KAAK,EACjDA,EAAO,SAAW,MAAM2qI,EAAM,WAAW3qI,EAAO,OAAO,EACvDA,EAAO,SAAW,MAAM2qI,EAAM,WAAW3qI,EAAO,OAAO,EACvDA,EAAO,cAAgB,MAAM2qI,EAAM,gBAAgB3qI,EAAO,YAAY,EAEnE2qI,EACT,CC7BO,SAASyR,GAAgB17F,EAAM4N,EAAcpwD,EAAS,CAC3D,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAAysI,EAAM,gBAAgBr8E,CAAY,EAC3Bq8E,CACT,CCJO,SAAS0R,GAAW37F,EAAM2N,EAASnwD,EAAS,CACjD,MAAMysI,EAAQ11E,GAAOvU,EAAMxiD,GAAS,EAAE,EACtC,OAAAysI,EAAM,WAAWt8E,CAAO,EACjBs8E,CACT,CCHO,SAAS2R,GAAQ57F,EAAMpB,EAAMphD,EAAS,CAC3C,MAAMgwI,EAAQj5E,GAAOvU,EAAMxiD,GAAS,EAAE,EAGtC,OAAI,MAAM,CAACgwI,CAAK,EAAU3D,GAA6B7pF,EAAM,GAAG,GAEhEwtF,EAAM,YAAY5uF,CAAI,EACf4uF,EACT,CCTO,SAASqO,GAAU77F,EAAMgqF,EAAQxsI,EAAS,CAC/C,OAAO0sI,GAAUlqF,EAAM,CAACgqF,EAAQxsI,CAAO,CACzC,CCoBO,SAAS3L,GAAImuD,EAAM3yB,EAAU7vB,EAAS,CAC3C,KAAM,CACJ,MAAA8vD,EAAQ,EACR,OAAAE,EAAS,EACT,MAAAC,EAAQ,EACR,KAAAC,EAAO,EACP,MAAApH,EAAQ,EACR,QAAAC,EAAU,EACV,QAAAoH,EAAU,CACd,EAAMtgC,EAEEyuH,EAAgBD,GAAU77F,EAAMwN,EAASF,EAAQ,GAAI9vD,CAAO,EAC5Du+I,EAAcX,GAAQU,EAAepuF,EAAOD,EAAQ,EAAGjwD,CAAO,EAE9Dw+I,EAAez1F,EAAUD,EAAQ,GAEjC21F,GADetuF,EAAUquF,EAAe,IACf,IAE/B,OAAOnS,GAA6B7pF,EAAM,CAAC+7F,EAAcE,CAAO,CAClE,CCzCO,SAASC,GAASl8F,EAAMgqF,EAAQxsI,EAAS,CAC9C,OAAO4uI,GAASpsF,EAAM,CAACgqF,EAAQxsI,CAAO,CACxC,CCHO,SAAS2+I,GAAOC,EAAUp8F,EAAM1I,EAAS,OAAQ,CACtD,OAAO,IAAI,KAAK,eAAe,QAAS,CAEtC,KAAM,UACN,SAAU8kG,EACV,aAAc9kG,CAClB,CAAG,EAAE,OAAO0I,CAAI,EAAE,MAAM,KAAK,EAC1B,MAAM,CAAC,EACP,KAAK,GAAG,CACX,CCpCA,MAAMq8F,GAAoB,GACpBC,GAAc,GAeb,SAASC,GAASH,EAAUp8F,EAAM,CACvC,GAAI,CAKF,MAAMw8F,GAJSH,GAAkBD,CAAQ,IAAM,IAAI,KAAK,eAAe,QAAS,CAC9E,SAAAA,EACA,aAAc,YACpB,CAAK,EAAE,QACsBp8F,CAAI,EAAE,MAAM,KAAK,EAAE,CAAC,EAC7C,OAAIw8F,KAAaF,GAAoBA,GAAYE,CAAS,EACnDC,GAAWD,EAAWA,EAAU,MAAM,GAAG,CAAC,CACnD,MAAQ,CAGN,GAAIJ,KAAYE,GAAa,OAAOA,GAAYF,CAAQ,EACxD,MAAMM,EAAWN,GAAU,MAAMO,EAAQ,EACzC,OAAID,EAAiBD,GAAWL,EAAUM,EAAS,MAAM,CAAC,CAAC,EACpD,GACT,CACF,CACA,MAAMC,GAAW,sBACjB,SAASF,GAAWG,EAAUt9I,EAAQ,CACpC,MAAMgnD,EAAQ,EAAEhnD,EAAO,CAAC,GAAK,GACvBinD,EAAU,EAAEjnD,EAAO,CAAC,GAAK,GAEzBquD,EAAU,EAAEruD,EAAO,CAAC,GAAK,GAAK,GACpC,OAAOg9I,GAAYM,CAAQ,EAAIt2F,EAAQ,GAAKC,EAAU,EAAID,EAAQ,GAAKC,EAAUoH,EAAUrH,EAAQ,GAAKC,EAAUoH,CACpH,CCxCO,MAAMkvF,WAAmB,IAAK,CAGnC,eAAetnJ,EAAM,CACnB,MAAK,EACDA,EAAK,OAAS,GAAK,OAAOA,EAAKA,EAAK,OAAS,CAAC,GAAM,WACtD,KAAK,SAAWA,EAAK,IAAG,GAE1B,KAAK,SAAW,IAAI,KAChB,MAAMgnJ,GAAS,KAAK,SAAU,IAAI,CAAC,EACrC,KAAK,QAAQ,GAAG,EAEXhnJ,EAAK,OAEC,OAAOA,EAAK,CAAC,GAAM,WAAaA,EAAK,SAAW,GAAKA,EAAK,SAAW,GAAK,OAAOA,EAAK,CAAC,GAAM,UACtG,KAAK,QAAQA,EAAK,CAAC,CAAC,EACX,OAAOA,EAAK,CAAC,GAAM,SAC5B,KAAK,QAAQ,CAAC,IAAI,KAAKA,EAAK,CAAC,CAAC,CAAC,EACtBA,EAAK,CAAC,YAAa,KAC5B,KAAK,QAAQ,CAACA,EAAK,CAAC,CAAC,GAErB,KAAK,QAAQ,CAAC,IAAI,KAAK,GAAGA,CAAI,CAAC,EAC/BunJ,GAAiB,IAAS,EAC1BC,GAAe,IAAI,GAVnB,KAAK,QAAQ,KAAK,KAAK,CAa7B,CACA,OAAO,GAAGC,KAAOznJ,EAAM,CACrB,OAAOA,EAAK,OAAS,IAAIsnJ,GAAW,GAAGtnJ,EAAMynJ,CAAE,EAAI,IAAIH,GAAW,KAAK,IAAG,EAAIG,CAAE,CAClF,CAMA,aAAaZ,EAAU,CACrB,OAAO,IAAIS,GAAW,CAAC,KAAMT,CAAQ,CACvC,CACA,mBAAoB,CAClB,MAAMvgH,EAAS,CAAC0gH,GAAS,KAAK,SAAU,IAAI,EAG5C,OAAO1gH,EAAS,EAAI,KAAK,MAAMA,CAAM,EAAI,KAAK,KAAKA,CAAM,CAC3D,CAMA,QAAQ21B,EAAM,CACZ,YAAK,UAAU,QAAQ,MAAM,KAAM,SAAS,EAC5CurF,GAAe,IAAI,EACZ,CAAC,IACV,CAMA,CAAC,OAAO,IAAI,mBAAmB,CAAC,EAAE/8F,EAAM,CACtC,OAAO,IAAI68F,GAAW,CAAC,IAAI,KAAK78F,CAAI,EAAG,KAAK,QAAQ,CACtD,CAGF,CAGA,MAAMtb,GAAK,oBACX,OAAO,oBAAoB,KAAK,SAAS,EAAE,QAAQzuC,GAAU,CAC3D,GAAI,CAACyuC,GAAG,KAAKzuC,CAAM,EAAG,OACtB,MAAMgnJ,EAAYhnJ,EAAO,QAAQyuC,GAAI,OAAO,EAEvCm4G,GAAW,UAAUI,CAAS,IAC/BhnJ,EAAO,WAAW,KAAK,EAEzB4mJ,GAAW,UAAU5mJ,CAAM,EAAI,UAAY,CACzC,OAAO,KAAK,SAASgnJ,CAAS,EAAC,CACjC,GAGAJ,GAAW,UAAU5mJ,CAAM,EAAI,UAAY,CACzC,YAAK,UAAUgnJ,CAAS,EAAE,MAAM,KAAK,SAAU,SAAS,EACxDC,GAAiB,IAAI,EACd,CAAC,IACV,EAGAL,GAAW,UAAUI,CAAS,EAAI,UAAY,CAC5C,YAAK,UAAUA,CAAS,EAAE,MAAM,KAAM,SAAS,EAC/CF,GAAe,IAAI,EACZ,CAAC,IACV,GAEJ,CAAC,EAOD,SAASA,GAAe/8F,EAAM,CAC5BA,EAAK,SAAS,QAAQ,CAACA,CAAI,EAC3BA,EAAK,SAAS,cAAcA,EAAK,SAAS,cAAa,EAAK,KAAK,MAAM,CAACu8F,GAASv8F,EAAK,SAAUA,CAAI,EAAI,EAAE,CAAC,CAC7G,CAQA,SAASk9F,GAAiBl9F,EAAM,CAE9B,KAAK,UAAU,YAAY,KAAKA,EAAMA,EAAK,SAAS,eAAc,EAAIA,EAAK,SAAS,YAAW,EAAIA,EAAK,SAAS,YAAY,EAC7H,KAAK,UAAU,SAAS,KAAKA,EAAMA,EAAK,SAAS,cAAeA,EAAK,SAAS,cAAa,EAAIA,EAAK,SAAS,cAAa,EAAIA,EAAK,SAAS,oBAAoB,EAGhK88F,GAAiB98F,CAAI,CACvB,CAQA,SAAS88F,GAAiB98F,EAAM,CAE9B,MAAMm9F,EAAaZ,GAASv8F,EAAK,SAAUA,CAAI,EAGzCnkB,EAASshH,EAAa,EAAI,KAAK,MAAMA,CAAU,EAAI,KAAK,KAAKA,CAAU,EA0BvEC,EAAW,IAAI,KAAK,CAACp9F,CAAI,EAG/Bo9F,EAAS,YAAYA,EAAS,YAAW,EAAK,CAAC,EAG/C,MAAMC,EAAe,CAAC,IAAI,KAAK,CAACr9F,CAAI,EAAE,kBAAiB,EACjDs9F,EAAuB,CAAC,IAAI,KAAK,CAACF,CAAQ,EAAE,kBAAiB,EAC7DG,EAAkBF,EAAeC,EAEjCE,EAAW,KAAK,UAAU,SAAS,MAAMx9F,CAAI,IAAMA,EAAK,SAAS,YAAW,EAG9Eu9F,GAAmBC,GAAUx9F,EAAK,SAAS,cAAcA,EAAK,SAAS,cAAa,EAAKu9F,CAAe,EAU5G,MAAME,EAAaJ,EAAexhH,EAC9B4hH,GAAY,KAAK,UAAU,cAAc,KAAKz9F,EAAM,KAAK,UAAU,cAAc,KAAKA,CAAI,EAAIy9F,CAAU,EAM5G,MAAMC,EAAa,IAAI,KAAK,CAAC19F,CAAI,EAEjC09F,EAAW,cAAc,CAAC,EAE1B,MAAMC,EAAsBN,EAAe,EAAIK,EAAW,cAAgBA,EAAW,aAAe,IAAM,GAGpGE,EAAgB,KAAK,MAAM,EAAErB,GAASv8F,EAAK,SAAUA,CAAI,EAAI,GAAG,EAAI,IACtE49F,GAAiBD,KACnB39F,EAAK,SAAS,cAAcA,EAAK,SAAS,cAAa,EAAK49F,CAAa,EACzE,KAAK,UAAU,cAAc,KAAK59F,EAAM,KAAK,UAAU,cAAc,KAAKA,CAAI,EAAI49F,EAAgBD,CAAmB,GAOvH,MAAME,EAAiBtB,GAASv8F,EAAK,SAAUA,CAAI,EAG7C89F,EAAaD,EAAiB,EAAI,KAAK,MAAMA,CAAc,EAAI,KAAK,KAAKA,CAAc,EAEvFE,EADmB,CAAC,IAAI,KAAK,CAAC/9F,CAAI,EAAE,kBAAiB,EACjB89F,EACpCE,EAAgBF,IAAejiH,EAC/BoiH,EAAWF,EAAiBN,EAClC,GAAIO,GAAiBC,EAAU,CAC7B,KAAK,UAAU,cAAc,KAAKj+F,EAAM,KAAK,UAAU,cAAc,KAAKA,CAAI,EAAIi+F,CAAQ,EAK1F,MAAMC,EAAgB3B,GAASv8F,EAAK,SAAUA,CAAI,EAG5Cm+F,EAAYD,EAAgB,EAAI,KAAK,MAAMA,CAAa,EAAI,KAAK,KAAKA,CAAa,EACnFE,EAAeN,EAAaK,EAC9BC,IACFp+F,EAAK,SAAS,cAAcA,EAAK,SAAS,cAAa,EAAKo+F,CAAY,EACxE,KAAK,UAAU,cAAc,KAAKp+F,EAAM,KAAK,UAAU,cAAc,KAAKA,CAAI,EAAIo+F,CAAY,EAElG,CAGF,CCrOO,MAAMC,WAAexB,EAAW,CAGrC,OAAO,GAAGG,KAAOznJ,EAAM,CACrB,OAAOA,EAAK,OAAS,IAAI8oJ,GAAO,GAAG9oJ,EAAMynJ,CAAE,EAAI,IAAIqB,GAAO,KAAK,IAAG,EAAIrB,CAAE,CAC1E,CAMA,aAAc,CACZ,KAAM,CAACljG,EAAMwM,EAAOC,CAAO,EAAI,KAAK,aAAY,EAC1Cy2F,EAAK,GAAGljG,CAAI,GAAGwM,CAAK,IAAIC,CAAO,GACrC,OAAO,KAAK,SAAS,YAAW,EAAG,MAAM,EAAG,EAAE,EAAIy2F,CACpD,CACA,UAAW,CAET,MAAO,GAAG,KAAK,aAAY,CAAE,IAAI,KAAK,aAAY,CAAE,EACtD,CACA,cAAe,CAEb,KAAM,CAACl4F,EAAK9E,EAAMD,EAAOnB,CAAI,EAAI,KAAK,SAAS,cAAc,MAAM,GAAG,EAEtE,MAAO,GAAGkG,GAAK,MAAM,EAAG,EAAE,CAAC,IAAqB/E,CAAK,IAAIC,CAAI,IAAIpB,CAAI,EACvE,CACA,cAAe,CAEb,MAAM4S,EAAO,KAAK,SAAS,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC,EAC/C,CAAC1X,EAAMwM,EAAOC,CAAO,EAAI,KAAK,aAAY,EAEhD,MAAO,GAAGiL,CAAI,OAAO1X,CAAI,GAAGwM,CAAK,GAAGC,CAAO,KAAK41F,GAAO,KAAK,SAAU,IAAI,CAAC,GAC7E,CACA,eAAez1F,EAASlpD,EAAS,CAC/B,OAAO,KAAK,UAAU,eAAe,KAAK,KAAMkpD,EAAS,CACvD,GAAGlpD,EACH,SAAUA,GAAS,UAAY,KAAK,QAC1C,CAAK,CACH,CACA,mBAAmBkpD,EAASlpD,EAAS,CACnC,OAAO,KAAK,UAAU,mBAAmB,KAAK,KAAMkpD,EAAS,CAC3D,GAAGlpD,EACH,SAAUA,GAAS,UAAY,KAAK,QAC1C,CAAK,CACH,CACA,mBAAmBkpD,EAASlpD,EAAS,CACnC,OAAO,KAAK,UAAU,mBAAmB,KAAK,KAAMkpD,EAAS,CAC3D,GAAGlpD,EACH,SAAUA,GAAS,UAAY,KAAK,QAC1C,CAAK,CACH,CAMA,cAAe,CACb,MAAMq+B,EAAS,KAAK,kBAAiB,EAC/Bie,EAAOje,EAAS,EAAI,IAAM,IAC1ByqB,EAAQ,OAAO,KAAK,MAAM,KAAK,IAAIzqB,CAAM,EAAI,EAAE,CAAC,EAAE,SAAS,EAAG,GAAG,EACjE0qB,EAAU,OAAO,KAAK,IAAI1qB,CAAM,EAAI,EAAE,EAAE,SAAS,EAAG,GAAG,EAC7D,MAAO,CAACie,EAAMwM,EAAOC,CAAO,CAC9B,CAIA,aAAa61F,EAAU,CACrB,OAAO,IAAIiC,GAAO,CAAC,KAAMjC,CAAQ,CACnC,CAIA,CAAC,OAAO,IAAI,mBAAmB,CAAC,EAAEp8F,EAAM,CACtC,OAAO,IAAIq+F,GAAO,CAAC,IAAI,KAAKr+F,CAAI,EAAG,KAAK,QAAQ,CAClD,CAGF,CCzEA,SAASs+F,IAAK,CACZ,OAAOC,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,8UACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,0IACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,6IACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,qIACX,CAAO,CACP,CACA,CACA,CACA,SAASC,IAAK,CACZ,OAAOD,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,+HACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,8HACX,CAAO,CACP,CACA,CACA,CACA,SAASE,IAAK,CACZ,OAAOF,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,qMACX,CAAO,CACP,CACA,CACA,CACA,SAASG,IAAK,CACZ,OAAOH,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,oMACX,CAAO,CACP,CACA,CACA,CACA,SAASI,IAAK,CACZ,OAAOJ,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,8NACX,CAAO,EACDA,GAAG,OAAQ,CACT,EAAG,8MACX,CAAO,CACP,CACA,CACA,CACA,SAASK,IAAK,CACZ,OAAOL,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,qMACX,CAAO,CACP,CACA,CACA,CACA,SAASM,IAAK,CACZ,OAAON,GACL,MACA,CACE,MAAO,6BACP,QAAS,YACT,KAAM,eACN,cAAe,OACf,MAAO,WACP,KAAM,KACZ,EACI,CACEA,GAAG,OAAQ,CACT,EAAG,mMACX,CAAO,CACP,CACA,CACA,CACA,MAAMO,GAAKC,GAAG,CACZ,UAAW,GACX,SAAU,GACV,KAAM,GACN,UAAW,GACX,cAAe,GACf,WAAY,CACV,EAAG,GACH,EAAG,EACP,EACE,YAAa,EACf,CAAC,EAAGC,GAAKC,GAAG,IAAI,EAAGC,GAAKD,GAAG,EAAE,EAAGE,GAAKF,GAAG,EAAE,EAAGG,GAAKH,GAAG,EAAE,EAAGI,GAAKJ,GAAG,EAAE,EAAGK,GAAKL,GAAG,CAAC,EAAGM,GAAKN,GAAG,CAAC,EAAGO,GAAK,IAAM,CACxG,MAAM,EAAIz9E,EAAE,IAAMm9E,GAAG,MAAQ,CAAC,GAAGJ,GAAG,cAAeA,GAAG,SAAS,EAAE,OAAQ//E,GAAMA,EAAE,MAAM,EAAIogF,GAAG,MAAQ,CACpG,GAAGL,GAAG,WAAW,CAAC,EAClB,GAAGA,GAAG,WAAW,CAAC,EAClBO,GAAG,MAAQ,GAAK,CAACL,GAAG,KAAK,EACzBF,GAAG,SACP,EAAI,OAAQ//E,GAAMA,EAAE,MAAM,EAAIqgF,GAAG,MAAQ,CAAC,GAAGN,GAAG,YAAaA,GAAG,SAAS,EAAI,CAACA,GAAG,UAAW,GAAGA,GAAG,SAAUA,GAAG,KAAMA,GAAG,SAAS,EAAE,OAAQ//E,GAAMA,EAAE,MAAM,CAAC,EAAGjU,EAAKiU,GAAM,CACpKugF,GAAG,MAAQvgF,EAAIugF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EACzC,IAAIn+E,EAAI,KACR,EAAE,MAAMo+E,GAAG,KAAK,IAAMp+E,EAAI,EAAE,MAAMo+E,GAAG,KAAK,EAAED,GAAG,KAAK,GAAI,CAACn+E,GAAK,EAAE,MAAMo+E,GAAG,OAASxgF,EAAI,EAAI,GAAG,GAAKwgF,GAAG,MAAQA,GAAG,OAASxgF,EAAI,EAAI,IAAKugF,GAAG,MAAQvgF,EAAI,EAAI,EAAE,MAAMwgF,GAAG,KAAK,EAAE,OAAS,GAAKp+E,IAAMm+E,GAAG,MAAQvgF,EAAIugF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAC1O,EAAGroI,EAAK8nD,GAAM,CACRwgF,GAAG,QAAU,GAAK,CAACxgF,GAAKwgF,GAAG,QAAU,EAAE,MAAM,QAAUxgF,IAC3DwgF,GAAG,MAAQxgF,EAAIwgF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAAG,EAAE,MAAMA,GAAG,KAAK,EAAI,EAAE,MAAMA,GAAG,KAAK,GAAK,CAAC,EAAE,MAAMA,GAAG,KAAK,EAAED,GAAG,KAAK,GAAKA,GAAG,QAAU,IAAMA,GAAG,MAAQ,EAAE,MAAMC,GAAG,KAAK,EAAE,OAAS,GAAKA,GAAG,MAAQxgF,EAAIwgF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,EAC9N,EAAG,EAAKxgF,GAAM,CACZ,IAAIoC,EAAI,KACR,EAAE,MAAMo+E,GAAG,KAAK,IAAMp+E,EAAI,EAAE,MAAMo+E,GAAG,KAAK,EAAED,GAAG,KAAK,GAAIn+E,EAAIA,EAAE,MAAM,CAAE,cAAe,CAAC+9E,GAAG,KAAK,CAAE,EAAII,GAAG,MAAQvgF,EAAIugF,GAAG,MAAQ,EAAIA,GAAG,MAAQ,CAC/I,EAAG7uG,EAAI,IAAM,CACXqa,EAAE,EAAE,EAAG,EAAE,EAAE,CACb,EAAG,EAAI,IAAM,CACXA,EAAE,EAAE,EAAG,EAAE,EAAE,CACb,EAAGh8D,EAAI,IAAM,CACXmoB,EAAE,EAAE,EAAG,EAAE,EAAE,CACb,EAAG5mB,EAAI,IAAM,CACX4mB,EAAE,EAAE,EAAG,EAAE,EAAE,CACb,EAAGoZ,EAAI,CAAC0uC,EAAGoC,IAAM,CACf29E,GAAG39E,CAAC,EAAIpC,CACV,EAAGvpE,EAAI,CAACupE,EAAGoC,IAAM,CACf29E,GAAG39E,CAAC,EAAIpC,CACV,EAAG8B,EAAI,IAAM,CACXy+E,GAAG,MAAQ,EAAGC,GAAG,MAAQ,CAC3B,EACA,MAAO,CACL,YAAalvH,EACb,sBAAuB76B,EACvB,qBAAuBupE,GAAM,CAC3BigF,GAAG,MAAQjgF,CACb,EACA,iBAAmBA,GAAM,CACvBmgF,GAAG,MAAQngF,EAAG8B,EAAC,EAAI9B,IAAM+/E,GAAG,cAAgB,GAC9C,EACA,cAAe,CAAC//E,EAAGoC,EAAI,KAAO,CAC5Bg+E,GAAG,MAAQpgF,EAAGsgF,GAAG,MAAQl+E,EAAGN,EAAC,EAAI9B,IAAM+/E,GAAG,WAAW,CAAC,EAAI,GAAIA,GAAG,WAAW,CAAC,EAAI,GACnF,EACA,sBAAuB,CAAC//E,EAAGoC,EAAI,IAAM,CACnC29E,GAAG,WAAW39E,CAAC,EAAIpC,CACrB,EACA,WAAYtuB,EACZ,UAAW,EACX,QAAS3hD,EACT,UAAWuB,EACX,cAAe,IAAM,CACnByuJ,GAAG,UAAY,GAAIA,GAAG,SAAW,GAAIA,GAAG,KAAO,GAAIA,GAAG,UAAY,GAAIA,GAAG,cAAgB,GAAIA,GAAG,WAAW,CAAC,EAAI,GAAIA,GAAG,WAAW,CAAC,EAAI,GAAII,GAAG,MAAQ,GAAIC,GAAG,MAAQ,GAAIE,GAAG,MAAQ,GAAID,GAAG,MAAQ,GAAIv+E,EAAC,EAAIm+E,GAAG,MAAQ,IACzN,EACA,eAAiBjgF,GAAM,CACrBqgF,GAAG,MAAQrgF,EAAG8B,EAAC,CACjB,EACA,QAASi+E,EAEb,CACA,EACA,IAAIW,IAAuB,IAAO,EAAE,MAAQ,QAAS,EAAE,KAAO,OAAQ,IAAIA,IAAM,EAAE,EAAG/9E,IAAuB,IAAO,EAAE,OAAS,SAAU,EAAE,SAAW,WAAY,EAAE,WAAa,aAAc,IAAIA,IAAM,EAAE,EAAGg+E,IAAuB,IAAO,EAAE,MAAQ,QAAS,EAAE,KAAO,OAAQ,EAAE,SAAW,WAAY,EAAE,KAAO,OAAQ,EAAE,QAAU,UAAW,EAAE,MAAQ,QAAS,EAAE,QAAU,UAAW,IAAIA,IAAM,EAAE,EACtY,MAAMC,GAAK,CAAC,YAAa,OAAQ,KAAK,EACtC,IAAIC,IAAuB,IAAO,EAAE,GAAK,KAAM,EAAE,KAAO,OAAQ,EAAE,KAAO,OAAQ,EAAE,MAAQ,QAAS,IAAIA,IAAM,EAAE,EAAGC,IAAuB,IAAO,EAAE,QAAU,UAAW,EAAE,UAAY,YAAa,EAAE,UAAY,YAAa,EAAE,WAAa,aAAc,EAAE,MAAQ,QAAS,EAAE,MAAQ,IAAK,EAAE,IAAM,SAAU,EAAE,IAAM,MAAO,EAAE,KAAO,OAAQ,EAAE,IAAM,MAAO,EAAE,OAAS,SAAU,EAAE,SAAW,WAAY,IAAIA,IAAM,EAAE,EAAGC,IAAuB,IAAO,EAAE,eAAiB,UAAW,EAAE,KAAO,OAAQ,EAAE,KAAO,aAAc,IAAIA,IAAM,EAAE,EAC3gB,MAAMC,GAAK,IAAM,CACf,KAAM,CAAE,uBAAwB,EAAG,kBAAmBj1F,EAAG,YAAa7zC,CAAC,EAAK+oI,GAAE,EAAI,CAAE,YAAa,EAAG,YAAavvG,CAAC,EAAKwvG,KAAM,CAC3H,QAAS,EACT,SAAUnxJ,EACV,MAAOuB,EACP,UAAWggC,EACX,WAAY76B,EACZ,SAAU,CAAE,UAAWqrE,EAAG,MAAOq/E,EAAG,WAAYh+F,EAAG,WAAYp3D,EAAG,QAAS,CAAC,EAC5E,WAAY81B,EACZ,WAAYqgD,CAChB,EAAMk/E,GAAE,EAAI,CAAE,QAASphF,EAAG,gBAAiBoC,CAAC,EAAKi/E,GAAE,EAAI,CAAE,mBAAoBt/E,EAAG,mBAAoBE,CAAC,EAAKq/E,GAAE,EAC1GC,GACE1/H,EACA,CAAC7xB,EAAGwxJ,IAAM,CACRzxJ,EAAE,wBAAyB8xB,EAAE,KAAK,EAAG,KAAK,UAAU2/H,GAAK,EAAE,IAAM,KAAK,UAAUxxJ,GAAK,EAAE,GAAKkyE,EAAC,CAC/F,EACA,CAAE,KAAM,EAAE,CACd,EAAKq/E,GAAGJ,EAAG,CAACnxJ,EAAGwxJ,IAAM,CACjBxxJ,EAAE,UAAYwxJ,EAAE,UAAY3/H,EAAE,MAAQ,KACxC,CAAC,EAAG0/H,GACF,IAAM,EAAE,MAAM,MACd,IAAM,CACJE,GAAE,CACJ,CACJ,EACE,MAAM7hF,EAAK5vE,GAAMA,EAAIshC,EAAE,UAAYowH,GAAG1xJ,CAAC,EAAI,CACzC,MAAO2xJ,GAAG3xJ,CAAC,EACX,QAAS4xJ,GAAG5xJ,CAAC,EACb,QAASjE,EAAE,MAAM,cAAgB81J,GAAG7xJ,CAAC,EAAI,CAC7C,EAAM,KAAM0xE,EAAK1xE,GAAMshC,EAAE,UAAYowH,GAAG1xJ,CAAC,EAAI,CAAE,MAAO8xJ,GAAG9xJ,CAAC,EAAG,KAAM+xJ,GAAG/xJ,CAAC,CAAC,EAAI2xE,EAAK3xE,GAAM,MAAM,QAAQA,CAAC,EAAImzD,EAAE,MAAM,QAAUnzD,EAAE,IAAKwxJ,GAAMjhG,EAAEihG,EAAGQ,GAAG,EAAC,EAAIR,CAAC,CAAC,CAAC,EAAIz1F,EACzJ,IAAM,CACJi2F,GAAG,EAAC,EAAIhyJ,EAAE,CAAC,CAAC,EACZA,EAAE,CAAC,EAAIgyJ,GAAG,EAAC,EAAIhyJ,EAAE,CAAC,CAAC,EAAI,EAAEmxJ,EAAE,MAAM,YAAY,CACnD,EACIA,EAAE,MAAM,OACZ,EAAMa,GAAG,IAAK,CAAChyJ,CAAC,EAAGuwD,EAAI,CAACvwD,EAAGwxJ,KAAO,OAAOxxJ,GAAK,UAAY,OAAOA,GAAK,WAAashC,EAAE,UAAY2wH,GAAGjyJ,CAAC,EAAIwxJ,EAAG7oI,EAAK3oB,GAAM,MAAM,QAAQA,CAAC,EAAI,CACtIuwD,EAAEvwD,EAAE,CAAC,EAAGgwE,EAAEhwE,EAAE,CAAC,CAAC,CAAC,EACfuwD,EAAEvwD,EAAE,CAAC,EAAGgwE,EAAEhwE,EAAE,CAAC,CAAC,CAAC,CACnB,EAAMuwD,EAAEvwD,EAAGgwE,EAAEhwE,CAAC,CAAC,EAAGkoC,EAAKloC,GAAM,CACzB,MAAMwxJ,EAAIU,GAAG,EAAC,EAAI,CAAE,KAAM,EAAG,EAC7B,OAAO,MAAM,QAAQlyJ,CAAC,EAAImzD,EAAE,MAAM,QAAUnzD,EAAE,IAC3C+yE,GAAMxiB,EAAEwiB,EAAGm/E,GAAGV,EAAG,CAAE,MAAO,CAACz+E,EAAE,MAAO,KAAM,CAACA,EAAE,IAAI,CAAE,CAAC,CAC3D,EAAQhX,EACF,IAAM,CACJxL,EAAEvwD,EAAE,CAAC,EAAGkyJ,GAAGV,EAAG,CAAE,MAAO,CAACxxJ,EAAE,CAAC,EAAE,MAAO,KAAM,CAACA,EAAE,CAAC,EAAE,IAAI,CAAE,CAAC,EACvDuwD,EACEvwD,EAAE,CAAC,EACHA,EAAE,CAAC,EAAIkyJ,GAAGV,EAAG,CAAE,MAAO,CAACxxJ,EAAE,CAAC,EAAE,MAAO,KAAM,CAACA,EAAE,CAAC,EAAE,IAAI,CAAE,EAAI,EAAEmxJ,EAAE,MAAM,YAAY,CACzF,CACA,EACMA,EAAE,MAAM,OACd,EAAQ5gG,EAAEvwD,EAAGkyJ,GAAGV,EAAG,CAAE,MAAO,CAACxxJ,EAAE,MAAO,KAAM,CAACA,EAAE,IAAI,CAAE,CAAC,CACpD,EAAGsyE,EAAKtyE,GAAM,CACZ,GAAI,MAAM,QAAQA,CAAC,EACjB,OAAOA,EAAE,IAAKwxJ,GAAMS,GAAGT,CAAC,CAAC,EAC3B,MAAM,IAAI,MAAM9vG,EAAE,QAAQ,aAAa,CAAC,CAC1C,EAAGw0B,EAAKl2E,GAAM,CACZ,GAAI,MAAM,QAAQA,CAAC,GAAKmxJ,EAAE,MAAM,QAAS,CACvC,MAAMK,EAAIxxJ,EAAE,CAAC,EAAG+yE,EAAI/yE,EAAE,CAAC,EACvB,MAAO,CACL,EAAE,MAAM,QAAQwxJ,CAAC,EAAIA,EAAE,CAAC,EAAI,IAAI,EAChC,MAAM,QAAQz+E,CAAC,GAAKA,EAAE,OAAS,EAAEA,EAAE,CAAC,CAAC,EAAI,IACjD,CACI,CACA,OAAO,EAAE/yE,EAAE,CAAC,CAAC,CACf,EAAGmyJ,EAAKnyJ,GAAMshC,EAAE,UAAY,MAAM,QAAQthC,CAAC,EAAI,CAACiyJ,GAAGjyJ,EAAE,CAAC,CAAC,EAAGiyJ,GAAGjyJ,EAAE,CAAC,CAAC,CAAC,EAAIshC,EAAE,UAAY,CAAC2wH,GAAGjyJ,CAAC,CAAC,EAAI,CAACiyJ,GAAGjyJ,CAAC,EAAG,IAAI,EAAI,MAAM,QAAQA,CAAC,EAAI+7D,EAC/H,IAAM/7D,EAAE,CAAC,EAAI,CACXiyJ,GAAGjyJ,EAAE,CAAC,CAAC,EACPA,EAAE,CAAC,EAAIiyJ,GAAGjyJ,EAAE,CAAC,CAAC,EAAI,EAAEmxJ,EAAE,MAAM,YAAY,CAC9C,EAAQ,CAACc,GAAGjyJ,EAAE,CAAC,CAAC,CAAC,EACbmxJ,EAAE,MAAM,OACZ,EAAMc,GAAGjyJ,CAAC,EAAGoyJ,GAAK,IAAM,CACpB,MAAM,QAAQvgI,EAAE,KAAK,GAAKs/H,EAAE,MAAM,SAAWt/H,EAAE,MAAM,SAAW,GAAKA,EAAE,MAAM,KAAK,EAAEs/H,EAAE,MAAM,YAAY,CAAC,CAC3G,EAAGkB,GAAK,IAAM,CACZ,MAAMryJ,EAAI6xB,EAAE,MACZ,MAAO,CACL6/H,GAAG1xJ,EAAE,CAAC,CAAC,EACPA,EAAE,CAAC,EAAI0xJ,GAAG1xJ,EAAE,CAAC,CAAC,EAAI,EAAEmxJ,EAAE,MAAM,YAAY,CAC9C,CACE,EAAGmB,GAAK,IAAM,MAAM,QAAQzgI,EAAE,KAAK,EAAIA,EAAE,MAAM,CAAC,EAAIwgI,GAAE,EAAKX,GAAG,EAAE7/H,EAAE,MAAM,CAAC,CAAC,CAAC,EAAI,GAAI4/C,EAAI,KAAO5/C,EAAE,OAAS,IAAI,IAAK7xB,GAAM0xJ,GAAG1xJ,CAAC,CAAC,EAAGuyJ,GAAK,CAACvyJ,EAAI,MAAQA,GAAKoyJ,GAAE,EAAI9wH,EAAE,UAAYgxH,GAAE,EAAKn/F,EAAE,MAAM,QAAUse,EAAC,EAAK,MAAM,QAAQ5/C,EAAE,KAAK,EAAIkqC,EAAE,IAAMs2F,KAAMlB,EAAE,MAAM,OAAO,EAAIO,GAAG,EAAE7/H,EAAE,KAAK,CAAC,GAAI0/C,GAAKvxE,GAAM,CAACA,GAAK,MAAM,QAAQA,CAAC,GAAK,CAACA,EAAE,OAAS,KAAOshC,EAAE,WAAa3Y,EAAE,EAAE3oB,CAAC,CAAC,EAAIshC,EAAE,YAAc4G,EAAE,EAAEloC,CAAC,CAAC,EAAIshC,EAAE,WAAaqwC,EAAE,EAAE3xE,CAAC,CAAC,EAAImzD,EAAE,MAAM,QAAUmf,EAAE,EAAEtyE,CAAC,CAAC,EAAIshC,EAAE,WAAa40C,EAAE,EAAEl2E,CAAC,CAAC,EAAImyJ,EAAE,EAAEnyJ,CAAC,CAAC,EAAGwyJ,GAAMxyJ,GAAM,CACje,GAAIsB,EAAE,gBAAiB,OACvB,MAAMkwJ,EAAIjgF,GAAEvxE,CAAC,EACbkoB,EAAE,EAAEspI,CAAC,CAAC,GAAK3/H,EAAE,MAAQ,EAAE2/H,CAAC,EAAGC,GAAE,IAAO5/H,EAAE,MAAQ,KAAMprB,EAAE,MAAQ,GAChE,EAAG4rE,GAAI,IAAMxgD,EAAE,MAAQshC,EAAE,MAAM,QAAUthC,EAAE,MAAM,IAAK7xB,GAAM+xE,EAAE/xE,CAAC,CAAC,EAAE,KAAK,IAAI,EAAI8xE,EAAE,MAAM,QAAUG,IAAMF,EAAElgD,EAAE,KAAK,EAAI,GAAI4/H,GAAK,IAAM,CACjIhrJ,EAAE,MAAQ4rE,GAAC,CACb,EAAG4/E,GAAMjyJ,GAAMshC,EAAE,UAAYsvH,GAAG,SAAStvH,EAAE,SAAS,EAAI,EAAEthC,CAAC,EAAIshC,EAAE,YAAc,UAAY,OAAO,EAAE,MAAM,OAAS,SAAWmxH,GAAGzyJ,EAAG,EAAE,MAAM,MAAO,EAAC,EAAI,CAAE,OAAQshC,EAAE,OAAQ,EAAImxH,GAAGzyJ,EAAGshC,EAAE,UAAW,EAAC,EAAI,CAAE,OAAQA,EAAE,OAAQ,EAAI,EAAEthC,CAAC,EAAG0xJ,GAAM1xJ,GAAMA,EAAIshC,EAAE,UAAYA,EAAE,YAAc,YAAc,CAACthC,EAAIshC,EAAE,YAAc,MAAQthC,EAAE,YAAW,EAAKshC,EAAE,YAAc,UAAY,OAAO,EAAE,MAAM,OAAS,SAAWywC,EAAE/xE,CAAC,EAAI+xE,EAAE/xE,EAAGshC,EAAE,SAAS,EAAIthC,EAAI,KAAM0yJ,GAAM1yJ,GAAM,CAC/bD,EAAE,qBAAsBC,CAAC,CAC3B,EAAG2yJ,GAAM3yJ,GAAM,MAAM,QAAQ6xB,EAAE,KAAK,EAAIshC,EAAE,MAAM,QAAUthC,EAAE,MAAM,IAAK2/H,GAAMxxJ,EAAEwxJ,CAAC,CAAC,EAAI,CAACxxJ,EAAE6xB,EAAE,MAAM,CAAC,CAAC,EAAGA,EAAE,MAAM,CAAC,EAAI7xB,EAAE6xB,EAAE,MAAM,CAAC,CAAC,EAAI,IAAI,EAAI7xB,EAAE,EAAE6xB,EAAE,KAAK,CAAC,EAAG+gI,EAAK,IAAM,CAClK,GAAI,MAAM,QAAQ/gI,EAAE,KAAK,EAAG,CAC1B,MAAM7xB,EAAIoyE,EAAEvgD,EAAE,MAAM,CAAC,EAAGyP,EAAE,SAAS,EAAGkwH,EAAI3/H,EAAE,MAAM,CAAC,EAAIugD,EAAEvgD,EAAE,MAAM,CAAC,EAAGyP,EAAE,SAAS,EAAI,GACpF,MAAO,CAACthC,EAAE,IAAK+yE,GAAM,EAAEA,CAAC,CAAC,EAAGy+E,EAAE,IAAKz+E,GAAM,EAAEA,CAAC,CAAC,CAAC,CAChD,CACA,OAAOX,EAAEvgD,EAAE,MAAOyP,EAAE,SAAS,EAAE,IAAKthC,GAAM,EAAEA,CAAC,CAAC,CAChD,EAAG6yJ,GAAM7yJ,GAAM0yJ,GAAG,EAAEC,GAAG3yJ,CAAC,CAAC,CAAC,EAAGyzI,EAAI,IAAM1zI,EAAE,qBAAsB6yJ,EAAE,CAAE,EACnE,MAAO,CACL,gBAAiB,IAAM/gI,EAAE,MAAQs/H,EAAE,MAAM,QAAUA,EAAE,MAAM,aAAet/H,EAAE,MAAM,QAAU,EAAIA,EAAE,MAAM,SAAW,EAAI,CAAC,CAACA,EAAE,MAAQ,GACnI,wBAAyB2gI,GACzB,iBAAkBf,GAClB,eAAgB,KAAOA,KAAMnwH,EAAE,YAAcuxH,GAAGnhF,CAAC,EAAIpwC,EAAE,WAAauxH,GAAGjjF,CAAC,EAAItuC,EAAE,WAAauxH,GAAGd,EAAE,EAAIzwH,EAAE,WAAamyG,EAAC,EAAKif,GAAGH,IAAI,EACpI,CACA,EAAGO,GAAK,CACN,CAAE,KAAM,aAAc,IAAK,CAAC,OAAQ,WAAY,QAAQ,CAAC,EACzD,CAAE,KAAM,aAAc,IAAK,CAAC,aAAc,WAAY,SAAU,WAAW,CAAC,EAC5E,CAAE,KAAM,cAAe,IAAK,CAAC,aAAc,WAAY,SAAU,WAAW,CAAC,EAC7E,CAAE,KAAM,WAAY,IAAK,CAAC,OAAQ,WAAY,aAAc,QAAQ,CAAC,EACrE,CAAE,KAAM,aAAc,IAAK,CAAC,OAAQ,WAAY,aAAc,QAAQ,CAAC,EACvE,CAAE,KAAM,gBAAiB,IAAK,CAAC,aAAc,OAAQ,WAAY,SAAU,WAAW,CAAC,EACvF,CAAE,KAAM,MAAO,IAAK,CAAC,WAAY,QAAQ,CAAC,EAC1C,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,aAAc,QAAQ,CAAC,EACxE,CAAE,KAAM,qBAAsB,IAAK,CAAC,WAAY,aAAc,SAAU,WAAW,CAAC,EACpF,CAAE,KAAM,eAAgB,IAAK,CAAC,aAAc,QAAQ,CAAC,EACrD,CAAE,KAAM,gBAAiB,IAAK,CAAC,aAAc,QAAQ,CAAC,EACtD,CAAE,KAAM,uBAAwB,IAAK,CAAC,aAAc,QAAQ,CAAC,EAC7D,CAAE,KAAM,sBAAuB,IAAK,CAAC,aAAc,QAAQ,CAAC,EAC5D,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAClE,CAAE,KAAM,uBAAwB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACnE,CAAE,KAAM,wBAAyB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpE,CAAE,KAAM,yBAA0B,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACrE,CAAE,KAAM,wBAAyB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpE,CAAE,KAAM,yBAA0B,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACrE,CAAE,KAAM,QAAS,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACpD,CAAE,KAAM,UAAW,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EACtD,CAAE,KAAM,QAAS,IAAK,CAAC,WAAY,aAAc,QAAQ,CAAC,EAC1D,CAAE,KAAM,OAAQ,IAAK,CAAC,WAAY,aAAc,SAAU,WAAW,CAAC,EACtE,CAAE,KAAM,iBAAkB,IAAK,CAAC,QAAQ,CAAC,EACzC,CAAE,KAAM,iBAAkB,IAAK,CAAC,QAAQ,CAAC,EACzC,CAAE,KAAM,kBAAmB,IAAK,CAAC,WAAY,QAAQ,CAAC,EACtD,CAAE,KAAM,iBAAkB,IAAK,CAAC,WAAY,QAAQ,CAAC,EACrD,CAAE,KAAM,eAAgB,IAAK,CAAC,MAAM,CAAC,EACrC,CAAE,KAAM,sBAAuB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAClE,CAAE,KAAM,eAAgB,IAAK,CAAC,WAAY,OAAQ,QAAQ,CAAC,EAC3D,CAAE,KAAM,eAAgB,IAAK,CAAC,MAAM,CAAC,EACrC,CAAE,KAAM,gBAAiB,IAAK,CAAC,MAAM,CAAC,EACtC,CAAE,KAAM,aAAc,IAAK,CAAC,aAAc,QAAQ,CAAC,EACnD,CAAE,KAAM,cAAe,IAAK,CAAC,OAAQ,QAAQ,CAAC,EAC9C,CAAE,KAAM,aAAc,IAAK,CAAC,QAAQ,CAAC,EACrC,CAAE,KAAM,SAAU,IAAK,CAAC,WAAY,QAAQ,CAAC,EAC7C,CAAE,KAAM,UAAW,IAAK,CAAC,QAAQ,CAAC,EAClC,CAAE,KAAM,YAAa,IAAK,CAAC,SAAU,YAAY,CAAC,EAClD,CAAE,KAAM,qBAAsB,IAAK,CAAC,SAAU,MAAM,CAAC,EACrD,CAAE,KAAM,uBAAwB,IAAK,CAAC,SAAU,MAAM,CAAC,EACvD,CAAE,KAAM,cAAe,IAAK,CAAC,MAAM,CAAC,CACtC,EAAGC,GAAK,CAAC,CAAE,KAAM,SAAS,EAAI,CAAE,KAAM,YAAY,EAAI,CAAE,KAAM,YAAY,EAAI,CAAE,KAAM,UAAU,CAAE,EAAGC,GAAK,CACxG,IAAK,IAAMF,GACX,KAAM,IAAMA,GAAG,OAAOC,EAAE,EACxB,UAAW,IAAMD,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,YAAY,CAAC,EAC9D,MAAO,IAAMC,GACb,WAAY,IAAMD,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,MAAM,CAAC,EACzD,OAAQ,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,QAAQ,CAAC,EACvD,SAAU,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,UAAU,CAAC,EAC3D,KAAM,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,MAAM,CAAC,EACnD,OAAQ,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,QAAQ,CAAC,EACvD,SAAU,IAAMA,GAAG,OAAQ,GAAM,EAAE,IAAI,SAAS,WAAW,CAAC,CAC9D,EAAGG,GAAK,KAAO,CACb,SAAU,CAACl3F,EAAG7zC,EAAGpc,IAAM,CACrB,MAAM41C,EAAI,GACV,UAAWnyC,KAAKyjJ,GAAG9qI,CAAC,EAAC,EACnB6zC,EAAExsD,EAAE,IAAI,GAAKmyC,EAAE,KAAKnyC,EAAE,IAAI,EAC5B,GAAIzD,GAAG,OACL,UAAWyD,KAAKzD,EACdyD,EAAE,MAAQmyC,EAAE,KAAKnyC,EAAE,IAAI,EAC3B,OAAOmyC,CACT,CACF,GAAIwxG,GAAK,OAAO,YAAY,EAAGC,GAAK,CAAC,EAAGp3F,IAAM,CAC5C,KAAM,CAAE,kBAAmB7zC,CAAC,EAAKgpI,GAAE,EAAI,EAAIkC,GAAG,CAAC,EAAG1xG,EAAIwuG,GAAG,IAAI,EAAG,EAAIF,GAAG,CACrE,YAAa,GACb,eAAgB,GAChB,eAAgB,GAChB,gBAAiB,EACrB,CAAG,EAAGjwJ,EAAI,EAAE,QAAwB,IAAI,IAAM,EAAGuB,EAAI4uJ,GAAG,EAAE,EAAG5uH,EAAI4uH,GAAG,CAAC,CAAE,MAAO4B,GAAG/xJ,CAAC,EAAG,KAAMgyJ,GAAGhyJ,CAAC,CAAC,CAAE,CAAC,EAAG0G,EAAIupJ,GAAG,CAAE,MAAO,EAAG,QAAS,EAAG,QAAS,CAAC,CAAE,EAC/I9nI,EAAEzhB,EAAG,KAAM1G,EAAG,EAAE,MAAM,MAAM,OAAO,EACnC,MAAM+xE,EAAIkB,EAAE,CACV,IAAK,IAAMtxB,EAAE,MACb,IAAM7vB,GAAM,CACV6vB,EAAE,MAAQ7vB,CACZ,CACJ,CAAG,EAAGs/H,EAAIn+E,EACN,IAAOnhD,GAAMyP,EAAE,MAAMzP,CAAC,EAAIyP,EAAE,MAAMzP,CAAC,EAAE,MAAQ,CACjD,EAAKshC,EAAI6f,EACL,IAAOnhD,GAAMyP,EAAE,MAAMzP,CAAC,EAAIyP,EAAE,MAAMzP,CAAC,EAAE,KAAO,CAChD,EAAK91B,EAAI,CAAC81B,EAAGqgD,IAAM,CACf,EAAErgD,CAAC,EAAIqgD,CACT,EAAG,EAAI,IAAM,CACXhqD,EAAEzhB,EAAGqrE,EAAE,MAAO/xE,EAAG,EAAE,MAAM,MAAM,OAAO,CACxC,EACAszJ,GAAGH,GAAI,CACL,UAAW,EACX,SAAU,EACV,WAAYphF,EACZ,MAAOwhF,GAAG,CAAC,EACX,SAAUv3F,EACV,UAAWz6B,EACX,MAAO6vH,EACP,KAAMh+F,EACN,KAAM1sD,EACN,MAAO1G,EACP,WAAYuB,EACZ,SAAUvF,EACV,WAAY,EACZ,QAAS,EAAE,OACf,CAAG,CACH,EAAGq1J,GAAK,IAAM,CACZ,MAAM,EAAImC,GAAGL,EAAE,EACf,GAAI,CAAC,EACH,MAAM,IAAI,MAAM,mBAAmB,EACrC,OAAO,CACT,EAAGM,GAAK,IAAM,CACZ,KAAM,CACJ,SAAU,CAAE,YAAa,CAAC,CAC9B,EAAMpC,GAAE,EAAIr1F,EAAIiX,EAAE,IAAO,GAAM,EAAE,MAAQ,EAAI,EAAE,MAAM,KAAO,EAAE,MAAM,MAAQ,EAAE,EAAG9qD,EAAI8qD,EAAE,IAAO,GAAM,EAAE,MAAQ,EAAI,EAAE,MAAM,cAAgB,EAAE,MAAM,iBAAmB,EAAE,EACrK,MAAO,CAAE,eAAgBjX,EAAG,eAAgB,CAAC,CAAC,EAAE,MAAO,eAAgB7zC,CAAC,CAC1E,EAAGurI,GAAM,GAAM,CACb,KAAM,CACJ,MAAO13F,EACP,KAAM7zC,EACN,WAAY,EACZ,SAAU,CAAE,MAAOw5B,CAAC,CACxB,EAAM0vG,GAAE,EAAI,CAAE,kBAAmB,CAAC,EAAKF,GAAE,EACvCK,GACE7vG,EACA,CAAC3hD,EAAGuB,IAAM,CACRvB,EAAE,UAAYuB,EAAE,SAAW,EAAE4mB,EAAG,EAAE,MAAO6zC,EAAGra,EAAE,MAAM,OAAO,CAC7D,EACA,CAAE,KAAM,EAAE,CACd,EAAK6vG,GACD,EACA,CAACxxJ,EAAGuB,IAAM,CACR,GAAK,KAAK,UAAUvB,GAAK,EAAE,IAAM,KAAK,UAAUuB,GAAK,EAAE,GAAK,EAAC,CAC/D,EACA,CAAE,KAAM,EAAE,CACd,CACA,EAAG2vJ,GAAK,IAAM,CACZ,KAAM,CACJ,SAAU,CAAE,UAAW,EAAG,MAAOl1F,EAAG,WAAY7zC,EAAG,QAAS,EAAG,WAAYw5B,CAAC,EAC5E,UAAW,EACX,QAAS3hD,CACb,EAAMqxJ,GAAE,EAAI,CAAE,cAAe9vJ,EAAG,WAAYggC,EAAG,YAAa76B,EAAG,YAAaqrE,CAAC,EAAKo/E,KAAM,CAAE,aAAcC,EAAG,YAAah+F,EAAG,YAAap3D,EAAG,UAAW,EAAG,iBAAkB81B,EAAG,aAAcqgD,EAAG,WAAYlC,EAAG,QAASoC,GAAMi/E,KAAMt/E,EAAKrgE,GAAM,EAAE,MAAM,cAAgB,OAAO,EAAE,MAAM,eAAiB,WAAa,EAAE,MAAM,cAAc3R,EAAE2R,CAAC,CAAC,EAAI,CAAC,CAAC4vB,EAAE5vB,EAAG,EAAE,MAAM,aAAa,EAAI,GAAIugE,EAAKvgE,GAAM,EAAE,MAAM,QAAU,EAAE,WAAaqgJ,GAAGrgJ,CAAC,EAAIqgJ,GAAG,EAAE,MAAM,OAAO,EAAI5+F,EAAEzhD,EAAG,EAAE,MAAM,OAAO,EAAI,GAAIk+D,EAAKl+D,GAAM,EAAE,MAAM,QAAU,EAAE,WAAaqgJ,GAAGrgJ,CAAC,EAAIqgJ,GAAG,EAAE,MAAM,OAAO,EAAIZ,EAAEz/I,EAAG,EAAE,MAAM,OAAO,EAAI,GAAIggE,EAAKhgE,GAAM,CACxkB,GAAI,CAACA,EAAG,MAAO,GACf,MAAMkgE,EAAIK,EAAEvgE,CAAC,EAAG+pB,EAAIm0C,EAAEl+D,CAAC,EAAGgiJ,EAAI3hF,EAAErgE,CAAC,EAAGzQ,EAAI,EAAE,MAAM,OAAO,IAAK0yJ,GAAO,CAACA,CAAE,EAAE,SAAS7B,GAAGpgJ,CAAC,CAAC,EAAGpT,EAAI,EAAE,MAAM,UAAU,OAAS,EAAE,MAAM,SAAS,KAAMq1J,GAAO,CAACA,IAAOC,GAAGliJ,CAAC,CAAC,EAAI,GAAImiJ,EAAIvhF,EAAE5gE,CAAC,EAAGsgE,EAAI+/E,GAAGrgJ,CAAC,EAAGoiJ,EAAK9hF,EAAI,CAAC,EAAE,UAAU,CAAC,GAAKA,EAAI,CAAC,EAAE,UAAU,CAAC,EAC9O,MAAO,EAAEJ,GAAKn2C,GAAKi4H,GAAKzyJ,GAAK6yJ,GAAMx1J,GAAKu1J,EAC1C,EAAGliF,EAAI,CAACjgE,EAAGkgE,IAAMu/E,EAAE,GAAG1d,EAAE,EAAE,MAAM,QAAS/hI,EAAGkgE,CAAC,CAAC,GAAK71E,EAAE,GAAG03I,EAAE,EAAE,MAAM,QAAS/hI,EAAGkgE,CAAC,CAAC,EAAGrhB,EAAI,CAAC7+C,EAAGkgE,IAAMze,EAAE,GAAGsgF,EAAE,EAAE,MAAM,QAAS/hI,EAAGkgE,CAAC,CAAC,GAAK71E,EAAE,GAAG03I,EAAE,EAAE,MAAM,QAAS/hI,EAAGkgE,CAAC,CAAC,EAAGjpD,EAAI,CAACjX,EAAGkgE,EAAGn2C,IAAM,CAClL,IAAIi4H,EAAI,GACR,OAAO,EAAE,MAAM,SAAWj4H,GAAK80B,EAAE7+C,EAAGkgE,CAAC,IAAM8hF,EAAI,IAAK,EAAE,MAAM,SAAW,CAACj4H,GAAKk2C,EAAEjgE,EAAGkgE,CAAC,IAAM8hF,EAAI,IAAKA,CACpG,EAAGxrH,EAAI,CAACx2B,EAAGkgE,EAAGn2C,EAAGi4H,IAAM,CACrB,IAAIK,EAAI,GACR,OAAOL,IAAM,EAAE,MAAM,SAAW,EAAE,MAAM,SAAW,EAAE,MAAM,SAAW,EAAE,MAAM,QAAUK,EAAIprI,EAAEjX,EAAGkgE,EAAGn2C,CAAC,GAAK,EAAE,MAAM,SAAWk2C,EAAEjgE,EAAGkgE,CAAC,GAAK,EAAE,MAAM,SAAWrhB,EAAE7+C,EAAGkgE,CAAC,KAAOmiF,EAAI,IAAMA,EAAI,GAAIA,CAC5L,EAAGzhF,EAAK5gE,GAAM,MAAM,QAAQ,EAAE,MAAM,YAAY,GAAK,CAAC,EAAE,MAAM,aAAa,OAAS,GAAK,EAAE,MAAM,aAAe,CAAC4vB,EAC/G5vB,EACA,EAAE,MAAM,aACRpQ,EAAE,EAAE,YAAa,EAAE,UAAU,CACjC,EAAM,GAAI40E,EAAKxkE,GAAM,CAACggE,EAAEhgE,CAAC,EAAGygJ,EAAKzgJ,GAAMqqD,EAAE,MAAM,gBAAkB,CAACi4F,GAAG,CAAE,MAAOtiJ,EAAE,CAAC,EAAG,IAAKA,EAAE,CAAC,CAAC,CAAE,EAAE,KAAM+pB,GAAMy6C,EAAEz6C,CAAC,CAAC,EAAI,GAAI22H,GAAM1gJ,GAAM,CACjI,GAAIA,EAAG,CACL,MAAMkgE,EAAImgF,GAAGrgJ,CAAC,EACd,OAAOkgE,GAAK,CAAC,EAAE,UAAU,CAAC,GAAKA,GAAK,EAAE,UAAU,CAAC,CACnD,CACA,MAAO,EACT,EAAGygF,GAAK,CAAC3gJ,EAAGkgE,IAAM,CAAC,EAAE,MAAM,QAAQlgE,CAAC,GAAKA,EAAEkgE,CAAC,IAAM7V,EAAE,MAAM,UAAYA,EAAE,MAAM,WAAaq2F,GAAG1gJ,EAAEkgE,CAAC,CAAC,GAAI0gF,GAAK,CAAC5gJ,EAAGkgE,EAAGn2C,EAAI,IAAM,CAC1H,GAAI42H,GAAGzgF,EAAGn2C,CAAC,GAAK22H,GAAG1gJ,CAAC,EAAG,CACrB,MAAMgiJ,EAAIO,GAAGviJ,EAAGkgE,EAAEn2C,CAAC,CAAC,EAAGs4H,EAAIliI,EAAE+/C,EAAEn2C,CAAC,EAAG/pB,CAAC,EAAGzQ,EAAI8yJ,EAAE,SAAW,EAAI,EAAIA,EAAE,OAAQF,GAAM39E,EAAE29E,CAAC,CAAC,EAAE,OAAQv1J,EAAI,KAAK,IAAIo1J,CAAC,GAAK33F,EAAE,MAAM,eAAiB,EAAI96D,GAC9I,GAAI86D,EAAE,MAAM,UAAYA,EAAE,MAAM,SAC9B,OAAOz9D,GAAK,CAACy9D,EAAE,MAAM,UAAYz9D,GAAK,CAACy9D,EAAE,MAAM,SACjD,GAAIA,EAAE,MAAM,SAAU,OAAOz9D,GAAK,CAACy9D,EAAE,MAAM,SAC3C,GAAIA,EAAE,MAAM,SAAU,OAAOz9D,GAAK,CAACy9D,EAAE,MAAM,QAC7C,CACA,MAAO,EACT,EAAG0V,EAAI,IAAM,CAAC/vB,EAAE,MAAM,kBAAoB,EAAE,aAAe,EAAE,YAAcA,EAAE,MAAM,qBAAsB6wG,GAAM7gJ,GAAM,MAAM,QAAQA,CAAC,EAAI,CAACA,EAAE,CAAC,EAAIwgE,EAAExgE,EAAE,CAAC,CAAC,EAAI,KAAMA,EAAE,CAAC,EAAIwgE,EAAExgE,EAAE,CAAC,CAAC,EAAI,IAAI,EAAIwgE,EAAExgE,CAAC,EAAG6/D,GAAI,CAAC7/D,EAAGkgE,EAAGn2C,IAAMm2C,EAAIlgE,EAAE,KACnNgiJ,GAAM,CAACA,EAAE,QAAU/B,GAAG//E,CAAC,GAAK8hF,EAAE,UAAY,IAAM,GAAK,CAACA,EAAE,UAAY9B,GAAGhgF,CAAC,GAAK,CAAC8hF,EAAE,QAAU/B,GAAG//E,CAAC,CACnG,GAAOn2C,EAAI,GAAI+2H,GAAK,CAAC9gJ,EAAGkgE,EAAGn2C,IAAM,CAC7B,KAAM,CAACi4H,EAAGK,CAAC,EAAIriJ,EAAG,CAACzQ,EAAG3C,CAAC,EAAIszE,EAC3B,MAAO,CAACL,GAAEmiF,EAAGzyJ,EAAGw6B,CAAC,GAAK,CAAC81C,GAAEwiF,EAAGz1J,EAAGm9B,CAAC,GAAKA,CACvC,EAAG42C,GAAI,CAAC3gE,EAAGkgE,IAAM,CACf,MAAMn2C,EAAI,MAAM,QAAQm2C,CAAC,EAAIA,EAAI,CAACA,CAAC,EACnC,OAAO,MAAM,QAAQ,EAAE,aAAa,EAAI,MAAM,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAI4gF,GAAG,EAAE,cAAe/2H,EAAG/pB,CAAC,EAAI,CAAC+pB,EAAE,KAAMi4H,GAAMniF,GAAE,EAAE,cAAemiF,EAAGhiJ,CAAC,CAAC,EAAIA,CACrJ,EAAG+/I,GAAK,CAAC//I,EAAGkgE,IAAM,CAChB,MAAMn2C,EAAI,MAAM,QAAQm2C,CAAC,EAAI,CAAC5B,EAAE4B,EAAE,CAAC,CAAC,EAAGA,EAAE,CAAC,EAAI5B,EAAE4B,EAAE,CAAC,CAAC,EAAI,MAAM,EAAI5B,EAAE4B,CAAC,EAAG8hF,EAAI,CAAC,EAAE,cAAcj4H,CAAC,EAC9F,OAAO/pB,GAAKgiJ,CACd,EAAGzB,GAAK,CAACvgJ,EAAGkgE,IAAM,EAAE,cAAgB,MAAM,QAAQ,EAAE,aAAa,EAAIS,GAAET,EAAGlgE,CAAC,EAAI+/I,GAAG7/E,EAAGlgE,CAAC,EAAIkgE,EAAG8/E,GAAMhgJ,GAAM,CACvG,IAAIkgE,EAAI,GACR,GAAI,CAAClgE,GAAK+/D,EAAC,EAAI,MAAO,GACtB,MAAMh2C,EAAI,CAAC,EAAE,MAAM,SAAW,CAAC,EAAE,MAAM,QAAU82H,GAAG7gJ,CAAC,EAAIA,EACzD,OAAQ,EAAE,SAAW,EAAE,MAAM,WAAakgE,EAAIsiF,EAC5C,EAAE,QACF,EAAE,MAAM,QACR,MACApiF,EAAEr2C,CAAC,EACHm2C,CACN,IAAS,EAAE,SAAW,EAAE,MAAM,WAAaA,EAAIsiF,EACzC,EAAE,QACF,EAAE,MAAM,QACR,MACApiF,EAAEr2C,CAAC,EACHm2C,CACN,GAAQqgF,GAAGvgJ,EAAGkgE,CAAC,CACb,EAAG8gF,GAAMhhJ,GAAM,CACb,GAAI,CAAC,EAAE,YAAa,MAAO,GAC3B,IAAIkgE,EAAI,GACR,MAAMn2C,EAAI17B,EAAE,EAAE2R,CAAC,CAAC,EAChB,GAAI,EAAE,MAAM,SAAW,EAAE,MAAM,QAAS,CACtC,MAAMgiJ,EAAI3zJ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,EAAGg0J,EAAIh0J,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,EACzD,OAAOozD,EAAE13B,EAAGi4H,CAAC,GAAKvC,EAAE11H,EAAGs4H,CAAC,GAAKh4J,EAAE0/B,EAAGi4H,CAAC,GAAK33J,EAAE0/B,EAAGs4H,CAAC,CAChD,CACA,GAAI,EAAE,MAAM,QAAS,CACnB,MAAML,EAAI3zJ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,EAC9B6xE,EAAIze,EAAE13B,EAAGi4H,CAAC,GAAK33J,EAAE0/B,EAAGi4H,CAAC,CACvB,CACA,GAAI,EAAE,MAAM,QAAS,CACnB,MAAMA,EAAI3zJ,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,EAC9B6xE,EAAIu/E,EAAE11H,EAAGi4H,CAAC,GAAK33J,EAAE0/B,EAAGi4H,CAAC,CACvB,CACA,OAAO9hF,CACT,EAAG+gF,GAAK3/E,EAAE,IAAOthE,GAAM,CAACgwC,EAAE,MAAM,kBAAoBA,EAAE,MAAM,qBAAuB,GAAKgwG,GAAGhgJ,CAAC,CAAC,EAAGkhJ,EAAK5/E,EAAE,IAAOthE,GAAM,EAAE,YAAc,MAAM,QAAQA,CAAC,IAAMqqD,EAAE,MAAM,SAAW7zC,EAAE,MAAM,SAAW,CAACxW,EAAE,OAAQ+pB,GAAM,CAACi3H,GAAGj3H,CAAC,CAAC,EAAE,OAASi3H,GAAGhhJ,CAAC,EAAI,EAAE,EAAGmhJ,GAAK,CAACnhJ,EAAGkgE,EAAGn2C,IAAM,CAC9P,GAAI,CAACm2C,GAAKn2C,GAAK,CAAC,EAAE,MAAM,SAAW,CAACA,GAAK,CAAC,EAAE,MAAM,QAAS,MAAO,GAClE,MAAMi4H,EAAIj4H,EAAI04H,GAAGziJ,EAAG,CAAC,EAAIohE,GAAGphE,EAAG,CAAC,EAAGqiJ,EAAI,CAACjC,GAAG4B,CAAC,EAAG3B,GAAG2B,CAAC,CAAC,EACpD,OAAOj4H,EAAI,CAAC80B,EAAE,GAAGwjG,CAAC,EAAI,CAACpiF,EAAE,GAAGoiF,CAAC,CAC/B,EAAGtgB,EAAI,CAAC/hI,EAAGkgE,EAAGn2C,IAAM,CAACy2H,GAAGnyJ,EAAE2R,CAAC,EAAG,CAAE,KAAM,CAAC,CAAE,EAAGwgJ,GAAGnyJ,EAAC,EAAI,CAAE,MAAO6xE,EAAG,KAAMn2C,EAAG,KAAM,CAAC,CAAE,CAAC,EAAG24H,EAAK,CAAC1iJ,EAAGkgE,EAAGn2C,EAAGi4H,IAAM,CACzG,GAAI,CAAChiJ,EAAG,MAAO,GACf,GAAIgiJ,EAAG,CACL,MAAMK,EAAIt4H,IAAM,MAAQ44H,GAAG3iJ,EAAGkgE,CAAC,EAAI0iF,GAAG5iJ,EAAGkgE,CAAC,EAAG3wE,EAAI,CAAE,QAAS,EAAG,aAAc,CAAC,EAC9E,OAAO8yJ,GAAKQ,GAAGrC,GAAGxgJ,EAAGzQ,CAAC,EAAGixJ,GAAGtgF,EAAG3wE,CAAC,CAAC,CACnC,CACA,OAAOw6B,IAAM,MAAQ/pB,EAAE,QAAO,GAAMkgE,EAAE,QAAO,EAAKlgE,EAAE,WAAakgE,EAAE,QAAO,CAC5E,EAAGsiF,EAAK,CAACxiJ,EAAGkgE,EAAGn2C,EAAGi4H,EAAGK,IAAM,CACzB,GAAI,MAAM,QAAQL,CAAC,EAAG,CACpB,MAAMp1J,EAAI0B,EAAE0R,EAAGgiJ,EAAE,CAAC,EAAG9hF,CAAC,EAAGiiF,EAAI7zJ,EAAE0R,EAAGgiJ,EAAE,CAAC,EAAG9hF,CAAC,EACzC,OAAOwiF,EAAGV,EAAE,CAAC,EAAGp1J,EAAGm9B,EAAG,CAAC,CAACm2C,CAAC,GAAKwiF,EAAGV,EAAE,CAAC,EAAGG,EAAGp4H,EAAG,CAAC,CAACm2C,CAAC,GAAKmiF,CACvD,CACA,MAAM9yJ,EAAIjB,EAAE0R,EAAGgiJ,EAAG9hF,CAAC,EACnB,OAAOwiF,EAAGV,EAAGzyJ,EAAGw6B,EAAG,CAAC,CAACm2C,CAAC,GAAKmiF,CAC7B,EAAG/zJ,EAAI,CAAC0R,EAAGkgE,EAAGn2C,IAAM/pB,EAAI0gE,EAAE1gE,EAAGkgE,CAAC,EAAI7xE,EAAE07B,GAAKm2C,CAAC,EAC1C,MAAO,CACL,WAAYsE,EACZ,aAAcxE,EACd,yBAA0BxpC,EAC1B,mBAAoBiqH,EACpB,iBAAkBG,GAClB,YAAaZ,GACb,kBAAmBmB,GACnB,gBAAiBlhF,EACjB,gBAAiBphB,EACjB,YAAc7+C,GAAM,MAAM,QAAQA,CAAC,EAAI8iJ,GAAG9iJ,EAAE,CAAC,CAAC,IAAMA,EAAE,CAAC,EAAI8iJ,GAAG9iJ,EAAE,CAAC,CAAC,EAAI,IAAMA,EAAI8iJ,GAAG9iJ,CAAC,EAAI,GACxF,uBAAyBA,GAAM,CAC7B,GAAIA,EAAG,OAAO,KACd,MAAM,IAAI,MAAMjL,EAAE,KAAK,eAAe,CAAC,CACzC,EACA,kBAAmB,CAACiL,EAAGkgE,IAAM,CAC3B,GAAIA,EAAG,OAAOlgE,EAAC,EACf,MAAM,IAAI,MAAMjL,EAAE,KAAK,OAAO,CAAC,CACjC,EACA,iBAAkB,CAACiL,EAAGkgE,EAAGn2C,IAAM,CAC7B,MAAMi4H,EAAIj4H,GAAK,KAAMs4H,EAAIniF,GAAK,KAC9B,GAAI,CAAC8hF,GAAK,CAACK,EAAG,MAAO,GACrB,MAAM9yJ,EAAI,CAACw6B,EAAGn9B,EAAI,CAACszE,EACnB,OAAO8hF,GAAKK,EAAI,CAACriJ,EAAIzQ,GAAK,CAACyQ,EAAIpT,EAAIo1J,EAAI,CAAChiJ,EAAIzQ,EAAI8yJ,EAAI,CAACriJ,EAAIpT,EAAI,EAC/D,EACA,YAAaq0J,GACb,aAAcC,CAClB,CACA,EAAG6B,GAAM,GAAM,CACb,KAAM,CACJ,SAAU14F,EACV,UAAW7zC,EACX,SAAU,CAAE,WAAY,EAAG,KAAMw5B,CAAC,CACtC,EAAM0vG,GAAE,EAAI,EAAIlB,GAAG,CAAC,EAAGnwJ,EAAIiwJ,GAAG,CAC1B,CAACr9E,GAAG,UAAU,EAAG,CAAC,EAAE,MAAM,kBAAoBzqD,EAAE,YAAcA,EAAE,YAChE,CAACyqD,GAAG,QAAQ,EAAG,GACf,CAACA,GAAG,MAAM,EAAG,EACjB,CAAG,EAAGrxE,EAAI0xE,EAAE,IAAM9qD,EAAE,aAAeA,EAAE,UAAU,EAAGoZ,EAAKvlC,GAAM,CACzD,GAAI2lD,EAAE,OAAO,OAAO,OAAQ,CAC1B,GAAI,CAAC3lD,GAAKuF,EAAE,MAAO,OAAO6xD,EAAC,EAC3BpzD,EAAEhE,CAAC,EAAI,GAAI,OAAO,KAAKgE,CAAC,EAAE,OAAQ,GAAM,CAACA,EAAE,CAAC,CAAC,EAAE,QAAUozD,EAAC,CAC5D,CACF,EAAG1sD,EAAI,IAAM,CACXi7C,EAAE,OAAO,OAAO,QAAU,EAAE,QAAU,KAAO,EAAE,OAAS,EAAGqa,EAAE,YAAa,EAAE,KAAK,EAAG5I,EAAC,GAAKzR,EAAE,OAAO,OAAO,SAAW,EAAE,OAASgzG,GAAE,EAAG,KAAK,IAAM5iF,EAAC,CAAE,CACrJ,EAAGA,EAAI,IAAM,CACX,EAAE,MAAQ,EACZ,EAAGq/E,EAAI,CAACp1J,EAAG,KAAM81B,IAAM,CACrB6vB,EAAE,OAAO,MAAM,EAAE,KAAK,IAAM3lD,GAAK,EAAE,OAAS,EAAE,MAAM,CAAC,IAAI,GAAG81B,CAAC,CAC/D,EAAGshC,EAAI,CAACp3D,EAAI,IAAM,CAChBA,IAAM,EAAE,OAASA,GAAIo1J,EAAER,GAAG,MAAO,oBAAqB,EAAE,EAAGQ,EAAER,GAAG,KAAM,mBAAoB,EAAE,EAAGQ,EAAER,GAAG,SAAU,mBAAoB,GAAI,EAAE,EAAGQ,EAAER,GAAG,KAAM,mBAAoB,GAAI,EAAE,EAChL,MAAM,EAAIjvG,EAAE,OAAO,MAAM,EAAE,KAAK,GAC/B,IAAMivG,GAAG,OAAS,IAAMA,GAAG,SAAW,IAAMA,GAAG,UAAYQ,EAAE,EAAG,mBAAoB,GAAI,GAAI,CAAC,CAChG,EACA,MAAO,CAAE,WAAY7vH,EAAG,eAAgB76B,EAAG,UAAWqrE,EAAG,WAAY3e,EAAG,SAAU,CAAC,CACrF,EACA,SAASwhG,GAAG,EAAG,CACb,MAAO,CAAC54F,EAAI,KAAO,CACjB,MAAM7zC,EAAI6zC,EAAE,MAAQ,OAAOA,EAAE,KAAK,EAAI,EAAE,aACxC,OAAO,EAAE,QAAQ7zC,CAAC,GAAK,EAAE,QAAQ,EAAE,YAAY,CACjD,CACF,CACA,SAAS0sI,GAAG,EAAG,CACb,MAAO,CAAC74F,EAAG7zC,IAAM,CACf,MAAM,EAAIA,GAAG,QAAU,OAAOA,EAAE,OAAO,EAAI,aAC3C,IAAIw5B,EACJ,GAAI,IAAM,cAAgB,EAAE,iBAAkB,CAC5C,MAAM3hD,EAAI,EAAE,wBAA0B,EAAE,aAAcuB,EAAI4mB,GAAG,MAAQ,OAAOA,EAAE,KAAK,EAAInoB,EACvF2hD,EAAI,EAAE,iBAAiBpgD,CAAC,GAAK,EAAE,iBAAiBvB,CAAC,CACnD,KAAO,CACL,MAAMA,EAAI,EAAE,aAAcuB,EAAI4mB,GAAG,MAAQ,OAAOA,EAAE,KAAK,EAAI,EAAE,aAC7Dw5B,EAAI,EAAE,OAAOpgD,CAAC,GAAK,EAAE,OAAOvB,CAAC,CAC/B,CACA,MAAM,EAAI,EAAE,iBAAmB,EAAE,iBAAiBg8D,CAAC,EAAIA,EACvD,OAAOra,EAAE,CAAC,CACZ,CACF,CACA,SAASmzG,GAAG,EAAG,CACb,MAAO,CAAC94F,EAAG7zC,EAAI,KAAO,CACpB,MAAM,EAAIA,EAAE,MAAOw5B,EAAI,GAAK,EAAE,cAAc,CAAC,GAAK,EAAE,cAAc,EAAE,iBAAiB,EAAG,EAAIqa,EAAE,MAAMra,CAAC,EACrG,GAAI,CAAC,EACH,OAAO,KACT,MAAM3hD,EAAI,EAAE,CAAC,EAAGuB,EAAI,GAAK,EAAE,cAAc,CAAC,GAAK,EAAE,cAAc,EAAE,iBAAiB,EAAGggC,EAAI,MAAM,QAAQhgC,CAAC,EAAIwzJ,GAAGxzJ,EAAI6vJ,GAAMA,EAAE,KAAKpxJ,CAAC,CAAC,EAEhIg1J,GAAGzzJ,EAAI6vJ,GAAMA,EAAE,KAAKpxJ,CAAC,CAAC,EAExB,IAAI0G,EACJA,EAAI,EAAE,cAAgB,EAAE,cAAc66B,CAAC,EAAIA,EAAG76B,EAAIyhB,EAAE,cAElDA,EAAE,cAAczhB,CAAC,EACfA,EACJ,MAAMqrE,EAAI/V,EAAE,MAAMh8D,EAAE,MAAM,EAC1B,MAAO,CAAE,MAAO0G,EAAG,KAAMqrE,CAAC,CAC5B,CACF,CACA,SAASijF,GAAG,EAAGh5F,EAAG,CAChB,UAAW7zC,KAAK,EACd,GAAI,OAAO,UAAU,eAAe,KAAK,EAAGA,CAAC,GAAK6zC,EAAE,EAAE7zC,CAAC,CAAC,EACtD,OAAOA,CACb,CACA,SAAS4sI,GAAG,EAAG/4F,EAAG,CAChB,QAAS7zC,EAAI,EAAGA,EAAI,EAAE,OAAQA,IAC5B,GAAI6zC,EAAE,EAAE7zC,CAAC,CAAC,EACR,OAAOA,CACb,CACA,SAAS8sI,GAAG,EAAG,CACb,MAAO,CAACj5F,EAAG7zC,EAAI,KAAO,CACpB,MAAM,EAAI6zC,EAAE,MAAM,EAAE,YAAY,EAChC,GAAI,CAAC,EAAG,OAAO,KACf,MAAMra,EAAI,EAAE,CAAC,EAAG,EAAIqa,EAAE,MAAM,EAAE,YAAY,EAC1C,GAAI,CAAC,EAAG,OAAO,KACf,IAAIh8D,EAAI,EAAE,cAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,EAAI,EAAE,CAAC,EACrDA,EAAImoB,EAAE,cAAgBA,EAAE,cAAcnoB,CAAC,EAAIA,EAC3C,MAAMuB,EAAIy6D,EAAE,MAAMra,EAAE,MAAM,EAC1B,MAAO,CAAE,MAAO3hD,EAAG,KAAMuB,CAAC,CAC5B,CACF,CACA,MAAM2zJ,GAAK,CACT,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EACE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EACE,YAAa,gBACb,iBAAkB,CAChB,IAAK,qBACL,MAAO,6BACX,EACE,SAAU,CACR,IAAK,WACL,MAAO,mBACX,EACE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EACE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EACE,MAAO,CACL,IAAK,QACL,MAAO,gBACX,EACE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EACE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EACE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,EACE,QAAS,CACP,IAAK,UACL,MAAO,kBACX,EACE,YAAa,CACX,IAAK,eACL,MAAO,uBACX,EACE,OAAQ,CACN,IAAK,SACL,MAAO,iBACX,EACE,WAAY,CACV,IAAK,cACL,MAAO,sBACX,EACE,aAAc,CACZ,IAAK,gBACL,MAAO,wBACX,CACA,EAAGC,GAAK,CAAC,EAAGn5F,EAAG7zC,IAAM,CACnB,IAAI,EACJ,MAAMw5B,EAAIuzG,GAAG,CAAC,EACd,OAAO,OAAOvzG,GAAK,SAAW,EAAIA,EAAIqa,IAAM,EAAI,EAAIra,EAAE,IAAM,EAAIA,EAAE,MAAM,QAAQ,YAAaqa,EAAE,SAAQ,CAAE,EAAG7zC,GAAG,UAAYA,EAAE,YAAcA,EAAE,WAAa,EAAI,MAAQ,EAAI,EAAI,OAAS,CACzL,EAAGitI,GAAK,CACN,SAAU,qBACV,UAAW,mBACX,MAAO,eACP,SAAU,kBACV,SAAU,cACV,MAAO,GACT,EAAGC,GAAK,CAAC,EAAGr5F,EAAG7zC,EAAG,IAAMitI,GAAG,CAAC,EAAGE,GAAK,CAClC,OAAQ,CAAC,IAAK,GAAG,EACjB,YAAa,CAAC,KAAM,IAAI,EACxB,KAAM,CAAC,gBAAiB,aAAa,CACvC,EAAGC,GAAK,CACN,OAAQ,CAAC,IAAK,IAAK,IAAK,GAAG,EAC3B,YAAa,CAAC,KAAM,KAAM,KAAM,IAAI,EACpC,KAAM,CAAC,cAAe,cAAe,cAAe,aAAa,CACnE,EAAGC,GAAK,CACN,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EACnE,YAAa,CACX,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EACE,KAAM,CACJ,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACJ,CACA,EAAGC,GAAK,CACN,OAAQ,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAG,EAC1C,MAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAChD,YAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC7D,KAAM,CACJ,SACA,SACA,UACA,YACA,WACA,SACA,UACJ,CACA,EAAGp3B,GAAK,CACN,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,UACT,UAAW,YACX,QAAS,UACT,MAAO,OACX,CACA,EAAGq3B,GAAK,CACN,OAAQ,CACN,GAAI,IACJ,GAAI,IACJ,SAAU,KACV,KAAM,IACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,YAAa,CACX,GAAI,KACJ,GAAI,KACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,EACE,KAAM,CACJ,GAAI,OACJ,GAAI,OACJ,SAAU,WACV,KAAM,OACN,QAAS,iBACT,UAAW,mBACX,QAAS,iBACT,MAAO,UACX,CACA,EAAGC,GAAK,CAAC,EAAG35F,IAAM,CAChB,MAAM7zC,EAAI,OAAO,CAAC,EAAG,EAAIA,EAAI,IAC7B,GAAI,EAAI,IAAM,EAAI,GAChB,OAAQ,EAAI,GAAE,CACZ,IAAK,GACH,OAAOA,EAAI,KACb,IAAK,GACH,OAAOA,EAAI,KACb,IAAK,GACH,OAAOA,EAAI,IACnB,CACE,OAAOA,EAAI,IACb,EAAGytI,GAAK,CACN,cAAeD,GACf,IAAKd,GAAG,CACN,OAAQS,GACR,aAAc,MAClB,CAAG,EACD,QAAST,GAAG,CACV,OAAQU,GACR,aAAc,OACd,iBAAmB,GAAM,EAAI,CACjC,CAAG,EACD,MAAOV,GAAG,CACR,OAAQW,GACR,aAAc,MAClB,CAAG,EACD,IAAKX,GAAG,CACN,OAAQY,GACR,aAAc,MAClB,CAAG,EACD,UAAWZ,GAAG,CACZ,OAAQx2B,GACR,aAAc,OACd,iBAAkBq3B,GAClB,uBAAwB,MAC5B,CAAG,CACH,EAAGG,GAAK,wBAAyBC,GAAK,OAAQC,GAAK,CACjD,OAAQ,UACR,YAAa,6DACb,KAAM,4DACR,EAAGC,GAAK,CACN,IAAK,CAAC,MAAO,SAAS,CACxB,EAAGC,GAAK,CACN,OAAQ,WACR,YAAa,YACb,KAAM,gCACR,EAAGC,GAAK,CACN,IAAK,CAAC,KAAM,KAAM,KAAM,IAAI,CAC9B,EAAGC,GAAK,CACN,OAAQ,eACR,YAAa,sDACb,KAAM,2FACR,EAAGC,GAAK,CACN,OAAQ,CACN,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACJ,EACE,IAAK,CACH,OACA,MACA,QACA,OACA,QACA,QACA,QACA,OACA,MACA,MACA,MACA,KACJ,CACA,EAAGC,GAAK,CACN,OAAQ,YACR,MAAO,2BACP,YAAa,kCACb,KAAM,8DACR,EAAGC,GAAK,CACN,OAAQ,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACxD,IAAK,CAAC,OAAQ,MAAO,OAAQ,MAAO,OAAQ,MAAO,MAAM,CAC3D,EAAGC,GAAK,CACN,OAAQ,6DACR,IAAK,gFACP,EAAGC,GAAK,CACN,IAAK,CACH,GAAI,MACJ,GAAI,MACJ,SAAU,OACV,KAAM,OACN,QAAS,WACT,UAAW,aACX,QAAS,WACT,MAAO,QACX,CACA,EAAGC,GAAK,CACN,cAAexB,GAAG,CAChB,aAAcY,GACd,aAAcC,GACd,cAAgB,GAAM,SAAS,EAAG,EAAE,CACxC,CAAG,EACD,IAAKhB,GAAG,CACN,cAAeiB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EACD,QAASlB,GAAG,CACV,cAAemB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,MACnB,cAAgB,GAAM,EAAI,CAC9B,CAAG,EACD,MAAOpB,GAAG,CACR,cAAeqB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EACD,IAAKtB,GAAG,CACN,cAAeuB,GACf,kBAAmB,OACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,EACD,UAAWxB,GAAG,CACZ,cAAeyB,GACf,kBAAmB,MACnB,cAAeC,GACf,kBAAmB,KACvB,CAAG,CACH,EAAGE,GAAK,CACN,KAAM,mBACN,KAAM,aACN,OAAQ,WACR,MAAO,YACT,EAAGC,GAAK,CACN,KAAM,iBACN,KAAM,cACN,OAAQ,YACR,MAAO,QACT,EAAGC,GAAK,CACN,KAAM,yBACN,KAAM,yBACN,OAAQ,qBACR,MAAO,oBACT,EAAGC,GAAK,CACN,KAAMjC,GAAG,CACP,QAAS8B,GACT,aAAc,MAClB,CAAG,EACD,KAAM9B,GAAG,CACP,QAAS+B,GACT,aAAc,MAClB,CAAG,EACD,SAAU/B,GAAG,CACX,QAASgC,GACT,aAAc,MAClB,CAAG,CACH,EAAGE,GAAK,CACN,KAAM,QACN,eAAgB3B,GAChB,WAAY0B,GACZ,eAAgBxB,GAChB,SAAUO,GACV,MAAOa,GACP,QAAS,CACP,aAAc,EACd,sBAAuB,CAC3B,CACA,EAAGM,GAAK,CACN,gBAAiB,GACjB,gBAAiB,GACjB,eAAgB,GAChB,aAAc,GACd,2BAA4B,GAC5B,SAAU,OACV,SAAU,OACV,UAAW,OACX,WAAY,GACZ,SAAU,EACZ,EAAGC,GAAK,CACN,qBAAsB,GACtB,cAAe,GACf,WAAY,IACZ,oBAAqB,GACrB,kBAAmB,GACnB,iBAAkB,GAClB,QAAS,GACT,cAAe,GACf,eAAgB,OAChB,iBAAkB,GAClB,UAAW,OACX,sBAAuB,GACvB,uBAAwB,EACxB,UAAW,GACX,iBAAkB,IAClB,mBAAoB,GACpB,SAAU,GACV,aAAc,GACd,oBAAqB,GACrB,oBAAqB,EACvB,EAAGC,GAAK,CACN,YAAa,GACb,UAAW,GACX,SAAU,OACV,cAAe,GACf,eAAgB,MAChB,SAAU,GACV,OAAQ,OACR,WAAY,MACd,EAAGC,GAAK,CACN,MAAO,GACP,MAAO,GACP,OAAQ,GACR,SAAU,GACV,MAAO,GACP,SAAU,GACV,QAAS,CAAE,kBAAmB,EAAE,CAClC,EAAGC,GAAK,CACN,WAAY,GACZ,WAAY,GACZ,QAAS,GACT,YAAa,GACb,eAAgB,SAChB,eAAgB,SAChB,YAAa,MACb,YAAa,MACf,EAAGC,GAAK,CACN,cAAe,iBACf,KAAM,kBACN,MAAO,mBACP,eAAgB,mBAChB,gBAAiB,oBACjB,eAAiB,GAAM,aAAa,CAAC,GACrC,eAAiB,GAAM,aAAa,CAAC,GACrC,cAAgB,GAAM,QAAQ,CAAC,WAC/B,WAAY,oBACZ,iBAAkB,qBAClB,kBAAmB,sBACnB,UAAW,aACX,UAAW,iBACX,SAAU,YACV,SAAU,gBACV,IAAK,OACL,QAAS,OACT,WAAY,cACZ,aAAc,gBACd,WAAY,cACZ,YAAc,GAAM,eAAe,EAAI,WAAa,EAAE,GACtD,WAAa,GAAM,cAAc,EAAI,WAAa,EAAE,GACpD,YAAc,GAAM,GAAG,CAAC,UAC1B,EAAGC,GAAK,CACN,cAAe,qBACf,iBAAkB,wBAClB,KAAM,gBACN,MAAO,cACP,KAAM,gBACN,SAAU,gBACV,MAAO,cACP,UAAW,eACb,EAAGC,GAAK,CACN,SAAU,GACV,OAAQ,GACR,MAAO,GACP,MAAO,CAAE,MAAO,GAAI,QAAS,GAAI,QAAS,EAAE,CAC9C,EAAGC,GAAK,CACN,MAAO,MACP,KAAM,OACN,QAAS,SACT,QAAS,OACT,IAAK,IACL,MAAO,OACP,QAAS,MACX,EAAGC,GAAK,CACN,iBAAkB,GAClB,qBAAsB,GACtB,cAAe,GACf,cAAe,GACf,KAAM,GACN,eAAgB,GAChB,iBAAkB,GAClB,iBAAkB,GAClB,mBAAoB,EACpB,qBAAsB,EACtB,qBAAsB,EACtB,eAAgB,EAChB,iBAAkB,EAClB,iBAAkB,EAClB,iBAAkB,GAClB,UAAW,MACb,EAAGC,GAAK,CACN,SAAU,EACV,YAAa,KACb,SAAU,EACZ,EAAGC,GAAK,CACN,UAAW,EACX,UAAW,IAAM,CAAC,KAAM,IAAI,EAC5B,GAAI,KAAO,IACX,OAAQ,IAAMZ,GACd,KAAM,GACN,YAAa,GACb,eAAgB,IAAM,GACtB,SAAU,GACV,oBAAqB,GACrB,kBAAmB,GACnB,UAAW,GACX,cAAe,IAAM,GACrB,gBAAiB,GACjB,QAAS,GACT,QAAS,IAAM,GACf,YAAa,IAAM,GACnB,wBAAyB,GACzB,aAAc,GACd,WAAY,GACZ,gBAAiB,GACjB,YAAa,GACb,WAAY,GACZ,cAAe,GACf,WAAY,GACZ,UAAW,GACX,WAAY,GACZ,MAAO,GACP,OAAQ,GACR,SAAU,GACV,eAAgB,GAChB,UAAW,GACX,QAAS,GACT,SAAU,EACZ,EAAGa,GAAK,CACN,KAAM,OACN,SAAU,GACV,aAAc,MACd,MAAO,OACP,UAAW,GACX,gBAAiB,GACjB,cAAe,GACf,GAAI,OACJ,UAAW,MACb,EAAGC,GAAK,CACN,KAAM,QACN,kBAAmB,GACnB,MAAO,GACT,EAAGvE,GAAM,GAAM,CACb,KAAM,CAAE,UAAWr3F,EAAG,cAAe7zC,EAAG,sBAAuB,CAAC,EAAKgpI,GAAE,EACvE,SAASxvG,EAAE+vB,EAAG8gF,GAAI,CAChB,IAAIhhF,GACJ,OAAO,EAAE,SAAWA,GAAI,IAAIqmF,GAAGnmF,GAAqB,IAAI,KAAQ,EAAE,QAAQ,EAAIF,GAAIE,EAAI,IAAI,KAAKA,CAAC,EAAoB,IAAI,KAAQ8gF,GAAKL,GAAG3gF,GAAG,CAAE,MAAO,EAAG,QAAS,EAAG,QAAS,EAAG,aAAc,CAAC,CAAE,EAAIA,EACtM,CACA,MAAM,EAAI,IAAM,CACd,MAAME,EAAI0gF,EAAE,MAAM,cAAgB,MAAQ,GAAII,GAAKJ,EAAE,MAAM,cAAgB,MAAQ,GACnF,OAAOA,EAAE,MAAM,KAAO,KAAKI,EAAE,GAAG9gF,CAAC,GAAK,KAAK8gF,EAAE,GAAG9gF,CAAC,KACnD,EAAG1xE,EAAI,IAAM,EAAE,YAAc,UAAY,EAAE,WAAa,IAAM,EAAE,WAAa,GAAG2xE,EAAE,OAAO,OAAS,MAAQ,KAAO,IAAI,MAAQ,EAAE,WAAa,OAAS,EAAE,cAAgB,WAAaygF,EAAE,MAAM,iBAAmB,eAAe,EAAC,CAAE,GAAK,aAAc7wJ,EAAKmwE,GAAM,EAAE/vB,IAAK+vB,EAAG0gF,EAAE,MAAM,aAAa,EAAG7wH,EAAI,IAAM3Y,EAAE,MAAM,QAAUwpI,EAAE,MAAM,WAAa,MAAM,QAAQA,EAAE,MAAM,SAAS,EAAI,CAAC7wJ,EAAE6wJ,EAAE,MAAM,UAAU,CAAC,CAAC,EAAG7wJ,EAAE6wJ,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,EAAI,KAAOA,EAAE,MAAM,WAAa,CAAC,MAAM,QAAQA,EAAE,MAAM,SAAS,EAAI7wJ,EAAE6wJ,EAAE,MAAM,SAAS,EAAI,KAAM1rJ,EAAKgrE,GAAMA,EAAI,OAAOA,GAAK,UAAYA,EAAI,EAAI,EAAI,KAAK,IAAI,CAACA,EAAG,CAAC,EAAI,EAAGK,EAAKL,GAAM,CACxlB,MAAM8gF,GAAKrqI,EAAE,EAAE,YAAa,EAAE,UAAU,EACxC,OAAO,IAAI,IACTupD,EAAE,IAAKF,IAAM,CACX,MAAMihF,GAAK9wG,EAAE6vB,GAAG4/E,EAAE,KAAK,EACvB,MAAO,CAACp1F,EAAEy2F,GAAID,EAAE,EAAGC,EAAE,CACvB,CAAC,CACP,CACE,EAAGrB,EAAIn+E,EAAE,IAAM,EAAE,aAAe,EAAE,YAAc,EAAE,aAAa,EAAG7f,EAAI6f,EAAE,IAAM,CAC5E,MAAMvB,EAAI,OAAO,EAAE,gBAAkB,UAAY,EAAE,eAAgB8gF,GAAK,CACtE,OAAQ,GACR,KAAM,EACZ,EACI,GAAI,CAAC,EAAE,eAAgB,MAAO,CAAE,GAAGA,GAAI,MAAO9rJ,EAAE,EAAE,CAAC,EACnD,MAAM8qE,GAAIE,EAAI,EAAE,eAAiB,GAAI+gF,GAAK/gF,EAAIF,GAAE,OAAS,GAAK,EAAE,eAAgBc,GAAI5rE,EAAE+rJ,EAAE,EACxF,OAAO,OAAO,OAAOD,GAAIhhF,GAAG,CAAE,MAAOc,GAAG,CAC1C,CAAC,EAAGt2E,EAAIi3E,EAAE,IAAM1xC,EAAC,CAAE,EAAG,EAAI0xC,EAAE,KAAO,CAAE,GAAGmkF,GAAI,GAAG,EAAE,YAAa,EAAGtlI,EAAImhD,EAAE,KAAO,CAAE,GAAGqkF,GAAI,GAAG,EAAE,OAAO,EAAG,EAAGnlF,EAAIc,EAAE,IAAM,OAAO,EAAE,aAAe,UAAY,EAAE,YAAcokF,GAAK,GAAK,CAAE,GAAGA,GAAI,GAAG,EAAE,WAAW,CAAE,EAAGpnF,EAAIgD,EAAE,KAAO,CAAE,GAAGkkF,GAAI,GAAG,EAAE,SAAS,EAAG,EAAG9kF,EAAIY,EAAE,IAAM,OAAO,EAAE,WAAa,SAAW,CACtS,GAAGgkF,GACH,GAAG,EAAE,UACL,OAAQ,OAAO,EAAE,UAAU,QAAU,SAAW,EAAE,UAAU,OAAS1kF,EAAE,MAAM,MAC7E,QAAS,EAAE,UAAU,QAAUA,EAAE,MAAM,MACvC,QAAS,EACb,EAAM,CACF,GAAG0kF,GACH,OAAQ1kF,EAAE,MAAM,MAChB,QAASA,EAAE,MAAM,MACjB,QAAS,EAAE,SACf,CAAG,EAAGP,EAAIiB,EAAE,IAAM,CACd,MAAMvB,EAAI,CAAE,MAAO,EAAE,EACrB,OAAO,OAAO,EAAE,QAAU,SAAW,CAAE,GAAGA,EAAG,GAAG,EAAE,OAAQ,QAAS,EAAE,EAAK,CACxE,QAAS,EAAE,OACX,GAAGA,CACT,CACE,CAAC,EAAGQ,EAAIe,EAAE,KAAO,CAAE,GAAG+jF,GAAI,GAAG,EAAE,MAAM,EAAG,EAAGnnF,EAAIoD,EAAE,IAAM,OAAO,EAAE,WAAa,WAAa,EAAE,UAAY,CACtG,GAAGikF,GACH,GAAG,EAAE,SACT,CAAG,EAAGvlF,EAAIsB,EAAE,IAAM,OAAO,EAAE,aAAe,SAAW,CACjD,KAAM,EAAE,aAAa,MAAQ2kF,GAAG,KAChC,kBAAmB,EAAE,aAAa,mBAAqBA,GAAG,kBAC1D,MAAO,EAAE,YAAY,OAASA,GAAG,KACrC,EAAM,EAAE,YAAcA,GAAK,MAAM,EAAGhmF,EAAIqB,EAAE,IAAM,OAAO,EAAE,YAAc,UAAY,CAAE,QAAS,EAAE,WAAY,WAAY,GAAI,MAAO,MAAS,CACxI,QAAS,CAAC,CAAC,EAAE,WACb,MAAO,EAAE,YAAY,MAAQ,CAAC,EAAE,WAAW,MAAQ,KACnD,WAAY,EAAE,YAAY,YAAc,EAC5C,CAAG,EAAGziB,EAAIyiB,EAAE,KAAO,CACf,QAAS,EAAE,QAAUtxB,EAAE,EAAE,OAAO,EAAI,KACpC,QAAS,EAAE,QAAUA,EAAE,EAAE,OAAO,EAAI,KACpC,cAAe,MAAM,QAAQ,EAAE,aAAa,EAAIowB,EAAE,EAAE,aAAa,EAAI,EAAE,cACvE,aAAc,MAAM,QAAQ,EAAE,YAAY,EAAIA,EAAE,EAAE,YAAY,EAAI,KAClE,UAAW,OAAOlC,EAAE,OAAS,UAAY,MAAM,QAAQA,EAAE,MAAM,KAAK,EAAIkC,EAAElC,EAAE,MAAM,KAAK,EAAIA,EAAE,MAC7F,QAAS,EAAE,SAAS,OAAS,IAAI,IAC/B,EAAE,QAAQ,IAAK6B,GAAM,CACnB,MAAM8gF,GAAK7wG,EAAE+vB,EAAE,IAAI,EACnB,MAAO,CAAC1V,EAAEw2F,GAAIxB,GAAG,IAAI,EAAGt/E,CAAC,CAC3B,CAAC,CACP,EAAQ,IACR,EAAI,EAAG9oD,EAAIqqD,EAAE,IAAM,OAAO,EAAE,OAAS,SAAW,CAAE,QAAS,GAAI,GAAG8jF,GAAI,GAAG,EAAE,KAAK,EAAK,CACjF,QAAS,EAAE,MACX,GAAGA,EACP,CAAG,EAAG5uH,EAAI8qC,EAAE,KAAO,CACf,GAAG,OAAO,YACR,OAAO,KAAK,EAAE,EAAE,EAAE,IAAKu/E,GAAO,CAC5B,MAAMhhF,GAAIghF,EAAIC,GAAK,EAAE,GAAGjhF,EAAC,EACzB,GAAIA,KAAM,WAAY,MAAO,CAACA,GAAG,EAAE,GAAGA,EAAC,CAAC,EACxC,MAAMc,GAAI,OAAO,EAAE,GAAGd,EAAC,GAAK,SAAW,CAAE,CAACihF,EAAE,EAAG,EAAE,EAAK,OAAO,YAAYA,GAAG,IAAKf,IAAO,CAACA,GAAI,EAAE,CAAC,CAAC,EACjG,MAAO,CAACc,EAAIlgF,EAAC,CACf,CAAC,CACP,CACA,EAAI,EAAGC,EAAIU,EAAE,KAAO,CAChB,GAAGskF,GACH,GAAG,EAAE,QACL,MAAO,EAAE,SAAS,OAASv3J,EAAC,EAC5B,QAAS,EAAE,SAAS,SAAWA,EAAC,CACpC,EAAI,EAAGm2E,EAAIlD,EAAE,IAAM,CACf,GAAI,EAAE,SACJ,OAAO,OAAO,EAAE,UAAY,SAAW,EAAE,SAAW,OAAO,EAAE,UAAY,UAAY,OAAS,EAAE,QACpG,CAAC,EAAGm/E,EAAIn/E,EAAE,KAAO,CAAE,GAAGukF,GAAI,GAAG,EAAE,UAAU,EAAG,EAAGnF,GAAKp/E,EAAE,IAAM,CAC1D,GAAI,EAAE,KACJ,MAAO,CAAE,MAAO,GAAI,QAAS,GAAI,GAAG,EAAE,IAAI,CAC9C,CAAC,EAAGq/E,GAAKr/E,EAAE,IAAM,CACf,MAAMvB,EAAIW,EAAE,MAAM,QAAU,OAAS,OACrC,OAAO,EAAE,WAAa,CAAE,GAAGslF,GAAI,UAAWjmF,EAAG,GAAG,EAAE,UAAU,EAAK,CAAE,GAAGimF,GAAI,UAAWjmF,CAAC,CACxF,CAAC,EAAG6gF,GAAKt/E,EAAE,KAAO,CAChB,OAAQ,EAAE,UAAU,QAAU,GAC9B,MAAO,EAAE,UAAU,OAAS,GAC5B,SAAU,EAAE,UAAU,UAAY,OAClC,UAAW,EAAE,UAAU,WAAa,MACxC,EAAI,EACF,MAAO,CACL,YAAad,EACb,eAAgB/e,EAChB,UAAWp3D,EACX,WAAY,EACZ,QAAS81B,EACT,UAAWm+C,EACX,UAAWoC,EACX,OAAQL,EACR,OAAQE,EACR,UAAWrC,EACX,YAAa8B,EACb,MAAO/oD,EACP,UAAW4nC,EACX,WAAYohB,EACZ,GAAIzpC,EACJ,QAASoqC,EACT,SAAU4D,EACV,WAAYi8E,EACZ,KAAMC,GACN,WAAYC,GACZ,eAAgBC,GAChB,QAAS5wG,CACb,CACA,EAAGwvG,GAAK,IAAM,CACZ,MAAM,EAAI,CAACj/E,EAAGrC,IAAMioF,GAAG5lF,EAAGrC,GAAKmhF,GAAG,IAAI,EAAGh1F,EAAI,CAACkW,EAAGrC,IAAMqC,EAAI8+E,GAAG,eAAiBnhF,EAAImhF,GAAG,KAAOA,GAAG,KAAM7oI,EAAI,CAAC+pD,EAAGrC,EAAG8B,IAAM9B,EAAE,IAAI,EAAEqC,EAAGP,CAAC,CAAC,EAAG,EAAKO,GAAMA,EAAGvwB,EAAKuwB,GAAMA,IAAM,EAAIA,EAAI,CAACA,GAAK,OAAO,MAAM,CAACA,CAAC,EAAI,KAAO,CAACA,EAAG,EAAI,IAAM,CAC1N,UACA,aACA,6CACA,yBACA,2BACA,yBACA,kCACA,4BACJ,EAAI,KAAK,IAAI,EAAGlyE,EAAI,CAACkyE,EAAGrC,IAAM,CAC1B,IAAI8B,EAAI,CAAC,GAAG,SAAS,iBAAiB,EAAC,CAAE,CAAC,EAC1CA,EAAIA,EAAE,OAAQnhB,GAAM,CAAC0hB,EAAE,SAAS1hB,CAAC,GAAK,wBAAyBA,EAAE,OAAO,EACxE,MAAMohB,EAAID,EAAE,QAAQO,CAAC,EACrB,GAAIN,GAAK,IAAM/B,EAAI+B,EAAI,GAAK,EAAIA,EAAI,GAAKD,EAAE,QACzC,OAAOA,EAAEC,GAAK/B,EAAI,GAAK,EAAE,CAC7B,EAAGtuE,EAAK2wE,GAAM,OAAOA,CAAC,EAAE,SAAS,EAAG,GAAG,EAAG3wC,EAAI,CAAC2wC,EAAGrC,IAAMqC,GAAG,cAAc,qBAAqBrC,CAAC,IAAI,EAAGnpE,EAAI,CAACwrE,EAAGrC,EAAG8B,EAAI,KAAO,CAC1HO,GAAKrC,EAAE,uBAAyB8B,GAAKO,EAAE,yBAAwB,EAAIA,EAAE,kBACvE,EAAGH,EAAI,CAACG,EAAGrC,EAAG8B,EAAI,GAAIC,IAAM,CAC1B,GAAIM,EAAE,MAAQ6+E,GAAG,OAAS7+E,EAAE,MAAQ6+E,GAAG,MACrC,OAAOp/E,GAAKO,EAAE,eAAc,EAAIrC,EAAC,EACnC,GAAI+B,EAAG,OAAOA,EAAEM,CAAC,CACnB,EAAGk/E,EAAI,CAACl/E,EAAGrC,IAAM,CACfA,EAAE,sBAAwBqC,EAAE,gBAAe,EAAIrC,EAAE,qBAAuBqC,EAAE,eAAc,CAC1F,EAAG9e,EAAK8e,GAAM,CACZ,GAAIA,EACF,MAAO,CAAC,GAAGA,EAAE,iBAAiB,0CAA0C,CAAC,EAAE,CAAC,CAChF,EAAGl2E,EAAI,IAAM,iBAAkB,YAAc,UAAU,eAAiB,EAAG,EAAKk2E,GAAM,CAAC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EAAEA,CAAC,EAAGpgD,EAAKogD,GAAM,CAClL,MAAMrC,EAAI,GAAI8B,EAAKC,GAAMA,EAAE,OAAQphB,GAAM,CAAC,CAACA,CAAC,EAC5C,QAASohB,EAAI,EAAGA,EAAIM,EAAE,OAAQN,GAAK,EAAG,CACpC,MAAMphB,EAAI,CAAC0hB,EAAEN,CAAC,EAAGM,EAAEN,EAAI,CAAC,EAAGM,EAAEN,EAAI,CAAC,CAAC,EACnC/B,EAAE,KAAK8B,EAAEnhB,CAAC,CAAC,CACb,CACA,OAAOqf,CACT,EAAGsC,EAAI,CACL,KAAOD,GAAM,IAAIA,CAAC,0BAClB,QAAUA,GAAM,uEAAuEA,CAAC,GAC5F,EAAKjC,EAAI,CAACiC,EAAGrC,EAAG8B,EAAGC,EAAGphB,IAAM,CACxB,MAAM5nC,EAAI,CACR,MAAOgpI,GACP,QAASC,GACT,QAASC,EACf,EACI,GAAI,CAACjiF,EAAG,OAAO+B,EAAI,CAAChpD,EAAEspD,CAAC,EAAEP,CAAC,EAAG/oD,EAAEspD,CAAC,EAAEP,CAAC,CAAC,EAAI/oD,EAAEspD,CAAC,EAAEP,CAAC,EAC9C,GAAI,MAAM,QAAQ9B,CAAC,GAAK+B,EAAG,CACzB,MAAMzpC,EAAI0nC,EAAE,CAAC,GAAK8B,EAAGY,EAAI1C,EAAE,CAAC,EAC5B,MAAO,CAACjnD,EAAEspD,CAAC,EAAE/pC,CAAC,EAAGoqC,EAAI3pD,EAAEspD,CAAC,EAAEK,CAAC,EAAI/hB,EAAE0hB,CAAC,EAAE,CAAC,GAAKtpD,EAAEspD,CAAC,EAAEP,CAAC,CAAC,CACnD,CACA,OAAO,MAAM,QAAQ9B,CAAC,GAAK,CAAC+B,EAAIhpD,EAAEspD,CAAC,EAAErC,EAAEA,EAAE,OAAS,CAAC,GAAK8B,CAAC,EAAI/oD,EAAEspD,CAAC,EAAErC,CAAC,CACrE,EACA,MAAO,CACL,UAAW,EACX,cAAe7T,EACf,WAAY7zC,EACZ,YAAa,EACb,UAAWw5B,EACX,yBAA0B3hD,EAC1B,QAASuB,EACT,YAAaggC,EACb,qBAAsB76B,EACtB,aAAcqrE,EACd,uBAAwBq/E,EACxB,gBAAiBh+F,EACjB,cAAep3D,EACf,iBAAkB,EAClB,eAAgB81B,EAChB,kBAAmB,CAACogD,EAAGrC,EAAG8B,EAAGC,IAAM,CACjCM,EAAE,MAAQjC,EAAE,QAASJ,EAAG8B,EAAGC,EAAGM,CAAC,EAAGA,EAAE,QAAUjC,EAAE,UAAWJ,EAAG8B,EAAGC,EAAGM,CAAC,EAAGA,EAAE,QAAUjC,EAAE,UAAWJ,EAAG8B,EAAGC,EAAGM,CAAC,CAC7G,EACA,sBAAuB,CAACA,EAAGrC,EAAG8B,IAAM,CAClC,MAAMC,EAAI,CACR,MAAOggF,GAAG1/E,CAAC,EACX,QAAS2/E,GAAG3/E,CAAC,EACb,QAASP,EAAImgF,GAAG5/E,CAAC,EAAI,CAC7B,EACM,OAAO,OAAO,OAAON,EAAG/B,CAAC,CAC3B,EACA,YAAasC,CACjB,CACA,EAAGm/E,GAAK,IAAM,CACZ,KAAM,CAAE,QAAS,CAAC,EAAKD,GAAE,EAAI,CAAE,WAAYr1F,EAAG,eAAgB7zC,CAAC,EAAKgpI,GAAE,EAAI,EAAI,CAACvoI,EAAGuf,IAAM,CACtF,GAAI,CAACvf,EAAG,OAAO,EAAC,EAChB,MAAM2pD,EAAI,EAAE3pD,CAAC,EAAGutD,EAAIg8E,GAAG5/E,EAAG,CAAE,MAAO,EAAG,QAAS,EAAG,QAAS,EAAG,aAAc,EAAG,EAC/E,OAAOpqC,EAAI4vH,GAAG5hF,CAAC,EAAIA,CACrB,EAAGx0B,EAAI,CAAC/4B,EAAGuf,IAAM,CACf,MAAMoqC,EAAI,EAAEpqC,CAAC,EACb,OAAOgqH,GAAG5/E,EAAG,CACX,MAAO,EAAE3pD,EAAE,OAASgpI,GAAGr/E,CAAC,GACxB,QAAS,EAAE3pD,EAAE,SAAWipI,GAAGt/E,CAAC,GAC5B,QAAS,EAAE3pD,EAAE,SAAWkpI,GAAGv/E,CAAC,GAC5B,aAAc,CACpB,CAAK,CACH,EAAG,EAAI,CAAC3pD,EAAGuf,IAAM,CACf,MAAMoqC,EAAIylF,GAAGpvI,EAAG,CAAE,aAAc,CAACuf,CAAC,CAAE,EAAGguC,EAAI8hF,GAAGrvI,EAAG,CAAE,aAAc,CAACuf,CAAC,CAAE,EACrE,MAAO,CAACoqC,EAAG4D,CAAC,CACd,EAAGn2E,EAAI,CAAC4oB,EAAGuf,IAAM,CAACvf,GAAK,CAACuf,EAAI,GAAKmsH,GAAG,EAAE1rI,CAAC,EAAG,EAAEuf,CAAC,CAAC,EAAG5mC,EAAI,CAACqnB,EAAGuf,IAAM,CAACvf,GAAK,CAACuf,EAAI,GAAKqsH,GAAG,EAAE5rI,CAAC,EAAG,EAAEuf,CAAC,CAAC,EAAG5G,EAAI,CAAC3Y,EAAGuf,IAAM,CAACvf,GAAK,CAACuf,EAAI,GAAKosH,GAAG,EAAE3rI,CAAC,EAAG,EAAEuf,CAAC,CAAC,EAAGzhC,EAAI,CAACkiB,EAAGuf,EAAGoqC,IAAM3pD,IAAI,CAAC,GAAKA,IAAI,CAAC,EAAI2Y,EAAEgxC,EAAG3pD,EAAE,CAAC,CAAC,GAAK5oB,EAAEuyE,EAAG3pD,EAAE,CAAC,CAAC,EAAIA,IAAI,CAAC,GAAKuf,EAAI5G,EAAEgxC,EAAG3pD,EAAE,CAAC,CAAC,GAAK5oB,EAAEuyE,EAAGpqC,CAAC,GAAKnoC,EAAEuyE,EAAG3pD,EAAE,CAAC,CAAC,GAAK2Y,EAAEgxC,EAAGpqC,CAAC,EAAI,GAAI4pC,EAAI,CAACnpD,EAAGuf,IAAM,CAC3R,MAAMoqC,EAAIhxC,EAAE3Y,EAAGuf,CAAC,EAAIA,EAAIvf,EAAGutD,EAAI50C,EAAE4G,EAAGvf,CAAC,EAAIuf,EAAIvf,EAC7C,OAAOqrI,GAAG,CAAE,MAAO1hF,EAAG,IAAK4D,CAAC,CAAE,CAChC,EAAGi7E,EAAKxoI,GAAM,MAAMkvI,GAAGlvI,EAAG,YAAY,CAAC,GAAIwqC,EAAKxqC,GAAM,EAAEupI,GAAG,EAAEvpI,CAAC,EAAG,CAAE,KAAM,CAAC,CAAE,CAAC,EAAG5sB,EAAI,CAAC4sB,EAAGuf,IAAM,CAC5F,GAAIA,EAAG,CACL,MAAMoqC,EAAIy/E,GAAG,EAAE7pH,CAAC,CAAC,EACjB,GAAIoqC,EAAI3pD,EAAG,MAAO,IAClB,GAAI2pD,IAAM3pD,EAAG,OAAOmpI,GAAG,EAAE5pH,CAAC,CAAC,CAC7B,CACF,EAAG,EAAI,CAACvf,EAAGuf,IAAM,CACf,GAAIA,EAAG,CACL,MAAMoqC,EAAIy/E,GAAG,EAAE7pH,CAAC,CAAC,EACjB,OAAOoqC,EAAI3pD,EAAI,GAAK2pD,IAAM3pD,EAAImpI,GAAG,EAAE5pH,CAAC,CAAC,EAAI,MAC3C,CACF,EAAGrW,EAAKlJ,GAAM,CACZ,GAAIA,EAAG,OAAOopI,GAAG,EAAEppI,CAAC,CAAC,CACvB,EAAGupD,EAAKvpD,IAAO,CACb,MAAOgpI,GAAGhpI,CAAC,EACX,QAASipI,GAAGjpI,CAAC,EACb,QAASkpI,GAAGlpI,CAAC,CACjB,GACE,MAAO,CACL,cAAe,EACf,gBAAiB,CAACA,EAAGuf,IAAMhgB,EAAES,CAAC,EAAE,IAAK2pD,GAAMA,EAAE,IAAK4D,GAAM,CACtD,KAAM,CAAE,OAAQi8E,EAAG,SAAUC,EAAI,UAAWC,EAAI,YAAaC,GAAOpqH,EAAEguC,CAAC,EACvE,MAAO,CACL,GAAGA,EACH,OAAQi8E,EACR,SAAUC,EACV,UAAW,CACT,wBAAyBD,EACzB,iBAAkB,CAACA,EACnB,0BAA2BC,EAC3B,qBAAsB,GACtB,iCAAkCA,GAAMD,EACxC,oBAAqBE,EACrB,kBAAmBC,CAC7B,CACA,CACI,CAAC,CAAC,EACF,QAAS5wG,EACT,gBAAiB,EACjB,YAAapgB,EACb,aAAcvhC,EACd,cAAe0G,EACf,YAAanF,EACb,iBAAkBwwE,EAClB,UAAWq/E,EACX,UAAWh+F,EACX,YAAap3D,EACb,YAAa,EACb,gBAAiB81B,EACjB,WAAYqgD,EACZ,aAAevpD,GAAMupI,GAAG,EAAC,EAAIhgF,EAAEvpD,CAAC,CAAC,EACjC,aAAc,CAACA,EAAGuf,EAAGoqC,IAAMpqC,IAAMoqC,GAAKA,IAAM,GAAK,OAAO,YACtD,CAAC,QAAS,UAAW,SAAS,EAAE,IAAK4D,GAAMA,IAAMhuC,EAAI,CAACguC,EAAG5D,CAAC,EAAI,CAAC4D,EAAG,OAAO,MAAM,CAACvtD,EAAEutD,CAAC,CAAC,EAAI,OAAS,CAACvtD,EAAEutD,CAAC,CAAC,CAAC,CAC7G,EAAQ,CACF,MAAO,OAAO,MAAM,CAACvtD,EAAE,KAAK,EAAI,OAAS,CAACA,EAAE,MAC5C,QAAS,OAAO,MAAM,CAACA,EAAE,OAAO,EAAI,OAAS,CAACA,EAAE,QAChD,QAAS,OAAO,MAAM,EAAEA,EAAE,SAAW,GAAG,EAAI,OAAS,CAACA,EAAE,OAC9D,EACI,yBAA0B,CAACA,EAAGuf,IAAM,CAClC,MAAMoqC,EAAI2lF,GAAG,EAAE/vH,CAAC,EAAGvf,CAAC,EAAGutD,EAAIgiF,GAAG,EAAEhwH,CAAC,EAAGvf,CAAC,EACrC,MAAO,CAAE,OAAQ2pD,EAAG,MAAO4D,CAAC,CAC9B,EACA,YAAcvtD,GAAM,MAAM,QAAQA,CAAC,EAAI,CAAC,CAACA,EAAE,CAAC,GAAK,CAAC,CAACA,EAAE,CAAC,EAAI,GAC1D,UAAW,CAACA,EAAGuf,IAAMvf,EAAIuf,EAAIA,aAAa,IAAM,CAAC,CAAC6zB,EAAEpzC,EAAGuf,CAAC,EAAIA,EAAE,EAAEvf,CAAC,CAAC,EAAI,GAAK,GAC3E,oBAAqB,CAACA,EAAGuf,EAAGoqC,IAAM,OAAO3pD,GAAK,WAAaA,EAAE,CAAE,MAAOuf,EAAG,KAAMoqC,CAAC,CAAE,EAAI3pD,EAAE,OAAO,KAAMutD,GAAMA,EAAE,QAAUhuC,GAAKguC,EAAE,OAAS5D,CAAC,EACxI,mBAAoB,CAAC3pD,EAAGuf,IAAM,OAAOvf,GAAK,WAAaA,EAAEuf,CAAC,EAAIvf,EAAE,MAAM,SAASuf,CAAC,CACpF,CACA,EAAGiwH,GAAK,IAAM,CACZ,KAAM,CACJ,SAAU,CAAE,OAAQ,CAAC,CACzB,EAAM/G,GAAE,EAAIr1F,EAAIm0F,GAAG,CAAC,EAClBkI,GAAG,IAAM,CACPlwI,EAAC,EAAI,WAAW,iBAAiB,SAAUA,EAAG,CAAE,QAAS,GAAI,CAC/D,CAAC,EAAGuqD,GAAG,IAAM,CACX,WAAW,oBAAoB,SAAUvqD,CAAC,CAC5C,CAAC,EACD,MAAMA,EAAI,IAAM,CACd6zC,EAAE,MAAQ,WAAW,SAAS,gBAAgB,WAChD,EACA,MAAO,CACL,SAAUiX,EAAE,IAAMjX,EAAE,OAAS,EAAE,MAAM,iBAAmB,GAAK,MAAM,CACvE,CACA,EAAGu1F,GAAK,IAAM,CACZ,KAAM,CACJ,QAAS,EACT,MAAOv1F,EACP,WAAY7zC,EACZ,UAAW,EACX,SAAU,CAAE,QAASw5B,EAAG,UAAW,CAAC,CACxC,EAAM0vG,GAAE,EAAIrxJ,EAAKmyE,GAAM2lF,GAAG7F,GAAG,IAAK9/E,CAAC,EAAGxwB,EAAE,MAAM,KAAM,CAAE,OAAQ,EAAE,MAAM,CAAE,EAAGpgD,EAAK4wE,GAAM2lF,GAAGQ,GAAG,IAAKnmF,CAAC,EAAGxwB,EAAE,MAAM,MAAO,CAAE,OAAQ,EAAE,OAAQ,EAAGpgB,EAAK4wC,GAAM2lF,GAAG3lF,EAAGxwB,EAAE,MAAM,QAAS,CAAE,OAAQ,EAAE,MAAM,CAAE,EAAGj7C,EAAKyrE,GAAM2lF,GAAG3lF,EAAGxwB,EAAE,MAAM,QAAS,CAAE,OAAQ,EAAE,MAAM,CAAE,EAAGowB,EAAI,CAACI,EAAGlC,IAAM,CAACkC,EAAGlC,CAAC,EAAE,IAAKoC,GAAM3rE,EAAE2rE,CAAC,CAAC,EAAE,KAAK,GAAG,EAAG++E,EAAKj/E,GAAM2lF,GAAG3lF,EAAGxwB,EAAE,MAAM,IAAK,CAAE,OAAQ,EAAE,MAAM,CAAE,EAAGyR,EAAI,CAAC+e,EAAGlC,EAAGoC,IAAM,CAChX,MAAML,EAAIK,EAAI1wB,EAAE,MAAM,QAAUA,EAAE,MAAM,MACxC,GAAI,CAACwwB,EAAG,MAAO,GACf,GAAI,OAAOH,GAAK,WAAY,OAAOA,EAAEG,CAAC,EACtC,MAAMD,EAAIjC,GAAK+B,EAAGnC,EAAI,CAAE,OAAQ,EAAE,MAAM,EACxC,OAAO,MAAM,QAAQsC,CAAC,EAAI,GAAG2lF,GAAG3lF,EAAE,CAAC,EAAGD,EAAGrC,CAAC,CAAC,GAAG,EAAE,WAAa,CAACsC,EAAE,CAAC,EAAI,GAAK,EAAE,MAAM,cAAc,GAAGA,EAAE,CAAC,EAAI2lF,GAAG3lF,EAAE,CAAC,EAAGD,EAAGrC,CAAC,EAAI,EAAE,GAAKioF,GAAG3lF,EAAGD,EAAGrC,CAAC,CAC9I,EAAG7zE,EAAI,IAAM,CACX,MAAMm2E,EAAKlC,GAAM6nF,GAAG7nF,EAAG,EAAE,MAAM,MAAM,EACrC,OAAO,MAAM,QAAQ9nD,EAAE,KAAK,EAAI,GAAGgqD,EAAEhqD,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,cAAc,IAAIA,EAAE,MAAM,CAAC,EAAIgqD,EAAEhqD,EAAE,MAAM,CAAC,CAAC,EAAI,EAAE,GAAK,EACpH,EACA,MAAO,CACL,WAAYnoB,EACZ,YAAauB,EACb,cAAeggC,EACf,cAAe76B,EACf,mBAAoB0sD,EACpB,mBAAoB,IAAM4I,EAAE,gBAAkB7zC,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,EAAInsB,EAAC,EAAK87J,GAAG3vI,EAAE,MAAO,EAAE,MAAM,MAAM,EAAIirC,EAAEjrC,EAAE,KAAK,EAC9H,cAAgBgqD,GAAM/e,EAAE+e,EAAG,OAAQ,EAAE,EACrC,kBAAmBJ,EACnB,UAAWq/E,CACf,CACA,EAAGmH,GAAK,IAAM,CACZ,KAAM,CAAE,UAAW,CAAC,EAAKlH,GAAE,EAAI,CAAE,WAAYr1F,EAAG,YAAa7zC,CAAC,EAAKopI,GAAE,EACrE,MAAO,CACL,UAAW,IAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAE,EAAE,IAAKvxJ,IAAO,CAClE,KAAMmoB,EAAEnoB,CAAC,EACT,MAAOA,CACb,EAAM,EACF,SAAU,IAAM,CACd,MAAMA,EAAI,GACV,QAASuB,EAAI,CAAC,EAAE,UAAU,CAAC,EAAGA,GAAK,CAAC,EAAE,UAAU,CAAC,EAAGA,IAClDvB,EAAE,KAAK,CAAE,MAAO,CAACuB,EAAG,KAAMy6D,EAAEz6D,CAAC,EAAG,EAClC,OAAO,EAAE,aAAevB,EAAE,QAAO,EAAKA,CACxC,EACA,iBAAmBA,GAAMA,EAAI,CAAC,EAAE,UAAU,CAAC,GAAKA,EAAI,CAAC,EAAE,UAAU,CAAC,CACtE,CACA,EAAGw4J,GAAM,IAAO,CACd,SAAU,IAAM,EAAE,OAAO,SAAQ,EACjC,UAAW,IAAM,EAAE,OAAO,UAAS,EACnC,WAAY,IAAM,EAAE,OAAO,WAAU,EACrC,WAAY,IAAM,EAAE,OAAO,WAAU,EACrC,iBAAkB,IAAM,EAAE,OAAO,iBAAgB,EACjD,yBAA2BplG,GAAM,EAAE,OAAO,yBAAyBA,CAAC,EACpE,aAAc,CAACA,EAAGp3D,IAAM,EAAE,OAAO,aAAao3D,EAAGp3D,CAAC,EAClD,WAAY,IAAM,EAAE,OAAO,WAAU,EACrC,WAAY,CAACo3D,EAAGp3D,IAAM,EAAE,OAAO,WAAWo3D,EAAGp3D,CAAC,EAC9C,WAAY,IAAM,EAAE,OAAO,WAAU,EACrC,WAAY,IAAM,EAAE,OAAO,WAAU,CACvC,GAAIy8J,GAAK,KAAO,CACd,kBAAoBz8F,GAAMA,EAAI,GAAK,MACrC,GAAI08F,GAAK,IAAM,CACb,KAAM,CACJ,QAAS,EACT,UAAW18F,EACX,SAAU,CAAE,UAAW7zC,EAAG,UAAW,EAAG,WAAYw5B,CAAC,CACzD,EAAM0vG,GAAE,EAAI,CAAE,sBAAuB,CAAC,EAAKF,KAAMnxJ,EAAImwJ,GAAG,EAAE,EAAG5uJ,EAAI0xE,EAC7D,IAAM,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,CAAC,EAAI,EAAE,OAAS,EAAE,EAAC,EAAI,GAAItxB,EAAE,MAAM,aAAa,CAC3F,EAAKpgB,EAAI,CAAC6xB,EAAGp3D,EAAGuqC,IAAM,CAClB,MAAMzU,EAAI4gI,GAAGt/F,EAAGp3D,EAAE,MAAM,EAAGo3D,EAAE,MAAM,EAAG,EAAC,EAAI,CAAE,OAAQ4I,EAAE,MAAM,CAAE,EAC/D,OAAOy4F,GAAG3iI,CAAC,GAAK6mI,GAAG7mI,CAAC,EAAIyU,GAAKvmC,EAAE,MAAQ8xB,EAAIqgI,GAAGrgI,EAAG,CAC/C,MAAO,CAACvwB,EAAE,MAAM,MAChB,QAAS,CAACA,EAAE,MAAM,QAClB,QAAS,EAAEA,EAAE,MAAM,SAAW,GAC9B,aAAc,CACpB,CAAK,EAAI,IACP,EACA,MAAO,CACL,WAAYvB,EACZ,eAAgB,CAACozD,EAAGp3D,IAAM,CACxB,GAAI,OAAOmsB,EAAE,MAAM,SAAW,SAC5B,OAAOoZ,EAAE6xB,EAAGjrC,EAAE,MAAM,QAASnsB,CAAC,EAChC,GAAI,MAAM,QAAQmsB,EAAE,MAAM,OAAO,EAAG,CAClC,IAAIoe,EAAI,KACR,UAAWzU,KAAK3J,EAAE,MAAM,QACtB,GAAIoe,EAAIhF,EAAE6xB,EAAGthC,EAAG91B,CAAC,EAAGuqC,EAClB,MACJ,OAAOA,CACT,CACA,OAAO,OAAOpe,EAAE,MAAM,SAAW,WAAaA,EAAE,MAAM,QAAQirC,CAAC,EAAI,IACrE,EACA,eAAgB,CAACA,EAAGp3D,IAAM,CACxB,MAAMuqC,EAAI,CACR,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,EACZ,EACM,IAAIzU,EAAI,GAAIqgD,EAAI,EAChB,QAASlC,EAAI,EAAGA,EAAIj0E,EAAE,OAAQi0E,IAAK,CACjC,MAAMoC,EAAIr2E,EAAEi0E,CAAC,EAAG+B,EAAIK,EAAE,OAAQH,EAAI9e,EAAE,MAAM+e,EAAGA,EAAIH,CAAC,EAClD,GAAI,CAACE,EAAG,MACR,GAAIA,EAAE,OAASF,EACblgD,GAAKogD,MACF,CACH,IAAIrC,EAAI,OAAO,SAASqC,EAAG,EAAE,EAC7B3rC,EAAE8rC,CAAC,GAAKxC,EAAItpC,EAAE8rC,CAAC,IAAMxC,EAAItpC,EAAE8rC,CAAC,GAAIvgD,GAAK+9C,EAAE,SAAQ,EAAG,SAASmC,EAAG,GAAG,EAAE,MAAM,EAAGA,CAAC,CAC/E,CACAG,GAAKH,CACP,CACA,OAAOlgD,CACT,EACA,kBAAmB,CAACshC,EAAGp3D,IAAM,CAC3B,MAAMuqC,EAAI,yBAA0BzU,EAAI,CAAC,GAAG91B,EAAE,SAASuqC,CAAC,CAAC,EAAE,IAAK2rC,GAAMA,EAAE,CAAC,CAAC,EAAGC,EAAIn2E,EAAE,QAAQuqC,EAAG,GAAG,EAAE,MAAM,GAAG,EAAE,OAAO,OAAO,EAAG0pC,EAAIn+C,EAAE,IAAKogD,GAAMA,EAAE,MAAM,EACxJ,IAAIG,EAAI,GAAIL,EAAI,EAChB,QAASE,EAAI,EAAGA,EAAIpgD,EAAE,OAAQogD,IAAK,CACjC,MAAMrC,EAAII,EAAEiC,CAAC,EAAGP,EAAIve,EAAE,MAAM4e,EAAGA,EAAInC,CAAC,EACpC,GAAI,CAAC8B,EAAG,MACRU,GAAKV,EAAGA,EAAE,SAAW9B,GAAKsC,EAAED,CAAC,IAAMG,GAAKF,EAAED,CAAC,GAAIF,GAAKnC,CACtD,CACA,OAAOwC,CACT,CACJ,CACA,EAAGumF,GAAK,CACN,IAAK,EACL,MAAO,gBACT,EAAGC,GAAK,CAAC,KAAM,OAAQ,YAAa,cAAe,WAAY,WAAY,WAAY,QAAS,eAAgB,aAAc,gBAAiB,cAAc,EAAGC,GAAK,CACnK,IAAK,EACL,MAAO,eACT,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAqBC,GAAG,CAC9C,OAAQ,kBACR,MAAO,CACL,WAAY,CAAE,KAAM,QAAS,QAAS,EAAE,CAC5C,EACE,MAAO,CAAC,QAAS,OAAQ,iBAAkB,QAAS,cAAe,iBAAkB,SAAU,QAAS,OAAQ,WAAW,EAC3H,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,SAAU,EACV,WAAY3hD,EACZ,UAAWuB,EACX,SAAU,CAAE,UAAWggC,EAAG,WAAY76B,EAAG,OAAQqrE,EAAG,OAAQq/E,EAAG,MAAOh+F,EAAG,WAAYp3D,EAAG,GAAI,EAAG,WAAY81B,CAAC,CAClH,EAAQu/H,GAAE,EAAI,CAAE,iBAAkBl/E,EAAG,YAAalC,CAAC,EAAKihF,GAAE,EAAI,CAAE,eAAgB7+E,EAAG,WAAYL,EAAG,kBAAmBE,EAAG,eAAgBrC,CAAC,EAAK6oF,GAAE,EAAI,CAAE,aAAc/mF,EAAG,qBAAsBC,GAAMu/E,KAAM,CAAE,kBAAmB3gG,CAAC,EAAKioG,GAAE,EAAI7vI,EAAIswI,GAAG,UAAU,EAAG/wH,EAAIgoH,GAAG,IAAI,EAAG59E,EAAI49E,GAAG,EAAE,EAAGh6E,EAAIlD,EACtR,KAAO,CACL,YAAa,CAAC1xE,EAAE,UAAY,CAACA,EAAE,UAAY,CAACggC,EAAE,MAAM,QACpD,aAAchgC,EAAE,SAChB,mBAAoB,CAACggC,EAAE,MAAM,QAC7B,UAAW,GACX,wBAAyB,CAACzP,EAAE,MAAM,UAClC,mBAAoB,CAACA,EAAE,MAAM,cAC7B,gBAAiB,OAAOA,EAAE,MAAM,OAAS,UAAYA,EAAE,MAAM,MAAQ,GACrE,kBAAmB,OAAOA,EAAE,MAAM,OAAS,UAAY,CAACA,EAAE,MAAM,MAAQ,GACxE,gBAAiBygD,EAAE,OAAS5wB,EAAE,WAC9B,cAAe,CAACpgB,EAAE,MAAM,QACxB,GAAG,EAAE,MAAM,KACnB,EACA,EAAO6wH,EAAI,IAAM,CACX,EAAE,iBAAkB,IAAI,EAAGtgI,GAAKvwB,EAAE,YAAc,EAAE,gBAAgB,EAAG4mC,EAAE,MAAQ,KACjF,EAAGkqH,GAAM3e,GAAM,CACb,KAAM,CAAE,eAAgB2gB,CAAE,EAAK9yH,EAAE,MAAO,CAAC4yH,EAAIl0J,CAAC,EAAIyzI,EAAE,MAAM,GAAG2gB,CAAE,EAAE,EACjE,GAAIF,EAAI,CACN,MAAM1C,EAAIp/E,EAAE8hF,EAAG,KAAI,EAAIn0J,EAAE,KAAK,EAAGgzE,EAAI/yE,EAAIoyE,EAAEpyE,EAAE,KAAI,EAAID,EAAE,KAAK,EAAI,OAChE,GAAIu0J,GAAG9C,EAAGz+E,CAAC,EAAG,OACd,MAAMmmF,EAAK1H,GAAKz+E,EAAI,CAACy+E,EAAGz+E,CAAC,EAAI,CAACy+E,CAAC,EAC/Bt/E,EAAEa,EAAGmmF,EAAI,CAAC,IAAMhxH,EAAE,MAAQspH,EAAI0H,EAAK,KACrC,CACF,EAAG7G,GAAK,IAAM,CACZtgF,EAAE,MAAQ,EACZ,EAAGugF,GAAM7e,GAAM,CACb,GAAItgF,EAAE,MAAM,QACVi/F,GAAG3e,CAAC,UACG13I,EAAE,MAAM,QAAS,CACxB,MAAMq4J,EAAK3gB,EAAE,MAAM,GAAG,EACtBvrG,EAAE,MAAQksH,EAAG,IAAKF,GAAO9hF,EAAE8hF,EAAG,KAAI,CAAE,CAAC,EAAE,OAAQA,GAAO,CAAC,CAACA,CAAE,CAC5D,MACEhsH,EAAE,MAAQkqC,EAAEqhE,EAAG1zI,EAAE,KAAK,CAC1B,EAAG0xE,EAAKgiE,GAAM,CACZ,MAAM2gB,EAAK,OAAO3gB,GAAK,SAAWA,EAAIA,EAAE,QAAQ,MAAOygB,EAAK5yH,GAAG,OAAO,WACtE,IAAIthC,EAAIo0J,EACR,GAAI,OAAOF,GAAM,SAAU,CACzB,MAAM1C,EAAI,yBAA0B0H,EAAK,CAAC,GAAGhF,EAAG,SAAS1C,CAAC,CAAC,EAAE,IAAK5/E,GAAMA,EAAE,CAAC,CAAC,EAAGp0E,EAAI42J,EAAG,QAAQ,MAAO,EAAE,EAAG1iJ,EAAIk+D,EAAEpyE,EAAG07J,CAAE,EACrHl5J,EAAIiyE,EAAEvgE,EAAGwiJ,CAAE,CACb,CACAl0J,IAAM,GAAKmyJ,EAAC,GAAM7wH,EAAE,MAAM,UAAY,CAACogB,EAAE,YAAc,EAAE,MAAM,EAAG4wG,GAAGtyJ,CAAC,EAAG,EAAE,iBAAkBkoC,EAAE,KAAK,GAAI6pC,EAAE,MAAQ,GAAIhyE,EAAE,MAAQC,EAAG,EAAE,aAAcyzI,EAAGvrG,EAAE,KAAK,CAC/J,EAAGqqH,GAAM9e,GAAM,CACbnyG,EAAE,MAAM,SAAWgxH,GAAG7e,EAAE,OAAO,KAAK,EAAGnyG,EAAE,MAAM,aAAe0uC,EAAE9nC,EAAE,KAAK,GAAKnoC,EAAE,QAAU,IAAM,EAAE,iBAAkBmoC,EAAE,MAAO,EAAE,EAAGA,EAAE,MAAQ,MAAQ5G,EAAE,MAAM,aAAevhC,EAAE,QAAU,KAAOmoC,EAAE,MAAQ,KAAM,EAAE,OAAO,IAAMmqC,GAAEohE,CAAC,CAChO,EAAGliE,GAAI,CAACkiE,EAAG2gB,IAAO,CAChB9yH,EAAE,MAAM,SAAWA,EAAE,MAAM,WAAa,CAAC8yH,GAAM9B,GAAG7e,EAAE,OAAO,KAAK,EAAGnyG,EAAE,MAAM,WAAa0uC,EAAE9nC,EAAE,KAAK,GAAKnoC,EAAE,QAAU,IAAM,EAAE,iBAAkBmoC,EAAE,MAAO,GAAI,EAAE,EAAGA,EAAE,MAAQ,MAAQ5G,EAAE,MAAM,WAAavhC,EAAE,QAAU,KAAOmoC,EAAE,MAAQ,KAAM,EAAE,OAAO,EACnP,EAAGsqH,GAAK,IAAM,CACZlgF,EAAE,MAAQ,GAAI,EAAE,OAAO,EAAGoiF,GAAE,EAAG,KAAK,IAAM,CACxCpzH,EAAE,MAAM,SAAWA,EAAE,MAAM,eAAiB3Y,EAAE,OAAO,OAAM,CAC7D,CAAC,CACH,EAAG0pD,GAAKohE,GAAM,CACZ,GAAI9hE,EAAE8hE,EAAG0d,EAAE,MAAO,EAAE,EAAG7vH,EAAE,MAAM,SAAWA,EAAE,MAAM,UAAY,CAACwwC,EAAE,MAAM,MAAO,CAC5E,GAAIxwC,EAAE,MAAM,WAAa,QAAU,CAACogB,EAAE,WAAY,OAAO,EAAE,MAAM,EACjE,GAAIpgB,EAAE,MAAM,WAAa,SAAU,OAAO,EAAE,QAAQ,CACtD,MAAOA,EAAE,MAAM,SAAW,EAAE,QAAQ,CACtC,EAAGmwH,GAAK,IAAM,CACZ,EAAE,WAAW,EAAGn/E,EAAE,MAAQ,IAAK,CAAC5wB,EAAE,YAAcowB,EAAE,MAAM,SAAWA,EAAE,MAAM,QAAU,EAAE,MAAM,EAAGxwE,EAAE,WAAaggC,EAAE,MAAM,SAAW4G,EAAE,OAAS,CAACwZ,EAAE,aAAe,EAAE,iBAAkBxZ,EAAE,KAAK,EAAG,EAAE,aAAa,EAAGA,EAAE,MAAQ,KAC3N,EAAG+pH,GAAMxe,GAAM,CACb9hE,EAAE8hE,EAAG0d,EAAE,MAAO,EAAE,EAAG,EAAE,OAAO,CAC9B,EAAGO,GAAK,IAAM,CACZ,EAAE,OAAO,CACX,EAAGgB,GAAMjf,GAAM,CACb,GAAIA,EAAE,MAAQ,OAASliE,GAAEkiE,CAAC,EAAGA,EAAE,MAAQ,SAAW8e,GAAG9e,CAAC,EAAGA,EAAE,MAAQ,UAAYnyG,EAAE,MAAM,UAAYowH,GAAE,EAAI,CAACpwH,EAAE,MAAM,QAAS,CACzH,GAAImyG,EAAE,OAAS,MAAO,OACtBA,EAAE,eAAc,CAClB,CACF,EAAGkf,GAAK,IAAM,CACZhqI,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,CACtC,EAAGiqI,EAAMnf,GAAM,CACbvrG,EAAE,MAAQurG,CACZ,EAAGof,GAAMpf,GAAM,CACbA,EAAE,MAAQqd,GAAG,KAAOv/E,GAAEkiE,EAAG,EAAE,CAC7B,EACA,OAAO13E,EAAE,CACP,WAAY42F,GACZ,cAAeC,CACrB,CAAK,EAAG,CAACnf,EAAG2gB,KAAQjiF,EAAC,EAAItvD,EAAE,MAAO,CAAE,QAASwvD,IAAK,CAC5CohE,EAAE,OAAO,SAAW,CAACA,EAAE,OAAO,UAAU,GAAK,CAACz1G,EAAE8zC,CAAC,EAAE,QAAUn8B,GAAG89F,EAAE,OAAQ,UAAW,CAAE,IAAK,CAAC,CAAE,EAAIjiE,EAAE,GAAI,EAAE,EAC3G,CAACiiE,EAAE,OAAO,UAAY,CAACz1G,EAAE8zC,CAAC,EAAE,SAAW9zC,EAAE8zC,CAAC,EAAE,QAAUK,EAAC,EAAItvD,EAAE,MAAO81I,GAAI,CACtEllB,EAAE,OAAO,UAAU,GAAK,CAACA,EAAE,OAAO,UAAY,CAACz1G,EAAE8zC,CAAC,EAAE,SAAW9zC,EAAE8zC,CAAC,EAAE,SAAW9zC,EAAE8zC,CAAC,EAAE,OAASn8B,GAAG89F,EAAE,OAAQ,WAAY,CACpH,IAAK,EACL,MAAOz1G,EAAEj+B,CAAC,EACV,WAAY,EAAE,WACd,QAAS0xE,EACT,QAAS8gF,GACT,MAAOhhF,GACP,QAAS0gF,GACT,OAAQR,GACR,WAAYiB,GACZ,QAASL,GACT,QAASG,GACT,SAAU,IAAM/e,EAAE,MAAM,MAAM,EAC9B,UAAW,IAAMA,EAAE,MAAM,OAAO,EAChC,WAAY,IAAMA,EAAE,MAAM,QAAQ,CAC5C,CAAS,EAAIjiE,EAAE,GAAI,EAAE,EACbiiE,EAAE,OAAO,UAAU,EAAIjiE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAE,QAAS,CAClD,IAAK,EACL,GAAImb,EAAEnM,CAAC,EAAE,GACT,IAAK,WACL,eAAgB,WAChB,KAAMmM,EAAEnM,CAAC,EAAE,KACX,MAAOsnI,GAAGjjF,EAAE,KAAK,EACjB,UAAWl4C,EAAEnM,CAAC,EAAE,UAChB,YAAamM,EAAE18B,CAAC,EAAE,YAClB,SAAU08B,EAAEuyB,CAAC,EAAEvyB,EAAE18B,CAAC,EAAE,QAAQ,EAC5B,SAAU08B,EAAEuyB,CAAC,EAAEvyB,EAAE18B,CAAC,EAAE,QAAQ,EAC5B,SAAU08B,EAAEuyB,CAAC,EAAEvyB,EAAEnM,CAAC,EAAE,QAAQ,EAC5B,MAAOmM,EAAEj+B,CAAC,EACV,aAAci+B,EAAEnM,CAAC,EAAE,aACnB,aAAcmM,EAAEv3B,CAAC,EAAE,MACnB,gBAAiBu3B,EAAE18B,CAAC,EAAE,UAAY,OAClC,eAAgB08B,EAAEnM,CAAC,EAAE,QAAU,GAAK,GAAK,OACzC,QAAS4/C,EACT,OAAQggF,GACR,QAASe,GACT,WAAYE,GACZ,UAAW0B,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAOxB,GAAGwB,CAAE,GAC1C,QAAS7B,GACT,UAAW+B,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAOl2H,EAAE,CAAC,EAAE,UAAWk2H,CAAE,EACjE,EAAW,KAAM,GAAI0E,EAAE,GACfQ,EAAG,MAAO,CACR,QAAShF,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAO,EAAE,QAAQ,EACvD,EAAW,CACDzgB,EAAE,OAAO,YAAY,GAAK,CAACz1G,EAAEnM,CAAC,EAAE,eAAiBsgD,IAAKtvD,EAAE,OAAQ,CAC9D,IAAK,EACL,MAAO,iBACP,QAASuxI,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAO,EAAE,QAAQ,EACzD,EAAa,CACDv+G,GAAG89F,EAAE,OAAQ,YAAY,CACrC,CAAW,GAAKjiE,EAAE,GAAI,EAAE,EACd,CAACiiE,EAAE,OAAO,YAAY,GAAK,CAACz1G,EAAEnM,CAAC,EAAE,eAAiB,CAAC4hH,EAAE,OAAO,UAAU,GAAKthE,EAAC,EAAIknF,GAAGr7H,EAAEuxH,EAAE,EAAG,CACxF,IAAK,EACL,aAAcvxH,EAAEv3B,CAAC,GAAG,aACpB,MAAO,iCACP,QAAS2tJ,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAO,EAAE,QAAQ,EACzD,EAAa,KAAM,EAAG,CAAC,YAAY,CAAC,GAAK1iF,EAAE,GAAI,EAAE,CACjD,CAAS,EACDiiE,EAAE,OAAO,YAAY,IAAMz1G,EAAEnM,CAAC,EAAE,iBAAmBmM,EAAEj+B,CAAC,GAAKi+B,EAAEnM,CAAC,EAAE,WAAa,CAACmM,EAAE18B,CAAC,EAAE,UAAY,CAAC08B,EAAE18B,CAAC,EAAE,WAAa6wE,EAAC,EAAItvD,EAAE,OAAQg2I,GAAI,CACnIljH,GAAG89F,EAAE,OAAQ,aAAc,CAAE,MAAOwe,EAAE,CAAE,CAClD,CAAS,GAAKzgF,EAAE,GAAI,EAAE,EACd,CAACiiE,EAAE,OAAO,YAAY,IAAMz1G,EAAEnM,CAAC,EAAE,iBAAmBmM,EAAEnM,CAAC,EAAE,WAAamM,EAAEj+B,CAAC,GAAK,CAACi+B,EAAE18B,CAAC,EAAE,UAAY,CAAC08B,EAAE18B,CAAC,EAAE,WAAa6wE,IAAKtvD,EAAE,SAAU,CAClI,IAAK,EACL,aAAcmb,EAAEv3B,CAAC,GAAG,WACpB,MAAO,gBACP,KAAM,SACN,eAAgB,wBAChB,UAAW2tJ,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAKF,GAAOl2H,EAAE0zC,CAAC,EAAEwiF,EAAI,IAAMjC,GAAGiC,CAAE,EAAG,GAAIrB,EAAE,GAClE,QAASuB,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAIkF,GAAIpF,GAAOjC,GAAGiC,CAAE,EAAG,CAAC,SAAS,CAAC,EACnE,EAAW,CACDqF,GAAGv7H,EAAEyxH,EAAE,EAAG,CAAE,MAAO,iBAAiB,CAAE,CAChD,EAAW,GAAIqJ,EAAE,GAAKtnF,EAAE,GAAI,EAAE,CAC9B,CAAO,GAAKA,EAAE,GAAI,EAAE,CACpB,CAAK,EACH,CACF,CAAC,EAAGgoF,GAAK,CACP,IAAK,aACL,MAAO,gBACT,EAAGC,GAAK,CAAC,OAAO,EAAGC,GAAK,CACtB,IAAK,2BACL,MAAO,qBACP,kBAAmB,YACrB,EAAGC,GAAK,CAAC,UAAU,EAAGC,GAAqBZ,GAAG,CAC5C,OAAQ,YACR,MAAO,CACL,UAAW,CAAE,KAAM,QAAS,QAAS,EAAE,EACvC,cAAe,CAAE,QAAS,CAAC,CAC/B,EACE,MAAO,CAAC,eAAgB,cAAe,YAAY,EACnD,MAAM,EAAG,CAAE,KAAMj9F,CAAC,EAAI,CACpB,MAAM7zC,EAAI6zC,EAAG,EAAI,EAAG,CAClB,SAAUra,EACV,UAAW,EACX,WAAY3hD,EACZ,SAAU,CAAE,UAAWuB,EAAG,eAAgBggC,EAAG,OAAQ76B,EAAG,MAAOqrE,EAAG,WAAYq/E,EAAG,QAASh+F,CAAC,CACjG,EAAQi+F,GAAE,EAAI,CAAE,YAAar1J,EAAG,aAAc,CAAC,EAAKk1J,GAAE,EAAI,CAAE,YAAap/H,CAAC,EAAK4+H,GAAE,EAAI,CAAE,cAAev+E,CAAC,EAAKo/E,GAAE,EAAI,CAAE,aAActhF,EAAG,YAAaoC,CAAC,EAAK8+E,GAAE,EAAI,CAAE,kBAAmBn/E,CAAC,EAAKymF,GAAE,EAAIvmF,EAAIgnF,GAAG,YAAY,EAAGrpF,EAAIqpF,GAAG,YAAY,EAAGvnF,EAAIunF,GAAG,0BAA0B,EAAGtnF,EAAIsnF,GAAG,YAAY,EAAG1oG,EAAI2/F,GAAG,EAAE,EAAGvnI,EAAIunI,GAAG,EAAE,EACtTkI,GAAG,IAAM,CACP,EAAE,iBAAmBvmI,EAAE,CAACgoI,GAAG5nF,CAAC,EAAG4nF,GAAGjqF,CAAC,CAAC,EAAG,WAAW,EAAG1nC,EAAC,EAAI,WAAW,iBAAiB,SAAUA,CAAC,CACnG,CAAC,EAAGuqC,GAAG,IAAM,CACX,WAAW,oBAAoB,SAAUvqC,CAAC,CAC5C,CAAC,EACD,MAAMA,EAAI,IAAM,CACdqoB,EAAE,MAAQ,GAAI,WAAW,IAAM,CAC7B,MAAMghB,GAAIG,EAAE,OAAO,sBAAqB,EAAI8gF,GAAK7gF,EAAE,OAAO,sBAAqB,EAC/EJ,IAAKihF,KAAO7pI,EAAE,MAAM,SAAW,GAAG6pI,GAAG,MAAQjhF,GAAE,MAAQ,EAAE,MAAOhhB,EAAE,MAAQ,EAC5E,EAAG,CAAC,CACN,EAAG+hB,EAAIU,EAAE,IAAMlB,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,cAAgB/xE,EAAE,MAAQA,EAAE,MAAM,SAAW,EAAI,EAAE,EAAGm2E,EAAIlD,EACnG,IAAM,CAACj3E,EAAE,MAAMgE,EAAE,KAAK,GAAK,CAAC,EAAE,MAAMA,EAAE,KAAK,GAAK,CAACuyE,EAAE,KACzD,EAAO6/E,EAAI,IAAM,CACX,MAAM5gF,GAAIpe,EAAE,MAAM,QAClB,OAAO,EAAE,YAAc,EAAE,YAAaoe,GAAEa,EAAEryE,EAAE,KAAK,CAAC,CACpD,EAAGqyJ,GAAK,IAAM,CACZ,MAAM7gF,GAAIxxE,EAAE,MACZ,OAAOuhC,EAAE,MAAM,MAAQ,EAAI,GAAG4wC,EAAEX,GAAE,CAAC,CAAC,CAAC,MAAMW,EAAEX,GAAE,CAAC,CAAC,CAAC,GAAK,CAACW,EAAEX,GAAE,CAAC,CAAC,EAAGW,EAAEX,GAAE,CAAC,CAAC,CAAC,CAC1E,EAAG8gF,GAAKr/E,EAAE,IAAM,CAACjzE,EAAE,OAAS,CAAC,EAAE,UAAY,GAAK,OAAOozD,EAAE,MAAM,SAAW,SAAW,MAAM,QAAQpzD,EAAE,KAAK,EAAIA,EAAE,MAAM,SAAW,GAAKA,EAAE,MAAM,CAAC,EAAIqyJ,GAAE,EAAKjB,EAAE,MAAM,QAAUpxJ,EAAE,MAAM,IAAKwxE,IAAM,GAAGW,EAAEX,EAAC,CAAC,EAAE,EAAI,EAAE,UAAY,GAAGW,EAAEnyE,EAAE,MAAM,CAAC,CAAC,CAAC,GAAK,GAAGmyE,EAAEnyE,EAAE,MAAM,CAAC,CAAC,CAAC,KAAOmyE,EAAEnyE,EAAE,KAAK,EAAIoyJ,EAAC,CAAE,EAAGG,GAAK,IAAMnB,EAAE,MAAM,QAAU,KAAO,MAAO1/E,EAAIuB,EACtU,IAAM,MAAM,QAAQq/E,GAAG,KAAK,EAAIA,GAAG,MAAM,KAAKC,GAAE,CAAE,EAAID,GAAG,KAC/D,EAAOE,GAAK,IAAM,CACZx2J,EAAE,MAAMgE,EAAE,KAAK,GAAK,EAAE,MAAMA,EAAE,KAAK,GAAKuyE,EAAE,MAAQpqD,EAAE,aAAa,EAAIw5B,EAAE,gBAAgB,CACzF,EACA,MAAO,CAAC6vB,GAAGihF,MAAQrgF,EAAC,EAAItvD,EAAE,MAAO22I,GAAI,CACnCjoF,GAAE,OAAO,YAAY,EAAI57B,GAAG47B,GAAE,OAAQ,aAAcuoF,GAAGj9H,GAAG,CAAE,IAAK,CAAC,EAAI,CACpE,WAAYmB,EAAEj+B,CAAC,EACf,SAAUm2E,EAAE,MACZ,WAAY,IAAM3E,GAAE,MAAM,aAAa,EACvC,YAAa,IAAMA,GAAE,MAAM,cAAc,CACjD,CAAO,CAAC,CAAC,GAAKY,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC7B/7H,EAAE18B,CAAC,EAAE,aAAe6wE,EAAC,EAAItvD,EAAE,MAAO,CAChC,IAAK,EACL,MAAO,wBACP,MAAO4uD,EAAE,OAAS,OAClB,MAAOuoF,GAAGrxI,EAAE,KAAK,CAC3B,EAAW,CACD4oD,GAAE,OAAO,gBAAgB,GAAKhhB,EAAE,MAAQ5a,GAAG47B,GAAE,OAAQ,iBAAkB,CACrE,IAAK,EACL,MAAOvzC,EAAEj+B,CAAC,CACtB,CAAW,EAAIyxE,EAAE,GAAI,EAAE,EACb,CAACD,GAAE,OAAO,gBAAgB,GAAKhhB,EAAE,OAAS4hB,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/DE,GAAGC,GAAGzoF,EAAE,KAAK,EAAG,CAAC,CAC7B,EAAa,EAAE,GAAKD,EAAE,GAAI,EAAE,CAC5B,EAAW,GAAIioF,EAAE,GAAKjoF,EAAE,GAAI,EAAE,EACtB4nF,EAAG,MAAOM,GAAI,CACZnoF,GAAE,OAAO,gBAAgB,EAAI57B,GAAG47B,GAAE,OAAQ,iBAAkB,CAC1D,IAAK,EACL,MAAOvzC,EAAEj+B,CAAC,CACtB,CAAW,EAAIyxE,EAAE,GAAI,EAAE,EACbD,GAAE,OAAO,gBAAgB,EAAIC,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/D,CAAC/7H,EAAEv3B,CAAC,EAAE,SAAWu3B,EAAE18B,CAAC,EAAE,YAAc6wE,IAAKtvD,EAAE,SAAU,CACnD,IAAK,EACL,IAAK,aACL,KAAM,SACN,MAAO,sCACP,QAAS2vI,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKngF,IAAMd,GAAE,MAAM,cAAc,GACxD,UAAWihF,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKngF,IAAMr0C,EAAEgyC,CAAC,EAAEqC,GAAG,IAAMd,GAAE,MAAM,cAAc,CAAC,EACvF,EAAe2oF,GAAGl8H,EAAE18B,CAAC,EAAE,cAAc,EAAG,GAAG,GAAKkwE,EAAE,GAAI,EAAE,EAC5CxzC,EAAE18B,CAAC,EAAE,SAAW6wE,EAAC,EAAItvD,EAAE,SAAU,CAC/B,IAAK,EACL,KAAM,SACN,MAAO,sCACP,QAAS2vI,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKngF,IAAMd,GAAE,MAAM,YAAY,GACtD,UAAWihF,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKngF,IAAMr0C,EAAEgyC,CAAC,EAAEqC,GAAG,IAAMd,GAAE,MAAM,YAAY,CAAC,EACrF,EAAe2oF,GAAGl8H,EAAE18B,CAAC,EAAE,WAAW,EAAG,EAAE,GAAKkwE,EAAE,GAAI,EAAE,EACxCxzC,EAAE18B,CAAC,EAAE,YAAc6wE,EAAC,EAAItvD,EAAE,SAAU,CAClC,IAAK,EACL,IAAK,aACL,KAAM,SACN,MAAO,sCACP,SAAUmb,EAAE+zC,CAAC,EAAEmE,EAAE,KAAK,EACtB,eAAgB,gBAChB,UAAWs8E,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKngF,IAAMr0C,EAAEgyC,CAAC,EAAEqC,GAAG,IAAMkgF,GAAE,CAAE,GACtD,QAASA,EACvB,EAAe2H,GAAGl8H,EAAE18B,CAAC,EAAE,cAAc,EAAG,GAAIq4J,EAAE,GAAKnoF,EAAE,GAAI,EAAE,CAC3D,EAAa,EAAE,EACf,EAAW,GAAG,CACd,EAAS,EAAE,EACX,EAAO,GAAG,EACR,CACF,CAAC,EAAG2oF,GAAK,IAAM,CACb,KAAM,CACJ,UAAW,EACX,SAAU,CAAE,eAAgBp+F,CAAC,CACjC,EAAMq1F,GAAE,EAAIlpI,EAAI8qD,EAAE,IAAO,GAAM,EAAE,gBAAgB,SAAS,CAAC,CAAC,EAAG,EAAIA,EAAE,IAAO,GAAMjX,EAAE,MAAM,MAAQA,EAAE,MAAM,KAAO,GAAK,IAAM,EAAI,EAAE,EAAGra,EAAIsxB,EAAE,IAAO,GAAMjX,EAAE,MAAM,MAAQA,EAAE,MAAM,KAAO,GAAK,IAAMA,EAAE,MAAM,MAAQ,EAAI,EAAE,EACtN,MAAO,CAAE,sBAAuB7zC,EAAG,aAAc,EAAG,cAAew5B,CAAC,CACtE,EAAG04G,GAAK,CAAC,OAAQ,aAAc,UAAU,EAAGC,GAAK,CAAE,MAAO,2BAA2B,EAAIC,GAAK,CAAC,gBAAiB,gBAAiB,eAAgB,UAAW,YAAa,aAAa,EAAGC,GAAK,CAAC,YAAY,EAAG7nF,GAAqBsmF,GAAG,CACpO,OAAQ,mBACR,MAAO,CACL,MAAO,GACP,KAAM,GACN,OAAQ,CAAE,KAAM,OAAO,EACvB,cAAe,CAAE,KAAM,OAAO,EAC9B,WAAY,GACZ,YAAa,CAAE,KAAM,OAAO,EAC5B,OAAQ,GACR,eAAgB,CAAE,KAAM,OAAO,EAC/B,WAAY,GACZ,YAAa,GACb,aAAc,EAClB,EACE,MAAO,CAAC,WAAY,SAAU,aAAc,aAAa,EACzD,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,KAAM,CAAE,iBAAkB,EAAG,sBAAuBw5B,EAAG,eAAgB,CAAC,EAAK+uG,GAAE,EAAI1wJ,EAAImoB,EAAG5mB,EAAI,EAAG,CAC/F,UAAWggC,EACX,SAAU,CAAE,WAAY76B,EAAG,UAAWqrE,EAAG,OAAQq/E,CAAC,CACxD,EAAQC,GAAE,EAAI,CAAE,sBAAuBj+F,CAAC,EAAKgnG,GAAE,EAAI,CAAE,uBAAwBp+J,EAAG,YAAa,EAAG,aAAc81B,EAAG,qBAAsBqgD,EAAG,YAAalC,EAAG,gBAAiBoC,GAAM8+E,KAAMn/E,EAAIknF,GAAG,eAAe,EAAGhnF,EAAIgnF,GAAG,mBAAmB,EAAGrpF,EAAIqpF,GAAG,WAAW,EAAGvnF,EAAIw+E,GAAG,EAAE,EAAGv+E,EAAIu+E,GAAG,IAAI,EAAG3/F,EAAI2/F,GAAG,EAAE,EAAGvnI,EAAIunI,GAAE,EAAIhoH,EAAIgoH,GAAG,CAAC,EACtTsK,GAAG,IAAM,CACP7oF,EAAE,MAAQ,IACZ,CAAC,EAAGymF,GAAG,IAAM,CACX1D,KAAK,KAAK,IAAMnC,IAAI,EAAGjxJ,EAAE,gBAAkB40E,EAAC,EAAI5D,EAAE,EAAE,CACtD,CAAC,EAAGG,GAAG,IAAMH,EAAE,EAAE,CAAC,EAClB,MAAMA,EAAKmhE,GAAM,CACfnyG,EAAE,kBAAoBhgC,EAAE,YAAY,OAAS,EAAEmyI,CAAC,EAAI,EAAEA,CAAC,EACzD,EAAGv9D,EAAI,IAAM,CACX,MAAMu9D,EAAIomB,GAAGjqF,CAAC,EACd6jE,IAAM3hE,EAAE,MAAM,UAAYH,EAAE,MAAQA,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,EAAI8hE,EAAE,MAAM,CAAE,cAAe,EAAE,CAAE,GAAI/hE,EAAE,MAAQ+hE,EAAE,aAAeA,EAAE,aAC5I,EAAG0e,EAAIn/E,EACL,KAAO,CACL,YAAa,GACb,uBAAwB,CAAC1xE,EAAE,YAC3B,uBAAwBA,EAAE,WAClC,EACA,EAAO8wJ,GAAKp/E,EACN,IAAM1xE,EAAE,YAAc,CAAE,OAAQ,GAAGA,EAAE,MAAM,KAAM,MAAO,0BAA0B,EAAK,MAC7F,EAAO+wJ,GAAKr/E,EAAE,KAAO,CACf,gBAAiB,EACvB,EAAM,EAAGs/E,GAAKt/E,EACR,KAAO,CACL,QAAS,GACT,WAAY,GACZ,mBAAoB,GACpB,uBAAwBtB,EAAE,MAC1B,kBAAmBpwE,EAAE,MAC7B,EACA,EAAOmwE,EAAIuB,EAAE,KAAO,CACd,sBAAuB,GACvB,mBAAoB1xE,EAAE,OAAO,QAAU,EACvC,oBAAqBA,EAAE,OAAO,OAAS,CAC7C,EAAM,EACFiwJ,GACE,IAAMjwJ,EAAE,MACR,IAAMixJ,GAAG,EAAE,EACX,CAAE,KAAM,EAAE,CAChB,EACI,MAAMA,GAAK,CAAC9e,EAAI,KAAO,CACrBihB,GAAE,EAAG,KAAK,IAAM,CACd,MAAMN,EAAKyF,GAAGloF,CAAC,EAAGuiF,EAAK2F,GAAGjqF,CAAC,EAAG5vE,EAAI65J,GAAG9nF,CAAC,EAAGy/E,EAAIqI,GAAG5nF,CAAC,EAAGc,EAAI/yE,EAAIA,EAAE,wBAAwB,OAAS,EAC/Fk0J,IAAOA,EAAG,sBAAqB,EAAG,OAAShsH,EAAE,MAAQgsH,EAAG,sBAAqB,EAAG,OAASnhF,EAAI7qC,EAAE,MAAQipH,EAAE,MAAM,WAAap+E,GAAIqhF,GAAM5C,GAAK/d,IAAM+d,EAAE,UAAY4C,EAAG,UAAY5C,EAAE,WAAatpH,EAAE,MAAQ,EAAIksH,EAAG,sBAAqB,EAAG,QAAUrhF,EAClP,CAAC,CACH,EAAGxB,GAAKkiE,GAAM,CACZA,EAAE,UAAY1zI,EAAE,WAAY0zI,EAAE,KAAK,CACrC,EAAG+e,GAAK,IAAM,CACZzyJ,EAAE,QAAQ,EAAGA,EAAE,YAAY,CAC7B,EAAGsyE,GAAKohE,GAAM,CACZ0d,EAAE,MAAM,WAAaqB,GAAE,EAAIz2J,EAAE03I,EAAG0d,EAAE,KAAK,EACzC,EAAGM,GAAK,CAAChe,EAAG2gB,EAAIF,EAAIl0J,IAAM,CACxByzI,KAAO2gB,EAAG,QAAUA,EAAG,QAAU9yJ,EAAE,cAAgBqwE,EAAE,MAAQ8hE,GAAInyG,EAAE,kBAAoB,MAAM,QAAQivB,EAAE,MAAM2jG,CAAE,CAAC,EAAI3jG,EAAE,MAAM2jG,CAAE,EAAEl0J,CAAC,EAAIyzI,EAAIljF,EAAE,MAAM2jG,CAAE,EAAI,CAACzgB,CAAC,EAAGwe,GAAE,GAChK,EAAGA,GAAK,IAAM,CACZ,MAAMxe,EAAInyI,EAAE,YAAY,OAAS,CAACA,EAAE,UAAU,EAAE,OAAOivD,EAAE,KAAK,EAAIA,EAAE,MAAM,OAAO,CAACjvD,EAAE,cAAgB,GAAK,CAACywE,EAAE,KAAK,CAAC,CAAC,EACnHrwB,EAAE,EAAE+xF,CAAC,EAAGnyI,EAAE,YAAY,OAAS,cAAgB,eAAe,CAChE,EAAGowJ,GAAMje,GAAM,CACbnyG,EAAE,iBAAmB4wC,EAAEuhE,EAAG0d,EAAE,MAAO,EAAE,CACvC,EAAGuB,GAAMjf,GAAM,CACb9qH,EAAE,MAAQ8qH,EAAG1zI,EAAE,cAAe0zI,CAAC,CACjC,EAAGkf,GAAK,IAAM,CACZ,GAAIH,GAAE,EAAI,CAAClxJ,EAAE,OAAQ,CACnB,MAAMmyI,EAAIzjE,EAAE1uE,EAAE,aAAe,KAAM,YAAY,EAC/CmyI,GAAKrhE,EAAEqhE,CAAC,GAAG,MAAK,CAClB,CACF,EAAGmf,EAAMnf,GAAM,CACb,OAAQA,EAAE,IAAG,CACX,KAAKqd,GAAG,IACN,OAAOz+E,GAAEohE,CAAC,EACZ,KAAKqd,GAAG,UACN,OAAOY,GAAGje,CAAC,EACb,KAAKqd,GAAG,WACN,OAAOY,GAAGje,CAAC,EACb,KAAKqd,GAAG,QACN,OAAOY,GAAGje,CAAC,EACb,KAAKqd,GAAG,UACN,OAAOY,GAAGje,CAAC,EACb,QACE,MACV,CACI,EAAGof,GAAMpf,GAAM,CACb,GAAIA,EAAE,MAAQqd,GAAG,MAAO,OAAO0B,GAAE,EACjC,GAAI/e,EAAE,MAAQqd,GAAG,IAAK,OAAO6B,GAAE,CACjC,EACA,OAAO52F,EAAE,CAAE,UAAWma,EAAG,EAAG,CAACu9D,EAAG2gB,KAAQjiF,IAAKtvD,EAAE,MAAO,CACpD,IAAK,YACL,MAAOs2I,GAAGhH,EAAE,KAAK,EACjB,MAAO6H,GAAG5H,GAAG,KAAK,EAClB,KAAM,EAAE,YAAc,OAAS,SAC/B,aAAc,EAAE,aAChB,SAAU,EAAE,YAAc,OAAS,IACnC,UAAWQ,EACX,QAASwB,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAIkF,GAAG,IAAM,CACpC,EAAG,CAAC,SAAS,CAAC,EACpB,EAAO,CACDF,EAAG,MAAO,CACR,IAAK,oBACL,MAAOD,GAAG1nF,EAAE,KAAK,EACjB,MAAOuoF,GAAG,CAAE,sBAAuB,GAAG9xH,EAAE,KAAK,KAAM,EACnD,KAAM,MACd,EAAS,CACDkxH,EAAG,MAAOiB,GAAI,CACZ1kH,GAAG89F,EAAE,OAAQ,QAAQ,CAC/B,CAAS,EACDA,EAAE,OAAO,QAAU99F,GAAG89F,EAAE,OAAQ,UAAW,CAAE,IAAK,CAAC,CAAE,GAAKthE,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAIU,GAAG,EAAE,MAAO,CAACvG,EAAIl0J,KAAOmyE,EAAC,EAAItvD,EAAE,MAAO,CACvH,IAAK7iB,EACL,MAAOm5J,GAAG,CAAC,kBAAmB,CAAE,aAAc,EAAE,MAAM,QAAU,CAAC,CAAE,CAAC,EACpE,KAAM,KAChB,EAAW,EACAhnF,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGvG,EAAI,CAAC1C,EAAGz+E,KAAOZ,EAAC,EAAItvD,EAAE,MAAO,CAClD,IAAK2uI,EAAE,MACP,QAAS,GACT,IAAM0H,GAAOzH,GAAGyH,EAAI1H,EAAGxxJ,EAAG+yE,CAAC,EAC3B,KAAM,WACN,MAAOomF,GAAG9G,GAAG,KAAK,EAClB,gBAAiBb,EAAE,QAAU,OAC7B,gBAAiBA,EAAE,UAAY,OAC/B,SAAU,IACV,eAAgBA,EAAE,KAClB,QAAS8H,GAAIJ,GAAO3nF,GAAEigF,CAAC,EAAG,CAAC,SAAS,CAAC,EACrC,UAAY0H,GAAOl7H,EAAEnM,CAAC,EAAEqnI,EAAI,IAAM3nF,GAAEigF,CAAC,EAAG,EAAE,EAC1C,YAAc0H,GAAOxG,GAAGlB,EAAE,KAAK,CAC3C,EAAa,CACD4H,EAAG,MAAO,CACR,MAAOD,GAAG3H,EAAE,SAAS,CACnC,EAAe,CACD/d,EAAE,OAAO,KAAO99F,GAAG89F,EAAE,OAAQ,OAAQ,CACnC,IAAK,EACL,KAAM+d,CACtB,CAAe,EAAIhgF,EAAE,GAAI,EAAE,EACbiiE,EAAE,OAAO,KAAOjiE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAClDE,GAAGC,GAAG1I,EAAE,IAAI,EAAG,CAAC,CAChC,EAAiB,EAAE,EACnB,EAAe,CAAC,CAChB,EAAa,GAAI8I,EAAE,EAAE,EAAG,GAAG,EAC3B,EAAW,CAAC,EAAE,EAAG,GAAG,EACpB,EAAS,CAAC,EACJ7mB,EAAE,OAAO,aAAa,EAAIinB,IAAIvoF,EAAC,EAAItvD,EAAE,SAAU,CAC7C,IAAK,EACL,IAAK,gBACL,KAAM,SACN,aAAcmb,EAAEv3B,CAAC,GAAG,cACpB,MAAO0yJ,GAAG7G,GAAG,KAAK,EAClB,SAAU,IACV,QAASE,GACT,UAAWK,EACnB,EAAS,CACDl9G,GAAG89F,EAAE,OAAQ,aAAa,CAClC,EAAS,GAAI8mB,EAAE,GAAI,CACX,CAACI,GAAI,CAAC38H,EAAEm1B,CAAC,EAAE,EAAE,IAAI,CAAC,CAC1B,CAAO,EAAIqe,EAAE,GAAI,EAAE,CACnB,EAAO,GAAI4oF,EAAE,EACX,CACF,CAAC,EAAGQ,GAAK,CAAC,gBAAgB,EAAGC,GAAqB7B,GAAG,CACnD,OAAQ,eACR,MAAO,CACL,QAAS,CAAE,KAAM,OAAO,EACxB,SAAU,CAAE,KAAM,OAAO,CAC7B,EACE,MAAM,EAAG,CACP,KAAM,CACJ,SAAU,CAAE,eAAgBj9F,CAAC,CACnC,EAAQq1F,GAAE,EAAI,CAAE,SAAUlpI,CAAC,EAAKiwI,GAAE,EAAI,EAAInlF,EACpC,IAAMjX,EAAE,MAAM,MAAQ,EAAI,CAAC,GAAG,IAAI,MAAMA,EAAE,MAAM,KAAK,EAAE,KAAI,CAAE,EAAI,CAAC,CAAC,CACzE,EACI,MAAO,CAACra,EAAG,KAAOywB,EAAC,EAAItvD,EAAE,MAAO,CAC9B,MAAOs2I,GAAG,CACR,eAAgB,CAAC,EAAE,QACnB,4BAA6B,EAAE,QAC/B,iBAAkBn7H,EAAE+9B,CAAC,EAAE,MAAQ,EAC/B,6BAA8B,EAAE,QACxC,CAAO,EACD,iBAAkB/9B,EAAE9V,CAAC,CAC3B,EAAO,CACDytB,GAAG+L,EAAE,OAAQ,UAAW,CACtB,UAAW,EAAE,MACb,UAAW,CAAE,sBAAuB1jB,EAAE+9B,CAAC,EAAE,MAAQ,CAAC,CAC1D,CAAO,CACP,EAAO,GAAI6+F,EAAE,EACX,CACF,CAAC,EAAGE,GAAK,CAAC,kBAAmB,aAAc,eAAe,EAAGC,GAAqB/B,GAAG,CACnF,OAAQ,WACR,MAAO,CACL,UAAW,GACX,OAAQ,GACR,SAAU,CAAE,KAAM,OAAO,CAC7B,EACE,MAAO,CAAC,WAAY,SAAS,EAC7B,MAAM,EAAG,CAAE,KAAMj9F,CAAC,EAAI,CACpB,KAAM,CAAE,aAAc7zC,CAAC,EAAKgpI,GAAE,EAAI,EAAIn1F,EAAGra,EAAIu3G,GAAG,WAAW,EAC3D,OAAOb,GAAG,IAAM,EAAE,UAAW12G,CAAC,CAAC,EAAG,CAAC,EAAG3hD,KAAOoyE,IAAKtvD,EAAE,SAAU,CAC5D,IAAK,YACL,KAAM,SACN,kBAAmB,EAAE,OACrB,MAAO,4BACP,SAAU,IACV,aAAc,EAAE,UAChB,gBAAiB,EAAE,UAAY,OAC/B,QAAS9iB,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKuB,GAAM,EAAE,UAAU,GAC5C,UAAWvB,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKuB,GAAM08B,EAAE9V,CAAC,EAAE5mB,EAAG,IAAM,EAAE,UAAU,EAAG,EAAE,EACvE,EAAO,CACD83J,EAAG,OAAQ,CACT,MAAOD,GAAG,CAAC,gBAAiB,CAAE,uBAAwB,EAAE,SAAU,CAAC,CAC3E,EAAS,CACDxjH,GAAG,EAAE,OAAQ,SAAS,CAC9B,EAAS,CAAC,CACV,EAAO,GAAImlH,EAAE,EACX,CACF,CAAC,EAAGE,GAAK,CAAC,aAAc,cAAc,EAAGC,GAAqBjC,GAAG,CAC/D,OAAQ,iBACR,MAAO,CACL,MAAO,GACP,SAAU,GACV,KAAM,GACN,eAAgB,CAAE,KAAM,QAAS,QAAS,EAAE,EAC5C,WAAY,EAChB,EACE,MAAO,CAAC,cAAe,cAAe,oBAAoB,EAC1D,MAAM,EAAG,CAAE,KAAMj9F,CAAC,EAAI,CACpB,MAAM7zC,EAAI6zC,EAAG,EAAI,EAAG,CAAE,cAAera,EAAG,aAAc,CAAC,EAAKy4G,GAAE,EAAI,CAChE,UAAWp6J,EACX,SAAU,CAAE,OAAQuB,EAAG,WAAYggC,EAAG,GAAI76B,CAAC,CACjD,EAAQ2qJ,GAAE,EAAI,CAAE,eAAgBt/E,EAAG,eAAgBq/E,CAAC,EAAKqC,GAAE,EAAI,CAAE,WAAYrgG,CAAC,EAAKm+F,GAAE,EAAI,CAAE,kBAAmBv1J,CAAC,EAAKy8J,GAAE,EAAI,EAAItI,GAAG,EAAE,EAAGr+H,EAAImhD,EAAE,IAAM7f,EAAE,EAAE,IAAI,CAAC,EAAG+e,EAAI,CAACH,EAAI,GAAIE,IAAM,CAC3K,EAAE,MAAQ,CAAC,EAAE,MAAO/pD,EAAE,qBAAsB,CAAE,KAAM6pD,EAAG,KAAME,CAAC,CAAE,CAClE,EAAGjC,EAAK+B,GAAM,CACZ,EAAE,MAAQ,GAAI7pD,EAAE,cAAe6pD,CAAC,CAClC,EAAGK,EAAI,CAACL,EAAI,KAAO,CACjB7pD,EAAE,cAAe6pD,CAAC,CACpB,EACA,MAAO,CAACA,EAAGE,KAAOE,EAAC,EAAItvD,EAAEk3I,GAAI,KAAM,CACjCX,EAAG,MAAO,CACR,MAAOD,GAAG,CAAC,uBAAwB,CAAE,gBAAiB,EAAE,MAAO,CAAC,CACxE,EAAS,CACDn7H,EAAE,CAAC,EAAE,EAAE,QAAQ,GAAKm0C,EAAC,EAAIknF,GAAG0B,GAAI,CAC9B,IAAK,EACL,IAAK,gBACL,aAAc/8H,EAAEsD,CAAC,GAAG,SACpB,SAAUtD,EAAEjiC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAC/B,MAAOo9J,GAAGn7H,EAAEv3B,CAAC,GAAG,UAAU,EAC1B,WAAYwrE,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKrC,GAAMwC,EAAE,EAAE,EACjD,EAAW,CACD,QAAS8oF,GAAG,IAAM,CAChBnpF,EAAE,OAAO,YAAY,EAAIp8B,GAAGo8B,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIP,EAAE,GAAI,EAAE,EAC1EO,EAAE,OAAO,YAAY,EAAIP,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE0xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAKl+E,EAAE,GAAI,EAAE,EACtD4nF,EAAG,SAAU,CACX,IAAK,kBACL,MAAO,0BACP,KAAM,SACN,aAAc,GAAG,EAAE,IAAI,IAAIp7H,EAAEsD,CAAC,GAAG,gBAAgB,GACjD,eAAgB,iBAAiB,EAAE,QAAQ,GAC3C,QAAS2wC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI,IAAMC,EAAE,EAAE,GACnC,UAAWD,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI70E,GAAG,IAAM80E,EAAE,EAAE,EAAG,CAAC,OAAO,CAAC,EAC9D,EAAW,CACDH,EAAE,OAAO,KAAOp8B,GAAGo8B,EAAE,OAAQ,OAAQ,CACnC,IAAK,EACL,KAAMlgD,EAAE,MACR,MAAO,EAAE,IACrB,CAAW,EAAI2/C,EAAE,GAAI,EAAE,EACbO,EAAE,OAAO,KAAOP,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAClDE,GAAGC,GAAG,EAAE,IAAI,EAAG,CAAC,CAC5B,EAAa,EAAE,EACf,EAAW,GAAIc,EAAE,EACTh9H,EAAE0jB,CAAC,EAAE,EAAE,QAAQ,GAAKywB,EAAC,EAAIknF,GAAG0B,GAAI,CAC9B,IAAK,EACL,IAAK,gBACL,aAAc/8H,EAAEsD,CAAC,GAAG,SACpB,SAAUtD,EAAEjiC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAC/B,MAAOo9J,GAAGn7H,EAAEv3B,CAAC,GAAG,UAAU,EAC1B,WAAYwrE,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKrC,GAAMwC,EAAE,EAAE,EACjD,EAAW,CACD,QAAS8oF,GAAG,IAAM,CAChBnpF,EAAE,OAAO,aAAa,EAAIp8B,GAAGo8B,EAAE,OAAQ,cAAe,CAAE,IAAK,CAAC,CAAE,EAAIP,EAAE,GAAI,EAAE,EAC5EO,EAAE,OAAO,aAAa,EAAIP,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE2xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC5E,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAKn+E,EAAE,GAAI,EAAE,CAC9D,EAAS,CAAC,EACJ+nF,GAAG3mF,GAAI,CACL,KAAM50C,EAAEmzH,CAAC,EAAE,EAAE,cAAc,EAC3B,IAAKnzH,EAAE8zC,CAAC,CAChB,EAAS,CACD,QAASopF,GAAG,IAAM,CAChB,EAAE,gBAAkB/oF,IAAKknF,GAAG3mF,GAAI,CAC9B,IAAK,EACL,MAAO,EAAE,MACT,OAAQ10C,EAAE18B,CAAC,EACX,UAAW08B,EAAEj+B,CAAC,EAAE,WAAa,CAACi+B,EAAE18B,CAAC,EAAE,cACnC,gBAAiB08B,EAAEsD,CAAC,GAAG,aAAa,EAAE,EACtC,KAAM,OACN,SAAU4wC,EACV,WAAYD,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKrC,GAAMI,EAAEJ,CAAC,EAClD,EAAaurF,GAAG,CACJ,cAAeD,GAAG,IAAM,CACtBnpF,EAAE,OAAO,eAAe,EAAIp8B,GAAGo8B,EAAE,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIP,EAAE,GAAI,EAAE,EAChFO,EAAE,OAAO,eAAe,EAAIP,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAEuxH,EAAE,EAAG,CAAE,IAAK,EAAG,EAChF,CAAa,EACD,EAAG,CACf,EAAa,CACDx9E,EAAE,OAAO,oBAAoB,EAAI,CAC/B,KAAM,OACN,GAAImpF,GAAG,CAAC,CAAE,KAAMtrF,CAAC,IAAO,CACtBj6B,GAAGo8B,EAAE,OAAQ,qBAAsB,CACjC,KAAMnC,EAAE,KACR,MAAOA,EAAE,KAC3B,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,KAAM,CAAC,QAAS,SAAU,UAAW,eAAe,CAAC,GAAK4B,EAAE,GAAI,EAAE,CAChF,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC3B,EAAO,EAAE,EACP,CACF,CAAC,EAAG4pF,GAAM,GAAM,CACd,KAAM,CACJ,QAASr/F,EACT,SAAU7zC,EACV,MAAO,EACP,MAAOw5B,EACP,KAAM,EACN,WAAY3hD,EACZ,UAAWuB,EACX,UAAWggC,EACX,SAAU,CAAE,eAAgB76B,EAAG,MAAOqrE,EAAG,UAAWq/E,EAAG,QAASh+F,EAAG,UAAWp3D,CAAC,CACnF,EAAMq1J,GAAE,EAAI,CAAE,UAAW,EAAG,gBAAiBv/H,EAAG,mBAAoBqgD,EAAG,gBAAiBlC,CAAC,EAAKqhF,GAAE,EAAI,CAAE,SAAUj/E,GAAMkmF,GAAE,EAAI,CAAE,kBAAmBvmF,EAAG,iBAAkBE,CAAC,EAAKg/E,GAAE,EAAIrhF,EAAIsgF,GAAG,CAAC,EAAE,CAAC,EAAGx+E,EAAIsB,EAAE,IAAMZ,EAAC,CAAE,EAAGT,EAAIqB,EAAE,IAAM,CAACX,GAAGo/E,KAAO,CACrO,MAAMQ,GAAKC,GAAG,EAAEn2F,EAAC,CAAE,EAAG,CACpB,MAAOra,EAAE,MAAM2wB,EAAC,EAChB,KAAM,EAAE,MAAMA,EAAC,CACrB,CAAK,EAAGq/E,GAAKD,GAAK4J,GAAGpJ,EAAE,EAAIqJ,GAAGrJ,EAAE,EAC5B,OAAOlgF,EAAE2/E,GAAIpwH,EAAE,wBAAyBmwH,EAAE,CAC5C,CAAC,EAAGlhG,EAAI,IAAM,MAAM,QAAQxwD,EAAE,KAAK,GAAK0G,EAAE,MAAM,MAAQ1G,EAAE,MAAM,CAAC,EAAG4oB,EAAI,IAAM,CAC5E,QAAS0pD,GAAI,EAAGA,GAAI5rE,EAAE,MAAM,MAAO4rE,KACjC,GAAIA,KAAM,EACR/wE,EAAE,MAAM+wE,EAAC,EAAI/wE,EAAE,MAAM,CAAC,UACf+wE,KAAM5rE,EAAE,MAAM,MAAQ,GAAK8pD,EAAC,EACnCjvD,EAAE,MAAM+wE,EAAC,EAAI,CACX,MAAOy/E,GAAG/xJ,EAAE,MAAM,CAAC,CAAC,EACpB,KAAMgyJ,GAAGhyJ,EAAE,MAAM,CAAC,CAAC,CAC7B,MACW,CACH,MAAM0xJ,GAAKS,GAAGn2F,EAAC,EAAIz6D,EAAE,MAAM+wE,GAAI,CAAC,CAAC,EACjC/wE,EAAE,MAAM+wE,EAAC,EAAI,CAAE,MAAOy/E,GAAGL,EAAE,EAAG,KAAMM,GAAGwJ,GAAG9J,GAAI,CAAC,CAAC,CAAC,CACnD,CACJ,EAAGvpH,EAAKmqC,IAAM,CACZ,GAAI,CAACA,GAAG,OAAO1pD,EAAC,EAChB,MAAM8oI,GAAKS,GAAGn2F,EAAC,EAAIz6D,EAAE,MAAM+wE,EAAC,CAAC,EAC7B,OAAO/wE,EAAE,MAAM,CAAC,EAAE,KAAOywJ,GAAGyJ,GAAG/J,GAAIhrJ,EAAE,MAAM,MAAQ,CAAC,CAAC,EAAGkiB,EAAC,CAC3D,EAAG2pD,EAAI,CAACD,GAAGo/E,KAAO,CAChB,MAAMQ,GAAKwJ,GAAGhK,GAAIp/E,EAAC,EACnB,OAAOP,EAAE,MAAM,iBAAmBmgF,GAAK,EAAIR,GAAKp/E,EAClD,EAAG6D,EAAK7D,IAAM/wC,EAAE,gBAAkB76B,EAAE,MAAM,KAAO4rE,GAAE,CAAC,EAAIA,GAAE,CAAC,EAAIC,EAAED,GAAE,CAAC,EAAGA,GAAE,CAAC,CAAC,EAAIA,GAAE,CAAC,EAAG8/E,EAAI,IAAM,CAC7F,GAAIpyJ,EAAE,MAAO,CACX,MAAMsyE,GAAI,MAAM,QAAQtyE,EAAE,KAAK,EAAIm2E,EAAEn2E,EAAE,KAAK,EAAIA,EAAE,MAClDuB,EAAE,MAAM,CAAC,EAAI,CAAE,MAAOwwJ,GAAGz/E,EAAC,EAAG,KAAM0/E,GAAG1/E,EAAC,CAAC,CAC1C,CACF,EAAG+/E,GAAK,IAAM,CACZD,EAAC,EAAI1rJ,EAAE,MAAM,OAASkiB,EAAC,CACzB,EACA4oI,GAAGxxJ,EAAG,CAACsyE,GAAGo/E,KAAO,CACf,EAAE,iBAAmB,KAAK,UAAUp/E,IAAK,EAAE,IAAM,KAAK,UAAUo/E,IAAM,EAAE,GAAKW,GAAE,CACjF,CAAC,EAAGgG,GAAG,IAAM,CACXhG,GAAE,CACJ,CAAC,EACD,MAAMC,GAAK,CAAChgF,GAAGo/E,KAAO,CACpBnwJ,EAAE,MAAMmwJ,EAAE,EAAE,KAAOp/E,GAAGnqD,EAAE,oBAAqB,CAAE,SAAUupI,GAAI,KAAMp/E,GAAG,MAAO/wE,EAAE,MAAMmwJ,EAAE,EAAE,KAAK,CAAE,EAAGhrJ,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,MAAQyhC,EAAEupH,EAAE,CAC3I,EAAGa,GAAKt/E,EAAE,IAAOX,IAAMrC,EAAE0B,EAAE,MAAQ+/E,IAAO,CACxC,MAAMQ,GAAK,EAAE,MAAM5/E,EAAC,IAAMo/E,GAAG,MAAOC,GAAKz/E,EACvCw/E,GAAG,MACH5/H,EAAEs/H,EAAE,MAAM,OAAO,EACjBt/H,EAAEs/H,EAAE,MAAM,OAAO,CACvB,GAASh+F,EAAE,MAAM,OAAO,SAAS,EAAE,MAAMkf,EAAC,CAAC,EAAGqgF,GAAKxgF,EAAEn2E,EAAE,MAAO01J,GAAG,KAAK,EAClE,MAAO,CAAE,OAAQQ,GAAI,SAAUP,GAAI,YAAagB,EAAE,CACpD,CAAC,CAAC,EAAGjhF,EAAI,CAACY,GAAGo/E,KAAO,CAClBY,GAAGhgF,GAAGo/E,EAAE,EAAGlgF,GAAEkgF,EAAE,CACjB,EAAGc,GAAK,CAAClgF,GAAGo/E,GAAK,KAAO,CACtB,GAAI,CAAC9/E,EAAE,MAAMU,GAAGo/E,EAAE,EAAG,CACnB,MAAMQ,GAAKR,GAAK,EAAE,MAAMp/E,EAAC,EAAI,EAAI,EAAE,MAAMA,EAAC,EAAI,EAC9CggF,GAAGJ,GAAI5/E,EAAC,CACV,CACF,EAAGd,GAAI,CAACc,GAAGo/E,GAAK,GAAIQ,KAAO,CACzBR,IAAM,EAAE,YAAY,EAAGQ,KAAO,OAASriF,EAAE,MAAMyC,EAAC,EAAI,CAACzC,EAAE,MAAMyC,EAAC,EAAIzC,EAAE,MAAMyC,EAAC,EAAI4/E,GAAIriF,EAAE,MAAMyC,EAAC,EAAInqD,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAASyoI,GAAG,IAAI,CAAE,EAAIzoI,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAASyoI,GAAG,KAAM,CAC1M,EACA,MAAO,CACL,WAAYh/E,EACZ,aAAc2gF,GACd,eAAgB1iF,EAChB,WAAYyiF,GACZ,aAAc,IAAM,CAClB/wH,EAAE,YAAcvhC,EAAE,OAASuhC,EAAE,gBAAkB,CAACvhC,EAAE,QAAUsyJ,GAAGN,GAAGh2F,EAAEz6B,EAAE,SAAS,CAAC,EAAG,CAAC,CACtF,EACA,iBAAkBiwC,GAClB,iBAAkBE,EAClB,WAAY8gF,EAChB,CACA,EAAGmJ,GAAK,IAAM,CACZ,KAAM,CAAE,YAAa,EAAG,aAAc3/F,EAAG,YAAa7zC,GAAMmpI,KAAM,CAChE,QAAS,EACT,SAAU3vG,EACV,UAAW,EACX,WAAY3hD,EACZ,SAAU,CAAE,MAAOuB,CAAC,CACxB,EAAM8vJ,GAAE,EACN,MAAO,CACL,sBAAwBr1J,GAAM,MAAM,QAAQgE,EAAE,KAAK,IAAMA,EAAE,MAAM,SAAW,GAAKA,EAAE,MAAM,SAAW,GAAKuB,EAAE,MAAM,cAAgBA,EAAE,MAAM,aAAe,EAAEvF,EAAGgE,EAAE,MAAM,CAAC,CAAC,GAAKmoB,EAAEnsB,EAAGgE,EAAE,MAAM,CAAC,CAAC,GAAK,CAACA,EAAE,MAAM,CAAC,EAAGhE,CAAC,EAAIuF,EAAE,MAAM,WAAay6D,EAAEhgE,EAAGgE,EAAE,MAAM,CAAC,CAAC,GAAKmoB,EAAEnsB,EAAGgE,EAAE,MAAM,CAAC,CAAC,GAAK,CAAChE,EAAGgE,EAAE,MAAM,CAAC,CAAC,GAAK2hD,EAAE,sBAAuB3lD,CAAC,EAAGgE,EAAE,OAAS,GAC1U,cAAgBhE,GAAM,CACpB,MAAM,QAAQA,EAAE,KAAK,GAAKA,EAAE,MAAM,QAAU,GAAKuF,EAAE,MAAM,QAAUvB,EAAE,MAAQhE,EAAE,MAAM,IAAKuqC,GAAM,EAAEA,CAAC,CAAC,EAAI,MAAM,QAAQvqC,EAAE,KAAK,IAAMgE,EAAE,MAAQ,EAAEhE,EAAE,KAAK,EACxJ,EACA,oBAAqB,CAACA,EAAGuqC,EAAG,IAAM,CAChChlC,IAAMvF,EAAE,CAAC,GAAKA,EAAE,CAAC,GAAK,EAAE,WAAauqC,EAAE,aAAc,CAAC,EAAGvqC,EAAE,CAAC,GAAK,CAACA,EAAE,CAAC,IAAM,EAAE,WAAauF,EAAE,MAAM,eAAiB,EAAE,WAAaglC,EAAE,aAAc,CAAC,EACrJ,EACA,oBAAsBvqC,GAAM,CAC1B,IAAIuqC,EAAIvmC,EAAE,MAAQA,EAAE,MAAM,MAAK,EAAK,GACpC,OAAOumC,EAAE,SAAW,GAAKA,EAAE,CAAC,IAAM,OAASA,EAAI,IAAKA,EAAE,QAAUy1B,EAAEhgE,EAAGuqC,EAAE,CAAC,CAAC,EAAIA,EAAE,QAAQvqC,CAAC,EAAIuqC,EAAE,CAAC,EAAIvqC,EAAG2lD,EAAE,YAAa3lD,CAAC,IAAMuqC,EAAI,CAACvqC,CAAC,EAAG2lD,EAAE,cAAe3lD,CAAC,GAAIuqC,CAC7J,EACA,uBAAwB,CAACvqC,EAAGuqC,IAAM,CAChC,GAAIvmC,EAAE,OAAS,MAAM,QAAQA,EAAE,KAAK,EAClC,GAAIA,EAAE,MAAM,KAAM,GAAMmoB,EAAEnsB,EAAG,CAAC,CAAC,EAAG,CAChC,MAAM,EAAIgE,EAAE,MAAM,OAAQmyE,GAAM,CAAChqD,EAAEgqD,EAAGn2E,CAAC,CAAC,EACxCgE,EAAE,MAAQ,EAAE,OAAS,EAAI,IAC3B,MAAQumC,GAAK,CAACA,EAAIvmC,EAAE,MAAM,QAAU,CAACumC,IAAMvmC,EAAE,MAAM,KAAKhE,CAAC,OAEzDgE,EAAE,MAAQ,CAAChE,CAAC,CAChB,CACJ,CACA,EAAG4/J,GAAK,CAAC,EAAG5/F,IAAM,CAChB,KAAM,CACJ,QAAS7zC,EACT,SAAU,EACV,MAAOw5B,EACP,UAAW,EACX,KAAM3hD,EACN,WAAYuB,EACZ,UAAWggC,EACX,SAAU,CAAE,MAAO76B,EAAG,UAAWqrE,EAAG,UAAWq/E,EAAG,QAASh+F,EAAG,WAAYp3D,CAAC,CAC/E,EAAMq1J,GAAE,EACNqC,GAAG,IAAM,CACP/xG,EAAE,iBAAmB+vB,EAAEsgF,GAAG7pI,EAAEoZ,EAAE,SAAS,CAAC,EAAG,CAAC,CAC9C,CAAC,EACD,KAAM,CAAE,iBAAkB,EAAG,iBAAkBzP,CAAC,EAAKo/H,KAAM,CAAE,cAAe/+E,EAAG,cAAelC,EAAG,UAAWoC,EAAG,YAAaL,EAAG,YAAaE,EAAG,oBAAqBrC,EAAG,gBAAiB8B,CAAC,EAAK2/E,GAAE,EAAI,CAAE,oBAAqB1/E,EAAG,sBAAuBphB,EAAG,uBAAwB5nC,EAAG,oBAAqBuf,EAAG,cAAeoqC,CAAC,EAAKopF,GAAE,EAAI,CAAE,QAASxlF,CAAC,EAAKg7E,GAAE,EAAI,CAAE,UAAWiB,EAAG,iBAAkBC,IAAOkG,GAAE,EAAIjG,GAAKr/E,EAAE,IAAMm/E,EAAC,CAAE,EAAGG,GAAKpC,GAAG,IAAI,EAAG,CAC5a,WAAYz+E,EACZ,aAAc8gF,GACd,eAAgBhhF,GAChB,iBAAkBihF,GAClB,iBAAkBngF,GAClB,WAAYo/E,GACZ,WAAYQ,GACZ,aAAcP,EAClB,EAAM0J,GAAGr/F,CAAC,EACRq8F,GAAG,IAAM,CACP1G,GAAE,CACJ,CAAC,EACD,MAAMgB,GAAMzxJ,GAAMA,EAAI,CAAE,MAAO6wJ,GAAG7wJ,CAAC,EAAG,KAAM8wJ,GAAG9wJ,CAAC,CAAC,EAAK,CAAE,MAAO,KAAM,KAAM,IAAI,EAAI0xJ,GAAK,IAAMrxJ,EAAE,MAAQ,MAAM,QAAQA,EAAE,KAAK,EAAIA,EAAE,MAAM,IAAKL,GAAMyxJ,GAAGzxJ,CAAC,CAAC,EAAIyxJ,GAAGpxJ,EAAE,KAAK,EAAIoxJ,GAAE,EAAIE,EAAK,CAAC3xJ,EAAG3C,IAAM,CAC9L,MAAMu1J,GAAI,EAAE,MAAM5yJ,CAAC,EAAG+wE,EAAI2gF,GAAE,EAC5B,OAAO,MAAM,QAAQ3gF,CAAC,EAAIA,EAAE,KAAM8hF,IAAOA,GAAG,OAASD,IAAG,MAAQC,GAAG,QAAUx1J,CAAC,EAAIu1J,IAAG,OAAS7hF,EAAE,MAAQ1zE,IAAM0zE,EAAE,KAClH,EAAG6gF,GAAK,CAAC5xJ,EAAG3C,EAAGu1J,KAAM,CACnB,MAAM7hF,EAAI2gF,GAAE,EACZ,OAAO,MAAM,QAAQ3gF,CAAC,EAAIjyE,EAAE,MAAMzB,CAAC,IAAM0zE,EAAE6hF,EAAC,GAAG,MAAQ5yJ,IAAM+wE,EAAE6hF,EAAC,GAAG,MAAQ,EAC7E,EAAGpgB,EAAI,CAACxyI,EAAG3C,IAAM,CACf,GAAImI,EAAE,MAAM,QAAS,CACnB,MAAMotJ,GAAIlB,GAAE,EACZ,GAAI,MAAM,QAAQrxJ,EAAE,KAAK,GAAK,MAAM,QAAQuyJ,EAAC,EAAG,CAC9C,MAAM7hF,EAAI6gF,GAAG5xJ,EAAG3C,EAAG,CAAC,GAAKu0J,GAAG5xJ,EAAG3C,EAAG,CAAC,EAAGw1J,GAAK5B,GAAG9/E,EAAElqD,GAAG,EAAG,CAAE,MAAOjnB,EAAG,KAAMlB,EAAE,MAAMzB,CAAC,CAAC,CAAE,EACpF,OAAO4zE,EAAE5wE,EAAE,MAAOgxJ,GAAG,MAAOwB,EAAE,GAAK,CAAC9hF,CACtC,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGoiF,EAAKphF,EAAE,IAAO/xE,GAAMywE,EAAE2gF,GAAG,MAAQ/zJ,GAAM,CACxC,MAAMu1J,GAAIjB,EAAG3xJ,EAAG3C,EAAE,KAAK,EAAG0zE,EAAIngD,EAC5BvzB,EAAE,MACFyzE,EAAEhyE,EAAE,MAAMkB,CAAC,EAAGkwJ,EAAE,MAAM,OAAO,EAC7Bl/E,EAAElyE,EAAE,MAAMkB,CAAC,EAAGkwJ,EAAE,MAAM,OAAO,CACnC,GAASuC,EAAEvC,EAAE,MAAM,cAAepxJ,EAAE,MAAMkB,CAAC,EAAG3C,EAAE,KAAK,GAAK60D,EAAE,MAAM,QAAQ,SAAS70D,EAAE,KAAK,GAAK,CAACy1J,EAAE5C,EAAE,MAAM,aAAcpxJ,EAAE,MAAMkB,CAAC,EAAG3C,EAAE,KAAK,GAAK8zJ,GAAGryJ,EAAE,MAAMkB,CAAC,CAAC,EAAG6yJ,GAAKrgB,EAAEn1I,EAAE,MAAO2C,CAAC,EAAG0yJ,GAAK/jF,EAAEkC,EAAE,MAAOxzE,EAAE,MAAOyB,EAAE,MAAMkB,CAAC,CAAC,EACnN,MAAO,CAAE,OAAQ4yJ,GAAG,SAAU7hF,EAAG,UAAW8hF,GAAI,YAAaH,EAAE,CACjE,CAAC,CAAC,EAAGO,EAAK,CAACjzJ,EAAG3C,IAAM4zJ,GAAG9/E,EAAElqD,EAAC,CAAE,EAAG,CAAE,MAAOjnB,EAAG,KAAMlB,EAAE,MAAMzB,CAAC,CAAC,CAAE,EAAG0B,EAAI,CAACiB,EAAG3C,IAAM,CAC5E,MAAMu1J,GAAIvyJ,EAAE,MAAQA,EAAE,MAAQ8wE,EAAElqD,GAAG,EACnC5mB,EAAE,MAAQ4wJ,GAAG2B,GAAG,CAAE,MAAO5yJ,EAAG,KAAMlB,EAAE,MAAMzB,CAAC,CAAC,CAAE,EAAGy9D,EAAE,YAAY,EAAGA,EAAE,kBAAkB,CACxF,EAAGy1F,EAAI,CAACvwJ,EAAG3C,IAAM,CACf,MAAMu1J,GAAIK,EAAGjzJ,EAAG3C,CAAC,EACjBmI,EAAE,MAAM,UAAYA,EAAE,MAAM,WAAanF,EAAE,MAAQivD,EAAEsjG,EAAC,EAAIvyJ,EAAE,MAAQ,EAAEuyJ,GAAGvyJ,EAAE,KAAK,IAAMA,EAAE,MAAQ4mC,EAAEgsH,EAAGjzJ,EAAG3C,CAAC,CAAC,GAAKgD,EAAE,MAAQ,CAAC4yJ,EAAGjzJ,EAAG3C,CAAC,CAAC,EAAGo2J,GAAE,EAAG,KAAK,IAAM,CACnJ/iF,EAAErwE,EAAE,MAAOy6D,EAAGz6D,EAAE,MAAM,OAAS,CAAC,CAClC,CAAC,CACH,EAAGyxE,EAAI,CAAC9xE,EAAG3C,IAAM,CACfqqB,EAAEurI,EAAGjzJ,EAAG3C,CAAC,EAAGvC,EAAE,MAAM,KAAK,EAAGggE,EAAE,aAAc,EAAE,CAChD,EAAGm9F,EAAK,CAACj4J,EAAG3C,KAAO,EAAE,MAAMA,CAAC,EAAE,MAAQ2C,EAAGyQ,EAAEpT,EAAG,EAAE,MAAMA,CAAC,EAAE,KAAM2C,CAAC,EAAGlF,EAAE,MAAM,QAAUg3E,EAAE9xE,EAAG3C,CAAC,EAAImI,EAAE,MAAM,QAAU+qJ,EAAEvwJ,EAAG3C,CAAC,EAAI0B,EAAEiB,EAAG3C,CAAC,GAAId,EAAI,CAACyD,EAAG3C,IAAM,CACjJmzE,EAAExwE,EAAG3C,CAAC,EAAGoT,EAAEpT,EAAG2C,EAAG,IAAI,CACvB,EAAGyQ,EAAI,CAACzQ,EAAG3C,EAAGu1J,KAAM,CAClB,IAAI7hF,EAAI6hF,GACR,GAAI,CAAC7hF,GAAKA,IAAM,EAAG,CACjB,MAAM8hF,GAAKnB,GAAE,EACb3gF,EAAI,MAAM,QAAQ8hF,EAAE,EAAIA,GAAG7yJ,CAAC,EAAE,MAAQ6yJ,GAAG,KAC3C,CACA,EAAE,oBAAqB,CAAE,SAAU7yJ,EAAG,KAAM3C,EAAG,MAAO0zE,EAAG,CAC3D,EAAGJ,EAAI,CAAC3wE,EAAG3C,IAAM,CACfg0J,GAAG,MAAQ4B,EAAGjzJ,EAAG3C,CAAC,CACpB,EAAGm9B,EAAKx6B,GAAM,CACZqxE,EAAE,CACA,MAAOrxE,CACb,CAAK,EAAG86D,EAAE,YAAY,CACpB,EAAG23F,EAAI,CAACzyJ,EAAG3C,EAAGu1J,KAAM,CAClB,GAAI5yJ,aAAa,IAAK,CACpB,MAAM+wE,EAAI,GAAGkE,EAAE29E,GAAI,CAAC,CAAC,IAAIv1J,CAAC,GAC1B,OAAO2C,EAAE,KAAOA,EAAE,IAAI+wE,CAAC,EAAI,EAC7B,CACA,OAAO,OAAO/wE,GAAK,WAAaA,EAAE+uE,EAAEkiF,GAAGhqI,EAAC,EAAI,CAAE,MAAO2rI,GAAG,KAAMv1J,CAAC,CAAE,EAAG,EAAE,CAAC,EAAI,EAC7E,EAAGy1J,EAAI,CAAC9yJ,EAAG3C,EAAGu1J,KAAM,CAClB,GAAI5yJ,aAAa,IAAK,CACpB,MAAM+wE,EAAI,GAAGkE,EAAE29E,GAAI,CAAC,CAAC,IAAIv1J,CAAC,GAC1B,OAAO2C,EAAE,KAAOA,EAAE,IAAI+wE,CAAC,EAAI,EAC7B,CACA,MAAO,EACT,EACA,MAAO,CACL,cAAeoiF,EACf,aAAc7B,GACd,KAAMxyJ,EACN,WAAYkyJ,GACZ,eAAgB1gF,GAChB,WAAYjwE,EACZ,iBAAkBkxJ,GAClB,iBAAkBngF,GAClB,WAAYo/E,GACZ,WAAYh2H,EACZ,aAAcm2C,EACd,YAAasnF,EACb,WAAY17J,EACZ,kBAAmBm1J,EACvB,CACA,EAAG72J,GAAqBk9J,GAAG,CACzB,OAAQ,cACR,MAAO,CACL,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,GACb,eAAgB,CAAE,KAAM,OAAO,CACnC,EACE,MAAO,CAAC,aAAc,aAAc,mBAAoB,OAAO,EAC/D,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,EAAI8wB,GAAE,EAAI,CAAE,SAAUzyE,CAAC,EAAKkzJ,GAAE,EAAI,CACpD,UAAW3xJ,EACX,SAAU,CAAE,OAAQggC,CAAC,CAC3B,EAAQ8vH,GAAE,EAAI3qJ,EAAI1G,EAAE,EAAG,UAAU,EAC7Bq4J,GAAG,IAAM,CACP,EAAE,OAAO,CACX,CAAC,EACD,KAAM,CACJ,cAAetmF,EACf,aAAcq/E,EACd,KAAMh+F,EACN,WAAYp3D,EACZ,eAAgB,EAChB,WAAY81B,EACZ,WAAYqgD,EACZ,aAAclC,EACd,YAAaoC,EACb,WAAYL,EACZ,iBAAkBE,EAClB,iBAAkBrC,EAClB,WAAY8B,EACZ,kBAAmBC,CACzB,EAAQgqF,GAAGj6G,EAAG,CAAC,EACX,OAAOqa,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAYlqC,EACZ,KAAMshC,EACN,kBAAmBwe,EACnB,YAAaS,EACb,WAAYL,EACZ,WAAYL,CAClB,GAAQ,WAAYQ,EAAG,iBAAmBvpD,GAAMspD,EAAE,EAAGtpD,CAAC,CAAC,CAAE,EAAG,CAACA,EAAGuf,KAAOiqC,EAAC,EAAIknF,GAAGwB,GAAI,CAC7E,SAAU,EAAE,SACZ,QAAS,EACf,EAAO,CACD,QAASK,GAAG,CAAC,CAAE,UAAW,EAAG,UAAWhlF,KAAQ,EAC7C/D,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAG,EAAItI,IAAOhgF,EAAC,EAAItvD,EAAE,MAAO,CAC9C,IAAKsvI,EACL,MAAOgH,GAAGjjF,CAAC,CACrB,EAAW,CACDvtD,EAAE,OAAO,WAAW,EAAIgtB,GAAGhtB,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAOqV,EAAEnM,CAAC,CACtB,CAAW,EAAI2/C,EAAE,GAAI,EAAE,EACb7oD,EAAE,OAAO,YAAY,EAAIgtB,GAAGhtB,EAAE,OAAQ,aAAckU,GAAG,CACrD,IAAK,EACL,QAAS,EACrB,EAAa,CACD,KAAMmB,EAAEm1B,CAAC,EACT,OAAQn1B,EAAE8zC,CAAC,EAAEqgF,CAAC,EACd,MAAOn0H,EAAEmzH,CAAC,EAAEgB,CAAC,EACb,YAAan0H,EAAEo0C,CAAC,EAChB,WAAYp0C,EAAE+zC,CAAC,EACf,SAAUogF,CACtB,CAAW,CAAC,GAAKhgF,IAAKknF,GAAG3mF,GAAI,CACjB,IAAK,EACL,MAAO10C,EAAE8zC,CAAC,EAAEqgF,CAAC,EACb,UAAWn0H,EAAE18B,CAAC,EAAE,WAAa,CAAC08B,EAAEsD,CAAC,EAAE,cACnC,OAAQtD,EAAEsD,CAAC,EAAE,WACb,mBAAoB,CAAC,EAAE,EAAE,gBAAkBtD,EAAE18B,CAAC,EAAE,WAChD,eAAgB,GAChB,KAAM,QACN,WAAa8wJ,GAAOp0H,EAAEo0C,CAAC,EAAEggF,EAAID,CAAC,EAC9B,aAAeC,GAAOp0H,EAAEgyC,CAAC,EAAEoiF,EAAID,CAAC,CAC5C,EAAagJ,GAAG,CACJ,OAAQD,GAAG,IAAM,CACf3B,GAAG0B,GAAI,CACL,MAAOj9H,EAAEmzH,CAAC,EAAEgB,CAAC,EACb,SAAUA,EACV,mBAAoBn0H,EAAE,CAAC,EAAEm0H,CAAC,EAC1B,KAAMn0H,EAAEm1B,CAAC,EAAEg/F,CAAC,EACZ,cAAgBC,GAAOp0H,EAAEjiC,CAAC,EAAEo2J,EAAGC,CAAE,EACjC,aAAeA,GAAOp0H,EAAE0zC,CAAC,EAAEygF,EAAGC,CAAE,EAChC,aAAeA,GAAOp0H,EAAE4xC,CAAC,EAAEwiF,EAAID,CAAC,EAChC,mBAAqBC,GAAOp0H,EAAEi0C,CAAC,EAAEkgF,EAAGC,GAAI,KAAMA,GAAI,IAAI,CACtE,EAAiB+I,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAEv3B,CAAC,EAAG,CAAC2rJ,EAAIC,MAAQ,CACpB,KAAMD,EACN,GAAI8I,GAAI5I,IAAO,CACb38G,GAAGhtB,EAAE,OAAQypI,EAAIv1H,GAAG,CAAE,QAAS,EAAE,EAAIy1H,EAAE,CAAC,CAC5D,CAAmB,CACnB,EAAkB,CAClB,CAAe,EAAG,KAAM,CAAC,QAAS,WAAY,mBAAoB,OAAQ,cAAe,eAAgB,eAAgB,oBAAoB,CAAC,CAC9I,CAAa,EACD,EAAG,CACf,EAAa,CACD3pI,EAAE,OAAO,qBAAqB,EAAI,CAChC,KAAM,OACN,GAAIuyI,GAAG,CAAC,CAAE,KAAM9I,CAAE,IAAO,CACvBz8G,GAAGhtB,EAAE,OAAQ,sBAAuB,CAClC,KAAMypI,EAAG,KACT,MAAOA,EAAG,KAC5B,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,KAAM,CAAC,QAAS,UAAW,SAAU,mBAAoB,aAAc,cAAc,CAAC,EACpG,EAAW,CAAC,EAAE,EAAG,GAAG,EACpB,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,UAAU,CAAC,EACpB,CACF,CAAC,EAAGwJ,GAAK,CAAC,EAAG7/F,IAAM,CACjB,KAAM,CACJ,SAAU7zC,EACV,QAAS,EACT,MAAOw5B,EACP,WAAY,EACZ,UAAW3hD,EACX,SAAU,CAAE,UAAWuB,EAAG,WAAYggC,EAAG,QAAS76B,EAAG,MAAOqrE,EAAG,UAAWq/E,CAAC,CAC/E,EAAMC,GAAE,EAAI,CAAE,SAAUj+F,CAAC,EAAKmlG,GAAE,EAAI,CAAE,cAAev8J,EAAG,UAAW,EAAG,cAAe81B,EAAG,gBAAiBqgD,EAAG,mBAAoBlC,EAAG,gBAAiBoC,CAAC,EAAKi/E,GAAE,EAAI,CAAE,oBAAqBt/E,EAAG,oBAAqBE,CAAC,EAAKypF,GAAE,EAAI,CAAE,iBAAkB9rF,EAAG,iBAAkB8B,CAAC,EAAKu/E,GAAE,EAC1QwC,GAAG,IAAM,CACP/xG,EAAE,kBAAoB6O,EAAE,MAAQwhG,GAAG,EAAEhyJ,EAAE,SAAS,CAAC,EACnD,CAAC,EACD,MAAM4xE,EAAIu+E,GAAG,IAAI,EAAG3/F,EAAI2/F,GAAE,EAC1BkI,GAAG,IAAM,CACPr4J,EAAE,YAAc,EAAE,OAASA,EAAE,gBAAkB,CAAC,EAAE,SAAWwwD,EAAE,MAAQwhG,GAAG,EAAEhyJ,EAAE,SAAS,CAAC,EAC1F,CAAC,EACD,MAAM4oB,EAAK8oD,IAAM,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,KAAM8gF,IAAOR,GAAGQ,EAAE,IAAM9gF,EAAC,EAAI,EAAE,MAAQsgF,GAAG,EAAE,KAAK,IAAMtgF,GAAI,GAAIvpC,EAAKupC,IAAMK,EAAE,MAAM,SAAW,MAAM,QAAQ,EAAE,KAAK,EAAI/1E,EAAE,EAAE,MAAO41E,EAAE,MAAOygF,GAAG3gF,EAAC,CAAC,EAAI,GAAIa,EAAKb,IAAM0/E,EAAE,MAAM,cAAc,KAAOA,EAAE,MAAM,aAAa,IAAI,GAAG1/E,EAAC,EAAE,EAAI,GAAIyE,EAAKzE,IAAM0/E,EAAE,MAAM,yBAAyB,IAAMA,EAAE,MAAM,cAAc,KAAOA,EAAE,MAAM,cAAc,IAAI,GAAG1/E,EAAC,EAAE,EAAI,GAAK,OAAO0/E,EAAE,MAAM,eAAiB,WAAaA,EAAE,MAAM,cAAca,GAAGngI,EAAEypI,GAAG,EAAC,CAAE,CAAC,EAAG7pF,EAAC,CAAC,EAAI,GAAI0gF,EAAIn/E,EAAE,IAAMZ,EAAEjf,EAAC,EAAKse,IAAM,CACpgB,MAAM8gF,GAAK5pI,EAAE8oD,GAAE,KAAK,EAAGF,EAAI3B,EACzB6B,GAAE,MACFS,EAAEi/E,EAAE,MAAM,OAAO,EACjBj/E,EAAEi/E,EAAE,MAAM,OAAO,CACvB,GAAS1qJ,EAAE,MAAM,MAAM,SAASgrE,GAAE,KAAK,GAAK,CAACa,EAAEb,GAAE,KAAK,GAAKyE,EAAEzE,GAAE,KAAK,EAAG+gF,GAAKtqH,EAAEupC,GAAE,KAAK,GAAK,CAAC8gF,GAAIlgF,GAAIrC,EAAE1uE,EAAE,MAAOmwE,GAAE,KAAK,EACjH,MAAO,CAAE,OAAQ8gF,GAAI,SAAUhhF,EAAG,UAAWihF,GAAI,YAAangF,EAAC,CACjE,CAAC,CAAC,EAAG+/E,GAAM3gF,IAAMugF,GAAG,EAAEsJ,GAAG,GAAG,CAAC,EAAG7pF,EAAC,EACjC,MAAO,CACL,aAAc0gF,EACd,UAAW5hG,EACX,cAAgBkhB,IAAM,CACpBE,EAAE,MAAQqgF,GAAG,EAAE,EAAC,CAAE,EAAGvgF,EAAC,CACxB,EACA,WAAaA,IAAM,CACjB,GAAIvpD,EAAE,oBAAqB,CAAE,SAAU,EAAG,KAAMupD,GAAG,MAAO,OAAO,GAAG,CAAE,EAAGnwC,EAAE,MAAM,QAC/E,OAAO,EAAE,MAAQ,MAAM,QAAQ,EAAE,KAAK,KAAO,EAAE,OAAO,IAAKiwC,IAAMwgF,GAAGxgF,EAAC,CAAC,GAAG,SAASE,EAAC,EAAI,EAAE,MAAQ,EAAE,MAAM,OAAQF,IAAMwgF,GAAGxgF,EAAC,IAAME,EAAC,EAAI,EAAE,MAAM,KAAKugF,GAAGngI,EAAE,EAAC,CAAE,EAAG4/C,EAAC,CAAC,GAAK,EAAE,MAAQ,CAACugF,GAAGngI,EAAEypI,GAAG,EAAC,CAAE,CAAC,EAAG7pF,EAAC,CAAC,EAAG1V,EAAE,aAAc,EAAE,EACxN+V,EAAE,MAAM,QAAUJ,EAAE0gF,GAAG3gF,EAAC,EAAG,EAAE,KAAK,IAAM,EAAE,MAAQQ,EAAEmgF,GAAG3gF,EAAC,CAAC,EAAGijF,GAAE,EAAG,KAAK,IAAM,CAC1E3iF,EAAE,EAAE,MAAOhW,EAAG,EAAE,MAAM,OAAS,CAAC,CAClC,CAAC,IAAM,EAAE,MAAQq2F,GAAG3gF,EAAC,EAAG1V,EAAE,YAAY,EACxC,CACJ,CACA,EAAG8/F,GAAqB7C,GAAG,CACzB,OAAQ,aACR,MAAO,CACL,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,GACb,eAAgB,CAAE,KAAM,OAAO,CACnC,EACE,MAAO,CAAC,aAAc,YAAY,EAClC,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,WAAY,EACZ,SAAU,CAAE,OAAQ3hD,CAAC,EACrB,UAAWuB,CACjB,EAAQ8vJ,GAAE,EAAI,CAAE,aAAc9vH,EAAG,UAAW76B,EAAG,WAAYqrE,EAAG,cAAeq/E,CAAC,EAAKyK,GAAGl6G,EAAG,CAAC,EACtF,OAAOqa,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAY,EACZ,WAAY+V,CAClB,EAAM,CAAE,EAAG,CAAC/1E,EAAGuqC,KAAO6rC,IAAKtvD,EAAE,MAAO,KAAM,CACpC9mB,EAAE,OAAO,WAAW,EAAI45C,GAAG55C,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAOiiC,EAAE,CAAC,CAClB,CAAO,EAAIwzC,EAAE,GAAI,EAAE,EACbz1E,EAAE,OAAO,YAAY,EAAI45C,GAAG55C,EAAE,OAAQ,aAAc+9J,GAAGj9H,GAAG,CAAE,IAAK,CAAC,EAAI,CACpE,MAAOmB,EAAEsD,CAAC,EACV,WAAYtD,EAAE8zC,CAAC,CACvB,CAAO,CAAC,CAAC,GAAKK,IAAKknF,GAAG3mF,GAAI,CAClB,IAAK,EACL,MAAO10C,EAAEsD,CAAC,EACV,UAAWtD,EAAE18B,CAAC,EAAE,WAAa,CAAC08B,EAAEj+B,CAAC,EAAE,cACnC,OAAQi+B,EAAEj+B,CAAC,EAAE,WACb,mBAAoB,CAAC,EAAE,EAAE,gBAAkBi+B,EAAE18B,CAAC,EAAE,WAChD,cAAe08B,EAAEv3B,CAAC,EAClB,KAAM,OACN,eAAgB,GAChB,WAAYu3B,EAAE8zC,CAAC,EACf,aAAc9zC,EAAEmzH,CAAC,CACzB,EAASgK,GAAG,CAAE,EAAG,GAAK,CACdp/J,EAAE,OAAO,oBAAoB,EAAI,CAC/B,KAAM,OACN,GAAIm/J,GAAG,CAAC,CAAE,KAAMrpI,CAAC,IAAO,CACtB8jB,GAAG55C,EAAE,OAAQ,qBAAsB,CACjC,KAAM81B,EAAE,KACR,MAAOA,EAAE,KACvB,CAAa,CACb,CAAW,EACD,IAAK,GACf,EAAY,MACZ,CAAO,EAAG,KAAM,CAAC,QAAS,UAAW,SAAU,mBAAoB,cAAe,aAAc,cAAc,CAAC,EAC/G,CAAK,EACH,CACF,CAAC,EAAGiqI,GAAK,CACP,IAAK,EACL,MAAO,gBACT,EAAGC,GAAK,CAAC,eAAgB,gBAAgB,EAAGC,GAAK,CAAC,eAAgB,aAAc,YAAa,UAAW,aAAa,EAAG9oF,GAAK,CAAC,aAAc,WAAY,eAAgB,YAAa,SAAS,EAAG+oF,GAAK,CAAC,eAAgB,aAAc,YAAa,UAAW,aAAa,EAAG5oF,GAAK,CAAE,IAAK,CAAC,EAAI6oF,GAAK,CAAC,aAAc,cAAc,EAAGC,GAAqBnD,GAAG,CACzV,OAAQ,YACR,MAAO,CACL,MAAO,GACP,QAAS,GACT,QAAS,GACT,MAAO,GACP,mBAAoB,GACpB,oBAAqB,GACrB,aAAc,EAClB,EACE,MAAO,CAAC,eAAgB,iBAAkB,iBAAkB,iBAAkB,iBAAkB,YAAa,cAAe,aAAc,SAAS,EACnJ,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAAE,sBAAuB,EAAG,qBAAsB3hD,CAAC,EAAK0wJ,GAAE,EAAI,CAChF,QAASnvJ,EACT,SAAUggC,EACV,UAAW76B,EACX,SAAU,CAAE,WAAYqrE,EAAG,QAASq/E,EAAG,OAAQh+F,EAAG,MAAOp3D,EAAG,eAAgB,EAAG,WAAY81B,CAAC,CAClG,EAAQu/H,GAAE,EAAI,CAAE,aAAcl/E,EAAG,iBAAkBlC,GAAMkhF,GAAE,EAAI,CAAE,kBAAmB9+E,CAAC,EAAKomF,GAAE,EAAI,CAAE,aAAczmF,EAAG,gBAAiBE,CAAC,EAAKo/E,GAAE,EAAI,CAAE,eAAgBzhF,EAAG,eAAgB8B,CAAC,EAAK8hF,GAAE,EAAI7hF,EAAIq+E,GAAG,CAClM,MAAO,GACP,QAAS,GACT,QAAS,EACf,CAAK,EAAGz/F,EAAI2/F,GAAG,IAAI,EAAGvnI,EAAIunI,GAAG,IAAI,EAAGhoH,EAAIgoH,GAAG,EAAE,EAAG59E,EAAI49E,GAAE,EAAIh6E,EAAIg6E,GAAG,EAAE,EAC/DkI,GAAG,IAAM,CACP,EAAE,SAAS,CACb,CAAC,EACD,MAAMjG,EAAK7zJ,GAAM4zJ,GAAG5wJ,EAAC,EAAI,CACvB,MAAOhD,EAAE,MACT,QAASA,EAAE,QACX,QAASuzB,EAAE,MAAM,cAAgBvzB,EAAE,QAAU,EAC7C,aAAc,CACpB,CAAK,EAAG8zJ,GAAKp/E,EACP,IAAO10E,GAAMs0J,EAAGt0J,EAAGojD,EAAEpjD,CAAC,CAAC,GAAKg0J,GAAGh0J,EAAGojD,EAAEpjD,CAAC,CAAC,CAC5C,EAAO+zJ,GAAKr/E,EAAE,KAAO,CAAE,MAAOtxB,EAAE,MAAO,QAASA,EAAE,QAAS,QAASA,EAAE,OAAO,EAAG,EAAG4wG,GAAK,CAACh0J,EAAGu1J,KAAM93J,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,2BAA6B,CAAC2lD,EAAE,aAAapjD,EAAGu1J,EAAC,EAAI,GAAIpiF,EAAI,CAACnzE,EAAGu1J,KAAM,CAC/L,GAAI93J,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,2BAA4B,CAC1D,MAAMi2E,EAAI6hF,GAAI,CAAChiI,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EAAI,CAAC,CAACuzB,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EAAGw1J,GAAKpyG,EAAEpjD,CAAC,EAAI0zE,EAClF,MAAO,CAACtwB,EAAE,aAAapjD,EAAGw1J,EAAE,CAC9B,CACA,MAAO,EACT,EAAGvB,GAAKv/E,EAAE,IAAO10E,GAAM,CAAC0B,EAAE,CAAC0hD,EAAEpjD,CAAC,GAAI,CAACuzB,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EAAGA,CAAC,GAAKmzE,EAAEnzE,EAAG,EAAE,CAAC,EAAGizE,GAAIyB,EAAE,IAAO10E,GAAM,CAAC0B,EAAE,CAAC0hD,EAAEpjD,CAAC,EAAI,CAACuzB,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EAAGA,CAAC,GAAKmzE,EAAEnzE,EAAG,EAAE,CAAC,EAAGk0J,GAAK,CAACl0J,EAAGu1J,KAAMuI,GAAGlK,GAAG5wJ,EAAC,EAAIhD,CAAC,EAAGu1J,EAAC,EAAGxhF,GAAI,CAAC/zE,EAAGu1J,KAAMwI,GAAGnK,GAAG5wJ,EAAC,EAAIhD,CAAC,EAAGu1J,EAAC,EAAGpC,GAAKz+E,EAC9N,KAAO,CACL,aAAc,GACd,mBAAoB,CAACnhD,EAAE,MAAM,iBAC7B,uBAAwB,CAACA,EAAE,MAAM,eAAiBA,EAAE,MAAM,MAAQ,CAACA,EAAE,MAAM,iBAC3E,wBAAyB,CAACA,EAAE,MAAM,eAAiBA,EAAE,MAAM,MAAQA,EAAE,MAAM,iBAC3E,6BAA8B,CAACA,EAAE,MAAM,eAAiB,CAACA,EAAE,MAAM,KACjE,iBAAkBA,EAAE,MAAM,eAAiBA,EAAE,MAAM,KACnD,6BAA8BA,EAAE,MAAM,eAAiB,CAACA,EAAE,MAAM,IACxE,EACA,EAAOogI,GAAKj/E,EACN,IAAMnhD,EAAE,MAAM,kBAAoB91B,EAAE,MAAM,SAAW,CAAC,EAAE,MAAM,KACpE,EAAO21J,GAAK1+E,EAAE,IAAM,CACd,MAAM10E,EAAI,CAAC,CAAE,KAAM,OAAO,CAAE,EAC5B,OAAOuzB,EAAE,MAAM,eAAiBvzB,EAAE,KAAK,CAAE,KAAM,GAAI,UAAW,IAAM,CAClE,KAAM,SACd,CAAO,EAAGuzB,EAAE,MAAM,eAAiBvzB,EAAE,KAAK,CAAE,KAAM,GAAI,UAAW,EAAE,EAAI,CAC/D,KAAM,SACd,CAAO,EAAGA,CACN,CAAC,EAAGo0J,GAAK1/E,EAAE,IAAM0+E,GAAG,MAAM,OAAQpzJ,GAAM,CAACA,EAAE,SAAS,CAAC,EAAGq0J,GAAK3/E,EAAE,IAAO10E,GAAM,CAC1E,GAAIA,IAAM,QAAS,CACjB,MAAMu1J,GAAIjiF,EAAE,CAAClwB,EAAE,KAAK,EACpB,MAAO,CAAE,KAAMmyG,GAAI,GAAK,IAAIA,EAAC,GAAK,GAAGA,EAAC,GAAI,MAAOA,EAAC,CACpD,CACA,MAAO,CAAE,KAAMnyG,EAAEpjD,CAAC,EAAI,GAAK,IAAIojD,EAAEpjD,CAAC,CAAC,GAAK,GAAGojD,EAAEpjD,CAAC,CAAC,GAAI,MAAOojD,EAAEpjD,CAAC,CAAC,CAChE,CAAC,EAAGs0J,EAAK,CAACt0J,EAAGu1J,KAAM,CACjB,GAAI,CAACnyG,EAAE,oBAAqB,MAAO,GACnC,MAAMswB,EAAItwB,EAAE,oBAAoBA,EAAE,MAAOpjD,IAAM,QAAUu1J,GAAI,MAAM,EACnE,OAAO7hF,EAAE1zE,CAAC,EAAI,CAAC,CAAC0zE,EAAE1zE,CAAC,GAAG,SAASu1J,EAAC,EAAI,EACtC,EAAGhB,GAAK,CAACv0J,EAAGu1J,KAAMA,KAAM,SAAWtjG,EAAE,QAAU,KAAOjyD,EAAIA,EAAI,GAAIm1I,EAAKn1I,GAAM,CAC3E,MAAMu1J,GAAIhiI,EAAE,MAAM,KAAO,GAAK,GAAImgD,EAAI1zE,IAAM,QAAUu1J,GAAI,GAAIC,GAAK,CAACjiI,EAAE,MAAM,GAAGvzB,CAAC,eAAe,EAAGq1J,GAAKr1J,IAAM,SAAW,CAACuzB,EAAE,MAAM,KAAOiiI,GAAK,EAAGwI,GAAK,GACrJ,QAASC,GAAK5I,GAAI4I,GAAKvqF,EAAGuqF,IAAMzI,GAC9BwI,GAAG,KAAK,CACN,MAAOzqI,EAAE,MAAM,KAAO0qI,GAAK1J,GAAG0J,GAAIj+J,CAAC,EACnC,KAAMi+J,GAAK,GAAK,IAAIA,EAAE,GAAK,GAAGA,EAAE,EAC1C,CAAS,EACH,OAAOj+J,IAAM,SAAW,CAACuzB,EAAE,MAAM,MAAQyqI,GAAG,QAAQ,CAAE,MAAO/rG,EAAE,QAAU,KAAO,GAAK,EAAG,KAAM,IAAI,CAAE,EAAG0hB,EAAEqqF,GAAKC,KAAQ,CAAE,OAAQ,GAAI,SAAUpL,EAAE,MAAM,MAAM7yJ,CAAC,EAAE,SAASi+J,GAAG,KAAK,GAAK,CAACv8J,EAAEu8J,GAAG,MAAOj+J,CAAC,GAAKs0J,EAAGt0J,EAAGi+J,GAAG,KAAK,GAAKjK,GAAGh0J,EAAGi+J,GAAG,KAAK,CAAC,EAAG,CAC/O,EAAGnI,EAAM91J,GAAMA,GAAK,EAAIA,EAAI,GAAI41J,EAAM51J,GAAMA,GAAK,EAAIA,EAAI,GAAI0B,EAAI,CAAC1B,EAAGu1J,KAAM,CACzE,MAAM7hF,EAAIvrE,EAAE,QAAU0rJ,EAAEpgF,EAAEtrE,EAAE,OAAO,CAAC,EAAI,KAAMqtJ,GAAKrtJ,EAAE,QAAU0rJ,EAAEpgF,EAAEtrE,EAAE,OAAO,CAAC,EAAI,KAAMktJ,GAAKxB,EAC1FpgF,EACEsgF,GAAG,MACHwB,GACAA,KAAM,WAAaA,KAAM,UAAYO,EAAG91J,CAAC,EAAI41J,EAAG51J,CAAC,CAC3D,CACA,EACM,OAAO0zE,GAAK8hF,IAAMO,GAAGV,GAAIG,EAAE,GAAKS,GAAGZ,GAAIG,EAAE,KAAOQ,GAAGX,GAAI3hF,CAAC,GAAKuiF,GAAGZ,GAAI3hF,CAAC,GAAKA,EAAIsiF,GAAGX,GAAI3hF,CAAC,GAAKuiF,GAAGZ,GAAI3hF,CAAC,EAAI8hF,GAAKO,GAAGV,GAAIG,EAAE,GAAKS,GAAGZ,GAAIG,EAAE,EAAI,EACzI,EAAGtC,EAAKlzJ,GAAMuzB,EAAE,MAAM,KAAKvzB,EAAE,CAAC,EAAE,cAAgBA,EAAE,MAAM,CAAC,CAAC,SAAS,EAAGy0E,EAAKz0E,GAAM,CAC/EkzJ,EAAElzJ,CAAC,IAAMqzE,EAAErzE,CAAC,EAAI,CAACqzE,EAAErzE,CAAC,EAAGqzE,EAAErzE,CAAC,GAAK43E,EAAE,MAAQ,GAAI,EAAE,iBAAkB53E,CAAC,IAAM43E,EAAE,MAAQ,GAAI,EAAE,iBAAkB53E,CAAC,GAC7G,EAAG46J,EAAM56J,GAAMA,IAAM,QAAUqzJ,GAAKrzJ,IAAM,UAAYszJ,GAAKC,GAAIr0J,EAAI,IAAM,CACvE80E,EAAE,OAAS,aAAaA,EAAE,KAAK,CACjC,EAAG5gE,EAAI,CAACpT,EAAGu1J,GAAI,GAAI7hF,IAAM,CACvB,MAAM8hF,GAAKD,GAAIrB,GAAKngF,GAAGshF,GAAKE,GAAI,CAAChiI,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EAAI,CAAC,CAACuzB,EAAE,MAAM,GAAGvzB,CAAC,WAAW,EACrF0B,EAAE,CAAC0hD,EAAEpjD,CAAC,EAAIq1J,GAAIr1J,CAAC,GAAK,EAClB,UAAUA,CAAC,GACX46J,EAAG56J,CAAC,EACFw1J,GAAG,CAAE,CAACx1J,CAAC,EAAG,CAACojD,EAAEpjD,CAAC,CAAC,EAAI,CAAE,CAACA,CAAC,EAAG,CAACuzB,EAAE,MAAM,GAAGvzB,CAAC,WAAW,CAAC,CAAE,CAC/D,CACA,EAAS,CAAC0zE,GAAG,UAAY7e,EAAE,MAAM,yBAA2Bmf,EAAE,MAAQ,WAAW,IAAM,CAC/E5gE,EAAEpT,EAAGu1J,EAAC,CACR,EAAG1gG,EAAE,MAAM,sBAAsB,EACnC,EAAGye,EAAKtzE,GAAMuzB,EAAE,MAAM,KAAOvzB,GAAKA,GAAK,GAAKiyD,EAAE,MAAQ,KAAOA,EAAE,MAAQ,KAAMyf,EAAE1xE,CAAC,GAAIm9B,EAAI,IAAM,CAC5F80B,EAAE,QAAU,MAAQA,EAAE,MAAQ,KAAM,EAAE,eAAgB7O,EAAE,MAAQ,EAAE,IAAM6O,EAAE,MAAQ,KAAM,EAAE,eAAgB7O,EAAE,MAAQ,EAAE,GAAIpgB,EAAE,eAAgBivB,EAAE,KAAK,CACrJ,EAAGmjG,EAAKp1J,GAAM,CACZqzE,EAAErzE,CAAC,EAAI,EACT,EAAGy1J,EAAI,CAACz1J,EAAGu1J,GAAG7hF,IAAM,CAClB,GAAI1zE,GAAKmI,EAAE,gBAAiB,CAC1B,MAAM,QAAQyhC,EAAE,MAAM2rH,EAAC,CAAC,EAAI3rH,EAAE,MAAM2rH,EAAC,EAAE7hF,CAAC,EAAI1zE,EAAI4pC,EAAE,MAAM2rH,EAAC,EAAI,CAACv1J,CAAC,EAC/D,MAAMw1J,GAAK5rH,EAAE,MAAM,OACjB,CAACyrH,GAAI2I,KAAOA,GAAG,IAAI,CAACC,GAAIC,KAAO,CAAC,GAAG7I,GAAG6I,EAAE,GAAK,GAAIF,GAAGE,EAAE,CAAC,CAAC,EACxD,EACV,EACQz8J,EAAE2hD,EAAE,kBAAkB,EAAG/4B,EAAE,QAAUmrI,GAAG,CAAC,EAAIA,GAAG,CAAC,EAAE,OAAOnrI,EAAE,KAAK,GAAI,EAAEmrI,GAAIpyG,EAAE,KAAK,CACpF,CACF,EAAGzgD,EAAI,CAAC3C,EAAGu1J,MAAO9gF,EAAEz0E,CAAC,EAAG,EAAE,UAAUA,CAAC,GAAIu1J,EAAC,GAC1C,OAAO93F,EAAE,CAAE,aAAc23F,CAAC,CAAE,EAAG,CAACp1J,EAAGu1J,KAAM71H,EAAEv3B,CAAC,EAAE,SAAW+qE,EAAE,GAAI,EAAE,GAAKW,IAAKtvD,EAAE,MAAOi5I,GAAI,EACrF3pF,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAG/I,GAAG,MAAO,CAAC1/E,EAAG8hF,MAAQ3hF,EAAC,EAAItvD,EAAE,MAAO,CACzD,IAAKixI,GACL,MAAOqF,GAAG1H,GAAG,KAAK,EAClB,eAAgBQ,GAAG,OAAS,CAACj0H,EAAEnM,CAAC,EAAE,cAClC,iBAAkBogI,GAAG,OAASj0H,EAAEnM,CAAC,EAAE,aAC3C,EAAS,CACDmgD,EAAE,WAAaG,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CACpC7jF,EAAE,MAAQ1E,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAC5CE,GAAG,GAAG,CAClB,EAAa,EAAE,EACf,EAAW,EAAE,IAAM9nF,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAChCX,EAAG,SAAU,CACX,QAAS,GACT,IAAMzF,IAAOI,EAAEJ,GAAIG,GAAI,CAAC,EACxB,KAAM,SACN,MAAOqF,GAAG,CACR,QAAS,GACT,mBAAoB,CAACn7H,EAAEnM,CAAC,EAAE,iBAC1B,0BAA2BmM,EAAEnM,CAAC,EAAE,iBAChC,sBAAuBmM,EAAEnM,CAAC,EAAE,iBAC5B,4BAA6B0gI,GAAG,MAAMvgF,EAAE,IAAI,EAC5C,gBAAiBkE,EAAE,KACjC,CAAa,EACD,eAAgB,GAAGlE,EAAE,IAAI,iBAAiBtwB,EAAE,KAAK,GACjD,aAAc1jB,EAAE8zC,CAAC,GAAG,eAAeE,EAAE,IAAI,EACzC,SAAU,IACV,UAAY2hF,IAAO31H,EAAEk0C,CAAC,EAAEyhF,GAAI,IAAMjiJ,EAAEsgE,EAAE,KAAM,GAAI,CAAE,SAAU,EAAE,CAAE,EAAG,EAAE,EACrE,QAAU2hF,IAAO31H,EAAEm1B,CAAC,EAAE,uBAAyB,OAASzhD,EAAEsgE,EAAE,KAAM,EAAE,EACpE,YAAc2hF,IAAO31H,EAAEm1B,CAAC,EAAE,uBAAyBzhD,EAAEsgE,EAAE,KAAM,EAAE,EAAI,OACnE,UAAWx0E,CACvB,EAAa,CACDwgC,EAAEnM,CAAC,EAAE,kBAAoBsgD,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC9Cz7J,EAAE,OAAO,oBAAoB,EAAIq3C,GAAGr3C,EAAE,OAAQ,qBAAsB,CAAE,IAAK,CAAC,CAAE,GAAK6zE,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CACxGlG,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIuF,EAAG,OAAQ,CAAE,MAAO,uCAAuC,EAAI,KAAM,EAAE,GACvFvF,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIuF,EAAG,OAAQ,CAAE,MAAO,yCAA2C,KAAM,EAAE,EACvG,EAAiB,EAAE,EACnB,EAAe,EAAE,IAAMjnF,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAChCz7J,EAAE,OAAO,UAAU,EAAIq3C,GAAGr3C,EAAE,OAAQ,WAAY,CAAE,IAAK,CAAC,CAAE,EAAIkzE,EAAE,GAAI,EAAE,EACtElzE,EAAE,OAAO,UAAU,EAAIkzE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE6xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,EAAe,EAAE,EACjB,EAAa,GAAImM,EAAE,EACT5C,EAAG,SAAU,CACX,QAAS,GACT,IAAMzF,IAAOI,EAAEJ,GAAIG,GAAI,CAAC,EACxB,KAAM,SACN,aAAc,GAAGnB,GAAG,MAAM3gF,EAAE,IAAI,EAAE,IAAI,IAAIh0C,EAAE8zC,CAAC,GAAG,cAAcE,EAAE,IAAI,CAAC,GACrE,MAAOmnF,GAAG,CACR,iBAAkB,GAClB,uBAAwB,CAACn7H,EAAEnM,CAAC,EAAE,iBAC9B,wBAAyBmM,EAAEnM,CAAC,EAAE,iBAC9B,mBAAoBugI,GAAG,MAAMpgF,EAAE,IAAI,EACnC,uBAAwB,CAACogF,GAAG,MAAMpgF,EAAE,IAAI,EACxC,gBAAiBkE,EAAE,KACjC,CAAa,EACD,SAAUl4C,EAAEo0C,CAAC,EAAEo/E,EAAEx/E,EAAE,IAAI,CAAC,EACxB,SAAU,IACV,eAAgB,GAAGA,EAAE,IAAI,uBAAuBtwB,EAAE,KAAK,GACvD,UAAYiyG,IAAO31H,EAAEk0C,CAAC,EAAEyhF,GAAI,IAAM5gF,EAAEf,EAAE,IAAI,EAAG,EAAE,EAC/C,QAAU2hF,IAAO5gF,EAAEf,EAAE,IAAI,CACrC,EAAa,CACD1zE,EAAE,OAAO0zE,EAAE,IAAI,EAAIr8B,GAAGr3C,EAAE,OAAQ0zE,EAAE,KAAM,CACtC,IAAK,EACL,KAAM2gF,GAAG,MAAM3gF,EAAE,IAAI,EAAE,KACvB,MAAO2gF,GAAG,MAAM3gF,EAAE,IAAI,EAAE,KACtC,CAAa,EAAIR,EAAE,GAAI,EAAE,EACblzE,EAAE,OAAO0zE,EAAE,IAAI,EAAIR,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CACrDE,GAAGC,GAAGvH,GAAG,MAAM3gF,EAAE,IAAI,EAAE,IAAI,EAAG,CAAC,CAC7C,EAAe,EAAE,EACjB,EAAa,GAAIkB,EAAE,EACTkmF,EAAG,SAAU,CACX,QAAS,GACT,IAAMzF,IAAOI,EAAEJ,GAAIG,GAAI,CAAC,EACxB,KAAM,SACN,MAAOqF,GAAG,CACR,QAAS,GACT,mBAAoB,CAACn7H,EAAEnM,CAAC,EAAE,iBAC1B,0BAA2BmM,EAAEnM,CAAC,EAAE,iBAChC,yBAA0BmM,EAAEnM,CAAC,EAAE,iBAC/B,4BAA6B0/C,GAAE,MAAMS,EAAE,IAAI,EAC3C,gBAAiBkE,EAAE,KACjC,CAAa,EACD,eAAgB,GAAGlE,EAAE,IAAI,iBAAiBtwB,EAAE,KAAK,GACjD,aAAc1jB,EAAE8zC,CAAC,GAAG,eAAeE,EAAE,IAAI,EACzC,SAAU,IACV,UAAY2hF,IAAO31H,EAAEk0C,CAAC,EAAEyhF,GAAI,IAAMjiJ,EAAEsgE,EAAE,KAAM,GAAI,CAAE,SAAU,EAAE,CAAE,EAAG,EAAE,EACrE,QAAU2hF,IAAO31H,EAAEm1B,CAAC,EAAE,uBAAyB,OAASzhD,EAAEsgE,EAAE,KAAM,EAAE,EACpE,YAAc2hF,IAAO31H,EAAEm1B,CAAC,EAAE,uBAAyBzhD,EAAEsgE,EAAE,KAAM,EAAE,EAAI,OACnE,UAAWx0E,CACvB,EAAa,CACDwgC,EAAEnM,CAAC,EAAE,kBAAoBsgD,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC9Cz7J,EAAE,OAAO,sBAAsB,EAAIq3C,GAAGr3C,EAAE,OAAQ,uBAAwB,CAAE,IAAK,CAAC,CAAE,GAAK6zE,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC5GlG,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIuF,EAAG,OAAQ,CAAE,MAAO,uCAAuC,EAAI,KAAM,EAAE,GACvFvF,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAIuF,EAAG,OAAQ,CAAE,MAAO,yCAA2C,KAAM,EAAE,EACvG,EAAiB,EAAE,EACnB,EAAe,EAAE,IAAMjnF,IAAKtvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAChCz7J,EAAE,OAAO,YAAY,EAAIq3C,GAAGr3C,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIkzE,EAAE,GAAI,EAAE,EAC1ElzE,EAAE,OAAO,YAAY,EAAIkzE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE8xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC7E,EAAe,EAAE,EACjB,EAAa,GAAImM,EAAE,CACnB,EAAW,EAAE,EACb,EAAS,GAAIF,EAAE,EAAE,EAAG,GAAG,GACjB/9H,EAAEnM,CAAC,EAAE,KAAO2/C,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAE,MAAOwwD,GAAI,CACzC/0E,EAAE,OAAO,cAAc,EAAIq3C,GAAGr3C,EAAE,OAAQ,eAAgB,CACtD,IAAK,EACL,OAAQm9B,EACR,MAAO80B,EAAE,KACnB,CAAS,EAAIihB,EAAE,GAAI,EAAE,EACblzE,EAAE,OAAO,cAAc,EAAIkzE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAE,SAAU,CACvD,IAAK,EACL,QAAS,aACT,IAAK8F,EACL,KAAM,SACN,MAAO,mBACP,KAAM,SACN,aAAcqV,EAAE8zC,CAAC,GAAG,WACpB,SAAU,IACV,eAAgBmgF,GAAG,MACnB,QAASx2H,EACT,UAAWo4H,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAK7hF,GAAMh0C,EAAEk0C,CAAC,EAAEF,EAAG,IAAMv2C,EAAC,EAAI,EAAE,EACjE,EAAWy+H,GAAG3pG,EAAE,KAAK,EAAG,GAAI2rG,EAAE,EAC9B,CAAO,IACA/pF,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAG/H,GAAG,MAAO,CAAC1gF,EAAG8hF,MAAQ3hF,EAAC,EAAIknF,GAAGzmF,GAAI,CACvD,IAAKkhF,GACL,KAAM91H,EAAE4xC,CAAC,EAAE+B,EAAEK,EAAE,IAAI,CAAC,EACpB,IAAKh0C,EAAE0zC,CAAC,CAChB,EAAS,CACD,QAASwpF,GAAG,IAAM,CAChBvpF,EAAEK,EAAE,IAAI,GAAKG,EAAC,EAAIknF,GAAG3mF,GAAI,CACvB,IAAK,EACL,MAAO+gE,EAAEzhE,EAAE,IAAI,EACf,UAAWh0C,EAAEv3B,CAAC,EAAE,WAAa,CAACu3B,EAAEm1B,CAAC,EAAE,cACnC,KAAM6e,EAAE,KACR,cAAeh0C,EAAE8zC,CAAC,EAClB,gBAAiB9zC,EAAE8zC,CAAC,EAAE,cAAcE,EAAE,IAAI,EAC1C,WAAa2hF,IAAO1yJ,EAAE+wE,EAAE,KAAM2hF,EAAE,EAChC,SAAWA,IAAO5gF,EAAEf,EAAE,IAAI,EAC1B,YAAa6hF,GAAE,CAAC,IAAMA,GAAE,CAAC,EAAKF,IAAOr1J,EAAE,MAAM,YAAY,EACrE,EAAa68J,GAAG,CACJ,cAAeD,GAAG,IAAM,CACtB58J,EAAE,OAAO,YAAY,EAAIq3C,GAAGr3C,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIkzE,EAAE,GAAI,EAAE,EAC1ElzE,EAAE,OAAO,YAAY,EAAIkzE,EAAE,GAAI,EAAE,GAAKW,IAAKknF,GAAGn4J,GAAG88B,EAAEnM,CAAC,EAAE,iBAAmBmM,EAAEuxH,EAAE,EAAIvxH,EAAE4xH,EAAE,CAAC,EAAG,CAAE,IAAK,CAAC,CAAE,EACjH,CAAa,EACD,EAAG,CACf,EAAa,CACDtxJ,EAAE,OAAO,GAAG0zE,EAAE,IAAI,gBAAgB,EAAI,CACpC,KAAM,OACN,GAAIkpF,GAAG,CAAC,CAAE,KAAMvH,EAAE,IAAO,CACvBh+G,GAAGr3C,EAAE,OAAQ,GAAG0zE,EAAE,IAAI,iBAAkB,CACtC,KAAM2hF,GAAG,KACT,MAAOA,GAAG,KAC5B,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,OACJr1J,EAAE,OAAO,GAAG0zE,EAAE,IAAI,iBAAiB,EAAI,CACrC,KAAM,SACN,GAAIkpF,GAAG,IAAM,CACXvlH,GAAGr3C,EAAE,OAAQ,GAAG0zE,EAAE,IAAI,kBAAmB,CACvC,OAAQ,IAAMe,EAAEf,EAAE,IAAI,CACxC,CAAiB,CACjB,CAAe,EACD,IAAK,GACnB,EAAgB,MAChB,CAAW,EAAG,KAAM,CAAC,QAAS,UAAW,OAAQ,cAAe,gBAAiB,aAAc,UAAU,CAAC,GAAKR,EAAE,GAAI,EAAE,CACvH,CAAS,EACD,EAAG,CACX,EAAS,KAAM,CAAC,OAAQ,KAAK,CAAC,EAAE,EAAG,GAAG,EACtC,CAAK,EACH,CACF,CAAC,EAAG2B,GAAK,CAAC,gBAAgB,EAAGspF,GAAK,CAAC,aAAc,UAAU,EAAGrpF,GAAK,CAAC,OAAQ,aAAc,UAAU,EAAGspF,GAAK,CAAC,YAAY,EAAGC,GAAqB3D,GAAG,CAClJ,OAAQ,aACR,MAAO,CACL,MAAO,GACP,QAAS,GACT,QAAS,GACT,oBAAqB,CAAE,KAAM,CAAC,SAAU,IAAI,CAAC,EAC7C,eAAgB,CAAE,KAAM,OAAO,EAC/B,aAAc,CAAE,KAAM,QAAQ,CAClC,EACE,MAAO,CAAC,eAAgB,iBAAkB,iBAAkB,QAAS,YAAY,EACjF,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,SAAU,EACV,WAAY3hD,EACZ,UAAWuB,EACX,SAAU,CAAE,WAAYggC,EAAG,UAAW76B,EAAG,OAAQqrE,EAAG,MAAOq/E,EAAG,WAAYh+F,CAAC,CACjF,EAAQi+F,GAAE,EAAI,CAAE,YAAar1J,CAAC,EAAKs1J,GAAE,EAAI,CAAE,aAAc,EAAG,gBAAiBx/H,CAAC,EAAKq/H,GAAE,EAAI,CAAE,YAAah/E,EAAG,cAAelC,CAAC,EAAKygF,GAAE,EAAI,CAAE,eAAgBr+E,EAAG,eAAgBL,CAAC,EAAKyhF,GAAE,EAAI,CAAE,sBAAuBvhF,CAAC,EAAKkoF,GAAE,EAAI,CAAE,SAAUvqF,CAAC,EAAKqjF,GAAE,EAAI,CAAE,SAAUvhF,CAAC,EAAKymF,GAAE,EAAIxmF,EAAIa,GAAE,EAAIjiB,EAAI0oG,GAAG,SAAS,EAAGtwI,EAAIswI,GAAG,aAAa,EAAG/wH,EAAI+wH,GAAG,cAAc,EAAG3mF,EAAI2mF,GAAG,UAAU,EAAG/iF,EAAIg6E,GAAG,EAAE,EACjXkI,GAAG,IAAM,CACP,EAAE,OAAO,EAAG,CAAC92J,EAAE,YAAcA,EAAE,gBAAkB4wE,EAAE,CAAC2nF,GAAGlxI,EAAE,KAAK,CAAC,EAAG,MAAM,EAAIqnD,EAAE,GAAI1uE,EAAE,UAAU,CAChG,CAAC,EACD,MAAM6wJ,EAAIn/E,EAAE,IAAMm+E,EAAE,MAAM,SAAW7vJ,EAAE,UAAYvF,EAAEgE,EAAE,KAAK,EAAI,EAAE,EAAGqyJ,GAAKlC,GAAG,EAAE,EAAGmC,GAAMO,IAAQ,CAC9F,MAAO,MAAM,QAAQlxG,EAAE,KAAK,EAAIA,EAAE,MAAMkxG,CAAE,EAAIlxG,EAAE,MAChD,QAAS,MAAM,QAAQA,EAAE,OAAO,EAAIA,EAAE,QAAQkxG,CAAE,EAAIlxG,EAAE,QACtD,QAAS,MAAM,QAAQA,EAAE,OAAO,EAAIA,EAAE,QAAQkxG,CAAE,EAAIlxG,EAAE,OAC5D,GAAQ4wG,GAAKt/E,EAAE,IAAM,CACf,MAAM4/E,EAAK,GACX,GAAIzB,EAAE,MAAM,QACV,QAAS0B,GAAK,EAAGA,GAAK,EAAGA,KACvBD,EAAG,KAAKP,GAAGQ,EAAE,CAAC,OAEhBD,EAAG,KAAKP,GAAG,CAAC,CAAC,EACf,OAAOO,CACT,CAAC,EAAGnhF,EAAI,CAACmhF,EAAIC,GAAK,GAAIpf,EAAI,KAAO,CAC/Bof,IAAM,EAAE,YAAY,EAAGT,GAAG,MAAQQ,EAAI,EAAE,iBAAkB,CAAE,KAAMA,EAAI,QAASjC,GAAG,IAAI,CAAE,EAAGrvJ,EAAE,iBAAmB0uE,EAAE4iF,CAAE,EAAG8B,GAAG,IAAM,CAC9HjhB,IAAM,IAAMnhE,EAAE,QAAQ,CAAC,GAAKA,EAAE,MAAM,CAAC,EAAE,aAAamhE,CAAC,CACvD,CAAC,CACH,EAAG8e,GAAKv/E,EAAE,KAAO,CACf,QAAS,GACT,WAAY,GACZ,kBAAmB1xE,EAAE,WAAa,CAACwwE,EAAE,MAAM,aACjD,EAAM,EAAGP,GAAI3B,EAAE+B,EAAG,YAAY,EAAG6gF,GAAK,CAACI,EAAIC,GAAIpf,IAAM0d,EAAE,MAAM,QAAU0B,KAAO,EAAI,CAACD,EAAIN,GAAG,MAAM,CAAC,EAAE7e,CAAC,CAAC,EAAI,CAAC6e,GAAG,MAAM,CAAC,EAAE7e,CAAC,EAAGmf,CAAE,EAAIA,EAAIvgF,GAAKugF,GAAO,CAC1I,EAAE,eAAgBA,CAAE,CACtB,EAAGnB,GAAMmB,GAAO,CACd,EAAE,iBAAkBA,CAAE,CACxB,EAAGX,GAAMW,GAAO,CACd,EAAE,iBAAkBA,CAAE,CACxB,EAAGlB,GAAK,IAAM,CACZ,GAAInhG,EAAE,OAAS,CAAC9pD,EAAE,MAAM,SAAW,CAACi7C,EAAE,eAAgB,CACpD,MAAMkxG,EAAK/gI,EAAE0+B,EAAE,KAAK,EACpBqiG,GAAMA,EAAG,MAAM,CAAE,cAAe,EAAE,CAAE,CACtC,CACF,EAAGF,GAAME,GAAO,CACd18E,EAAE,MAAQ,GAAI,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS08E,EAAI,CAC7D,EAAGD,GAAMC,GAAO,CACd18E,EAAE,MAAQ,GAAI,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS08E,EAAI,CAC7D,EACA,OAAO72F,EAAE,CAAE,iBAAkB0V,EAAG,EAAG,CAACmhF,EAAIC,MAAQ1gF,IAAKtvD,EAAE,MAAO,CAC5D,MAAO,cACP,iBAAkBmb,EAAE0zC,CAAC,CAC3B,EAAO,CACD,CAAC1zC,EAAE18B,CAAC,EAAE,YAAc,CAAC08B,EAAEm1B,CAAC,EAAE,iBAAmBunG,IAAIvoF,IAAKtvD,EAAE,SAAU,CAChE,IAAK,EACL,IAAK,cACL,KAAM,SACN,MAAOs2I,GAAG,CAAE,GAAG5G,GAAG,MAAO,gBAAiBH,GAAG,MAAO,EACpD,aAAcp0H,EAAEsD,CAAC,GAAG,eACpB,SAAU,EAAE,eAAiB,OAAS,EACtC,eAAgB,uBAChB,UAAWuxH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKpf,GAAMz1G,EAAE,CAAC,EAAEy1G,EAAG,IAAMhiE,EAAE,EAAE,CAAC,GACvD,QAASohF,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKpf,GAAMhiE,EAAE,EAAE,EAC9C,EAAS,CACDmhF,EAAG,OAAO,YAAY,EAAIj9G,GAAGi9G,EAAG,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIphF,EAAE,GAAI,EAAE,EAC5EohF,EAAG,OAAO,YAAY,EAAIphF,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE4xH,EAAE,EAAG,CAAE,IAAK,EAAG,EACxE,EAAS,GAAI6M,EAAE,GAAI,CACX,CAAC9B,GAAI,CAAC38H,EAAEi0C,CAAC,EAAE,MAAM,CAAC,CAC1B,CAAO,EAAIT,EAAE,GAAI,EAAE,EACb+nF,GAAG3mF,GAAI,CACL,KAAM50C,EAAEo0C,CAAC,EAAEggF,GAAG,KAAK,EACnB,IAAKp0H,EAAE+zC,CAAC,GAAK,CAAC/zC,EAAEm1B,CAAC,EAAE,gBAC3B,EAAS,CACD,QAAS+nG,GAAG,IAAM,CAChB9I,GAAG,OAASp0H,EAAE18B,CAAC,EAAE,YAAc08B,EAAEm1B,CAAC,EAAE,kBAAoBgf,IAAKtvD,EAAE,MAAO,CACpE,IAAK,EACL,IAAK,UACL,KAAMmb,EAAEm1B,CAAC,EAAE,iBAAmB,OAAS,SACvC,MAAOgmG,GAAG,CACR,YAAa,CAACn7H,EAAEm1B,CAAC,EAAE,iBACnB,uBAAwB,CAACn1B,EAAE18B,CAAC,EAAE,YAAc,CAAC08B,EAAEm1B,CAAC,EAAE,iBAClD,uBAAwBn1B,EAAE18B,CAAC,EAAE,UAC3C,CAAa,EACD,MAAO04J,GAAGh8H,EAAE18B,CAAC,EAAE,WAAa,CAAE,OAAQ,GAAG08B,EAAE8zC,CAAC,EAAE,UAAU,IAAI,EAAK,MAAM,EACvE,aAAc9zC,EAAEsD,CAAC,GAAG,WACpB,SAAUtD,EAAEm1B,CAAC,EAAE,iBAAmB,OAAS,CACvD,EAAa,CACDimG,EAAG,MAAO,CACR,MAAOD,GACLn7H,EAAEm1B,CAAC,EAAE,iBAAmB,mCAAqC,4EAC7E,EACc,MAAO,CAAE,QAAS,MAAM,CACtC,EAAe,CACDy/F,EAAG,OAAO,qBAAqB,EAAIj9G,GAAGi9G,EAAG,OAAQ,sBAAuB,CACtE,IAAK,EACL,MAAO,EAAE,MACT,QAAS,EAAE,QACX,QAAS,EAAE,QACX,SAAUvgF,GACV,WAAYo/E,GACZ,WAAYQ,EAC5B,CAAe,EAAIzgF,EAAE,GAAI,EAAE,EACbohF,EAAG,OAAO,qBAAqB,EAAIphF,EAAE,GAAI,EAAE,GAAKW,IAAKtvD,EAAE,MAAO,CAC5D,IAAK,EACL,MAAOs2I,GAAGn7H,EAAEm1B,CAAC,EAAE,iBAAmB,WAAa,8BAA8B,CAC7F,EAAiB,EACAgf,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGnI,GAAG,MAAO,CAAC7e,EAAG2gB,IAAOsG,IAAIvoF,IAAKknF,GAAG8C,GAAIt/H,GAAG,CAAE,IAAKu3H,GAAM,CAAE,QAAS,EAAE,EAAI,CAC3F,MAAOA,EACP,MAAO3gB,EAAE,MACT,QAASA,EAAE,QACX,QAASA,EAAE,QACX,mBAAoBvrG,EAAE,MACtB,oBAAqB,EAAE,oBACvB,SAAUksH,IAAO,EAAIp2H,EAAEmzH,CAAC,EAAE,WAAanzH,EAAEmzH,CAAC,EAAE,QAC9D,EAAmB,CACD,QAAS,GACT,IAAK,WACL,gBAAiB,CAAC+C,EAAIl0J,IAAM,EAAE,aAAak0J,EAAI1B,GAAGxyJ,EAAGo0J,EAAIF,CAAE,CAAC,EAC5D,iBAAmBA,GAAO7hF,GAAEmgF,GAAG0B,EAAIE,EAAI,OAAO,CAAC,EAC/C,mBAAqBF,GAAOzC,GAAGe,GAAG0B,EAAIE,EAAI,SAAS,CAAC,EACpD,mBAAqBF,GAAOjC,GAAGO,GAAG0B,EAAIE,EAAI,SAAS,CAAC,EACpD,UAAW1C,GACX,gBAAiBgB,GACjB,gBAAiBC,EACnC,CAAiB,EAAGwI,GAAG,CAAE,EAAG,CAAC,EAAI,CACfV,GAAGz8H,EAAEuzC,EAAC,EAAG,CAAC2iF,EAAIl0J,KAAO,CACnB,KAAMk0J,EACN,GAAIgH,GAAI1J,GAAM,CACZ77G,GAAGi9G,EAAG,OAAQsB,EAAIr3H,GAAG,CAAE,QAAS,EAAE,EAAI20H,CAAC,CAAC,CAC9D,CAAqB,CACrB,EAAoB,CACpB,CAAiB,EAAG,KAAM,CAAC,gBAAiB,iBAAkB,mBAAoB,kBAAkB,CAAC,GAAI,CACvF,CAACmJ,GAAIvG,IAAO,EAAI,GAAKjC,EAAE,KAAK,CAC9C,CAAiB,CAAC,EAAG,GAAG,EACxB,EAAiB,CAAC,GACJ,CAACn0H,EAAE18B,CAAC,EAAE,YAAc,CAAC08B,EAAEm1B,CAAC,EAAE,iBAAmBunG,IAAIvoF,IAAKtvD,EAAE,SAAU,CAChE,IAAK,EACL,IAAK,eACL,KAAM,SACN,MAAOs2I,GAAG,CAAE,GAAG5G,GAAG,MAAO,gBAAiBr8E,EAAE,MAAO,EACnD,aAAcl4C,EAAEsD,CAAC,GAAG,gBACpB,SAAU,IACV,UAAWuxH,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKpf,GAAMz1G,EAAE,CAAC,EAAEy1G,EAAG,IAAMhiE,EAAE,EAAE,CAAC,GACvD,QAASohF,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKpf,GAAMhiE,EAAE,EAAE,EACtD,EAAiB,CACDmhF,EAAG,OAAO,eAAe,EAAIj9G,GAAGi9G,EAAG,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIphF,EAAE,GAAI,EAAE,EAClFohF,EAAG,OAAO,eAAe,EAAIphF,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAEuxH,EAAE,EAAG,CAAE,IAAK,EAAG,EACnF,EAAiB,GAAImN,EAAE,GAAI,CACX,CAAC/B,GAAI,CAAC38H,EAAEi0C,CAAC,EAAE,MAAM,CAAC,CAClC,CAAe,EAAIT,EAAE,GAAI,EAAE,CAC3B,EAAe,CAAC,CAChB,EAAa,GAAI4B,EAAE,GAAK5B,EAAE,GAAI,EAAE,CAChC,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC3B,EAAO,EAAG2B,EAAE,EACV,CACF,CAAC,EAAGypF,GAAM,GAAM,CACd,KAAM,CACJ,QAAS7gG,EACT,WAAY7zC,EACZ,KAAM,EACN,UAAWw5B,EACX,SAAU,CAAE,MAAO,EAAG,WAAY3hD,CAAC,CACvC,EAAMqxJ,GAAE,EAAI,CAAE,YAAa9vJ,EAAG,QAASggC,GAAM+vH,KAAM5qJ,EAAI,CAACkrE,EAAGphB,IAAM,MAAM,QAAQ,EAAEohB,CAAC,CAAC,EAAI,EAAEA,CAAC,EAAEphB,CAAC,EAAI,EAAEohB,CAAC,EAAGG,EAAKH,GAAM5xE,EAAE,MAAM,cAAgB,MAAM,QAAQ,EAAE,OAAO,EAAI,EAAE,QAAQ4xE,CAAC,EAAI,EAAE,QAAU,EAAGw/E,EAAI,CAACx/E,EAAGphB,IAAMohB,EAAIrwC,EACjNivB,IAAM,OAAS,CAAE,MAAO9pD,EAAE,QAAS8pD,CAAC,EAAG,QAAS9pD,EAAE,UAAW8pD,CAAC,EAAG,QAASuhB,EAAEvhB,CAAC,CAAC,EAAK,CAAE,MAAO,EAAE,MAAO,QAAS,EAAE,QAAS,QAASuhB,EAAC,CAAE,EACrIH,CACJ,EAAMkrF,GAAG9gG,EAAC,EAAI+V,EAAEvhB,CAAC,CAAC,EAAG4C,EAAI,CAACwe,EAAGphB,IAAM,CAC/B,EAAEohB,CAAC,EAAIphB,CACT,EAAGx0D,EAAIi3E,EAAE,IAAMtxB,EAAE,WAAa,EAAE,MAAM,QAAU,MAAM,QAAQx5B,EAAE,KAAK,EAAIA,EAAE,MAAM,OAAS,EAAI,GAAK,EAAE,MAAM,OAAO,EAAG,EAAI,CAACypD,EAAGphB,IAAM,CACjI,MAAM5nC,EAAI,OAAO,YACf,OAAO,KAAK,CAAC,EAAE,IAAKuf,GAAMA,IAAMypC,EAAI,CAACzpC,EAAGqoB,CAAC,EAAI,CAACroB,EAAG,EAAEA,CAAC,CAAC,EAAE,MAAK,CAAE,CACpE,EACI,GAAInsC,EAAE,OAAS,CAAC,EAAE,MAAM,2BAA4B,CAClD,MAAMmsC,EAAKguC,GAAMhuD,EAAE,MAAQoZ,EACzB,CACE,MAAO3Y,EAAE,MAAMutD,CAAC,EAChB,QAASvtD,EAAE,QAAQutD,CAAC,EACpB,QAASvtD,EAAE,QAAQutD,CAAC,CAC9B,EACQhuD,EAAE,MAAMguD,CAAC,CACjB,EAAU,KAAM5D,EAAK4D,GAAM4mF,GAAG50I,EAAE,MAAMguD,CAAC,EAAG,CAAC,EACrC,MAAO,EAAE50E,EAAE4mC,EAAE,CAAC,EAAGA,EAAE,CAAC,CAAC,IAAMosH,GAAGpsH,EAAE,CAAC,EAAGoqC,EAAE,CAAC,CAAC,GAAK+hF,GAAGnsH,EAAE,CAAC,EAAGoqC,EAAE,CAAC,CAAC,GAC5D,CACA,MAAO,EACT,EAAGzgD,EAAI,CAAC8/C,EAAGphB,IAAM,CACf,EAAEohB,EAAGphB,CAAC,IAAM4C,EAAEwe,EAAGphB,CAAC,EAAG,GAAK,IAC5B,EAAG2hB,EAAKP,GAAM,CACZ9/C,EAAE,QAAS8/C,CAAC,CACd,EAAG3B,EAAK2B,GAAM,CACZ9/C,EAAE,UAAW8/C,CAAC,CAChB,EAAGS,EAAKT,GAAM,CACZ9/C,EAAE,UAAW8/C,CAAC,CAChB,EAAGI,EAAI,CAACJ,EAAGphB,IAAM,CACf2hB,EAAEP,EAAE,KAAK,EAAG3B,EAAE2B,EAAE,OAAO,EAAGS,EAAET,EAAE,OAAO,EAAGzpD,EAAE,OAASqoC,EAAEroC,EAAE,KAAK,CAC9D,EAAG+pD,EAAKN,GAAM,CACZ,GAAIA,EAAG,CACL,MAAMphB,EAAI,MAAM,QAAQohB,CAAC,EAAGhpD,EAAI4nC,EAAI,CAAC,CAACohB,EAAE,CAAC,EAAE,MAAO,CAACA,EAAE,CAAC,EAAE,KAAK,EAAI,CAACA,EAAE,MAAOzpC,EAAIqoB,EAAI,CAAC,CAACohB,EAAE,CAAC,EAAE,QAAS,CAACA,EAAE,CAAC,EAAE,OAAO,EAAI,CAACA,EAAE,QAASW,EAAI/hB,EAAI,CAAC,EAAEohB,EAAE,CAAC,EAAE,SAAW,GAAI,EAAEA,EAAE,CAAC,EAAE,SAAW,EAAE,EAAI,EAAEA,EAAE,SAAW,GACtMxe,EAAE,QAASxqC,CAAC,EAAGwqC,EAAE,UAAWjrB,CAAC,EAAGnoC,EAAE,MAAM,eAAiBozD,EAAE,UAAWmf,CAAC,CACzE,CACF,EAAG1C,EAAI,CAAC+B,EAAGphB,IAAM,CACf,MAAM5nC,EAAI,CACR,MAAO,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAMgpD,CAAC,EAAI,EAAE,MAC/C,YAAa,EACnB,EACI,OAAQphB,GAAKA,IAAM,KAAO5nC,EAAE,MAAQ4nC,GAAI,MAAM,QAAQ7O,EAAE,aAAa,IAAM/4B,EAAE,YAAc,EAAE,MAAM,SAAW,MAAM,QAAQ+4B,EAAE,cAAciwB,CAAC,CAAC,EAAIjwB,EAAE,cAAciwB,CAAC,EAAIjwB,EAAE,eAAgB/4B,CAC3L,EAAG+oD,EAAIsB,EAAE,IAAM,CAACrB,EAAGphB,IAAM,CACvB,GAAI,MAAM,QAAQ7O,EAAE,aAAa,EAAG,CAClC,KAAM,CAAE,YAAa/4B,EAAG,MAAOuf,CAAC,EAAK0nC,EAAE+B,EAAGphB,CAAC,EAAG+hB,EAAI3pD,EAAE,OAAQutD,GAAM,CAACA,EAAE,QAAUhuC,CAAC,EAChF,OAAOoqC,EAAE,CAAC,GAAG,UAAY,IAAM,CAAE,MAAO,CAACpqC,CAAC,EAAG,QAAS,OAAQ,QAAS,MAAM,EAAK,CAChF,MAAO,GACP,QAASoqC,GAAG,IAAK4D,GAAM,CAACA,EAAE,OAAO,GAAK,GACtC,QAAS5D,GAAG,IAAK4D,GAAMA,EAAE,QAAU,CAACA,EAAE,QAAU,MAAM,GAAK,EACnE,CACI,CACA,MAAO,CAAE,MAAO,GAAI,QAAS,GAAI,QAAS,EAAE,CAC9C,CAAC,EACD,MAAO,CACL,WAAY/iB,EACZ,YAAa+e,EACb,cAAelC,EACf,cAAeoC,EACf,eAAgB++E,EAChB,iBAAkBp/E,EAClB,gBAAiBD,EACjB,gBAAiBG,EACjB,aAAc,EACd,oBAAqBP,CACzB,CACA,EAAGqrF,GAAM,GAAM,CACb,KAAM,CACJ,QAAShhG,EACT,KAAM7zC,EACN,WAAY,EACZ,MAAOw5B,EACP,SAAU,CAAE,UAAW,EAAG,MAAO3hD,EAAG,WAAYuB,CAAC,CACrD,EAAM8vJ,GAAE,EAAI,CAAE,WAAY9vH,CAAC,EAAK+vH,GAAE,EAChCoC,GAAG,IAAM,CACP/xG,EAAE,iBAAmBkuB,EAAC,CACxB,CAAC,EACD,KAAM,CAAE,iBAAkBnpE,EAAG,eAAgBqrE,EAAG,WAAYq/E,EAAG,gBAAiBh+F,EAAG,oBAAqBp3D,EAAG,aAAc,CAAC,EAAK6gK,GAAG/qI,CAAC,EACnI,SAASA,GAAI,CACX,EAAE,kBAAkB,CACtB,CACA,MAAMqgD,EAAK3hB,GAAM,CACf,KAAM,CAAE,MAAO5nC,EAAG,QAASuf,EAAG,QAAS,CAAC,EAAKqoB,EAC7C,MAAO,CAAE,MAAO,CAAC5nC,EAAG,QAAS,CAACuf,EAAG,QAAS,EAAI,CAAC,EAAI,CAAC,CACtD,EAAG8nC,EAAI,IAAM,CACX,GAAI1uE,EAAE,MAAM,UAAW,CACrB,GAAI,MAAM,QAAQA,EAAE,MAAM,SAAS,EAAG,CACpC,MAAMqnB,EAAIupD,EAAE5wE,EAAE,MAAM,UAAU,CAAC,CAAC,EAAG4mC,EAAIgqC,EAAE5wE,EAAE,MAAM,UAAU,CAAC,CAAC,EAC7D,MAAO,CAAC4wJ,GAAGn2F,IAAKpzC,CAAC,EAAGupI,GAAGn2F,IAAK7zB,CAAC,CAAC,CAChC,CACA,MAAMqoB,EAAI2hB,EAAE5wE,EAAE,MAAM,SAAS,EAC7B,OAAO4wJ,GAAGn2F,EAAC,EAAIxL,CAAC,CAClB,CACA,OAAOxwD,EAAE,MAAM,QAAU,CAAC,KAAM,IAAI,EAAI,IAC1C,EAAGqyE,EAAI,IAAM,CACX,GAAIryE,EAAE,MAAM,QAAS,CACnB,KAAM,CAACwwD,EAAG5nC,CAAC,EAAIqnD,EAAC,EAChB,EAAE,MAAQ,CAAC8B,EAAEvhB,EAAG,CAAC,EAAGuhB,EAAEnpD,EAAG,CAAC,CAAC,CAC7B,MACE,EAAE,MAAQmpD,EAAE9B,GAAG,CACnB,EAAG+B,EAAKxhB,GAAM,MAAM,QAAQA,CAAC,EAAI,CAACjvB,EAAEy6B,EAAExL,EAAE,CAAC,CAAC,CAAC,EAAGjvB,EAAEy6B,EAAExL,EAAE,CAAC,CAAC,CAAC,CAAC,EAAI,CAACjvB,EAAEivB,GAAKwL,EAAC,CAAE,CAAC,EAAGkW,EAAI,CAAC1hB,EAAG5nC,EAAGuf,IAAM,CAC1FipH,EAAE,QAAS5gG,CAAC,EAAG4gG,EAAE,UAAWxoI,CAAC,EAAGwoI,EAAE,UAAW7vJ,EAAE,MAAM,cAAgB4mC,EAAI,CAAC,CAC5E,EAAG0nC,EAAI,IAAM,CACX,KAAM,CAACrf,EAAG5nC,CAAC,EAAIopD,EAAE,EAAE,KAAK,EACxB,OAAOhyE,EAAE,MAAM,QAAUkyE,EACvB,CAAC1hB,EAAE,MAAO5nC,EAAE,KAAK,EACjB,CAAC4nC,EAAE,QAAS5nC,EAAE,OAAO,EACrB,CAAC4nC,EAAE,QAAS5nC,EAAE,OAAO,CAC3B,EAAQspD,EAAE1hB,EAAE,MAAOA,EAAE,QAASA,EAAE,OAAO,CACrC,EACA6nG,GAAG,KAAOjlG,EAAE,EAAE,KAAK,EAAG,EAAE,MAAQyc,EAAC,EAAKwC,EAAC,EAAG,EAC1C,MAAMV,EAAI,IAAM,CACd,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAQ,EAAE,MAAM,IAAI,CAACnhB,EAAG5nC,IAAM4nC,GAAKuhB,EAAEvhB,EAAG5nC,CAAC,CAAC,EAAI,EAAE,MAAQmpD,EAAE,EAAE,KAAK,EAAG,EAAE,aAAa,CAChH,EACA,MAAO,CACL,WAAY,EACZ,KAAM5pD,EACN,oBAAqBnsB,EACrB,aAAc,EACd,WAAaw0D,GAAM,CACjB9pD,EAAE8pD,EAAGmhB,CAAC,CACR,CACJ,CACA,EAAGsrF,GAAqBhE,GAAG,CACzB,OAAQ,iBACR,MAAO,CACL,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,GACb,eAAgB,CAAE,KAAM,OAAO,CACnC,EACE,MAAO,CAAC,cAAe,QAAS,aAAc,kBAAkB,EAChE,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI8wB,GAAE,EAAI,CAAE,SAAU,CAAC,EAAKygF,GAAE,EAAIlzJ,EAAI,EAAE2hD,EAAG,YAAY,EAAGpgD,EAAI23J,GAAG,YAAY,EAAG,CAAE,KAAM33H,EAAG,WAAY76B,EAAG,oBAAqBqrE,EAAG,WAAYq/E,EAAG,aAAch+F,CAAC,EAAK4pG,GAAG,CAAC,EACtL,OAAO3E,GAAG,IAAM,CACd,EAAE,OAAO,CACX,CAAC,EAAGr8F,EAAE,CAAE,gBAAiB,KAAO,CAC9B,WAAYt1D,EACZ,KAAM66B,EACN,WAAY6vH,CAClB,GAAQ,iBAAkB,CAACt/H,EAAGqgD,EAAI,GAAIlC,EAAI,KAAO,CAC3C1uE,EAAE,OAAO,iBAAiBuwB,EAAGqgD,EAAGlC,CAAC,CACnC,CAAC,CAAE,EAAG,CAACn+C,EAAGqgD,KAAOC,EAAC,EAAIknF,GAAGwB,GAAI,CAC3B,kBAAmB,EACnB,QAAS,EACf,EAAO,CACD,QAASK,GAAG,CAAC,CAAE,UAAWlrF,CAAC,IAAO,CAChCopF,EAAG,MAAO,CACR,MAAOD,GAAGnpF,CAAC,CACrB,EAAW,CACDupF,GAAGoD,GAAI9/H,GAAG,CAAE,IAAK,YAAY,EAAIhL,EAAE,OAAQ,CACzC,MAAOmM,EAAEsD,CAAC,EAAE,MACZ,QAAStD,EAAEsD,CAAC,EAAE,QACd,QAAStD,EAAEsD,CAAC,EAAE,QACd,wBAAyBtD,EAAE8zC,CAAC,EAC5B,gBAAiB9zC,EAAEm1B,CAAC,EACpB,iBAAkB+e,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKE,GAAMp0C,EAAEmzH,CAAC,EAAE,CAAE,MAAO/+E,EAAG,QAASp0C,EAAEsD,CAAC,EAAE,QAAS,QAAStD,EAAEsD,CAAC,EAAE,OAAO,CAAE,GACxG,mBAAoB4wC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKE,GAAMp0C,EAAEmzH,CAAC,EAAE,CAAE,MAAOnzH,EAAEsD,CAAC,EAAE,MAAO,QAAS8wC,EAAG,QAASp0C,EAAEsD,CAAC,EAAE,OAAO,CAAE,GACxG,mBAAoB4wC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKE,GAAMp0C,EAAEmzH,CAAC,EAAE,CAAE,MAAOnzH,EAAEsD,CAAC,EAAE,MAAO,QAAStD,EAAEsD,CAAC,EAAE,QAAS,QAAS8wC,CAAC,CAAE,GACxG,YAAaF,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKE,GAAMvgD,EAAE,MAAM,YAAY,EACpE,CAAW,EAAGspI,GAAG,CAAE,EAAG,CAAC,EAAI,CACfV,GAAGz8H,EAAEj+B,CAAC,EAAG,CAACqyE,EAAGL,KAAO,CAClB,KAAMK,EACN,GAAI8oF,GAAIjpF,GAAM,CACZt8B,GAAG9jB,EAAE,OAAQugD,EAAG0nF,GAAGmD,GAAGhrF,CAAC,CAAC,CAAC,CACzC,CAAe,CACf,EAAc,CACd,CAAW,EAAG,KAAM,CAAC,QAAS,UAAW,UAAW,wBAAyB,eAAe,CAAC,CAC7F,EAAW,CAAC,CACZ,CAAO,EACD,EAAG,CACT,CAAK,EACH,CACF,CAAC,EAAGirF,GAAK,CAAC,EAAGnhG,IAAM,CACjB,KAAM,CACJ,QAAS7zC,EACT,UAAW,EACX,SAAU,CAAE,QAASw5B,CAAC,CAC1B,EAAM0vG,GAAE,EAAI,CAAE,yBAA0B,EAAG,kBAAmBrxJ,CAAC,EAAKkxJ,GAAE,EAAI3vJ,EAAI,CAAC6xD,EAAGp3D,IAAM,CACpF,IAAI,EAAIo3D,EACR,OAAOzR,EAAE,MAAM,OAAO,SAASowG,GAAG,CAAC,CAAC,GAAK,EAAI/1J,EAAIo4J,GAAGhhG,EAAG,CAAC,EAAI2f,GAAG3f,EAAG,CAAC,EAAG7xD,EAAE,EAAGvF,CAAC,GAAK,CACnF,EAAGulC,EAAI,CAAC6xB,EAAGp3D,IAAM,CACf,IAAI,EAAIo3D,EACR,OAAOzR,EAAE,MAAM,MAAM,SAASqwG,GAAG,CAAC,CAAC,GAAK,EAAIh2J,EAAIw/J,GAAGpoG,EAAG,CAAC,EAAIqoG,GAAGroG,EAAG,CAAC,EAAG7xB,EAAE,EAAGvlC,CAAC,GAAK,CAClF,EAAG0K,EAAI,CAAC0sD,EAAGp3D,EAAI,KAAO,CACpB,MAAM,EAAIm2J,GAAGhqI,EAAC,EAAI,CAAE,MAAO,EAAE,MAAO,KAAM,EAAE,IAAI,CAAE,EAClD,IAAI2J,EAAIshC,EAAIghG,GAAG,EAAG,CAAC,EAAIrhF,GAAG,EAAG,CAAC,EAC9B,EAAE,oBAAsBjhD,EAAImgI,GAAGngI,EAAG,EAAE,IAAI,GACxC,IAAIqgD,EAAI4/E,GAAGjgI,CAAC,EAAGm+C,EAAI+hF,GAAGlgI,CAAC,EACvB6vB,EAAE,MAAM,OAAO,SAASwwB,CAAC,IAAMrgD,EAAIvwB,EAAEuwB,EAAGshC,CAAC,EAAG+e,EAAI4/E,GAAGjgI,CAAC,EAAGm+C,EAAI+hF,GAAGlgI,CAAC,GAAI6vB,EAAE,MAAM,MAAM,SAASsuB,CAAC,IAAMn+C,EAAIyP,EAAEzP,EAAGshC,CAAC,EAAG6c,EAAI+hF,GAAGlgI,CAAC,GAAI,EAAEqgD,EAAGlC,EAAG7c,EAAG,EAAE,uBAAuB,GAAK2e,EAAEI,EAAGlC,EAAGj0E,CAAC,CAC9K,EAAG+1E,EAAI,CAAC3e,EAAGp3D,EAAG,IAAM,CAClBggE,EAAE,oBAAqB,CAAE,MAAO5I,EAAG,KAAMp3D,EAAG,QAAS,EAAG,CAC1D,EAAGo1J,EAAIn+E,EAAE,IAAO7f,GAAMpzD,EACpBmyJ,GAAGhqI,IAAK,CAAE,MAAO,EAAE,MAAO,KAAM,EAAE,KAAM,EACxC,EAAE,wBACFirC,CACJ,CAAG,EACD,MAAO,CAAE,sBAAuB1sD,EAAG,WAAY0qJ,EAAG,gBAAiBr/E,CAAC,CACtE,EAAGqrF,GAAK,CAAE,MAAO,iBAAiB,EAAIC,GAAK,CACzC,IAAK,EACL,MAAO,qBACT,EAAGC,GAAK,CAAE,IAAK,CAAC,EAAIC,GAAK,CAAE,MAAO,qBAAqB,EAAIC,GAAK,CAAC,kBAAmB,aAAc,eAAgB,UAAW,WAAW,EAAGC,GAAqBxE,GAAG,CACjK,OAAQ,WACR,MAAO,CACL,MAAO,GACP,KAAM,GACN,SAAU,GACV,MAAO,GACP,OAAQ,GACR,YAAa,EACjB,EACE,MAAO,CAAC,QAAS,aAAc,mBAAmB,EAClD,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,SAAU,EACV,UAAW3hD,EACX,WAAYuB,EACZ,SAAU,CAAE,WAAYggC,EAAG,QAAS76B,EAAG,OAAQqrE,EAAG,UAAWq/E,EAAG,UAAWh+F,EAAG,GAAIp3D,CAAC,CACzF,EAAQq1J,GAAE,EAAI,CAAE,eAAgB,EAAG,eAAgBv/H,CAAC,EAAK2hI,KAAM,CAAE,aAActhF,EAAG,cAAelC,GAAMmqF,GAAE,EAAI,CAAE,YAAa/nF,CAAC,EAAKq+E,GAAE,EAAI,CAAE,sBAAuB1+E,EAAG,WAAYE,EAAG,gBAAiBrC,CAAC,EAAKstF,GAAGx7G,EAAG,CAAC,EAAG,CAAE,YAAagwB,EAAG,YAAaC,EAAG,gBAAiBphB,EAAG,gBAAiB5nC,EAAG,mBAAoBuf,EAAG,oBAAqBoqC,CAAC,EAAK++E,GAAE,EAAI,CAAE,aAAcn7E,CAAC,EAAKg7E,KAAM,CAAE,WAAYiB,CAAC,EAAKb,GAAE,EAAI,CAAE,iBAAkBc,IAAOnB,KAAM,CAAE,kBAAmBoB,EAAE,EAAKmG,GAAE,EAAIlG,GAAKpC,GAAG,EAAE,EAAGz+E,EAAIy+E,GAAG,EAAE,EAAGqC,GAAKrC,GAAG,EAAE,EAAG3+E,GAAI2+E,GAAG,CAAC,KAAM,KAAM,KAAM,IAAI,CAAC,EAChhBkI,GAAG,IAAM,CACP,EAAE,OAAO,CACX,CAAC,EACD,MAAM5F,GAAMz/E,IAAO,CACjB,IAAK,IAAMrxB,EAAEqxB,CAAC,EACd,IAAMmmF,GAAO,CACX,MAAM17J,EAAIu1E,IAAM29E,GAAG,MAAQA,GAAG,KAAOA,GAAG,MACxC,EAAE,oBAAqB,CAAE,CAAC39E,CAAC,EAAGmmF,EAAI,CAAC17J,CAAC,EAAGkkD,EAAElkD,CAAC,CAAC,CAAE,EAAGu1E,IAAM29E,GAAG,MAAQmC,GAAG,EAAE,EAAIpf,EAAE,EAAE,CAChF,CACN,GAAQphE,GAAIW,EAAEw/E,GAAG9B,GAAG,KAAK,CAAC,EAAGe,GAAKz+E,EAAEw/E,GAAG9B,GAAG,IAAI,CAAC,EAAGuB,GAAKj/E,EAAE,IAAOD,IAAO,CACjE,MAAOrxB,EAAE,MACT,KAAMA,EAAE,KACR,MAAOqxB,IAAM29E,GAAG,MAAQhvG,EAAE,OAASA,EAAE,MACrC,SAAUA,EAAE,SACZ,gBAAiBkuB,EACjB,OAAQmD,IAAM29E,GAAG,MAAQmC,GAAKpf,CACpC,EAAM,EAAGie,GAAK1+E,EAAE,IACAtxB,EAAE,OAAO,KAAMw3G,GAAOA,EAAG,QAAUx3G,EAAE,KAAK,GACxC,CAAE,KAAM,GAAI,MAAO,CAAC,CACjC,EAAGgxG,GAAK1/E,EAAE,IAAMrqD,EAAE+4B,EAAE,OAASqxB,GAAM,CAClC,MAAMmmF,EAAKx3G,EAAE,QAAUqxB,EAAE,MAAOv1E,EAAI40J,GAClCr/E,EAAE,MACFpB,EAAEjwB,EAAE,KAAMyR,EAAE,MAAM,OAAO,EACzBue,EAAEhwB,EAAE,KAAMyR,EAAE,MAAM,OAAO,CACjC,GAAW1sD,EAAE,MAAM,OAAO,SAASssE,EAAE,KAAK,EAAGrhE,EAAI4gE,EAAE6+E,EAAE,MAAOp+E,EAAE,MAAOrxB,EAAE,IAAI,EACrE,MAAO,CAAE,OAAQw3G,EAAI,SAAU17J,EAAG,YAAakU,CAAC,CAClD,CAAC,CAAC,EAAGihJ,GAAK3/E,EAAE,IAAMrqD,EAAE+4B,EAAE,MAAQqxB,GAAM,CAClC,MAAMmmF,EAAKx3G,EAAE,OAASqxB,EAAE,MAAOv1E,EAAI40J,GACjCr/E,EAAE,MACFxiB,EAAE4C,EAAE,MAAM,OAAO,EACjB5C,EAAE4C,EAAE,MAAM,OAAO,CACzB,GAAW1sD,EAAE,MAAM,MAAM,SAASssE,EAAE,KAAK,EAAGrhE,EAAIw2B,EAAEipH,EAAE,MAAOp+E,EAAE,KAAK,EAC5D,MAAO,CAAE,OAAQmmF,EAAI,SAAU17J,EAAG,YAAakU,CAAC,CAClD,CAAC,CAAC,EAAGkhJ,EAAK,CAAC7/E,EAAGmmF,EAAI17J,IAAM,CACtBA,IAAM,OAASu1E,EAAE,MAAQ,CAACA,EAAE,MAAQA,EAAE,MAAQv1E,EAAGu1E,EAAE,OAASw/E,GAAG,MAAQ,GAAI,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS2G,CAAE,CAAE,IAAM3G,GAAG,MAAQ,GAAI,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS2G,CAAE,CAAE,EAC5L,EAAGrG,GAAK,CAAC9/E,EAAI,GAAImmF,IAAO,CACtB9E,EAAGrhF,CAAC,EAAG6/E,EAAGN,GAAI3B,GAAG,MAAOuI,CAAE,CAC5B,EAAGzlB,EAAI,CAAC1gE,EAAI,GAAImmF,IAAO,CACrB9E,EAAGrhF,CAAC,EAAG6/E,EAAGnhF,EAAGk/E,GAAG,KAAMuI,CAAE,CAC1B,EAAG9E,EAAMrhF,GAAM,CACbA,GAAK,EAAE,YAAY,CACrB,EAAGmhF,EAAK,CAACnhF,EAAGmmF,IAAO,CACjBn5J,EAAE,kBAAoBwxE,GAAE,MAAM2nF,CAAE,EAAIW,GAAG9mF,CAAC,EAAGX,EAAEb,GAAE,MAAO,WAAW,EACnE,EAAGvxE,EAAIgzE,EAAE,IAAM,CACb,CACE,KAAM09E,GAAG,MACT,MAAO,EACP,OAAQmC,GACR,WAAYxgF,GAAE,MACd,iBAAmBU,GAAMV,GAAE,MAAQU,EACnC,KAAM2+E,GAAG,MAAM,KACf,kBAAmBY,GAAG,MACtB,MAAOI,GAAG,MACV,UAAWpxH,EAAE,OAAO,kBACpB,aAAcA,EAAE,MAAM,cAAc,EAAE,GAAK,MACnD,EACM,CACE,KAAMovH,GAAG,KACT,MAAO,EACP,OAAQjd,EACR,WAAYge,GAAG,MACf,iBAAmB1+E,GAAM0+E,GAAG,MAAQ1+E,EACpC,KAAMo/E,EAAEzwG,EAAE,IAAI,EACd,kBAAmB+vB,EAAE,MACrB,MAAOkhF,GAAG,MACV,UAAWrxH,EAAE,OAAO,iBACpB,aAAcA,EAAE,MAAM,aAAa,EAAE,GAAK,MAClD,CACA,CAAK,EAAGkwH,EAAIx+E,EAAE,IAAMjzE,EAAE,kBAAoB,CAACC,EAAE,MAAM,CAAC,CAAC,EAAID,EAAE,UAAY,CAAC,GAAGC,EAAE,KAAK,EAAE,QAAO,EAAKA,EAAE,KAAK,EACnG,OAAO+7D,EAAE,CACP,kBAAmB82F,GACnB,iBAAkBpf,EAClB,sBAAuB1hE,CAC7B,CAAK,EAAG,CAACgB,EAAGmmF,KAAQ/mF,EAAC,EAAItvD,EAAE,MAAOs6I,GAAI,CAChCpqF,EAAE,OAAO,YAAY,GAAKZ,EAAC,EAAItvD,EAAE,MAAOu6I,GAAI,CAC1CznH,GAAGo9B,EAAE,OAAQ,aAAc+mF,GAAGmD,GAAG,CAC/B,MAAO,EAAE,MACT,KAAM,EAAE,KACR,OAAQ,EAAE,OACV,MAAO,EAAE,MACT,gBAAiBj/H,EAAE4xC,CAAC,EACpB,sBAAuB5xC,EAAE+zC,CAAC,EAC1B,SAAU,EAAE,SACZ,WAAY/zC,EAAEi0C,CAAC,CACzB,CAAS,CAAC,CAAC,CACX,CAAO,IAAME,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC5BhnF,EAAE,OAAO,WAAW,GAAKZ,EAAC,EAAItvD,EAAE,MAAOw6I,GAAI,CACzC1nH,GAAGo9B,EAAE,OAAQ,YAAa,CAAE,MAAO/0C,EAAE18B,CAAC,CAAC,CAAE,CACnD,CAAS,GAAKkwE,EAAE,GAAI,EAAE,EACd4nF,EAAG,MAAOkE,GAAI,CACZt/H,EAAEk0C,CAAC,EAAE,EAAE,QAAQ,GAAK,CAACl0C,EAAEj+B,CAAC,EAAE,UAAYoyE,IAAKknF,GAAG0B,GAAI,CAChD,IAAK,EACL,aAAc/8H,EAAEsD,CAAC,GAAG,UACpB,SAAUtD,EAAEq0H,EAAE,EAAEr0H,EAAEi0C,CAAC,EAAE,EAAE,CAAC,EACxB,MAAOknF,GAAGn7H,EAAEjiC,CAAC,GAAG,UAAU,EAC1B,UAAW,cACX,WAAYm9J,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAK17J,GAAMwgC,EAAE+zC,CAAC,EAAE,GAAI,EAAE,GAChD,SAAUmnF,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAK17J,GAAM02J,EAAG12J,EAAG,CAAC,EACtD,EAAa,CACD,QAAS09J,GAAG,IAAM,CAChBnoF,EAAE,OAAO,YAAY,EAAIp9B,GAAGo9B,EAAE,OAAQ,aAAc,CAAE,IAAK,CAAC,CAAE,EAAIvB,EAAE,GAAI,EAAE,EAC1EuB,EAAE,OAAO,YAAY,EAAIvB,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE0xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC7E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAKl+E,EAAE,GAAI,EAAE,EACtD4nF,EAAG,MAAO,CACR,MAAOD,GAAG,CAAC,sBAAuB,CAChC,wBAAyBn7H,EAAEj+B,CAAC,EAAE,iBAC5C,CAAa,CAAC,CACd,EAAa,EACAoyE,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGjJ,EAAE,MAAO,CAACh0J,EAAGkU,KAAOygE,EAAC,EAAItvD,EAAEk3I,GAAI,CACpD,IAAKv8J,EAAE,IACrB,EAAe,CACD47J,EAAG,SAAU,CACX,QAAS,GACT,IAAMxnF,GAAMsiF,EAAGtiF,EAAGlgE,EAAI,CAAC,EACvB,KAAM,SACN,kBAAmB,WAAWlU,EAAE,IAAI,GACpC,MAAO27J,GAAG,CAAC,gCAAiC,CAAE,gBAAiB5G,GAAG,KAAK,CAAE,CAAC,EAC1E,aAAc,GAAG/0J,EAAE,IAAI,IAAIA,EAAE,SAAS,GACtC,eAAgB,GAAGA,EAAE,IAAI,mBAAmB,EAAE,QAAQ,GACtD,QAAUo0E,GAAMp0E,EAAE,OAAO,EAAE,EAC3B,UAAYo0E,GAAM5zC,EAAEk4C,CAAC,EAAEtE,EAAG,IAAMp0E,EAAE,OAAM,EAAI,EAAE,CAC9D,EAAiB,CACDu1E,EAAE,OAAOv1E,EAAE,IAAI,EAAIm4C,GAAGo9B,EAAE,OAAQv1E,EAAE,KAAM,CACtC,IAAK,EACL,KAAMA,EAAE,KACR,MAAOkkD,EAAElkD,EAAE,IAAI,CACjC,CAAiB,EAAIg0E,EAAE,GAAI,EAAE,EACbuB,EAAE,OAAOv1E,EAAE,IAAI,EAAIg0E,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CACrDE,GAAGC,GAAG18J,EAAE,IAAI,EAAG,CAAC,CAClC,EAAmB,EAAE,EACrB,EAAiB,GAAI+/J,EAAE,EACThE,GAAG3mF,GAAI,CACL,KAAM50C,EAAE,CAAC,EAAExgC,EAAE,iBAAiB,EAC9B,IAAKwgC,EAAEnM,CAAC,CACxB,EAAiB,CACD,QAASqpI,GAAG,IAAM,CAChB19J,EAAE,mBAAqB20E,IAAKknF,GAAG3mF,GAAI,CACjC,IAAK,EACL,MAAOl1E,EAAE,MACT,UAAWwgC,EAAEj+B,CAAC,EAAE,WAAa,CAACi+B,EAAE8zC,CAAC,EAAE,cACnC,kBAAmB,GACnB,KAAMt0E,EAAE,KACR,cAAe,GACf,gBAAiB,EAAE,YACnB,gBAAiBA,EAAE,aACnB,WAAYA,EAAE,iBACd,SAAUA,EAAE,MAChC,EAAqB29J,GAAG,CACJ,cAAeD,GAAG,IAAM,CACtBnoF,EAAE,OAAO,eAAe,EAAIp9B,GAAGo9B,EAAE,OAAQ,gBAAiB,CAAE,IAAK,CAAC,CAAE,EAAIvB,EAAE,GAAI,EAAE,EAChFuB,EAAE,OAAO,eAAe,EAAIvB,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAEuxH,EAAE,EAAG,CAAE,IAAK,EAAG,EACxF,CAAqB,EACD,EAAG,CACvB,EAAqB,CACDx8E,EAAE,OAAO,GAAGv1E,EAAE,IAAI,gBAAgB,EAAI,CACpC,KAAM,OACN,GAAI09J,GAAG,CAAC,CAAE,KAAMtpF,CAAC,IAAO,CACtBj8B,GAAGo9B,EAAE,OAAQ,GAAGv1E,EAAE,IAAI,iBAAkB,CACtC,KAAMo0E,EAAE,KACR,MAAOA,EAAE,KACnC,CAAyB,CACzB,CAAuB,EACD,IAAK,GAC3B,EAAwB,OACJmB,EAAE,OAAO,GAAGv1E,EAAE,IAAI,UAAU,EAAI,CAC9B,KAAM,UACN,GAAI09J,GAAG,IAAM,CACXvlH,GAAGo9B,EAAE,OAAQ,GAAGv1E,EAAE,IAAI,WAAYq/B,GAAG,CAAE,QAAS,IAAMo1H,GAAG,MAAMz0J,EAAE,IAAI,CAAC,CAAC,CAC/F,CAAuB,EACD,IAAK,GAC3B,EAAwB,OACJu1E,EAAE,OAAO,GAAGv1E,EAAE,IAAI,iBAAiB,EAAI,CACrC,KAAM,SACN,GAAI09J,GAAG,IAAM,CACXvlH,GAAGo9B,EAAE,OAAQ,GAAGv1E,EAAE,IAAI,kBAAmB,CACvC,OAAQA,EAAE,MACpC,CAAyB,CACzB,CAAuB,EACD,IAAK,GAC3B,EAAwB,MACxB,CAAmB,EAAG,KAAM,CAAC,QAAS,UAAW,OAAQ,gBAAiB,gBAAiB,aAAc,UAAU,CAAC,GAAKg0E,EAAE,GAAI,EAAE,CACjI,CAAiB,EACD,EAAG,CACnB,EAAiB,KAAM,CAAC,OAAQ,KAAK,CAAC,CACtC,EAAe,EAAE,EAAE,EAAG,GAAG,EACzB,EAAa,CAAC,EACJxzC,EAAEk0C,CAAC,EAAE,EAAE,QAAQ,GAAKl0C,EAAEj+B,CAAC,EAAE,UAAYoyE,IAAKknF,GAAG0B,GAAI,CAC/C,IAAK,EACL,aAAc/8H,EAAEsD,CAAC,GAAG,UACpB,UAAW,cACX,SAAUtD,EAAEq0H,EAAE,EAAEr0H,EAAEi0C,CAAC,EAAE,EAAE,CAAC,EACxB,MAAOknF,GAAGn7H,EAAEjiC,CAAC,GAAG,UAAU,EAC1B,WAAYm9J,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAK17J,GAAMwgC,EAAE+zC,CAAC,EAAE,GAAI,EAAE,EAC5D,EAAa,CACD,QAASmpF,GAAG,IAAM,CAChBnoF,EAAE,OAAO,UAAU,EAAIp9B,GAAGo9B,EAAE,OAAQ,WAAY,CAAE,IAAK,CAAC,CAAE,EAAIvB,EAAE,GAAI,EAAE,EACtEuB,EAAE,OAAO,UAAU,EAAIvB,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGr7H,EAAE6xH,EAAE,EAAG,CAAE,IAAK,EAAG,EAC3E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,aAAc,WAAY,OAAO,CAAC,GAAKr+E,EAAE,GAAI,EAAE,EACtDxzC,EAAEgyC,CAAC,EAAE,EAAE,QAAQ,GAAKmC,EAAC,EAAIknF,GAAG0B,GAAI,CAC9B,IAAK,EACL,IAAK,YACL,UAAW,cACX,SAAU/8H,EAAEq0H,EAAE,EAAEr0H,EAAEi0C,CAAC,EAAE,EAAE,CAAC,EACxB,aAAcj0C,EAAEsD,CAAC,GAAG,UACpB,MAAO63H,GAAGn7H,EAAEjiC,CAAC,GAAG,UAAU,EAC1B,WAAYm9J,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAK17J,GAAMwgC,EAAE+zC,CAAC,EAAE,GAAI,EAAE,GAChD,SAAUmnF,EAAG,CAAC,IAAMA,EAAG,CAAC,EAAK17J,GAAM02J,EAAG12J,EAAGwgC,EAAEj+B,CAAC,EAAE,kBAAoB,EAAI,CAAC,EACnF,EAAa,CACD,QAASm7J,GAAG,IAAM,CAChBnoF,EAAE,OAAO/0C,EAAEj+B,CAAC,EAAE,SAAW,aAAe,aAAa,EAAI41C,GAAGo9B,EAAE,OAAQ/0C,EAAEj+B,CAAC,EAAE,SAAW,aAAe,cAAe,CAAE,IAAK,CAAC,CAAE,EAAIyxE,EAAE,GAAI,EAAE,EAC1IuB,EAAE,OAAO/0C,EAAEj+B,CAAC,EAAE,SAAW,aAAe,aAAa,EAAIyxE,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAIknF,GAAGn4J,GAAG88B,EAAEj+B,CAAC,EAAE,SAAWi+B,EAAE8xH,EAAE,EAAI9xH,EAAE2xH,EAAE,CAAC,EAAG,CAAE,IAAK,CAAC,CAAE,EACzI,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,WAAY,aAAc,OAAO,CAAC,GAAKn+E,EAAE,GAAI,EAAE,CAChE,CAAS,CACT,EAAS,EAAE,EACX,CAAK,EACH,CACF,CAAC,EAAGisF,GAAK,CACP,MAAO,sBACP,KAAM,KACR,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,2BACP,KAAM,UACR,EAAGC,GAAK,CAAC,YAAY,EAAGC,GAAK,CAC3B,IAAK,EACL,MAAO,iCACP,KAAM,UACR,EAAGC,GAAK,CAAE,MAAO,gBAAgB,EAAIC,GAAK,CAAC,KAAM,gBAAiB,gBAAiB,aAAc,WAAY,eAAgB,UAAW,aAAc,YAAa,eAAgB,eAAgB,aAAa,EAAGC,GAAqB/E,GAAG,CACzO,OAAQ,aACR,MAAO,CACL,SAAU,GACV,YAAa,GACb,MAAO,GACP,KAAM,EACV,EACE,MAAO,CAAC,QAAS,cAAe,iBAAkB,gBAAiB,cAAc,EACjF,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,QAAS,EACT,SAAU3hD,EACV,UAAWuB,EACX,SAAU,CAAE,YAAaggC,EAAG,OAAQ76B,EAAG,WAAYqrE,EAAG,eAAgBq/E,EAAG,YAAah+F,EAAG,WAAYp3D,EAAG,GAAI,CAAC,CACnH,EAAQq1J,GAAE,EAAI,CAAE,sBAAuBv/H,CAAC,EAAK4+H,GAAE,EAAI,CAAE,YAAav+E,EAAG,YAAalC,EAAG,cAAeoC,EAAG,UAAWL,CAAC,EAAKs/E,GAAE,EAAI,CAAE,aAAcp/E,EAAG,qBAAsBrC,EAAG,cAAe8B,CAAC,EAAKw/E,GAAE,EAAI,CAAE,cAAev/E,CAAC,EAAK2/E,GAAE,EAAI/gG,EAAI0oG,GAAG,eAAe,EAAGtwI,EAAIswI,GAAG,gBAAgB,EAAG/wH,EAAIgoH,GAAG,EAAE,EAAG59E,EAAI49E,GAAG,IAAI,EAAGh6E,EAAIg6E,GAAG,EAAE,EAAGiC,EAAIjC,GAAG,EAAE,EAAGkC,GAAKlC,GAAG,EAAE,EAAGmC,GAAKnC,GAAG,CACtV,OAAQ,GACR,KAAM,GACN,UAAW,EACjB,CAAK,EAAGoC,GAAKpC,GAAG,CAAE,KAAM,KAAK,CAAE,EAC3B8N,GAAGztG,EAAG,CACJ,WAAY,CAAC90B,EAAGi4H,IAAM,CACpBjtJ,EAAE,MAAM,UAAYnF,EAAE,UAAYoyJ,IAAM,MAAQA,IAAM,SAAW,EAAE,eAAgBA,IAAM,KAAO,OAAS,OAAO,GAAKA,IAAM,QAAUA,IAAM,UAAY,EAAE,eAAgBA,IAAM,QAAU,OAAS,OAAO,EAC3M,CACN,CAAK,EACD,MAAMjiF,EAAIuB,EAAE,IAAM1xE,EAAE,SAAWA,EAAE,SAASogD,EAAE,WAAW,EAAIA,EAAE,WAAW,EAAG6wG,GAAKv/E,EAAE,IAAM1xE,EAAE,SAAW,MAAM,QAAQA,EAAE,QAAQ,EAAIA,EAAE,SAAWA,EAAE,SAAQ,EAAKswE,EAAC,CAAE,EAChKwmF,GAAG,IAAM,CACP,EAAE,QAAS,CAAE,IAAK,WAAY,QAASlwH,EAAE,KAAK,CAAE,EAAGzhC,EAAE,MAAM,qBAAuB8pD,EAAE,OAASA,EAAE,MAAM,iBAAiB,QAASvwD,EAAG,CAAE,QAAS,GAAI,CACnJ,CAAC,EAAGyyE,GAAG,IAAM,CACXhsE,EAAE,MAAM,qBAAuB8pD,EAAE,OAASA,EAAE,MAAM,oBAAoB,QAASvwD,CAAC,CAClF,CAAC,EACD,MAAMuxE,GAAK91C,GAAMA,EAAIn6B,EAAE,SAAW,QAAU,OAASA,EAAE,SAAW,YAAc,WAAYkxJ,GAAK,CAAC/2H,EAAGi4H,IAAM,CACzG,GAAIpyJ,EAAE,YAAa,CACjB,MAAMyyJ,EAAI3hF,EAAE8/E,GAAG,EAAC,EAAI,CAAE,MAAOxwG,EAAE,MAAO,KAAMA,EAAE,IAAI,CAAE,CAAC,EACrD0wG,GAAG,MAAQlgF,EAAEE,EAAE8/E,GAAG,EAAC,EAAI,CAAE,MAAOz2H,EAAG,KAAMi4H,CAAC,CAAE,CAAC,EAAGK,CAAC,EAAIzyH,EAAE,MAAMiwC,GAAE,EAAE,CAAC,EAAIjwC,EAAE,MAAMiwC,GAAE,EAAE,CAAC,EAAG2E,EAAE,MAAQ,GAAIw+E,GAAG,IAAM,CAC3Gx+E,EAAE,MAAQ,EACZ,CAAC,CACH,CACF,EAAG7D,GAAIW,EACL,KAAO,CACL,GAAG,EAAE,MAAM,QACnB,EACA,EAAOy+E,GAAMh2H,IAAO,CAAE,KAAM,MAAO,GAAGA,CAAC,GAAKw2H,GAAKj/E,EAAE,IAAOv3C,GAAM,CAC1D,MAAMi4H,EAAIjC,GAAGh2H,CAAC,EACd,MAAO,CACL,eAAgBi4H,EAAE,OAAS,MAC3B,gBAAiBA,EAAE,OAAS,MACpC,CACI,CAAC,EAAGhC,GAAK1+E,EAAE,IAAOv3C,GAAMu0C,EAAEv0C,EAAG62C,EAAE,KAAK,CAAC,EAAGogF,GAAK1/E,EAAE,KAAO,CACpD,aAAc,GACd,kBAAmBm+E,EAAE,MAAM,MAAQ,GAAKzvG,EAAE,WAAa,CAC7D,EAAM,EAAGixG,GAAK3/E,EAAE,IAAOv3C,GAAMn6B,EAAE,gBAAkBm6B,EAAE,QAAU,EAAE,EAAGm3H,EAAK,MAAOn3H,EAAGi4H,IAAM,CACjF,KAAM,CAAE,MAAOK,EAAG,OAAQ9yJ,CAAC,EAAKw6B,EAAE,sBAAqB,EACvD62C,EAAE,MAAQohF,EAAE,MACZ,IAAIp1J,EAAI,CAAE,KAAM,GAAGy1J,EAAI,CAAC,MAAQF,GAAI,IACpC,GAAI,MAAMa,GAAE,EAAI/rI,EAAE,QAAQ,CAAC,EAAG,CAC5B,KAAM,CAAE,KAAMqpD,EAAG,MAAO8hF,IAAOnrI,EAAE,MAAM,CAAC,EAAE,sBAAqB,EAC/DqpD,EAAI,IAAM1zE,EAAI,CAAE,KAAM,GAAG,EAAIu1J,GAAI,EAAGvB,GAAG,MAAM,KAAO,GAAGyB,EAAI,CAAC,MAAO,WAAW,WAAa/hF,EAAI8hF,KAAOx1J,EAAI,CAAE,MAAO,GAAG,EAAIu1J,GAAI,EAAGvB,GAAG,MAAM,KAAO,GAAGwB,GAAKC,EAAI,CAAC,KAChK,CACA1B,GAAG,MAAQ,CACT,OAAQ,GAAGpxJ,CAAC,KACZ,GAAG3C,EACH,UAAW,cAAcu1J,EAAC,IAClC,CACI,EAAGhB,GAAK,MAAOp3H,EAAGi4H,EAAGK,IAAM,CACzB,MAAM9yJ,EAAI44J,GAAG3xH,EAAE,QAAQwrH,CAAC,IAAIK,CAAC,CAAC,EAC9B9yJ,IAAMw6B,EAAE,QAAQ,gBAAkBA,EAAE,QAAQ,SAAS,OAAS42H,GAAG,MAAQ52H,EAAE,OAAO,eAAex6B,CAAC,EAAI,MAAM2xJ,EAAG3xJ,EAAGw6B,CAAC,EAAG17B,EAAE,eAAgB07B,EAAE,MAAM,EAClJ,EAAGg4G,EAAI,MAAOh4G,EAAGi4H,EAAGK,IAAM,CACxB,GAAI5B,EAAE,OAASp2J,EAAE,MAAM,SAAWA,EAAE,MAAM,WACxC,OAAO,EAAE,cAAe0/B,CAAC,EAC3B,GAAI,EAAE,iBAAkBA,CAAC,EAAGA,EAAE,QAAQ,SAAS,OAAQ,CACrD,GAAIn6B,EAAE,iBAAmB,CAACm6B,EAAE,QAAS,OACrC,MAAMo3H,GAAGp3H,EAAGi4H,EAAGK,CAAC,CAClB,CACF,EAAGK,EAAM34H,GAAM,CACb62C,EAAE,QAAUA,EAAE,MAAQ,KAAM+/E,GAAG,MAAQ,gBAAgB,CAAE,OAAQ,GAAI,KAAM,GAAI,UAAW,EAAE,CAAE,EAAGtyJ,EAAE,gBAAiB07B,EAAE,MAAM,EAC9H,EAAGy4H,EAAK,CAACz4H,EAAGi4H,EAAGK,IAAM,CACnBt4H,IAAM,MAAM,QAAQyM,EAAE,MAAMwrH,CAAC,CAAC,EAAIxrH,EAAE,MAAMwrH,CAAC,EAAEK,CAAC,EAAIt4H,EAAIyM,EAAE,MAAMwrH,CAAC,EAAI,CAACj4H,CAAC,GAAIn6B,EAAE,iBAAmBuwB,EAAEqW,EAAE,MAAO,UAAU,CACrH,EAAGloC,EAAKy7B,GAAM,CACZh1B,EAAE,MAAM,sBAAwBg1B,EAAE,eAAc,EAAI,EAAE,gBAAiBA,CAAC,EAC1E,EAAG+1H,EAAK/1H,GAAM03B,EAAE,MAAQA,EAAE,MAAM,OAAS,QAAU8qG,GAAGxiI,EAAE,MAAO,CAC7D,aAAc,CAACn6B,EAAE,UACjB,OAAQA,EAAE,MAChB,CAAK,EAAI6xD,EAAE,MAAM,OAAS,MAAQ+qG,GAAGziI,EAAE,KAAK,EAAI,OAAO03B,EAAE,MAAM,MAAQ,WAAaA,EAAE,MAAM,KAAK13B,EAAE,KAAK,EAAI,GAAK,GAAIs3C,EAAKt3C,GAAM,CAC1H,MAAMi4H,EAAIj4H,EAAE,CAAC,EACb,OAAO03B,EAAE,OAAO,kBAAoB13B,EAAE,KAAMs4H,GAAMA,EAAE,OAAO,EAAIvC,EAAEkC,CAAC,EAAI,GAAKlC,EAAEkC,CAAC,CAChF,EAAGwF,EAAK,CAACz9H,EAAGi4H,EAAGK,EAAI,KAAO,CACxB,CAACA,GAAKriF,MAAQ,CAAC31E,EAAE,MAAM,SAAW0K,EAAE,MAAM,uBAAyBmpE,EAAEn0C,EAAGh1B,EAAE,KAAK,EAAG,EAAE,cAAeitJ,CAAC,EACtG,EAAGl2J,EAAKi+B,GAAM,CACZm0C,EAAEn0C,EAAGh1B,EAAE,KAAK,CACd,EAAGiL,EAAK+pB,GAAM,CACZ1/B,EAAE,MAAM,SAAWA,EAAE,MAAM,YAAco2J,EAAE,MAAQ,GAAI,EAAE,cAAe12H,CAAC,GAAK1/B,EAAE,MAAM,SAAW,EAAE,cAAe0/B,CAAC,CACrH,EAAGm2C,EAAI,IAAM,CACX,MAAMn2C,EAAI,IAAKi4H,EAAIqE,GAAGt8H,EAAG,CAAE,OAAQn6B,EAAE,OAAQ,aAAc,CAACA,EAAE,SAAS,CAAE,EAAGyyJ,EAAIiE,GAAGv8H,EAAG,CAAE,OAAQn6B,EAAE,OAAQ,aAAc,CAACA,EAAE,SAAS,CAAE,EACtI,OAAO0yJ,GAAG,CAAE,MAAON,EAAG,IAAKK,EAAG,EAAE,IAAKz1J,GAAMqzE,EAAErzE,CAAC,CAAC,CACjD,EACA,OAAOy9D,EAAE,CAAE,kBAAmBy2F,GAAI,EAAG,CAAC/2H,EAAGi4H,KAAOvhF,IAAKtvD,EAAE,MAAO,CAC5D,MAAOs2I,GAAGzG,GAAG,KAAK,CACxB,EAAO,CACD0G,EAAG,MAAO,CACR,IAAK,gBACL,MAAOD,GAAG9mF,GAAE,KAAK,EACjB,KAAM,MACd,EAAS,CACD+mF,EAAG,MAAOqE,GAAI,CACZz/H,EAAEm1B,CAAC,GAAKgf,EAAC,EAAItvD,EAAE,MAAO66I,GAAIxD,GAAGl8H,EAAEm1B,CAAC,EAAE,KAAK,EAAG,CAAC,GAAKqe,EAAE,GAAI,EAAE,GACvDW,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGlI,GAAG,MAAO,CAACwB,EAAG9yJ,KAAOkxE,EAAC,EAAItvD,EAAE,MAAO,CACxD,IAAK5hB,EACL,MAAO,2BACP,KAAM,WACN,eAAgB,kBAChB,aAAc+8B,EAAE8zC,CAAC,GAAG,UAAU7wE,CAAC,CAC3C,EAAa,CACDw6B,EAAE,OAAO,iBAAiB,EAAIka,GAAGla,EAAE,OAAQ,kBAAmB,CAC5D,IAAK,EACL,IAAKs4H,EACL,MAAO9yJ,CACrB,CAAa,EAAIuwE,EAAE,GAAI,EAAE,EACb/1C,EAAE,OAAO,iBAAiB,EAAI+1C,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAChEE,GAAGC,GAAGnG,CAAC,EAAG,CAAC,CACzB,EAAe,EAAE,EACjB,EAAa,EAAG4J,EAAE,EAAE,EAAG,GAAG,EAC1B,CAAS,EACDjK,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI0F,EAAG,MAAO,CAAE,MAAO,+BAA+B,EAAI,KAAM,EAAE,GAC9EG,GAAG3mF,GAAI,CACL,KAAMw/E,GAAG,MACT,IAAK,CAAC,CAACp0H,EAAEsD,CAAC,CACpB,EAAW,CACD,QAAS45H,GAAG,IAAM,CAChBhlF,EAAE,OAAS/D,IAAKtvD,EAAE,MAAO,CACvB,IAAK,EACL,MAAO,eACP,KAAM,WACN,aAAc6wI,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKK,GAAM5B,EAAE,MAAQ,GAC7D,EAAe,EACAhgF,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGhpF,EAAE,MAAO,CAACsiF,EAAG9yJ,KAAOkxE,EAAC,EAAItvD,EAAE,MAAO,CACvD,IAAK5hB,EACL,MAAO,mBACP,KAAM,KACtB,EAAiB,CACD+8B,EAAEm1B,CAAC,GAAKgf,EAAC,EAAItvD,EAAE,MAAO+6I,GAAI,CACxBxE,EAAG,MAAOyE,GAAI3D,GAAGnnF,EAAEghF,EAAE,IAAI,CAAC,EAAG,CAAC,CAChD,CAAiB,GAAKviF,EAAE,GAAI,EAAE,GACbW,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAG1G,EAAE,KAAM,CAACz1J,EAAGu1J,MAAO1hF,EAAC,EAAItvD,EAAE,MAAO,CACtD,GAAImb,EAAE+zC,CAAC,EAAEzzE,EAAE,KAAK,EAChB,QAAS,GACT,IAAM0zE,GAAMkiF,EAAGliF,EAAG/wE,EAAG4yJ,EAAC,EACtB,IAAKA,GAAI5yJ,EACT,KAAM,WACN,MAAO,oBACP,iBAAkB3C,EAAE,UAAU,iBAAmBA,EAAE,UAAU,iBAAmBA,EAAE,UAAU,gBAAkB,OAC9G,gBAAiBA,EAAE,UAAU,mBAAqB,OAClD,aAAc0/B,EAAE8zC,CAAC,GAAG,MAAMxzE,CAAC,EAC3B,SAAU,CAACA,EAAE,SAAW0/B,EAAE18B,CAAC,EAAE,gBAAkB,OAAS,EACxD,eAAgB08B,EAAE+zC,CAAC,EAAEzzE,EAAE,KAAK,EAC5B,QAASg7J,GAAItnF,GAAMknF,EAAGlnF,EAAG1zE,CAAC,EAAG,CAAC,SAAS,CAAC,EACxC,WAAa0zE,GAAMknF,EAAGlnF,EAAG1zE,EAAG,EAAE,EAC9B,UAAY0zE,GAAMh0C,EAAEi0C,CAAC,EAAED,EAAG,IAAMv2C,EAAE,MAAM,cAAen9B,CAAC,CAAC,EACzD,aAAe0zE,GAAMyhE,EAAEn1I,EAAG2C,EAAG4yJ,EAAC,EAC9B,aAAe7hF,GAAMoiF,EAAG91J,CAAC,EACzB,YAAc0zE,GAAMtgE,EAAEpT,CAAC,EACvB,UAAWo1J,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAK1hF,GAAMmgF,EAAE,MAAQ,GAC9D,EAAmB,CACDiH,EAAG,MAAO,CACR,MAAOD,GAAG,CAAC,iBAAkB76J,EAAE,SAAS,CAAC,CAC7D,EAAqB,CACDm9B,EAAE,OAAO,KAAOk3H,GAAG,MAAMr0J,CAAC,EAAIq3C,GAAGla,EAAE,OAAQ,MAAO,CAChD,IAAK,EACL,IAAK,CAACn9B,EAAE,KACR,KAAMA,EAAE,KAC9B,CAAqB,EAAIkzE,EAAE,GAAI,EAAE,EACb/1C,EAAE,OAAO,IAAM+1C,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CACjDE,GAAGC,GAAG57J,EAAE,IAAI,EAAG,CAAC,CACtC,EAAuB,EAAE,GACLA,EAAE,QAAUq0J,GAAG,MAAMr0J,CAAC,GAAK6zE,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAChDt+H,EAAE,OAAO,OAASka,GAAGla,EAAE,OAAQ,SAAU,CACvC,IAAK,EACL,OAAQn9B,EAAE,OACV,IAAK,CAACA,EAAE,KACR,KAAMA,EAAE,KAChC,CAAuB,GAAK6zE,EAAC,EAAItvD,EAAE,MAAO,CAClB,IAAK,EACL,MAAOs2I,GAAGlH,GAAG,MAAM3zJ,EAAE,MAAM,CAAC,EAC5B,MAAO07J,GAAG17J,EAAE,OAAO,MAAQ,CAAE,gBAAiBA,EAAE,OAAO,KAAK,EAAK,EAAE,CAC3F,EAAyB,KAAM,CAAC,EAChC,EAAuB,EAAE,GAAKkzE,EAAE,GAAI,EAAE,EAClBkgF,GAAG,MAAMpzJ,EAAE,KAAK,GAAK6zE,EAAC,EAAItvD,EAAE,MAAO,CACjC,IAAK,EACL,QAAS,GACT,IAAK,iBACL,MAAO,qBACP,MAAOm3I,GAAG3H,GAAG,KAAK,CACxC,EAAuB,CACD/zJ,EAAE,QAAQ,SAAW6zE,EAAC,EAAItvD,EAAE,MAAO,CACjC,IAAK,EACL,MAAO,sBACP,QAASrlB,CACjC,EAAyB,EACA20E,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGn8J,EAAE,OAAO,QAAS,CAAC0zE,EAAG8hF,MAAQ3hF,EAAC,EAAItvD,EAAE,MAAO,CACjE,IAAKixI,GACL,MAAO,kBACjC,EAA2B,CACDr4H,EAAE,OAAO,gBAAgB,EAAIka,GAAGla,EAAE,OAAQ,iBAAkB,CAC1D,IAAK,EACL,QAASu2C,EACT,IAAK1zE,EAAE,KACnC,CAA2B,EAAIkzE,EAAE,GAAI,EAAE,EACb/1C,EAAE,OAAO,gBAAgB,EAAI+1C,EAAE,GAAI,EAAE,GAAKW,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,CAAC,EAAI,CAC/DX,EAAG,MAAO,CACR,MAAO,mBACP,MAAOY,GAAGhoF,EAAE,MAAQ,CAAE,gBAAiBA,EAAE,KAAK,EAAK,EAAE,CACnF,EAA+B,KAAM,CAAC,EACVonF,EAAG,MAAO,KAAMc,GAAGloF,EAAE,IAAI,EAAG,CAAC,CACzD,EAA6B,EAAE,EAC/B,CAAyB,EAAE,EAAG,GAAG,GACTonF,EAAG,MAAO,CACR,MAAO,sBACP,MAAOY,GAAG1H,GAAG,KAAK,CAC5C,EAA2B,KAAM,CAAC,CAClC,CAAuB,GAAK9gF,EAAE,GAAI,EAAE,CACpC,EAAuB,CAAC,GAAKA,EAAE,GAAI,EAAE,CACrC,EAAqB,CAAC,CACtB,EAAmB,GAAIssF,EAAE,EAAE,EAAG,GAAG,EACjC,CAAe,EAAE,EAAG,GAAG,EACvB,EAAe,EAAE,GAAKtsF,EAAE,GAAI,EAAE,CAC9B,CAAW,EACD,EAAG,CACb,EAAW,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC7B,EAAS,CAAC,CACV,EAAO,CAAC,EACN,CACF,CAAC,EAAG2sF,GAAK,CAAC,EAAGpiG,EAAG7zC,EAAG,IAAM,CACvB,MAAMw5B,EAAIwuG,GAAG,EAAE,EAAG,EAAIA,GAAmB,IAAI,IAAM,EAAGnwJ,EAAImwJ,GAAE,EAAI,CAC9D,QAAS5uJ,EACT,SAAUggC,EACV,UAAW76B,EACX,MAAOqrE,EACP,KAAMq/E,EACN,KAAMh+F,EACN,WAAYp3D,EACZ,UAAW,EACX,MAAO81B,EACP,MAAOqgD,EACP,SAAU,CAAE,eAAgBlC,EAAG,UAAWoC,EAAG,MAAOL,EAAG,OAAQE,EAAG,UAAWrC,EAAG,WAAY8B,EAAG,WAAYC,EAAG,KAAMphB,CAAC,CACzH,EAAM6gG,GAAE,EAAI,CAAE,yBAA0BzoI,EAAG,WAAYuf,EAAG,mBAAoBoqC,EAAG,iBAAkB4D,CAAC,EAAK+6E,GAAE,EAAI,CAAE,iBAAkBkB,EAAG,eAAgBC,GAAI,WAAYC,GAAI,gBAAiBC,GAAI,aAAc7gF,EAAG,oBAAqB8gF,EAAE,EAAKqK,GAAG,CAAC,EAAG,CAAE,UAAWrrF,EAAC,EAAK+/E,GAAE,EAAI,CAAE,cAAekB,GAAI,QAASngF,GAAG,aAAco/E,GAAI,YAAaQ,GAAI,iBAAkBP,EAAE,EAAKL,GAAE,EAAI,CAAE,oBAAqBqB,GAAI,sBAAuBC,GAAI,uBAAwBC,EAAI,cAAeC,EAAE,EAAK6I,GAAE,EAAI,CAAE,WAAYjoB,CAAC,EAAKyd,GAAE,EACjfuC,GAAG,IAAMj2J,EAAE00E,EAAE,eAAe,CAAC,EAC7B,MAAMkiF,EAAMviF,IAAM,CAACI,EAAE,MAAM,uBAAyBJ,GAAI,GAAK,CAAC9xE,EAAE,MAAOm0J,EAAK,CAACriF,GAAGoB,GAAGmrF,GAAIC,GAAK,KAAO,CACjGjK,EAAGiK,EAAE,IAAM53J,EAAE,MAAMorE,EAAC,IAAMprE,EAAE,MAAMorE,EAAC,EAAI,CAAE,MAAO,EAAG,KAAM,CAAC,EAAIprE,EAAE,MAAMorE,EAAC,EAAE,MAAQoB,IAAKxsE,EAAE,MAAMorE,EAAC,GAAG,MAAOprE,EAAE,MAAMorE,EAAC,EAAE,KAAOusF,IAAM33J,EAAE,MAAMorE,EAAC,GAAG,KAC/I,EAAG7xE,EAAI,IAAM,CACX,EAAE,WAAa+7D,EAAE,aAAa,CAChC,EAAGy1F,EAAI,IAAM,CACXp/E,EAAE,OAASkgF,GAAGlgF,EAAE,KAAK,CACvB,EACAgmF,GAAG,IAAM,CACPr8J,EAAE,QAAUugK,KAAM9K,EAAC,GAAKh0J,EAAE,EAAE,EAAG,EAAE,gBAAkB,EAAE,WAAa8+J,GAAE,CACtE,CAAC,EACD,MAAMvpF,EAAIC,EAAE,IAAMziB,EAAE,OAAO,OAAO,QAAU,CAACA,EAAE,OAAO,QAAU,EAAE,WAAaA,EAAE,MAAM,MAAM,OAAS,EAAE,EAAG2oG,EAAK,IAAM,CACpH,EAAE,WAAanmF,EAAE,OAAShX,EAAE,aAAcxL,EAAE,OAAO,QAAU,EAAE,WAAaA,EAAE,OAAO,OAAO,OAAS,EAAE,CACzG,EAAG/yD,EAAI,CAACq0E,GAAI,KAAO,CACjB,GAAI91E,EAAE,MACJ,OAAO,MAAM,QAAQA,EAAE,KAAK,GAAK2lD,EAAE,MAAQ3lD,EAAE,MAAO83J,GAAEhiF,EAAC,GAAK6hF,EAAE33J,EAAE,MAAO81E,EAAC,EAC1E,GAAI7B,EAAE,MAAM,OAAS6B,IAAK,CAAC,EAAE,UAC3B,OAAOp2C,EAAEn6B,EAAC,EAAIuwE,EAAC,CACnB,EAAGngE,EAAI,IAAM,MAAM,QAAQ3V,EAAE,KAAK,GAAKg2E,EAAE,MAAM,QAAU+/E,GAAG/1J,EAAE,MAAM,CAAC,CAAC,IAAM+1J,GAAG/1J,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,CAAC,EAAI,GAAI61E,EAAKC,IAAM,CACxH,MAAMoB,GAAIkhF,GAAGtiF,GAAG,CAAC,EACjB,MAAO,CAAE,MAAOigF,GAAG7+E,EAAC,EAAG,KAAM8+E,GAAG9+E,EAAC,CAAC,CACpC,EAAGx3C,EAAI,CAACo2C,GAAIvwE,EAAC,EAAI2xE,GAAI,KAAO,CAC1B,IAAK,CAACjD,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,QAAUiD,KAAMihF,EAAG,EAAGpC,GAAGjgF,EAAC,EAAGkgF,GAAGlgF,EAAC,CAAC,EAAG7B,EAAE,MAAM,QAAU,CAACj0E,EAAE,OAAS2V,KAAO,CAACs+D,EAAE,MAAM,QAAU,CAACA,EAAE,MAAM,MAAQiD,IAC5I,QAASmrF,GAAK,EAAGA,GAAKpuF,EAAE,MAAM,MAAOouF,KAAM,CACzC,MAAMC,GAAKnM,GAAG5wJ,EAAC,EAAI,CAAE,MAAOwwE,EAAE,MAAMssF,GAAK,CAAC,EAAG,KAAMjN,EAAE,MAAMiN,GAAK,CAAC,CAAC,CAAE,EAAGE,GAAKlC,GAAGiC,GAAI,CAAE,OAAQ,EAAG,EAChG53J,EAAE,MAAM23J,EAAE,EAAI,CAAE,MAAOtM,GAAGwM,EAAE,EAAG,KAAMvM,GAAGuM,EAAE,CAAC,CAC7C,CACJ,EAAG5K,EAAI,CAAC7hF,GAAGoB,KAAM,CACfx3C,EAAEo2C,EAAC,EAAGwgF,GAAG,QAASV,GAAG9/E,EAAC,CAAC,EAAGwgF,GAAG,UAAWT,GAAG//E,EAAC,CAAC,EAAGwgF,GAAG,UAAWR,GAAGhgF,EAAC,CAAC,EAAG7B,EAAE,MAAM,OAASiD,IAAK0gF,GAAE,CAChG,EAAGI,EAAKliF,IAAM,CACZ,GAAI7B,EAAE,MAAM,MAAO,CACjB,GAAIA,EAAE,MAAM,KAAM,MAAO,GACzB,MAAMiD,GAAI6+E,GAAGjgF,GAAE,CAAC,CAAC,EAAGusF,GAAKtM,GAAGjgF,GAAE,CAAC,CAAC,EAChC,OAAO,KAAK,IAAIusF,GAAKnrF,EAAC,EAAIjD,EAAE,MAAM,MAAQ,EAAI,CAChD,CACA,MAAO,EACT,EAAG/uE,EAAI,CAAC4wE,GAAGoB,KAAM,CACfpB,GAAE,CAAC,GAAKE,EAAE,MAAM,gBAAkBt2C,EAAEo2C,GAAEkiF,EAAEliF,EAAC,CAAC,EAAGoB,EAAC,EAAIx3C,EAAEo2C,GAAE,CAAC,EAAGoB,EAAC,EAC3D,MAAMmrF,GAAK,CAACC,GAAIC,KAAO,CACrBD,GAAGxsF,GAAE,CAAC,CAAC,EACPA,KAAI,CAAC,EAAIwsF,GAAGxsF,GAAE,CAAC,CAAC,EAAI1e,EAAEmrG,EAAE,EAAE,CAAC,CACjC,EACIjM,GAAG,QAAS+L,GAAGzM,GAAI,OAAO,CAAC,EAAGU,GAAG,UAAW+L,GAAGxM,GAAI,SAAS,CAAC,EAAGS,GAAG,UAAW+L,GAAGvM,GAAI,SAAS,CAAC,CACjG,EAAGvzJ,EAAI,CAACuzE,GAAGoB,KAAM,CACf,IAAKlB,EAAE,MAAM,SAAW,EAAE,aAAe,CAACL,EAAE,MAAM,QAChD,OAAOzwE,EAAE4wE,GAAGoB,EAAC,EACf,GAAIvB,EAAE,MAAM,SAAWuB,GAAG,CACxB,MAAMmrF,GAAKvsF,GAAEA,GAAE,OAAS,CAAC,EACzB,OAAO6hF,EAAE0K,GAAInrF,EAAC,CAChB,CACF,EAAG4gF,GAAKhiF,IAAM,CACZ,MAAMoB,GAAIl3E,EAAE,MACZuC,EAAE20E,GAAGpB,EAAC,EAAG7B,EAAE,MAAM,OAASA,EAAE,MAAM,MAAQ2jF,GAAE,CAC9C,EAAG3hF,EAAI,CAACH,GAAGoB,KAAM,CACf,MAAMmrF,GAAKlM,GAAG5wJ,EAAC,EAAI,CAAE,MAAOwwE,EAAE,MAAMmB,EAAC,EAAG,KAAMk+E,EAAE,MAAMl+E,EAAC,EAAG,EAAGorF,GAAKxsF,GAAI,EAAIsiF,GAAGiK,GAAI,CAAC,EAAItrF,GAAGsrF,GAAI,CAAC,EAC9Fz1I,EAAEmpI,GAAGuM,EAAE,EAAGtM,GAAGsM,EAAE,EAAGxsF,GAAI,EAAG,EAAE,uBAAuB,IAAMqiF,EAAGjhF,GAAG6+E,GAAGuM,EAAE,EAAGtM,GAAGsM,EAAE,CAAC,EAAG/8H,EAAE,oBAAqB,CAAE,SAAU2xC,GAAG,MAAO6+E,GAAGuM,EAAE,EAAG,KAAMtM,GAAGsM,EAAE,EAAG,EAAGruF,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,MAAQ8jF,GAAG7gF,EAAC,EAAG/qD,IAChM,EAAG4rI,GAAMjiF,IAAM,CACb,QAASoB,GAAIpB,GAAI,EAAGoB,IAAK,EAAGA,KAAK,CAC/B,MAAMmrF,GAAKtrF,GAAGo/E,GAAG5wJ,EAAC,EAAI,CAAE,MAAOwwE,EAAE,MAAMmB,GAAI,CAAC,EAAG,KAAMk+E,EAAE,MAAMl+E,GAAI,CAAC,CAAC,CAAE,EAAG,CAAC,EACzEihF,EAAGjhF,GAAG6+E,GAAGsM,EAAE,EAAGrM,GAAGqM,EAAE,CAAC,CACtB,CACA,QAASnrF,GAAIpB,GAAI,EAAGoB,IAAKjD,EAAE,MAAM,MAAQ,EAAGiD,KAAK,CAC/C,MAAMmrF,GAAKjK,GAAGjC,GAAG5wJ,EAAC,EAAI,CAAE,MAAOwwE,EAAE,MAAMmB,GAAI,CAAC,EAAG,KAAMk+E,EAAE,MAAMl+E,GAAI,CAAC,CAAC,CAAE,EAAG,CAAC,EACzEihF,EAAGjhF,GAAG6+E,GAAGsM,EAAE,EAAGrM,GAAGqM,EAAE,CAAC,CACtB,CACF,EAAGzK,GAAK,IAAM,CACZ,GAAI,MAAM,QAAQ53J,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAW,EAAG,CAClD,MAAM81E,GAAIvwE,EAAEA,EAAEvF,EAAE,MAAM,CAAC,GAAKo4J,GAAGp4J,EAAE,MAAM,CAAC,EAAG,CAAC,CAAC,CAAC,EAAG,CAACk3E,GAAGmrF,EAAE,EAAI,CAACtM,GAAG/1J,EAAE,MAAM,CAAC,CAAC,EAAGg2J,GAAGh2J,EAAE,MAAM,CAAC,CAAC,CAAC,EAAG,CAACsiK,GAAIC,EAAE,EAAI,CAACxM,GAAG/1J,EAAE,MAAM,CAAC,CAAC,EAAGg2J,GAAGh2J,EAAE,MAAM,CAAC,CAAC,CAAC,GACtIk3E,KAAMorF,IAAMprF,KAAMorF,IAAMD,KAAOE,KAAOtuF,EAAE,MAAM,MAAQkkF,EAAG,EAAGpC,GAAGjgF,EAAC,EAAGkgF,GAAGlgF,EAAC,CAAC,CAC3E,MAAO91E,EAAE,OAAS,CAAC,MAAM,QAAQA,EAAE,KAAK,IAAMm4J,EAAG,EAAGpC,GAAG/1J,EAAE,KAAK,EAAGg2J,GAAGh2J,EAAE,KAAK,CAAC,EAAG0/B,EAAEn6B,EAAC,CAAE,EACtF,EAAGg7J,GAAK,IAAM,CACZ,EAAE,YAAcpI,EAAG,EAAGpC,GAAGxwJ,EAAE,EAAE,SAAS,CAAC,EAAGywJ,GAAGzwJ,EAAE,EAAE,SAAS,CAAC,CAAC,EAAG0uE,EAAE,MAAM,OAAS8jF,GAAG,CAAC,EACtF,EAAGyI,GAAK,CAAC1qF,GAAGoB,KAAM,CAChB,GAAIhB,EAAE,MAAM,oBAAqB,CAC/B,MAAMmsF,GAAK,KAAK,IAAG,EAAK,EAAE,MAAM,QAAO,EAAIC,GAAK,KAAK,IAAIxsF,GAAE,MAAM,EACjE,IAAIysF,GAAK,IACTD,GAAK,IAAMC,GAAK,KAAMD,GAAK,MAAQC,GAAK,GAAIF,GAAKE,KAAO,EAAE,MAAwB,IAAI,KAAQtsF,EAC5FC,EAAE,MAAM,sBAAwB,UAAYJ,GAAE,OAAS,CAACA,GAAE,OAC1DoB,EACR,EACI,CACF,EAAGupF,GAAK,CAAC3qF,GAAGoB,GAAGmrF,GAAK,KAAO,CACzBnsF,EAAE,MAAM,qBAAuB,EAAE,WAAamsF,IAAMG,GAAG1sF,GAAGoB,EAAC,CAC7D,EAAGsrF,GAAK,CAAC1sF,GAAGoB,KAAM,CAChBjB,EAAEH,KAAM,QAAU,GAAK,EAAGoB,EAAC,CAC7B,EAAGurF,GAAM3sF,IAAM,CACb,GAAIjC,EAAE,MAAM,QACV,OAAO6jE,EAAE5hE,GAAE,MAAOjC,EAAE,MAAM,OAAO,CACrC,EAAG6uF,GAAK,CAAC5sF,GAAGoB,KAAM,CAChB,OAAQ,EAAE,WAAa,GAAK,SAAW,EAAE,SAAQ,CAC/C,IAAK,UACH,MAAO,CAAC,GAAI,EAAE,EAChB,IAAK,SACH,MAAO,CAACpB,IAAK,EAAG,EAAE,EACpB,IAAK,OACH,MAAO,CAACA,IAAK,GAAKoB,GAAIpB,GAAG,EAAE,EAC7B,IAAK,SACH,MAAO,CAAC,GAAI,EAAE,EAChB,QACE,MAAO,CAAC,GAAI,EAAE,CACtB,CACE,EAAG6sF,GAAK,CAAC7sF,GAAGoB,GAAGmrF,GAAIC,KAAO,CACxB,GAAI,EAAE,UAAYxsF,GAAE,OAAS,EAAG,CAC9B,MAAMysF,GAAK,EAAIzsF,GAAE,OAAQ8sF,IAAM1rF,GAAE,OAAM,EAAK,EAAIorF,IAAM,EAAGO,GAAK,GAAKR,GAAG,SAAW,EAAIC,IAAM,EAAG,CAACQ,GAAIC,EAAE,EAAIL,GAAGE,GAAIC,EAAE,EAClH,QAASG,GAAK,EAAGA,IAAMT,GAAIS,KACzB,GAAID,GAAK,CAAC,EAAEC,GAAK,IAAMF,GAAKA,GAAI,CAC9B,MAAMG,GAAKntF,GAAE,CAAC,EAAE,KAAK,CAAC,EAAGotF,GAAKC,GAAGhH,GAAG8G,GAAG,MAAO,EAAE,EAAGlN,GAAG7+E,EAAC,CAAC,EACxDpB,GAAE,QAAQ,CAAE,KAAMotF,EAAE,CAAE,CACxB,KAAO,CACL,MAAMD,GAAKntF,GAAEA,GAAE,OAAS,CAAC,EAAGotF,GAAKD,GAAG,KAAKA,GAAG,KAAK,OAAS,CAAC,EAAGG,GAAKD,GAAGhH,GAAG+G,GAAG,MAAO,CAAC,EAAGnN,GAAG7+E,EAAC,CAAC,EAC5FpB,GAAE,KAAK,CAAE,KAAMstF,EAAE,CAAE,CACrB,CACJ,CACA,OAAOttF,EACT,EAAGqtF,GAAK,CAACrtF,GAAGoB,KAAM,CAChB,MAAMmrF,GAAK98J,EAAEuwE,EAAC,EAAGwsF,GAAK,GACtB,QAASC,GAAK,EAAGA,GAAK,EAAGA,KAAM,CAC7B,MAAMK,GAAKzG,GAAGkG,GAAIE,EAAE,EAAGc,GAAKtN,GAAG6M,EAAE,IAAM1rF,GACvCorF,GAAG,KAAK,CACN,KAAM,EAAE,iBAAmBe,GAAK,GAAK7tF,GAAEotF,EAAE,EACzC,MAAOA,GACP,QAAS,CAACS,GACV,UAAW,EACnB,CAAO,CACH,CACA,OAAOf,EACT,EAAG5+I,GAAK,CAACoyD,GAAGoB,KAAM,CAChB,MAAMmrF,GAAK,GAAIC,GAAK/8J,EAAE,IAAI,KAAK2xE,GAAGpB,EAAC,CAAC,EAAGysF,GAAKh9J,EAAE,IAAI,KAAK2xE,GAAGpB,GAAI,EAAG,CAAC,CAAC,EAAG8sF,GAAK,EAAE,UAAWS,GAAKrH,GAAGsG,GAAI,CAAE,aAAcM,EAAE,CAAE,EAAGC,GAAMC,IAAO,CACtI,MAAMC,GAAKI,GAAGL,GAAIhtF,EAAC,EACnB,GAAIusF,GAAG,KAAK,CAAE,KAAMU,EAAE,CAAE,EAAG,CAACV,GAAGA,GAAG,OAAS,CAAC,EAAE,KAAK,KAAMW,IAAO9M,GAAG3wJ,EAAEy9J,GAAG,KAAK,EAAGvM,GAAG8L,EAAE,CAAC,CAAC,EAAG,CACxF,MAAMS,GAAK7G,GAAG2G,GAAI,CAAC,EACnBD,GAAGG,EAAE,CACP,CACF,EACA,OAAOH,GAAGQ,EAAE,EAAGV,GAAGN,GAAIC,GAAIC,GAAIK,EAAE,CAClC,EAAGU,GAAMxtF,IAAM,CACb,MAAMoB,GAAIZ,GACR,CAAE,MAAOlf,EAAE,MAAO,QAASA,EAAE,QAAS,QAASmsG,IAAI,EACnDh+J,EAAEuwE,GAAE,KAAK,CACf,EACIvwC,EAAE,aAAc2xC,EAAC,EAAGvB,EAAE,MAAM,QAAUkhF,EAAG3/E,GAAGvB,EAAE,MAAM,KAAK,EAAI31E,EAAE,MAAQk3E,GAAG,IAAKyhF,KAAK,KAAK,IAAM,CAC7FwE,EAAE,CACJ,CAAC,CACH,EAAGrmF,GAAMhB,IAAME,EAAE,MAAM,gBAAkB2/E,GAAGhwG,EAAE,MAAM,CAAC,EAAGmwB,EAAC,EAAE,KAAMusF,IAAOl2H,EAAEk2H,EAAE,CAAC,EAAI,GAAImB,GAAK,IAAM,CAC9F79G,EAAE,MAAQ3lD,EAAE,MAAQA,EAAE,MAAM,MAAK,EAAG,OAAQ81E,IAAM,CAAC,CAACA,EAAC,EAAI,GAAInwB,EAAE,MAAM,SAAW,GAAK,EAAEqwB,EAAE,MAAM,YAAcA,EAAE,MAAM,YAAcrwB,EAAE,MAAQ,GAC/I,EAAG89G,GAAK,CAAC3tF,GAAGoB,KAAM,CAChB,MAAMmrF,GAAK,CAAC98J,EAAEuwE,GAAE,KAAK,EAAGqmF,GAAG52J,EAAEuwE,GAAE,KAAK,EAAG,CAACE,EAAE,MAAM,SAAS,CAAC,EAC1DO,EAAE8rF,EAAE,GAAKnrF,IAAKwsF,GAAG5tF,GAAE,KAAK,EAAGnwB,EAAE,MAAQ08G,IAAM98H,EAAE,eAAgBuwC,GAAE,KAAK,CACtE,EAAG4tF,GAAM5tF,IAAM,CACb,MAAMoB,GAAI6+E,GAAGxwJ,EAAEuwE,EAAC,CAAC,EAAGusF,GAAKrM,GAAGzwJ,EAAEuwE,EAAC,CAAC,EAChC,GAAIqiF,EAAG,EAAGjhF,GAAGmrF,EAAE,EAAGpuF,EAAE,MAAM,MAAQ,EAChC,QAASquF,GAAK,EAAGA,GAAKruF,EAAE,MAAM,MAAOquF,KAAM,CACzC,MAAMC,GAAK1sF,EACTsgF,GAAG5wJ,EAAEuwE,EAAC,EAAG,CAAE,KAAMs/E,EAAE,MAAMkN,GAAK,CAAC,EAAG,MAAOvsF,EAAE,MAAMusF,GAAK,CAAC,CAAC,CAAE,CACpE,EACQnK,EAAGmK,GAAIC,GAAG,MAAOA,GAAG,IAAI,CAC1B,CACJ,EAAGoB,GAAM7tF,IAAM,CACb,GAAIgB,GAAGhB,GAAE,KAAK,GAAK,CAACqE,EAAErE,GAAE,MAAO91E,EAAE,MAAOg2E,EAAE,MAAM,WAAa,EAAI,CAAC,EAChE,OAAOzwC,EAAE,eAAgBuwC,GAAE,KAAK,EAClCnwB,EAAE,MAAQixG,GAAGrxJ,EAAEuwE,GAAE,KAAK,CAAC,CACzB,EAAGU,GAAK,CAACV,GAAGoB,KAAM,CAChB,GAAIssF,GAAE,EAAIxtF,EAAE,MAAM,UAAW,OAAOytF,GAAG3tF,GAAGoB,EAAC,EAC3C,GAAIlB,EAAE,MAAM,YAAcA,EAAE,MAAM,SAAU,OAAO2tF,GAAG7tF,EAAC,EACvDnwB,EAAE,MAAM,CAAC,EAAIw0B,EAAE50E,EAAEuwE,GAAE,KAAK,EAAG91E,EAAE,KAAK,GAAK,CAAC82E,GAAGhB,GAAE,KAAK,EAAI4/E,GAAGnwJ,EAAEuwE,GAAE,KAAK,EAAGvwE,EAAEogD,EAAE,MAAM,CAAC,CAAC,CAAC,GAAKA,EAAE,MAAM,QAAQpgD,EAAEuwE,GAAE,KAAK,CAAC,EAAGvwC,EAAE,YAAaogB,EAAE,MAAM,CAAC,CAAC,IAAMA,EAAE,MAAM,CAAC,EAAIpgD,EAAEuwE,GAAE,KAAK,EAAGvwC,EAAE,YAAaogB,EAAE,MAAM,CAAC,CAAC,GAAKpgB,EAAE,eAAgBuwC,GAAE,KAAK,GAAKnwB,EAAE,MAAM,CAAC,EAAIpgD,EAAEuwE,GAAE,KAAK,EAAGvwC,EAAE,cAAeogB,EAAE,MAAM,CAAC,CAAC,EAC9R,EAAG49G,GAAK,CAACztF,GAAI,KAAOF,EAAE,MAAM,cAAgB,MAAM,QAAQxe,EAAE,OAAO,EAAI0e,GAAI1e,EAAE,QAAQ,CAAC,EAAIA,EAAE,QAAQ,CAAC,EAAIA,EAAE,QAAU,EAAGwsG,GAAM9tF,IAAM,CAClInwB,EAAE,MAAMmwB,EAAC,EAAIQ,GACX,CACE,MAAOlf,EAAE,MAAM0e,EAAC,EAChB,QAAS1e,EAAE,QAAQ0e,EAAC,EACpB,QAASytF,GAAGztF,KAAM,CAAC,CAC3B,EACMnwB,EAAE,MAAMmwB,EAAC,CACf,CACE,EAAG+tF,GAAK,IAAM,CACZl+G,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,CAAC,GAAK,CAACA,EAAE,QAAQ,CAAC,EAAI,CAACA,EAAE,QAAQ,CAAC,IAAMA,EAAE,MAAM,QAAO,EAAIpgB,EAAE,cAAeogB,EAAE,MAAM,CAAC,CAAC,EAAGpgB,EAAE,YAAaogB,EAAE,MAAM,CAAC,CAAC,EAC1I,EAAGm+G,GAAK,IAAM,CACZn+G,EAAE,MAAM,SAAWA,EAAE,MAAM,CAAC,GAAK,CAACA,EAAE,MAAM,CAAC,EAAIi+G,GAAG,CAAC,GAAKA,GAAG,CAAC,EAAGA,GAAG,CAAC,EAAG,EAAC,GAAKC,KAAM7jK,EAAE,MAAQ2lD,EAAE,MAAM,MAAK,EAAIgxG,GAC3GhxG,EAAE,MACFqa,EACAra,EAAE,MAAM,OAAS,GAAK6O,EAAE,OAAO,MAAM,OAAS,EAAE,WAAaA,EAAE,OAAO,OAAO,OAAS,EAC5F,EACE,EAAGuvG,GAAK,CAACjuF,GAAGoB,GAAI,KAAO,CACrB,GAAI/qC,EAAE2pC,GAAE,KAAK,GAAK,CAACA,GAAE,SAAW,EAAE,gBAChC,OAAOvwC,EAAE,eAAgBuwC,GAAE,KAAK,EAClC,GAAI9xE,EAAE,MAAQ,gBAAgB8xE,EAAC,EAAG,CAACE,EAAE,MAAM,QAAS,OAAOstF,GAAGxtF,EAAC,EAC/D,MAAM,QAAQ1e,EAAE,KAAK,GAAK,MAAM,QAAQA,EAAE,OAAO,GAAK,CAACue,EAAE,MAAM,UAAYa,GAAGV,GAAGoB,EAAC,EAAG4sF,KACvF,EAAGE,GAAK,CAACluF,GAAGoB,KAAM,CAChBihF,EAAGriF,GAAGoB,GAAE,MAAOA,GAAE,KAAM,EAAE,EAAGjD,EAAE,MAAM,OAAS,CAACA,EAAE,MAAM,MAAQ8jF,GAAGjiF,EAAC,EAAGvwC,EAAE,oBAAqB,CAAE,SAAUuwC,GAAG,MAAOoB,GAAE,MAAO,KAAMA,GAAE,IAAI,CAAE,EAAG/qD,EAAE8nD,EAAE,MAAM,KAAO6B,GAAI,MAAM,EACvK,MAAMusF,GAAK7tG,EAAE,OAAO,OAAO,OAASA,EAAE,MAAM,MAAM,EAAE,QAAQ,EAAI,OAChE,CAAC0iB,GAAE,UAAYmrF,KAAOzN,GAAG,OAASyN,KAAOzN,GAAG,OAAS,EAAC,CACxD,EAAGqP,GAAMnuF,IAAM,CACbghF,GAAG,CACD,MAAOhhF,EACb,CAAK,EAAG7xE,IAAK,EAAE,gBAAkB00J,GAAE,EAAG,KAAK,IAAMl3J,EAAE,EAAE,CAAC,CACpD,EAAGyiK,GAAK,IAAM,CACZ,IAAIpuF,GAAIvwE,EAAC,EACT,OAAO,EAAE,WAAW,cAAgBuwE,GAAIquF,GAAGruF,GAAG,CAC5C,eAAgB,EAAE,UAAU,YAAY,UAAY,OACpD,UAAW,EAAE,UAAU,YAAY,SAAW,EACpD,CAAK,GAAIA,EACP,EAAGsuF,GAAK,IAAM,CACZ,MAAMtuF,GAAIouF,GAAE,EACZ,CAACluF,EAAE,MAAM,SAAW,CAACL,EAAE,MAAM,QAAU31E,EAAE,MAAQ81E,GAAI91E,EAAE,OAAS,MAAM,QAAQA,EAAE,KAAK,GAAKA,EAAE,MAAM,CAAC,EAAI21E,EAAE,MAAM,QAAU31E,EAAE,MAAQ,CAAC,GAAGA,EAAE,MAAO81E,EAAC,EAAI91E,EAAE,MAAQ01J,GAAG5/E,GAAG91E,EAAE,MAAM,CAAC,CAAC,EAAI,CAAC81E,GAAG91E,EAAE,MAAM,CAAC,CAAC,EAAI,CAACA,EAAE,MAAM,CAAC,EAAG81E,EAAC,EAAI91E,EAAE,MAAQ,CAAC81E,EAAC,EAAG7xE,EAAC,CACzO,EAAGogK,GAAK,IAAM,CACZ,GAAI,MAAM,QAAQrkK,EAAE,KAAK,EACvB,GAAI21E,EAAE,MAAM,QAAS,CACnB,MAAMG,GAAIwuF,GAAE,EACZtkK,EAAE,MAAMA,EAAE,MAAM,OAAS,CAAC,EAAIq2J,GAAGvgF,EAAC,CACpC,MACE91E,EAAE,MAAQA,EAAE,MAAM,IAAI,CAAC81E,GAAGoB,KAAMpB,IAAKugF,GAAGvgF,GAAGoB,EAAC,CAAC,OAE/Cl3E,EAAE,MAAQq2J,GAAGr2J,EAAE,KAAK,EACtBggE,EAAE,aAAa,CACjB,EAAGskG,GAAK,IAAM,MAAM,QAAQtkK,EAAE,KAAK,GAAKA,EAAE,MAAM,OAASA,EAAE,MAAMA,EAAE,MAAM,OAAS,CAAC,EAAI,KAAM2wH,GAAM76C,IAAM,CACvG,IAAIoB,GAAI,GACR,GAAIlB,EAAE,MAAM,SAAW,MAAM,QAAQh2E,EAAE,KAAK,EAC1C,UAAWqiK,MAAM,OAAO,KAAKvsF,EAAC,EAAG,CAC/B,MAAMwsF,GAAKxsF,GAAEusF,EAAE,EACf,MAAM,QAAQC,EAAE,IAAMlrG,EAAEirG,EAAE,EAAE,CAAC,IAAMC,GAAG,CAAC,IAAMprF,GAAI,eAAgB9f,EAAEirG,EAAE,EAAE,CAAC,IAAMC,GAAG,CAAC,IAAMprF,GAAI,eAC9F,CACF,OAAOA,EACT,EACA,MAAO,CACL,UAAWxsE,EACX,WAAY1K,EACZ,MAAO+1E,EACP,KAAMq/E,EACN,KAAMh+F,EACN,oBAAqBo/F,GACrB,MAAO1gI,EACP,aAAc4/C,EACd,gBAAiBhyD,GACjB,UAAW++I,GACX,aAAcjC,GACd,YAAagC,GACb,YAAa/B,GACb,WAAYsD,GACZ,gBAAiBC,GACjB,WAAYC,GACZ,kBAAmBG,GACnB,WAAatuF,IAAM,CACjB,MAAMoB,GAAIy5C,GAAG76C,EAAC,EACdsgF,EAAEtgF,GAAGuuF,EAAE,EAAGntF,IAAK3xC,EAAE2xC,GAAGl3E,EAAE,MAAMk3E,KAAM,cAAgB,EAAI,CAAC,CAAC,CAC1D,EACA,mBAAoBx3C,EACpB,aAAc+1H,CAClB,CACA,EAAG8O,GAAK,IAAM,CACZ,KAAM,CACJ,YAAa,EACb,UAAWvkG,EACX,YAAa7zC,EACb,aAAc,EACd,cAAew5B,EACf,YAAa,EACb,gBAAiB3hD,EACjB,yBAA0BuB,CAC9B,EAAM+vJ,GAAE,EAAI,CACR,QAAS/vH,EACT,MAAO76B,EACP,UAAWqrE,EACX,SAAU,CAAE,eAAgBq/E,EAAG,WAAYh+F,EAAG,GAAIp3D,EAAG,UAAW,EAAG,UAAW81B,EAAG,MAAOqgD,CAAC,EACzF,WAAYlC,CAChB,EAAMohF,GAAE,EAAI,CAAE,WAAYh/E,CAAC,EAAK6+E,GAAE,EAAIl/E,EAAIm+E,GAAG,IAAI,EAAGj+E,EAAKz0E,GAAM,CAC3D,CAACA,EAAE,SAAWs0E,EAAE,kBAAoBC,EAAE,MAAQv0E,EAAE,MAClD,EAAGoyE,EAAI,IAAM,CACXmC,EAAE,MAAQ,IACZ,EAAGL,EAAKl0E,GAAM,MAAM,QAAQwyE,EAAE,KAAK,GAAKkC,EAAE,MAAM,SAAWlC,EAAE,MAAM,CAAC,GAAK+B,EAAE,MAAQv0E,EAAI0qB,EAAE6pD,EAAE,MAAO/B,EAAE,MAAM,CAAC,CAAC,EAAI,EAAE+B,EAAE,MAAO/B,EAAE,MAAM,CAAC,CAAC,EAAI,GAAI2B,EAAI,CAACn0E,EAAGkU,IAAM,CACzJ,MAAMkgE,EAAI,IAAM5B,EAAE,MAAQt+D,EAAIs+D,EAAE,MAAM,CAAC,GAAK,KAAOA,EAAE,MAAM,CAAC,EAAI,KAAMv0C,EAAIu0C,EAAE,OAAS,MAAM,QAAQA,EAAE,KAAK,EAAI4B,EAAC,EAAK,KACpH,OAAO,EAAEtwC,EAAE9jC,EAAE,KAAK,EAAGi+B,CAAC,CACxB,EAAG80B,EAAK/yD,GAAM,CACZ,MAAMkU,EAAI,MAAM,QAAQs+D,EAAE,KAAK,EAAIA,EAAE,MAAM,CAAC,EAAI,KAChD,OAAOxyE,EAAI,CAAC,EAAEu0E,EAAE,MAAOrgE,CAAC,EAAI,EAC9B,EAAGiX,EAAI,CAACnrB,EAAGkU,EAAI,MAAQwgE,EAAE,MAAM,SAAWJ,EAAE,aAAe,MAAM,QAAQ9B,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAW,EAAI8B,EAAE,iBAAmB,CAACt0E,EAAE,QAAU,GAAK,EAAE8jC,EAAE9jC,EAAE,KAAK,EAAGwyE,EAAE,MAAMt+D,EAAI,EAAI,CAAC,CAAC,EAAIwgE,EAAE,MAAM,QAAUP,EAAEn0E,EAAGkU,CAAC,GAAK6+C,EAAE7+C,CAAC,GAAK,EAAElU,EAAE,MAAO,MAAM,QAAQwyE,EAAE,KAAK,EAAIA,EAAE,MAAM,CAAC,EAAI,IAAI,GAAK0B,EAAEhgE,CAAC,EAAI,GAAIw2B,EAAI,CAAC1qC,EAAGkU,IAAM,CAC7S,GAAI,MAAM,QAAQs+D,EAAE,KAAK,GAAKA,EAAE,MAAM,CAAC,GAAKA,EAAE,MAAM,SAAW,EAAG,CAChE,MAAM4B,EAAI,EAAEp0E,EAAE,MAAOu0E,EAAE,KAAK,EAC5B,OAAOrgE,EAAIwW,EAAE8nD,EAAE,MAAM,CAAC,EAAGxyE,EAAE,KAAK,GAAKo0E,EAAI,EAAE5B,EAAE,MAAM,CAAC,EAAGxyE,EAAE,KAAK,GAAKo0E,CACrE,CACA,MAAO,EACT,EAAGU,EAAK90E,GAAM,CAACwyE,EAAE,OAAS8B,EAAE,iBAAmB,CAACt0E,EAAE,QAAU,GAAK00E,EAAE,MAAM,QAAUJ,EAAE,WAAa,MAAM,QAAQ9B,EAAE,KAAK,EAAI,EAAExyE,EAAE,MAAOwyE,EAAE,MAAM,CAAC,GAAKvpE,CAAC,EAAI,GAAK0sD,EAAE,MAAM,SAAW,MAAM,QAAQ6c,EAAE,KAAK,EAAIA,EAAE,MAAM,KAAMt+D,GAAM,EAAEA,EAAGlU,EAAE,KAAK,CAAC,EAAI,EAAEA,EAAE,MAAOwyE,EAAE,MAAQA,EAAE,MAAQvpE,CAAC,EAAGyvE,EAAK14E,GAAM,CAC3R,GAAI00E,EAAE,MAAM,WAAaJ,EAAE,WAAY,CACrC,GAAIC,EAAE,MAAO,CACX,GAAID,EAAE,iBAAmB,CAACt0E,EAAE,QAAS,MAAO,GAC5C,MAAMkU,EAAIwmJ,GAAGnmF,EAAE,MAAO,CAACG,EAAE,MAAM,SAAS,EAAGN,EAAI7xE,EAAEuhC,EAAEywC,EAAE,KAAK,EAAGD,EAAE,SAAS,EACxE,OAAOA,EAAE,WAAa,EAAEF,EAAE,CAAC,EAAGtwC,EAAE9jC,EAAE,KAAK,CAAC,EAAI,EAAEkU,EAAG4vB,EAAE9jC,EAAE,KAAK,CAAC,CAC7D,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAG20J,EAAK30J,GAAM,CACZ,GAAI00E,EAAE,MAAM,WAAaJ,EAAE,WAAY,CACrC,GAAIC,EAAE,MAAO,CACX,MAAMrgE,EAAIwmJ,GAAGnmF,EAAE,MAAO,CAACG,EAAE,MAAM,SAAS,EACxC,GAAIJ,EAAE,iBAAmB,CAACt0E,EAAE,QAAS,MAAO,GAC5C,MAAMo0E,EAAI7xE,EAAEuhC,EAAEywC,EAAE,KAAK,EAAGD,EAAE,SAAS,EACnC,OAAOA,EAAE,WAAa5pD,EAAE1qB,EAAE,MAAOo0E,EAAE,CAAC,CAAC,GAAK,EAAEp0E,EAAE,MAAOo0E,EAAE,CAAC,CAAC,EAAI1pD,EAAE1qB,EAAE,MAAOu0E,EAAE,KAAK,GAAK,EAAEv0E,EAAE,MAAOkU,CAAC,CAClG,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAG0gJ,GAAM50J,GAAM,CACb,GAAI00E,EAAE,MAAM,WAAaJ,EAAE,WAAY,CACrC,GAAIC,EAAE,MAAO,CACX,GAAID,EAAE,iBAAmB,CAACt0E,EAAE,QAAS,MAAO,GAC5C,MAAMkU,EAAI3R,EAAEuhC,EAAEywC,EAAE,KAAK,EAAGD,EAAE,SAAS,EACnC,OAAOA,EAAE,WAAa,EAAEpgE,EAAE,CAAC,EAAGlU,EAAE,KAAK,EAAI,EAAEu0E,EAAE,MAAOv0E,EAAE,KAAK,CAC7D,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAG60J,GAAM70J,GAAMkkD,EAAEsuB,EAAE,MAAO+B,EAAE,MAAOv0E,EAAE,KAAK,EAAG80J,GAAK,IAAMxgF,EAAE,WAAa,MAAM,QAAQ9B,EAAE,KAAK,EAAI,CAAC,CAACA,EAAE,MAAM,CAAC,EAAI,GAAIyB,EAAI,IAAMK,EAAE,UAAY,EAAE9B,EAAE,KAAK,EAAI,GAAIuiF,GAAM/0J,GAAM,CACtK,GAAIs0E,EAAE,WAAY,MAAO,GACzB,MAAMpgE,EAAIwgE,EAAE,MAAM,QAAU,CAACvpD,EAAEnrB,CAAC,GAAK,CAACmrB,EAAEnrB,EAAG,EAAE,EAAI,GACjD,MAAO,CAAC40E,EAAE50E,EAAE,KAAK,GAAK,CAAC80E,EAAE90E,CAAC,GAAK,EAAE,CAACA,EAAE,SAAWs0E,EAAE,kBAAoBpgE,CACvE,EAAG6/D,GAAK/zE,GAAM00E,EAAE,MAAM,QAAUJ,EAAE,UAAYwgF,GAAE,GAAMhgF,EAAE90E,CAAC,EAAI,GAAK80E,EAAE90E,CAAC,EAAGg1J,GAAMh1J,GAAM,EAAE,MAAQu+D,EAAEv+D,EAAE,MAAOq0B,EAAE,MAAM,SAAS,EAAI,GAAIwgD,GAAK70E,GAAM,CAC3I,MAAMkU,EAAI0gE,EAAE50E,EAAE,KAAK,EACnB,OAAOkU,IAAM,OAAO,EAAE,OAAS,WAAa,CAAC,EAAE,MAAMlU,EAAE,MAAOkU,CAAC,EAAI,CAAC,EAAE,MAAM,QAAQ,kBACtF,EAAG+/I,GAAMj0J,GAAM,OAAO,EAAE,OAAS,WAAa,EAAE,MAAMA,EAAE,KAAK,EAAI,EAAE,MAAM,UAAU,SAASA,EAAE,MAAM,OAAM,CAAE,EAAGy0J,GAAMz0J,IAAO00E,EAAE,MAAM,SAAWJ,EAAE,cAAgB,EAAEq/E,EAAE,MAAM,MAAQ,IAAM3zJ,EAAE,UAAYi0E,EAAC,GAAM,EAAE,CAACj0E,EAAE,SAAWs0E,EAAE,kBAAoB,CAACQ,EAAE90E,CAAC,EAAI60J,GAAG70J,CAAC,EAAI,GAAIk0J,GAAMl0J,GAAM,CAClR,GAAI,MAAM,QAAQwyE,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAW,EAAG,CAClD,KAAM,CAAE,OAAQt+D,EAAG,MAAOkgE,CAAC,EAAKtwE,EAAE,CAAC4wE,EAAE,MAAM,SAAUlC,EAAE,MAAM,CAAC,CAAC,EAC/D,OAAOqkF,GAAG72J,EAAE,MAAOkU,CAAC,GAAK4iJ,GAAG92J,EAAE,MAAOo0E,CAAC,CACxC,CACA,MAAO,EACT,EAAG8gF,GAAMl1J,GAAM,CACb,GAAI,MAAM,QAAQwyE,EAAE,KAAK,GAAKA,EAAE,MAAM,SAAW,EAAG,CAClD,KAAM,CAAE,OAAQt+D,EAAG,MAAOkgE,CAAC,EAAKtwE,EAAE,CAAC4wE,EAAE,MAAM,SAAUlC,EAAE,MAAM,CAAC,CAAC,EAC/D,OAAOtuB,EAAE,CAAChwC,EAAGkgE,CAAC,EAAG5B,EAAE,MAAM,CAAC,EAAGxyE,EAAE,KAAK,CACtC,CACA,MAAO,EACT,EAAGm1J,GAAMn1J,GAAM00E,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,UAAYA,EAAE,MAAM,SAAWw/E,GAAGl0J,CAAC,GAAKk1J,GAAGl1J,CAAC,EAAI00E,EAAE,MAAM,SAAWw/E,GAAGl0J,CAAC,EAAIk1J,GAAGl1J,CAAC,EAAI,GAAIo1J,EAAMp1J,GAAM,CACpL,KAAM,CAAE,aAAckU,EAAG,WAAYkgE,CAAC,EAAKsiF,EAAG12J,CAAC,EAAGi+B,EAAIy2C,EAAE,MAAM,QAAUxgE,GAAKkgE,EAAI,GACjF,MAAO,CACL,gBAAiB,CAACp0E,EAAE,QACpB,YAAa,CAACs0E,EAAE,UAAY,EAAE,CAACt0E,EAAE,SAAWs0E,EAAE,kBAAoB,CAACM,EAAE50E,EAAE,KAAK,GAAK,CAACm1J,GAAGn1J,CAAC,EACtF,kBAAmB40E,EAAE50E,EAAE,KAAK,GAAKm1J,GAAGn1J,CAAC,EACrC,mBAAoB,CAAC60E,GAAE70E,CAAC,IAAMg1J,GAAGh1J,CAAC,GAAKi0J,GAAGj0J,CAAC,IAAM,CAAC+zE,GAAE/zE,CAAC,GAAK,CAACi+B,GAAK,CAAC22H,GAAG50J,CAAC,GAAK,EAAEy0J,GAAGz0J,CAAC,GAAKs0E,EAAE,aAAe,CAACF,EACvG,0BAA2B,CAACS,GAAE70E,CAAC,IAAMg1J,GAAGh1J,CAAC,GAAKi0J,GAAGj0J,CAAC,IAAM+zE,GAAE/zE,CAAC,EAC3D,UAAW,CAACs0E,EAAE,SAAW,EAAEt0E,EAAE,MAAOiJ,CAAC,GAAKjJ,EAAE,QAC5C,WAAY,EAAEA,EAAE,MAAOiJ,CAAC,EACxB,aAAcyhB,EAAE1qB,EAAE,MAAOiJ,CAAC,CAChC,CACE,EAAGosJ,GAAMr1J,IAAO,CACd,gBAAiB+zE,GAAE/zE,CAAC,EACpB,eAAgB+0J,GAAG/0J,CAAC,CACxB,GAAMi2I,EAAKj2I,GAAM,CACb,GAAIwyE,EAAE,OAAS,CAAC,MAAM,QAAQA,EAAE,KAAK,EAAG,CACtC,MAAMt+D,EAAI3R,EAAEiwE,EAAE,MAAO8B,EAAE,SAAS,EAChC,MAAO,CACL,GAAG0/E,EAAEh0J,CAAC,EACN,gBAAiB,EAAEkU,EAAE,CAAC,EAAGlU,EAAE,KAAK,EAChC,cAAe,EAAEkU,EAAE,CAAC,EAAGlU,EAAE,KAAK,EAC9B,uBAAwB0qB,EAAE1qB,EAAE,MAAOkU,EAAE,CAAC,CAAC,GAAK,EAAElU,EAAE,MAAOkU,EAAE,CAAC,CAAC,CACnE,CACI,CACA,MAAO,CACL,GAAG8/I,EAAEh0J,CAAC,CACZ,CACE,EAAG42J,EAAM52J,GAAM,CACb,GAAIwyE,EAAE,OAAS,MAAM,QAAQA,EAAE,KAAK,EAAG,CACrC,MAAMt+D,EAAI3R,EAAEiwE,EAAE,MAAM,CAAC,EAAG8B,EAAE,SAAS,EAAGF,EAAI5B,EAAE,MAAM,CAAC,EAAIjwE,EAAEiwE,EAAE,MAAM,CAAC,EAAG8B,EAAE,SAAS,EAAI,GACpF,MAAO,CACL,GAAG0/E,EAAEh0J,CAAC,EACN,gBAAiB,EAAEkU,EAAE,CAAC,EAAGlU,EAAE,KAAK,GAAK,EAAEo0E,EAAE,CAAC,EAAGp0E,EAAE,KAAK,EACpD,cAAe,EAAEkU,EAAE,CAAC,EAAGlU,EAAE,KAAK,GAAK,EAAEo0E,EAAE,CAAC,EAAGp0E,EAAE,KAAK,EAClD,uBAAwB0qB,EAAE1qB,EAAE,MAAOkU,EAAE,CAAC,CAAC,GAAK,EAAElU,EAAE,MAAOkU,EAAE,CAAC,CAAC,GAAKwW,EAAE1qB,EAAE,MAAOo0E,EAAE,CAAC,CAAC,GAAK,EAAEp0E,EAAE,MAAOo0E,EAAE,CAAC,CAAC,EACnG,kBAAmB1pD,EAAE1qB,EAAE,MAAOkU,EAAE,CAAC,CAAC,GAAK,EAAElU,EAAE,MAAOo0E,EAAE,CAAC,CAAC,CAC9D,CACI,CACA,MAAO,CACL,GAAG4/E,EAAEh0J,CAAC,CACZ,CACE,EAAG02J,EAAM12J,GAAM,CACb,MAAMkU,EAAIy/I,EAAE,MAAM,MAAQ,EAAI3zJ,EAAE,SAAWmrB,EAAEnrB,CAAC,GAAKi0E,EAAC,EAAK9oD,EAAEnrB,CAAC,GAAKi0E,EAAC,EAAIG,EAAIu/E,EAAE,MAAM,MAAQ,EAAI3zJ,EAAE,SAAWmrB,EAAEnrB,EAAG,EAAE,GAAKi0E,EAAC,EAAK9oD,EAAEnrB,EAAG,EAAE,GAAKi0E,EAAC,EAC1I,MAAO,CAAE,aAAc//D,EAAG,WAAYkgE,CAAC,CACzC,EAAG5xE,EAAKxC,GAAM,CACZ,KAAM,CAAE,aAAckU,EAAG,WAAYkgE,CAAC,EAAKsiF,EAAG12J,CAAC,EAC/C,MAAO,CACL,gBAAiBkU,EACjB,cAAekgE,EACf,kBAAmBqgF,GAAGz0J,CAAC,EACvB,eAAgB,EAAEA,EAAE,MAAOu0E,EAAE,KAAK,GAAK,CAACrgE,GAAK,CAACkgE,GAAK,CAACE,EAAE,WACtD,qBAAsB5pC,EAAE1qC,EAAG,EAAE,EAC7B,mBAAoB0qC,EAAE1qC,EAAG,EAAE,CACjC,CACE,EAAGg0J,EAAKh0J,IAAO,CACb,GAAGwC,EAAExC,CAAC,EACN,oBAAqB20J,EAAE30J,CAAC,EACxB,0BAA2B40J,GAAG50J,CAAC,EAC/B,wBAAyB04E,EAAE14E,CAAC,CAChC,GAAMu1E,EAAKv1E,GAAM00E,EAAE,MAAM,QAAUA,EAAE,MAAM,UAAYs/E,EAAEh0J,CAAC,EAAIs0E,EAAE,UAAY,CAAE,GAAG+gF,GAAGr1J,CAAC,EAAG,GAAGwC,EAAExC,CAAC,GAAMs0E,EAAE,WAAasiF,EAAG52J,CAAC,EAAIwC,EAAExC,CAAC,EAAIs0E,EAAE,WAAa2hE,EAAEj2I,CAAC,EAAIq1J,GAAGr1J,CAAC,EAC1J,MAAO,CACL,aAAcy0E,EACd,eAAgBrC,EAChB,gBAAkBpyE,GAAMs0E,EAAE,iBAAmB,CAACt0E,EAAE,QAAU,GAAK,CAC7D,GAAGo1J,EAAGp1J,CAAC,EACP,GAAGu1E,EAAEv1E,CAAC,EACN,CAACzB,EAAE,MAAM,SAAWA,EAAE,MAAM,SAASyB,EAAE,MAAOwyE,EAAE,KAAK,EAAI,EAAE,EAAG,GAC9D,GAAGj0E,EAAE,MAAM,YACjB,CACA,CACA,EAAGwkK,GAAK,CAAE,IAAK,CAAC,EAAIC,GAAqBxH,GAAG,CAC1C,OAAQ,aACR,MAAuByH,GAAG,CACxB,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,GACb,eAAgB,CAAE,KAAM,OAAO,CACnC,EAAKjJ,EAAE,EACL,MAAO,CAAC,QAAS,mBAAoB,aAAc,aAAc,cAAe,cAAe,YAAY,EAC3G,MAAM,EAAG,CAAE,OAAQz7F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,MAAO,EACP,KAAM3hD,EACN,WAAYuB,EACZ,KAAMggC,EACN,oBAAqB76B,EACrB,MAAOqrE,EACP,aAAcq/E,EACd,gBAAiBh+F,EACjB,UAAWp3D,EACX,YAAa,EACb,aAAc81B,EACd,YAAaqgD,EACb,WAAYlC,EACZ,gBAAiBoC,EACjB,WAAYL,EACZ,kBAAmBE,EACnB,WAAYrC,EACZ,mBAAoB8B,EACpB,aAAcC,CACpB,EAAQwsF,GAAGz8G,EAAG,EAAG+xF,EAAG2gB,CAAE,EAAG7jG,EAAIiiB,GAAE,EAAI,CAAE,aAAc7pD,EAAG,gBAAiBuf,EAAG,eAAgBoqC,CAAC,EAAKguF,KAAM,CAChG,QAASpqF,EACT,SAAUi8E,EACV,UAAWC,GACX,SAAU,CAAE,eAAgBC,GAAI,WAAYC,EAAE,CACpD,EAAQlB,GAAE,EAAI,CAAE,SAAU3/E,EAAG,UAAW8gF,EAAE,EAAK+F,GAAE,EAAI,CAAE,UAAW/mF,EAAC,EAAK8/E,GAAE,EAAI,CAAE,SAAUmB,EAAE,EAAKS,GAAE,EAAI5gF,GAAI4mF,GAAG,iBAAiB,EAAGxH,GAAKwH,GAAG,UAAU,EAAGhH,GAAKgH,GAAG,aAAa,EAAGvH,GAAKc,GAAGjiG,EAAG,UAAU,EAAGmiG,GAAKF,GAAGjiG,EAAG,WAAW,EAAGoiG,GAAKH,GAAGjiG,EAAG,YAAY,EAAGqiG,EAAMn3H,GAAM,CAChQ,EAAE,QAASA,CAAC,CACd,EACA81H,GACEc,GACA,CAAC52H,EAAG,IAAM,CACRA,EAAE,MAAQ,EAAE,MAAQ,GAAKi2C,EAAC,CAC5B,EACA,CAAE,KAAM,EAAE,CAChB,EACI,MAAMmhF,GAAK7/E,EAAE,IAAOv3C,GAAM03B,EAAE,EAAE,MAAM13B,CAAC,EAAG17B,EAAE,MAAM07B,CAAC,CAAC,EAAE,IAAK,IAAO,CAC9D,GAAG,EACH,KAAM,EAAE,KAAK,IAAKs4H,IAAOA,EAAE,OAASh4J,EAAEg4J,CAAC,EAAGA,EAAE,UAAY7rH,EAAE6rH,CAAC,EAAGA,EAAE,CACtE,EAAM,CAAC,EACH,SAAStgB,EAAEh4G,EAAG,CACZA,GAAKA,IAAM,EAAIg2H,GAAG,QAAQh2H,CAAC,GAAG,kBAAkB,EAAE,MAAMA,CAAC,EAAG17B,EAAE,MAAM07B,CAAC,CAAC,EAAIg2H,GAAG,OAAO,QAAQ,CAAC,EAAGsC,IAAM,GAAG,kBAAkB,EAAE,MAAMA,CAAC,EAAGh0J,EAAE,MAAMg0J,CAAC,CAAC,CAAC,CACpJ,CACA,SAASK,GAAK,CACZ,EAAE,kBAAkB,CACtB,CACA,MAAMF,EAAK,CAACz4H,EAAG,EAAGs4H,EAAI,IAAM,CAC1B1hF,GAAE,QAAQ0hF,CAAC,GAAG,kBAAkBt4H,EAAG,CAAC,CACtC,EAAGz7B,EAAI,CAACy7B,EAAG,EAAGs4H,EAAI,IAAM,CACtB1hF,GAAE,QAAQ0hF,CAAC,GAAG,iBAAiBt4H,EAAG,CAAC,CACrC,EAAG+1H,EAAI,CAAC/1H,EAAG,EAAGs4H,IAAM,CAClB9B,GAAG,OAAO,iBAAiBx2H,EAAG,EAAGs4H,CAAC,CACpC,EAAGhhF,EAAI,CAACt3C,EAAG,IAAM,CACf,GAAI,CAAC22H,GAAG,MAAO,CACb,MAAM2B,EAAIzyJ,EAAE,MAAQA,EAAE,MAAQwwE,EAAG7wE,EAAI,EAAIi1E,EAAE,CAAC,EAAI69E,EAAGz1J,EAAIm9B,EAAIs8H,GAAG92J,EAAG,CAAE,aAAc,CAAC,CAAE,EAAI+2J,GAAG/2J,EAAG,CAAE,aAAc,CAAC,CAAE,EACjH+uE,EAAE,CACA,MAAO1xE,EACP,QAASwzJ,GAAG7wJ,CAAC,IAAM,EAAE,MAAM,CAAC,EAC5B,KAAM,GACN,UAAW,EACrB,CAAS,EAAG,SAAS,eAAeswE,GAAEjzE,CAAC,CAAC,GAAG,MAAK,CAC1C,CACF,EAAG46J,EAAMz9H,GAAM,CACb42C,GAAE,QAAQ,CAAC,GAAG,sBAAsB52C,EAAG,EAAE,CAC3C,EAAGj+B,EAAKi+B,GAAM,CACZ22C,EAAE,EAAG,CAAE,MAAO,EAAE,MAAM,CAAC,EAAG,KAAMryE,EAAE,MAAM,CAAC,GAAK07B,EAAI,EAAI,IAAK,QAAS,GAAI,CAC1E,EAAG/pB,EAAK+pB,GAAM,CACZ02H,EAAE,iBAAkB,CAAE,KAAM,GAAI,QAAS12H,CAAC,CAAE,EAAG,EAAE,YAAY,CAC/D,EACA,OAAOsgC,EAAE,CACP,eAAgBuW,EAChB,WAAYP,EACZ,kBAAmBE,EACnB,YAAa,EACb,gBAAiBG,EACjB,aAAcT,EACd,kBAAmBuiF,EACnB,iBAAkBl0J,EAClB,iBAAkBwxJ,EAClB,gBAAiB,KAAO,CACtB,WAAYlwJ,EACZ,MAAO,EACP,KAAMvB,EACN,KAAMuhC,EACN,WAAYsuC,EACZ,gBAAiBwC,EACjB,WAAYpC,EACZ,WAAY+B,CACpB,GACM,YAAamnF,EACb,WAAY17J,EACZ,eAAgBu1E,CACtB,CAAK,EAAG,CAACt3C,EAAG,KAAO02C,EAAC,EAAItvD,EAAEk3I,GAAI,KAAM,CAC9BR,GAAGsB,GAAI,CAAE,SAAU,EAAE,QAAQ,EAAI,CAC/B,QAASK,GAAG,CAAC,CAAE,UAAWnH,EAAG,UAAW9yJ,KAAQ,EAC7CkxE,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAG1G,EAAIz1J,IAAO6zE,EAAC,EAAItvD,EAAE,MAAO,CAC9C,IAAKvkB,EACL,MAAO66J,GAAGl4J,CAAC,CACvB,EAAa,CACD+8B,EAAEo0H,EAAE,EAAE,oBAAsB5gF,EAAE,GAAI,EAAE,GAAKW,IAAKknF,GAAGmE,GAAI,CACnD,IAAK,EACL,QAAS,GACT,IAAK,kBACL,OAAQx/H,EAAEu0H,EAAE,EAAC,EACb,MAAOv0H,EAAEyzC,CAAC,EAAC,EACX,MAAOzzC,EAAE,CAAC,EAAE1/B,CAAC,EACb,KAAM0/B,EAAEj+B,CAAC,EAAEzB,CAAC,EACZ,SAAUA,EACV,gBAAiB,EAAE,YACnB,QAAS,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKu1J,GAAMjB,EAAG50H,EAAE20C,EAAE,EAAE,MAAM,GAC/C,YAAa,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKkhF,GAAMp4H,EAAE,MAAM,YAAY,GACxD,kBAAoBo4H,GAAM71H,EAAEo0C,CAAC,EAAE9zE,EAAGu1J,CAAC,EACnC,gBAAiBniJ,CAC/B,EAAeypJ,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAE00H,EAAE,EAAG,CAACmB,EAAG7hF,MAAO,CACnB,KAAM6hF,EACN,GAAIqH,GAAIpH,GAAO,CACbn+G,GAAGla,EAAE,OAAQo4H,EAAGh3H,GAAG,CAAE,QAAS,EAAE,EAAIi3H,CAAE,CAAC,CACzD,CAAiB,CACjB,EAAgB,CAChB,CAAa,EAAG,KAAM,CAAC,SAAU,QAAS,QAAS,OAAQ,WAAY,gBAAiB,mBAAmB,CAAC,GAChGyF,GAAGwE,GAAI,CACL,QAAS,GACT,IAAK,WACL,eAAgBlL,GAAG,MAAMv0J,CAAC,EAC1B,SAAUA,EACV,MAAO0/B,EAAE,CAAC,EAAE1/B,CAAC,EACb,KAAM0/B,EAAEj+B,CAAC,EAAEzB,CAAC,EACZ,aAAeu1J,GAAM71H,EAAEgyC,CAAC,EAAE6jF,EAAGv1J,IAAM,CAAC,EACpC,eAAgB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKu1J,GAAM71H,EAAErV,CAAC,EAAEkrI,CAAC,GAC7C,eAAiBA,GAAM71H,EAAEnM,CAAC,EAAEgiI,EAAGv1J,CAAC,EAChC,cAAgBu1J,GAAM71H,EAAEk0C,CAAC,EAAE2hF,EAAGv1J,CAAC,EAC/B,QAAS,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKu1J,GAAMjB,EAAG50H,EAAE20C,EAAE,EAAE,QAAQ,EAC/D,EAAewoF,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAE0zH,EAAE,EAAG,CAACmC,EAAG7hF,MAAO,CACnB,KAAM6hF,EACN,GAAIqH,GAAIpH,GAAO,CACbn+G,GAAGla,EAAE,OAAQo4H,EAAGh3H,GAAG,CAAE,QAAS,EAAE,EAAI,CAAE,GAAGi3H,CAAE,CAAE,CAAC,CAChE,CAAiB,CACjB,EAAgB,CAChB,CAAa,EAAG,KAAM,CAAC,eAAgB,WAAY,QAAS,OAAQ,eAAgB,iBAAkB,eAAe,CAAC,CACtH,EAAa,CAAC,EAAE,EAAG,GAAG,EACtB,CAAS,EACD,EAAG,CACX,EAAS,EAAG,CAAC,UAAU,CAAC,EAClB91H,EAAEs0H,EAAE,EAAE,kBAAoBngF,EAAC,EAAItvD,EAAE,MAAO09I,GAAI,CAC1C9kI,EAAE,OAAO,aAAa,EAAIka,GAAGla,EAAE,OAAQ,cAAeq+H,GAAGj9H,GAAG,CAAE,IAAK,CAAC,EAAI,CAAE,KAAMmB,EAAEsD,CAAC,EAAG,WAAYtD,EAAE4xC,CAAC,CAAC,CAAE,CAAC,CAAC,GAAKuC,IAAKknF,GAAGsD,GAAI,CACzH,IAAK,EACL,IAAK,cACL,MAAO3+H,EAAEsD,CAAC,EAAE,MACZ,QAAStD,EAAEsD,CAAC,EAAE,QACd,QAAStD,EAAEsD,CAAC,EAAE,QACd,wBAAyBtD,EAAEv3B,CAAC,EAC5B,gBAAiBu3B,EAAEmzH,CAAC,EACpB,mBAAoB,EAAE,eACtB,QAAS,EAAE,CAAC,IAAM,EAAE,CAAC,EAAK4C,GAAMnB,EAAG50H,EAAE20C,EAAE,EAAE,UAAU,GACnD,iBAAkB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKohF,GAAM/1H,EAAE4xC,CAAC,EAAE,CAAE,MAAOmkF,EAAG,QAAS/1H,EAAEsD,CAAC,EAAE,QAAS,QAAStD,EAAEsD,CAAC,EAAE,OAAO,CAAE,GACxG,mBAAoB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKyyH,GAAM/1H,EAAE4xC,CAAC,EAAE,CAAE,MAAO5xC,EAAEsD,CAAC,EAAE,MAAO,QAASyyH,EAAG,QAAS/1H,EAAEsD,CAAC,EAAE,OAAO,CAAE,GACxG,mBAAoB,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKyyH,GAAM/1H,EAAE4xC,CAAC,EAAE,CAAE,MAAO5xC,EAAEsD,CAAC,EAAE,MAAO,QAAStD,EAAEsD,CAAC,EAAE,QAAS,QAASyyH,CAAC,CAAE,GACxG,YAAa,EAAE,CAAC,IAAM,EAAE,CAAC,EAAKA,GAAMt4H,EAAE,MAAM,YAAY,EAClE,EAAW0/H,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAE20H,EAAE,EAAG,CAACoB,EAAG9yJ,KAAO,CACnB,KAAM8yJ,EACN,GAAImH,GAAI58J,GAAM,CACZq3C,GAAGla,EAAE,OAAQs4H,EAAG+F,GAAGmD,GAAG3+J,CAAC,CAAC,CAAC,CACvC,CAAa,CACb,EAAY,CACZ,CAAS,EAAG,KAAM,CAAC,QAAS,UAAW,UAAW,wBAAyB,gBAAiB,kBAAkB,CAAC,EAC/G,CAAO,GAAKkzE,EAAE,GAAI,EAAE,CACpB,EAAO,EAAE,EACP,CACF,CAAC,EAAGkvF,GAAK,CAAC,EAAG3kG,IAAM,CACjB,KAAM,CACJ,QAAS7zC,EACT,WAAY,EACZ,KAAMw5B,EACN,UAAW,EACX,SAAU,CAAE,UAAW3hD,EAAG,MAAOuB,EAAG,WAAYggC,CAAC,CACrD,EAAM8vH,GAAE,EAAI,CAAE,cAAe3qJ,EAAG,YAAaqrE,CAAC,EAAKu/E,GAAE,EAAI,CAAE,oBAAqBF,EAAG,uBAAwBh+F,EAAG,oBAAqBp3D,CAAC,EAAK2/J,GAAE,EACzIjI,GAAE,EACF,KAAM,CAAE,WAAY,CAAC,EAAKxC,GAAE,EAAI,CAAE,kBAAmBp/H,GAAMy/H,KAAM,CAC/D,WAAYp/E,EACZ,aAAclC,EACd,eAAgBoC,EAChB,WAAYL,EACZ,iBAAkBE,EAClB,iBAAkBrC,EAClB,WAAY8B,EACZ,aAAcC,CAClB,EAAMypF,GAAGr/F,CAAC,EAAGxL,EAAI2/F,GAAE,EACjBkI,GAAG,IAAM,CACPzmF,EAAC,CACH,CAAC,EACD,MAAMhpD,EAAIqqD,EAAE,IAAOzB,GAAM,EAAE,MAAQ,MAAM,QAAQ,EAAE,KAAK,EAAI,EAAE,MAAM,KAAMihF,IAAOmO,GAAGpvF,EAAGihF,EAAE,CAAC,EAAImO,GAAG,EAAE,MAAOpvF,CAAC,EAAI,EAAE,EAAGrpC,EAAKqpC,GAAM,CAC7H,GAAIjwE,EAAE,MAAM,QAAS,CACnB,GAAI,MAAM,QAAQ,EAAE,KAAK,EAAG,CAC1B,MAAMkxJ,GAAK1gF,EAAEP,EAAG,EAAE,MAAM,CAAC,CAAC,GAAKO,EAAEP,EAAG,EAAE,MAAM,CAAC,CAAC,EAC9C,OAAO9qE,EAAE,EAAE,MAAO8pD,EAAE,MAAOghB,CAAC,GAAK,CAACihF,EACpC,CACA,MAAO,EACT,CACA,MAAO,EACT,EAAGlgF,EAAI,CAACf,EAAGihF,KAAOjhF,EAAE,UAAYqvF,GAAGpO,EAAE,GAAKjhF,EAAE,OAASwgF,GAAGS,EAAE,EAAGt8E,EAAK3E,GAAM,OAAOxxE,EAAE,OAAS,WAAaA,EAAE,MAAM,CAAE,QAAS6gK,GAAGrvF,CAAC,EAAG,KAAMwgF,GAAGxgF,CAAC,CAAC,CAAE,EAAIxxE,EAAE,MAAM,SAAS,KAAMyyJ,IAAOlgF,EAAEkgF,GAAIjhF,CAAC,CAAC,EAAG4gF,EAAIn/E,EAAE,IAAOzB,GAAM,CAC5M,MAAMihF,GAAKN,GAAGhqI,IAAK,CAAE,KAAMw5B,EAAE,MAAM6vB,CAAC,EAAG,EACvC,OAAOsvF,GAAG,CACR,MAAOvF,GAAG9I,EAAE,EACZ,IAAK6I,GAAG7I,EAAE,CAChB,CAAK,EAAE,IAAKngF,IAAM,CACZ,MAAMo/E,GAAKqP,GAAGzuF,EAAC,EAAG4/E,GAAK8O,GAAG1uF,EAAC,EAAGq/E,GAAK,EAAEr/E,EAAC,EAAGqgF,GAAKxqH,EAAEupH,EAAE,EAAGkB,GAAKz8E,EAAEu7E,EAAE,EAC9D,MAAO,CACL,KAAM5/H,EAAE4/H,GAAIQ,EAAE,EACd,MAAOR,GACP,OAAQ9oI,EAAE,MAAM8oI,EAAE,EAClB,YAAakB,GACb,SAAUjB,GACV,UAAWgB,EACnB,CACI,CAAC,CACH,CAAC,EAAGN,GAAM7gF,GAAM,CACdpe,EAAEoe,EAAGjwC,EAAE,MAAM,KAAK,EAAGy6B,EAAE,aAAc,EAAE,CACzC,EAAGs2F,GAAM9gF,GAAM,CACb,EAAE,MAAQx1E,EAAEw1E,CAAC,EAAG4/E,EAAE,EAAE,MAAOp1F,EAAG,EAAE,MAAM,OAAS,CAAC,CAClD,EAAGu2F,GAAM/gF,GAAM,CACb,EAAE,MAAQA,EAAGxV,EAAE,YAAY,CAC7B,EACA,MAAO,CACL,aAAciU,EACd,KAAMtuB,EACN,WAAYqwB,EACZ,SAAUogF,EACV,eAAgB//E,EAChB,WAAY,EACZ,WAAYF,EACZ,iBAAkBD,EAClB,iBAAkBrC,EAClB,WAAY8B,EACZ,aAAeH,GAAM,CACnBhhB,EAAE,MAAQghB,CACZ,EACA,cAAe,CAACA,EAAGihF,GAAIngF,KAAM,CAC3B,GAAI,CAACA,GACH,OAAO,EAAE,MAAMmgF,EAAE,EAAE,MAAQV,GAAGiP,GAAGxvF,CAAC,CAAC,EAAGjwC,EAAE,MAAM,QAAU8wH,GAAG7gF,CAAC,EAAIjwE,EAAE,MAAM,QAAU+wJ,GAAG9gF,CAAC,EAAI+gF,GAAG/gF,CAAC,CAClG,CACJ,CACA,EAAGyvF,GAAK,CAAE,MAAO,mBAAmB,EAAIC,GAAK,CAAC,eAAgB,WAAY,UAAW,aAAa,EAAGC,GAAqBlI,GAAG,CAC3H,OAAQ,gBACR,MAAO,CACL,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,YAAa,GACb,eAAgB,CAAE,KAAM,OAAO,CACnC,EACE,MAAO,CAAC,aAAc,YAAY,EAClC,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EAAG,CAClB,SAAU,CAAE,OAAQ,CAAC,CAC3B,EAAQ0vG,GAAE,EAAIrxJ,EAAIyyE,GAAE,EAAI,CAAE,SAAUlxE,CAAC,EAAK2xJ,GAAE,EAAI,CAAE,kBAAmB3xH,CAAC,EAAKk3H,GAAE,EAAI/xJ,EAAInF,EAAEvB,EAAG,UAAU,EAAG,CACjG,aAAc+xE,EACd,KAAMq/E,EACN,WAAYh+F,EACZ,SAAUp3D,EACV,WAAY,EACZ,eAAgB81B,EAChB,aAAcqgD,EACd,cAAelC,EACf,iBAAkBoC,EAClB,iBAAkBL,EAClB,WAAYE,CAClB,EAAQyuF,GAAGh/G,EAAG,CAAC,EACX,OAAOqa,EAAE,CAAE,gBAAiB,KAAO,CACjC,WAAY,EACZ,KAAMo1F,EACN,cAAenhF,EACf,iBAAkB+B,EAClB,WAAYE,CAClB,EAAM,CAAE,EAAG,CAACP,EAAGC,KAAOQ,EAAC,EAAIknF,GAAGwB,GAAI,CAC5B,SAAU,EAAE,SACZ,QAAS,EACf,EAAO,CACD,QAASK,GAAG,CAAC,CAAE,UAAW3qG,EAAG,UAAW5nC,KAAQ,EAC7CwpD,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGlqG,EAAIroB,IAAOiqC,EAAC,EAAItvD,EAAE,MAAO,CAC9C,IAAKqlB,EACL,MAAOixH,GAAGxwI,CAAC,CACrB,EAAW,CACDywI,EAAG,MAAO,CACR,MAAO,yBACP,MAAOY,GAAG,CAAE,UAAW,GAAGh8H,EAAE,CAAC,EAAE,UAAU,IAAI,CAAE,CAC3D,EAAa,CACD0zC,EAAE,OAAO,WAAW,EAAI/7B,GAAG+7B,EAAE,OAAQ,YAAa,CAChD,IAAK,EACL,MAAO1zC,EAAE,CAAC,CACxB,CAAa,EAAIwzC,EAAE,GAAI,EAAE,EACb4nF,EAAG,MAAO,KAAM,CACdG,GAAG0B,GAAI,CACL,MAAOj9H,EAAE8zC,CAAC,EAAE5pC,CAAC,EACb,SAAUA,EACV,mBAAoBlK,EAAEnM,CAAC,EAAEqW,CAAC,EAC1B,KAAMlK,EAAEmzH,CAAC,EAAEjpH,CAAC,EACZ,cAAgB,GAAMlK,EAAEm1B,CAAC,EAAEjrB,EAAG,CAAC,EAC/B,aAAe,GAAMlK,EAAEi0C,CAAC,EAAE/pC,EAAG,CAAC,EAC9B,aAAe,GAAMlK,EAAE+zC,CAAC,EAAE,EAAG7pC,CAAC,EAC9B,mBAAqB,GAAMlK,EAAEo0C,CAAC,EAAElqC,EAAG,GAAG,KAAM,GAAG,IAAI,CACnE,EAAiBizH,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAEv3B,CAAC,EAAG,CAAC,EAAGyvE,KAAO,CAClB,KAAM,EACN,GAAIglF,GAAI/I,GAAM,CACZx8G,GAAG+7B,EAAE,OAAQ,EAAG70C,GAAG,CAAE,QAAS,EAAE,EAAIs1H,CAAC,CAAC,CAC1D,CAAmB,CACnB,EAAkB,CAClB,CAAe,EAAG,KAAM,CAAC,QAAS,WAAY,mBAAoB,OAAQ,cAAe,eAAgB,eAAgB,oBAAoB,CAAC,CAC9I,CAAa,EACDiH,EAAG,MAAO4H,GAAI,EACX7uF,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGz8H,EAAEjiC,CAAC,EAAEmsC,CAAC,EAAG,CAAC,EAAGguC,KAAO/D,EAAC,EAAItvD,EAAE,MAAO,CAAE,IAAKqzD,GAAK,CACnEkjF,EAAG,SAAU,CACX,KAAM,SACN,MAAOD,GAAG,CAAC,aAAc,CACvB,oBAAqB,EAAE,OACvB,qBAAsB,EAAE,UACxB,sBAAuB,EAAE,SACzB,kBAAmB,EAAE,WACzC,CAAmB,CAAC,EACF,eAAgB,EAAE,MAClB,SAAUn7H,EAAEsD,CAAC,EAAE,EAAE,QAAQ,EACzB,QAAU6wH,GAAMn0H,EAAEgyC,CAAC,EAAE,EAAE,MAAO9nC,EAAG,EAAE,QAAQ,EAC3C,YAAciqH,GAAMn0H,EAAEk0C,CAAC,EAAE,EAAE,KAAK,CAClD,EAAmB,CACDR,EAAE,OAAO,QAAU/7B,GAAG+7B,EAAE,OAAQ,UAAW,CACzC,IAAK,EACL,MAAO,EAAE,MACT,KAAM,EAAE,IAC5B,CAAmB,GAAKS,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK,GAAK,CAC3BE,GAAGC,GAAG,EAAE,IAAI,EAAG,CAAC,CACpC,EAAqB,EAAE,EACvB,EAAmB,GAAI+G,EAAE,CACzB,CAAe,EAAE,EAAG,GAAG,EACvB,CAAa,CACb,EAAa,CAAC,CACd,EAAW,CAAC,EAAE,EAAG,GAAG,EACpB,CAAO,EACD,EAAG,CACT,EAAO,EAAG,CAAC,UAAU,CAAC,EACpB,CACF,CAAC,EAAGE,GAAK,CAAC,KAAM,WAAY,OAAQ,YAAY,EAAGC,GAAK,CACtD,IAAK,EACL,MAAO,yBACT,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,iBACT,EAAGC,GAAK,CAAC,gBAAgB,EAAGC,GAAK,CAC/B,IAAK,EACL,MAAO,kBACT,EAAGC,GAAK,CAAC,gBAAgB,EAAGC,GAAK,CAAC,eAAgB,iBAAkB,UAAW,WAAW,EAAGC,GAAK,CAAE,MAAO,uBAAuB,EAAIC,GAAK,CACzI,IAAK,EACL,MAAO,mBACT,EAAGC,GAAK,CACN,IAAK,EACL,MAAO,kBACT,EAAGC,GAAqB7I,GAAG,CACzB,OAAQ,iBACR,MAAO,CACL,SAAU,CAAE,KAAM,OAAO,EACzB,eAAgB,CAAE,KAAM,OAAO,EAC/B,aAAc,CAAE,KAAM,QAAQ,CAClC,EACE,MAAO,CAAC,eAAgB,cAAe,aAAc,cAAe,WAAW,EAC/E,MAAM,EAAG,CAAE,OAAQj9F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI8wB,GAAE,EAAI,CACrB,MAAO,EACP,UAAWzyE,EACX,SAAU,CAAE,UAAWuB,EAAG,OAAQggC,EAAG,OAAQ76B,EAAG,GAAIqrE,EAAG,WAAYq/E,CAAC,EACpE,SAAUh+F,CAChB,EAAQi+F,GAAE,EAAI,CAAE,SAAUr1J,CAAC,EAAKo8J,GAAE,EAAI,CAAE,SAAU,CAAC,EAAKlF,GAAE,EAAI,CAAE,uBAAwBphI,EAAG,YAAaqgD,EAAG,qBAAsBlC,EAAG,aAAcoC,CAAC,EAAK8+E,GAAE,EAAI,CAAE,WAAYn/E,EAAG,UAAWE,EAAG,UAAWrC,EAAG,QAAS8B,CAAC,EAAK++E,GAAE,EAAI9+E,EAAIsnF,GAAG,YAAY,EAAG1oG,EAAI0oG,GAAG,SAAS,EAAGtwI,EAAIswI,GAAG,SAAS,EAAG/wH,EAAIgoH,GAAG,CAAC,EAAG59E,EAAI49E,GAAG,EAAE,EAAGh6E,EAAIg6E,GAAG,EAAE,EAAG,CAAE,SAAUiC,EAAG,eAAgBC,GAAI,WAAYC,GAAI,UAAWC,GAAI,WAAY7gF,CAAC,EAAKgjF,GAAG9rI,CAAC,EAAG4pI,GAAMtxJ,GAAM,CAChai1E,EAAE,MAAQ,GAAIzvE,EAAE,MAAM,qBAAuBxF,EAAE,eAAc,EAAI+uE,EAAE/uE,EAAGwF,EAAE,MAAO,EAAE,CACnF,EACA2xJ,GAAG,IAAM,CACP9lF,EAAE,MAAQ,GAAIf,GAAC,EAAI,WAAW,iBAAiB,SAAUA,EAAC,EAC1D,MAAMtwE,EAAI44J,GAAGtpG,CAAC,EACdtvD,GAAK,CAACK,EAAE,MAAM,SAAW,CAACggC,EAAE,MAAM,UAAY6xB,EAAE,cAAe,EAAE,EAAGkf,GAAC,GAAKpxE,IAAMA,EAAE,iBAAiB,cAAesxJ,EAAE,EAAGtxJ,EAAE,iBAAiB,YAAasxJ,EAAE,GAAI,SAAS,iBAAiB,YAAamB,CAAC,CACvM,CAAC,EAAGjhF,GAAG,IAAM,CACX,WAAW,oBAAoB,SAAUlB,EAAC,EAAG,SAAS,oBAAoB,YAAamiF,CAAC,EACxF,MAAMzyJ,EAAI44J,GAAGtpG,CAAC,EACdtvD,IAAMA,EAAE,oBAAoB,cAAesxJ,EAAE,EAAGtxJ,EAAE,oBAAoB,YAAasxJ,EAAE,EACvF,CAAC,EACD,MAAMhhF,GAAI,IAAM,CACd,MAAMtwE,EAAI44J,GAAGloF,CAAC,EACd1wE,IAAMinC,EAAE,MAAQjnC,EAAE,sBAAqB,EAAG,MAC5C,EAAGuxJ,GAAKx/E,EAAE,IAAMjzE,EAAE,YAAcjE,GAAKiE,EAAE,WAAa87J,GAAK97J,EAAE,WAAai9J,GAAKj9J,EAAE,cAAgBmhK,GAAKV,EAAE,EAAGnuF,GAAI,IAAM,CACjH,MAAMpxE,EAAI44J,GAAGtpG,CAAC,EACdtvD,GAAKA,EAAE,MAAM,CAAE,cAAe,EAAE,CAAE,CACpC,EAAGwwJ,GAAKz+E,EAAE,IAAMrqD,EAAE,OAAO,gBAAe,GAAM,EAAE,EAAGspI,GAAK,EAAEvwG,EAAG,QAAQ,EAAGgwG,GAAK1+E,EAAE,IAAMjzE,EAAE,aAAeA,EAAE,WAAa,EAAE2hD,EAAG,WAAW,EAAI3hD,EAAE,WAAa,EAAE2hD,EAAG,YAAY,EAAI,EAAEA,EAAG,QAAQ,CAAC,EAAGgxG,GAAK1/E,EAAE,KAAO,CAC1M,kBAAmBjzE,EAAE,SACrB,kBAAmBA,EAAE,SACrB,kBAAmBA,EAAE,OAC3B,EAAM,EAAG4yJ,GAAK3/E,EACR,KAAO,CACL,SAAU,GACV,eAAgB,CAAC1xC,EAAE,MAAM,QACzB,aAAcA,EAAE,MAAM,QACtB,GAAGwwC,EAAE,MAAM,IACnB,EACA,EAAO8gF,EAAM3xJ,GAAM,CACb+uE,EAAE/uE,EAAGwF,EAAE,MAAO,EAAE,CAClB,EAAGosJ,GAAM5xJ,GAAM,CACbwF,EAAE,MAAM,WAAa,EAAE,cAAc,EAAGorB,EAAE5wB,EAAGwF,EAAE,KAAK,EACtD,EAAGgtI,EAAKxyI,GAAM,CACZ,GAAIlB,EAAE,gBAAiB,CACrB,GAAIkB,IAAM4vJ,GAAG,GAAI,OAAOn/E,EAAC,EACzB,GAAIzwE,IAAM4vJ,GAAG,KAAM,OAAOjhF,EAAC,EAC3B,GAAI3uE,IAAM4vJ,GAAG,KAAM,OAAO5+E,EAAC,EAC3B,GAAIhxE,IAAM4vJ,GAAG,MAAO,OAAO9+E,EAAC,CAC9B,MAAO9wE,IAAM4vJ,GAAG,MAAQ5vJ,IAAM4vJ,GAAG,GAAKW,EAAE,cAAeX,GAAG,KAAM,EAAG5vJ,IAAM4vJ,GAAG,EAAE,EAAIW,EAAE,cAAeX,GAAG,MAAO,EAAG5vJ,IAAM4vJ,GAAG,IAAI,CAC/H,EAAGuD,EAAMnzJ,GAAM,CACbkyD,EAAE,iBAAkBlyD,EAAE,QAAQ,EAAG,CAAClB,EAAE,qBAAuBkB,EAAE,OAAS6vJ,GAAG,KAAO7vJ,EAAE,OAAO,UAAU,SAAS,UAAU,GAAK,EAAE,iBAAmBA,EAAE,eAAc,EAAI+uE,EAAE/uE,EAAGwF,EAAE,MAAO,EAAE,EAAG,EAAE,cAAc,EACzM,EAAGytJ,EAAMjzJ,GAAM,CACb0nB,EAAE,OAAO,iBAAiB,GAAI,EAAE,EAAGA,EAAE,OAAO,kBAAkB,GAAI,GAAI1nB,CAAC,EAAG0nB,EAAE,OAAO,iBAAiB,GAAI,GAAI1nB,CAAC,CAC/G,EAAGjB,EAAI,CAACiB,EAAG3C,EAAI,IAAM2C,IAAM,QAAU0nB,EAAE,OAAO,kBAAkB,GAAI,GAAIrqB,CAAC,EAAI2C,IAAM,OAAS0nB,EAAE,OAAO,iBAAiB,GAAI,GAAIrqB,CAAC,EAAI2C,IAAM,OAAS0nB,EAAE,OAAO,iBAAiB,GAAI,EAAE,EAAIurI,EAAG51J,CAAC,EAAGkzJ,EAAI,CAACvwJ,KAAM3C,IAAM,CAC5MqqB,EAAE,QAAQ1nB,CAAC,GAAK0nB,EAAE,QAAQ1nB,CAAC,EAAE,GAAG3C,CAAC,CACnC,EAAGy0E,EAAI,IAAM,CACXy+E,EAAE,mBAAmB,CACvB,EAAG0H,EAAMj4J,GAAM,CACbuwJ,EAAE,aAAcsQ,GAAG7gK,CAAC,CAAC,CACvB,EAAGzD,EAAI,IAAM,CACXg0J,EAAE,gBAAgB,CACpB,EAAG9/I,EAAI,CAACzQ,EAAG3C,IAAM,CACfkzJ,EAAE,kBAAmBvwJ,EAAG3C,CAAC,CAC3B,EAAGszE,EAAI,CAAC3wE,EAAG3C,IAAM,CACf2C,EAAE,eAAc,EAAIwyI,EAAEn1I,CAAC,CACzB,EAAGm9B,EAAKx6B,GAAM,CACZ,GAAImzJ,EAAGnzJ,CAAC,EAAGA,EAAE,MAAQ6vJ,GAAG,MAAQ7vJ,EAAE,MAAQ6vJ,GAAG,IAC3C,OAAOU,EACL,iBACAvwJ,EAAE,MAAQ6vJ,GAAG,KACb7vJ,EAAE,OAAO,aAAa,IAAI,CACpC,EACM,QAASA,EAAE,MAAQ6vJ,GAAG,QAAU7vJ,EAAE,MAAQ6vJ,GAAG,YAAc7vJ,EAAE,UAAYuwJ,EAAE,aAAcvwJ,EAAE,MAAQ6vJ,GAAG,MAAM,EAAG5+E,EAAE3hB,EAAE,MAAO,cAAc,GAAG,MAAK,IAAOihG,EAAE,cAAevwJ,EAAE,MAAQ6vJ,GAAG,MAAM,EAAG5+E,EAAE3hB,EAAE,MAAOtvD,EAAE,MAAQ6vJ,GAAG,OAAS,cAAgB,aAAa,GAAG,MAAK,GAAK7vJ,EAAE,OAAO,aAAa,IAAI,GAAKsvD,EAAE,OAAO,MAAM,CAAE,cAAe,EAAE,CAAE,GAAItvD,EAAE,IAAG,CACnV,KAAK6vJ,GAAG,IACN,OAAO+B,GAAG5xJ,CAAC,EACb,KAAK6vJ,GAAG,UACN,OAAOl/E,EAAE3wE,EAAG4vJ,GAAG,IAAI,EACrB,KAAKC,GAAG,WACN,OAAOl/E,EAAE3wE,EAAG4vJ,GAAG,KAAK,EACtB,KAAKC,GAAG,QACN,OAAOl/E,EAAE3wE,EAAG4vJ,GAAG,EAAE,EACnB,KAAKC,GAAG,UACN,OAAOl/E,EAAE3wE,EAAG4vJ,GAAG,IAAI,EACrB,QACE,MACV,CACI,EAAG6C,EAAKzyJ,GAAM,CACZqgC,EAAE,MAAM,SAAW,CAACA,EAAE,MAAM,OAAS,CAACivB,EAAE,OAAO,SAAStvD,EAAE,MAAM,GAAKi1E,EAAE,QAAUA,EAAE,MAAQ,GAAI,EAAE,WAAW,EAC9G,EACA,OAAOna,EAAE,CACP,gBAAiBrqD,EACjB,WAAY1R,EACZ,eAAgB,IAAM,CACpB2oB,EAAE,OAAO,eAAY,CACvB,EACA,WAAY8oD,CAClB,CAAK,EAAG,CAACxwE,EAAG3C,KAAO6zE,EAAC,EAAItvD,EAAE,MAAO,CAC3B,GAAImb,EAAEj+B,CAAC,EAAE,OACT,IAAK,UACL,SAAUi+B,EAAEsD,CAAC,EAAE,QAAU,OAAS,IAClC,KAAMtD,EAAEsD,CAAC,EAAE,QAAU,OAAS,SAC9B,aAActD,EAAEmzH,CAAC,GAAG,KACpB,MAAOgI,GAAGxG,GAAG,KAAK,EAClB,aAAcn1J,EACd,QAASo1J,EACT,UAAWn3H,CACjB,EAAO,EACAuC,EAAEj+B,CAAC,EAAE,UAAYi+B,EAAEj+B,CAAC,EAAE,WAAai+B,EAAEsD,CAAC,EAAE,SAAWtD,EAAEj+B,CAAC,EAAE,SAAWoyE,EAAC,EAAItvD,EAAE,MAAO,CAChF,IAAK,EACL,MAAOs2I,GAAGzG,GAAG,KAAK,CAC1B,EAAS,CACD10H,EAAEj+B,CAAC,EAAE,SAAWoyE,EAAC,EAAItvD,EAAE,MAAOu+I,GAAI,CAAC,GAAG9iK,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAI,CACpD86J,EAAG,OAAQ,CAAE,MAAO,iBAAiB,EAAI,KAAM,EAAE,CAC3D,EAAU,CAAC,GAAK5nF,EAAE,GAAI,EAAE,CACxB,EAAS,CAAC,GAAKA,EAAE,GAAI,EAAE,EACjBvwE,EAAE,OAAO,aAAa,GAAKkxE,EAAC,EAAItvD,EAAE,MAAOw+I,GAAI,CAC3C1rH,GAAG10C,EAAE,OAAQ,aAAa,CAClC,CAAO,GAAKuwE,EAAE,GAAI,EAAE,EACd77B,GAAG10C,EAAE,OAAQ,OAAO,EACpBm4J,EAAG,MAAO,CACR,IAAK,aACL,MAAOD,GAAG,CACR,yBAA0Bn7H,EAAEj+B,CAAC,EAAE,aAAa,QAAU,CAAC,CAACkB,EAAE,OAAO,cAAc,GAAK,CAAC,CAACA,EAAE,OAAO,eAAe,EAC9G,qCAAsC,EAAE,WAAa+8B,EAAEj+B,CAAC,EAAE,aAAa,QAAU,CAAC,CAACkB,EAAE,OAAO,cAAc,GAAK,CAAC,CAACA,EAAE,OAAO,eAAe,EACnJ,CAAS,EACD,iBAAkB+8B,EAAEjiC,CAAC,EACrB,MAAOi+J,GAAG,CAAE,kBAAmB,GAAG9xH,EAAE,KAAK,IAAI,CAAE,CACvD,EAAS,CACDjnC,EAAE,OAAO,cAAc,GAAKkxE,EAAC,EAAItvD,EAAE,MAAO0+I,GAAI,CAC5C5rH,GAAG10C,EAAE,OAAQ,eAAgB64J,GAAGmD,GAAGxL,GAAG,KAAK,CAAC,CAAC,CACvD,CAAS,GAAKjgF,EAAE,GAAI,EAAE,EACdxzC,EAAEj+B,CAAC,EAAE,YAAY,QAAUoyE,EAAC,EAAItvD,EAAE,MAAO,CACvC,IAAK,EACL,MAAOs2I,GAAG,CAAE,6BAA8B,EAAE,SAAU,mBAAoB,GAAI,EAC9E,iBAAkBn7H,EAAEjiC,CAAC,CAC/B,EAAW,EACAo2E,EAAE,EAAE,EAAGtvD,EAAEk3I,GAAI,KAAMU,GAAGz8H,EAAEj+B,CAAC,EAAE,YAAa,CAAC8zJ,EAAG7hF,MAAOG,EAAC,EAAItvD,EAAEk3I,GAAI,CAAE,IAAK/nF,IAAK,CACzE6hF,EAAE,KAAOl+G,GAAG10C,EAAE,OAAQ4yJ,EAAE,KAAM,CAC5B,IAAK,EACL,WAAYqF,EACZ,MAAOrF,EAAE,MACT,MAAOA,EAAE,KACvB,CAAa,GAAK1hF,EAAC,EAAItvD,EAAE,SAAU,CACrB,IAAK,EACL,KAAM,SACN,MAAOm3I,GAAGnG,EAAE,OAAS,EAAE,EACvB,MAAOsF,GAAG,CAAC,2BAA4B,CAAE,6BAA8B,EAAE,QAAQ,CAAE,CAAC,EACpF,eAAgBtF,EAAE,QAAU,OAC5B,iBAAkB71H,EAAEjiC,CAAC,EACrB,QAASu9J,GAAIxF,GAAOoF,EAAGrF,EAAE,KAAK,EAAG,CAAC,SAAS,CAAC,EAC5C,UAAYC,GAAO91H,EAAEo0C,CAAC,EAAE0hF,EAAI,IAAMoF,EAAGrF,EAAE,KAAK,EAAG,EAAE,CAC/D,EAAeqG,GAAGrG,EAAE,KAAK,EAAG,GAAI4N,EAAE,EAClC,EAAa,EAAE,EAAE,EAAG,GAAG,EACvB,EAAW,GAAID,EAAE,GAAKhwF,EAAE,GAAI,EAAE,EACtB4nF,EAAG,MAAOsI,GAAI,EACXvvF,EAAC,EAAIknF,GAAGn4J,GAAGsxJ,GAAG,KAAK,EAAG,CACrB,IAAK,UACL,YAAax0H,EAAEm0H,CAAC,EAChB,SAAU,EAAE,SACZ,mBAAoB,EAAE,eACtB,gBAAiB5hG,EAAE,MACnB,QAASvyB,EAAEq0H,EAAE,EACb,iBAAkBr0H,EAAEo0H,EAAE,EACtB,YAAap0H,EAAEs0H,EAAE,EACjB,YAAajgF,GACb,aAAc/zE,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKu1J,GAAM5yJ,EAAE,MAAM,aAAa,GAC1D,YAAa3C,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKu1J,GAAM5yJ,EAAE,MAAM,aAAc4yJ,CAAC,GAC3D,aAAcv1J,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKu1J,GAAM5yJ,EAAE,MAAM,aAAa,EACtE,EAAak6J,GAAG,CAAE,EAAG,GAAK,CACdV,GAAG/I,GAAG,MAAO,CAACmC,EAAG7hF,MAAO,CACtB,KAAM6hF,EACN,GAAIqH,GAAIpH,GAAO,CACbn+G,GAAG10C,EAAE,OAAQ4yJ,EAAGiG,GAAGmD,GAAG,CAAE,GAAGnJ,CAAE,CAAE,CAAC,CAAC,CACjD,CAAe,CACf,EAAc,CACd,CAAW,EAAG,KAAM,CAAC,YAAa,WAAY,mBAAoB,gBAAiB,UAAW,mBAAoB,aAAa,CAAC,EAChI,CAAS,EACD7yJ,EAAE,OAAO,eAAe,GAAKkxE,EAAC,EAAItvD,EAAE,MAAO8+I,GAAI,CAC7ChsH,GAAG10C,EAAE,OAAQ,gBAAiB64J,GAAGmD,GAAGxL,GAAG,KAAK,CAAC,CAAC,CACxD,CAAS,GAAKjgF,EAAE,GAAI,EAAE,EACdvwE,EAAE,OAAO,cAAc,GAAKkxE,EAAC,EAAItvD,EAAE,MAAO++I,GAAI,CAC5C3gK,EAAE,OAAO,cAAc,EAAI00C,GAAG10C,EAAE,OAAQ,eAAgB,CACtD,IAAK,EACL,kBAAmB8xE,CAC/B,CAAW,EAAIvB,EAAE,GAAI,EAAE,CACvB,CAAS,GAAKA,EAAE,GAAI,EAAE,CACtB,EAAS,GAAI8vF,EAAE,EACT,CAACtjI,EAAEj+B,CAAC,EAAE,WAAai+B,EAAEv3B,CAAC,EAAE,eAAiB0rE,IAAKknF,GAAGO,GAAI,CACnD,IAAK,EACL,aAActnF,EAAE,MAChB,iBAAkBpqC,EAAE,MACpB,cAAe5pC,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKu1J,GAAM5yJ,EAAE,MAAM,cAAc,GAC5D,aAAc3C,EAAE,CAAC,IAAMA,EAAE,CAAC,EAAKu1J,GAAM5yJ,EAAE,MAAM,aAAa,GAC1D,YAAa8xE,CACrB,EAASooF,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAEi0H,EAAE,EAAG,CAAC4B,EAAG7hF,MAAO,CACnB,KAAM6hF,EACN,GAAIqH,GAAIpH,GAAO,CACbn+G,GAAG10C,EAAE,OAAQ4yJ,EAAGiG,GAAGmD,GAAG,CAAE,GAAGnJ,CAAE,CAAE,CAAC,CAAC,CAC7C,CAAW,CACX,EAAU,CACV,CAAO,EAAG,KAAM,CAAC,aAAc,gBAAgB,CAAC,GAAKtiF,EAAE,GAAI,EAAE,CAC7D,EAAO,GAAI2vF,EAAE,EACX,CACF,CAAC,EAAGY,GAAK,CAAC,gBAAgB,EAAGC,GAAqBhJ,GAAG,CACnD,OAAQ,gBACR,MAAM,EAAG,CAAE,OAAQj9F,CAAC,EAAI,CACtB,KAAM,CACJ,SAAU7zC,EACV,SAAU,EACV,WAAYw5B,EACZ,WAAY,EACZ,UAAW3hD,EACX,SAAU,CAAE,OAAQuB,EAAG,OAAQggC,EAAG,UAAW76B,EAAG,MAAOqrE,EAAG,WAAYq/E,EAAG,SAAUh+F,EAAG,eAAgBp3D,CAAC,CAC7G,EAAQq1J,GAAE,EAAI,CAAE,cAAe,CAAC,EAAKX,GAAE,EAAI,CAAE,aAAc5+H,EAAG,YAAaqgD,CAAC,EAAK++E,GAAE,EAAI,CAAE,eAAgBjhF,EAAG,eAAgBoC,CAAC,EAAKohF,GAAE,EAAI,CAAE,SAAUzhF,CAAC,EAAKomF,GAAE,EAAI,CAAE,SAAUlmF,CAAC,EAAKghF,GAAE,EAAI,CAAE,yBAA0BrjF,EAAG,UAAW8B,CAAC,EAAKw/E,GAAE,EAAIv/E,EAAIa,GAAE,EAAIjiB,EAAI2/F,GAAG,EAAE,EAAGvnI,EAAIunI,GAAG5uJ,EAAE,MAAM,SAAWvB,EAAE,QAAQ,EAAGmoC,EAAI+5H,GAAGliK,EAAG,YAAY,EAAGuyE,EAAI2vF,GAAGliK,EAAG,UAAU,EAAGm2E,EAAI+iF,GAAG,cAAc,EAAG9G,EAAI8G,GAAG,SAAS,EAAG7G,GAAK6G,GAAG,WAAW,EAAG5G,GAAK4G,GAAG,gBAAgB,EAAG3G,GAAK2G,GAAG,YAAY,EAAGxnF,EAAIy+E,GAAG,EAAE,EAAGqC,GAAKrC,GAAG,EAAE,EAAG3+E,GAAI2+E,GAAG,EAAE,EAAGsC,GAAKtC,GAAG,EAAE,EAAG79E,GAAKotF,KAAQ1jK,EAAE,MAAM,QAAUA,EAAE,MAAM,QAAU,GAAK0jK,GAAG,KAAKyC,GAAG,CAAE,QAAS5P,EAAE,CAAE,CAAC,EAAImN,GAAG,KAAKyC,GAAG,CAAE,QAASnmK,EAAE,MAAM,KAAK,CAAE,CAAC,GAAI0jK,IAAK,CAAE,eAAgBhO,GAAI,eAAgBQ,GAAI,UAAWP,GAAI,EAAGgB,EAAE,EAAKyP,GACjsB/P,GACAl8E,EACA,CACE,SAAUn6E,EAAE,MAAM,SAClB,UAAWA,EAAE,MAAM,UACnB,WAAYs2E,GAAE,CAAC+vF,GAAGrmK,EAAE,MAAM,MAAM,EAAGsmK,GAAE,EAAIC,GAAE,CAAE,CAAC,EAC9C,qBAAsBC,EAC9B,CACA,EACInK,GAAG,IAAM,CACPvF,GAAG9yJ,EAAE,UAAU,EAAG20J,GAAE,EAAG,KAAK,IAAM,CAChCpzJ,EAAE,MAAM,SAAW,WAAW,iBAAiB,SAAUoQ,CAAC,CAC5D,CAAC,EAAGpQ,EAAE,MAAM,UAAYivD,EAAE,MAAQ,IAAK,WAAW,iBAAiB,QAASqhB,CAAC,EAAG,WAAW,iBAAiB,UAAWn2C,CAAC,CAC1H,CAAC,EAAGg3C,GAAG,IAAM,CACXnxE,EAAE,MAAM,SAAW,WAAW,oBAAoB,SAAUoQ,CAAC,EAAG,WAAW,oBAAoB,QAASkgE,CAAC,EAAG,WAAW,oBAAoB,UAAWn2C,CAAC,CACzJ,CAAC,EACD,MAAMk3H,GAAK1gF,EAAEN,EAAG,MAAO5xE,EAAE,WAAW,EAAG6yJ,EAAK3gF,EAAEN,EAAG,OAAO,EACxD4/E,GACE,CAACrpH,EAAGoqC,CAAC,EACL,IAAM,CACJugF,GAAG3qH,EAAE,KAAK,CACZ,EACA,CAAE,KAAM,EAAE,CAChB,EAAOqpH,GAAG,CAACG,GAAIgB,EAAE,EAAG,IAAM,CACpB,CAACpxJ,EAAE,MAAM,SAAW,CAACvB,EAAE,UAAYyyJ,GAAG,QAAU7pI,EAAE,MAAQ,GAAI+rI,GAAE,EAAG,KAAK,IAAM,CAC5ElC,GAAG,MAAQ,GAAI7pI,EAAE,MAAQ,EAC3B,CAAC,EACH,CAAC,EACD,KAAM,CAAE,wBAAyBkqI,GAAI,eAAgBpf,EAAG,iBAAkB2gB,EAAI,gBAAiBF,CAAE,EAAKlD,GAAE,EAAIhxJ,EAAIgzE,EAC9G,KAAO,CACL,SAAU,GACV,eAAgBjzE,EAAE,KAClB,gBAAiB,CAACA,EAAE,KACpB,iBAAkBuB,EAAE,MAAM,QAC1B,6BAA8BiwE,GAAE,MAChC,4BAA6BjwE,EAAE,MAAM,KAC7C,EACA,EAAOkwJ,EAAIx+E,EAAE,IAAMjzE,EAAE,KAAO,iBAAmB,iBAAiB,EAAGgzE,EAAIC,EAAE,IAAM1xE,EAAE,MAAM,UAAYvB,EAAE,YAAcA,EAAE,aAAeA,EAAE,YAAcA,EAAE,cAAc,EAAGm5J,EAAK,IAAM9G,GAAG,OAAO,KAAK,sBAAqB,GAAM,CAAE,MAAO,EAAG,KAAM,EAAG,MAAO,CAAC,EAAI50J,EAAI,IAAM,CACjQ+yD,EAAE,OAASjvB,EAAE,MAAM,eAAiBg7H,GAAE,CACxC,EAAG5qJ,EAAI,IAAM,CACX,MAAM+tJ,GAAKtN,EAAE,OAAO,IAAI,sBAAqB,EAAG,OAAS,EACzD5gF,GAAE,MAAQ,SAAS,KAAK,aAAekuF,EACzC,EAAG7tF,EAAK6tF,IAAO,CACbA,GAAG,MAAQ,OAAS,CAACn+J,EAAE,MAAM,SAAW,CAACvB,EAAE,UAAYuhC,EAAE,MAAM,mBAAqB+wH,GAAG,MAAM,SAAS,SAAS,aAAa,GAAKiK,GAAE,GAAK/J,GAAG,MAAQkN,GAAG,QACxJ,EAAGhkI,EAAKgkI,IAAO,CACblN,GAAG,MAAQkN,GAAG,QAChB,EAAG/L,EAAI,IAAM,CACX,CAAC3zJ,EAAE,UAAY,CAACA,EAAE,WAAayyJ,GAAG,MAAQ,GAAIjiG,EAAE,MAAQ,GAAIA,EAAE,OAASroC,EAAE,MAAM,EAAGqoC,EAAE,OAASojG,GAAE,EAAId,GAAG9yJ,EAAE,UAAU,EACpH,EAAGg0J,EAAI,IAAM,CACXryG,EAAE,MAAQ,GAAIiyG,KAAMxB,EAAE,OAAO,eAAc,EAAIC,GAAG,OAAO,cAAc,IAAI,EAAGlqI,EAAE,qBAAsB,IAAI,EAAGA,EAAE,SAAS,EAAGoZ,EAAE,MAAM,mBAAqBg7H,GAAE,CAC5J,EAAGr7J,EAAI,IAAM,CACX,MAAMw+J,GAAK,EAAE,MACb,MAAO,CAACA,IAAM,CAAC,MAAM,QAAQA,EAAE,GAAK5tI,EAAE4tI,EAAE,EAAI,GAAK,MAAM,QAAQA,EAAE,EAAItO,EAAE,MAAM,SAAWsO,GAAG,SAAW,GAAK5tI,EAAE4tI,GAAG,CAAC,CAAC,GAAK5tI,EAAE4tI,GAAG,CAAC,CAAC,EAAI,GAAK3tF,EAAE,MAAM,cAAgB,CAAC/xE,EAAE,WAAa8xB,EAAE4tI,GAAG,CAAC,CAAC,EAAI,GAAK,EACjM,EAAGnhK,EAAI,IAAM,CACX41J,EAAE,GAAMjzJ,KAAOwyI,EAAC,EAAI6oB,GAAE,GAAMp0I,EAAE,gBAAgB,CAChD,EAAG2rI,GAAK4L,IAAO,CACbztF,EAAC,EAAIyhE,EAAC,EAAInyG,EAAE,MAAM,kBAAoB,CAACm+H,IAAMnD,GAAE,CACjD,EAAGtqF,EAAI,IAAM,CACXogF,GAAG,OAAS3rJ,EAAE,MAAM,SAAW2rJ,GAAG,MAAM,cAAc,EAAE,KAAK,CAC/D,EAAG0B,GAAK,CAAC2L,GAAK,KAAO,CACnB1/J,EAAE,WAAamyE,EAAE,EAAE,KAAK,GAAKjxE,MAAQ6wE,EAAE,MAAM,SAAW,MAAM,QAAQ,EAAE,KAAK,GAAKA,EAAE,MAAM,cAAgB,EAAE,MAAM,SAAW,IAAM+hF,GAAE4L,EAAE,EAAI5L,GAAE4L,EAAE,EACjJ,EAAG9L,GAAK,IAAM,CACZltJ,EAAE,MAAM,UAAY,EAAE,MAAQ,KAChC,EAAG61J,GAAK,CAACmD,GAAK,KAAO,CACnBjN,GAAG,MAAQ,GAAIiN,IAAM,EAAE,OAASn+H,EAAE,MAAM,oBAAsBhjC,EAAC,EAAIgD,EAAE,MAAM,UAAYivD,EAAE,QAAUA,EAAE,MAAQ,GAAI,EAAE,cAAe,EAAE,EAAG,EAAE,iBAAkB,EAAE,EAAG,EAAC,EAAIroC,EAAE,QAAQ,EAAGw5B,EAAE,OAASmxG,GAAG3qH,EAAE,KAAK,GAAIyrH,GAAE,EAAIzrI,EAAE,MAAM,EAC3N,EAAGq0I,GAAK,CAACkD,GAAIC,GAAIntF,GAAK,KAAO,CAC3B,GAAI,CAACktF,GAAI,CACP,EAAE,MAAQ,KACV,MACF,CACA,MAAMH,GAAK,MAAM,QAAQG,EAAE,EAAI,CAACA,GAAG,KAAMG,IAAO,CAAC/tI,EAAE+tI,EAAE,CAAC,EAAI/tI,EAAE4tI,EAAE,EAAGE,GAAKztF,EAAEutF,EAAE,EAC1EH,IAAMK,IAAM,EAAE,kBAAmB,EAAE,EAAG,EAAE,MAAQF,GAAIC,IAAMjuF,EAAE,MAAQc,GAAIj0E,IAAK4pB,EAAE,aAAa,GAAKnoB,EAAE,WAAa+zJ,GAAG,EAAE,EAAGY,GAAE,EAAG,KAAK,IAAM,CACtI,EAAE,kBAAmB,EAAE,CACzB,CAAC,GAAKxsI,EAAE,eAAgBu3I,EAAE,CAC5B,EAAGjD,GAAK,IAAM,CACZz8J,EAAE,WAAamyE,EAAE,EAAE,KAAK,GAAKuhE,EAAC,EAAIzhE,EAAC,CACrC,EAAGusF,GAAK,IAAMhuG,EAAE,MAAQ+rG,GAAE,EAAK5I,EAAC,EAAI8K,GAAMiB,IAAO,CAC/C,EAAE,MAAQA,EACZ,EAAGhB,GAAK,IAAM,CACZh4J,EAAE,MAAM,UAAY,EAAE,iBAAkB,EAAE,EAAG2tJ,EAAE,GAAKlsI,EAAE,OAAO,CAC/D,EAAGw2I,GAAK,IAAM,CACZj4J,EAAE,MAAM,UAAY,EAAE,iBAAkB,EAAE,EAAGosJ,GAAG9yJ,EAAE,UAAU,EAAG0xE,EAAE,OAAS7B,EAAEyiF,GAAG,MAAOE,GAAG,KAAK,GAAG,MAAK,GAAKrqI,EAAE,MAAM,CACrH,EAAGg3I,GAAK,CAACO,GAAIC,KAAO,CAClBvN,EAAE,OAASA,EAAE,MAAM,gBAAgBuN,IAAM,EAAG,CAC1C,MAAOhuF,EAAE+tF,GAAG,KAAK,EACjB,KAAM/tF,EAAE+tF,GAAG,IAAI,CACvB,CAAO,CACH,EAAGhgJ,GAAMggJ,IAAO,CACd5M,GAAG4M,IAAM1/J,EAAE,UAAU,CACvB,EAAGs/J,GAAK,CAACI,GAAIC,KAAO,CAClBvN,EAAE,OAAO,WAAWsN,GAAIC,EAAE,CAC5B,EAAG7sF,GAAK,CAAC4sF,GAAIC,KAAO,CAClB,GAAInvG,EAAE,MACJ,OAAOjvB,EAAE,MAAM,eAAiBA,EAAE,MAAM,eAAem+H,GAAIC,EAAE,EAAIpD,GAAG,EAAE,CAC1E,EAAGiD,GAAK,CAACE,GAAK,IAAM,CAClBtN,EAAE,OAAO,WAAWsN,EAAE,CACxB,EAAGD,GAAK,IAAMtpF,EACd,OAAOssF,GAAGtsF,EAAIupF,IAAO5sF,GAAG5xE,EAAGw+J,EAAE,EAAG,CAC9B,OAAQ,CAACrN,EAAE,CACjB,CAAK,EAAGr2F,EAAE,CACJ,UAAWugG,GACX,WAAYh+J,EACZ,WAAYy1J,EACZ,SAAUL,EACV,SAAUl2J,EACV,iBAAkB42J,EAElB,yBAA0BoK,GAE1B,aAAcU,GACd,WAAYz/I,GACZ,WAAY4/I,GACZ,WAAYd,GACZ,WAAYgB,GACZ,iBAAkBC,EACxB,CAAK,EAAG,CAACC,GAAIC,MAAQvtF,EAAC,EAAItvD,EAAE,MAAO,CAC7B,IAAK,iBACL,MAAOs2I,GAAGn5J,EAAE,KAAK,EACjB,2BAA4B,GAC5B,iBAAkBg+B,EAAE+zC,CAAC,CAC3B,EAAO,CACDwnF,GAAGR,GAAI,CACL,IAAK,YACL,eAAgBxoG,EAAE,MAClB,QAASwjG,EACT,OAAQL,EACR,eAAgB6I,GAChB,eAAgBv+H,EAAEy1G,CAAC,EACnB,aAAcn1I,EACd,SAAUigK,GACV,QAASjC,GACT,QAASmC,GACT,OAAQC,GACR,WAAYgB,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKntF,IAAOv0C,EAAE,CAAC,EAAE,iBAAkB,EAAE,EACvE,EAASm9H,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAE40H,CAAE,EAAG,CAACrgF,GAAI+sF,MAAQ,CACrB,KAAM/sF,GACN,GAAI2oF,GAAIyE,IAAO,CACbhqH,GAAG8pH,GAAG,OAAQltF,GAAIunF,GAAGmD,GAAG0C,EAAE,CAAC,CAAC,CACxC,CAAW,CACX,EAAU,CACV,CAAO,EAAG,KAAM,CAAC,eAAgB,gBAAgB,CAAC,GAC3CxtF,EAAC,EAAIknF,GAAGoJ,GAAI,CACX,GAAIzkI,EAAEm1B,CAAC,EACP,SAAU,CAACn1B,EAAEm1B,CAAC,CACtB,EAAS,CACDimG,EAAG,MAAO,CACR,IAAK,eACL,MAAOD,GAAG,CACR,mBAAoB,CAACn7H,EAAE18B,CAAC,EAAE,QAC1B,oBAAqB,GACrB,eAAgB08B,EAAEj+B,CAAC,EAAE,QACjC,CAAW,EACD,MAAOi6J,GAAG,CAACh8H,EAAE18B,CAAC,EAAE,SAAW,CAAC08B,EAAEj+B,CAAC,EAAE,SAAWi+B,EAAEyzH,EAAE,EAAI,MAAM,CACpE,EAAW,CACD8H,GAAG3mF,GAAI,CACL,KAAM50C,EAAEgyC,CAAC,EAAEhyC,EAAE0zH,EAAE,EAAE,WAAW,KAAK,CAAC,EAClC,IAAK1zH,EAAEo0C,CAAC,GAAK,CAACp0C,EAAE18B,CAAC,EAAE,SAAW,CAAC08B,EAAEj+B,CAAC,EAAE,UAAY4oB,EAAE,KAC9D,EAAa,CACD,QAASuyI,GAAG,IAAM,CAChB3qG,EAAE,OAAS5nC,EAAE,OAASwpD,EAAC,EAAIknF,GAAGwI,GAAI,CAChC,IAAK,EACL,IAAK,UACL,MAAO1I,GAAG,CAAE,CAAC3H,EAAE,KAAK,EAAG,GAAI,EAC3B,mBAAoBz+E,EAAE,MACtB,SAAUxB,GAAE,MACZ,iBAAkB2nF,EAClB,cAAeoD,GACf,aAAch+J,EACd,YAAaw1J,GACb,aAAc0I,GACd,WAAYkD,GAAG,CAAC,IAAMA,GAAG,CAAC,EAAKntF,IAAOv0C,EAAE9V,CAAC,EAAE,MAAM,EACjE,EAAiBizI,GAAG,CAAE,EAAG,GAAK,CACdV,GAAGz8H,EAAE20H,EAAE,EAAG,CAACpgF,GAAI+sF,MAAQ,CACrB,KAAM/sF,GACN,GAAI2oF,GAAIyE,IAAO,CACbhqH,GAAG8pH,GAAG,OAAQltF,GAAIunF,GAAGmD,GAAG,CAAE,GAAG0C,EAAE,CAAE,CAAC,CAAC,CACvD,CAAmB,CACnB,EAAkB,EACF,CAAC3hI,EAAE18B,CAAC,EAAE,SAAW,CAAC08B,EAAEj+B,CAAC,EAAE,UAAYi+B,EAAEjiC,CAAC,EAAE,QAAU,GAAK,CACrD,KAAM,QACN,GAAIm/J,GAAG,IAAM,CACX9B,EAAG,MAAO,CACR,IAAK,aACL,MAAOD,GAAG,CACR,cAAen7H,EAAE0zH,EAAE,IAAM,SACzB,iBAAkB1zH,EAAE0zH,EAAE,IAAM,KACpD,CAAuB,EACD,MAAOsI,GAAG,CACR,KAAMh8H,EAAEi0H,EAAE,EAAE,OAAO,GAAK,KAAO,GAAGj0H,EAAEi0H,EAAE,EAAE,MAAM,CAAC,KAAO,GACtD,IAAKj0H,EAAEi0H,EAAE,EAAE,OAAO,GAAK,KAAO,GAAGj0H,EAAEi0H,EAAE,EAAE,MAAM,CAAC,KAAO,EAC7E,CAAuB,CACvB,EAAuB,KAAM,CAAC,CAC9B,CAAmB,EACD,IAAK,GACvB,EAAoB,MACpB,CAAe,EAAG,KAAM,CAAC,QAAS,mBAAoB,UAAU,CAAC,GAAKzgF,EAAE,GAAI,EAAE,CAC9E,CAAa,EACD,EAAG,CACf,EAAa,EAAG,CAAC,OAAQ,KAAK,CAAC,CAC/B,EAAW,CAAC,CACZ,EAAS,EAAG,CAAC,KAAM,UAAU,CAAC,EAC9B,EAAO,GAAIuwF,EAAE,EACX,CACF,CAAC,EAAGW,GAAqB1J,GAAG,CAC1B,OAAQ,oBACR,MAAuByH,GAAG,CACxB,eAAgB,CAAE,KAAM,CAAC,QAAS,OAAQ,OAAQ,MAAM,CAAC,EACzD,WAAY,GACZ,UAAW,GACX,KAAM,CAAE,KAAM,OAAO,EACrB,YAAa,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACtC,WAAY,GACZ,eAAgB,GAChB,SAAU,GACV,SAAU,CAAE,KAAM,OAAO,EACzB,oBAAqB,CAAE,KAAM,OAAO,EACpC,kBAAmB,CAAE,KAAM,OAAO,EAClC,UAAW,GACX,UAAW,CAAE,KAAM,OAAO,EAC1B,cAAe,CAAE,KAAM,CAAC,MAAO,QAAQ,CAAC,EACxC,UAAW,GACX,gBAAiB,CAAE,KAAM,OAAO,EAChC,QAAS,CAAE,KAAM,OAAO,EACxB,aAAc,GACd,QAAS,GACT,YAAa,GACb,KAAM,GACN,wBAAyB,CAAE,KAAM,OAAO,EACxC,aAAc,CAAE,KAAM,OAAO,EAC7B,WAAY,CAAE,KAAM,OAAO,EAC3B,QAAS,GACT,gBAAiB,CAAE,KAAM,OAAO,EAChC,UAAW,CAAE,KAAM,CAAC,SAAU,MAAM,CAAC,EACrC,SAAU,CAAE,KAAM,CAAC,OAAQ,OAAO,CAAC,EACnC,SAAU,CAAE,KAAM,OAAO,EACzB,OAAQ,GACR,UAAW,GACX,YAAa,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACtC,SAAU,CAAE,KAAM,CAAC,SAAU,KAAK,CAAC,EACnC,YAAa,CAAE,KAAM,OAAO,EAC5B,WAAY,CAAE,KAAM,OAAO,EAC3B,UAAW,CAAE,KAAM,OAAO,EAC1B,QAAS,GACT,WAAY,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACrC,QAAS,GACT,QAAS,GACT,QAAS,GACT,QAAS,GACT,WAAY,GACZ,WAAY,GACZ,YAAa,GACb,WAAY,CAAE,KAAM,OAAO,EAC3B,MAAO,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EAChC,OAAQ,GACR,SAAU,CAAE,KAAM,OAAO,EACzB,SAAU,CAAE,KAAM,OAAO,EACzB,OAAQ,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACjC,UAAW,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACpC,SAAU,CAAE,KAAM,CAAC,QAAS,MAAM,CAAC,EACnC,UAAW,GACX,eAAgB,CAAE,KAAM,OAAO,EAC/B,cAAe,CAAE,KAAM,CAAC,SAAU,KAAK,CAAC,EACxC,SAAU,CAAE,KAAM,QAAQ,EAC1B,OAAQ,GACR,cAAe,CAAE,KAAM,OAAO,EAC9B,UAAW,CAAE,KAAM,OAAO,EAC1B,QAAS,CAAE,KAAM,OAAO,EACxB,GAAI,GACJ,SAAU,EACd,EAAKhJ,EAAE,EACL,MAAO,CAAC,qBAAsB,wBAAyB,cAAe,aAAc,OAAQ,SAAU,QAAS,OAAQ,UAAW,YAAa,oBAAqB,iBAAkB,sBAAuB,eAAgB,eAAgB,gBAAiB,eAAgB,cAAe,YAAa,aAAc,iBAAkB,SAAS,EACnV,MAAM,EAAG,CAAE,OAAQ17F,EAAG,KAAM7zC,GAAK,CAC/B,MAAM,EAAIA,EAAGw5B,EAAI,EACjByxG,GAAGzxG,EAAG,CAAC,EACP,MAAM,EAAI8wB,KAAM,CAAE,SAAUzyE,CAAC,EAAKkzJ,KAAM3xJ,EAAIvB,EAAE,EAAG,OAAQ2hD,EAAE,WAAW,EAAGpgB,EAAI23H,GAAG,aAAa,EAC7F,OAAOl9F,EAAEw8F,GAAGj3H,CAAC,CAAC,EAAG,CAAC76B,EAAGqrE,KAAOK,EAAC,EAAIknF,GAAG2I,GAAI,CAAE,IAAK,aAAa,EAAI7G,GAAG,CAAE,EAAG,GAAK,CAC3EV,GAAGz8H,EAAE18B,CAAC,EAAG,CAAC6vJ,EAAGh+F,KAAO,CAClB,KAAMg+F,EACN,GAAI+J,GAAIn/J,GAAM,CACZ45C,GAAGlvC,EAAE,OAAQ0qJ,EAAG2I,GAAGmD,GAAGlhK,CAAC,CAAC,CAAC,CACnC,CAAS,CACT,EAAQ,CACR,CAAK,EAAG,IAAI,EACV,CACF,CAAC,kMCn9JD,KAAM,CAAE,gBAAAkxE,EAAiB,iBAAAc,CAAA,EAAqBhB,GAAA,EAExCpN,EAAQhgB,GAAsBC,EAAA,YAAmB,EACjD+iH,EAAgB52J,GAAe,EAAE,EACjC62J,EAAmB72J,GAAY,UAAU,EACzC82J,EAAanmJ,GAAqC,YAAY,EAEpEnO,GAAMo0J,EAAe,IAAM,CACzB,MAAMG,EAAeH,EAAc,MAC/B50F,EAAiB+0F,CAAY,GAC/BnjG,EAAM,MAAQmjG,EACdF,EAAiB,MAAQ31F,EAAgB61F,CAAY,GAChDH,EAAc,MAAQhjG,EAAM,KACrC,CAAC,EAEDpxD,GACEoxD,EACA,IAAM,CACJgjG,EAAc,MAAQhjG,EAAM,KAC9B,EACA,CAAE,UAAW,GAAK,EAGpB,SAASojG,GAAmB,CAC1BJ,EAAc,MAAQ,GACtBE,EAAW,OAAO,WACpB,mBAIEl7G,GAiBgBusC,EAAA8uE,EAAA,WAhBV,aAAJ,IAAIH,EACJ,MAAM,sBACGF,EAAA,2CAAAA,EAAa,MAAAjiH,GACrB,QAAO,OAAY47F,GAAkBpoD,EAAAjnB,CAAA,EAAgBqvE,CAAK,GAC1D,MAAO,kBACP,cAAa,mBACb,aAAY,2CAEF,WACT,IAES,CAFTt8F,EAES,SAFTD,GAESM,GADJuiH,EAAA,KAAgB,OAGZ,kBACT,IAAsI,CAAxHD,EAAA,MAAc,SAAM,OAAlC7iH,EAAsI,gBAA5F,MAAM,sCAAuC,uBAAOijH,EAAA,EAAgB,EAAI,aAAW,8XC5CnI,MAAM7/G,EAAQqoF,GAAA,EACR,CAAE,OAAAlgC,EAAQ,oBAAAmgC,EAAqB,qBAAAG,EAAsB,UAAAhjC,EAAW,aAAAthD,EAAc,UAAA6lB,CAAA,EAAc3nB,GAAYrC,CAAK,EAC7G+/G,EAAgBt/J,EAAS,IACtB,CAAC,GAAG,IAAI,IAAIglG,EAAU,MAAM,IAAKrB,GAAaA,EAAS,IAAI,CAAC,CAAC,EAAE,MACvE,EAEK47D,MAAqB,IAAI,CAC7B,CAAC,cAAe,GAAG53B,GAAW,QAAQ,OAAO,EAC7C,CAAC,cAAe,GAAGA,GAAW,QAAQ,MAAM,EAC5C,CAAC,0BAA2B,GAAGA,GAAW,cAAc,OAAO,EAC/D,CAAC,wBAAyB,GAAGA,GAAW,YAAY,OAAO,EAC3D,CAAC,wBAAyB,GAAGA,GAAW,YAAY,OAAO,EAC5D,EACK63B,EAAuB,CAAC,KAAM,MAAO,MAAO,KAAK,EACjDC,EAAcz/J,EAAS,IAAM,CAAC,GAAGu/J,EAAe,MAAM,CAAC,EACvDG,EAAqB1/J,EAAS,CAClC,KAAM,CACJ,OAAO2/J,EAAe,GAAGj4D,EAAO,MAAM,QAAQ,IAAIA,EAAO,MAAM,YAAc,MAAQ,MAAM,EAAE,CAC/F,EACA,IAAIhmG,EAAU,CACZ,MAAMzG,EAAOskK,EAAe,IAAI79J,CAAQ,EACxC,GAAIzG,EAAM,CACR,MAAM2kK,EAAU3kK,EAAK,MAAM,GAAG,EAC9BysG,EAAO,MAAQ,CAAE,YAAak4D,EAAQ,CAAC,IAAM,MAAO,SAAUA,EAAQ,CAAC,EACzE,MACEl4D,EAAO,MAAQ,CAAE,YAAa,GAAM,SAAUigC,GAAW,SAE7D,EACD,EACKk4B,EAAuB7/J,EAAS,CACpC,KAAM,CACJ,OAAO0jD,EAAa,MAAM,UAC5B,EACA,IAAIhiD,EAAU,CACZgiD,EAAa,MAAQ,SAAShiD,CAAQ,CACxC,EACD,EAED,SAASi+J,EAAeG,EAAqB,CAC3C,SAAW,CAACtoK,EAAK2B,CAAK,IAAKomK,EAAe,UACxC,GAAIpmK,IAAU2mK,EACZ,OAAOtoK,EAGX,MAAO,EACT,eAIE0kD,EAAA,EAAAC,EAgCM,MAhCNC,GAgCM,CA/BJC,EAMM,MANNC,GAMM,aALJD,EAAgC,OAA3B,MAAM,gBAAc,UACzBA,EAGM,MAHNG,GAGM,CAFJlmB,GAA2G4/F,GAAA,YAArF3lC,EAAAs3C,CAAA,6CAAAA,EAAmB,MAAA9qF,EAAA,MAAE,YAAY,qBAAqB,aAAW,sDACvFV,EAA4K,OAAvK,MAAM,QAAM,IAAC,YAAU,EAAAA,EAAmG,KAAhG,KAAK,2EAA0E,eAAa,KAAI,yCAAuC,YAG1KA,EAKM,MALNM,GAKM,CAJJJ,EAAA,KAAAA,EAAA,GAAAF,EAAyC,OAApC,MAAM,gBAAe,YAAS,KACnCA,EAEM,MAFNW,GAEM,CADJ1mB,GAAoNypI,GAAA,CAA/L,MAAOT,EAAA,MAAe,aAAa,gCAA8B/uE,EAAAy3C,CAAA,6CAAAA,EAAoB,MAAAjrF,EAAA,MAAE,YAAU,WAAW,MAAM,WAAW,qBAAmB,MAAO,aAAY,GAAO,cAAa,uCAGhNV,EAKM,MALNm4C,GAKM,CAJJj4C,EAAA,KAAAA,EAAA,GAAAF,EAAsC,OAAjC,MAAM,gBAAe,SAAM,KAChCA,EAEM,MAFNo4C,GAEM,CADJn+D,GAAuC0pI,GAAA,YAAbzvE,EAAAhnB,CAAA,6CAAAA,EAAS,MAAAxsB,EAAA,kCAGvCV,EAKM,MALNq4C,GAKM,CAJJn4C,EAAA,KAAAA,EAAA,GAAAF,EAAqC,OAAhC,MAAM,gBAAe,QAAK,KAC/BA,EAEM,MAFNs4C,GAEM,CADJr+D,GAAwMypI,GAAA,CAAnL,MAAOP,EAAsB,aAAa,oCAAkCK,EAAA,2CAAAA,EAAoB,MAAA9iH,GAAE,YAAU,SAAU,YAAW,GAAQ,aAAY,GAAQ,cAAa,+BAGnMV,EAKM,MALN22E,GAKM,CAJJz2E,EAAA,MAAAA,EAAA,IAAAF,EAAqC,OAAhC,MAAM,gBAAe,QAAK,KAC/BA,EAEM,MAFN42E,GAEM,CADJ38F,GAAuJypI,GAAA,CAAlI,MAAON,EAAA,iBAAsBC,EAAA,2CAAAA,EAAkB,MAAA3iH,GAAE,YAAU,SAAU,YAAW,GAAQ,aAAY,GAAQ,cAAa,yFC5D/I,IAAKkjH,QACVA,EAAA,OAAS,SACTA,EAAA,gBAAkB,kBAClBA,EAAA,WAAa,aACbA,EAAA,qBAAuB,uBACvBA,EAAA,gBAAkB,kBAClBA,EAAA,YAAc,cANJA,QAAA,IASAC,QACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,UAAY,YACZA,EAAA,YAAc,cACdA,EAAA,MAAQ,QACRA,EAAA,KAAO,OANGA,QAAA,ICjCL,SAASC,GAAe5+J,EAAc,CAE3C,IAAI6+J,EADU7+J,EAAK,MAAM,GAAG,EAAE,CAAC,EACR,MAAM,GAAG,EAAE,OAAS,GAC3C,OAAA6+J,EAAaA,EAAW,QAAQ,IAAK,GAAG,EACjCA,CACT,CAEO,SAASC,GAAqBC,EAAkB,CACrD,MAAMxhG,EAAO22B,GAAc8qE,GAA6BD,CAAQ,CAAC,EACjE,MAAO,GAAGxhG,EAAK,KAAK,IAAIA,EAAK,IAAI,EACnC,CAEO,SAASyhG,GAA6BD,EAAkB,CAE7D,KAAM,CAACE,EAAIC,EAAIC,CAAE,EAAIJ,EAAS,MAAM,GAAG,EACvC,QAAS,SAASE,CAAE,EAAI,GAAK,SAASC,CAAE,GAAK,GAAK,WAAWC,CAAE,GAAK,GACtE,8HCbA,MAAM7kK,EAAQogD,EAIR0kH,EAAa3gK,EAAS,IAExBnE,EAAM,QAAQ,SAAWokK,GAAc,sBACvCM,GAA6B1kK,EAAM,QAAQ,aAAa,EAAI,GAC5D0kK,GAA6B1kK,EAAM,QAAQ,eAAe,EAAI,GAC9D0kK,GAA6B1kK,EAAM,QAAQ,aAAa,EAAI,CAE/D,EAEK+kK,EAAa5gK,EAAS,IAAM,CAChC,OAAQnE,EAAM,QAAQ,QACpB,KAAKokK,GAAc,WACjB,MAAO,CAAE,KAAM,aAAc,KAAM,iBACrC,KAAKA,GAAc,qBACjB,MAAO,CAAE,KAAM,2BAA4B,KAAM,4BACnD,KAAKA,GAAc,OACjB,MAAO,CAAE,KAAM,SAAU,KAAM,aACjC,KAAKA,GAAc,gBACjB,MAAO,CAAE,KAAM,yBAA0B,KAAM,eACjD,KAAKA,GAAc,gBACjB,MAAO,CAAE,KAAM,oBAAqB,KAAM,uBAC5C,KAAKA,GAAc,YACjB,MAAO,CAAE,KAAM,kBAAmB,KAAM,mBAC1C,QACE,MAAO,CAAE,KAAM,iBAAkB,KAAM,oBAAoB,CAEjE,CAAC,oCAIC,OAAA/5D,IAAAhqD,EAAA,EAAAC,EAGM,MAHNC,GAGM,CAFJC,EAAwD,OAAnD,MAAKqB,GAAA,CAAC,cAAsBkjH,EAAA,MAAW,IAAI,YACrCD,EAAA,OAAXzkH,EAAA,EAAAC,EAA6C,MAA7CG,EAA6C,gBAFG,CAAA82E,EAAA,SAAAwtC,EAAA,MAAW,KAAI,8RC/BnE,MAAMtrH,EAASuG,GAAA,EAEThgD,EAAQogD,EAGRp9C,EAAOmB,EAAS,IAAM,CAC1B,MAAMknC,EAAQoO,EAAO,aAAa,MAAM,MAUxC,OARcA,EAAO,QAAQ,CAC3B,KACEz5C,EAAM,QAAQ,SAAWokK,GAAc,YAAcpkK,EAAM,QAAQ,SAAWokK,GAAc,qBACxF10F,GAAW,SAAS,eAAe,KAAK1vE,EAAM,QAAQ,WAAYA,EAAM,QAAQ,EAAE,EAClF0vE,GAAW,SAAS,cAAc,KAAK1vE,EAAM,QAAQ,EAAE,EAC7D,MAAO,CAAE,GAAGqrC,EAAY,KAAMoO,EAAO,aAAa,MAAM,IAAK,CAAE,CAChE,CAGH,CAAC,oBAIC0O,GAUausC,EAAAh6C,EAAA,GAVD,MAAM,OAAQ,GAAI13C,EAAA,mBAC5B,IAEM,CAFNw9C,EAEM,MAFND,GAEM,CADJ9lB,GAA8CuqI,GAAA,CAA1B,QAAShlK,EAAM,+BAErCwgD,EAA4D,MAA5DC,GAA4DI,GAAjC7gD,EAAM,QAAQ,UAAU,KACnDwgD,EAAgE,MAAhEG,GAAgEE,GAAnC7gD,EAAM,QAAQ,YAAY,KACvDwgD,EAA+H,MAA/HM,GAA+H,CAAxGJ,EAAA,KAAAA,EAAA,GAAAF,EAA0C,QAApC,MAAM,cAAa,aAAU,KAAcI,GAAAC,GAAA,SAAK7gD,EAAM,QAAQ,SAAS,EAAE,gBAAc,OACpHwgD,EAAsI,MAAtIW,GAAsI,CAA3GT,EAAA,KAAAA,EAAA,GAAAF,EAA8C,QAAxC,MAAM,cAAa,iBAAc,KAAUI,GAAAC,GAAA6zC,EAAA8vE,EAAA,EAAqBxkK,EAAM,QAAQ,aAAa,QAC5HwgD,EAA4I,MAA5Im4C,GAA4I,CAA/Gj4C,EAAA,KAAAA,EAAA,GAAAF,EAAgD,QAA1C,MAAM,cAAa,mBAAgB,KAAUI,GAAAC,GAAA6zC,EAAA8vE,EAAA,EAAqBxkK,EAAM,QAAQ,eAAe,QAClIwgD,EAAsI,MAAtIo4C,GAAsI,CAA3Gl4C,EAAA,KAAAA,EAAA,GAAAF,EAA8C,QAAxC,MAAM,cAAa,iBAAc,KAAUI,GAAAC,GAAA6zC,EAAA8vE,EAAA,EAAqBxkK,EAAM,QAAQ,aAAa,2UChChI,MAAMA,EAAQogD,EACR+f,EAAQhgB,iBAA6C,EACrDnoB,EAAOwhG,EACPyrC,EAA6C,CACjD,CAAC,EAAG,KAAK,EACT,CAAC,IAAM,iBAAiB,EACxB,CAAC,KAAO,kBAAkB,EAC1B,CAAC,IAAO,kBAAkB,EAC1B,CAAC,IAAO,gBAAgB,EACxB,CAAC,IAAQ,iBAAiB,EAC1B,CAAC,KAAS,iBAAiB,EAC3B,CAAC,KAAS,cAAc,GAG1B,SAASC,GAAY,CACnB,MAAM9lK,EAAO6lK,EAAuB,KAAM7lK,GAASA,EAAK,CAAC,IAAM+gE,EAAM,KAAK,EAE1E,OAAI/gE,EACKA,EAAK,CAAC,EAGR,KACT,CAEA,MAAM+lK,EAAcD,EAAA,EAEdE,EAAkB74J,GAAY44J,CAAW,EAE/Cp2J,GAAMq2J,EAAkBv/J,GAAa,CACnC,MAAMzG,EAAO6lK,EAAuB,KAAM7lK,GAASA,EAAK,CAAC,IAAMyG,CAAQ,EAEnEzG,IACEA,EAAK,CAAC,IAAM,EACd+gE,EAAM,MAAQ,KAEdA,EAAM,MAAQ/gE,EAAK,CAAC,EAG1B,CAAC,EACD,MAAMimK,EAAe94J,GAAI,EAAK,EAC9BwC,GACE,IAAM/O,EAAM,UACX6F,GAAa,CACRA,IACFw/J,EAAa,MAAQ,GACrB,WAAW,IAAM,CACfA,EAAa,MAAQ,EACvB,EAAG,GAAI,EAEX,GAEF,eAAe1+G,GAAU,CACvB,MAAM3uB,EAAK,eAAe,CAC5B,eAIEqoB,EAAA,EAAAC,EAQM,MARNC,GAQM,CAPJ9lB,GAA8G6wG,GAAA,CAAhG,KAAK,KAAM,KAAM52C,EAAAyD,EAAA,EAAY,QAASktE,EAAA,MAAe,QAAO1+G,CAAA,cAAS,IAAY,IAAAjG,EAAA,KAAAA,EAAA,OAAZ,eAAY,mCAC/FF,EAKM,MALNC,GAKM,CAJJC,EAAA,KAAAA,EAAA,GAAAF,EAA6C,OAAxC,MAAM,gBAAe,gBAAa,KACvCA,EAEM,MAFNG,GAEM,CADJlmB,GAAgLypI,GAAA,CAA3J,MAAOe,EAAuB,IAAK1oK,GAAMA,EAAC,eAAe6oK,EAAA,2CAAAA,EAAe,MAAAlkH,GAAE,YAAU,SAAU,YAAW,GAAQ,aAAY,GAAQ,cAAa,+FCjExKX,GAAA,OAAM,aAAa,mBAAxB,OAAAF,EAAA,EAAAC,EAIM,MAJNC,GAIM,IAAAG,EAAA,KAAAA,EAAA,IAHJF,EAEM,OAFD,MAAM,iBAAiB,KAAK,WAC/BA,EAA+C,QAAzC,MAAM,iBAAiB,EAAC,YAAU,mKCO9C,MAAMkD,EAAQqoF,GAAA,EACR,CAAE,SAAAG,EAAU,WAAAD,EAAY,OAAApgC,EAAQ,oBAAAmgC,EAAqB,qBAAAG,EAAsB,aAAAtkF,EAAc,UAAA6lB,CAAA,EAAc3nB,GAAYrC,CAAK,EACxHpV,EAAQ2R,GAAA,EACRxG,EAASuG,GAAA,EACTslH,EAAmB/4J,GAAmB,IAAI,EAC1C,CAAE,WAAAg5J,EAAY,aAAA1hE,EAAc,eAAAG,EAAgB,MAAA3xF,EAAO,KAAAkrF,GAASkG,GAAwB,aAAc//C,EAAM,QAAS,GAAI,EACrH8hH,EAAYj5J,GAAI,EAAI,EAE1BkV,GAAc,IAAM,CAClBgkJ,EAAA,EAGA,WAAW,SAAY,CACrB,MAAM,QAAQ,IAAI,CAACF,EAAA,EAAc7hH,EAAM,eAAe,CAAC,EACvD8hH,EAAU,MAAQ,EACpB,EAAG,CAAC,CACN,CAAC,EAEDz2J,GACE,IAAM0qC,EAAO,aAAa,MAAM,MAChC,SAAY,CACVgsH,EAAA,EACA,MAAMF,EAAA,CACR,EACA,CAAE,KAAM,GAAK,EAGf,MAAMn1J,EAAcrB,GAAM,CAAC,IAAMu/B,EAAM,MAAOuZ,EAAcgkD,EAAQmgC,EAAqBG,EAAsBz+D,CAAS,EAAG,SAAY,CACrI,GAAI83F,EAAU,MACZ,OAGF,KAAM,CAAC53F,EAAU5H,CAAM,EAAI0H,EAAU,MAC/BpkD,EAAOskD,GAAU,eAAiB,GAClCvkD,EAAK28C,GAAQ,eAAiB,GAEpC,MAAMvsB,EAAO,KAAK,CAChB,MAAO,CACL,OAAQoyD,EAAO,MAAM,SACrB,QAASA,EAAO,MAAM,YAAc,MAAQ,OAC5C,OAAQmgC,EAAoB,MAC5B,SAAUG,EAAqB,MAC/B,KAAA7iH,EACA,GAAAD,EACA,SAAUw+B,EAAa,MACzB,CACD,EAED,MAAM09G,EAAA,CACR,CAAC,EAED,SAASE,GAAW,CAClB,MAAMp6H,EAAQoO,EAAO,aAAa,MAAM,MAExCrpC,EAAY,QAEZ47H,EAAoB,MAAQ3gG,EAAM,OAAUA,EAAM,OAAoB,GACtEwgE,EAAO,MACLxgE,EAAM,QAAUA,EAAM,QAClB,CAAE,YAAaA,EAAM,UAAY,MAAO,SAAUA,EAAM,QACvDwgE,EAAO,MAAQ,CAAE,YAAa,GAAO,SAAUigC,GAAW,UACjEjkF,EAAa,MAAQxc,EAAM,SAAW,SAASA,EAAM,QAAkB,EAAI,IAC3EqiC,EAAU,MAAQriC,EAAM,MAAQA,EAAM,GAAK,CAAC,IAAI,KAAKA,EAAM,IAAc,EAAG,IAAI,KAAKA,EAAM,EAAY,CAAC,EAAI,GAC5G8gG,EAAqB,MAAS9gG,EAAM,UAAY,GAEhDj7B,EAAY,QACd,CAEA,OAAArB,GAAMu2J,EAAmBz/J,GAAa,CACpCm+F,EAAen+F,GAAY,CAAC,EACxBA,IAAa,MAAQA,IAAa,EACpC03F,EAAA,EAEAlrF,EAAA,CAEJ,CAAC,cAICiuC,EAgBM,YAfJE,EAQM,MARND,GAQM,CAPJ9lB,GAAmGirI,GAAA,YAA3EJ,EAAA,2CAAAA,EAAgB,MAAApkH,GAAG,UAAWwzC,EAAAmP,CAAA,EAAe,gBAAgBnP,EAAA6wE,CAAA,wDACrF/kH,EAEM,MAFNC,GAEM,CADJhmB,GAAgBkrI,EAAA,IAElBnlH,EAEM,MAFNG,GAEM,CADJlmB,GAAiEmrI,GAAA,CAAlD,UAAWlxE,EAAAw3C,CAAA,EAAS,OAAS,MAAOx3C,EAAAu3C,CAAA,qCAGvDzrF,EAKM,MALNM,GAKM,CAJkB0kH,EAAA,WAAtBr9G,GAAmC09G,GAAA,0BACnCvlH,EAEWS,GAAA,KAAAC,GAFiB0zC,EAAAw3C,CAAA,EAAXx3F,QACfyT,GAAoC29G,GAAA,CADM,IAAApxH,EAAQ,GAClC,QAAAA,CAAA,kFCtGXqxH,GAAiC,QAE9C,SAAwBC,IAA4B,CAClD,KAAM,CAAE,MAAOz+D,CAAA,EAAqBH,GAAA,EACpC,OAAOG,EAAiB,4BAA4Bw+D,EAA8B,CACpF,6GCAA,MAAME,EAAyBD,GAAA,oBAI7B79G,GA2B0BwhD,GAAA,iBA1BxB,IAyBoB,CAzBpBlvE,GAyBoBmvE,GAAA,iBAxBlB,IAuBoB,CAvBpBnvE,GAuBoBqhE,GAAA,CAvBA,UAAWpH,EAAAuxE,CAAA,GAAsB,CACxC,eACT,IAQM,CARNzlH,EAQM,MARND,GAQM,CAPJC,EAGI,yBAHD,6EAED,KAAAA,EAAmD,eAAzCk0C,EAAAqxE,EAAA,CAA8B,oBAAW,KACrD,mBACAvlH,EAEM,YADJA,EAA0I,KAAvI,MAAM,8BAA8B,KAAK,mCAAmC,OAAO,UAAS,yCAAuC,uBAK5I,IASM,CATNA,EASM,MATNC,GASM,aARJD,EAIM,OAJD,MAAM,aAAW,CACpBA,EAEM,OAFD,MAAM,UAAQ,CACjBA,EAAqB,UAAjB,cAAY,UAGpBA,EAEM,MAFNG,GAEM,CADJlmB,GAAayrI,EAAA,8FCZnBjgH,GAAsB,CAC1B,CACE,KAAMypB,GAAW,UACjB,UAAWy2F,GACX,MAAO,aAET,CACE,KAAMz2F,GAAW,WAAW,UAAU,SACtC,UAAW,IAAA02F,GAAA,IAAM,OAAO,iCAA+C,gDACvE,MAAO,sBAET,CACE,KAAM12F,GAAW,WAAW,KAC5B,UAAW22F,GACX,MAAO,aACP,SAAU32F,GAAW,WAAW,UAAU,KAC1C,SAAU,CACR,CACE,MAAO,sBACP,KAAMA,GAAW,WAAW,UAAU,KACtC,UAAW,IAAA02F,GAAA,IAAM,OAAO,kCAAgD,mDAE1E,CACE,MAAO,oBACP,KAAM12F,GAAW,WAAW,QAAQ,KACpC,UAAW,IAAA02F,GAAA,IAAM,OAAO,gCAA8C,mDAExE,CACE,MAAO,0BACP,KAAM12F,GAAW,WAAW,cAAc,KAC1C,UAAW,IAAA02F,GAAA,IAAM,OAAO,sCAAoD,qDAC9E,CACF,EAEF,CACE,KAAM12F,GAAW,SAAS,KAC1B,UAAW42F,GACX,MAAO,gBAET,CACE,KAAM52F,GAAW,cAAc,KAC/B,UAAW62F,GACX,MAAO,kBACP,SAAU72F,GAAW,cAAc,qBAAqB,KACxD,SAAU,CACR,CACE,MAAO,wBACP,KAAMA,GAAW,cAAc,qBAAqB,SACpD,UAAW,IAAA02F,GAAA,IAAM,OAAO,mCAAqD,sDAE/E,CACE,KAAM12F,GAAW,cAAc,eAAe,SAC9C,MAAO,sBACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,8BAAgD,4DAE1E,CACE,KAAM12F,GAAW,cAAc,qBAAqB,SACpD,MAAO,yBACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,oCAAsD,sDAEhF,CACE,KAAM12F,GAAW,cAAc,gBAAgB,SAC/C,MAAO,uBACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,+BAAiD,mDAE3E,CACE,KAAM12F,GAAW,cAAc,eAAe,SAC9C,MAAO,kBACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,8BAAgD,yDAE1E,CACE,MAAO,kBACP,KAAM12F,GAAW,cAAc,MAAM,SACrC,UAAW,IAAA02F,GAAA,IAAM,OAAO,8BAAgD,4DAE1E,CACE,MAAO,mBACP,KAAM12F,GAAW,cAAc,aAAa,SAC5C,UAAW,IAAA02F,GAAA,IAAM,OAAO,+BAAiD,mDAE3E,CACE,KAAM12F,GAAW,cAAc,QAAQ,SACvC,MAAO,UACP,SAAUA,GAAW,SAAS,cAAc,SAC9C,CACF,EAEF,CACE,KAAMA,GAAW,SAAS,cAAc,SACxC,MAAO,UACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,2BAAuC,4DAEjE,CACE,KAAM12F,GAAW,SAAS,eAAe,SACzC,MAAO,UACP,UAAW,IAAA02F,GAAA,IAAM,OAAO,2BAAuC,4DAEjE,CACE,KAAM12F,GAAW,WAAW,KAC5B,UAAW82F,GACX,MAAO,uBAET,CACE,KAAM92F,GAAW,WAAW,gBAAgB,SAC5C,UAAW,IAAA02F,GAAA,IAAM,OAAO,+BAA6C,+CACrE,MAAO,oBAET,CACE,KAAM12F,GAAW,aACjB,MAAO,gBACP,UAAW+2F,EAAA,EAEb,CACE,KAAM/2F,GAAW,OACjB,UAAWg3F,GACX,MAAO,UAET,CACE,KAAMh3F,GAAW,WAAW,KAC5B,UAAWi3F,GACX,MAAO,QACP,SAAUj3F,GAAW,WAAW,UAAU,KAC1C,SAAU,CACR,CACE,MAAO,YACP,KAAMA,GAAW,WAAW,UAAU,KACtC,SAAUA,GAAW,WAAW,UAAU,kBAAkB,KAC5D,UAAW,IAAA02F,GAAA,IAAM,OAAO,6BAA4C,4CACpE,SAAU,CACR,CACE,MAAO,qBACP,KAAM12F,GAAW,WAAW,UAAU,kBAAkB,SACxD,UAAW,IAAA02F,GAAA,IAAM,OAAO,qCAA8D,4DAExF,CACE,MAAO,yBACP,KAAM12F,GAAW,WAAW,UAAU,qBAAqB,SAC3D,UAAW,IAAA02F,GAAA,IAAM,OAAO,wCAAiE,2DAC3F,CACF,CACF,CACF,EAEF,CACE,KAAM12F,GAAW,cAAc,KAC/B,MAAO,gBACP,UAAWk3F,GACX,SAAUl3F,GAAW,cAAc,QAAQ,KAC3C,SAAU,CACR,CACE,MAAO,UACP,KAAMA,GAAW,cAAc,QAAQ,SACvC,UAAW,IAAA02F,GAAA,IAAM,OAAO,+BAAgD,6CAE1E,CACE,MAAO,wBACP,KAAM12F,GAAW,cAAc,qBAAqB,SACpD,UAAW,IAAA02F,GAAA,IAAM,OAAO,oCAAqD,6CAE/E,CACE,MAAO,6BACP,KAAM12F,GAAW,cAAc,yBAAyB,SACxD,UAAW,IAAA02F,GAAA,IAAM,OAAO,wCAAyD,iDAEnF,CACE,MAAO,kBACP,KAAM12F,GAAW,cAAc,eAAe,SAC9C,UAAW,IAAA02F,GAAA,IAAM,OAAO,8BAA+C,6CAEzE,CACE,MAAO,cACP,KAAM12F,GAAW,cAAc,YAAY,SAC3C,UAAW,IAAA02F,GAAA,IAAM,OAAO,mCAAoD,6CAE9E,CACE,MAAO,sBACP,KAAM12F,GAAW,cAAc,mBAAmB,SAClD,UAAW,IAAA02F,GAAA,IAAM,OAAO,kCAAmD,mDAE7E,CACE,MAAO,cACP,KAAM12F,GAAW,WAAW,MAAM,KAClC,SAAUA,GAAW,WAAW,MAAM,gBAAgB,KACtD,UAAW,IAAA02F,GAAA,IAAM,OAAO,yBAAwC,4CAChE,SAAU,CACR,CACE,MAAO,mBACP,KAAM12F,GAAW,WAAW,MAAM,gBAAgB,SAClD,UAAW,IAAA02F,GAAA,IAAM,OAAO,mCAAwD,yDAElF,CACE,MAAO,mBACP,KAAM12F,GAAW,WAAW,MAAM,KAAK,SACvC,UAAW,IAAA02F,GAAA,IAAM,OAAO,yBAA8C,uBAExE,CACE,MAAO,cACP,KAAM12F,GAAW,WAAW,MAAM,YAAY,SAC9C,UAAW,IAAA02F,GAAA,IAAM,OAAO,+BAAoD,4CAC9E,CACF,CACF,CACF,CAEJ,EC7NA,SAASntH,GAAK75C,EAAyB,CACrC,MAAO,CAAE,MAAO,GAAGA,EAAK,KAAK,kBAC/B,CAEA,SAASynK,GAAYv0I,EAA2ClzB,EAAiB,CAC3EA,EAAK,UACPA,EAAK,SAAS,QAAS2Y,GAAU,CAC/B,MAAM+uJ,EAA6C,CACjD,KAAM/uJ,EAAM,KACZ,KAAM,GAAG3Y,EAAK,IAAI,IAAI2Y,EAAM,IAAI,GAChC,KAAMkhC,GAAKlhC,CAAK,EAChB,UAAWA,EAAM,UACjB,SAAU,EAAC,EAEbua,EAAO,SAAS,KAAKw0I,CAAO,EAExB/uJ,EAAM,WAAU+uJ,EAAQ,SAAW/uJ,EAAM,UACzCA,EAAM,QAAO+uJ,EAAQ,MAAQ/uJ,EAAM,OAEvC8uJ,GAAYC,EAAS/uJ,CAAK,CAC5B,CAAC,CAEL,CAEA,SAAwBgvJ,IAAa,CACnC,MAAM3vH,EAAS6O,GAAO,IAAqB7mD,GAAS,CAClD,MAAMyI,EAA4C,CAChD,KAAMzI,EAAK,KACX,KAAMA,EAAK,KACX,KAAM65C,GAAK75C,CAAI,EACf,UAAWA,EAAK,UAChB,SAAU,EAAC,EAGb,OAAAynK,GAAYh/J,EAAQzI,CAAI,EAEpBA,EAAK,WAAUyI,EAAO,SAAWzI,EAAK,UACtCA,EAAK,QAAOyI,EAAO,MAAQzI,EAAK,OAE7ByI,CACT,CAAC,EAEKm/J,EAAe5gH,KAAmB,cACxC,OAAM4gH,GAAgBA,IAAiB,KACrC5vH,EAAO,KAAK,CACV,KAAM,IACN,SAAU4vH,CAAA,CACX,EAGI9qH,GAAa,CAClB,QAASjI,GAAA,EACT,OAAAmD,EACA,OAAQ,GACT,CACH,2cC9CA,KAAM,CAAE,MAAOktD,CAAA,EAAoBD,GAAA,EAC7B5B,EAA4B6B,EAAgB,0BAC5C,CAAE,MAAO2iE,CAAA,EAAgC7/D,GAAA,EACzCpB,EAAcihE,EAA4B,YAC1ClhE,EAAckhE,EAA4B,YAC1CxsE,EAAsBp0C,GAAA,EACtB,CAAE,cAAAE,CAAA,EAAkBR,GAAY00C,CAAmB,EACnDmB,EAAepB,GAAA,EACf,CAAE,cAAAE,EAAe,QAAAtB,CAAA,EAAYwC,EAE7Bn1C,EAAsBtiD,EAAS,IAC5BoiD,EAAc,QAAU,KAAOA,EAAc,QAAU,IAAMA,EAAc,QAAU,MAAQA,EAAc,QAAU,MAC7H,EAEK2gH,EAA6B/iK,EAAS,IACnC,kBAAkBoiD,EAAc,KAAK,EAC7C,EAEKi0E,EAAqBF,GAAA,EACrB,CAAE,cAAAjhC,CAAA,EAAkBtzC,GAAYy0E,CAAkB,yCAItD,OAAAn6E,EAAA,EAAAC,EAsCS,SAtCTC,GAsCS,CArCPC,EAoCM,MApCNC,GAoCM,CAnCJD,EA2BM,MA3BNG,GA2BM,CA1BJH,EAyBM,MAzBNM,GAyBM,CAxBJN,EAGO,OAHPW,GAGO,CAFL1mB,GAA6Ci+D,GAAA,CAArC,MAAM,cAAe,KAAMhE,EAAA+C,EAAA,oBACnCh9D,GAAoGohE,EAAA,CAAvF,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,mBAAmB,kBAAM,IAAoB,IAAAhvB,EAAA,KAAAA,EAAA,OAApB,uBAAoB,yBAG5E,CAAAg0C,EAAAsR,CAAA,EAAY,aAAa,cAAgBtR,EAAAqR,CAAA,EAAY,YAAlE1lD,EAAA,EAAAC,EAAiI,OAAAq4C,GAAnD,kBAAe93C,GAAG6zC,EAAAqR,CAAA,EAAY,UAAU,eAC1GrR,EAAAsR,CAAA,EAAY,aAAa,cAAgBtR,EAAAqR,CAAA,EAAY,gBAAjEzlD,EAGO,OAAAs4C,GAAA,CAHsEh4C,GAAA,kBAC7DC,GAAG6zC,EAAAqR,CAAA,EAAY,UAAU,EAAG,KAAE,GAAcrR,EAAAsR,CAAA,EAAY,aAAa,kBAAvC79C,GAA2GuwC,GAAA,OAAtD,MAAM,wBAAyB,KAAMhE,EAAAuB,EAAA,8BACtIz1C,EAAqI,KAAjI,KAAMk0C,EAAAsR,CAAA,EAAY,aAAa,iBAAkB,OAAO,UAAS,OAAItR,EAAAsR,CAAA,EAAY,aAAa,kBAAkB,EAAG,aAAU,EAAAnN,EAAA,iBAAI,KACvI,iBACgBpyC,EAAA,WACdnG,EAWO,cAXD,MAAM,uBAAwB,MAAO4mH,EAAA,uBAA4B,mBAErE,KAAqCxyE,EAAA+N,CAAA,EAA0B,WAAS,CAAK/N,EAAA+N,CAAA,EAA0B,YAAvGpiD,EAAA,EAAAC,EAMO,OANP62E,GAMO,aALL32E,EAA4C,OAAvC,MAAM,4BAA0B,UACzBk0C,EAAAqR,CAAA,EAAY,oBAAxB1lD,IAAAC,EAAyF,OAAA82E,GAA7C,KAAEv2E,GAAG6zC,EAAAqR,CAAA,EAAY,kBAAkB,eACnErR,EAAAsR,CAAA,EAAY,YAAY,iBAApC1lD,EAEC,OAAA+2E,GAAA,gBADE,IAAC,KAAA58F,GAA8Di+D,GAAA,CAAtD,MAAM,wBAAyB,KAAMhE,EAAAuB,EAAA,sCAAkBz1C,EAAiI,KAA7H,KAAMk0C,EAAAsR,CAAA,EAAY,YAAY,gBAAiB,OAAO,UAAS,OAAItR,EAAAsR,CAAA,EAAY,YAAY,iBAAiB,EAAG,aAAU,EAAAsxB,EAAA,iBAAI,IAAC,6BAG1L,CAAA5iC,EAAA+N,CAAA,EAA0B,WAAS,CAAK/N,EAAA+N,CAAA,EAA0B,YAA/EpiD,EAAA,EAAAC,EAAmL,OAAnLohF,GAAmL,IAAAhhF,EAAA,KAAAA,EAAA,IAA7DF,EAAuC,KAApC,MAAM,2BAAyB,YAAK,kBAAe,kBAChKk0C,EAAA+N,CAAA,EAA0B,YAAtCpiD,EAAA,EAAAC,EAAmJ,OAAnJk3E,GAAmJ,IAAA92E,EAAA,KAAAA,EAAA,IAAhEF,EAA6C,KAA1C,MAAM,iCAA+B,YAAK,eAAY,uCAKpIk0C,EAAA0E,CAAA,EAAQ,iBAAmB1E,EAAA4E,EAAA,EAAc,aAAW,CAAK5E,EAAA2E,CAAA,GAAe,wBAA0B3E,EAAAgG,CAAA,EAAc,gBAC9Hr6C,IAAAC,EAIM,MAJNm3E,GAIM,CAHJj3E,EAEM,MAFNm3E,GAEM,CADJl9F,GAAuGohE,EAAA,CAA1F,GAAInH,EAAAhlB,EAAA,EAAW,cAAc,QAAQ,kBAAM,IAA0B,OAAvBglB,EAAA0E,CAAA,EAAQ,YAAY,EAAG,WAAQ,mCAAa,6BACzG,uECtEV+tE,GAAe,4ICQf,KAAM,CAAE,MAAAzjH,CAAA,EAAUmhD,GAAA,EACZ,CAAE,aAAAL,CAAA,EAAiBz+C,GAAYrC,CAAK,oBAIxCyE,GAIausC,EAAAh6C,EAAA,GAJA,GAAIg6C,EAAAhlB,EAAA,EAAW,0BAC1B,IAAgD,CAAhDj1C,GAAgDi+D,GAAA,CAAvC,KAAMhE,EAAA0B,EAAA,EAAS,MAAM,kCAC9B11C,EAAA,KAAAA,EAAA,GAAAF,EAA+C,QAAzC,MAAM,gBAAe,gBAAa,KAC5Bk0C,EAAA8P,CAAA,EAAY,OAAxBlkD,EAAqF,OAArFC,GAAqFM,GAAtB6zC,EAAA8P,CAAA,CAAY,gMCR/E,KAAM,CAAE,MAAA9gD,CAAA,EAAU+lD,GAAA,EACZ,CAAE,sBAAAZ,CAAA,EAA0B9iD,GAAYrC,CAAK,oBAIjDyE,GAIausC,EAAAh6C,EAAA,GAJD,aAAW,uBAAwB,GAAIg6C,EAAAhlB,EAAA,EAAW,WAAW,kBACvE,IAAkD,CAAlDj1C,GAAkDi+D,GAAA,CAAzC,KAAMhE,EAAAa,EAAA,EAAc,MAAM,+BACnC70C,EAAA,KAAAA,EAAA,GAAAF,EAA4C,QAAtC,MAAM,gBAAe,aAAU,KACzBk0C,EAAAmU,CAAA,EAAqB,OAAjCvoD,EAAgI,OAAhIC,GAAgIM,GAA/B6zC,EAAAmU,CAAA,CAAqB,+HCF1H,KAAM,CAAE,MAAAnlD,CAAA,EAAUg6E,GAAA,EACZ,CAAE,UAAAL,CAAA,EAAct3E,GAAYrC,CAAK,EAEjC,CAAE,MAAO4gD,CAAA,EAAoBD,GAAA,EAC7BzI,EAAepB,GAAA,EACf,CAAE,cAAAE,GAAkBkB,EAEpBwrE,EAAcjjK,EAAS,IACpBu2F,EAAc,eAAiBnB,GAAoB,OAC3D,EACK8tE,EAAgBljK,EAAS,IACtBk5H,EAAU,OAAS/4B,EAAgB,2BAA6B5J,EAAc,eAAiBnB,GAAoB,MAC3H,oBAICpxC,GAKausC,EAAAh6C,EAAA,GALA,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,KAAM,sBAC9C,IAA+C,CAA/Cj1C,GAA+Ci+D,GAAA,CAAtC,KAAMhE,EAAAwB,EAAA,EAAQ,MAAM,kCAC7Bx1C,EAAA,KAAAA,EAAA,GAAAF,EAA+C,QAAzC,MAAM,gBAAe,gBAAa,KACY6mH,EAAA,WAApDl/G,GAAqEm2E,GAAA,OAAlD,KAAM5pC,EAAAsmC,EAAA,EAAa,0BACoBosC,EAAA,WAA1Dj/G,GAAyEm2E,GAAA,OAAtD,KAAM5pC,EAAAsmC,EAAA,EAAa,8LC1B1C,KAAM,CAAE,MAAAt3E,CAAA,EAAU2gD,GAAA,EACZ,CAAE,mBAAAnC,CAAA,EAAuBn8C,GAAYrC,CAAK,oBAI9CyE,GAIausC,EAAAh6C,EAAA,GAJA,GAAIg6C,EAAAhlB,EAAA,EAAW,cAAc,kBACxC,IAAqD,CAArDj1C,GAAqDi+D,GAAA,CAA5C,KAAMhE,EAAAE,EAAA,EAAY,MAAM,oCACjCl0C,EAAA,KAAAA,EAAA,GAAAF,EAAiD,QAA3C,MAAM,gBAAe,kBAAe,KAC9Bk0C,EAAAwN,CAAA,EAAkB,OAA9B5hD,EAAiG,OAAjGC,GAAiGM,GAA5B6zC,EAAAwN,CAAA,CAAkB,qKCR3F,KAAM,CAAE,MAAOwH,CAAA,EAAerF,GAAA,EACxB,CAAE,2BAAAhC,CAAA,EAA+Bt8C,GAAY2jD,CAAU,oBAI3DvhD,GAIausC,EAAAh6C,EAAA,GAJA,GAAIg6C,EAAAhlB,EAAA,EAAW,WAAW,kBACrC,IAAiD,CAAjDj1C,GAAiDi+D,GAAA,CAAxC,KAAMhE,EAAAsB,EAAA,EAAa,MAAM,+BAClCt1C,EAAA,KAAAA,EAAA,GAAAF,EAA4C,QAAtC,MAAM,gBAAe,aAAU,KACzBk0C,EAAA2N,CAAA,EAA0B,OAAtC/hD,EAAiH,OAAjHC,GAAiHM,GAApC6zC,EAAA2N,CAAA,CAA0B,0ICRzGl6C,GAGausC,EAAAh6C,EAAA,GAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,oBAC1B,IAA0C,CAA1Cj1C,GAA0Ci+D,GAAA,CAAjC,KAAMhE,EAAA0D,EAAA,EAAU,MAAM,2BAC/B13C,EAAA,KAAAA,EAAA,GAAAF,EAAwC,QAAlC,MAAM,gBAAe,SAAM,mICFnC2H,GAGausC,EAAAh6C,EAAA,GAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,uBAC1B,IAA4C,CAA5Cj1C,GAA4Ci+D,GAAA,CAAnC,KAAMhE,EAAAK,EAAA,EAAS,MAAM,8BAC9Br0C,EAAA,KAAAA,EAAA,GAAAF,EAA2C,QAArC,MAAM,gBAAe,YAAS,mOCJtCH,EAAA,EAAAC,EAGI,IAHJC,GAGI,CAFF9lB,GAA0Di+D,GAAA,CAAlD,MAAM,OAAQ,KAAMhE,EAAAY,EAAA,EAAW,MAAM,6BAC7C50C,EAAA,KAAAA,EAAA,GAAAF,EAA0C,QAApC,MAAM,gBAAe,WAAQ,qHCArC2H,GAGausC,EAAAh6C,EAAA,GAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,WAAW,kBACrC,IAA4C,CAA5Cj1C,GAA4Ci+D,GAAA,CAAnC,KAAMhE,EAAA+B,EAAA,EAAa,MAAM,0BAClC/1C,EAAA,KAAAA,EAAA,GAAAF,EAAuC,QAAjC,MAAM,gBAAe,QAAK,+HCFlC2H,GAGausC,EAAAh6C,EAAA,GAHA,GAAIg6C,EAAAhlB,EAAA,EAAW,SAAS,kBACnC,IAAsD,CAAtDj1C,GAAsDi+D,GAAA,CAA7C,KAAMhE,EAAAgB,EAAA,EAAgB,MAAM,iCACrCh1C,EAAA,KAAAA,EAAA,GAAAF,EAA8C,QAAxC,MAAM,gBAAe,eAAY,8TCO3C,MAAMi6C,EAAsBp0C,GAAA,EACtB,CAAE,oBAAAI,CAAA,EAAwBV,GAAY00C,CAAmB,EAEzD6sE,EAAYnjK,EAChB,IAAM,CACNojK,GACAC,GACA,GAAI/gH,EAAoB,MAAQ,CAACghH,EAAkB,EAAI,GACvDC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,EAAA,CACF,gBAIE3nH,EAAA,EAAAC,EAgBM,MAhBNC,GAgBM,CAfJC,EAcM,MAdNC,GAcM,CAbJD,EAIM,MAJNG,GAIM,CAHJlmB,GAEai6D,EAAAh6C,EAAA,GAFD,MAAM,eAAgB,GAAIg6C,EAAAhlB,EAAA,EAAW,uBAC/C,IAAmD,IAAAhvB,EAAA,KAAAA,EAAA,IAAnDF,EAAmD,OAA9C,IAAI,gBAAgB,IAAA2mH,EAAA,gCAI7B3mH,EAMM,MANNM,GAMM,CALJN,EAIK,KAJLW,GAIK,QAHHb,EAEKS,GAAA,KAAAC,GAFkBsmH,EAAA,MAAZW,QAAX3nH,EAEK,MAF8B,IAAK2nH,GAAU,QAChD5nH,IAAA8H,GAA4Bw8E,GAAZsjC,CAAQ,sEC/C7B,IAAI13D,GAAM,MACNC,GAAS,SACTC,GAAQ,QACRC,GAAO,OACPC,GAAO,OACPC,GAAiB,CAACL,GAAKC,GAAQC,GAAOC,EAAI,EAC1Cr+F,GAAQ,QACRC,GAAM,MACNu+F,GAAkB,kBAClBC,GAAW,WACXC,GAAS,SACTC,GAAY,YACZC,GAAmCL,GAAe,OAAO,SAAUvoG,EAAK6oG,EAAW,CAC5F,OAAO7oG,EAAI,OAAO,CAAC6oG,EAAY,IAAM7+F,GAAO6+F,EAAY,IAAM5+F,EAAG,CAAC,CACpE,EAAG,EAAE,EACM6+F,GAA0B,GAAG,OAAOP,GAAgB,CAACD,EAAI,CAAC,EAAE,OAAO,SAAUtoG,EAAK6oG,EAAW,CACtG,OAAO7oG,EAAI,OAAO,CAAC6oG,EAAWA,EAAY,IAAM7+F,GAAO6+F,EAAY,IAAM5+F,EAAG,CAAC,CAC/E,EAAG,EAAE,EAEM8+F,GAAa,aACbC,GAAO,OACPC,GAAY,YAEZC,GAAa,aACb5sB,GAAO,OACP6sB,GAAY,YAEZC,GAAc,cACdC,GAAQ,QACRC,GAAa,aACbC,GAAiB,CAACR,GAAYC,GAAMC,GAAWC,GAAY5sB,GAAM6sB,GAAWC,GAAaC,GAAOC,EAAU,EC9BtG,SAASE,GAAY14B,EAAS,CAC3C,OAAOA,GAAWA,EAAQ,UAAY,IAAI,YAAW,EAAK,IAC5D,CCFe,SAAS24B,GAAUz5F,EAAM,CACtC,GAAIA,GAAQ,KACV,OAAO,OAGT,GAAIA,EAAK,SAAQ,IAAO,kBAAmB,CACzC,IAAI05F,EAAgB15F,EAAK,cACzB,OAAO05F,GAAgBA,EAAc,aAAe,MACtD,CAEA,OAAO15F,CACT,CCTA,SAAS25F,GAAU35F,EAAM,CACvB,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,QACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,OACvD,CAEA,SAAS65F,GAAc75F,EAAM,CAC3B,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,YACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,WACvD,CAEA,SAAS85F,GAAa95F,EAAM,CAE1B,GAAI,OAAO,WAAe,IACxB,MAAO,GAGT,IAAI45F,EAAaH,GAAUz5F,CAAI,EAAE,WACjC,OAAOA,aAAgB45F,GAAc55F,aAAgB,UACvD,CChBA,SAAS+5F,GAAY/gC,EAAM,CACzB,IAAIn4D,EAAQm4D,EAAK,MACjB,OAAO,KAAKn4D,EAAM,QAAQ,EAAE,QAAQ,SAAUpZ,EAAM,CAClD,IAAII,EAAQgZ,EAAM,OAAOpZ,CAAI,GAAK,GAC9By6E,EAAarhE,EAAM,WAAWpZ,CAAI,GAAK,GACvCq5E,EAAUjgE,EAAM,SAASpZ,CAAI,EAE7B,CAACoyG,GAAc/4B,CAAO,GAAK,CAAC04B,GAAY14B,CAAO,IAOnD,OAAO,OAAOA,EAAQ,MAAOj5E,CAAK,EAClC,OAAO,KAAKq6E,CAAU,EAAE,QAAQ,SAAUz6E,EAAM,CAC9C,IAAIxC,EAAQi9E,EAAWz6E,CAAI,EAEvBxC,IAAU,GACZ67E,EAAQ,gBAAgBr5E,CAAI,EAE5Bq5E,EAAQ,aAAar5E,EAAMxC,IAAU,GAAO,GAAKA,CAAK,CAE1D,CAAC,EACH,CAAC,CACH,CAEA,SAASqS,GAAO0pE,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MACdg5B,EAAgB,CAClB,OAAQ,CACN,SAAUn5F,EAAM,QAAQ,SACxB,KAAM,IACN,IAAK,IACL,OAAQ,GACd,EACI,MAAO,CACL,SAAU,UAChB,EACI,UAAW,EACf,EACE,cAAO,OAAOA,EAAM,SAAS,OAAO,MAAOm5F,EAAc,MAAM,EAC/Dn5F,EAAM,OAASm5F,EAEXn5F,EAAM,SAAS,OACjB,OAAO,OAAOA,EAAM,SAAS,MAAM,MAAOm5F,EAAc,KAAK,EAGxD,UAAY,CACjB,OAAO,KAAKn5F,EAAM,QAAQ,EAAE,QAAQ,SAAUpZ,EAAM,CAClD,IAAIq5E,EAAUjgE,EAAM,SAASpZ,CAAI,EAC7By6E,EAAarhE,EAAM,WAAWpZ,CAAI,GAAK,GACvCwyG,EAAkB,OAAO,KAAKp5F,EAAM,OAAO,eAAepZ,CAAI,EAAIoZ,EAAM,OAAOpZ,CAAI,EAAIuyG,EAAcvyG,CAAI,CAAC,EAE1GI,EAAQoyG,EAAgB,OAAO,SAAUpyG,EAAOuiE,EAAU,CAC5D,OAAAviE,EAAMuiE,CAAQ,EAAI,GACXviE,CACT,EAAG,EAAE,EAED,CAACgyG,GAAc/4B,CAAO,GAAK,CAAC04B,GAAY14B,CAAO,IAInD,OAAO,OAAOA,EAAQ,MAAOj5E,CAAK,EAClC,OAAO,KAAKq6E,CAAU,EAAE,QAAQ,SAAUg4B,EAAW,CACnDp5B,EAAQ,gBAAgBo5B,CAAS,CACnC,CAAC,EACH,CAAC,CACH,CACF,CAGA,MAAAC,GAAe,CACb,KAAM,cACN,QAAS,GACT,MAAO,QACP,GAAIJ,GACJ,OAAQziG,GACR,SAAU,CAAC,eAAe,CAC5B,EClFe,SAAS8iG,GAAiBvB,EAAW,CAClD,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CCHO,IAAI7wF,GAAM,KAAK,IACXi+C,GAAM,KAAK,IACX0N,GAAQ,KAAK,MCFT,SAASk8F,IAAc,CACpC,IAAIC,EAAS,UAAU,cAEvB,OAAIA,GAAU,MAAQA,EAAO,QAAU,MAAM,QAAQA,EAAO,MAAM,EACzDA,EAAO,OAAO,IAAI,SAAU/oK,EAAM,CACvC,OAAOA,EAAK,MAAQ,IAAMA,EAAK,OACjC,CAAC,EAAE,KAAK,GAAG,EAGN,UAAU,SACnB,CCTe,SAASgpK,IAAmB,CACzC,MAAO,CAAC,iCAAiC,KAAKF,IAAa,CAC7D,CCCe,SAASx1D,GAAsBv5B,EAASw5B,EAAc2hC,EAAiB,CAChF3hC,IAAiB,SACnBA,EAAe,IAGb2hC,IAAoB,SACtBA,EAAkB,IAGpB,IAAIphC,EAAa/5B,EAAQ,sBAAqB,EAC1C05B,EAAS,EACTC,EAAS,EAETH,GAAgBT,GAAc/4B,CAAO,IACvC05B,EAAS15B,EAAQ,YAAc,GAAInN,GAAMknC,EAAW,KAAK,EAAI/5B,EAAQ,aAAe,EACpF25B,EAAS35B,EAAQ,aAAe,GAAInN,GAAMknC,EAAW,MAAM,EAAI/5B,EAAQ,cAAgB,GAGzF,IAAI9H,EAAO2gC,GAAU74B,CAAO,EAAI24B,GAAU34B,CAAO,EAAI,OACjD+/B,EAAiB7nC,EAAK,eAEtBg3F,EAAmB,CAACD,GAAgB,GAAM9zB,EAC1CrtI,GAAKisG,EAAW,MAAQm1D,GAAoBnvD,EAAiBA,EAAe,WAAa,IAAMrG,EAC/F9hD,GAAKmiD,EAAW,KAAOm1D,GAAoBnvD,EAAiBA,EAAe,UAAY,IAAMpG,EAC7Fz3B,EAAQ63B,EAAW,MAAQL,EAC3Bt3B,EAAS23B,EAAW,OAASJ,EACjC,MAAO,CACL,MAAOz3B,EACP,OAAQE,EACR,IAAKxqB,EACL,MAAO9pD,EAAIo0E,EACX,OAAQtqB,EAAIwqB,EACZ,KAAMt0E,EACN,EAAGA,EACH,EAAG8pD,CACP,CACA,CCrCe,SAASkiD,GAAc95B,EAAS,CAC7C,IAAI+5B,EAAaR,GAAsBv5B,CAAO,EAG1CkC,EAAQlC,EAAQ,YAChBoC,EAASpC,EAAQ,aAErB,OAAI,KAAK,IAAI+5B,EAAW,MAAQ73B,CAAK,GAAK,IACxCA,EAAQ63B,EAAW,OAGjB,KAAK,IAAIA,EAAW,OAAS33B,CAAM,GAAK,IAC1CA,EAAS23B,EAAW,QAGf,CACL,EAAG/5B,EAAQ,WACX,EAAGA,EAAQ,UACX,MAAOkC,EACP,OAAQE,CACZ,CACA,CCvBe,SAAS43B,GAAS7gF,EAAQva,EAAO,CAC9C,IAAIq7F,EAAWr7F,EAAM,aAAeA,EAAM,YAAW,EAErD,GAAIua,EAAO,SAASva,CAAK,EACvB,MAAO,GAEJ,GAAIq7F,GAAYjB,GAAaiB,CAAQ,EAAG,CACzC,IAAIzvG,EAAOoU,EAEX,EAAG,CACD,GAAIpU,GAAQ2uB,EAAO,WAAW3uB,CAAI,EAChC,MAAO,GAITA,EAAOA,EAAK,YAAcA,EAAK,IACjC,OAASA,EACX,CAGF,MAAO,EACT,CCrBe,SAAS0vG,GAAiBl6B,EAAS,CAChD,OAAO24B,GAAU34B,CAAO,EAAE,iBAAiBA,CAAO,CACpD,CCFe,SAASm6B,GAAen6B,EAAS,CAC9C,MAAO,CAAC,QAAS,KAAM,IAAI,EAAE,QAAQ04B,GAAY14B,CAAO,CAAC,GAAK,CAChE,CCFe,SAASo6B,GAAmBp6B,EAAS,CAElD,QAAS64B,GAAU74B,CAAO,EAAIA,EAAQ,cACtCA,EAAQ,WAAa,OAAO,UAAU,eACxC,CCFe,SAASq6B,GAAcr6B,EAAS,CAC7C,OAAI04B,GAAY14B,CAAO,IAAM,OACpBA,EAMPA,EAAQ,cACRA,EAAQ,aACRg5B,GAAah5B,CAAO,EAAIA,EAAQ,KAAO,OAEvCo6B,GAAmBp6B,CAAO,CAG9B,CCVA,SAASs6B,GAAoBt6B,EAAS,CACpC,MAAI,CAAC+4B,GAAc/4B,CAAO,GAC1Bk6B,GAAiBl6B,CAAO,EAAE,WAAa,QAC9B,KAGFA,EAAQ,YACjB,CAIA,SAASu6B,GAAmBv6B,EAAS,CACnC,IAAIw6B,EAAY,WAAW,KAAKu0D,GAAW,CAAE,EACzCt0D,EAAO,WAAW,KAAKs0D,GAAW,CAAE,EAExC,GAAIt0D,GAAQ1B,GAAc/4B,CAAO,EAAG,CAElC,IAAI06B,EAAaR,GAAiBl6B,CAAO,EAEzC,GAAI06B,EAAW,WAAa,QAC1B,OAAO,IAEX,CAEA,IAAIC,EAAcN,GAAcr6B,CAAO,EAMvC,IAJIg5B,GAAa2B,CAAW,IAC1BA,EAAcA,EAAY,MAGrB5B,GAAc4B,CAAW,GAAK,CAAC,OAAQ,MAAM,EAAE,QAAQjC,GAAYiC,CAAW,CAAC,EAAI,GAAG,CAC3F,IAAIj6B,EAAMw5B,GAAiBS,CAAW,EAItC,GAAIj6B,EAAI,YAAc,QAAUA,EAAI,cAAgB,QAAUA,EAAI,UAAY,SAAW,CAAC,YAAa,aAAa,EAAE,QAAQA,EAAI,UAAU,IAAM,IAAM85B,GAAa95B,EAAI,aAAe,UAAY85B,GAAa95B,EAAI,QAAUA,EAAI,SAAW,OAC5O,OAAOi6B,EAEPA,EAAcA,EAAY,UAE9B,CAEA,OAAO,IACT,CAIe,SAASC,GAAgB56B,EAAS,CAI/C,QAHI66B,EAASlC,GAAU34B,CAAO,EAC1B86B,EAAeR,GAAoBt6B,CAAO,EAEvC86B,GAAgBX,GAAeW,CAAY,GAAKZ,GAAiBY,CAAY,EAAE,WAAa,UACjGA,EAAeR,GAAoBQ,CAAY,EAGjD,OAAIA,IAAiBpC,GAAYoC,CAAY,IAAM,QAAUpC,GAAYoC,CAAY,IAAM,QAAUZ,GAAiBY,CAAY,EAAE,WAAa,UACxID,EAGFC,GAAgBP,GAAmBv6B,CAAO,GAAK66B,CACxD,CCpEe,SAASE,GAAyBhD,EAAW,CAC1D,MAAO,CAAC,MAAO,QAAQ,EAAE,QAAQA,CAAS,GAAK,EAAI,IAAM,GAC3D,CCDO,SAASiD,GAAO71C,EAAKhhE,EAAO+iB,EAAK,CACtC,OAAOioJ,GAAQhqG,EAAKiqG,GAAQjrK,EAAO+iB,CAAG,CAAC,CACzC,CACO,SAASi0F,GAAeh2C,EAAKhhE,EAAO+iB,EAAK,CAC9C,IAAI5e,EAAI0yG,GAAO71C,EAAKhhE,EAAO+iB,CAAG,EAC9B,OAAO5e,EAAI4e,EAAMA,EAAM5e,CACzB,CCPe,SAAS8yG,IAAqB,CAC3C,MAAO,CACL,IAAK,EACL,MAAO,EACP,OAAQ,EACR,KAAM,CACV,CACA,CCNe,SAASC,GAAmBC,EAAe,CACxD,OAAO,OAAO,OAAO,GAAIF,GAAkB,EAAIE,CAAa,CAC9D,CCHe,SAASC,GAAgBp3G,EAAOkhB,EAAM,CACnD,OAAOA,EAAK,OAAO,SAAUm2F,EAASh5G,EAAK,CACzC,OAAAg5G,EAAQh5G,CAAG,EAAI2B,EACRq3G,CACT,EAAG,EAAE,CACP,CCKA,IAAIC,GAAkB,SAAyBC,EAAS37F,EAAO,CAC7D,OAAA27F,EAAU,OAAOA,GAAY,WAAaA,EAAQ,OAAO,OAAO,GAAI37F,EAAM,MAAO,CAC/E,UAAWA,EAAM,SACrB,CAAG,CAAC,EAAI27F,EACCL,GAAmB,OAAOK,GAAY,SAAWA,EAAUH,GAAgBG,EAASjE,EAAc,CAAC,CAC5G,EAEA,SAASkE,GAAMzjC,EAAM,CACnB,IAAI0jC,EAEA77F,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KACZpiE,EAAUoiE,EAAK,QACf2jC,EAAe97F,EAAM,SAAS,MAC9B+7F,EAAgB/7F,EAAM,cAAc,cACpCg8F,EAAgBzC,GAAiBv5F,EAAM,SAAS,EAChDi8F,EAAOjB,GAAyBgB,CAAa,EAC7CE,EAAa,CAAC1E,GAAMD,EAAK,EAAE,QAAQyE,CAAa,GAAK,EACrD/+E,EAAMi/E,EAAa,SAAW,QAElC,GAAI,GAACJ,GAAgB,CAACC,GAItB,KAAIR,EAAgBG,GAAgB3lG,EAAQ,QAASiK,CAAK,EACtDm8F,EAAYpC,GAAc+B,CAAY,EACtCM,EAAUH,IAAS,IAAM5E,GAAMG,GAC/B6E,EAAUJ,IAAS,IAAM3E,GAASC,GAClC+E,EAAUt8F,EAAM,MAAM,UAAUid,CAAG,EAAIjd,EAAM,MAAM,UAAUi8F,CAAI,EAAIF,EAAcE,CAAI,EAAIj8F,EAAM,MAAM,OAAOid,CAAG,EACjHs/E,EAAYR,EAAcE,CAAI,EAAIj8F,EAAM,MAAM,UAAUi8F,CAAI,EAC5DO,EAAoB3B,GAAgBiB,CAAY,EAChDW,EAAaD,EAAoBP,IAAS,IAAMO,EAAkB,cAAgB,EAAIA,EAAkB,aAAe,EAAI,EAC3HE,EAAoBJ,EAAU,EAAIC,EAAY,EAG9Cn3C,EAAMm2C,EAAca,CAAO,EAC3Bj1F,EAAMs1F,EAAaN,EAAUl/E,CAAG,EAAIs+E,EAAcc,CAAO,EACzDM,EAASF,EAAa,EAAIN,EAAUl/E,CAAG,EAAI,EAAIy/E,EAC/CtoE,EAAS6mE,GAAO71C,EAAKu3C,EAAQx1F,CAAG,EAEhCy1F,EAAWX,EACfj8F,EAAM,cAAcpZ,CAAI,GAAKi1G,EAAwB,GAAIA,EAAsBe,CAAQ,EAAIxoE,EAAQynE,EAAsB,aAAeznE,EAASuoE,EAAQd,GAC3J,CAEA,SAASplG,GAAO0pE,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MACdpqE,EAAUoqE,EAAM,QAChB28B,EAAmB/mG,EAAQ,QAC3B+lG,EAAegB,IAAqB,OAAS,sBAAwBA,EAErEhB,GAAgB,OAKhB,OAAOA,GAAiB,WAC1BA,EAAe97F,EAAM,SAAS,OAAO,cAAc87F,CAAY,EAE3D,CAACA,IAKF7B,GAASj6F,EAAM,SAAS,OAAQ87F,CAAY,IAIjD97F,EAAM,SAAS,MAAQ87F,GACzB,CAGA,MAAAiB,GAAe,CACb,KAAM,QACN,QAAS,GACT,MAAO,OACP,GAAInB,GACJ,OAAQnlG,GACR,SAAU,CAAC,eAAe,EAC1B,iBAAkB,CAAC,iBAAiB,CACtC,ECzFe,SAASumG,GAAahF,EAAW,CAC9C,OAAOA,EAAU,MAAM,GAAG,EAAE,CAAC,CAC/B,CCOA,IAAIiF,GAAa,CACf,IAAK,OACL,MAAO,OACP,OAAQ,OACR,KAAM,MACR,EAIA,SAASC,GAAkB/kC,EAAMglC,EAAK,CACpC,IAAIpvG,EAAIoqE,EAAK,EACTtgB,EAAIsgB,EAAK,EACTilC,EAAMD,EAAI,kBAAoB,EAClC,MAAO,CACL,EAAGrqC,GAAM/kE,EAAIqvG,CAAG,EAAIA,GAAO,EAC3B,EAAGtqC,GAAMjb,EAAIulD,CAAG,EAAIA,GAAO,CAC/B,CACA,CAEO,SAASC,GAAYl9B,EAAO,CACjC,IAAIm9B,EAEAzF,EAAS13B,EAAM,OACfo9B,EAAap9B,EAAM,WACnB63B,EAAY73B,EAAM,UAClBq9B,EAAYr9B,EAAM,UAClBs9B,EAAUt9B,EAAM,QAChB5sC,EAAW4sC,EAAM,SACjBu9B,EAAkBv9B,EAAM,gBACxBw9B,EAAWx9B,EAAM,SACjBy9B,EAAez9B,EAAM,aACrB09B,EAAU19B,EAAM,QAChBmvF,EAAa7xD,EAAQ,EACrB1vG,EAAIuhK,IAAe,OAAS,EAAIA,EAChCC,EAAa9xD,EAAQ,EACrB,EAAI8xD,IAAe,OAAS,EAAIA,EAEhC18E,EAAQ,OAAO+qB,GAAiB,WAAaA,EAAa,CAC5D,EAAG7vG,EACH,CACJ,CAAG,EAAI,CACH,EAAGA,EACH,CACJ,EAEEA,EAAI8kF,EAAM,EACV,EAAIA,EAAM,EACV,IAAImrB,EAAOP,EAAQ,eAAe,GAAG,EACjCQ,EAAOR,EAAQ,eAAe,GAAG,EACjCS,EAAQ1G,GACR2G,EAAQ9G,GACR8F,EAAM,OAEV,GAAIQ,EAAU,CACZ,IAAI5C,EAAeF,GAAgBhD,CAAM,EACrCuG,EAAa,eACbC,EAAY,cAchB,GAZItD,IAAiBnC,GAAUf,CAAM,IACnCkD,EAAeV,GAAmBxC,CAAM,EAEpCsC,GAAiBY,CAAY,EAAE,WAAa,UAAYxnE,IAAa,aACvE6qE,EAAa,eACbC,EAAY,gBAKhBtD,EAAeA,EAEX/C,IAAcX,KAAQW,IAAcR,IAAQQ,IAAcT,KAAUiG,IAAcpkG,GAAK,CACzF+kG,EAAQ7G,GACR,IAAIgH,EAAUT,GAAW9C,IAAiBoC,GAAOA,EAAI,eAAiBA,EAAI,eAAe,OACzFpC,EAAaqD,CAAU,EACvB,GAAKE,EAAUf,EAAW,OAC1B,GAAKG,EAAkB,EAAI,EAC7B,CAEA,GAAI1F,IAAcR,KAASQ,IAAcX,IAAOW,IAAcV,KAAWkG,IAAcpkG,GAAK,CAC1F8kG,EAAQ3G,GACR,IAAIgH,EAAUV,GAAW9C,IAAiBoC,GAAOA,EAAI,eAAiBA,EAAI,eAAe,MACzFpC,EAAasD,CAAS,EACtBtwG,GAAKwwG,EAAUhB,EAAW,MAC1BxvG,GAAK2vG,EAAkB,EAAI,EAC7B,CACF,CAEA,IAAIc,EAAe,OAAO,OAAO,CAC/B,SAAUjrE,CACd,EAAKoqE,GAAYV,EAAU,EAErB0B,EAAQf,IAAiB,GAAOV,GAAkB,CACpD,EAAGnvG,EACH,CACJ,EAAK6qG,GAAUf,CAAM,CAAC,EAAI,CACtB,EAAG9pG,EACH,CACJ,EAKE,GAHAA,EAAI4wG,EAAM,EACV,EAAIA,EAAM,EAENjB,EAAiB,CACnB,IAAIe,EAEJ,OAAO,OAAO,OAAO,GAAID,GAAeC,EAAiB,GAAIA,EAAeN,CAAK,EAAIF,EAAO,IAAM,GAAIQ,EAAeP,CAAK,EAAIF,EAAO,IAAM,GAAIS,EAAe,WAAatB,EAAI,kBAAoB,IAAM,EAAI,aAAepvG,EAAI,OAAS,EAAI,MAAQ,eAAiBA,EAAI,OAAS,EAAI,SAAU0wG,EAAc,CACjT,CAEA,OAAO,OAAO,OAAO,GAAID,GAAelB,EAAkB,GAAIA,EAAgBa,CAAK,EAAIF,EAAO,EAAI,KAAO,GAAIX,EAAgBY,CAAK,EAAIF,EAAOjwG,EAAI,KAAO,GAAIuvG,EAAgB,UAAY,GAAIA,EAAe,CAC7M,CAEA,SAASoB,GAAc8wD,EAAO,CAC5B,IAAIxvJ,EAAQwvJ,EAAM,MACdz5J,EAAUy5J,EAAM,QAChB5wD,EAAwB7oG,EAAQ,gBAChC2nG,EAAkBkB,IAA0B,OAAS,GAAOA,EAC5DC,EAAoB9oG,EAAQ,SAC5B4nG,EAAWkB,IAAsB,OAAS,GAAOA,EACjDC,EAAwB/oG,EAAQ,aAChC6nG,EAAekB,IAA0B,OAAS,GAAOA,EACzDN,EAAe,CACjB,UAAWjF,GAAiBv5F,EAAM,SAAS,EAC3C,UAAWg9F,GAAah9F,EAAM,SAAS,EACvC,OAAQA,EAAM,SAAS,OACvB,WAAYA,EAAM,MAAM,OACxB,gBAAiB09F,EACjB,QAAS19F,EAAM,QAAQ,WAAa,OACxC,EAEMA,EAAM,cAAc,eAAiB,OACvCA,EAAM,OAAO,OAAS,OAAO,OAAO,GAAIA,EAAM,OAAO,OAAQq9F,GAAY,OAAO,OAAO,GAAImB,EAAc,CACvG,QAASx+F,EAAM,cAAc,cAC7B,SAAUA,EAAM,QAAQ,SACxB,SAAU29F,EACV,aAAcC,CACpB,CAAK,CAAC,CAAC,GAGD59F,EAAM,cAAc,OAAS,OAC/BA,EAAM,OAAO,MAAQ,OAAO,OAAO,GAAIA,EAAM,OAAO,MAAOq9F,GAAY,OAAO,OAAO,GAAImB,EAAc,CACrG,QAASx+F,EAAM,cAAc,MAC7B,SAAU,WACV,SAAU,GACV,aAAc49F,CACpB,CAAK,CAAC,CAAC,GAGL59F,EAAM,WAAW,OAAS,OAAO,OAAO,GAAIA,EAAM,WAAW,OAAQ,CACnE,wBAAyBA,EAAM,SACnC,CAAG,CACH,CAGA,MAAA++F,GAAe,CACb,KAAM,gBACN,QAAS,GACT,MAAO,cACP,GAAIL,GACJ,KAAM,EACR,ECtKA,IAAI5W,GAAU,CACZ,QAAS,EACX,EAEA,SAASrxF,GAAO0hE,EAAM,CACpB,IAAIn4D,EAAQm4D,EAAK,MACbzgE,EAAWygE,EAAK,SAChBpiE,EAAUoiE,EAAK,QACf8mC,EAAkBlpG,EAAQ,OAC1Bm/B,EAAS+pE,IAAoB,OAAS,GAAOA,EAC7CC,EAAkBnpG,EAAQ,OAC1BopG,EAASD,IAAoB,OAAS,GAAOA,EAC7CpE,EAASlC,GAAU54F,EAAM,SAAS,MAAM,EACxCo/F,EAAgB,GAAG,OAAOp/F,EAAM,cAAc,UAAWA,EAAM,cAAc,MAAM,EAEvF,OAAIk1B,GACFkqE,EAAc,QAAQ,SAAUC,EAAc,CAC5CA,EAAa,iBAAiB,SAAU3nG,EAAS,OAAQowF,EAAO,CAClE,CAAC,EAGCqX,GACFrE,EAAO,iBAAiB,SAAUpjG,EAAS,OAAQowF,EAAO,EAGrD,UAAY,CACb5yD,GACFkqE,EAAc,QAAQ,SAAUC,EAAc,CAC5CA,EAAa,oBAAoB,SAAU3nG,EAAS,OAAQowF,EAAO,CACrE,CAAC,EAGCqX,GACFrE,EAAO,oBAAoB,SAAUpjG,EAAS,OAAQowF,EAAO,CAEjE,CACF,CAGA,MAAAwX,GAAe,CACb,KAAM,iBACN,QAAS,GACT,MAAO,QACP,GAAI,UAAc,CAAC,EACnB,OAAQ7oG,GACR,KAAM,EACR,EChDA,IAAI47B,GAAO,CACT,KAAM,QACN,MAAO,OACP,OAAQ,MACR,IAAK,QACP,EACe,SAASktE,GAAqBvH,EAAW,CACtD,OAAOA,EAAU,QAAQ,yBAA0B,SAAUngE,EAAS,CACpE,OAAOxF,GAAKwF,CAAO,CACrB,CAAC,CACH,CCVA,IAAIxF,GAAO,CACT,MAAO,MACP,IAAK,OACP,EACe,SAASotE,GAA8BzH,EAAW,CAC/D,OAAOA,EAAU,QAAQ,aAAc,SAAUngE,EAAS,CACxD,OAAOxF,GAAKwF,CAAO,CACrB,CAAC,CACH,CCPe,SAAS6nE,GAAgBvgG,EAAM,CAC5C,IAAIg+F,EAAMvE,GAAUz5F,CAAI,EACpBwgG,EAAaxC,EAAI,YACjByC,EAAYzC,EAAI,YACpB,MAAO,CACL,WAAYwC,EACZ,UAAWC,CACf,CACA,CCNe,SAASC,GAAoB5/B,EAAS,CAQnD,OAAOu5B,GAAsBa,GAAmBp6B,CAAO,CAAC,EAAE,KAAOy/B,GAAgBz/B,CAAO,EAAE,UAC5F,CCRe,SAAS6/B,GAAgB7/B,EAAS61D,EAAU,CACzD,IAAI34B,EAAMvE,GAAU34B,CAAO,EACvB8/B,EAAO1F,GAAmBp6B,CAAO,EACjC+/B,EAAiB7C,EAAI,eACrBh7B,EAAQ49B,EAAK,YACb19B,EAAS09B,EAAK,aACdhyG,EAAI,EACJ8pD,EAAI,EAER,GAAImoD,EAAgB,CAClB79B,EAAQ69B,EAAe,MACvB39B,EAAS29B,EAAe,OACxB,IAAIyvD,EAAiBP,GAAgB,GAEjCO,GAAkB,CAACA,GAAkB35B,IAAa,WACpD/nI,EAAIiyG,EAAe,WACnBnoD,EAAImoD,EAAe,UAEvB,CAEA,MAAO,CACL,MAAO79B,EACP,OAAQE,EACR,EAAGt0E,EAAI8xG,GAAoB5/B,CAAO,EAClC,EAAGpoB,CACP,CACA,CCvBe,SAASooD,GAAgBhgC,EAAS,CAC/C,IAAIigC,EAEAH,EAAO1F,GAAmBp6B,CAAO,EACjCkgC,EAAYT,GAAgBz/B,CAAO,EACnCmgC,GAAQF,EAAwBjgC,EAAQ,gBAAkB,KAAO,OAASigC,EAAsB,KAChG/9B,EAAQh7D,GAAI44F,EAAK,YAAaA,EAAK,YAAaK,EAAOA,EAAK,YAAc,EAAGA,EAAOA,EAAK,YAAc,CAAC,EACxG/9B,EAASl7D,GAAI44F,EAAK,aAAcA,EAAK,aAAcK,EAAOA,EAAK,aAAe,EAAGA,EAAOA,EAAK,aAAe,CAAC,EAC7GryG,EAAI,CAACoyG,EAAU,WAAaN,GAAoB5/B,CAAO,EACvDpoB,EAAI,CAACsoD,EAAU,UAEnB,OAAIhG,GAAiBiG,GAAQL,CAAI,EAAE,YAAc,QAC/ChyG,GAAKoZ,GAAI44F,EAAK,YAAaK,EAAOA,EAAK,YAAc,CAAC,EAAIj+B,GAGrD,CACL,MAAOA,EACP,OAAQE,EACR,EAAGt0E,EACH,EAAG8pD,CACP,CACA,CC3Be,SAASwoD,GAAepgC,EAAS,CAE9C,IAAIqgC,EAAoBnG,GAAiBl6B,CAAO,EAC5C1f,EAAW+/C,EAAkB,SAC7BC,EAAYD,EAAkB,UAC9BE,EAAYF,EAAkB,UAElC,MAAO,6BAA6B,KAAK//C,EAAWigD,EAAYD,CAAS,CAC3E,CCLe,SAASE,GAAgBthG,EAAM,CAC5C,MAAI,CAAC,OAAQ,OAAQ,WAAW,EAAE,QAAQw5F,GAAYx5F,CAAI,CAAC,GAAK,EAEvDA,EAAK,cAAc,KAGxB65F,GAAc75F,CAAI,GAAKkhG,GAAelhG,CAAI,EACrCA,EAGFshG,GAAgBnG,GAAcn7F,CAAI,CAAC,CAC5C,CCJe,SAASuhG,GAAkBzgC,EAAS35B,EAAM,CACvD,IAAI45D,EAEA55D,IAAS,SACXA,EAAO,IAGT,IAAI+4D,EAAeoB,GAAgBxgC,CAAO,EACtC0gC,EAAStB,MAAmBa,EAAwBjgC,EAAQ,gBAAkB,KAAO,OAASigC,EAAsB,MACpH/C,EAAMvE,GAAUyG,CAAY,EAC5B9yG,EAASo0G,EAAS,CAACxD,CAAG,EAAE,OAAOA,EAAI,gBAAkB,GAAIkD,GAAehB,CAAY,EAAIA,EAAe,EAAE,EAAIA,EAC7GuB,EAAct6D,EAAK,OAAO/5C,CAAM,EACpC,OAAOo0G,EAASC,EAChBA,EAAY,OAAOF,GAAkBpG,GAAc/tG,CAAM,CAAC,CAAC,CAC7D,CCzBe,SAASs0G,GAAiBnH,EAAM,CAC7C,OAAO,OAAO,OAAO,GAAIA,EAAM,CAC7B,KAAMA,EAAK,EACX,IAAKA,EAAK,EACV,MAAOA,EAAK,EAAIA,EAAK,MACrB,OAAQA,EAAK,EAAIA,EAAK,MAC1B,CAAG,CACH,CCQA,SAASoH,GAA2B7gC,EAAS61D,EAAU,CACrD,IAAIp8B,EAAOF,GAAsBv5B,EAAS,GAAO61D,IAAa,OAAO,EACrE,OAAAp8B,EAAK,IAAMA,EAAK,IAAMz5B,EAAQ,UAC9By5B,EAAK,KAAOA,EAAK,KAAOz5B,EAAQ,WAChCy5B,EAAK,OAASA,EAAK,IAAMz5B,EAAQ,aACjCy5B,EAAK,MAAQA,EAAK,KAAOz5B,EAAQ,YACjCy5B,EAAK,MAAQz5B,EAAQ,YACrBy5B,EAAK,OAASz5B,EAAQ,aACtBy5B,EAAK,EAAIA,EAAK,KACdA,EAAK,EAAIA,EAAK,IACPA,CACT,CAEA,SAASqH,GAA2B9gC,EAAS+gC,EAAgB80B,EAAU,CACrE,OAAO90B,IAAmBpJ,GAAWiJ,GAAiBf,GAAgB7/B,EAAS61D,CAAQ,CAAC,EAAIh9B,GAAUkI,CAAc,EAAIF,GAA2BE,EAAgB80B,CAAQ,EAAIj1B,GAAiBZ,GAAgB5F,GAAmBp6B,CAAO,CAAC,CAAC,CAC9O,CAKA,SAASghC,GAAmBhhC,EAAS,CACnC,IAAI03B,EAAkB+I,GAAkBpG,GAAcr6B,CAAO,CAAC,EAC1DihC,EAAoB,CAAC,WAAY,OAAO,EAAE,QAAQ/G,GAAiBl6B,CAAO,EAAE,QAAQ,GAAK,EACzFkhC,EAAiBD,GAAqBlI,GAAc/4B,CAAO,EAAI46B,GAAgB56B,CAAO,EAAIA,EAE9F,OAAK64B,GAAUqI,CAAc,EAKtBxJ,EAAgB,OAAO,SAAUqJ,EAAgB,CACtD,OAAOlI,GAAUkI,CAAc,GAAK/G,GAAS+G,EAAgBG,CAAc,GAAKxI,GAAYqI,CAAc,IAAM,MAClH,CAAC,EANQ,EAOX,CAIe,SAASI,GAAgBnhC,EAASohC,EAAUC,EAAcw0B,EAAU,CACjF,IAAIv0B,EAAsBF,IAAa,kBAAoBJ,GAAmBhhC,CAAO,EAAI,GAAG,OAAOohC,CAAQ,EACvG1J,EAAkB,GAAG,OAAO4J,EAAqB,CAACD,CAAY,CAAC,EAC/DE,EAAsB7J,EAAgB,CAAC,EACvC8J,EAAe9J,EAAgB,OAAO,SAAU+J,EAASV,EAAgB,CAC3E,IAAItH,EAAOqH,GAA2B9gC,EAAS+gC,EAAgB80B,CAAQ,EACvE,OAAAp0B,EAAQ,IAAMv6F,GAAIuyF,EAAK,IAAKgI,EAAQ,GAAG,EACvCA,EAAQ,MAAQt8C,GAAIs0C,EAAK,MAAOgI,EAAQ,KAAK,EAC7CA,EAAQ,OAASt8C,GAAIs0C,EAAK,OAAQgI,EAAQ,MAAM,EAChDA,EAAQ,KAAOv6F,GAAIuyF,EAAK,KAAMgI,EAAQ,IAAI,EACnCA,CACT,EAAGX,GAA2B9gC,EAASuhC,EAAqBs0B,CAAQ,CAAC,EACrE,OAAAr0B,EAAa,MAAQA,EAAa,MAAQA,EAAa,KACvDA,EAAa,OAASA,EAAa,OAASA,EAAa,IACzDA,EAAa,EAAIA,EAAa,KAC9BA,EAAa,EAAIA,EAAa,IACvBA,CACT,CCjEe,SAASE,GAAexpC,EAAM,CAC3C,IAAI2/B,EAAY3/B,EAAK,UACjB8H,EAAU9H,EAAK,QACf6/B,EAAY7/B,EAAK,UACjB6jC,EAAgBhE,EAAYuB,GAAiBvB,CAAS,EAAI,KAC1DwF,EAAYxF,EAAYgF,GAAahF,CAAS,EAAI,KAClD4J,EAAU9J,EAAU,EAAIA,EAAU,MAAQ,EAAI73B,EAAQ,MAAQ,EAC9D4hC,EAAU/J,EAAU,EAAIA,EAAU,OAAS,EAAI73B,EAAQ,OAAS,EAChEw9B,EAEJ,OAAQzB,EAAa,CACnB,KAAK3E,GACHoG,EAAU,CACR,EAAGmE,EACH,EAAG9J,EAAU,EAAI73B,EAAQ,MACjC,EACM,MAEF,KAAKq3B,GACHmG,EAAU,CACR,EAAGmE,EACH,EAAG9J,EAAU,EAAIA,EAAU,MACnC,EACM,MAEF,KAAKP,GACHkG,EAAU,CACR,EAAG3F,EAAU,EAAIA,EAAU,MAC3B,EAAG+J,CACX,EACM,MAEF,KAAKrK,GACHiG,EAAU,CACR,EAAG3F,EAAU,EAAI73B,EAAQ,MACzB,EAAG4hC,CACX,EACM,MAEF,QACEpE,EAAU,CACR,EAAG3F,EAAU,EACb,EAAGA,EAAU,CACrB,CACA,CAEE,IAAIgK,EAAW9F,EAAgBhB,GAAyBgB,CAAa,EAAI,KAEzE,GAAI8F,GAAY,KAAM,CACpB,IAAI7kF,EAAM6kF,IAAa,IAAM,SAAW,QAExC,OAAQtE,EAAS,CACf,KAAKrkG,GACHskG,EAAQqE,CAAQ,EAAIrE,EAAQqE,CAAQ,GAAKhK,EAAU76E,CAAG,EAAI,EAAIgjD,EAAQhjD,CAAG,EAAI,GAC7E,MAEF,KAAK7jB,GACHqkG,EAAQqE,CAAQ,EAAIrE,EAAQqE,CAAQ,GAAKhK,EAAU76E,CAAG,EAAI,EAAIgjD,EAAQhjD,CAAG,EAAI,GAC7E,KAGR,CACE,CAEA,OAAOwgF,CACT,CC3De,SAASsE,GAAe/hG,EAAOjK,EAAS,CACjDA,IAAY,SACdA,EAAU,IAGZ,IAAIisG,EAAWjsG,EACXksG,EAAqBD,EAAS,UAC9BhK,EAAYiK,IAAuB,OAASjiG,EAAM,UAAYiiG,EAC9DytD,EAAoB1tD,EAAS,SAC7B8zB,EAAW45B,IAAsB,OAAS1vJ,EAAM,SAAW0vJ,EAC3DxtD,EAAoBF,EAAS,SAC7BX,EAAWa,IAAsB,OAASvK,GAAkBuK,EAC5DC,EAAwBH,EAAS,aACjCV,EAAea,IAA0B,OAASvK,GAAWuK,EAC7DC,EAAwBJ,EAAS,eACjCK,EAAiBD,IAA0B,OAASvK,GAASuK,EAC7DE,EAAuBN,EAAS,YAChCO,EAAcD,IAAyB,OAAS,GAAQA,EACxDE,EAAmBR,EAAS,QAC5BrG,EAAU6G,IAAqB,OAAS,EAAIA,EAC5CjH,EAAgBD,GAAmB,OAAOK,GAAY,SAAWA,EAAUH,GAAgBG,EAASjE,EAAc,CAAC,EACnH+K,EAAaJ,IAAmBxK,GAASC,GAAYD,GACrD0F,EAAav9F,EAAM,MAAM,OACzBigE,EAAUjgE,EAAM,SAASuiG,EAAcE,EAAaJ,CAAc,EAClEK,EAAqBtB,GAAgBtI,GAAU74B,CAAO,EAAIA,EAAUA,EAAQ,gBAAkBo6B,GAAmBr6F,EAAM,SAAS,MAAM,EAAGqhG,EAAUC,EAAcw0B,CAAQ,EACzKnzB,EAAsBnJ,GAAsBx5F,EAAM,SAAS,SAAS,EACpE+7F,EAAgB4F,GAAe,CACjC,UAAWgB,EACX,QAASpF,EAET,UAAWvF,CACf,CAAG,EACG4K,EAAmB/B,GAAiB,OAAO,OAAO,GAAItD,EAAYxB,CAAa,CAAC,EAChF8G,EAAoBR,IAAmBxK,GAAS+K,EAAmBD,EAGnEG,EAAkB,CACpB,IAAKJ,EAAmB,IAAMG,EAAkB,IAAMtH,EAAc,IACpE,OAAQsH,EAAkB,OAASH,EAAmB,OAASnH,EAAc,OAC7E,KAAMmH,EAAmB,KAAOG,EAAkB,KAAOtH,EAAc,KACvE,MAAOsH,EAAkB,MAAQH,EAAmB,MAAQnH,EAAc,KAC9E,EACMwH,EAAa/iG,EAAM,cAAc,OAErC,GAAIqiG,IAAmBxK,IAAUkL,EAAY,CAC3C,IAAI3uE,EAAS2uE,EAAW/K,CAAS,EACjC,OAAO,KAAK8K,CAAe,EAAE,QAAQ,SAAUrgH,EAAK,CAClD,IAAIugH,GAAW,CAACzL,GAAOD,EAAM,EAAE,QAAQ70G,CAAG,GAAK,EAAI,EAAI,GACnDw5G,GAAO,CAAC5E,GAAKC,EAAM,EAAE,QAAQ70G,CAAG,GAAK,EAAI,IAAM,IACnDqgH,EAAgBrgH,CAAG,GAAK2xC,EAAO6nE,EAAI,EAAI+G,EACzC,CAAC,CACH,CAEA,OAAOF,CACT,CC5De,SAASG,GAAqBjjG,EAAOjK,EAAS,CACvDA,IAAY,SACdA,EAAU,IAGZ,IAAIisG,EAAWjsG,EACXiiG,EAAYgK,EAAS,UACrBX,EAAWW,EAAS,SACpBV,EAAeU,EAAS,aACxBrG,EAAUqG,EAAS,QACnBkB,EAAiBlB,EAAS,eAC1BmB,EAAwBnB,EAAS,sBACjCoB,EAAwBD,IAA0B,OAASwsD,GAAgBxsD,EAC3E3F,EAAYR,GAAahF,CAAS,EAClCC,EAAauF,EAAY0F,EAAiBnL,GAAsBA,GAAoB,OAAO,SAAUC,EAAW,CAClH,OAAOgF,GAAahF,CAAS,IAAMwF,CACrC,CAAC,EAAI9F,GACD4L,EAAoBrL,EAAW,OAAO,SAAUD,EAAW,CAC7D,OAAOoL,EAAsB,QAAQpL,CAAS,GAAK,CACrD,CAAC,EAEGsL,EAAkB,SAAW,IAC/BA,EAAoBrL,GAItB,IAAIsL,EAAYD,EAAkB,OAAO,SAAUn0G,EAAK6oG,EAAW,CACjE,OAAA7oG,EAAI6oG,CAAS,EAAI+J,GAAe/hG,EAAO,CACrC,UAAWg4F,EACX,SAAUqJ,EACV,aAAcC,EACd,QAAS3F,CACf,CAAK,EAAEpC,GAAiBvB,CAAS,CAAC,EACvB7oG,CACT,EAAG,EAAE,EACL,OAAO,OAAO,KAAKo0G,CAAS,EAAE,KAAK,SAAUl8G,EAAGC,EAAG,CACjD,OAAOi8G,EAAUl8G,CAAC,EAAIk8G,EAAUj8G,CAAC,CACnC,CAAC,CACH,CClCA,SAASk8G,GAA8BxL,EAAW,CAChD,GAAIuB,GAAiBvB,CAAS,IAAMP,GAClC,MAAO,GAGT,IAAIgM,EAAoBlE,GAAqBvH,CAAS,EACtD,MAAO,CAACyH,GAA8BzH,CAAS,EAAGyL,EAAmBhE,GAA8BgE,CAAiB,CAAC,CACvH,CAEA,SAASC,GAAKvrC,EAAM,CAClB,IAAIn4D,EAAQm4D,EAAK,MACbpiE,EAAUoiE,EAAK,QACfvxE,EAAOuxE,EAAK,KAEhB,GAAI,CAAAn4D,EAAM,cAAcpZ,CAAI,EAAE,MAoC9B,SAhCI+8G,EAAoB5tG,EAAQ,SAC5B6tG,EAAgBD,IAAsB,OAAS,GAAOA,EACtDE,EAAmB9tG,EAAQ,QAC3B+tG,EAAeD,IAAqB,OAAS,GAAOA,EACpDE,EAA8BhuG,EAAQ,mBACtC4lG,EAAU5lG,EAAQ,QAClBsrG,EAAWtrG,EAAQ,SACnBurG,EAAevrG,EAAQ,aACvBwsG,EAAcxsG,EAAQ,YACtBiuG,EAAwBjuG,EAAQ,eAChCmtG,EAAiBc,IAA0B,OAAS,GAAOA,EAC3DZ,EAAwBrtG,EAAQ,sBAChCkuG,EAAqBjkG,EAAM,QAAQ,UACnCg8F,EAAgBzC,GAAiB0K,CAAkB,EACnDC,EAAkBlI,IAAkBiI,EACpCE,EAAqBJ,IAAgCG,GAAmB,CAAChB,EAAiB,CAAC3D,GAAqB0E,CAAkB,CAAC,EAAIT,GAA8BS,CAAkB,GACvLhM,EAAa,CAACgM,CAAkB,EAAE,OAAOE,CAAkB,EAAE,OAAO,SAAUh1G,GAAK6oG,GAAW,CAChG,OAAO7oG,GAAI,OAAOoqG,GAAiBvB,EAAS,IAAMP,GAAOwL,GAAqBjjG,EAAO,CACnF,UAAWg4F,GACX,SAAUqJ,EACV,aAAcC,EACd,QAAS3F,EACT,eAAgBuH,EAChB,sBAAuBE,CAC7B,CAAK,EAAIpL,EAAS,CAChB,EAAG,EAAE,EACDoM,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBqkG,EAAY,IAAI,IAChBC,EAAqB,GACrBC,EAAwBtM,EAAW,CAAC,EAE/B50G,EAAI,EAAGA,EAAI40G,EAAW,OAAQ50G,IAAK,CAC1C,IAAI20G,EAAYC,EAAW50G,CAAC,EAExBmhH,EAAiBjL,GAAiBvB,CAAS,EAE3CyM,EAAmBzH,GAAahF,CAAS,IAAM7+F,GAC/C+iG,GAAa,CAAC7E,GAAKC,EAAM,EAAE,QAAQkN,CAAc,GAAK,EACtDvnF,GAAMi/E,GAAa,QAAU,SAC7B37C,GAAWwhD,GAAe/hG,EAAO,CACnC,UAAWg4F,EACX,SAAUqJ,EACV,aAAcC,EACd,YAAaiB,EACb,QAAS5G,CACf,CAAK,EACG+I,EAAoBxI,GAAauI,EAAmBlN,GAAQC,GAAOiN,EAAmBnN,GAASD,GAE/F+M,EAAcnnF,EAAG,EAAIsgF,EAAWtgF,EAAG,IACrCynF,EAAoBnF,GAAqBmF,CAAiB,GAG5D,IAAIC,GAAmBpF,GAAqBmF,CAAiB,EACzDE,GAAS,GAUb,GARIhB,GACFgB,GAAO,KAAKrkD,GAASikD,CAAc,GAAK,CAAC,EAGvCV,GACFc,GAAO,KAAKrkD,GAASmkD,CAAiB,GAAK,EAAGnkD,GAASokD,EAAgB,GAAK,CAAC,EAG3EC,GAAO,MAAM,SAAUC,GAAO,CAChC,OAAOA,EACT,CAAC,EAAG,CACFN,EAAwBvM,EACxBsM,EAAqB,GACrB,KACF,CAEAD,EAAU,IAAIrM,EAAW4M,EAAM,CACjC,CAEA,GAAIN,EAqBF,QAnBIQ,GAAiB5B,EAAiB,EAAI,EAEtC6B,GAAQ,SAAeC,GAAI,CAC7B,IAAIC,GAAmBhN,EAAW,KAAK,SAAUD,EAAW,CAC1D,IAAI4M,GAASP,EAAU,IAAIrM,CAAS,EAEpC,GAAI4M,GACF,OAAOA,GAAO,MAAM,EAAGI,EAAE,EAAE,MAAM,SAAUH,EAAO,CAChD,OAAOA,CACT,CAAC,CAEL,CAAC,EAED,GAAII,GACF,OAAAV,EAAwBU,GACjB,OAEX,EAESD,GAAKF,GAAgBE,GAAK,EAAGA,KAAM,CAC1C,IAAIE,GAAOH,GAAMC,EAAE,EAEnB,GAAIE,KAAS,QAAS,KACxB,CAGEllG,EAAM,YAAcukG,IACtBvkG,EAAM,cAAcpZ,CAAI,EAAE,MAAQ,GAClCoZ,EAAM,UAAYukG,EAClBvkG,EAAM,MAAQ,IAElB,CAGA,MAAAmlG,GAAe,CACb,KAAM,OACN,QAAS,GACT,MAAO,OACP,GAAIzB,GACJ,iBAAkB,CAAC,QAAQ,EAC3B,KAAM,CACJ,MAAO,EACX,CACA,EC/IA,SAAS0B,GAAe7kD,EAAUm5C,EAAM2L,EAAkB,CACxD,OAAIA,IAAqB,SACvBA,EAAmB,CACjB,EAAG,EACH,EAAG,CACT,GAGS,CACL,IAAK9kD,EAAS,IAAMm5C,EAAK,OAAS2L,EAAiB,EACnD,MAAO9kD,EAAS,MAAQm5C,EAAK,MAAQ2L,EAAiB,EACtD,OAAQ9kD,EAAS,OAASm5C,EAAK,OAAS2L,EAAiB,EACzD,KAAM9kD,EAAS,KAAOm5C,EAAK,MAAQ2L,EAAiB,CACxD,CACA,CAEA,SAASC,GAAsB/kD,EAAU,CACvC,MAAO,CAAC82C,GAAKE,GAAOD,GAAQE,EAAI,EAAE,KAAK,SAAU+N,EAAM,CACrD,OAAOhlD,EAASglD,CAAI,GAAK,CAC3B,CAAC,CACH,CAEA,SAASC,GAAKrtC,EAAM,CAClB,IAAIn4D,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KACZisC,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBqlG,EAAmBrlG,EAAM,cAAc,gBACvCylG,EAAoB1D,GAAe/hG,EAAO,CAC5C,eAAgB,WACpB,CAAG,EACG0lG,EAAoB3D,GAAe/hG,EAAO,CAC5C,YAAa,EACjB,CAAG,EACG2lG,EAA2BP,GAAeK,EAAmBrB,CAAa,EAC1EwB,EAAsBR,GAAeM,EAAmBnI,EAAY8H,CAAgB,EACpFQ,EAAoBP,GAAsBK,CAAwB,EAClEG,EAAmBR,GAAsBM,CAAmB,EAChE5lG,EAAM,cAAcpZ,CAAI,EAAI,CAC1B,yBAA0B++G,EAC1B,oBAAqBC,EACrB,kBAAmBC,EACnB,iBAAkBC,CACtB,EACE9lG,EAAM,WAAW,OAAS,OAAO,OAAO,GAAIA,EAAM,WAAW,OAAQ,CACnE,+BAAgC6lG,EAChC,sBAAuBC,CAC3B,CAAG,CACH,CAGA,MAAAC,GAAe,CACb,KAAM,OACN,QAAS,GACT,MAAO,OACP,iBAAkB,CAAC,iBAAiB,EACpC,GAAIP,EACN,ECzDO,SAASQ,GAAwBhO,EAAWiO,EAAO7xE,EAAQ,CAChE,IAAI4nE,EAAgBzC,GAAiBvB,CAAS,EAC1CkO,EAAiB,CAAC1O,GAAMH,EAAG,EAAE,QAAQ2E,CAAa,GAAK,EAAI,GAAK,EAEhE7jC,EAAO,OAAO/jC,GAAW,WAAaA,EAAO,OAAO,OAAO,GAAI6xE,EAAO,CACxE,UAAWjO,CACf,CAAG,CAAC,EAAI5jE,EACF+xE,EAAWhuC,EAAK,CAAC,EACjBiuC,EAAWjuC,EAAK,CAAC,EAErB,OAAAguC,EAAWA,GAAY,EACvBC,GAAYA,GAAY,GAAKF,EACtB,CAAC1O,GAAMD,EAAK,EAAE,QAAQyE,CAAa,GAAK,EAAI,CACjD,EAAGoK,EACH,EAAGD,CACP,EAAM,CACF,EAAGA,EACH,EAAGC,CACP,CACA,CAEA,SAAShyE,GAAO+rC,EAAO,CACrB,IAAIngE,EAAQmgE,EAAM,MACdpqE,EAAUoqE,EAAM,QAChBv5E,EAAOu5E,EAAM,KACbkmC,EAAkBtwG,EAAQ,OAC1Bq+B,EAASiyE,IAAoB,OAAS,CAAC,EAAG,CAAC,EAAIA,EAC/C56F,EAAOwsF,GAAW,OAAO,SAAU9oG,EAAK6oG,EAAW,CACrD,OAAA7oG,EAAI6oG,CAAS,EAAIgO,GAAwBhO,EAAWh4F,EAAM,MAAOo0B,CAAM,EAChEjlC,CACT,EAAG,EAAE,EACDm3G,EAAwB76F,EAAKzL,EAAM,SAAS,EAC5CjS,EAAIu4G,EAAsB,EAC1BzuD,EAAIyuD,EAAsB,EAE1BtmG,EAAM,cAAc,eAAiB,OACvCA,EAAM,cAAc,cAAc,GAAKjS,EACvCiS,EAAM,cAAc,cAAc,GAAK63C,GAGzC73C,EAAM,cAAcpZ,CAAI,EAAI6kB,CAC9B,CAGA,MAAA86F,GAAe,CACb,KAAM,SACN,QAAS,GACT,MAAO,OACP,SAAU,CAAC,eAAe,EAC1B,GAAInyE,EACN,ECnDA,SAAS2nE,GAAc5jC,EAAM,CAC3B,IAAIn4D,EAAQm4D,EAAK,MACbvxE,EAAOuxE,EAAK,KAKhBn4D,EAAM,cAAcpZ,CAAI,EAAI+6G,GAAe,CACzC,UAAW3hG,EAAM,MAAM,UACvB,QAASA,EAAM,MAAM,OAErB,UAAWA,EAAM,SACrB,CAAG,CACH,CAGA,MAAAwmG,GAAe,CACb,KAAM,gBACN,QAAS,GACT,MAAO,OACP,GAAIzK,GACJ,KAAM,EACR,ECxBe,SAAS0K,GAAWxK,EAAM,CACvC,OAAOA,IAAS,IAAM,IAAM,GAC9B,CCUA,SAASyK,GAAgBvuC,EAAM,CAC7B,IAAIn4D,EAAQm4D,EAAK,MACbpiE,EAAUoiE,EAAK,QACfvxE,EAAOuxE,EAAK,KACZwrC,EAAoB5tG,EAAQ,SAC5B6tG,EAAgBD,IAAsB,OAAS,GAAOA,EACtDE,EAAmB9tG,EAAQ,QAC3B+tG,EAAeD,IAAqB,OAAS,GAAQA,EACrDxC,EAAWtrG,EAAQ,SACnBurG,EAAevrG,EAAQ,aACvBwsG,EAAcxsG,EAAQ,YACtB4lG,EAAU5lG,EAAQ,QAClB4wG,EAAkB5wG,EAAQ,OAC1B6wG,EAASD,IAAoB,OAAS,GAAOA,EAC7CE,EAAwB9wG,EAAQ,aAChC+wG,EAAeD,IAA0B,OAAS,EAAIA,EACtDtmD,EAAWwhD,GAAe/hG,EAAO,CACnC,SAAUqhG,EACV,aAAcC,EACd,QAAS3F,EACT,YAAa4G,CACjB,CAAG,EACGvG,EAAgBzC,GAAiBv5F,EAAM,SAAS,EAChDw9F,EAAYR,GAAah9F,EAAM,SAAS,EACxCkkG,EAAkB,CAAC1G,EACnBsE,EAAW9G,GAAyBgB,CAAa,EACjD+K,EAAUN,GAAW3E,CAAQ,EAC7B/F,EAAgB/7F,EAAM,cAAc,cACpCokG,EAAgBpkG,EAAM,MAAM,UAC5Bu9F,EAAav9F,EAAM,MAAM,OACzBgnG,EAAoB,OAAOF,GAAiB,WAAaA,EAAa,OAAO,OAAO,GAAI9mG,EAAM,MAAO,CACvG,UAAWA,EAAM,SACrB,CAAG,CAAC,EAAI8mG,EACFG,EAA8B,OAAOD,GAAsB,SAAW,CACxE,SAAUA,EACV,QAASA,CACb,EAAM,OAAO,OAAO,CAChB,SAAU,EACV,QAAS,CACb,EAAKA,CAAiB,EAChBE,EAAsBlnG,EAAM,cAAc,OAASA,EAAM,cAAc,OAAOA,EAAM,SAAS,EAAI,KACjGyL,EAAO,CACT,EAAG,EACH,EAAG,CACP,EAEE,GAAKswF,EAIL,IAAI6H,EAAe,CACjB,IAAIuD,EAEAC,GAAWtF,IAAa,IAAMzK,GAAMG,GACpC6P,GAAUvF,IAAa,IAAMxK,GAASC,GACtCt6E,GAAM6kF,IAAa,IAAM,SAAW,QACpC1tE,EAAS2nE,EAAc+F,CAAQ,EAC/B18C,GAAMhxB,EAASmsB,EAAS6mD,EAAQ,EAChCjgG,GAAMitB,EAASmsB,EAAS8mD,EAAO,EAC/BC,GAAWV,EAAS,CAACrJ,EAAWtgF,EAAG,EAAI,EAAI,EAC3CsqF,GAAS/J,IAAcrkG,GAAQirG,EAAcnnF,EAAG,EAAIsgF,EAAWtgF,EAAG,EAClEuqF,GAAShK,IAAcrkG,GAAQ,CAACokG,EAAWtgF,EAAG,EAAI,CAACmnF,EAAcnnF,EAAG,EAGpE6+E,GAAe97F,EAAM,SAAS,MAC9Bm8F,GAAYyK,GAAU9K,GAAe/B,GAAc+B,EAAY,EAAI,CACrE,MAAO,EACP,OAAQ,CACd,EACQ2L,GAAqBznG,EAAM,cAAc,kBAAkB,EAAIA,EAAM,cAAc,kBAAkB,EAAE,QAAUq7F,GAAkB,EACnIqM,GAAkBD,GAAmBL,EAAQ,EAC7CO,EAAkBF,GAAmBJ,EAAO,EAM5CO,GAAW3M,GAAO,EAAGmJ,EAAcnnF,EAAG,EAAGk/E,GAAUl/E,EAAG,CAAC,EACvD4qF,EAAY3D,EAAkBE,EAAcnnF,EAAG,EAAI,EAAIqqF,GAAWM,GAAWF,GAAkBT,EAA4B,SAAWM,GAASK,GAAWF,GAAkBT,EAA4B,SACxMa,EAAY5D,EAAkB,CAACE,EAAcnnF,EAAG,EAAI,EAAIqqF,GAAWM,GAAWD,EAAkBV,EAA4B,SAAWO,GAASI,GAAWD,EAAkBV,EAA4B,SACzMzK,EAAoBx8F,EAAM,SAAS,OAAS66F,GAAgB76F,EAAM,SAAS,KAAK,EAChF+nG,EAAevL,EAAoBsF,IAAa,IAAMtF,EAAkB,WAAa,EAAIA,EAAkB,YAAc,EAAI,EAC7HwL,GAAuBb,EAA+DD,IAAoBpF,CAAQ,IAAM,KAAOqF,EAAwB,EACvJc,EAAY7zE,EAASyzE,EAAYG,EAAsBD,EACvDG,EAAY9zE,EAAS0zE,EAAYE,EACjCG,EAAkBlN,GAAO2L,EAASyoD,GAAQjqG,GAAK6iD,CAAS,EAAI7iD,GAAKhxB,EAAQwyE,EAASwoD,GAAQjoJ,GAAK+gG,CAAS,EAAI/gG,EAAG,EACnH40F,EAAc+F,CAAQ,EAAIqG,EAC1B18F,EAAKq2F,CAAQ,EAAIqG,EAAkB/zE,CACrC,CAEA,GAAI0vE,EAAc,CAChB,IAAIsE,EAEAC,EAAYvG,IAAa,IAAMzK,GAAMG,GAErC8Q,EAAWxG,IAAa,IAAMxK,GAASC,GAEvCgR,EAAUxM,EAAcgL,CAAO,EAE/B59B,EAAO49B,IAAY,IAAM,SAAW,QAEpCyB,EAAOD,EAAUhoD,EAAS8nD,CAAS,EAEnCI,EAAOF,EAAUhoD,EAAS+nD,CAAQ,EAElCI,GAAe,CAACrR,GAAKG,EAAI,EAAE,QAAQwE,CAAa,IAAM,GAEtD2M,GAAwBP,EAAgElB,IAAoBH,CAAO,IAAM,KAAOqB,EAAyB,EAEzJQ,GAAaF,GAAeF,EAAOD,EAAUnE,EAAcj7B,CAAI,EAAIo0B,EAAWp0B,CAAI,EAAIw/B,EAAuB1B,EAA4B,QAEzI4B,GAAaH,GAAeH,EAAUnE,EAAcj7B,CAAI,EAAIo0B,EAAWp0B,CAAI,EAAIw/B,EAAuB1B,EAA4B,QAAUwB,EAE5IK,GAAmBlC,GAAU8B,GAAetN,GAAewN,GAAYL,EAASM,EAAU,EAAI5N,GAAO2L,EAASgC,GAAaJ,EAAMD,EAAS3B,EAASiC,GAAaJ,CAAI,EAExK1M,EAAcgL,CAAO,EAAI+B,GACzBr9F,EAAKs7F,CAAO,EAAI+B,GAAmBP,CACrC,CAEAvoG,EAAM,cAAcpZ,CAAI,EAAI6kB,EAC9B,CAGA,MAAAs9F,GAAe,CACb,KAAM,kBACN,QAAS,GACT,MAAO,OACP,GAAIrC,GACJ,iBAAkB,CAAC,QAAQ,CAC7B,EC7Ie,SAASsC,GAAqB/oC,EAAS,CACpD,MAAO,CACL,WAAYA,EAAQ,WACpB,UAAWA,EAAQ,SACvB,CACA,CCDe,SAASgpC,GAAc9pG,EAAM,CAC1C,OAAIA,IAASy5F,GAAUz5F,CAAI,GAAK,CAAC65F,GAAc75F,CAAI,EAC1CugG,GAAgBvgG,CAAI,EAEpB6pG,GAAqB7pG,CAAI,CAEpC,CCDA,SAAS+pG,GAAgBjpC,EAAS,CAChC,IAAIy5B,EAAOz5B,EAAQ,sBAAqB,EACpC05B,EAAS7mC,GAAM4mC,EAAK,KAAK,EAAIz5B,EAAQ,aAAe,EACpD25B,EAAS9mC,GAAM4mC,EAAK,MAAM,EAAIz5B,EAAQ,cAAgB,EAC1D,OAAO05B,IAAW,GAAKC,IAAW,CACpC,CAIe,SAASuP,GAAiBC,EAAyBrO,EAAc8C,EAAS,CACnFA,IAAY,SACdA,EAAU,IAGZ,IAAIwL,EAA0BrQ,GAAc+B,CAAY,EACpDuO,EAAuBtQ,GAAc+B,CAAY,GAAKmO,GAAgBnO,CAAY,EAClFwO,EAAkBlP,GAAmBU,CAAY,EACjDrB,EAAOF,GAAsB4P,EAAyBE,EAAsBzL,CAAO,EACnF3oE,EAAS,CACX,WAAY,EACZ,UAAW,CACf,EACMuoE,EAAU,CACZ,EAAG,EACH,EAAG,CACP,EAEE,OAAI4L,GAA2B,CAACA,GAA2B,CAACxL,MACtDlF,GAAYoC,CAAY,IAAM,QAClCsF,GAAekJ,CAAe,KAC5Br0E,EAAS+zE,GAAclO,CAAY,GAGjC/B,GAAc+B,CAAY,GAC5B0C,EAAUjE,GAAsBuB,EAAc,EAAI,EAClD0C,EAAQ,GAAK1C,EAAa,WAC1B0C,EAAQ,GAAK1C,EAAa,WACjBwO,IACT9L,EAAQ,EAAIoC,GAAoB0J,CAAe,IAI5C,CACL,EAAG7P,EAAK,KAAOxkE,EAAO,WAAauoE,EAAQ,EAC3C,EAAG/D,EAAK,IAAMxkE,EAAO,UAAYuoE,EAAQ,EACzC,MAAO/D,EAAK,MACZ,OAAQA,EAAK,MACjB,CACA,CCvDA,SAAS8P,GAAMruG,EAAW,CACxB,IAAI3Y,EAAM,IAAI,IACVinH,EAAU,IAAI,IACd96G,EAAS,GACbwM,EAAU,QAAQ,SAAUuuG,EAAU,CACpClnH,EAAI,IAAIknH,EAAS,KAAMA,CAAQ,CACjC,CAAC,EAED,SAASC,EAAKD,EAAU,CACtBD,EAAQ,IAAIC,EAAS,IAAI,EACzB,IAAIE,EAAW,GAAG,OAAOF,EAAS,UAAY,GAAIA,EAAS,kBAAoB,EAAE,EACjFE,EAAS,QAAQ,SAAUz+G,EAAK,CAC9B,GAAI,CAACs+G,EAAQ,IAAIt+G,CAAG,EAAG,CACrB,IAAI0+G,EAAcrnH,EAAI,IAAI2I,CAAG,EAEzB0+G,GACFF,EAAKE,CAAW,CAEpB,CACF,CAAC,EACDl7G,EAAO,KAAK+6G,CAAQ,CACtB,CAEA,OAAAvuG,EAAU,QAAQ,SAAUuuG,EAAU,CAC/BD,EAAQ,IAAIC,EAAS,IAAI,GAE5BC,EAAKD,CAAQ,CAEjB,CAAC,EACM/6G,CACT,CAEe,SAASm7G,GAAe3uG,EAAW,CAEhD,IAAI4uG,EAAmBP,GAAMruG,CAAS,EAEtC,OAAOu9F,GAAe,OAAO,SAAUvpG,EAAK66G,EAAO,CACjD,OAAO76G,EAAI,OAAO46G,EAAiB,OAAO,SAAUL,EAAU,CAC5D,OAAOA,EAAS,QAAUM,CAC5B,CAAC,CAAC,CACJ,EAAG,EAAE,CACP,CC3Ce,SAASC,GAASvlH,EAAI,CACnC,IAAIwlH,EACJ,OAAO,UAAY,CACjB,OAAKA,IACHA,EAAU,IAAI,QAAQ,SAAUzgG,EAAS,CACvC,QAAQ,UAAU,KAAK,UAAY,CACjCygG,EAAU,OACVzgG,EAAQ/kB,EAAE,CAAE,CACd,CAAC,CACH,CAAC,GAGIwlH,CACT,CACF,CCde,SAASC,GAAYhvG,EAAW,CAC7C,IAAI4V,EAAS5V,EAAU,OAAO,SAAU4V,EAAQxL,EAAS,CACvD,IAAIL,EAAW6L,EAAOxL,EAAQ,IAAI,EAClC,OAAAwL,EAAOxL,EAAQ,IAAI,EAAIL,EAAW,OAAO,OAAO,GAAIA,EAAUK,EAAS,CACrE,QAAS,OAAO,OAAO,GAAIL,EAAS,QAASK,EAAQ,OAAO,EAC5D,KAAM,OAAO,OAAO,GAAIL,EAAS,KAAMK,EAAQ,IAAI,CACzD,CAAK,EAAIA,EACEwL,CACT,EAAG,EAAE,EAEL,OAAO,OAAO,KAAKA,CAAM,EAAE,IAAI,SAAUtuB,EAAK,CAC5C,OAAOsuB,EAAOtuB,CAAG,CACnB,CAAC,CACH,CCJA,IAAI2nH,GAAkB,CACpB,UAAW,SACX,UAAW,GACX,SAAU,UACZ,EAEA,SAASC,IAAmB,CAC1B,QAASlhC,EAAO,UAAU,OAAQr7E,EAAO,IAAI,MAAMq7E,CAAI,EAAGhhF,EAAO,EAAGA,EAAOghF,EAAMhhF,IAC/E2F,EAAK3F,CAAI,EAAI,UAAUA,CAAI,EAG7B,MAAO,CAAC2F,EAAK,KAAK,SAAUmyE,EAAS,CACnC,MAAO,EAAEA,GAAW,OAAOA,EAAQ,uBAA0B,WAC/D,CAAC,CACH,CAEO,SAASqqC,GAAgBC,EAAkB,CAC5CA,IAAqB,SACvBA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkB,iBAC1CE,EAAmBD,IAA0B,OAAS,GAAKA,EAC3DE,EAAyBH,EAAkB,eAC3CI,EAAiBD,IAA2B,OAASP,GAAkBO,EAC3E,OAAO,SAAsB7S,EAAWD,EAAQ9hG,EAAS,CACnDA,IAAY,SACdA,EAAU60G,GAGZ,IAAI5qG,EAAQ,CACV,UAAW,SACX,iBAAkB,GAClB,QAAS,OAAO,OAAO,GAAIoqG,GAAiBQ,CAAc,EAC1D,cAAe,GACf,SAAU,CACR,UAAW9S,EACX,OAAQD,CAChB,EACM,WAAY,GACZ,OAAQ,EACd,EACQgT,EAAmB,GACnBC,EAAc,GACdpzG,EAAW,CACb,MAAOsI,EACP,WAAY,SAAoB+qG,EAAkB,CAChD,IAAIh1G,EAAU,OAAOg1G,GAAqB,WAAaA,EAAiB/qG,EAAM,OAAO,EAAI+qG,EACzFC,EAAsB,EACtBhrG,EAAM,QAAU,OAAO,OAAO,GAAI4qG,EAAgB5qG,EAAM,QAASjK,CAAO,EACxEiK,EAAM,cAAgB,CACpB,UAAW84F,GAAUhB,CAAS,EAAI4I,GAAkB5I,CAAS,EAAIA,EAAU,eAAiB4I,GAAkB5I,EAAU,cAAc,EAAI,GAC1I,OAAQ4I,GAAkB7I,CAAM,CAC1C,EAGQ,IAAIkS,EAAmBD,GAAeK,GAAY,GAAG,OAAOO,EAAkB1qG,EAAM,QAAQ,SAAS,CAAC,CAAC,EAEvG,OAAAA,EAAM,iBAAmB+pG,EAAiB,OAAO,SAAU95F,EAAG,CAC5D,OAAOA,EAAE,OACX,CAAC,EACDg7F,EAAkB,EACXvzG,EAAS,OAAM,CACxB,EAMA,YAAa,UAAuB,CAClC,GAAI,CAAAozG,EAIJ,KAAII,EAAkBlrG,EAAM,SACxB83F,EAAYoT,EAAgB,UAC5BrT,EAASqT,EAAgB,OAG7B,GAAKb,GAAiBvS,EAAWD,CAAM,EAKvC,CAAA73F,EAAM,MAAQ,CACZ,UAAWmpG,GAAiBrR,EAAW+C,GAAgBhD,CAAM,EAAG73F,EAAM,QAAQ,WAAa,OAAO,EAClG,OAAQ+5F,GAAclC,CAAM,CACtC,EAMQ73F,EAAM,MAAQ,GACdA,EAAM,UAAYA,EAAM,QAAQ,UAKhCA,EAAM,iBAAiB,QAAQ,SAAU0pG,EAAU,CACjD,OAAO1pG,EAAM,cAAc0pG,EAAS,IAAI,EAAI,OAAO,OAAO,GAAIA,EAAS,IAAI,CAC7E,CAAC,EAED,QAASx6G,EAAQ,EAAGA,EAAQ8Q,EAAM,iBAAiB,OAAQ9Q,IAAS,CAClE,GAAI8Q,EAAM,QAAU,GAAM,CACxBA,EAAM,MAAQ,GACd9Q,EAAQ,GACR,QACF,CAEA,IAAIi8G,EAAwBnrG,EAAM,iBAAiB9Q,CAAK,EACpDxK,EAAKymH,EAAsB,GAC3BC,EAAyBD,EAAsB,QAC/CnJ,EAAWoJ,IAA2B,OAAS,GAAKA,EACpDxkH,EAAOukH,EAAsB,KAE7B,OAAOzmH,GAAO,aAChBsb,EAAQtb,EAAG,CACT,MAAOsb,EACP,QAASgiG,EACT,KAAMp7G,EACN,SAAU8Q,CACxB,CAAa,GAAKsI,EAEV,GACF,EAGA,OAAQiqG,GAAS,UAAY,CAC3B,OAAO,IAAI,QAAQ,SAAUxgG,EAAS,CACpC/R,EAAS,YAAW,EACpB+R,EAAQzJ,CAAK,CACf,CAAC,CACH,CAAC,EACD,QAAS,UAAmB,CAC1BgrG,EAAsB,EACtBF,EAAc,EAChB,CACN,EAEI,GAAI,CAACT,GAAiBvS,EAAWD,CAAM,EACrC,OAAOngG,EAGTA,EAAS,WAAW3B,CAAO,EAAE,KAAK,SAAUiK,EAAO,CAC7C,CAAC8qG,GAAe/0G,EAAQ,eAC1BA,EAAQ,cAAciK,CAAK,CAE/B,CAAC,EAMD,SAASirG,GAAqB,CAC5BjrG,EAAM,iBAAiB,QAAQ,SAAUm4D,EAAM,CAC7C,IAAIvxE,EAAOuxE,EAAK,KACZy3F,EAAez3F,EAAK,QACpBpiE,EAAU65J,IAAiB,OAAS,GAAKA,EACzCn5J,EAAS0hE,EAAK,OAElB,GAAI,OAAO1hE,GAAW,WAAY,CAChC,IAAIf,EAAYe,EAAO,CACrB,MAAOuJ,EACP,KAAMpZ,EACN,SAAU8Q,EACV,QAAS3B,CACrB,CAAW,EAEGu1G,EAAS,UAAkB,CAAC,EAEhCT,EAAiB,KAAKn1G,GAAa41G,CAAM,CAC3C,CACF,CAAC,CACH,CAEA,SAASN,GAAyB,CAChCH,EAAiB,QAAQ,SAAUnmH,EAAI,CACrC,OAAOA,EAAE,CACX,CAAC,EACDmmH,EAAmB,EACrB,CAEA,OAAOnzG,CACT,CACF,CACO,IAAI6zG,GAA4BjB,GAAe,EC/LlDI,GAAmB,CAACpL,GAAgBvD,GAAe2C,GAAexF,EAAW,EAC7EqS,GAA4BjB,GAAgB,CAC9C,iBAAkBI,EACpB,CAAC,ECEGA,GAAmB,CAACpL,GAAgBvD,GAAe2C,GAAexF,GAAa9kE,GAAQsvE,GAAMgD,GAAiB9K,GAAO4J,EAAI,EACzH+F,GAA4BjB,GAAgB,CAC9C,iBAAkBI,EACpB,CAAC,imBCKD,MAAMmlD,GAAa,IAAI,IACjBC,GAAO,CACX,IAAI7vF,EAASx9E,EAAKiV,EAAU,CACrBm4J,GAAW,IAAI5vF,CAAO,GACzB4vF,GAAW,IAAI5vF,EAAS,IAAI,GAAK,EAEnC,MAAM8vF,EAAcF,GAAW,IAAI5vF,CAAO,EAI1C,GAAI,CAAC8vF,EAAY,IAAIttK,CAAG,GAAKstK,EAAY,OAAS,EAAG,CAEnD,QAAQ,MAAM,+EAA+E,MAAM,KAAKA,EAAY,MAAM,EAAE,CAAC,CAAC,GAAG,EACjI,MACF,CACAA,EAAY,IAAIttK,EAAKiV,CAAQ,CAC/B,EACA,IAAIuoE,EAASx9E,EAAK,CAChB,OAAIotK,GAAW,IAAI5vF,CAAO,GACjB4vF,GAAW,IAAI5vF,CAAO,EAAE,IAAIx9E,CAAG,GAAK,IAG/C,EACA,OAAOw9E,EAASx9E,EAAK,CACnB,GAAI,CAACotK,GAAW,IAAI5vF,CAAO,EACzB,OAEF,MAAM8vF,EAAcF,GAAW,IAAI5vF,CAAO,EAC1C8vF,EAAY,OAAOttK,CAAG,EAGlBstK,EAAY,OAAS,GACvBF,GAAW,OAAO5vF,CAAO,CAE7B,CACF,EASM+vF,GAAU,IACVC,GAA0B,IAC1BC,GAAiB,gBAOjBC,GAAgBvrI,IAChBA,GAAY,OAAO,KAAO,OAAO,IAAI,SAEvCA,EAAWA,EAAS,QAAQ,gBAAiB,CAACuY,EAAOjkC,IAAO,IAAI,IAAI,OAAOA,CAAE,CAAC,EAAE,GAE3E0rB,GAIHwrI,GAASjjK,GACTA,GAAW,KACN,GAAGA,CAAM,GAEX,OAAO,UAAU,SAAS,KAAKA,CAAM,EAAE,MAAM,aAAa,EAAE,CAAC,EAAE,YAAW,EAO7EkjK,GAAS5kG,GAAU,CACvB,GACEA,GAAU,KAAK,MAAM,KAAK,OAAM,EAAKukG,EAAO,QACrC,SAAS,eAAevkG,CAAM,GACvC,OAAOA,CACT,EACM6kG,GAAmCrwF,GAAW,CAClD,GAAI,CAACA,EACH,MAAO,GAIT,GAAI,CACF,mBAAAm4C,EACA,gBAAAm4C,CACJ,EAAM,OAAO,iBAAiBtwF,CAAO,EACnC,MAAMuwF,EAA0B,OAAO,WAAWp4C,CAAkB,EAC9Dq4C,EAAuB,OAAO,WAAWF,CAAe,EAG9D,MAAI,CAACC,GAA2B,CAACC,EACxB,GAITr4C,EAAqBA,EAAmB,MAAM,GAAG,EAAE,CAAC,EACpDm4C,EAAkBA,EAAgB,MAAM,GAAG,EAAE,CAAC,GACtC,OAAO,WAAWn4C,CAAkB,EAAI,OAAO,WAAWm4C,CAAe,GAAKN,GACxF,EACMS,GAAuBzwF,GAAW,CACtCA,EAAQ,cAAc,IAAI,MAAMiwF,EAAc,CAAC,CACjD,EACMp3D,GAAY3rG,GACZ,CAACA,GAAU,OAAOA,GAAW,SACxB,IAEL,OAAOA,EAAO,OAAW,MAC3BA,EAASA,EAAO,CAAC,GAEZ,OAAOA,EAAO,SAAa,KAE9BwjK,GAAaxjK,GAEb2rG,GAAU3rG,CAAM,EACXA,EAAO,OAASA,EAAO,CAAC,EAAIA,EAEjC,OAAOA,GAAW,UAAYA,EAAO,OAAS,EACzC,SAAS,cAAcgjK,GAAchjK,CAAM,CAAC,EAE9C,KAEHyjK,GAAY3wF,GAAW,CAC3B,GAAI,CAAC64B,GAAU74B,CAAO,GAAKA,EAAQ,eAAc,EAAG,SAAW,EAC7D,MAAO,GAET,MAAM4wF,EAAmB,iBAAiB5wF,CAAO,EAAE,iBAAiB,YAAY,IAAM,UAEhF6wF,EAAgB7wF,EAAQ,QAAQ,qBAAqB,EAC3D,GAAI,CAAC6wF,EACH,OAAOD,EAET,GAAIC,IAAkB7wF,EAAS,CAC7B,MAAM8wF,EAAU9wF,EAAQ,QAAQ,SAAS,EAIzC,GAHI8wF,GAAWA,EAAQ,aAAeD,GAGlCC,IAAY,KACd,MAAO,EAEX,CACA,OAAOF,CACT,EACMjxJ,GAAaqgE,GACb,CAACA,GAAWA,EAAQ,WAAa,KAAK,cAGtCA,EAAQ,UAAU,SAAS,UAAU,EAChC,GAEL,OAAOA,EAAQ,SAAa,IACvBA,EAAQ,SAEVA,EAAQ,aAAa,UAAU,GAAKA,EAAQ,aAAa,UAAU,IAAM,QAE5E+wF,GAAiB/wF,GAAW,CAChC,GAAI,CAAC,SAAS,gBAAgB,aAC5B,OAAO,KAIT,GAAI,OAAOA,EAAQ,aAAgB,WAAY,CAC7C,MAAMpmD,EAAOomD,EAAQ,YAAW,EAChC,OAAOpmD,aAAgB,WAAaA,EAAO,IAC7C,CACA,OAAIomD,aAAmB,WACdA,EAIJA,EAAQ,WAGN+wF,GAAe/wF,EAAQ,UAAU,EAF/B,IAGX,EACM3vC,GAAO,IAAM,CAAC,EAUd2gI,GAAShxF,GAAW,CACxBA,EAAQ,YACV,EACMixF,GAAY,IACZ,OAAO,QAAU,CAAC,SAAS,KAAK,aAAa,mBAAmB,EAC3D,OAAO,OAET,KAEHC,GAA4B,GAC5BC,GAAqBv/J,GAAY,CACjC,SAAS,aAAe,WAErBs/J,GAA0B,QAC7B,SAAS,iBAAiB,mBAAoB,IAAM,CAClD,UAAWt/J,KAAYs/J,GACrBt/J,EAAQ,CAEZ,CAAC,EAEHs/J,GAA0B,KAAKt/J,CAAQ,GAEvCA,EAAQ,CAEZ,EACMqsI,GAAQ,IAAM,SAAS,gBAAgB,MAAQ,MAC/CmzB,GAAqBz/I,GAAU,CACnCw/I,GAAmB,IAAM,CACvB,MAAMr2B,EAAIm2B,GAAS,EAEnB,GAAIn2B,EAAG,CACL,MAAMn0I,EAAOgrB,EAAO,KACd0/I,EAAqBv2B,EAAE,GAAGn0I,CAAI,EACpCm0I,EAAE,GAAGn0I,CAAI,EAAIgrB,EAAO,gBACpBmpH,EAAE,GAAGn0I,CAAI,EAAE,YAAcgrB,EACzBmpH,EAAE,GAAGn0I,CAAI,EAAE,WAAa,KACtBm0I,EAAE,GAAGn0I,CAAI,EAAI0qK,EACN1/I,EAAO,gBAElB,CACF,CAAC,CACH,EACM2/I,GAAU,CAACC,EAAkB1jK,EAAO,GAAIiH,EAAey8J,IACpD,OAAOA,GAAqB,WAAaA,EAAiB,KAAK,GAAG1jK,CAAI,EAAIiH,EAE7E08J,GAAyB,CAAC5/J,EAAU6/J,EAAmBC,EAAoB,KAAS,CACxF,GAAI,CAACA,EAAmB,CACtBJ,GAAQ1/J,CAAQ,EAChB,MACF,CAEA,MAAM+/J,EAAmBtB,GAAiCoB,CAAiB,EADnD,EAExB,IAAItuJ,EAAS,GACb,MAAMsM,EAAU,CAAC,CACf,OAAAnjB,CACJ,IAAQ,CACAA,IAAWmlK,IAGftuJ,EAAS,GACTsuJ,EAAkB,oBAAoBxB,GAAgBxgJ,CAAO,EAC7D6hJ,GAAQ1/J,CAAQ,EAClB,EACA6/J,EAAkB,iBAAiBxB,GAAgBxgJ,CAAO,EAC1D,WAAW,IAAM,CACVtM,GACHstJ,GAAqBgB,CAAiB,CAE1C,EAAGE,CAAgB,CACrB,EAWMC,GAAuB,CAACvrH,EAAMwoE,EAAegjD,EAAeC,IAAmB,CACnF,MAAMC,EAAa1rH,EAAK,OACxB,IAAIp3C,EAAQo3C,EAAK,QAAQwoE,CAAa,EAItC,OAAI5/G,IAAU,GACL,CAAC4iK,GAAiBC,EAAiBzrH,EAAK0rH,EAAa,CAAC,EAAI1rH,EAAK,CAAC,GAEzEp3C,GAAS4iK,EAAgB,EAAI,GACzBC,IACF7iK,GAASA,EAAQ8iK,GAAcA,GAE1B1rH,EAAK,KAAK,IAAI,EAAG,KAAK,IAAIp3C,EAAO8iK,EAAa,CAAC,CAAC,CAAC,EAC1D,EAcMC,GAAiB,qBACjBC,GAAiB,OACjBC,GAAgB,SAChBC,GAAgB,GACtB,IAAIC,GAAW,EACf,MAAMC,GAAe,CACnB,WAAY,YACZ,WAAY,UACd,EACMC,GAAe,IAAI,IAAI,CAAC,QAAS,WAAY,UAAW,YAAa,cAAe,aAAc,iBAAkB,YAAa,WAAY,YAAa,cAAe,YAAa,UAAW,WAAY,QAAS,oBAAqB,aAAc,YAAa,WAAY,cAAe,cAAe,cAAe,YAAa,eAAgB,gBAAiB,eAAgB,gBAAiB,aAAc,QAAS,OAAQ,SAAU,QAAS,SAAU,SAAU,UAAW,WAAY,OAAQ,SAAU,eAAgB,SAAU,OAAQ,mBAAoB,mBAAoB,QAAS,QAAS,QAAQ,CAAC,EAMxmB,SAASC,GAAavyF,EAASr9C,EAAK,CAClC,OAAOA,GAAO,GAAGA,CAAG,KAAKyvI,IAAU,IAAMpyF,EAAQ,UAAYoyF,IAC/D,CACA,SAASI,GAAiBxyF,EAAS,CACjC,MAAMr9C,EAAM4vI,GAAavyF,CAAO,EAChC,OAAAA,EAAQ,SAAWr9C,EACnBwvI,GAAcxvI,CAAG,EAAIwvI,GAAcxvI,CAAG,GAAK,GACpCwvI,GAAcxvI,CAAG,CAC1B,CACA,SAAS8vI,GAAiBzyF,EAASv7E,EAAI,CACrC,OAAO,SAASgrB,EAAQqP,EAAO,CAC7B,OAAA4zI,GAAW5zI,EAAO,CAChB,eAAgBkhD,CACtB,CAAK,EACGvwD,EAAQ,QACVkjJ,GAAa,IAAI3yF,EAASlhD,EAAM,KAAMr6B,CAAE,EAEnCA,EAAG,MAAMu7E,EAAS,CAAClhD,CAAK,CAAC,CAClC,CACF,CACA,SAAS8zI,GAA2B5yF,EAASr7C,EAAUlgC,EAAI,CACzD,OAAO,SAASgrB,EAAQqP,EAAO,CAC7B,MAAM+zI,EAAc7yF,EAAQ,iBAAiBr7C,CAAQ,EACrD,OAAS,CACP,OAAAr4B,CACN,EAAQwyB,EAAOxyB,GAAUA,IAAW,KAAMA,EAASA,EAAO,WACpD,UAAWuuI,KAAcg4B,EACvB,GAAIh4B,IAAevuI,EAGnB,OAAAomK,GAAW5zI,EAAO,CAChB,eAAgBxyB,CAC1B,CAAS,EACGmjB,EAAQ,QACVkjJ,GAAa,IAAI3yF,EAASlhD,EAAM,KAAM6F,EAAUlgC,CAAE,EAE7CA,EAAG,MAAM6H,EAAQ,CAACwyB,CAAK,CAAC,CAGrC,CACF,CACA,SAASg0I,GAAYjjC,EAAQkjC,EAAUC,EAAqB,KAAM,CAChE,OAAO,OAAO,OAAOnjC,CAAM,EAAE,KAAK/wG,GAASA,EAAM,WAAai0I,GAAYj0I,EAAM,qBAAuBk0I,CAAkB,CAC3H,CACA,SAASC,GAAoBC,EAAmBzjJ,EAAS0jJ,EAAoB,CAC3E,MAAMC,EAAc,OAAO3jJ,GAAY,SAEjCsjJ,EAAWK,EAAcD,EAAqB1jJ,GAAW0jJ,EAC/D,IAAIE,EAAYC,GAAaJ,CAAiB,EAC9C,OAAKZ,GAAa,IAAIe,CAAS,IAC7BA,EAAYH,GAEP,CAACE,EAAaL,EAAUM,CAAS,CAC1C,CACA,SAASE,GAAWvzF,EAASkzF,EAAmBzjJ,EAAS0jJ,EAAoBK,EAAQ,CACnF,GAAI,OAAON,GAAsB,UAAY,CAAClzF,EAC5C,OAEF,GAAI,CAACozF,EAAaL,EAAUM,CAAS,EAAIJ,GAAoBC,EAAmBzjJ,EAAS0jJ,CAAkB,EAIvGD,KAAqBb,KAQvBU,GAPqBtuK,GACZ,SAAUq6B,EAAO,CACtB,GAAI,CAACA,EAAM,eAAiBA,EAAM,gBAAkBA,EAAM,gBAAkB,CAACA,EAAM,eAAe,SAASA,EAAM,aAAa,EAC5H,OAAOr6B,EAAG,KAAK,KAAMq6B,CAAK,CAE9B,GAEsBi0I,CAAQ,GAElC,MAAMljC,EAAS2iC,GAAiBxyF,CAAO,EACjCppC,EAAWi5F,EAAOwjC,CAAS,IAAMxjC,EAAOwjC,CAAS,EAAI,IACrDI,EAAmBX,GAAYl8H,EAAUm8H,EAAUK,EAAc3jJ,EAAU,IAAI,EACrF,GAAIgkJ,EAAkB,CACpBA,EAAiB,OAASA,EAAiB,QAAUD,EACrD,MACF,CACA,MAAM7wI,EAAM4vI,GAAaQ,EAAUG,EAAkB,QAAQlB,GAAgB,EAAE,CAAC,EAC1EvtK,EAAK2uK,EAAcR,GAA2B5yF,EAASvwD,EAASsjJ,CAAQ,EAAIN,GAAiBzyF,EAAS+yF,CAAQ,EACpHtuK,EAAG,mBAAqB2uK,EAAc3jJ,EAAU,KAChDhrB,EAAG,SAAWsuK,EACdtuK,EAAG,OAAS+uK,EACZ/uK,EAAG,SAAWk+B,EACdiU,EAASjU,CAAG,EAAIl+B,EAChBu7E,EAAQ,iBAAiBqzF,EAAW5uK,EAAI2uK,CAAW,CACrD,CACA,SAASM,GAAc1zF,EAAS6vD,EAAQwjC,EAAW5jJ,EAASujJ,EAAoB,CAC9E,MAAMvuK,EAAKquK,GAAYjjC,EAAOwjC,CAAS,EAAG5jJ,EAASujJ,CAAkB,EAChEvuK,IAGLu7E,EAAQ,oBAAoBqzF,EAAW5uK,EAAI,EAAQuuK,CAAmB,EACtE,OAAOnjC,EAAOwjC,CAAS,EAAE5uK,EAAG,QAAQ,EACtC,CACA,SAASkvK,GAAyB3zF,EAAS6vD,EAAQwjC,EAAW72J,EAAW,CACvE,MAAMo3J,EAAoB/jC,EAAOwjC,CAAS,GAAK,GAC/C,SAAW,CAACQ,EAAY/0I,CAAK,IAAK,OAAO,QAAQ80I,CAAiB,EAC5DC,EAAW,SAASr3J,CAAS,GAC/Bk3J,GAAc1zF,EAAS6vD,EAAQwjC,EAAWv0I,EAAM,SAAUA,EAAM,kBAAkB,CAGxF,CACA,SAASw0I,GAAax0I,EAAO,CAE3B,OAAAA,EAAQA,EAAM,QAAQmzI,GAAgB,EAAE,EACjCI,GAAavzI,CAAK,GAAKA,CAChC,CACA,MAAM6zI,GAAe,CACnB,GAAG3yF,EAASlhD,EAAOrP,EAAS0jJ,EAAoB,CAC9CI,GAAWvzF,EAASlhD,EAAOrP,EAAS0jJ,EAAoB,EAAK,CAC/D,EACA,IAAInzF,EAASlhD,EAAOrP,EAAS0jJ,EAAoB,CAC/CI,GAAWvzF,EAASlhD,EAAOrP,EAAS0jJ,EAAoB,EAAI,CAC9D,EACA,IAAInzF,EAASkzF,EAAmBzjJ,EAAS0jJ,EAAoB,CAC3D,GAAI,OAAOD,GAAsB,UAAY,CAAClzF,EAC5C,OAEF,KAAM,CAACozF,EAAaL,EAAUM,CAAS,EAAIJ,GAAoBC,EAAmBzjJ,EAAS0jJ,CAAkB,EACvGW,EAAcT,IAAcH,EAC5BrjC,EAAS2iC,GAAiBxyF,CAAO,EACjC4zF,EAAoB/jC,EAAOwjC,CAAS,GAAK,GACzCU,EAAcb,EAAkB,WAAW,GAAG,EACpD,GAAI,OAAOH,EAAa,IAAa,CAEnC,GAAI,CAAC,OAAO,KAAKa,CAAiB,EAAE,OAClC,OAEFF,GAAc1zF,EAAS6vD,EAAQwjC,EAAWN,EAAUK,EAAc3jJ,EAAU,IAAI,EAChF,MACF,CACA,GAAIskJ,EACF,UAAWC,KAAgB,OAAO,KAAKnkC,CAAM,EAC3C8jC,GAAyB3zF,EAAS6vD,EAAQmkC,EAAcd,EAAkB,MAAM,CAAC,CAAC,EAGtF,SAAW,CAACe,EAAan1I,CAAK,IAAK,OAAO,QAAQ80I,CAAiB,EAAG,CACpE,MAAMC,EAAaI,EAAY,QAAQ/B,GAAe,EAAE,GACpD,CAAC4B,GAAeZ,EAAkB,SAASW,CAAU,IACvDH,GAAc1zF,EAAS6vD,EAAQwjC,EAAWv0I,EAAM,SAAUA,EAAM,kBAAkB,CAEtF,CACF,EACA,QAAQkhD,EAASlhD,EAAOjxB,EAAM,CAC5B,GAAI,OAAOixB,GAAU,UAAY,CAACkhD,EAChC,OAAO,KAET,MAAM86D,EAAIm2B,GAAS,EACboC,EAAYC,GAAax0I,CAAK,EAC9Bg1I,EAAch1I,IAAUu0I,EAC9B,IAAIa,EAAc,KACdC,EAAU,GACVC,EAAiB,GACjBC,EAAmB,GACnBP,GAAeh5B,IACjBo5B,EAAcp5B,EAAE,MAAMh8G,EAAOjxB,CAAI,EACjCitI,EAAE96D,CAAO,EAAE,QAAQk0F,CAAW,EAC9BC,EAAU,CAACD,EAAY,qBAAoB,EAC3CE,EAAiB,CAACF,EAAY,8BAA6B,EAC3DG,EAAmBH,EAAY,mBAAkB,GAEnD,MAAMI,EAAM5B,GAAW,IAAI,MAAM5zI,EAAO,CACtC,QAAAq1I,EACA,WAAY,EAClB,CAAK,EAAGtmK,CAAI,EACR,OAAIwmK,GACFC,EAAI,eAAc,EAEhBF,GACFp0F,EAAQ,cAAcs0F,CAAG,EAEvBA,EAAI,kBAAoBJ,GAC1BA,EAAY,eAAc,EAErBI,CACT,CACF,EACA,SAAS5B,GAAWltK,EAAKs6C,EAAO,GAAI,CAClC,SAAW,CAACt9C,EAAK2B,CAAK,IAAK,OAAO,QAAQ27C,CAAI,EAC5C,GAAI,CACFt6C,EAAIhD,CAAG,EAAI2B,CACb,MAAkB,CAChB,OAAO,eAAeqB,EAAKhD,EAAK,CAC9B,aAAc,GACd,KAAM,CACJ,OAAO2B,CACT,CACR,CAAO,CACH,CAEF,OAAOqB,CACT,CASA,SAAS+uK,GAAcpwK,EAAO,CAC5B,GAAIA,IAAU,OACZ,MAAO,GAET,GAAIA,IAAU,QACZ,MAAO,GAET,GAAIA,IAAU,OAAOA,CAAK,EAAE,SAAQ,EAClC,OAAO,OAAOA,CAAK,EAErB,GAAIA,IAAU,IAAMA,IAAU,OAC5B,OAAO,KAET,GAAI,OAAOA,GAAU,SACnB,OAAOA,EAET,GAAI,CACF,OAAO,KAAK,MAAM,mBAAmBA,CAAK,CAAC,CAC7C,MAAkB,CAChB,OAAOA,CACT,CACF,CACA,SAASqwK,GAAiBhyK,EAAK,CAC7B,OAAOA,EAAI,QAAQ,SAAUw3F,GAAO,IAAIA,EAAI,YAAW,CAAE,EAAE,CAC7D,CACA,MAAMy6E,GAAc,CAClB,iBAAiBz0F,EAASx9E,EAAK2B,EAAO,CACpC67E,EAAQ,aAAa,WAAWw0F,GAAiBhyK,CAAG,CAAC,GAAI2B,CAAK,CAChE,EACA,oBAAoB67E,EAASx9E,EAAK,CAChCw9E,EAAQ,gBAAgB,WAAWw0F,GAAiBhyK,CAAG,CAAC,EAAE,CAC5D,EACA,kBAAkBw9E,EAAS,CACzB,GAAI,CAACA,EACH,MAAO,GAET,MAAMoB,EAAa,GACbszF,EAAS,OAAO,KAAK10F,EAAQ,OAAO,EAAE,OAAOx9E,GAAOA,EAAI,WAAW,IAAI,GAAK,CAACA,EAAI,WAAW,UAAU,CAAC,EAC7G,UAAWA,KAAOkyK,EAAQ,CACxB,IAAIC,EAAUnyK,EAAI,QAAQ,MAAO,EAAE,EACnCmyK,EAAUA,EAAQ,OAAO,CAAC,EAAE,cAAgBA,EAAQ,MAAM,CAAC,EAC3DvzF,EAAWuzF,CAAO,EAAIJ,GAAcv0F,EAAQ,QAAQx9E,CAAG,CAAC,CAC1D,CACA,OAAO4+E,CACT,EACA,iBAAiBpB,EAASx9E,EAAK,CAC7B,OAAO+xK,GAAcv0F,EAAQ,aAAa,WAAWw0F,GAAiBhyK,CAAG,CAAC,EAAE,CAAC,CAC/E,CACF,EAcA,MAAMoyK,EAAO,CAEX,WAAW,SAAU,CACnB,MAAO,EACT,CACA,WAAW,aAAc,CACvB,MAAO,EACT,CACA,WAAW,MAAO,CAChB,MAAM,IAAI,MAAM,qEAAqE,CACvF,CACA,WAAW9nH,EAAQ,CACjB,OAAAA,EAAS,KAAK,gBAAgBA,CAAM,EACpCA,EAAS,KAAK,kBAAkBA,CAAM,EACtC,KAAK,iBAAiBA,CAAM,EACrBA,CACT,CACA,kBAAkBA,EAAQ,CACxB,OAAOA,CACT,CACA,gBAAgBA,EAAQkzB,EAAS,CAC/B,MAAM60F,EAAah8D,GAAU74B,CAAO,EAAIy0F,GAAY,iBAAiBz0F,EAAS,QAAQ,EAAI,GAE1F,MAAO,CACL,GAAG,KAAK,YAAY,QACpB,GAAI,OAAO60F,GAAe,SAAWA,EAAa,GAClD,GAAIh8D,GAAU74B,CAAO,EAAIy0F,GAAY,kBAAkBz0F,CAAO,EAAI,GAClE,GAAI,OAAOlzB,GAAW,SAAWA,EAAS,EAChD,CACE,CACA,iBAAiBA,EAAQgoH,EAAc,KAAK,YAAY,YAAa,CACnE,SAAW,CAACxrG,EAAUyrG,CAAa,IAAK,OAAO,QAAQD,CAAW,EAAG,CACnE,MAAM3wK,EAAQ2oD,EAAOwc,CAAQ,EACvB0rG,EAAYn8D,GAAU10G,CAAK,EAAI,UAAYgsK,GAAOhsK,CAAK,EAC7D,GAAI,CAAC,IAAI,OAAO4wK,CAAa,EAAE,KAAKC,CAAS,EAC3C,MAAM,IAAI,UAAU,GAAG,KAAK,YAAY,KAAK,YAAW,CAAE,aAAa1rG,CAAQ,oBAAoB0rG,CAAS,wBAAwBD,CAAa,IAAI,CAEzJ,CACF,CACF,CAcA,MAAME,GAAU,QAMhB,MAAMC,WAAsBN,EAAO,CACjC,YAAY50F,EAASlzB,EAAQ,CAC3B,MAAK,EACLkzB,EAAU0wF,GAAW1wF,CAAO,EACvBA,IAGL,KAAK,SAAWA,EAChB,KAAK,QAAU,KAAK,WAAWlzB,CAAM,EACrC+iH,GAAK,IAAI,KAAK,SAAU,KAAK,YAAY,SAAU,IAAI,EACzD,CAGA,SAAU,CACRA,GAAK,OAAO,KAAK,SAAU,KAAK,YAAY,QAAQ,EACpD8C,GAAa,IAAI,KAAK,SAAU,KAAK,YAAY,SAAS,EAC1D,UAAWvhE,KAAgB,OAAO,oBAAoB,IAAI,EACxD,KAAKA,CAAY,EAAI,IAEzB,CAGA,eAAex/F,EAAUouE,EAASm1F,EAAa,GAAM,CACnD3D,GAAuB5/J,EAAUouE,EAASm1F,CAAU,CACtD,CACA,WAAWroH,EAAQ,CACjB,OAAAA,EAAS,KAAK,gBAAgBA,EAAQ,KAAK,QAAQ,EACnDA,EAAS,KAAK,kBAAkBA,CAAM,EACtC,KAAK,iBAAiBA,CAAM,EACrBA,CACT,CAGA,OAAO,YAAYkzB,EAAS,CAC1B,OAAO6vF,GAAK,IAAIa,GAAW1wF,CAAO,EAAG,KAAK,QAAQ,CACpD,CACA,OAAO,oBAAoBA,EAASlzB,EAAS,GAAI,CAC/C,OAAO,KAAK,YAAYkzB,CAAO,GAAK,IAAI,KAAKA,EAAS,OAAOlzB,GAAW,SAAWA,EAAS,IAAI,CAClG,CACA,WAAW,SAAU,CACnB,OAAOmoH,EACT,CACA,WAAW,UAAW,CACpB,MAAO,MAAM,KAAK,IAAI,EACxB,CACA,WAAW,WAAY,CACrB,MAAO,IAAI,KAAK,QAAQ,EAC1B,CACA,OAAO,UAAUtuK,EAAM,CACrB,MAAO,GAAGA,CAAI,GAAG,KAAK,SAAS,EACjC,CACF,CASA,MAAMyuK,GAAcp1F,GAAW,CAC7B,IAAIr7C,EAAWq7C,EAAQ,aAAa,gBAAgB,EACpD,GAAI,CAACr7C,GAAYA,IAAa,IAAK,CACjC,IAAI0wI,EAAgBr1F,EAAQ,aAAa,MAAM,EAM/C,GAAI,CAACq1F,GAAiB,CAACA,EAAc,SAAS,GAAG,GAAK,CAACA,EAAc,WAAW,GAAG,EACjF,OAAO,KAILA,EAAc,SAAS,GAAG,GAAK,CAACA,EAAc,WAAW,GAAG,IAC9DA,EAAgB,IAAIA,EAAc,MAAM,GAAG,EAAE,CAAC,CAAC,IAEjD1wI,EAAW0wI,GAAiBA,IAAkB,IAAMA,EAAc,KAAI,EAAK,IAC7E,CACA,OAAO1wI,EAAWA,EAAS,MAAM,GAAG,EAAE,IAAI2wI,GAAOpF,GAAcoF,CAAG,CAAC,EAAE,KAAK,GAAG,EAAI,IACnF,EACMC,GAAiB,CACrB,KAAK5wI,EAAUq7C,EAAU,SAAS,gBAAiB,CACjD,MAAO,GAAG,OAAO,GAAG,QAAQ,UAAU,iBAAiB,KAAKA,EAASr7C,CAAQ,CAAC,CAChF,EACA,QAAQA,EAAUq7C,EAAU,SAAS,gBAAiB,CACpD,OAAO,QAAQ,UAAU,cAAc,KAAKA,EAASr7C,CAAQ,CAC/D,EACA,SAASq7C,EAASr7C,EAAU,CAC1B,MAAO,GAAG,OAAO,GAAGq7C,EAAQ,QAAQ,EAAE,OAAOphE,GAASA,EAAM,QAAQ+lB,CAAQ,CAAC,CAC/E,EACA,QAAQq7C,EAASr7C,EAAU,CACzB,MAAM6wI,EAAU,GAChB,IAAIp1H,EAAW4/B,EAAQ,WAAW,QAAQr7C,CAAQ,EAClD,KAAOyb,GACLo1H,EAAQ,KAAKp1H,CAAQ,EACrBA,EAAWA,EAAS,WAAW,QAAQzb,CAAQ,EAEjD,OAAO6wI,CACT,EACA,KAAKx1F,EAASr7C,EAAU,CACtB,IAAIimE,EAAW5qB,EAAQ,uBACvB,KAAO4qB,GAAU,CACf,GAAIA,EAAS,QAAQjmE,CAAQ,EAC3B,MAAO,CAACimE,CAAQ,EAElBA,EAAWA,EAAS,sBACtB,CACA,MAAO,EACT,EAEA,KAAK5qB,EAASr7C,EAAU,CACtB,IAAIn6B,EAAOw1E,EAAQ,mBACnB,KAAOx1E,GAAM,CACX,GAAIA,EAAK,QAAQm6B,CAAQ,EACvB,MAAO,CAACn6B,CAAI,EAEdA,EAAOA,EAAK,kBACd,CACA,MAAO,EACT,EACA,kBAAkBw1E,EAAS,CACzB,MAAMy1F,EAAa,CAAC,IAAK,SAAU,QAAS,WAAY,SAAU,UAAW,aAAc,0BAA0B,EAAE,IAAI9wI,GAAY,GAAGA,CAAQ,uBAAuB,EAAE,KAAK,GAAG,EACnL,OAAO,KAAK,KAAK8wI,EAAYz1F,CAAO,EAAE,OAAO78E,GAAM,CAACwc,GAAWxc,CAAE,GAAKwtK,GAAUxtK,CAAE,CAAC,CACrF,EACA,uBAAuB68E,EAAS,CAC9B,MAAMr7C,EAAWywI,GAAYp1F,CAAO,EACpC,OAAIr7C,GACK4wI,GAAe,QAAQ5wI,CAAQ,EAAIA,EAErC,IACT,EACA,uBAAuBq7C,EAAS,CAC9B,MAAMr7C,EAAWywI,GAAYp1F,CAAO,EACpC,OAAOr7C,EAAW4wI,GAAe,QAAQ5wI,CAAQ,EAAI,IACvD,EACA,gCAAgCq7C,EAAS,CACvC,MAAMr7C,EAAWywI,GAAYp1F,CAAO,EACpC,OAAOr7C,EAAW4wI,GAAe,KAAK5wI,CAAQ,EAAI,EACpD,CACF,EASM+wI,GAAuB,CAACvsJ,EAAW5a,EAAS,SAAW,CAC3D,MAAMonK,EAAa,gBAAgBxsJ,EAAU,SAAS,GAChDxiB,EAAOwiB,EAAU,KACvBwpJ,GAAa,GAAG,SAAUgD,EAAY,qBAAqBhvK,CAAI,KAAM,SAAUm4B,EAAO,CAIpF,GAHI,CAAC,IAAK,MAAM,EAAE,SAAS,KAAK,OAAO,GACrCA,EAAM,eAAc,EAElBnf,GAAW,IAAI,EACjB,OAEF,MAAMrT,EAASipK,GAAe,uBAAuB,IAAI,GAAK,KAAK,QAAQ,IAAI5uK,CAAI,EAAE,EACpEwiB,EAAU,oBAAoB7c,CAAM,EAG5CiC,CAAM,EAAC,CAClB,CAAC,CACH,EAcMqnK,GAAS,QACTC,GAAa,WACbC,GAAc,IAAID,EAAU,GAC5BE,GAAc,QAAQD,EAAW,GACjCE,GAAe,SAASF,EAAW,GACnCG,GAAoB,OACpBC,GAAoB,OAM1B,MAAMC,WAAcjB,EAAc,CAEhC,WAAW,MAAO,CAChB,OAAOU,EACT,CAGA,OAAQ,CAEN,GADmBjD,GAAa,QAAQ,KAAK,SAAUoD,EAAW,EACnD,iBACb,OAEF,KAAK,SAAS,UAAU,OAAOG,EAAiB,EAChD,MAAMf,EAAa,KAAK,SAAS,UAAU,SAASc,EAAiB,EACrE,KAAK,eAAe,IAAM,KAAK,gBAAe,EAAI,KAAK,SAAUd,CAAU,CAC7E,CAGA,iBAAkB,CAChB,KAAK,SAAS,OAAM,EACpBxC,GAAa,QAAQ,KAAK,SAAUqD,EAAY,EAChD,KAAK,QAAO,CACd,CAGA,OAAO,gBAAgBlpH,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAO2qJ,GAAM,oBAAoB,IAAI,EAC3C,GAAI,OAAOrpH,GAAW,SAGtB,IAAIthC,EAAKshC,CAAM,IAAM,QAAaA,EAAO,WAAW,GAAG,GAAKA,IAAW,cACrE,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAE,IAAI,EACnB,CAAC,CACH,CACF,CAMA4oH,GAAqBS,GAAO,OAAO,EAMnC/E,GAAmB+E,EAAK,EAcxB,MAAMC,GAAS,SACTC,GAAa,YACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAsB,SACtBC,GAAyB,4BACzBC,GAAyB,QAAQJ,EAAW,GAAGC,EAAc,GAMnE,MAAMI,WAAezB,EAAc,CAEjC,WAAW,MAAO,CAChB,OAAOkB,EACT,CAGA,QAAS,CAEP,KAAK,SAAS,aAAa,eAAgB,KAAK,SAAS,UAAU,OAAOI,EAAmB,CAAC,CAChG,CAGA,OAAO,gBAAgB1pH,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAOmrJ,GAAO,oBAAoB,IAAI,EACxC7pH,IAAW,UACbthC,EAAKshC,CAAM,EAAC,CAEhB,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,SAAU+D,GAAwBD,GAAwB33I,GAAS,CACjFA,EAAM,eAAc,EACpB,MAAM83I,EAAS93I,EAAM,OAAO,QAAQ23I,EAAsB,EAC7CE,GAAO,oBAAoBC,CAAM,EACzC,OAAM,CACb,CAAC,EAMDxF,GAAmBuF,EAAM,EAczB,MAAME,GAAS,QACTC,GAAc,YACdC,GAAmB,aAAaD,EAAW,GAC3CE,GAAkB,YAAYF,EAAW,GACzCG,GAAiB,WAAWH,EAAW,GACvCI,GAAoB,cAAcJ,EAAW,GAC7CK,GAAkB,YAAYL,EAAW,GACzCM,GAAqB,QACrBC,GAAmB,MACnBC,GAA2B,gBAC3BC,GAAkB,GAClBC,GAAY,CAChB,YAAa,KACb,aAAc,KACd,cAAe,IACjB,EACMC,GAAgB,CACpB,YAAa,kBACb,aAAc,kBACd,cAAe,iBACjB,EAMA,MAAMC,WAAc9C,EAAO,CACzB,YAAY50F,EAASlzB,EAAQ,CAC3B,MAAK,EACL,KAAK,SAAWkzB,EACZ,GAACA,GAAW,CAAC03F,GAAM,YAAW,KAGlC,KAAK,QAAU,KAAK,WAAW5qH,CAAM,EACrC,KAAK,QAAU,EACf,KAAK,sBAAwB,EAAQ,OAAO,aAC5C,KAAK,YAAW,EAClB,CAGA,WAAW,SAAU,CACnB,OAAO0qH,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOZ,EACT,CAGA,SAAU,CACRlE,GAAa,IAAI,KAAK,SAAUmE,EAAW,CAC7C,CAGA,OAAOh4I,EAAO,CACZ,GAAI,CAAC,KAAK,sBAAuB,CAC/B,KAAK,QAAUA,EAAM,QAAQ,CAAC,EAAE,QAChC,MACF,CACI,KAAK,wBAAwBA,CAAK,IACpC,KAAK,QAAUA,EAAM,QAEzB,CACA,KAAKA,EAAO,CACN,KAAK,wBAAwBA,CAAK,IACpC,KAAK,QAAUA,EAAM,QAAU,KAAK,SAEtC,KAAK,aAAY,EACjBwyI,GAAQ,KAAK,QAAQ,WAAW,CAClC,CACA,MAAMxyI,EAAO,CACX,KAAK,QAAUA,EAAM,SAAWA,EAAM,QAAQ,OAAS,EAAI,EAAIA,EAAM,QAAQ,CAAC,EAAE,QAAU,KAAK,OACjG,CACA,cAAe,CACb,MAAM64I,EAAY,KAAK,IAAI,KAAK,OAAO,EACvC,GAAIA,GAAaJ,GACf,OAEF,MAAM7uG,EAAYivG,EAAY,KAAK,QACnC,KAAK,QAAU,EACVjvG,GAGL4oG,GAAQ5oG,EAAY,EAAI,KAAK,QAAQ,cAAgB,KAAK,QAAQ,YAAY,CAChF,CACA,aAAc,CACR,KAAK,uBACPiqG,GAAa,GAAG,KAAK,SAAUuE,GAAmBp4I,GAAS,KAAK,OAAOA,CAAK,CAAC,EAC7E6zI,GAAa,GAAG,KAAK,SAAUwE,GAAiBr4I,GAAS,KAAK,KAAKA,CAAK,CAAC,EACzE,KAAK,SAAS,UAAU,IAAIw4I,EAAwB,IAEpD3E,GAAa,GAAG,KAAK,SAAUoE,GAAkBj4I,GAAS,KAAK,OAAOA,CAAK,CAAC,EAC5E6zI,GAAa,GAAG,KAAK,SAAUqE,GAAiBl4I,GAAS,KAAK,MAAMA,CAAK,CAAC,EAC1E6zI,GAAa,GAAG,KAAK,SAAUsE,GAAgBn4I,GAAS,KAAK,KAAKA,CAAK,CAAC,EAE5E,CACA,wBAAwBA,EAAO,CAC7B,OAAO,KAAK,wBAA0BA,EAAM,cAAgBu4I,IAAoBv4I,EAAM,cAAgBs4I,GACxG,CAGA,OAAO,aAAc,CACnB,MAAO,iBAAkB,SAAS,iBAAmB,UAAU,eAAiB,CAClF,CACF,CAcA,MAAMQ,GAAS,WACTC,GAAa,cACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAmB,YACnBC,GAAoB,aACpBC,GAAyB,IAEzBC,GAAa,OACbC,GAAa,OACbC,GAAiB,OACjBC,GAAkB,QAClBC,GAAc,QAAQT,EAAW,GACjCU,GAAa,OAAOV,EAAW,GAC/BW,GAAkB,UAAUX,EAAW,GACvCY,GAAqB,aAAaZ,EAAW,GAC7Ca,GAAqB,aAAab,EAAW,GAC7Cc,GAAmB,YAAYd,EAAW,GAC1Ce,GAAwB,OAAOf,EAAW,GAAGC,EAAc,GAC3De,GAAyB,QAAQhB,EAAW,GAAGC,EAAc,GAC7DgB,GAAsB,WACtBC,GAAsB,SACtBC,GAAmB,QACnBC,GAAiB,oBACjBC,GAAmB,sBACnBC,GAAkB,qBAClBC,GAAkB,qBAClBC,GAAkB,UAClBC,GAAgB,iBAChBC,GAAuBF,GAAkBC,GACzCE,GAAoB,qBACpBC,GAAsB,uBACtBC,GAAsB,sCACtBC,GAAqB,4BACrBC,GAAmB,CACvB,CAAC7B,EAAgB,EAAGM,GACpB,CAACL,EAAiB,EAAGI,EACvB,EACMyB,GAAY,CAChB,SAAU,IACV,SAAU,GACV,MAAO,QACP,KAAM,GACN,MAAO,GACP,KAAM,EACR,EACMC,GAAgB,CACpB,SAAU,mBAEV,SAAU,UACV,MAAO,mBACP,KAAM,mBACN,MAAO,UACP,KAAM,SACR,EAMA,MAAMC,WAAiB9E,EAAc,CACnC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,UAAY,KACjB,KAAK,eAAiB,KACtB,KAAK,WAAa,GAClB,KAAK,aAAe,KACpB,KAAK,aAAe,KACpB,KAAK,mBAAqByoH,GAAe,QAAQmE,GAAqB,KAAK,QAAQ,EACnF,KAAK,mBAAkB,EACnB,KAAK,QAAQ,OAASX,IACxB,KAAK,MAAK,CAEd,CAGA,WAAW,SAAU,CACnB,OAAOe,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOnC,EACT,CAGA,MAAO,CACL,KAAK,OAAOO,EAAU,CACxB,CACA,iBAAkB,CAIZ,CAAC,SAAS,QAAUxH,GAAU,KAAK,QAAQ,GAC7C,KAAK,KAAI,CAEb,CACA,MAAO,CACL,KAAK,OAAOyH,EAAU,CACxB,CACA,OAAQ,CACF,KAAK,YACP3H,GAAqB,KAAK,QAAQ,EAEpC,KAAK,eAAc,CACrB,CACA,OAAQ,CACN,KAAK,eAAc,EACnB,KAAK,gBAAe,EACpB,KAAK,UAAY,YAAY,IAAM,KAAK,kBAAmB,KAAK,QAAQ,QAAQ,CAClF,CACA,mBAAoB,CAClB,GAAK,KAAK,QAAQ,KAGlB,IAAI,KAAK,WAAY,CACnBkC,GAAa,IAAI,KAAK,SAAU6F,GAAY,IAAM,KAAK,OAAO,EAC9D,MACF,CACA,KAAK,MAAK,EACZ,CACA,GAAGvpK,EAAO,CACR,MAAMgrK,EAAQ,KAAK,UAAS,EAC5B,GAAIhrK,EAAQgrK,EAAM,OAAS,GAAKhrK,EAAQ,EACtC,OAEF,GAAI,KAAK,WAAY,CACnB0jK,GAAa,IAAI,KAAK,SAAU6F,GAAY,IAAM,KAAK,GAAGvpK,CAAK,CAAC,EAChE,MACF,CACA,MAAMirK,EAAc,KAAK,cAAc,KAAK,WAAU,CAAE,EACxD,GAAIA,IAAgBjrK,EAClB,OAEF,MAAMs6G,EAAQt6G,EAAQirK,EAAc/B,GAAaC,GACjD,KAAK,OAAO7uD,EAAO0wD,EAAMhrK,CAAK,CAAC,CACjC,CACA,SAAU,CACJ,KAAK,cACP,KAAK,aAAa,QAAO,EAE3B,MAAM,QAAO,CACf,CAGA,kBAAkB69C,EAAQ,CACxB,OAAAA,EAAO,gBAAkBA,EAAO,SACzBA,CACT,CACA,oBAAqB,CACf,KAAK,QAAQ,UACf6lH,GAAa,GAAG,KAAK,SAAU8F,GAAiB35I,GAAS,KAAK,SAASA,CAAK,CAAC,EAE3E,KAAK,QAAQ,QAAU,UACzB6zI,GAAa,GAAG,KAAK,SAAU+F,GAAoB,IAAM,KAAK,OAAO,EACrE/F,GAAa,GAAG,KAAK,SAAUgG,GAAoB,IAAM,KAAK,mBAAmB,GAE/E,KAAK,QAAQ,OAASjB,GAAM,YAAW,GACzC,KAAK,wBAAuB,CAEhC,CACA,yBAA0B,CACxB,UAAWyC,KAAO5E,GAAe,KAAKkE,GAAmB,KAAK,QAAQ,EACpE9G,GAAa,GAAGwH,EAAKvB,GAAkB95I,GAASA,EAAM,gBAAgB,EAqBxE,MAAMs7I,EAAc,CAClB,aAAc,IAAM,KAAK,OAAO,KAAK,kBAAkB/B,EAAc,CAAC,EACtE,cAAe,IAAM,KAAK,OAAO,KAAK,kBAAkBC,EAAe,CAAC,EACxE,YAtBkB,IAAM,CACpB,KAAK,QAAQ,QAAU,UAY3B,KAAK,MAAK,EACN,KAAK,cACP,aAAa,KAAK,YAAY,EAEhC,KAAK,aAAe,WAAW,IAAM,KAAK,kBAAiB,EAAIJ,GAAyB,KAAK,QAAQ,QAAQ,EAC/G,CAKJ,EACI,KAAK,aAAe,IAAIR,GAAM,KAAK,SAAU0C,CAAW,CAC1D,CACA,SAASt7I,EAAO,CACd,GAAI,kBAAkB,KAAKA,EAAM,OAAO,OAAO,EAC7C,OAEF,MAAM4pC,EAAYmxG,GAAiB/6I,EAAM,GAAG,EACxC4pC,IACF5pC,EAAM,eAAc,EACpB,KAAK,OAAO,KAAK,kBAAkB4pC,CAAS,CAAC,EAEjD,CACA,cAAcsX,EAAS,CACrB,OAAO,KAAK,YAAY,QAAQA,CAAO,CACzC,CACA,2BAA2B/wE,EAAO,CAChC,GAAI,CAAC,KAAK,mBACR,OAEF,MAAMorK,EAAkB9E,GAAe,QAAQ+D,GAAiB,KAAK,kBAAkB,EACvFe,EAAgB,UAAU,OAAOrB,EAAmB,EACpDqB,EAAgB,gBAAgB,cAAc,EAC9C,MAAMC,EAAqB/E,GAAe,QAAQ,sBAAsBtmK,CAAK,KAAM,KAAK,kBAAkB,EACtGqrK,IACFA,EAAmB,UAAU,IAAItB,EAAmB,EACpDsB,EAAmB,aAAa,eAAgB,MAAM,EAE1D,CACA,iBAAkB,CAChB,MAAMt6F,EAAU,KAAK,gBAAkB,KAAK,WAAU,EACtD,GAAI,CAACA,EACH,OAEF,MAAMu6F,EAAkB,OAAO,SAASv6F,EAAQ,aAAa,kBAAkB,EAAG,EAAE,EACpF,KAAK,QAAQ,SAAWu6F,GAAmB,KAAK,QAAQ,eAC1D,CACA,OAAOhxD,EAAOvpC,EAAU,KAAM,CAC5B,GAAI,KAAK,WACP,OAEF,MAAM6uC,EAAgB,KAAK,WAAU,EAC/B2rD,EAASjxD,IAAU4uD,GACnBsC,EAAcz6F,GAAW4xF,GAAqB,KAAK,YAAa/iD,EAAe2rD,EAAQ,KAAK,QAAQ,IAAI,EAC9G,GAAIC,IAAgB5rD,EAClB,OAEF,MAAM6rD,EAAmB,KAAK,cAAcD,CAAW,EACjDE,EAAeC,GACZjI,GAAa,QAAQ,KAAK,SAAUiI,EAAW,CACpD,cAAeH,EACf,UAAW,KAAK,kBAAkBlxD,CAAK,EACvC,KAAM,KAAK,cAAcsF,CAAa,EACtC,GAAI6rD,CACZ,CAAO,EAMH,GAJmBC,EAAapC,EAAW,EAC5B,kBAGX,CAAC1pD,GAAiB,CAAC4rD,EAGrB,OAEF,MAAMI,EAAY,EAAQ,KAAK,UAC/B,KAAK,MAAK,EACV,KAAK,WAAa,GAClB,KAAK,2BAA2BH,CAAgB,EAChD,KAAK,eAAiBD,EACtB,MAAMK,EAAuBN,EAASrB,GAAmBD,GACnD6B,EAAiBP,EAASpB,GAAkBC,GAClDoB,EAAY,UAAU,IAAIM,CAAc,EACxC/J,GAAOyJ,CAAW,EAClB5rD,EAAc,UAAU,IAAIisD,CAAoB,EAChDL,EAAY,UAAU,IAAIK,CAAoB,EAC9C,MAAME,EAAmB,IAAM,CAC7BP,EAAY,UAAU,OAAOK,EAAsBC,CAAc,EACjEN,EAAY,UAAU,IAAIzB,EAAmB,EAC7CnqD,EAAc,UAAU,OAAOmqD,GAAqB+B,EAAgBD,CAAoB,EACxF,KAAK,WAAa,GAClBH,EAAanC,EAAU,CACzB,EACA,KAAK,eAAewC,EAAkBnsD,EAAe,KAAK,YAAW,CAAE,EACnEgsD,GACF,KAAK,MAAK,CAEd,CACA,aAAc,CACZ,OAAO,KAAK,SAAS,UAAU,SAAS5B,EAAgB,CAC1D,CACA,YAAa,CACX,OAAO1D,GAAe,QAAQiE,GAAsB,KAAK,QAAQ,CACnE,CACA,WAAY,CACV,OAAOjE,GAAe,KAAKgE,GAAe,KAAK,QAAQ,CACzD,CACA,gBAAiB,CACX,KAAK,YACP,cAAc,KAAK,SAAS,EAC5B,KAAK,UAAY,KAErB,CACA,kBAAkB7wG,EAAW,CAC3B,OAAIu1E,GAAK,EACAv1E,IAAc2vG,GAAiBD,GAAaD,GAE9CzvG,IAAc2vG,GAAiBF,GAAaC,EACrD,CACA,kBAAkB7uD,EAAO,CACvB,OAAI00B,GAAK,EACA10B,IAAU6uD,GAAaC,GAAiBC,GAE1C/uD,IAAU6uD,GAAaE,GAAkBD,EAClD,CAGA,OAAO,gBAAgBvrH,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAOwuJ,GAAS,oBAAoB,KAAMltH,CAAM,EACtD,GAAI,OAAOA,GAAW,SAAU,CAC9BthC,EAAK,GAAGshC,CAAM,EACd,MACF,CACA,GAAI,OAAOA,GAAW,SAAU,CAC9B,GAAIthC,EAAKshC,CAAM,IAAM,QAAaA,EAAO,WAAW,GAAG,GAAKA,IAAW,cACrE,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,CACd,CACF,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,SAAUmG,GAAwBa,GAAqB,SAAU76I,EAAO,CACtF,MAAMxyB,EAASipK,GAAe,uBAAuB,IAAI,EACzD,GAAI,CAACjpK,GAAU,CAACA,EAAO,UAAU,SAASysK,EAAmB,EAC3D,OAEFj6I,EAAM,eAAc,EACpB,MAAMm8I,EAAWjB,GAAS,oBAAoB1tK,CAAM,EAC9C4uK,EAAa,KAAK,aAAa,kBAAkB,EACvD,GAAIA,EAAY,CACdD,EAAS,GAAGC,CAAU,EACtBD,EAAS,kBAAiB,EAC1B,MACF,CACA,GAAIxG,GAAY,iBAAiB,KAAM,OAAO,IAAM,OAAQ,CAC1DwG,EAAS,KAAI,EACbA,EAAS,kBAAiB,EAC1B,MACF,CACAA,EAAS,KAAI,EACbA,EAAS,kBAAiB,CAC5B,CAAC,EACDtI,GAAa,GAAG,OAAQkG,GAAuB,IAAM,CACnD,MAAMsC,EAAY5F,GAAe,KAAKqE,EAAkB,EACxD,UAAWqB,KAAYE,EACrBnB,GAAS,oBAAoBiB,CAAQ,CAEzC,CAAC,EAMD7J,GAAmB4I,EAAQ,EAc3B,MAAMoB,GAAS,WACTC,GAAa,cACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAe,OAAOF,EAAW,GACjCG,GAAgB,QAAQH,EAAW,GACnCI,GAAe,OAAOJ,EAAW,GACjCK,GAAiB,SAASL,EAAW,GACrCM,GAAyB,QAAQN,EAAW,GAAGC,EAAc,GAC7DM,GAAoB,OACpBC,GAAsB,WACtBC,GAAwB,aACxBC,GAAuB,YACvBC,GAA6B,WAAWH,EAAmB,KAAKA,EAAmB,GACnFI,GAAwB,sBACxBC,GAAQ,QACRC,GAAS,SACTC,GAAmB,uCACnBC,GAAyB,8BACzBC,GAAY,CAChB,OAAQ,KACR,OAAQ,EACV,EACMC,GAAgB,CACpB,OAAQ,iBACR,OAAQ,SACV,EAMA,MAAMC,WAAiBvH,EAAc,CACnC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,iBAAmB,GACxB,KAAK,cAAgB,GACrB,MAAM4vH,EAAanH,GAAe,KAAK+G,EAAsB,EAC7D,UAAWjgD,KAAQqgD,EAAY,CAC7B,MAAM/3I,EAAW4wI,GAAe,uBAAuBl5C,CAAI,EACrDsgD,EAAgBpH,GAAe,KAAK5wI,CAAQ,EAAE,OAAOi4I,GAAgBA,IAAiB,KAAK,QAAQ,EACrGj4I,IAAa,MAAQg4I,EAAc,QACrC,KAAK,cAAc,KAAKtgD,CAAI,CAEhC,CACA,KAAK,oBAAmB,EACnB,KAAK,QAAQ,QAChB,KAAK,0BAA0B,KAAK,cAAe,KAAK,SAAQ,CAAE,EAEhE,KAAK,QAAQ,QACf,KAAK,OAAM,CAEf,CAGA,WAAW,SAAU,CACnB,OAAOkgD,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOpB,EACT,CAGA,QAAS,CACH,KAAK,WACP,KAAK,KAAI,EAET,KAAK,KAAI,CAEb,CACA,MAAO,CACL,GAAI,KAAK,kBAAoB,KAAK,SAAQ,EACxC,OAEF,IAAIyB,EAAiB,GAYrB,GATI,KAAK,QAAQ,SACfA,EAAiB,KAAK,uBAAuBR,EAAgB,EAAE,OAAOr8F,GAAWA,IAAY,KAAK,QAAQ,EAAE,IAAIA,GAAWy8F,GAAS,oBAAoBz8F,EAAS,CAC/J,OAAQ,EAChB,CAAO,CAAC,GAEA68F,EAAe,QAAUA,EAAe,CAAC,EAAE,kBAG5BlK,GAAa,QAAQ,KAAK,SAAU6I,EAAY,EACpD,iBACb,OAEF,UAAWsB,KAAkBD,EAC3BC,EAAe,KAAI,EAErB,MAAMC,EAAY,KAAK,cAAa,EACpC,KAAK,SAAS,UAAU,OAAOjB,EAAmB,EAClD,KAAK,SAAS,UAAU,IAAIC,EAAqB,EACjD,KAAK,SAAS,MAAMgB,CAAS,EAAI,EACjC,KAAK,0BAA0B,KAAK,cAAe,EAAI,EACvD,KAAK,iBAAmB,GACxB,MAAMC,EAAW,IAAM,CACrB,KAAK,iBAAmB,GACxB,KAAK,SAAS,UAAU,OAAOjB,EAAqB,EACpD,KAAK,SAAS,UAAU,IAAID,GAAqBD,EAAiB,EAClE,KAAK,SAAS,MAAMkB,CAAS,EAAI,GACjCpK,GAAa,QAAQ,KAAK,SAAU8I,EAAa,CACnD,EAEMwB,EAAa,SADUF,EAAU,CAAC,EAAE,YAAW,EAAKA,EAAU,MAAM,CAAC,CAC3B,GAChD,KAAK,eAAeC,EAAU,KAAK,SAAU,EAAI,EACjD,KAAK,SAAS,MAAMD,CAAS,EAAI,GAAG,KAAK,SAASE,CAAU,CAAC,IAC/D,CACA,MAAO,CAKL,GAJI,KAAK,kBAAoB,CAAC,KAAK,SAAQ,GAGxBtK,GAAa,QAAQ,KAAK,SAAU+I,EAAY,EACpD,iBACb,OAEF,MAAMqB,EAAY,KAAK,cAAa,EACpC,KAAK,SAAS,MAAMA,CAAS,EAAI,GAAG,KAAK,SAAS,sBAAqB,EAAGA,CAAS,CAAC,KACpF/L,GAAO,KAAK,QAAQ,EACpB,KAAK,SAAS,UAAU,IAAI+K,EAAqB,EACjD,KAAK,SAAS,UAAU,OAAOD,GAAqBD,EAAiB,EACrE,UAAWpvK,KAAW,KAAK,cAAe,CACxC,MAAMuzE,EAAUu1F,GAAe,uBAAuB9oK,CAAO,EACzDuzE,GAAW,CAAC,KAAK,SAASA,CAAO,GACnC,KAAK,0BAA0B,CAACvzE,CAAO,EAAG,EAAK,CAEnD,CACA,KAAK,iBAAmB,GACxB,MAAMuwK,EAAW,IAAM,CACrB,KAAK,iBAAmB,GACxB,KAAK,SAAS,UAAU,OAAOjB,EAAqB,EACpD,KAAK,SAAS,UAAU,IAAID,EAAmB,EAC/CnJ,GAAa,QAAQ,KAAK,SAAUgJ,EAAc,CACpD,EACA,KAAK,SAAS,MAAMoB,CAAS,EAAI,GACjC,KAAK,eAAeC,EAAU,KAAK,SAAU,EAAI,CACnD,CAGA,SAASh9F,EAAU,KAAK,SAAU,CAChC,OAAOA,EAAQ,UAAU,SAAS67F,EAAiB,CACrD,CACA,kBAAkB/uH,EAAQ,CACxB,OAAAA,EAAO,OAAS,EAAQA,EAAO,OAC/BA,EAAO,OAAS4jH,GAAW5jH,EAAO,MAAM,EACjCA,CACT,CACA,eAAgB,CACd,OAAO,KAAK,SAAS,UAAU,SAASovH,EAAqB,EAAIC,GAAQC,EAC3E,CACA,qBAAsB,CACpB,GAAI,CAAC,KAAK,QAAQ,OAChB,OAEF,MAAM/+J,EAAW,KAAK,uBAAuBi/J,EAAsB,EACnE,UAAWt8F,KAAW3iE,EAAU,CAC9B,MAAM61H,EAAWqiC,GAAe,uBAAuBv1F,CAAO,EAC1DkzD,GACF,KAAK,0BAA0B,CAAClzD,CAAO,EAAG,KAAK,SAASkzD,CAAQ,CAAC,CAErE,CACF,CACA,uBAAuBvuG,EAAU,CAC/B,MAAMtnB,EAAWk4J,GAAe,KAAK0G,GAA4B,KAAK,QAAQ,MAAM,EAEpF,OAAO1G,GAAe,KAAK5wI,EAAU,KAAK,QAAQ,MAAM,EAAE,OAAOq7C,GAAW,CAAC3iE,EAAS,SAAS2iE,CAAO,CAAC,CACzG,CACA,0BAA0Bk9F,EAAcC,EAAQ,CAC9C,GAAKD,EAAa,OAGlB,UAAWl9F,KAAWk9F,EACpBl9F,EAAQ,UAAU,OAAOg8F,GAAsB,CAACmB,CAAM,EACtDn9F,EAAQ,aAAa,gBAAiBm9F,CAAM,CAEhD,CAGA,OAAO,gBAAgBrwH,EAAQ,CAC7B,MAAMszB,EAAU,GAChB,OAAI,OAAOtzB,GAAW,UAAY,YAAY,KAAKA,CAAM,IACvDszB,EAAQ,OAAS,IAEZ,KAAK,KAAK,UAAY,CAC3B,MAAM50D,EAAOixJ,GAAS,oBAAoB,KAAMr8F,CAAO,EACvD,GAAI,OAAOtzB,GAAW,SAAU,CAC9B,GAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,CACd,CACF,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,SAAUiJ,GAAwBU,GAAwB,SAAUx9I,EAAO,EAErFA,EAAM,OAAO,UAAY,KAAOA,EAAM,gBAAkBA,EAAM,eAAe,UAAY,MAC3FA,EAAM,eAAc,EAEtB,UAAWkhD,KAAWu1F,GAAe,gCAAgC,IAAI,EACvEkH,GAAS,oBAAoBz8F,EAAS,CACpC,OAAQ,EACd,CAAK,EAAE,OAAM,CAEb,CAAC,EAMDoxF,GAAmBqL,EAAQ,EAc3B,MAAMW,GAAS,WACTC,GAAa,cACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAe,SACfC,GAAY,MACZC,GAAiB,UACjBC,GAAmB,YACnBC,GAAqB,EAErBC,GAAe,OAAOP,EAAW,GACjCQ,GAAiB,SAASR,EAAW,GACrCS,GAAe,OAAOT,EAAW,GACjCU,GAAgB,QAAQV,EAAW,GACnCW,GAAyB,QAAQX,EAAW,GAAGC,EAAc,GAC7DW,GAAyB,UAAUZ,EAAW,GAAGC,EAAc,GAC/DY,GAAuB,QAAQb,EAAW,GAAGC,EAAc,GAC3Da,GAAoB,OACpBC,GAAoB,SACpBC,GAAqB,UACrBC,GAAuB,YACvBC,GAA2B,gBAC3BC,GAA6B,kBAC7BC,GAAyB,4DACzBC,GAA6B,GAAGD,EAAsB,IAAIN,EAAiB,GAC3EQ,GAAgB,iBAChBC,GAAkB,UAClBC,GAAsB,cACtBC,GAAyB,8DACzBC,GAAgB/gC,KAAU,UAAY,YACtCghC,GAAmBhhC,KAAU,YAAc,UAC3CihC,GAAmBjhC,KAAU,aAAe,eAC5CkhC,GAAsBlhC,KAAU,eAAiB,aACjDmhC,GAAkBnhC,KAAU,aAAe,cAC3CohC,GAAiBphC,KAAU,cAAgB,aAC3CqhC,GAAsB,MACtBC,GAAyB,SACzBC,GAAY,CAChB,UAAW,GACX,SAAU,kBACV,QAAS,UACT,OAAQ,CAAC,EAAG,CAAC,EACb,aAAc,KACd,UAAW,QACb,EACMC,GAAgB,CACpB,UAAW,mBACX,SAAU,mBACV,QAAS,SACT,OAAQ,0BACR,aAAc,yBACd,UAAW,yBACb,EAMA,MAAMC,WAAiBxK,EAAc,CACnC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,QAAU,KACf,KAAK,QAAU,KAAK,SAAS,WAE7B,KAAK,MAAQyoH,GAAe,KAAK,KAAK,SAAUqJ,EAAa,EAAE,CAAC,GAAKrJ,GAAe,KAAK,KAAK,SAAUqJ,EAAa,EAAE,CAAC,GAAKrJ,GAAe,QAAQqJ,GAAe,KAAK,OAAO,EAC/K,KAAK,UAAY,KAAK,cAAa,CACrC,CAGA,WAAW,SAAU,CACnB,OAAOY,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOrC,EACT,CAGA,QAAS,CACP,OAAO,KAAK,WAAa,KAAK,KAAI,EAAK,KAAK,KAAI,CAClD,CACA,MAAO,CACL,GAAIz9J,GAAW,KAAK,QAAQ,GAAK,KAAK,SAAQ,EAC5C,OAEF,MAAMggK,EAAgB,CACpB,cAAe,KAAK,QAC1B,EAEI,GAAI,CADchN,GAAa,QAAQ,KAAK,SAAUoL,GAAc4B,CAAa,EACnE,iBASd,IANA,KAAK,cAAa,EAMd,iBAAkB,SAAS,iBAAmB,CAAC,KAAK,QAAQ,QAAQb,EAAmB,EACzF,UAAW9+F,IAAW,GAAG,OAAO,GAAG,SAAS,KAAK,QAAQ,EACvD2yF,GAAa,GAAG3yF,EAAS,YAAa3vC,EAAI,EAG9C,KAAK,SAAS,MAAK,EACnB,KAAK,SAAS,aAAa,gBAAiB,EAAI,EAChD,KAAK,MAAM,UAAU,IAAI+tI,EAAiB,EAC1C,KAAK,SAAS,UAAU,IAAIA,EAAiB,EAC7CzL,GAAa,QAAQ,KAAK,SAAUqL,GAAe2B,CAAa,EAClE,CACA,MAAO,CACL,GAAIhgK,GAAW,KAAK,QAAQ,GAAK,CAAC,KAAK,WACrC,OAEF,MAAMggK,EAAgB,CACpB,cAAe,KAAK,QAC1B,EACI,KAAK,cAAcA,CAAa,CAClC,CACA,SAAU,CACJ,KAAK,SACP,KAAK,QAAQ,QAAO,EAEtB,MAAM,QAAO,CACf,CACA,QAAS,CACP,KAAK,UAAY,KAAK,cAAa,EAC/B,KAAK,SACP,KAAK,QAAQ,OAAM,CAEvB,CAGA,cAAcA,EAAe,CAE3B,GAAI,CADchN,GAAa,QAAQ,KAAK,SAAUkL,GAAc8B,CAAa,EACnE,iBAMd,IAAI,iBAAkB,SAAS,gBAC7B,UAAW3/F,IAAW,GAAG,OAAO,GAAG,SAAS,KAAK,QAAQ,EACvD2yF,GAAa,IAAI3yF,EAAS,YAAa3vC,EAAI,EAG3C,KAAK,SACP,KAAK,QAAQ,QAAO,EAEtB,KAAK,MAAM,UAAU,OAAO+tI,EAAiB,EAC7C,KAAK,SAAS,UAAU,OAAOA,EAAiB,EAChD,KAAK,SAAS,aAAa,gBAAiB,OAAO,EACnD3J,GAAY,oBAAoB,KAAK,MAAO,QAAQ,EACpD9B,GAAa,QAAQ,KAAK,SAAUmL,GAAgB6B,CAAa,EACnE,CACA,WAAW7yH,EAAQ,CAEjB,GADAA,EAAS,MAAM,WAAWA,CAAM,EAC5B,OAAOA,EAAO,WAAc,UAAY,CAAC+rD,GAAU/rD,EAAO,SAAS,GAAK,OAAOA,EAAO,UAAU,uBAA0B,WAE5H,MAAM,IAAI,UAAU,GAAGswH,GAAO,YAAW,CAAE,gGAAgG,EAE7I,OAAOtwH,CACT,CACA,eAAgB,CACd,GAAI,OAAO8yH,GAAW,IACpB,MAAM,IAAI,UAAU,uEAAwE,EAE9F,IAAIx+B,EAAmB,KAAK,SACxB,KAAK,QAAQ,YAAc,SAC7BA,EAAmB,KAAK,QACfvoC,GAAU,KAAK,QAAQ,SAAS,EACzCuoC,EAAmBsvB,GAAW,KAAK,QAAQ,SAAS,EAC3C,OAAO,KAAK,QAAQ,WAAc,WAC3CtvB,EAAmB,KAAK,QAAQ,WAElC,MAAMy+B,EAAe,KAAK,iBAAgB,EAC1C,KAAK,QAAUC,GAAoB1+B,EAAkB,KAAK,MAAOy+B,CAAY,CAC/E,CACA,UAAW,CACT,OAAO,KAAK,MAAM,UAAU,SAASzB,EAAiB,CACxD,CACA,eAAgB,CACd,MAAM2B,EAAiB,KAAK,QAC5B,GAAIA,EAAe,UAAU,SAASzB,EAAkB,EACtD,OAAOc,GAET,GAAIW,EAAe,UAAU,SAASxB,EAAoB,EACxD,OAAOc,GAET,GAAIU,EAAe,UAAU,SAASvB,EAAwB,EAC5D,OAAOc,GAET,GAAIS,EAAe,UAAU,SAAStB,EAA0B,EAC9D,OAAOc,GAIT,MAAMS,EAAQ,iBAAiB,KAAK,KAAK,EAAE,iBAAiB,eAAe,EAAE,KAAI,IAAO,MACxF,OAAID,EAAe,UAAU,SAAS1B,EAAiB,EAC9C2B,EAAQf,GAAmBD,GAE7BgB,EAAQb,GAAsBD,EACvC,CACA,eAAgB,CACd,OAAO,KAAK,SAAS,QAAQL,EAAe,IAAM,IACpD,CACA,YAAa,CACX,KAAM,CACJ,OAAA1qI,CACN,EAAQ,KAAK,QACT,OAAI,OAAOA,GAAW,SACbA,EAAO,MAAM,GAAG,EAAE,IAAIhwC,GAAS,OAAO,SAASA,EAAO,EAAE,CAAC,EAE9D,OAAOgwC,GAAW,WACb8rI,GAAc9rI,EAAO8rI,EAAY,KAAK,QAAQ,EAEhD9rI,CACT,CACA,kBAAmB,CACjB,MAAM+rI,EAAwB,CAC5B,UAAW,KAAK,cAAa,EAC7B,UAAW,CAAC,CACV,KAAM,kBACN,QAAS,CACP,SAAU,KAAK,QAAQ,QACjC,CACA,EAAS,CACD,KAAM,SACN,QAAS,CACP,OAAQ,KAAK,WAAU,CACjC,CACA,CAAO,CACP,EAGI,OAAI,KAAK,WAAa,KAAK,QAAQ,UAAY,YAC7CzL,GAAY,iBAAiB,KAAK,MAAO,SAAU,QAAQ,EAC3DyL,EAAsB,UAAY,CAAC,CACjC,KAAM,cACN,QAAS,EACjB,CAAO,GAEI,CACL,GAAGA,EACH,GAAG5O,GAAQ,KAAK,QAAQ,aAAc,CAAC,OAAW4O,CAAqB,CAAC,CAC9E,CACE,CACA,gBAAgB,CACd,IAAA19K,EACA,OAAA8J,CACJ,EAAK,CACD,MAAM2tK,EAAQ1E,GAAe,KAAKwJ,GAAwB,KAAK,KAAK,EAAE,OAAO/+F,GAAW2wF,GAAU3wF,CAAO,CAAC,EACrGi6F,EAAM,QAMXrI,GAAqBqI,EAAO3tK,EAAQ9J,IAAQm7K,GAAkB,CAAC1D,EAAM,SAAS3tK,CAAM,CAAC,EAAE,MAAK,CAC9F,CAGA,OAAO,gBAAgBwgD,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAOk0J,GAAS,oBAAoB,KAAM5yH,CAAM,EACtD,GAAI,OAAOA,GAAW,SAGtB,IAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,EACd,CAAC,CACH,CACA,OAAO,WAAWhuB,EAAO,CACvB,GAAIA,EAAM,SAAW8+I,IAAsB9+I,EAAM,OAAS,SAAWA,EAAM,MAAQ2+I,GACjF,OAEF,MAAM0C,EAAc5K,GAAe,KAAKoJ,EAA0B,EAClE,UAAWyB,KAAUD,EAAa,CAChC,MAAM9uJ,EAAUquJ,GAAS,YAAYU,CAAM,EAC3C,GAAI,CAAC/uJ,GAAWA,EAAQ,QAAQ,YAAc,GAC5C,SAEF,MAAMgvJ,EAAevhJ,EAAM,aAAY,EACjCwhJ,EAAeD,EAAa,SAAShvJ,EAAQ,KAAK,EAMxD,GALIgvJ,EAAa,SAAShvJ,EAAQ,QAAQ,GAAKA,EAAQ,QAAQ,YAAc,UAAY,CAACivJ,GAAgBjvJ,EAAQ,QAAQ,YAAc,WAAaivJ,GAKjJjvJ,EAAQ,MAAM,SAASyN,EAAM,MAAM,IAAMA,EAAM,OAAS,SAAWA,EAAM,MAAQ2+I,IAAa,qCAAqC,KAAK3+I,EAAM,OAAO,OAAO,GAC9J,SAEF,MAAM6gJ,EAAgB,CACpB,cAAetuJ,EAAQ,QAC/B,EACUyN,EAAM,OAAS,UACjB6gJ,EAAc,WAAa7gJ,GAE7BzN,EAAQ,cAAcsuJ,CAAa,CACrC,CACF,CACA,OAAO,sBAAsB7gJ,EAAO,CAIlC,MAAMyhJ,EAAU,kBAAkB,KAAKzhJ,EAAM,OAAO,OAAO,EACrD0hJ,EAAgB1hJ,EAAM,MAAQ0+I,GAC9BiD,EAAkB,CAAC/C,GAAgBC,EAAgB,EAAE,SAAS7+I,EAAM,GAAG,EAI7E,GAHI,CAAC2hJ,GAAmB,CAACD,GAGrBD,GAAW,CAACC,EACd,OAEF1hJ,EAAM,eAAc,EAGpB,MAAM4hJ,EAAkB,KAAK,QAAQhC,EAAsB,EAAI,KAAOnJ,GAAe,KAAK,KAAMmJ,EAAsB,EAAE,CAAC,GAAKnJ,GAAe,KAAK,KAAMmJ,EAAsB,EAAE,CAAC,GAAKnJ,GAAe,QAAQmJ,GAAwB5/I,EAAM,eAAe,UAAU,EAC9PrnB,EAAWioK,GAAS,oBAAoBgB,CAAe,EAC7D,GAAID,EAAiB,CACnB3hJ,EAAM,gBAAe,EACrBrnB,EAAS,KAAI,EACbA,EAAS,gBAAgBqnB,CAAK,EAC9B,MACF,CACIrnB,EAAS,aAEXqnB,EAAM,gBAAe,EACrBrnB,EAAS,KAAI,EACbipK,EAAgB,MAAK,EAEzB,CACF,CAMA/N,GAAa,GAAG,SAAUuL,GAAwBQ,GAAwBgB,GAAS,qBAAqB,EACxG/M,GAAa,GAAG,SAAUuL,GAAwBU,GAAec,GAAS,qBAAqB,EAC/F/M,GAAa,GAAG,SAAUsL,GAAwByB,GAAS,UAAU,EACrE/M,GAAa,GAAG,SAAUwL,GAAsBuB,GAAS,UAAU,EACnE/M,GAAa,GAAG,SAAUsL,GAAwBS,GAAwB,SAAU5/I,EAAO,CACzFA,EAAM,eAAc,EACpB4gJ,GAAS,oBAAoB,IAAI,EAAE,OAAM,CAC3C,CAAC,EAMDtO,GAAmBsO,EAAQ,EAc3B,MAAMiB,GAAS,WACTC,GAAoB,OACpBC,GAAoB,OACpBC,GAAkB,gBAAgBH,EAAM,GACxCI,GAAY,CAChB,UAAW,iBACX,cAAe,KACf,WAAY,GACZ,UAAW,GAEX,YAAa,MACf,EACMC,GAAgB,CACpB,UAAW,SACX,cAAe,kBACf,WAAY,UACZ,UAAW,UACX,YAAa,kBACf,EAMA,MAAMC,WAAiBrM,EAAO,CAC5B,YAAY9nH,EAAQ,CAClB,MAAK,EACL,KAAK,QAAU,KAAK,WAAWA,CAAM,EACrC,KAAK,YAAc,GACnB,KAAK,SAAW,IAClB,CAGA,WAAW,SAAU,CACnB,OAAOi0H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOL,EACT,CAGA,KAAK/uK,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,UAAW,CAC3B0/J,GAAQ1/J,CAAQ,EAChB,MACF,CACA,KAAK,QAAO,EACZ,MAAMouE,EAAU,KAAK,YAAW,EAC5B,KAAK,QAAQ,YACfgxF,GAAOhxF,CAAO,EAEhBA,EAAQ,UAAU,IAAI6gG,EAAiB,EACvC,KAAK,kBAAkB,IAAM,CAC3BvP,GAAQ1/J,CAAQ,CAClB,CAAC,CACH,CACA,KAAKA,EAAU,CACb,GAAI,CAAC,KAAK,QAAQ,UAAW,CAC3B0/J,GAAQ1/J,CAAQ,EAChB,MACF,CACA,KAAK,YAAW,EAAG,UAAU,OAAOivK,EAAiB,EACrD,KAAK,kBAAkB,IAAM,CAC3B,KAAK,QAAO,EACZvP,GAAQ1/J,CAAQ,CAClB,CAAC,CACH,CACA,SAAU,CACH,KAAK,cAGV+gK,GAAa,IAAI,KAAK,SAAUmO,EAAe,EAC/C,KAAK,SAAS,OAAM,EACpB,KAAK,YAAc,GACrB,CAGA,aAAc,CACZ,GAAI,CAAC,KAAK,SAAU,CAClB,MAAM7oD,EAAW,SAAS,cAAc,KAAK,EAC7CA,EAAS,UAAY,KAAK,QAAQ,UAC9B,KAAK,QAAQ,YACfA,EAAS,UAAU,IAAI2oD,EAAiB,EAE1C,KAAK,SAAW3oD,CAClB,CACA,OAAO,KAAK,QACd,CACA,kBAAkBnrE,EAAQ,CAExB,OAAAA,EAAO,YAAc4jH,GAAW5jH,EAAO,WAAW,EAC3CA,CACT,CACA,SAAU,CACR,GAAI,KAAK,YACP,OAEF,MAAMkzB,EAAU,KAAK,YAAW,EAChC,KAAK,QAAQ,YAAY,OAAOA,CAAO,EACvC2yF,GAAa,GAAG3yF,EAAS8gG,GAAiB,IAAM,CAC9CxP,GAAQ,KAAK,QAAQ,aAAa,CACpC,CAAC,EACD,KAAK,YAAc,EACrB,CACA,kBAAkB1/J,EAAU,CAC1B4/J,GAAuB5/J,EAAU,KAAK,YAAW,EAAI,KAAK,QAAQ,UAAU,CAC9E,CACF,CAcA,MAAMsvK,GAAS,YACTC,GAAa,eACbC,GAAc,IAAID,EAAU,GAC5BE,GAAkB,UAAUD,EAAW,GACvCE,GAAoB,cAAcF,EAAW,GAC7CG,GAAU,MACVC,GAAkB,UAClBC,GAAmB,WACnBC,GAAY,CAChB,UAAW,GACX,YAAa,IACf,EACMC,GAAgB,CACpB,UAAW,UACX,YAAa,SACf,EAMA,MAAMC,WAAkBhN,EAAO,CAC7B,YAAY9nH,EAAQ,CAClB,MAAK,EACL,KAAK,QAAU,KAAK,WAAWA,CAAM,EACrC,KAAK,UAAY,GACjB,KAAK,qBAAuB,IAC9B,CAGA,WAAW,SAAU,CACnB,OAAO40H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOT,EACT,CAGA,UAAW,CACL,KAAK,YAGL,KAAK,QAAQ,WACf,KAAK,QAAQ,YAAY,MAAK,EAEhCvO,GAAa,IAAI,SAAUyO,EAAW,EACtCzO,GAAa,GAAG,SAAU0O,GAAiBviJ,GAAS,KAAK,eAAeA,CAAK,CAAC,EAC9E6zI,GAAa,GAAG,SAAU2O,GAAmBxiJ,GAAS,KAAK,eAAeA,CAAK,CAAC,EAChF,KAAK,UAAY,GACnB,CACA,YAAa,CACN,KAAK,YAGV,KAAK,UAAY,GACjB6zI,GAAa,IAAI,SAAUyO,EAAW,EACxC,CAGA,eAAetiJ,EAAO,CACpB,KAAM,CACJ,YAAA+iJ,CACN,EAAQ,KAAK,QACT,GAAI/iJ,EAAM,SAAW,UAAYA,EAAM,SAAW+iJ,GAAeA,EAAY,SAAS/iJ,EAAM,MAAM,EAChG,OAEF,MAAM03F,EAAW++C,GAAe,kBAAkBsM,CAAW,EACzDrrD,EAAS,SAAW,EACtBqrD,EAAY,MAAK,EACR,KAAK,uBAAyBJ,GACvCjrD,EAASA,EAAS,OAAS,CAAC,EAAE,MAAK,EAEnCA,EAAS,CAAC,EAAE,MAAK,CAErB,CACA,eAAe13F,EAAO,CAChBA,EAAM,MAAQyiJ,KAGlB,KAAK,qBAAuBziJ,EAAM,SAAW2iJ,GAAmBD,GAClE,CACF,CAcA,MAAMM,GAAyB,oDACzBC,GAA0B,cAC1BC,GAAmB,gBACnBC,GAAkB,eAMxB,MAAMC,EAAgB,CACpB,aAAc,CACZ,KAAK,SAAW,SAAS,IAC3B,CAGA,UAAW,CAET,MAAMC,EAAgB,SAAS,gBAAgB,YAC/C,OAAO,KAAK,IAAI,OAAO,WAAaA,CAAa,CACnD,CACA,MAAO,CACL,MAAMjgG,EAAQ,KAAK,SAAQ,EAC3B,KAAK,iBAAgB,EAErB,KAAK,sBAAsB,KAAK,SAAU8/F,GAAkBI,GAAmBA,EAAkBlgG,CAAK,EAEtG,KAAK,sBAAsB4/F,GAAwBE,GAAkBI,GAAmBA,EAAkBlgG,CAAK,EAC/G,KAAK,sBAAsB6/F,GAAyBE,GAAiBG,GAAmBA,EAAkBlgG,CAAK,CACjH,CACA,OAAQ,CACN,KAAK,wBAAwB,KAAK,SAAU,UAAU,EACtD,KAAK,wBAAwB,KAAK,SAAU8/F,EAAgB,EAC5D,KAAK,wBAAwBF,GAAwBE,EAAgB,EACrE,KAAK,wBAAwBD,GAAyBE,EAAe,CACvE,CACA,eAAgB,CACd,OAAO,KAAK,SAAQ,EAAK,CAC3B,CAGA,kBAAmB,CACjB,KAAK,sBAAsB,KAAK,SAAU,UAAU,EACpD,KAAK,SAAS,MAAM,SAAW,QACjC,CACA,sBAAsBt9I,EAAU09I,EAAezwK,EAAU,CACvD,MAAM0wK,EAAiB,KAAK,SAAQ,EAC9BC,EAAuBviG,GAAW,CACtC,GAAIA,IAAY,KAAK,UAAY,OAAO,WAAaA,EAAQ,YAAcsiG,EACzE,OAEF,KAAK,sBAAsBtiG,EAASqiG,CAAa,EACjD,MAAMD,EAAkB,OAAO,iBAAiBpiG,CAAO,EAAE,iBAAiBqiG,CAAa,EACvFriG,EAAQ,MAAM,YAAYqiG,EAAe,GAAGzwK,EAAS,OAAO,WAAWwwK,CAAe,CAAC,CAAC,IAAI,CAC9F,EACA,KAAK,2BAA2Bz9I,EAAU49I,CAAoB,CAChE,CACA,sBAAsBviG,EAASqiG,EAAe,CAC5C,MAAMG,EAAcxiG,EAAQ,MAAM,iBAAiBqiG,CAAa,EAC5DG,GACF/N,GAAY,iBAAiBz0F,EAASqiG,EAAeG,CAAW,CAEpE,CACA,wBAAwB79I,EAAU09I,EAAe,CAC/C,MAAME,EAAuBviG,GAAW,CACtC,MAAM77E,EAAQswK,GAAY,iBAAiBz0F,EAASqiG,CAAa,EAEjE,GAAIl+K,IAAU,KAAM,CAClB67E,EAAQ,MAAM,eAAeqiG,CAAa,EAC1C,MACF,CACA5N,GAAY,oBAAoBz0F,EAASqiG,CAAa,EACtDriG,EAAQ,MAAM,YAAYqiG,EAAel+K,CAAK,CAChD,EACA,KAAK,2BAA2BwgC,EAAU49I,CAAoB,CAChE,CACA,2BAA2B59I,EAAU89I,EAAU,CAC7C,GAAI5pE,GAAUl0E,CAAQ,EAAG,CACvB89I,EAAS99I,CAAQ,EACjB,MACF,CACA,UAAW2wI,KAAOC,GAAe,KAAK5wI,EAAU,KAAK,QAAQ,EAC3D89I,EAASnN,CAAG,CAEhB,CACF,CAcA,MAAMoN,GAAS,QACTC,GAAa,WACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAe,SACfC,GAAe,OAAOH,EAAW,GACjCI,GAAyB,gBAAgBJ,EAAW,GACpDK,GAAiB,SAASL,EAAW,GACrCM,GAAe,OAAON,EAAW,GACjCO,GAAgB,QAAQP,EAAW,GACnCQ,GAAiB,SAASR,EAAW,GACrCS,GAAsB,gBAAgBT,EAAW,GACjDU,GAA0B,oBAAoBV,EAAW,GACzDW,GAA0B,kBAAkBX,EAAW,GACvDY,GAAyB,QAAQZ,EAAW,GAAGC,EAAc,GAC7DY,GAAkB,aAClBC,GAAoB,OACpBC,GAAoB,OACpBC,GAAoB,eACpBC,GAAkB,cAClBC,GAAkB,gBAClBC,GAAsB,cACtBC,GAAyB,2BACzBC,GAAY,CAChB,SAAU,GACV,MAAO,GACP,SAAU,EACZ,EACMC,GAAgB,CACpB,SAAU,mBACV,MAAO,UACP,SAAU,SACZ,EAMA,MAAMC,WAAcjP,EAAc,CAChC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,QAAUyoH,GAAe,QAAQuO,GAAiB,KAAK,QAAQ,EACpE,KAAK,UAAY,KAAK,oBAAmB,EACzC,KAAK,WAAa,KAAK,qBAAoB,EAC3C,KAAK,SAAW,GAChB,KAAK,iBAAmB,GACxB,KAAK,WAAa,IAAI5B,GACtB,KAAK,mBAAkB,CACzB,CAGA,WAAW,SAAU,CACnB,OAAO+B,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOxB,EACT,CAGA,OAAO/C,EAAe,CACpB,OAAO,KAAK,SAAW,KAAK,KAAI,EAAK,KAAK,KAAKA,CAAa,CAC9D,CACA,KAAKA,EAAe,CACd,KAAK,UAAY,KAAK,kBAGRhN,GAAa,QAAQ,KAAK,SAAUuQ,GAAc,CAClE,cAAAvD,CACN,CAAK,EACa,mBAGd,KAAK,SAAW,GAChB,KAAK,iBAAmB,GACxB,KAAK,WAAW,KAAI,EACpB,SAAS,KAAK,UAAU,IAAI8D,EAAe,EAC3C,KAAK,cAAa,EAClB,KAAK,UAAU,KAAK,IAAM,KAAK,aAAa9D,CAAa,CAAC,EAC5D,CACA,MAAO,CACD,CAAC,KAAK,UAAY,KAAK,kBAGThN,GAAa,QAAQ,KAAK,SAAUoQ,EAAY,EACpD,mBAGd,KAAK,SAAW,GAChB,KAAK,iBAAmB,GACxB,KAAK,WAAW,WAAU,EAC1B,KAAK,SAAS,UAAU,OAAOY,EAAiB,EAChD,KAAK,eAAe,IAAM,KAAK,WAAU,EAAI,KAAK,SAAU,KAAK,aAAa,EAChF,CACA,SAAU,CACRhR,GAAa,IAAI,OAAQiQ,EAAW,EACpCjQ,GAAa,IAAI,KAAK,QAASiQ,EAAW,EAC1C,KAAK,UAAU,QAAO,EACtB,KAAK,WAAW,WAAU,EAC1B,MAAM,QAAO,CACf,CACA,cAAe,CACb,KAAK,cAAa,CACpB,CAGA,qBAAsB,CACpB,OAAO,IAAI3B,GAAS,CAClB,UAAW,EAAQ,KAAK,QAAQ,SAEhC,WAAY,KAAK,YAAW,CAClC,CAAK,CACH,CACA,sBAAuB,CACrB,OAAO,IAAIW,GAAU,CACnB,YAAa,KAAK,QACxB,CAAK,CACH,CACA,aAAajC,EAAe,CAErB,SAAS,KAAK,SAAS,KAAK,QAAQ,GACvC,SAAS,KAAK,OAAO,KAAK,QAAQ,EAEpC,KAAK,SAAS,MAAM,QAAU,QAC9B,KAAK,SAAS,gBAAgB,aAAa,EAC3C,KAAK,SAAS,aAAa,aAAc,EAAI,EAC7C,KAAK,SAAS,aAAa,OAAQ,QAAQ,EAC3C,KAAK,SAAS,UAAY,EAC1B,MAAMyE,EAAY7O,GAAe,QAAQwO,GAAqB,KAAK,OAAO,EACtEK,IACFA,EAAU,UAAY,GAExBpT,GAAO,KAAK,QAAQ,EACpB,KAAK,SAAS,UAAU,IAAI2S,EAAiB,EAC7C,MAAMU,EAAqB,IAAM,CAC3B,KAAK,QAAQ,OACf,KAAK,WAAW,SAAQ,EAE1B,KAAK,iBAAmB,GACxB1R,GAAa,QAAQ,KAAK,SAAUwQ,GAAe,CACjD,cAAAxD,CACR,CAAO,CACH,EACA,KAAK,eAAe0E,EAAoB,KAAK,QAAS,KAAK,aAAa,CAC1E,CACA,oBAAqB,CACnB1R,GAAa,GAAG,KAAK,SAAU4Q,GAAyBzkJ,GAAS,CAC/D,GAAIA,EAAM,MAAQgkJ,GAGlB,IAAI,KAAK,QAAQ,SAAU,CACzB,KAAK,KAAI,EACT,MACF,CACA,KAAK,2BAA0B,EACjC,CAAC,EACDnQ,GAAa,GAAG,OAAQyQ,GAAgB,IAAM,CACxC,KAAK,UAAY,CAAC,KAAK,kBACzB,KAAK,cAAa,CAEtB,CAAC,EACDzQ,GAAa,GAAG,KAAK,SAAU2Q,GAAyBxkJ,GAAS,CAE/D6zI,GAAa,IAAI,KAAK,SAAU0Q,GAAqBiB,GAAU,CAC7D,GAAI,OAAK,WAAaxlJ,EAAM,QAAU,KAAK,WAAawlJ,EAAO,QAG/D,IAAI,KAAK,QAAQ,WAAa,SAAU,CACtC,KAAK,2BAA0B,EAC/B,MACF,CACI,KAAK,QAAQ,UACf,KAAK,KAAI,EAEb,CAAC,CACH,CAAC,CACH,CACA,YAAa,CACX,KAAK,SAAS,MAAM,QAAU,OAC9B,KAAK,SAAS,aAAa,cAAe,EAAI,EAC9C,KAAK,SAAS,gBAAgB,YAAY,EAC1C,KAAK,SAAS,gBAAgB,MAAM,EACpC,KAAK,iBAAmB,GACxB,KAAK,UAAU,KAAK,IAAM,CACxB,SAAS,KAAK,UAAU,OAAOb,EAAe,EAC9C,KAAK,kBAAiB,EACtB,KAAK,WAAW,MAAK,EACrB9Q,GAAa,QAAQ,KAAK,SAAUsQ,EAAc,CACpD,CAAC,CACH,CACA,aAAc,CACZ,OAAO,KAAK,SAAS,UAAU,SAASS,EAAiB,CAC3D,CACA,4BAA6B,CAE3B,GADkB/Q,GAAa,QAAQ,KAAK,SAAUqQ,EAAsB,EAC9D,iBACZ,OAEF,MAAMuB,EAAqB,KAAK,SAAS,aAAe,SAAS,gBAAgB,aAC3EC,EAAmB,KAAK,SAAS,MAAM,UAEzCA,IAAqB,UAAY,KAAK,SAAS,UAAU,SAASZ,EAAiB,IAGlFW,IACH,KAAK,SAAS,MAAM,UAAY,UAElC,KAAK,SAAS,UAAU,IAAIX,EAAiB,EAC7C,KAAK,eAAe,IAAM,CACxB,KAAK,SAAS,UAAU,OAAOA,EAAiB,EAChD,KAAK,eAAe,IAAM,CACxB,KAAK,SAAS,MAAM,UAAYY,CAClC,EAAG,KAAK,OAAO,CACjB,EAAG,KAAK,OAAO,EACf,KAAK,SAAS,MAAK,EACrB,CAMA,eAAgB,CACd,MAAMD,EAAqB,KAAK,SAAS,aAAe,SAAS,gBAAgB,aAC3EjC,EAAiB,KAAK,WAAW,SAAQ,EACzCmC,EAAoBnC,EAAiB,EAC3C,GAAImC,GAAqB,CAACF,EAAoB,CAC5C,MAAMj7G,EAAW20E,KAAU,cAAgB,eAC3C,KAAK,SAAS,MAAM30E,CAAQ,EAAI,GAAGg5G,CAAc,IACnD,CACA,GAAI,CAACmC,GAAqBF,EAAoB,CAC5C,MAAMj7G,EAAW20E,KAAU,eAAiB,cAC5C,KAAK,SAAS,MAAM30E,CAAQ,EAAI,GAAGg5G,CAAc,IACnD,CACF,CACA,mBAAoB,CAClB,KAAK,SAAS,MAAM,YAAc,GAClC,KAAK,SAAS,MAAM,aAAe,EACrC,CAGA,OAAO,gBAAgBx1H,EAAQ6yH,EAAe,CAC5C,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMn0J,EAAO24J,GAAM,oBAAoB,KAAMr3H,CAAM,EACnD,GAAI,OAAOA,GAAW,SAGtB,IAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAE6yH,CAAa,EAC5B,CAAC,CACH,CACF,CAMAhN,GAAa,GAAG,SAAU6Q,GAAwBQ,GAAwB,SAAUllJ,EAAO,CACzF,MAAMxyB,EAASipK,GAAe,uBAAuB,IAAI,EACrD,CAAC,IAAK,MAAM,EAAE,SAAS,KAAK,OAAO,GACrCz2I,EAAM,eAAc,EAEtB6zI,GAAa,IAAIrmK,EAAQ42K,GAAcwB,GAAa,CAC9CA,EAAU,kBAId/R,GAAa,IAAIrmK,EAAQ22K,GAAgB,IAAM,CACzCtS,GAAU,IAAI,GAChB,KAAK,MAAK,CAEd,CAAC,CACH,CAAC,EAGD,MAAMgU,EAAcpP,GAAe,QAAQsO,EAAe,EACtDc,GACFR,GAAM,YAAYQ,CAAW,EAAE,KAAI,EAExBR,GAAM,oBAAoB73K,CAAM,EACxC,OAAO,IAAI,CAClB,CAAC,EACDopK,GAAqByO,EAAK,EAM1B/S,GAAmB+S,EAAK,EAcxB,MAAMS,GAAS,YACTC,GAAa,eACbC,GAAc,IAAID,EAAU,GAC5BE,GAAiB,YACjBC,GAAwB,OAAOF,EAAW,GAAGC,EAAc,GAC3DE,GAAa,SACbC,GAAoB,OACpBC,GAAuB,UACvBC,GAAoB,SACpBC,GAAsB,qBACtBC,GAAgB,kBAChBC,GAAe,OAAOT,EAAW,GACjCU,GAAgB,QAAQV,EAAW,GACnCW,GAAe,OAAOX,EAAW,GACjCY,GAAuB,gBAAgBZ,EAAW,GAClDa,GAAiB,SAASb,EAAW,GACrCc,GAAe,SAASd,EAAW,GACnCe,GAAyB,QAAQf,EAAW,GAAGC,EAAc,GAC7De,GAAwB,kBAAkBhB,EAAW,GACrDiB,GAAyB,+BACzBC,GAAY,CAChB,SAAU,GACV,SAAU,GACV,OAAQ,EACV,EACMC,GAAgB,CACpB,SAAU,mBACV,SAAU,UACV,OAAQ,SACV,EAMA,MAAMC,WAAkBhR,EAAc,CACpC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,SAAW,GAChB,KAAK,UAAY,KAAK,oBAAmB,EACzC,KAAK,WAAa,KAAK,qBAAoB,EAC3C,KAAK,mBAAkB,CACzB,CAGA,WAAW,SAAU,CACnB,OAAOk5H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOrB,EACT,CAGA,OAAOjF,EAAe,CACpB,OAAO,KAAK,SAAW,KAAK,KAAI,EAAK,KAAK,KAAKA,CAAa,CAC9D,CACA,KAAKA,EAAe,CAOlB,GANI,KAAK,UAGShN,GAAa,QAAQ,KAAK,SAAU4S,GAAc,CAClE,cAAA5F,CACN,CAAK,EACa,iBACZ,OAEF,KAAK,SAAW,GAChB,KAAK,UAAU,KAAI,EACd,KAAK,QAAQ,QAChB,IAAIuC,GAAe,EAAG,KAAI,EAE5B,KAAK,SAAS,aAAa,aAAc,EAAI,EAC7C,KAAK,SAAS,aAAa,OAAQ,QAAQ,EAC3C,KAAK,SAAS,UAAU,IAAIiD,EAAoB,EAChD,MAAMnK,EAAmB,IAAM,EACzB,CAAC,KAAK,QAAQ,QAAU,KAAK,QAAQ,WACvC,KAAK,WAAW,SAAQ,EAE1B,KAAK,SAAS,UAAU,IAAIkK,EAAiB,EAC7C,KAAK,SAAS,UAAU,OAAOC,EAAoB,EACnDxS,GAAa,QAAQ,KAAK,SAAU6S,GAAe,CACjD,cAAA7F,CACR,CAAO,CACH,EACA,KAAK,eAAe3E,EAAkB,KAAK,SAAU,EAAI,CAC3D,CACA,MAAO,CAKL,GAJI,CAAC,KAAK,UAGQrI,GAAa,QAAQ,KAAK,SAAU8S,EAAY,EACpD,iBACZ,OAEF,KAAK,WAAW,WAAU,EAC1B,KAAK,SAAS,KAAI,EAClB,KAAK,SAAW,GAChB,KAAK,SAAS,UAAU,IAAIL,EAAiB,EAC7C,KAAK,UAAU,KAAI,EACnB,MAAMe,EAAmB,IAAM,CAC7B,KAAK,SAAS,UAAU,OAAOjB,GAAmBE,EAAiB,EACnE,KAAK,SAAS,gBAAgB,YAAY,EAC1C,KAAK,SAAS,gBAAgB,MAAM,EAC/B,KAAK,QAAQ,QAChB,IAAIlD,GAAe,EAAG,MAAK,EAE7BvP,GAAa,QAAQ,KAAK,SAAUgT,EAAc,CACpD,EACA,KAAK,eAAeQ,EAAkB,KAAK,SAAU,EAAI,CAC3D,CACA,SAAU,CACR,KAAK,UAAU,QAAO,EACtB,KAAK,WAAW,WAAU,EAC1B,MAAM,QAAO,CACf,CAGA,qBAAsB,CACpB,MAAMC,EAAgB,IAAM,CAC1B,GAAI,KAAK,QAAQ,WAAa,SAAU,CACtCzT,GAAa,QAAQ,KAAK,SAAU+S,EAAoB,EACxD,MACF,CACA,KAAK,KAAI,CACX,EAGM/U,EAAY,EAAQ,KAAK,QAAQ,SACvC,OAAO,IAAIsQ,GAAS,CAClB,UAAWoE,GACX,UAAA1U,EACA,WAAY,GACZ,YAAa,KAAK,SAAS,WAC3B,cAAeA,EAAYyV,EAAgB,IACjD,CAAK,CACH,CACA,sBAAuB,CACrB,OAAO,IAAIxE,GAAU,CACnB,YAAa,KAAK,QACxB,CAAK,CACH,CACA,oBAAqB,CACnBjP,GAAa,GAAG,KAAK,SAAUmT,GAAuBhnJ,GAAS,CAC7D,GAAIA,EAAM,MAAQmmJ,GAGlB,IAAI,KAAK,QAAQ,SAAU,CACzB,KAAK,KAAI,EACT,MACF,CACAtS,GAAa,QAAQ,KAAK,SAAU+S,EAAoB,EAC1D,CAAC,CACH,CAGA,OAAO,gBAAgB54H,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAO06J,GAAU,oBAAoB,KAAMp5H,CAAM,EACvD,GAAI,OAAOA,GAAW,SAGtB,IAAIthC,EAAKshC,CAAM,IAAM,QAAaA,EAAO,WAAW,GAAG,GAAKA,IAAW,cACrE,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAE,IAAI,EACnB,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,SAAUkT,GAAwBE,GAAwB,SAAUjnJ,EAAO,CACzF,MAAMxyB,EAASipK,GAAe,uBAAuB,IAAI,EAIzD,GAHI,CAAC,IAAK,MAAM,EAAE,SAAS,KAAK,OAAO,GACrCz2I,EAAM,eAAc,EAElBnf,GAAW,IAAI,EACjB,OAEFgzJ,GAAa,IAAIrmK,EAAQq5K,GAAgB,IAAM,CAEzChV,GAAU,IAAI,GAChB,KAAK,MAAK,CAEd,CAAC,EAGD,MAAMgU,EAAcpP,GAAe,QAAQ+P,EAAa,EACpDX,GAAeA,IAAgBr4K,GACjC45K,GAAU,YAAYvB,CAAW,EAAE,KAAI,EAE5BuB,GAAU,oBAAoB55K,CAAM,EAC5C,OAAO,IAAI,CAClB,CAAC,EACDqmK,GAAa,GAAG,OAAQqS,GAAuB,IAAM,CACnD,UAAWrgJ,KAAY4wI,GAAe,KAAK+P,EAAa,EACtDY,GAAU,oBAAoBvhJ,CAAQ,EAAE,KAAI,CAEhD,CAAC,EACDguI,GAAa,GAAG,OAAQiT,GAAc,IAAM,CAC1C,UAAW5lG,KAAWu1F,GAAe,KAAK,8CAA8C,EAClF,iBAAiBv1F,CAAO,EAAE,WAAa,SACzCkmG,GAAU,oBAAoBlmG,CAAO,EAAE,KAAI,CAGjD,CAAC,EACD01F,GAAqBwQ,EAAS,EAM9B9U,GAAmB8U,EAAS,EAU5B,MAAMG,GAAyB,iBACzBC,GAAmB,CAEvB,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAAQD,EAAsB,EAClE,EAAG,CAAC,SAAU,OAAQ,QAAS,KAAK,EACpC,KAAM,GACN,EAAG,GACH,GAAI,GACJ,IAAK,GACL,KAAM,GACN,GAAI,GACJ,IAAK,GACL,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,GAAI,GACJ,EAAG,GACH,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,QAAQ,EACxD,GAAI,GACJ,GAAI,GACJ,EAAG,GACH,IAAK,GACL,EAAG,GACH,MAAO,GACP,KAAM,GACN,IAAK,GACL,IAAK,GACL,OAAQ,GACR,EAAG,GACH,GAAI,EACN,EAGME,GAAgB,IAAI,IAAI,CAAC,aAAc,OAAQ,OAAQ,WAAY,WAAY,SAAU,MAAO,YAAY,CAAC,EAQ7GC,GAAmB,0DACnBC,GAAmB,CAACrtE,EAAWstE,IAAyB,CAC5D,MAAMrlG,EAAgB+3B,EAAU,SAAS,YAAW,EACpD,OAAIstE,EAAqB,SAASrlG,CAAa,EACzCklG,GAAc,IAAIllG,CAAa,EAC1B,EAAQmlG,GAAiB,KAAKptE,EAAU,SAAS,EAEnD,GAIFstE,EAAqB,OAAOC,GAAkBA,aAA0B,MAAM,EAAE,KAAK7wH,GAASA,EAAM,KAAKurB,CAAa,CAAC,CAChI,EACA,SAASulG,GAAaC,EAAYC,EAAWC,EAAkB,CAC7D,GAAI,CAACF,EAAW,OACd,OAAOA,EAET,GAAIE,GAAoB,OAAOA,GAAqB,WAClD,OAAOA,EAAiBF,CAAU,EAGpC,MAAMG,EADY,IAAI,OAAO,UAAS,EACJ,gBAAgBH,EAAY,WAAW,EACnErwD,EAAW,GAAG,OAAO,GAAGwwD,EAAgB,KAAK,iBAAiB,GAAG,CAAC,EACxE,UAAWhnG,KAAWw2C,EAAU,CAC9B,MAAMywD,EAAcjnG,EAAQ,SAAS,YAAW,EAChD,GAAI,CAAC,OAAO,KAAK8mG,CAAS,EAAE,SAASG,CAAW,EAAG,CACjDjnG,EAAQ,OAAM,EACd,QACF,CACA,MAAMknG,EAAgB,GAAG,OAAO,GAAGlnG,EAAQ,UAAU,EAC/CmnG,EAAoB,GAAG,OAAOL,EAAU,GAAG,GAAK,GAAIA,EAAUG,CAAW,GAAK,EAAE,EACtF,UAAW7tE,KAAa8tE,EACjBT,GAAiBrtE,EAAW+tE,CAAiB,GAChDnnG,EAAQ,gBAAgBo5B,EAAU,QAAQ,CAGhD,CACA,OAAO4tE,EAAgB,KAAK,SAC9B,CAcA,MAAMI,GAAS,kBACTC,GAAY,CAChB,UAAWf,GACX,QAAS,GAET,WAAY,GACZ,KAAM,GACN,SAAU,GACV,WAAY,KACZ,SAAU,aACZ,EACMgB,GAAgB,CACpB,UAAW,SACX,QAAS,SACT,WAAY,oBACZ,KAAM,UACN,SAAU,UACV,WAAY,kBACZ,SAAU,QACZ,EACMC,GAAqB,CACzB,MAAO,iCACP,SAAU,kBACZ,EAMA,MAAMC,WAAwB5S,EAAO,CACnC,YAAY9nH,EAAQ,CAClB,MAAK,EACL,KAAK,QAAU,KAAK,WAAWA,CAAM,CACvC,CAGA,WAAW,SAAU,CACnB,OAAOu6H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOF,EACT,CAGA,YAAa,CACX,OAAO,OAAO,OAAO,KAAK,QAAQ,OAAO,EAAE,IAAIt6H,GAAU,KAAK,yBAAyBA,CAAM,CAAC,EAAE,OAAO,OAAO,CAChH,CACA,YAAa,CACX,OAAO,KAAK,aAAa,OAAS,CACpC,CACA,cAAc3qB,EAAS,CACrB,YAAK,cAAcA,CAAO,EAC1B,KAAK,QAAQ,QAAU,CACrB,GAAG,KAAK,QAAQ,QAChB,GAAGA,CACT,EACW,IACT,CACA,QAAS,CACP,MAAMslJ,EAAkB,SAAS,cAAc,KAAK,EACpDA,EAAgB,UAAY,KAAK,eAAe,KAAK,QAAQ,QAAQ,EACrE,SAAW,CAAC9iJ,EAAU3C,CAAI,IAAK,OAAO,QAAQ,KAAK,QAAQ,OAAO,EAChE,KAAK,YAAYylJ,EAAiBzlJ,EAAM2C,CAAQ,EAElD,MAAME,EAAW4iJ,EAAgB,SAAS,CAAC,EACrCC,EAAa,KAAK,yBAAyB,KAAK,QAAQ,UAAU,EACxE,OAAIA,GACF7iJ,EAAS,UAAU,IAAI,GAAG6iJ,EAAW,MAAM,GAAG,CAAC,EAE1C7iJ,CACT,CAGA,iBAAiBioB,EAAQ,CACvB,MAAM,iBAAiBA,CAAM,EAC7B,KAAK,cAAcA,EAAO,OAAO,CACnC,CACA,cAAcxnD,EAAK,CACjB,SAAW,CAACq/B,EAAUxC,CAAO,IAAK,OAAO,QAAQ78B,CAAG,EAClD,MAAM,iBAAiB,CACrB,SAAAq/B,EACA,MAAOxC,CACf,EAASolJ,EAAkB,CAEzB,CACA,YAAY1iJ,EAAU1C,EAASwC,EAAU,CACvC,MAAMgjJ,EAAkBpS,GAAe,QAAQ5wI,EAAUE,CAAQ,EACjE,GAAK8iJ,EAIL,IADAxlJ,EAAU,KAAK,yBAAyBA,CAAO,EAC3C,CAACA,EAAS,CACZwlJ,EAAgB,OAAM,EACtB,MACF,CACA,GAAI9uE,GAAU12E,CAAO,EAAG,CACtB,KAAK,sBAAsBuuI,GAAWvuI,CAAO,EAAGwlJ,CAAe,EAC/D,MACF,CACA,GAAI,KAAK,QAAQ,KAAM,CACrBA,EAAgB,UAAY,KAAK,eAAexlJ,CAAO,EACvD,MACF,CACAwlJ,EAAgB,YAAcxlJ,EAChC,CACA,eAAe78B,EAAK,CAClB,OAAO,KAAK,QAAQ,SAAWshL,GAAathL,EAAK,KAAK,QAAQ,UAAW,KAAK,QAAQ,UAAU,EAAIA,CACtG,CACA,yBAAyBA,EAAK,CAC5B,OAAOgsK,GAAQhsK,EAAK,CAAC,OAAW,IAAI,CAAC,CACvC,CACA,sBAAsB06E,EAAS2nG,EAAiB,CAC9C,GAAI,KAAK,QAAQ,KAAM,CACrBA,EAAgB,UAAY,GAC5BA,EAAgB,OAAO3nG,CAAO,EAC9B,MACF,CACA2nG,EAAgB,YAAc3nG,EAAQ,WACxC,CACF,CAcA,MAAM4nG,GAAS,UACTC,GAAwB,IAAI,IAAI,CAAC,WAAY,YAAa,YAAY,CAAC,EACvEC,GAAoB,OACpBC,GAAmB,QACnBC,GAAoB,OACpBC,GAAyB,iBACzBC,GAAiB,IAAIH,EAAgB,GACrCI,GAAmB,gBACnBC,GAAgB,QAChBC,GAAgB,QAChBC,GAAgB,QAChBC,GAAiB,SACjBC,GAAe,OACfC,GAAiB,SACjBC,GAAe,OACfC,GAAgB,QAChBC,GAAiB,WACjBC,GAAgB,QAChBC,GAAkB,UAClBC,GAAmB,WACnBC,GAAmB,aACnBC,GAAmB,aACnBC,GAAgB,CACpB,KAAM,OACN,IAAK,MACL,MAAOjrC,KAAU,OAAS,QAC1B,OAAQ,SACR,KAAMA,GAAK,EAAK,QAAU,MAC5B,EACMkrC,GAAY,CAChB,UAAW7C,GACX,UAAW,GACX,SAAU,kBACV,UAAW,GACX,YAAa,GACb,MAAO,EACP,mBAAoB,CAAC,MAAO,QAAS,SAAU,MAAM,EACrD,KAAM,GACN,OAAQ,CAAC,EAAG,CAAC,EACb,UAAW,MACX,aAAc,KACd,SAAU,GACV,WAAY,KACZ,SAAU,GACV,SAAU,+GACV,MAAO,GACP,QAAS,aACX,EACM8C,GAAgB,CACpB,UAAW,SACX,UAAW,UACX,SAAU,mBACV,UAAW,2BACX,YAAa,oBACb,MAAO,kBACP,mBAAoB,QACpB,KAAM,UACN,OAAQ,0BACR,UAAW,oBACX,aAAc,yBACd,SAAU,UACV,WAAY,kBACZ,SAAU,mBACV,SAAU,SACV,MAAO,4BACP,QAAS,QACX,EAMA,MAAMC,WAAgBnU,EAAc,CAClC,YAAYl1F,EAASlzB,EAAQ,CAC3B,GAAI,OAAO8yH,GAAW,IACpB,MAAM,IAAI,UAAU,sEAAuE,EAE7F,MAAM5/F,EAASlzB,CAAM,EAGrB,KAAK,WAAa,GAClB,KAAK,SAAW,EAChB,KAAK,WAAa,KAClB,KAAK,eAAiB,GACtB,KAAK,QAAU,KACf,KAAK,iBAAmB,KACxB,KAAK,YAAc,KAGnB,KAAK,IAAM,KACX,KAAK,cAAa,EACb,KAAK,QAAQ,UAChB,KAAK,UAAS,CAElB,CAGA,WAAW,SAAU,CACnB,OAAOq8H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOxB,EACT,CAGA,QAAS,CACP,KAAK,WAAa,EACpB,CACA,SAAU,CACR,KAAK,WAAa,EACpB,CACA,eAAgB,CACd,KAAK,WAAa,CAAC,KAAK,UAC1B,CACA,QAAS,CACP,GAAK,KAAK,WAGV,IAAI,KAAK,WAAY,CACnB,KAAK,OAAM,EACX,MACF,CACA,KAAK,OAAM,EACb,CACA,SAAU,CACR,aAAa,KAAK,QAAQ,EAC1BjV,GAAa,IAAI,KAAK,SAAS,QAAQuV,EAAc,EAAGC,GAAkB,KAAK,iBAAiB,EAC5F,KAAK,SAAS,aAAa,wBAAwB,GACrD,KAAK,SAAS,aAAa,QAAS,KAAK,SAAS,aAAa,wBAAwB,CAAC,EAE1F,KAAK,eAAc,EACnB,MAAM,QAAO,CACf,CACA,MAAO,CACL,GAAI,KAAK,SAAS,MAAM,UAAY,OAClC,MAAM,IAAI,MAAM,qCAAqC,EAEvD,GAAI,EAAE,KAAK,eAAc,GAAM,KAAK,YAClC,OAEF,MAAMzD,EAAY/R,GAAa,QAAQ,KAAK,SAAU,KAAK,YAAY,UAAU+V,EAAY,CAAC,EAExFY,GADavY,GAAe,KAAK,QAAQ,GACb,KAAK,SAAS,cAAc,iBAAiB,SAAS,KAAK,QAAQ,EACrG,GAAI2T,EAAU,kBAAoB,CAAC4E,EACjC,OAIF,KAAK,eAAc,EACnB,MAAMC,EAAM,KAAK,eAAc,EAC/B,KAAK,SAAS,aAAa,mBAAoBA,EAAI,aAAa,IAAI,CAAC,EACrE,KAAM,CACJ,UAAAntK,CACN,EAAQ,KAAK,QAYT,GAXK,KAAK,SAAS,cAAc,gBAAgB,SAAS,KAAK,GAAG,IAChEA,EAAU,OAAOmtK,CAAG,EACpB5W,GAAa,QAAQ,KAAK,SAAU,KAAK,YAAY,UAAUiW,EAAc,CAAC,GAEhF,KAAK,QAAU,KAAK,cAAcW,CAAG,EACrCA,EAAI,UAAU,IAAIvB,EAAiB,EAM/B,iBAAkB,SAAS,gBAC7B,UAAWhoG,IAAW,GAAG,OAAO,GAAG,SAAS,KAAK,QAAQ,EACvD2yF,GAAa,GAAG3yF,EAAS,YAAa3vC,EAAI,EAG9C,MAAM2sI,EAAW,IAAM,CACrBrK,GAAa,QAAQ,KAAK,SAAU,KAAK,YAAY,UAAUgW,EAAa,CAAC,EACzE,KAAK,aAAe,IACtB,KAAK,OAAM,EAEb,KAAK,WAAa,EACpB,EACA,KAAK,eAAe3L,EAAU,KAAK,IAAK,KAAK,aAAa,CAC5D,CACA,MAAO,CAKL,GAJI,CAAC,KAAK,YAGQrK,GAAa,QAAQ,KAAK,SAAU,KAAK,YAAY,UAAU6V,EAAY,CAAC,EAChF,iBACZ,OAOF,GALY,KAAK,eAAc,EAC3B,UAAU,OAAOR,EAAiB,EAIlC,iBAAkB,SAAS,gBAC7B,UAAWhoG,IAAW,GAAG,OAAO,GAAG,SAAS,KAAK,QAAQ,EACvD2yF,GAAa,IAAI3yF,EAAS,YAAa3vC,EAAI,EAG/C,KAAK,eAAei4I,EAAa,EAAI,GACrC,KAAK,eAAeD,EAAa,EAAI,GACrC,KAAK,eAAeD,EAAa,EAAI,GACrC,KAAK,WAAa,KAElB,MAAMpL,EAAW,IAAM,CACjB,KAAK,yBAGJ,KAAK,YACR,KAAK,eAAc,EAErB,KAAK,SAAS,gBAAgB,kBAAkB,EAChDrK,GAAa,QAAQ,KAAK,SAAU,KAAK,YAAY,UAAU8V,EAAc,CAAC,EAChF,EACA,KAAK,eAAezL,EAAU,KAAK,IAAK,KAAK,aAAa,CAC5D,CACA,QAAS,CACH,KAAK,SACP,KAAK,QAAQ,OAAM,CAEvB,CAGA,gBAAiB,CACf,MAAO,EAAQ,KAAK,WACtB,CACA,gBAAiB,CACf,OAAK,KAAK,MACR,KAAK,IAAM,KAAK,kBAAkB,KAAK,aAAe,KAAK,wBAAwB,GAE9E,KAAK,GACd,CACA,kBAAkB76I,EAAS,CACzB,MAAMonJ,EAAM,KAAK,oBAAoBpnJ,CAAO,EAAE,OAAM,EAGpD,GAAI,CAAConJ,EACH,OAAO,KAETA,EAAI,UAAU,OAAOzB,GAAmBE,EAAiB,EAEzDuB,EAAI,UAAU,IAAI,MAAM,KAAK,YAAY,IAAI,OAAO,EACpD,MAAMC,EAAQpZ,GAAO,KAAK,YAAY,IAAI,EAAE,SAAQ,EACpD,OAAAmZ,EAAI,aAAa,KAAMC,CAAK,EACxB,KAAK,eACPD,EAAI,UAAU,IAAIzB,EAAiB,EAE9ByB,CACT,CACA,WAAWpnJ,EAAS,CAClB,KAAK,YAAcA,EACf,KAAK,aACP,KAAK,eAAc,EACnB,KAAK,KAAI,EAEb,CACA,oBAAoBA,EAAS,CAC3B,OAAI,KAAK,iBACP,KAAK,iBAAiB,cAAcA,CAAO,EAE3C,KAAK,iBAAmB,IAAIqlJ,GAAgB,CAC1C,GAAG,KAAK,QAGR,QAAArlJ,EACA,WAAY,KAAK,yBAAyB,KAAK,QAAQ,WAAW,CAC1E,CAAO,EAEI,KAAK,gBACd,CACA,wBAAyB,CACvB,MAAO,CACL,CAAC8lJ,EAAsB,EAAG,KAAK,UAAS,CAC9C,CACE,CACA,WAAY,CACV,OAAO,KAAK,yBAAyB,KAAK,QAAQ,KAAK,GAAK,KAAK,SAAS,aAAa,wBAAwB,CACjH,CAGA,6BAA6BnpJ,EAAO,CAClC,OAAO,KAAK,YAAY,oBAAoBA,EAAM,eAAgB,KAAK,oBAAoB,CAC7F,CACA,aAAc,CACZ,OAAO,KAAK,QAAQ,WAAa,KAAK,KAAO,KAAK,IAAI,UAAU,SAASgpJ,EAAiB,CAC5F,CACA,UAAW,CACT,OAAO,KAAK,KAAO,KAAK,IAAI,UAAU,SAASE,EAAiB,CAClE,CACA,cAAcuB,EAAK,CACjB,MAAMxxE,EAAYu5D,GAAQ,KAAK,QAAQ,UAAW,CAAC,KAAMiY,EAAK,KAAK,QAAQ,CAAC,EACtEE,EAAaP,GAAcnxE,EAAU,YAAW,CAAE,EACxD,OAAO+nE,GAAoB,KAAK,SAAUyJ,EAAK,KAAK,iBAAiBE,CAAU,CAAC,CAClF,CACA,YAAa,CACX,KAAM,CACJ,OAAAt1I,CACN,EAAQ,KAAK,QACT,OAAI,OAAOA,GAAW,SACbA,EAAO,MAAM,GAAG,EAAE,IAAIhwC,GAAS,OAAO,SAASA,EAAO,EAAE,CAAC,EAE9D,OAAOgwC,GAAW,WACb8rI,GAAc9rI,EAAO8rI,EAAY,KAAK,QAAQ,EAEhD9rI,CACT,CACA,yBAAyB7uC,EAAK,CAC5B,OAAOgsK,GAAQhsK,EAAK,CAAC,KAAK,SAAU,KAAK,QAAQ,CAAC,CACpD,CACA,iBAAiBmkL,EAAY,CAC3B,MAAMvJ,EAAwB,CAC5B,UAAWuJ,EACX,UAAW,CAAC,CACV,KAAM,OACN,QAAS,CACP,mBAAoB,KAAK,QAAQ,kBAC3C,CACA,EAAS,CACD,KAAM,SACN,QAAS,CACP,OAAQ,KAAK,WAAU,CACjC,CACA,EAAS,CACD,KAAM,kBACN,QAAS,CACP,SAAU,KAAK,QAAQ,QACjC,CACA,EAAS,CACD,KAAM,QACN,QAAS,CACP,QAAS,IAAI,KAAK,YAAY,IAAI,QAC5C,CACA,EAAS,CACD,KAAM,kBACN,QAAS,GACT,MAAO,aACP,GAAIj+J,GAAQ,CAGV,KAAK,eAAc,EAAG,aAAa,wBAAyBA,EAAK,MAAM,SAAS,CAClF,CACR,CAAO,CACP,EACI,MAAO,CACL,GAAG00J,EACH,GAAG5O,GAAQ,KAAK,QAAQ,aAAc,CAAC,OAAW4O,CAAqB,CAAC,CAC9E,CACE,CACA,eAAgB,CACd,MAAMwJ,EAAW,KAAK,QAAQ,QAAQ,MAAM,GAAG,EAC/C,UAAWj9K,KAAWi9K,EACpB,GAAIj9K,IAAY,QACdkmK,GAAa,GAAG,KAAK,SAAU,KAAK,YAAY,UAAUkW,EAAa,EAAG,KAAK,QAAQ,SAAU/pJ,GAAS,CACxG,MAAMzN,EAAU,KAAK,6BAA6ByN,CAAK,EACvDzN,EAAQ,eAAei3J,EAAa,EAAI,EAAEj3J,EAAQ,SAAQ,GAAMA,EAAQ,eAAei3J,EAAa,GACpGj3J,EAAQ,OAAM,CAChB,CAAC,UACQ5kB,IAAY87K,GAAgB,CACrC,MAAMoB,EAAUl9K,IAAY27K,GAAgB,KAAK,YAAY,UAAUY,EAAgB,EAAI,KAAK,YAAY,UAAUF,EAAe,EAC/Hc,EAAWn9K,IAAY27K,GAAgB,KAAK,YAAY,UAAUa,EAAgB,EAAI,KAAK,YAAY,UAAUF,EAAgB,EACvIpW,GAAa,GAAG,KAAK,SAAUgX,EAAS,KAAK,QAAQ,SAAU7qJ,GAAS,CACtE,MAAMzN,EAAU,KAAK,6BAA6ByN,CAAK,EACvDzN,EAAQ,eAAeyN,EAAM,OAAS,UAAYupJ,GAAgBD,EAAa,EAAI,GACnF/2J,EAAQ,OAAM,CAChB,CAAC,EACDshJ,GAAa,GAAG,KAAK,SAAUiX,EAAU,KAAK,QAAQ,SAAU9qJ,GAAS,CACvE,MAAMzN,EAAU,KAAK,6BAA6ByN,CAAK,EACvDzN,EAAQ,eAAeyN,EAAM,OAAS,WAAaupJ,GAAgBD,EAAa,EAAI/2J,EAAQ,SAAS,SAASyN,EAAM,aAAa,EACjIzN,EAAQ,OAAM,CAChB,CAAC,CACH,CAEF,KAAK,kBAAoB,IAAM,CACzB,KAAK,UACP,KAAK,KAAI,CAEb,EACAshJ,GAAa,GAAG,KAAK,SAAS,QAAQuV,EAAc,EAAGC,GAAkB,KAAK,iBAAiB,CACjG,CACA,WAAY,CACV,MAAM7yG,EAAQ,KAAK,SAAS,aAAa,OAAO,EAC3CA,IAGD,CAAC,KAAK,SAAS,aAAa,YAAY,GAAK,CAAC,KAAK,SAAS,YAAY,QAC1E,KAAK,SAAS,aAAa,aAAcA,CAAK,EAEhD,KAAK,SAAS,aAAa,yBAA0BA,CAAK,EAC1D,KAAK,SAAS,gBAAgB,OAAO,EACvC,CACA,QAAS,CACP,GAAI,KAAK,YAAc,KAAK,WAAY,CACtC,KAAK,WAAa,GAClB,MACF,CACA,KAAK,WAAa,GAClB,KAAK,YAAY,IAAM,CACjB,KAAK,YACP,KAAK,KAAI,CAEb,EAAG,KAAK,QAAQ,MAAM,IAAI,CAC5B,CACA,QAAS,CACH,KAAK,yBAGT,KAAK,WAAa,GAClB,KAAK,YAAY,IAAM,CAChB,KAAK,YACR,KAAK,KAAI,CAEb,EAAG,KAAK,QAAQ,MAAM,IAAI,EAC5B,CACA,YAAY7lD,EAASiY,EAAS,CAC5B,aAAa,KAAK,QAAQ,EAC1B,KAAK,SAAW,WAAWjY,EAASiY,CAAO,CAC7C,CACA,sBAAuB,CACrB,OAAO,OAAO,OAAO,KAAK,cAAc,EAAE,SAAS,EAAI,CACzD,CACA,WAAWolB,EAAQ,CACjB,MAAM+8H,EAAiBpV,GAAY,kBAAkB,KAAK,QAAQ,EAClE,UAAWqV,KAAiB,OAAO,KAAKD,CAAc,EAChDhC,GAAsB,IAAIiC,CAAa,GACzC,OAAOD,EAAeC,CAAa,EAGvC,OAAAh9H,EAAS,CACP,GAAG+8H,EACH,GAAI,OAAO/8H,GAAW,UAAYA,EAASA,EAAS,EAC1D,EACIA,EAAS,KAAK,gBAAgBA,CAAM,EACpCA,EAAS,KAAK,kBAAkBA,CAAM,EACtC,KAAK,iBAAiBA,CAAM,EACrBA,CACT,CACA,kBAAkBA,EAAQ,CACxB,OAAAA,EAAO,UAAYA,EAAO,YAAc,GAAQ,SAAS,KAAO4jH,GAAW5jH,EAAO,SAAS,EACvF,OAAOA,EAAO,OAAU,WAC1BA,EAAO,MAAQ,CACb,KAAMA,EAAO,MACb,KAAMA,EAAO,KACrB,GAEQ,OAAOA,EAAO,OAAU,WAC1BA,EAAO,MAAQA,EAAO,MAAM,SAAQ,GAElC,OAAOA,EAAO,SAAY,WAC5BA,EAAO,QAAUA,EAAO,QAAQ,SAAQ,GAEnCA,CACT,CACA,oBAAqB,CACnB,MAAMA,EAAS,GACf,SAAW,CAACtqD,EAAK2B,CAAK,IAAK,OAAO,QAAQ,KAAK,OAAO,EAChD,KAAK,YAAY,QAAQ3B,CAAG,IAAM2B,IACpC2oD,EAAOtqD,CAAG,EAAI2B,GAGlB,OAAA2oD,EAAO,SAAW,GAClBA,EAAO,QAAU,SAKVA,CACT,CACA,gBAAiB,CACX,KAAK,UACP,KAAK,QAAQ,QAAO,EACpB,KAAK,QAAU,MAEb,KAAK,MACP,KAAK,IAAI,OAAM,EACf,KAAK,IAAM,KAEf,CAGA,OAAO,gBAAgBA,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAO69J,GAAQ,oBAAoB,KAAMv8H,CAAM,EACrD,GAAI,OAAOA,GAAW,SAGtB,IAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,EACd,CAAC,CACH,CACF,CAMAskH,GAAmBiY,EAAO,EAc1B,MAAMU,GAAS,UACTC,GAAiB,kBACjBC,GAAmB,gBACnBC,GAAY,CAChB,GAAGb,GAAQ,QACX,QAAS,GACT,OAAQ,CAAC,EAAG,CAAC,EACb,UAAW,QACX,SAAU,8IACV,QAAS,OACX,EACMc,GAAgB,CACpB,GAAGd,GAAQ,YACX,QAAS,gCACX,EAMA,MAAMe,WAAgBf,EAAQ,CAE5B,WAAW,SAAU,CACnB,OAAOa,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOJ,EACT,CAGA,gBAAiB,CACf,OAAO,KAAK,aAAe,KAAK,YAAW,CAC7C,CAGA,wBAAyB,CACvB,MAAO,CACL,CAACC,EAAc,EAAG,KAAK,UAAS,EAChC,CAACC,EAAgB,EAAG,KAAK,YAAW,CAC1C,CACE,CACA,aAAc,CACZ,OAAO,KAAK,yBAAyB,KAAK,QAAQ,OAAO,CAC3D,CAGA,OAAO,gBAAgBn9H,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAO4+J,GAAQ,oBAAoB,KAAMt9H,CAAM,EACrD,GAAI,OAAOA,GAAW,SAGtB,IAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,EACd,CAAC,CACH,CACF,CAMAskH,GAAmBgZ,EAAO,EAc1B,MAAMC,GAAS,YACTC,GAAa,eACbC,GAAc,IAAID,EAAU,GAC5BE,GAAe,YACfC,GAAiB,WAAWF,EAAW,GACvCG,GAAc,QAAQH,EAAW,GACjCI,GAAwB,OAAOJ,EAAW,GAAGC,EAAY,GACzDI,GAA2B,gBAC3BC,GAAsB,SACtBC,GAAoB,yBACpBC,GAAwB,SACxBC,GAA0B,oBAC1BC,GAAqB,YACrBC,GAAqB,YACrBC,GAAsB,mBACtBC,GAAsB,GAAGH,EAAkB,KAAKC,EAAkB,MAAMD,EAAkB,KAAKE,EAAmB,GAClHE,GAAoB,YACpBC,GAA6B,mBAC7BC,GAAY,CAChB,OAAQ,KAER,WAAY,eACZ,aAAc,GACd,OAAQ,KACR,UAAW,CAAC,GAAK,GAAK,CAAC,CACzB,EACMC,GAAgB,CACpB,OAAQ,gBAER,WAAY,SACZ,aAAc,UACd,OAAQ,UACR,UAAW,OACb,EAMA,MAAMC,WAAkBvW,EAAc,CACpC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EAGrB,KAAK,aAAe,IAAI,IACxB,KAAK,oBAAsB,IAAI,IAC/B,KAAK,aAAe,iBAAiB,KAAK,QAAQ,EAAE,YAAc,UAAY,KAAO,KAAK,SAC1F,KAAK,cAAgB,KACrB,KAAK,UAAY,KACjB,KAAK,oBAAsB,CACzB,gBAAiB,EACjB,gBAAiB,CACvB,EACI,KAAK,QAAO,CACd,CAGA,WAAW,SAAU,CACnB,OAAOy+H,EACT,CACA,WAAW,aAAc,CACvB,OAAOC,EACT,CACA,WAAW,MAAO,CAChB,OAAOnB,EACT,CAGA,SAAU,CACR,KAAK,iCAAgC,EACrC,KAAK,yBAAwB,EACzB,KAAK,UACP,KAAK,UAAU,WAAU,EAEzB,KAAK,UAAY,KAAK,gBAAe,EAEvC,UAAWqB,KAAW,KAAK,oBAAoB,OAAM,EACnD,KAAK,UAAU,QAAQA,CAAO,CAElC,CACA,SAAU,CACR,KAAK,UAAU,WAAU,EACzB,MAAM,QAAO,CACf,CAGA,kBAAkB5+H,EAAQ,CAExB,OAAAA,EAAO,OAAS4jH,GAAW5jH,EAAO,MAAM,GAAK,SAAS,KAGtDA,EAAO,WAAaA,EAAO,OAAS,GAAGA,EAAO,MAAM,cAAgBA,EAAO,WACvE,OAAOA,EAAO,WAAc,WAC9BA,EAAO,UAAYA,EAAO,UAAU,MAAM,GAAG,EAAE,IAAI3oD,GAAS,OAAO,WAAWA,CAAK,CAAC,GAE/E2oD,CACT,CACA,0BAA2B,CACpB,KAAK,QAAQ,eAKlB6lH,GAAa,IAAI,KAAK,QAAQ,OAAQ+X,EAAW,EACjD/X,GAAa,GAAG,KAAK,QAAQ,OAAQ+X,GAAaK,GAAuBjsJ,GAAS,CAChF,MAAM6sJ,EAAoB,KAAK,oBAAoB,IAAI7sJ,EAAM,OAAO,IAAI,EACxE,GAAI6sJ,EAAmB,CACrB7sJ,EAAM,eAAc,EACpB,MAAMlF,EAAO,KAAK,cAAgB,OAC5BwoD,EAASupG,EAAkB,UAAY,KAAK,SAAS,UAC3D,GAAI/xJ,EAAK,SAAU,CACjBA,EAAK,SAAS,CACZ,IAAKwoD,EACL,SAAU,QACtB,CAAW,EACD,MACF,CAGAxoD,EAAK,UAAYwoD,CACnB,CACF,CAAC,EACH,CACA,iBAAkB,CAChB,MAAMtsE,EAAU,CACd,KAAM,KAAK,aACX,UAAW,KAAK,QAAQ,UACxB,WAAY,KAAK,QAAQ,UAC/B,EACI,OAAO,IAAI,qBAAqB3N,GAAW,KAAK,kBAAkBA,CAAO,EAAG2N,CAAO,CACrF,CAGA,kBAAkB3N,EAAS,CACzB,MAAMyjL,EAAgBC,GAAS,KAAK,aAAa,IAAI,IAAIA,EAAM,OAAO,EAAE,EAAE,EACpEC,EAAWD,GAAS,CACxB,KAAK,oBAAoB,gBAAkBA,EAAM,OAAO,UACxD,KAAK,SAASD,EAAcC,CAAK,CAAC,CACpC,EACME,GAAmB,KAAK,cAAgB,SAAS,iBAAiB,UAClEC,EAAkBD,GAAmB,KAAK,oBAAoB,gBACpE,KAAK,oBAAoB,gBAAkBA,EAC3C,UAAWF,KAAS1jL,EAAS,CAC3B,GAAI,CAAC0jL,EAAM,eAAgB,CACzB,KAAK,cAAgB,KACrB,KAAK,kBAAkBD,EAAcC,CAAK,CAAC,EAC3C,QACF,CACA,MAAMI,EAA2BJ,EAAM,OAAO,WAAa,KAAK,oBAAoB,gBAEpF,GAAIG,GAAmBC,EAA0B,CAG/C,GAFAH,EAASD,CAAK,EAEV,CAACE,EACH,OAEF,QACF,CAGI,CAACC,GAAmB,CAACC,GACvBH,EAASD,CAAK,CAElB,CACF,CACA,kCAAmC,CACjC,KAAK,aAAe,IAAI,IACxB,KAAK,oBAAsB,IAAI,IAC/B,MAAMK,EAAc3W,GAAe,KAAKwV,GAAuB,KAAK,QAAQ,MAAM,EAClF,UAAW1uK,KAAU6vK,EAAa,CAEhC,GAAI,CAAC7vK,EAAO,MAAQsD,GAAWtD,CAAM,EACnC,SAEF,MAAMsvK,EAAoBpW,GAAe,QAAQ,UAAUl5J,EAAO,IAAI,EAAG,KAAK,QAAQ,EAGlFs0J,GAAUgb,CAAiB,IAC7B,KAAK,aAAa,IAAI,UAAUtvK,EAAO,IAAI,EAAGA,CAAM,EACpD,KAAK,oBAAoB,IAAIA,EAAO,KAAMsvK,CAAiB,EAE/D,CACF,CACA,SAASr/K,EAAQ,CACX,KAAK,gBAAkBA,IAG3B,KAAK,kBAAkB,KAAK,QAAQ,MAAM,EAC1C,KAAK,cAAgBA,EACrBA,EAAO,UAAU,IAAIu+K,EAAmB,EACxC,KAAK,iBAAiBv+K,CAAM,EAC5BqmK,GAAa,QAAQ,KAAK,SAAU8X,GAAgB,CAClD,cAAen+K,CACrB,CAAK,EACH,CACA,iBAAiBA,EAAQ,CAEvB,GAAIA,EAAO,UAAU,SAASs+K,EAAwB,EAAG,CACvDrV,GAAe,QAAQ+V,GAA4Bh/K,EAAO,QAAQ++K,EAAiB,CAAC,EAAE,UAAU,IAAIR,EAAmB,EACvH,MACF,CACA,UAAWsB,KAAa5W,GAAe,QAAQjpK,EAAQ0+K,EAAuB,EAG5E,UAAW/kL,KAAQsvK,GAAe,KAAK4W,EAAWf,EAAmB,EACnEnlL,EAAK,UAAU,IAAI4kL,EAAmB,CAG5C,CACA,kBAAkB1xJ,EAAQ,CACxBA,EAAO,UAAU,OAAO0xJ,EAAmB,EAC3C,MAAMuB,EAAc7W,GAAe,KAAK,GAAGwV,EAAqB,IAAIF,EAAmB,GAAI1xJ,CAAM,EACjG,UAAWja,KAAQktK,EACjBltK,EAAK,UAAU,OAAO2rK,EAAmB,CAE7C,CAGA,OAAO,gBAAgB/9H,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAOigK,GAAU,oBAAoB,KAAM3+H,CAAM,EACvD,GAAI,OAAOA,GAAW,SAGtB,IAAIthC,EAAKshC,CAAM,IAAM,QAAaA,EAAO,WAAW,GAAG,GAAKA,IAAW,cACrE,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,EACd,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,OAAQgY,GAAuB,IAAM,CACnD,UAAW0B,KAAO9W,GAAe,KAAKuV,EAAiB,EACrDW,GAAU,oBAAoBY,CAAG,CAErC,CAAC,EAMDjb,GAAmBqa,EAAS,EAc5B,MAAMa,GAAS,MACTC,GAAa,SACbC,GAAc,IAAID,EAAU,GAC5BE,GAAe,OAAOD,EAAW,GACjCE,GAAiB,SAASF,EAAW,GACrCG,GAAe,OAAOH,EAAW,GACjCI,GAAgB,QAAQJ,EAAW,GACnCK,GAAuB,QAAQL,EAAW,GAC1CM,GAAgB,UAAUN,EAAW,GACrCO,GAAsB,OAAOP,EAAW,GACxCQ,GAAiB,YACjBC,GAAkB,aAClBC,GAAe,UACfC,GAAiB,YACjBC,GAAW,OACXC,GAAU,MACVC,GAAoB,SACpBC,GAAoB,OACpBC,GAAoB,OACpBC,GAAiB,WACjBC,GAA2B,mBAC3BC,GAAyB,iBACzBC,GAA+B,QAAQF,EAAwB,IAC/DG,GAAqB,sCACrBC,GAAiB,8BACjBC,GAAiB,YAAYH,EAA4B,qBAAqBA,EAA4B,iBAAiBA,EAA4B,GACvJI,GAAuB,2EACvBC,GAAsB,GAAGF,EAAc,KAAKC,EAAoB,GAChEE,GAA8B,IAAIZ,EAAiB,4BAA4BA,EAAiB,6BAA6BA,EAAiB,0BAMpJ,MAAMa,WAAYjZ,EAAc,CAC9B,YAAYl1F,EAAS,CACnB,MAAMA,CAAO,EACb,KAAK,QAAU,KAAK,SAAS,QAAQ6tG,EAAkB,EAClD,KAAK,UAOV,KAAK,sBAAsB,KAAK,QAAS,KAAK,aAAY,CAAE,EAC5Dlb,GAAa,GAAG,KAAK,SAAUma,GAAehuJ,GAAS,KAAK,SAASA,CAAK,CAAC,EAC7E,CAGA,WAAW,MAAO,CAChB,OAAOwtJ,EACT,CAGA,MAAO,CAEL,MAAM8B,EAAY,KAAK,SACvB,GAAI,KAAK,cAAcA,CAAS,EAC9B,OAIF,MAAMC,EAAS,KAAK,eAAc,EAC5BC,EAAYD,EAAS1b,GAAa,QAAQ0b,EAAQ5B,GAAc,CACpE,cAAe2B,CACrB,CAAK,EAAI,KACazb,GAAa,QAAQyb,EAAWzB,GAAc,CAC9D,cAAe0B,CACrB,CAAK,EACa,kBAAoBC,GAAaA,EAAU,mBAGzD,KAAK,YAAYD,EAAQD,CAAS,EAClC,KAAK,UAAUA,EAAWC,CAAM,EAClC,CAGA,UAAUruG,EAASuuG,EAAa,CAC9B,GAAI,CAACvuG,EACH,OAEFA,EAAQ,UAAU,IAAIstG,EAAiB,EACvC,KAAK,UAAU/X,GAAe,uBAAuBv1F,CAAO,CAAC,EAE7D,MAAMg9F,EAAW,IAAM,CACrB,GAAIh9F,EAAQ,aAAa,MAAM,IAAM,MAAO,CAC1CA,EAAQ,UAAU,IAAIwtG,EAAiB,EACvC,MACF,CACAxtG,EAAQ,gBAAgB,UAAU,EAClCA,EAAQ,aAAa,gBAAiB,EAAI,EAC1C,KAAK,gBAAgBA,EAAS,EAAI,EAClC2yF,GAAa,QAAQ3yF,EAAS4sG,GAAe,CAC3C,cAAe2B,CACvB,CAAO,CACH,EACA,KAAK,eAAevR,EAAUh9F,EAASA,EAAQ,UAAU,SAASutG,EAAiB,CAAC,CACtF,CACA,YAAYvtG,EAASuuG,EAAa,CAChC,GAAI,CAACvuG,EACH,OAEFA,EAAQ,UAAU,OAAOstG,EAAiB,EAC1CttG,EAAQ,KAAI,EACZ,KAAK,YAAYu1F,GAAe,uBAAuBv1F,CAAO,CAAC,EAE/D,MAAMg9F,EAAW,IAAM,CACrB,GAAIh9F,EAAQ,aAAa,MAAM,IAAM,MAAO,CAC1CA,EAAQ,UAAU,OAAOwtG,EAAiB,EAC1C,MACF,CACAxtG,EAAQ,aAAa,gBAAiB,EAAK,EAC3CA,EAAQ,aAAa,WAAY,IAAI,EACrC,KAAK,gBAAgBA,EAAS,EAAK,EACnC2yF,GAAa,QAAQ3yF,EAAS0sG,GAAgB,CAC5C,cAAe6B,CACvB,CAAO,CACH,EACA,KAAK,eAAevR,EAAUh9F,EAASA,EAAQ,UAAU,SAASutG,EAAiB,CAAC,CACtF,CACA,SAASzuJ,EAAO,CACd,GAAI,CAAC,CAACkuJ,GAAgBC,GAAiBC,GAAcC,GAAgBC,GAAUC,EAAO,EAAE,SAASvuJ,EAAM,GAAG,EACxG,OAEFA,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,MAAMzhB,EAAW,KAAK,aAAY,EAAG,OAAO2iE,GAAW,CAACrgE,GAAWqgE,CAAO,CAAC,EAC3E,IAAIwuG,EACJ,GAAI,CAACpB,GAAUC,EAAO,EAAE,SAASvuJ,EAAM,GAAG,EACxC0vJ,EAAoBnxK,EAASyhB,EAAM,MAAQsuJ,GAAW,EAAI/vK,EAAS,OAAS,CAAC,MACxE,CACL,MAAMm9J,EAAS,CAACyS,GAAiBE,EAAc,EAAE,SAASruJ,EAAM,GAAG,EACnE0vJ,EAAoB5c,GAAqBv0J,EAAUyhB,EAAM,OAAQ07I,EAAQ,EAAI,CAC/E,CACIgU,IACFA,EAAkB,MAAM,CACtB,cAAe,EACvB,CAAO,EACDL,GAAI,oBAAoBK,CAAiB,EAAE,KAAI,EAEnD,CACA,cAAe,CAEb,OAAOjZ,GAAe,KAAK0Y,GAAqB,KAAK,OAAO,CAC9D,CACA,gBAAiB,CACf,OAAO,KAAK,aAAY,EAAG,KAAKrvK,GAAS,KAAK,cAAcA,CAAK,CAAC,GAAK,IACzE,CACA,sBAAsBua,EAAQ9b,EAAU,CACtC,KAAK,yBAAyB8b,EAAQ,OAAQ,SAAS,EACvD,UAAWva,KAASvB,EAClB,KAAK,6BAA6BuB,CAAK,CAE3C,CACA,6BAA6BA,EAAO,CAClCA,EAAQ,KAAK,iBAAiBA,CAAK,EACnC,MAAMkiC,EAAW,KAAK,cAAcliC,CAAK,EACnC6vK,EAAY,KAAK,iBAAiB7vK,CAAK,EAC7CA,EAAM,aAAa,gBAAiBkiC,CAAQ,EACxC2tI,IAAc7vK,GAChB,KAAK,yBAAyB6vK,EAAW,OAAQ,cAAc,EAE5D3tI,GACHliC,EAAM,aAAa,WAAY,IAAI,EAErC,KAAK,yBAAyBA,EAAO,OAAQ,KAAK,EAGlD,KAAK,mCAAmCA,CAAK,CAC/C,CACA,mCAAmCA,EAAO,CACxC,MAAMtS,EAASipK,GAAe,uBAAuB32J,CAAK,EACrDtS,IAGL,KAAK,yBAAyBA,EAAQ,OAAQ,UAAU,EACpDsS,EAAM,IACR,KAAK,yBAAyBtS,EAAQ,kBAAmB,GAAGsS,EAAM,EAAE,EAAE,EAE1E,CACA,gBAAgBohE,EAAS2hE,EAAM,CAC7B,MAAM8sC,EAAY,KAAK,iBAAiBzuG,CAAO,EAC/C,GAAI,CAACyuG,EAAU,UAAU,SAAShB,EAAc,EAC9C,OAEF,MAAMrN,EAAS,CAACz7I,EAAUg2D,IAAc,CACtC,MAAM3a,EAAUu1F,GAAe,QAAQ5wI,EAAU8pJ,CAAS,EACtDzuG,GACFA,EAAQ,UAAU,OAAO2a,EAAWgnD,CAAI,CAE5C,EACAy+B,EAAOsN,GAA0BJ,EAAiB,EAClDlN,EAAOuN,GAAwBH,EAAiB,EAChDiB,EAAU,aAAa,gBAAiB9sC,CAAI,CAC9C,CACA,yBAAyB3hE,EAASo5B,EAAWj1G,EAAO,CAC7C67E,EAAQ,aAAao5B,CAAS,GACjCp5B,EAAQ,aAAao5B,EAAWj1G,CAAK,CAEzC,CACA,cAAck4H,EAAM,CAClB,OAAOA,EAAK,UAAU,SAASixD,EAAiB,CAClD,CAGA,iBAAiBjxD,EAAM,CACrB,OAAOA,EAAK,QAAQ4xD,EAAmB,EAAI5xD,EAAOk5C,GAAe,QAAQ0Y,GAAqB5xD,CAAI,CACpG,CAGA,iBAAiBA,EAAM,CACrB,OAAOA,EAAK,QAAQyxD,EAAc,GAAKzxD,CACzC,CAGA,OAAO,gBAAgBvvE,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAO2iK,GAAI,oBAAoB,IAAI,EACzC,GAAI,OAAOrhI,GAAW,SAGtB,IAAIthC,EAAKshC,CAAM,IAAM,QAAaA,EAAO,WAAW,GAAG,GAAKA,IAAW,cACrE,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAC,EACd,CAAC,CACH,CACF,CAMA6lH,GAAa,GAAG,SAAUka,GAAsBmB,GAAsB,SAAUlvJ,EAAO,CACjF,CAAC,IAAK,MAAM,EAAE,SAAS,KAAK,OAAO,GACrCA,EAAM,eAAc,EAElB,CAAAnf,GAAW,IAAI,GAGnBwuK,GAAI,oBAAoB,IAAI,EAAE,KAAI,CACpC,CAAC,EAKDxb,GAAa,GAAG,OAAQoa,GAAqB,IAAM,CACjD,UAAW/sG,KAAWu1F,GAAe,KAAK2Y,EAA2B,EACnEC,GAAI,oBAAoBnuG,CAAO,CAEnC,CAAC,EAKDoxF,GAAmB+c,EAAG,EActB,MAAMO,GAAO,QACPC,GAAW,WACXC,GAAY,IAAID,EAAQ,GACxBE,GAAkB,YAAYD,EAAS,GACvCE,GAAiB,WAAWF,EAAS,GACrCG,GAAgB,UAAUH,EAAS,GACnCI,GAAiB,WAAWJ,EAAS,GACrCK,GAAa,OAAOL,EAAS,GAC7BM,GAAe,SAASN,EAAS,GACjCO,GAAa,OAAOP,EAAS,GAC7BQ,GAAc,QAAQR,EAAS,GAC/BS,GAAkB,OAClBC,GAAkB,OAClBC,GAAkB,OAClBC,GAAqB,UACrBC,GAAc,CAClB,UAAW,UACX,SAAU,UACV,MAAO,QACT,EACMC,GAAU,CACd,UAAW,GACX,SAAU,GACV,MAAO,GACT,EAMA,MAAMC,WAAcza,EAAc,CAChC,YAAYl1F,EAASlzB,EAAQ,CAC3B,MAAMkzB,EAASlzB,CAAM,EACrB,KAAK,SAAW,KAChB,KAAK,qBAAuB,GAC5B,KAAK,wBAA0B,GAC/B,KAAK,cAAa,CACpB,CAGA,WAAW,SAAU,CACnB,OAAO4iI,EACT,CACA,WAAW,aAAc,CACvB,OAAOD,EACT,CACA,WAAW,MAAO,CAChB,OAAOf,EACT,CAGA,MAAO,CAEL,GADkB/b,GAAa,QAAQ,KAAK,SAAUwc,EAAU,EAClD,iBACZ,OAEF,KAAK,cAAa,EACd,KAAK,QAAQ,WACf,KAAK,SAAS,UAAU,IAAIE,EAAe,EAE7C,MAAMrS,EAAW,IAAM,CACrB,KAAK,SAAS,UAAU,OAAOwS,EAAkB,EACjD7c,GAAa,QAAQ,KAAK,SAAUyc,EAAW,EAC/C,KAAK,mBAAkB,CACzB,EACA,KAAK,SAAS,UAAU,OAAOE,EAAe,EAC9Cte,GAAO,KAAK,QAAQ,EACpB,KAAK,SAAS,UAAU,IAAIue,GAAiBC,EAAkB,EAC/D,KAAK,eAAexS,EAAU,KAAK,SAAU,KAAK,QAAQ,SAAS,CACrE,CACA,MAAO,CAKL,GAJI,CAAC,KAAK,WAGQrK,GAAa,QAAQ,KAAK,SAAUsc,EAAU,EAClD,iBACZ,OAEF,MAAMjS,EAAW,IAAM,CACrB,KAAK,SAAS,UAAU,IAAIsS,EAAe,EAC3C,KAAK,SAAS,UAAU,OAAOE,GAAoBD,EAAe,EAClE5c,GAAa,QAAQ,KAAK,SAAUuc,EAAY,CAClD,EACA,KAAK,SAAS,UAAU,IAAIM,EAAkB,EAC9C,KAAK,eAAexS,EAAU,KAAK,SAAU,KAAK,QAAQ,SAAS,CACrE,CACA,SAAU,CACR,KAAK,cAAa,EACd,KAAK,WACP,KAAK,SAAS,UAAU,OAAOuS,EAAe,EAEhD,MAAM,QAAO,CACf,CACA,SAAU,CACR,OAAO,KAAK,SAAS,UAAU,SAASA,EAAe,CACzD,CAGA,oBAAqB,CACd,KAAK,QAAQ,WAGd,KAAK,sBAAwB,KAAK,0BAGtC,KAAK,SAAW,WAAW,IAAM,CAC/B,KAAK,KAAI,CACX,EAAG,KAAK,QAAQ,KAAK,GACvB,CACA,eAAezwJ,EAAO8wJ,EAAe,CACnC,OAAQ9wJ,EAAM,KAAI,CAChB,IAAK,YACL,IAAK,WACH,CACE,KAAK,qBAAuB8wJ,EAC5B,KACF,CACF,IAAK,UACL,IAAK,WACH,CACE,KAAK,wBAA0BA,EAC/B,KACF,CACR,CACI,GAAIA,EAAe,CACjB,KAAK,cAAa,EAClB,MACF,CACA,MAAMnV,EAAc37I,EAAM,cACtB,KAAK,WAAa27I,GAAe,KAAK,SAAS,SAASA,CAAW,GAGvE,KAAK,mBAAkB,CACzB,CACA,eAAgB,CACd9H,GAAa,GAAG,KAAK,SAAUkc,GAAiB/vJ,GAAS,KAAK,eAAeA,EAAO,EAAI,CAAC,EACzF6zI,GAAa,GAAG,KAAK,SAAUmc,GAAgBhwJ,GAAS,KAAK,eAAeA,EAAO,EAAK,CAAC,EACzF6zI,GAAa,GAAG,KAAK,SAAUoc,GAAejwJ,GAAS,KAAK,eAAeA,EAAO,EAAI,CAAC,EACvF6zI,GAAa,GAAG,KAAK,SAAUqc,GAAgBlwJ,GAAS,KAAK,eAAeA,EAAO,EAAK,CAAC,CAC3F,CACA,eAAgB,CACd,aAAa,KAAK,QAAQ,EAC1B,KAAK,SAAW,IAClB,CAGA,OAAO,gBAAgBguB,EAAQ,CAC7B,OAAO,KAAK,KAAK,UAAY,CAC3B,MAAMthC,EAAOmkK,GAAM,oBAAoB,KAAM7iI,CAAM,EACnD,GAAI,OAAOA,GAAW,SAAU,CAC9B,GAAI,OAAOthC,EAAKshC,CAAM,EAAM,IAC1B,MAAM,IAAI,UAAU,oBAAoBA,CAAM,GAAG,EAEnDthC,EAAKshC,CAAM,EAAE,IAAI,CACnB,CACF,CAAC,CACH,CACF,CAMA4oH,GAAqBia,EAAK,EAM1Bve,GAAmBue,EAAK,sDCh1IxB,MAAMrvI,EAASuG,GAAA,EACT47C,EAAepB,GAAA,EACfpB,EAAUwC,EAAa,QAEvB4+B,EAAqBF,GAAA,EACrB,CAAE,cAAAjhC,CAAA,EAAkBtzC,GAAYy0E,CAAkB,EAExD,SAASwuD,EAAsBtuF,EAA8B,CAC3D,MAAMuuF,EAAwBxvI,EAAO,QAAQi2B,GAAW,cAAc,IAAI,EAAE,KAC5E,OAAQgrB,EAAA,CACN,KAAKpB,GAAc,kCAAmC,CACpD,MAAM4vF,EAA2B,uKAAuKD,CAAqB,2DAC7Nr+C,GAAazH,GAAK,QAAS,GAAI+lD,EAA0B,EAAI,EAC7D,KACF,CACA,KAAK5vF,GAAc,uBAAwB,CACzC,MAAM6vF,EAAgB9vF,EAAc,OAAO,uBACvC,2MAA2MD,EAAQ,qBAAqB,6DAA6D6vF,CAAqB,yDAC1T,uOAAuO7vF,EAAQ,qBAAqB,6DAA6D6vF,CAAqB,yDAC1Vr+C,GAAazH,GAAK,QAAS,GAAIgmD,EAAe,EAAI,EAClD,KACF,CACA,KAAK7vF,GAAc,8BAA+B,CAChD,MAAM8vF,EAAuB,8KAA8KH,CAAqB,2DAChOr+C,GAAazH,GAAK,QAAS,GAAIimD,EAAsB,EAAI,EACzD,KACF,CACA,KAAK9vF,GAAc,mCAAoC,CACrD,MAAM+vF,EAA4B,4KAA4KJ,CAAqB,2DACnOr+C,GAAazH,GAAK,QAAS,GAAIkmD,EAA2B,EAAI,EAC9D,KACF,CACA,KAAK/vF,GAAc,yBACnB,KAAKA,GAAc,gCACnB,KAAKA,GAAc,qCACjBsxC,GAAazH,GAAK,MAAO,QAAS,qJAAsJ,EAAI,EAC5L,MAEN,CAEA,OAAAp0H,GACE,IAAMqqF,EAAQ,eACd,CAACvzF,EAAUvH,IAAa,CACGuH,IAAavH,GAEpC0qL,EAAsBnjL,CAAQ,CAElC,GAGFsT,GAAU,SAAY,CACpB,MAAMyiF,EAAa,SACrB,CAAC,cAGCt7C,EAAqB,oECtDvB,MAAM7G,EAASuG,GAAA,EACT,CAAE,MAAOskD,CAAA,EAAoBD,GAAA,EAC7B5B,EAA4B6B,EAAgB,0BAC5C,CAAE,MAAOiD,CAAA,EAAqBH,GAAA,EAC9BrB,EAAcwB,EAAiB,YAC/B9M,EAAsBp0C,GAAA,EACtB,CAAE,cAAAE,EAAe,qBAAAC,GAAyBT,GAAY00C,CAAmB,EAEzE6uF,EAA8BnlL,EAAS,IAAMs+F,EAA0B,eAAe,EAE5F,OAAA1zF,GAAMu6K,EAA6B,CAACzjL,EAAUvH,IAAa,CAEzD,GAAI,CAAAkoD,EAAqB,OAKrB3gD,IAAavH,GAAY,EAAEA,IAAa,MAAQuH,IAAa,IAAQ,CACvE,MAAM0jL,EAAgB9vI,EAAO,QAAQi2B,GAAW,cAAc,YAAY,IAAI,EAAE,KAC5E7pE,EACF+kI,GAAazH,GAAK,MAAO,QAAS,iEAAiE58E,EAAc,KAAK,sCAAsCgjI,CAAa,gCAAgC,EAEzM3+C,GAAazH,GAAK,QAAS,UAAW,qEAAqE58E,EAAc,KAAK,GAAG,CAErI,CACF,CAAC,EAEDx3C,GACE,IAAMg3F,EAAY,sBACjBlgG,GAAa,CACRA,IAAa,IACf+kI,GAAazH,GAAK,MAAO,QAAS,yCAAyCp9B,EAAY,UAAU,gCAAgCA,EAAY,4BAA4B,yDAAyD,CAEtO,eAIAzlD,EAAqB,yHCvCrB7lB,GAAe+uJ,EAAA,EACfhpI,EAEM,MAFND,GAEM,CADJ9lB,GAAci6D,EAAAz4C,EAAA,KAEhBxhB,GAAwBgvJ,EAAA,EACxBhvJ,GAA8BivJ,EAAA,EAC9BjvJ,GAAekvJ,EAAA,WCdjB,IAAIC,GAAsB7sK,GAAgB,CACxC,KAAM,sBACN,MAAO,CAAC,UAAW,UAAW,SAAU,YAAY,EACpD,aAAc,GACd,MAAO,CACL,GAAI,CACF,KAAM,MACZ,EACI,YAAa,CACX,KAAM,OACN,QAAS,EACf,EACI,MAAO,CACL,KAAM,MACN,SAAU,EAChB,EACI,YAAa,CACX,QAAS,IACf,EACI,eAAgB,CACd,KAAM,SAEN,QAAQ3d,EAAM,CACZ,OAAOA,CACT,CAEN,EACI,eAAgB,CACd,KAAM,OACN,QAAS,EACT,UAAWmuB,GACFA,GAAQ,CAEvB,EACI,cAAe,CACb,KAAM,OACN,QAAS,EACT,UAAWA,GACFA,GAAQ,CAEvB,EACI,YAAa,CACX,KAAM,QACN,QAAS,EACf,CACA,EAEE,SAAU,CACJ,KAAK,cAAgB,QAAa,KAAK,cAAgB,MACzD,KAAK,WAAW,KAAK,WAAW,CAEpC,EAEA,MAAO,CACL,MAAO,CACL,QAAS,KAAK,IAAM,qBAAqB,KAAK,SAAW,KAAM,QAAO,CAAE,GACxE,MAAO,GACP,eAAgB,GAChB,sBAAuB,CAC7B,CACE,EAEA,QAAS,CACP,SAAU,CACJ,KAAK,eAAiB,KAAK,uBAAyB,KAAK,cAAc,SACzE,KAAK,uBAAyB,KAAK,cAAc,QAAU,GAAK,GAGlE,KAAK,MAAM,UAAW,CACpB,MAAO,KAAK,MACZ,MAAO,KAAK,aACpB,CAAO,CACH,EAEA,SAAU,CACR,KAAK,eAAiB,GACtB,KAAK,MAAM,UAAW,CACpB,MAAO,KAAK,MACZ,MAAO,KAAK,aACpB,CAAO,CACH,EAEA,QAAS,CACP,KAAK,eAAiB,GACtB,KAAK,MAAM,SAAU,CACnB,MAAO,KAAK,MACZ,MAAO,KAAK,aACpB,CAAO,CACH,EAEA,YAAY2zB,EAAQ,CACd,KAAK,eAAiB,KAAK,sBAAwB,KAAK,cAAc,OAAS,GACjF,KAAK,wBAGP,KAAK,wBAAuB,CAC9B,EAEA,UAAUA,EAAQ,CACZ,KAAK,eAAiB,KAAK,sBAAwB,GACrD,KAAK,wBAGP,KAAK,wBAAuB,CAC9B,EAEA,yBAA0B,CACxB,WAAW,IAAM,CACf,MAAM2oI,EAAY,SAAS,cAAc,IAAI,KAAK,SAAS,yBAAyB,EAC9EC,EAAc,SAAS,cAAc,IAAI,KAAK,SAAS,gEAAgE,EAE7H,GAAI,EAAEA,EAAY,WAAaD,EAAU,WAAaC,EAAY,UAAYA,EAAY,aAAeD,EAAU,UAAYA,EAAU,cAAe,CACtJ,IAAIE,EAAY,EAEZD,EAAY,UAAYD,EAAU,UACpCE,EAAYD,EAAY,UAAYA,EAAY,aAAeD,EAAU,aAChEC,EAAY,UAAYD,EAAU,YAC3CE,EAAYD,EAAY,WAG1BD,EAAU,SAAS,EAAGE,CAAS,CACjC,CACF,CAAC,CACH,EAEA,wBAAyB,CACnB,KAAK,kBACP,KAAK,WAAW,KAAK,gBAAgB,CAEzC,EAEA,2BAA4B,CACtB,KAAK,YACP,KAAK,uBAAsB,EAE3B,KAAK,MAAM,SAAS,KAAI,CAE5B,EAEA,WAAW3qL,EAAM,CACf,KAAK,MAAQ,KAAK,eAAeA,CAAI,EACrC,KAAK,sBAAwB,EAC7B,KAAK,MAAM,SAAS,KAAI,EACxB,KAAK,MAAM,aAAcA,CAAI,CAC/B,EAEA,aAAa4tD,EAAQ,CACnB,OAAOA,EAAO,QAAQ,sBAAuB,MAAM,CACrD,EAEA,cAAc7xB,EAAM,CAClB,MAAM6a,EAAS,IAAI,OAAO,IAAI,KAAK,aAAa,KAAK,KAAK,CAAC,IAAK,IAAI,EACpE,OAAO7a,EAAK,QAAQ6a,EAAQ,qBAAqB,CACnD,EAEA,YAAa,CACX,KAAK,MAAQ,EACf,EAEA,UAAW,CACT,OAAO,KAAK,MAAM,QACpB,EAEA,YAAa,CACX,KAAK,MAAM,SAAS,MAAK,EACzB,KAAK,QAAO,CACd,EAEA,WAAY,CACV,KAAK,MAAM,SAAS,KAAI,EACxB,KAAK,OAAM,CACb,CAEJ,EACE,SAAU,CACR,WAAY,CACV,MAAO,GAAG,KAAK,OAAO,UACxB,EAEA,eAAgB,CACd,MAAMA,EAAS,IAAI,OAAO,KAAK,aAAa,KAAK,KAAK,EAAG,GAAG,EAC5D,OAAO,KAAK,MAAM,OAAO52C,GAAQ,KAAK,eAAeA,CAAI,EAAE,MAAM42C,CAAM,CAAC,CAC1E,EAEA,eAAgB,CACd,OAAO,KAAK,gBAAkB,KAAK,MAAM,QAAU,KAAK,gBAAkB,KAAK,cAAc,OAAS,KAAK,aAC7G,EAEA,kBAAmB,CACjB,OAAO,KAAK,eAAiB,KAAK,sBAAwB,KAAK,cAAc,OAAS,KAAK,cAAc,KAAK,qBAAqB,EAAI,MACzI,CAEJ,CACA,CAAC,EAEDziC,GAAY,iBAAiB,EAE7B,MAAMgtC,GAAa,CAAC,IAAI,EAClBE,GAAa,CAAC,KAAM,aAAa,EACjCE,GAAa,CACjB,IAAK,EACL,MAAO,uBACT,EACMG,GAAa,CACjB,IAAK,EACL,MAAO,8BACT,EACMK,GAAa,CAAC,UAAW,cAAc,EACvCw3C,GAAa,CAAC,WAAW,EACzBC,GAAa,CAAC,YAAa,WAAW,EACtCC,GAAa,CACjB,IAAK,EACL,MAAO,8BACT,EAEArlF,GAAU,EAEV,SAAS6T,GAAO6gC,EAAMxH,EAAQspI,EAAQC,EAAQC,EAAOC,EAAU,CAC7D,OAAOzmK,EAAS,EAAIsW,EAAmB,MAAO,CAC5C,GAAIkuB,EAAK,UACT,MAAO,kBACX,EAAK,CAACn0C,GAAeq2K,EAAmB,QAASnvJ,GAAW,CACxD,IAAK,WACL,GAAIitB,EAAK,QACT,MAAO,yBACP,KAAM,OACN,YAAaA,EAAK,YAClB,sBAAuBxH,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIQ,GAAUgH,EAAK,MAAQhH,GACxE,QAASR,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,SAAWA,EAAK,QAAQ,GAAGlhD,CAAI,GACpF,QAAS05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,SAAWA,EAAK,QAAQ,GAAGlhD,CAAI,GACpF,OAAQ05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAI,IAAI15C,IAASkhD,EAAK,QAAUA,EAAK,OAAO,GAAGlhD,CAAI,GACjF,UAAW,CAAC05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIlY,GAASJ,GAAc,IAAIphC,IAASkhD,EAAK,aAAeA,EAAK,YAAY,GAAGlhD,CAAI,EAAG,CAAC,SAAS,CAAC,EAAG,CAAC,MAAM,CAAC,GAAI05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIlY,GAASJ,GAAc,IAAIphC,IAASkhD,EAAK,WAAaA,EAAK,UAAU,GAAGlhD,CAAI,EAAG,CAAC,SAAS,CAAC,EAAG,CAAC,IAAI,CAAC,GAAI05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIlY,GAASJ,GAAc,IAAIphC,IAASkhD,EAAK,wBAA0BA,EAAK,uBAAuB,GAAGlhD,CAAI,EAAG,CAAC,SAAS,CAAC,EAAG,CAAC,OAAO,CAAC,GAAI05C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAIlY,GAASJ,GAAc,IAAIphC,IAASkhD,EAAK,2BAA6BA,EAAK,0BAA0B,GAAGlhD,CAAI,EAAG,CAAC,SAAS,CAAC,EAAG,CAAC,KAAK,CAAC,EAAE,EACllB,aAAc,KAClB,EAAKkhD,EAAK,MAAM,EAAG,KAAM,GAAIzH,EAAU,EAAG,CAAC,CAACha,GAAYyhB,EAAK,KAAK,CAAC,CAAC,EAAGA,EAAK,eAAiBxkC,EAAS,EAAIsW,EAAmB,MAAO2mB,GAAY,CAACuH,EAAK,OAAO,aAAa,GAAKxkC,EAAS,EAAIsW,EAAmB,MAAO8mB,GAAY,CAACx9B,GAAW4kC,EAAK,OAAQ,aAAa,CAAC,CAAC,GAAK1sB,EAAmB,GAAI,EAAI,GAAI9X,EAAU,EAAI,EAAGsW,EAAmBld,GAAU,KAAM+F,GAAWqlC,EAAK,cAAe,CAAC9oD,EAAMgJ,KAC7Xsb,EAAS,EAAIsW,EAAmB,MAAO,CAC5C,MAAOn6B,GAAe,CAAC,6BAA8B,CACnD,oCAAqCqoD,EAAK,uBAAyB9/C,CAC3E,CAAO,CAAC,EACF,IAAKA,EACL,YAAas4C,EAAO,CAAC,IAAMA,EAAO,CAAC,EAAItY,GAAc,IAAM,CAAC,EAAG,CAAC,SAAS,CAAC,GAC1E,QAAS8Y,GAAUgH,EAAK,WAAW9oD,CAAI,EACvC,aAAc8hD,GAAUgH,EAAK,sBAAwB9/C,CAC3D,EAAO,CAAC8/C,EAAK,OAAO,gBAAgB,GAAKxkC,EAAS,EAAIsW,EAAmB,OAAQ,CAC3E,IAAK,EACL,MAAO,kCACP,YAAakuB,EAAK,eAAe9oD,CAAI,CAC3C,EAAO,CAACkkB,GAAW4kC,EAAK,OAAQ,iBAAkB,CAC5C,KAAM9oD,EACN,eAAgB8oD,EAAK,eACrB,cAAeA,EAAK,aAC1B,CAAK,CAAC,EAAG,EAAGywC,EAAU,IAAMj1E,EAAS,EAAIsW,EAAmB,OAAQ,CAC9D,IAAK,EACL,MAAO,kCACP,YAAakuB,EAAK,eAAe9oD,CAAI,EACrC,UAAW8oD,EAAK,cAAcA,EAAK,eAAe9oD,CAAI,CAAC,CAC7D,EAAO,KAAM,EAAGw5F,EAAU,EAAE,EAAG,GAAIz3C,EAAU,EAC1C,EAAG,GAAG,GAAI+G,EAAK,OAAO,aAAa,GAAKxkC,EAAS,EAAIsW,EAAmB,MAAO6+D,GAAY,CAACv1E,GAAW4kC,EAAK,OAAQ,aAAa,CAAC,CAAC,GAAK1sB,EAAmB,GAAI,EAAI,CAAC,CAAC,GAAKA,EAAmB,GAAI,EAAI,CAAC,EAAG,EAAG+kB,EAAU,CACzN,CAEAqpI,GAAO,OAASviK,GAChBuiK,GAAO,UAAY,kBAMnB,IAAIS,IAA0B,IAAM,CAElC,MAAMC,EAAcV,GAEpB,OAAAU,EAAY,QAAU1/J,GAAO,CAC3BA,EAAI,UAAU,sBAAuB0/J,CAAW,CAClD,EAEOA,CACT,KC7QA,MAAMC,GAA8B,CAClC,SAAUlnD,GAAS,aACnB,QAAS,IACT,WAAY,2BACZ,gBAAiB,GACjB,mBAAoB,kBACpB,eAAgB,YAChB,qBAAsB,oBACxB,EAEO,SAASzsH,GAAM,CAAE,OAAA6iC,GAA8B,CACpDA,EAAO,WAAW,CAACpwB,EAAI81B,EAAOx7C,IAAS,CACrC,SAAS,MAAQ0lB,EAAG,KAAK,OAAS,eAClC1lB,EAAA,CACF,CAAC,EAED,MAAMinB,EAAMke,GAAUyhG,EAAG,EACzB,OAAA3/G,EAAI,IAAI6uB,CAAM,EAAE,IAAIqvI,GAAOyB,EAAY,EAAE,IAAIC,EAAe,EAAE,IAAIpoI,GAAA,CAAa,EAAE,IAAIqoI,EAAQ,EAC7F7/J,EAAI,MAAM,MAAM,EAEhBA,EAAI,OAAO,aAAe,CAAC/mB,EAAK+M,IAAa,CAC3C,QAAQ,MAAMA,EAAU/M,CAAG,CAC7B,EAEO+mB,CACT,CCzBA,eAAe8/J,IAA6B,CAU5C,CAGAA,GAAA,EACG,KAAK,SAAY,CAChB,MAAMxjI,EAAW,MAAM,MAAM,wBAAyB,CACpD,OAAQ,MACT,EAGD,GAAIA,EAAS,GAAI,CACf,MAAMyjI,EAAe,MAAMzjI,EAAS,OACpChB,GAAiBykI,CAAY,CAC/B,MACE,QAAQ,MAAM,8BAA8B,CAEhD,CAAC,EAEA,KAAK,IAAM,CACV/zK,GAAM,CAAE,OAAQmwJ,GAAA,EAAc,CAChC,CAAC","names":["makeMap","str","map","key","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isRegExp","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","writable","looseToNumber","n","toNumber","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","normalizeProps","props","klass","style","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","isRef","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","l","currentEffectScope","fromParent","last","effectScope","getCurrentScope","onScopeDispose","failSilently","activeSub","pausedQueueEffects","ReactiveEffect","batch","cleanupEffect","prepareDeps","prevEffect","prevShouldTrack","shouldTrack","cleanupDeps","link","removeSub","isDirty","batchDepth","batchedSub","batchedComputed","sub","isComputed","startBatch","endBatch","e","next","error","err","head","tail","prev","removeDep","refreshComputed","computed","globalVersion","dep","prevSub","soft","nextSub","prevDep","nextDep","trackStack","pauseTracking","resetTracking","cleanup","Link","Dep","debugInfo","addSub","currentTail","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","ARRAY_ITERATE_KEY","track","target","type","depsMap","trigger","newValue","oldTarget","run","targetIsArray","isArrayIndex","newLength","key2","getDepFromReactive","object","depMap","reactiveReadArray","array","raw","toRaw","isShallow","toReactive","shallowReadArray","arrayInstrumentations","iterator","args","x","thisArg","apply","searchProxy","separator","noTracking","reduce","comparer","self","method","wrapValue","iter","result","arrayProto","wrappedRetFn","needsWrap","methodFn","result2","wrappedFn","index","acc","isProxy","isNonTrackableKeys","builtInSymbols","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","hadKey","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","shallowReadonlyHandlers","toShallow","getProto","createIterableMethod","rawTarget","targetIsMap","isPair","isKeyOnly","innerIterator","wrap","toReadonly","done","createReadonlyMethod","createInstrumentations","shallow","instrumentations","rawKey","has","callback","observed","get","hadItems","createInstrumentationGetter","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","shallowReadonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","shallowReadonly","baseHandlers","collectionHandlers","proxyMap","targetType","existingProxy","proxy","isReactive","markRaw","r","ref","createRef","shallowRef","rawValue","RefImpl","useDirectValue","unref","ref2","toValue","source","shallowUnwrapHandlers","proxyRefs","objectWithRefs","CustomRefImpl","factory","set","newVal","customRef","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","defaultValue","ComputedRefImpl","setter","isSSR","getterOrOptions","debugOptions","getter","INITIAL_WATCHER_VALUE","cleanupMap","activeWatcher","onWatcherCleanup","cleanupFn","owner","cleanups","watch","cb","options","immediate","deep","once","scheduler","augmentJob","call","reactiveGetter","source2","traverse","effect","boundCleanup","forceTrigger","isMultiSource","s","currentEffect","baseGetter","depth","scope","watchHandle","_cb","job","immediateFirstRun","currentWatcher","cleanup2","seen","callWithErrorHandling","instance","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","errorHandler","throwUnhandledErrorInProduction","cur","exposedInstance","errorInfo","errorCapturedHooks","logError","throwInProd","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","jobId","lastJob","queueFlush","flushJobs","queuePostFlushCb","flushPreFlushCbs","flushPostFlushCbs","deduped","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","pushScopeId","popScopeId","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","withDirectives","vnode","directives","getComponentPublicInstance","bindings","dir","modifiers","invokeDirectiveHook","prevVNode","oldBindings","binding","hook","TeleportEndKey","isTeleport","isTeleportDisabled","isTeleportDeferred","isTargetSVG","isTargetMathML","resolveTarget","select","targetSelector","TeleportImpl","n1","n2","container","anchor","parentComponent","parentSuspense","namespace","slotScopeIds","optimized","internals","mountChildren","patchChildren","patchBlockChildren","insert","querySelector","createText","createComment","disabled","shapeFlag","children","dynamicChildren","placeholder","mainAnchor","mount","container2","anchor2","mountToTarget","targetAnchor","prepareAnchor","updateCssVars","queuePostRenderEffect","wasDisabled","currentContainer","currentAnchor","traverseStaticChildren","moveTeleport","nextTarget","unmount","hostRemove","doRemove","targetStart","shouldRemove","child","hydrateTeleport","parentAnchor","move","moveType","isReorder","node","nextSibling","parentNode","hydrateChildren","hydrateDisabledTeleport","node2","vnode2","targetNode","Teleport","isDisabled","leaveCbKey","enterCbKey","useTransitionState","state","onMounted","onBeforeUnmount","TransitionHookValidator","BaseTransitionPropsValidators","recursiveGetSubtree","subTree","BaseTransitionImpl","slots","getCurrentInstance","getTransitionRawChildren","findNonCommentChild","rawProps","mode","emptyPlaceholder","innerChild","getInnerChild$1","enterHooks","resolveTransitionHooks","hooks","Comment","setTransitionHooks","oldInnerChild","isSameVNodeType","leavingHooks","earlyRemove","delayedLeave","leavingVNodesCache","getLeavingNodesForType","BaseTransition","leavingVNodes","postClone","appear","persisted","onBeforeEnter","onEnter","onAfterEnter","onEnterCancelled","onBeforeLeave","onLeave","onAfterLeave","onLeaveCancelled","onBeforeAppear","onAppear","onAfterAppear","onAppearCancelled","callHook","callAsyncHook","hook2","leavingVNode","afterHook","cancelHook","called","cancelled","hooks2","isKeepAlive","cloneVNode","keepComment","parentKey","keyedFragmentCount","Fragment","defineComponent","extraOptions","markAsyncBoundary","useTemplateRef","refs","pendingSetRefMap","setRef","rawRef","oldRawRef","isUnmount","isAsyncWrapper","refValue","oldRef","setupState","rawSetupState","canSetSetupRef","invalidatePendingSetRef","oldRawRefAtom","_isString","_isRef","doSet","existing","pendingSetRef","KeepAliveImpl","sharedContext","keys","current","patch","_unmount","createElement","storageContainer","instance2","vnodeHook","invokeVNodeHook","invalidateMount","resetShapeFlag","pruneCache","filter","getComponentName","pruneCacheEntry","cached","include","exclude","matches","pendingCacheKey","cacheSubtree","isSuspense","getInnerChild","onUpdated","suspense","da","rawVNode","isVNode","comp","max","cachedVNode","KeepAlive","pattern","onActivated","registerKeepAliveHook","onDeactivated","currentInstance","wrappedHook","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","reset","setCurrentInstance","createHook","lifecycle","isInSSRComponentSetup","onBeforeMount","onBeforeUpdate","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","COMPONENTS","DIRECTIVES","resolveComponent","maybeSelfReference","resolveAsset","NULL_DYNAMIC_COMPONENT","resolveDynamicComponent","component","resolveDirective","warnMissing","Component","selfName","resolve","registry","renderList","renderItem","sourceIsArray","sourceIsReactiveArray","isReadonlySource","createSlots","dynamicSlots","slot","j","renderSlot","fallback","noSlotted","hasProps","openBlock","createBlock","createVNode","validSlotContent","ensureValidVNode","slotKey","rendered","vnodes","toHandlers","preserveCaseIfNecessary","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","instanceWatch","hasSetupBinding","PublicInstanceProxyHandlers","data","accessCache","appContext","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","propsOptions","cssModules","descriptor","useSlots","getContext","useAttrs","calledFunctionName","createSetupContext","normalizePropsOrEmits","mergeDefaults","defaults","opt","mergeModels","createPropsRestProxy","excludedKeys","applyOptions","publicThis","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","render","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","inheritAttrs","components","filters","resolveInjections","methodHandler","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","inject","h","createPathGetter","handler","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","asMixin","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","pluginCleanupFns","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","lastApp","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","internalObjectProto","createInternalObject","isInternalObject","initProps","isStateful","attrs","setFullProps","updateProps","rawPrevProps","patchFlag","rawCurrentProps","hasAttrsChanged","propsToUpdate","isEmitListener","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","mixinPropsCache","normalizePropsOptions","hasExtends","extendProps","raw2","normalizedKey","validatePropName","prop","propType","shouldCast","shouldCastTrue","typeName","isInternalKey","normalizeSlotValue","normalizeVNode","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","assignSlots","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","queueEffectWithSuspense","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","getNextHostNode","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","moveStaticNode","removeStaticNode","mountElement","customElement","patchElement","transition","dirs","resolveChildrenNamespace","setScopeId","needCallTransitionHooks","needTransition","scopeId","parentVNode","cloneIfMounted","oldProps","newProps","toggleRecurse","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","shouldUpdateComponent","updateComponentPreRender","componentUpdateFn","bu","u","parent","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","renderComponentRoot","prevTree","updateHOCHostEl","bm","root","isAsyncWrapperVNode","scopedInitialVNode","update","nextVNode","prevProps","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","unmountChildren","oldLength","commonLength","nextChild","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","anchorVNode","leave","delayLeave","afterLeave","remove2","performLeave","cacheIndex","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","teleportEnd","isFlushing","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","ssrContextKey","useSSRContext","watchEffect","doWatch","watchSyncEffect","flush","baseWatchOptions","runsImmediately","ssrCleanup","watchStopHandle","isPre","isFirstRun","watch$1","path","segments","useModel","camelizedName","hyphenatedName","getModelModifiers","localValue","prevSetValue","prevEmittedValue","propValue","emittedValue","i2","modelName","emit","event","rawArgs","handlerName","onceHandler","mixinEmitsCache","normalizeEmitsOptions","extendEmits","normalizedFromExtend","withProxy","renderCache","fallthroughAttrs","proxyToUse","thisProxy","render2","getFunctionalFallthrough","blockStack","filterModelListeners","prevChildren","nextProps","nextChildren","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","inVOnce","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","extraProps","mergeRef","cloneTransition","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","isAsyncSetup","resolvedResult","handleSetupResult","finishComponentSetup","skipOptions","attrsProxyHandlers","includeInferred","computed$1","propsOrChildren","isMemoSame","memo","policy","tt","unsafeToTrustedHTML","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","selector","before","template","wrapper","TRANSITION","ANIMATION","vtcKey","DOMTransitionPropsValidators","TransitionPropsValidators","decorate$1","t","Transition","resolveTransitionProps","h2","hasExplicitCallback","baseProps","duration","enterFromClass","enterActiveClass","enterToClass","appearFromClass","appearActiveClass","appearToClass","leaveFromClass","leaveActiveClass","leaveToClass","durations","normalizeDuration","enterDuration","leaveDuration","finishEnter","isAppear","isCancelled","removeTransitionClass","finishLeave","makeEnterHook","nextFrame","addTransitionClass","whenTransitionEnds","forceReflow","NumberOf","cls","_vtc","endId","expectedType","explicitTimeout","resolveIfNotStale","timeout","propCount","getTransitionInfo","endEvent","ended","onEnd","styles","getStyleProperties","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","d","toMs","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","vShow","setDisplay","CSS_VAR_TEXT","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","attrName","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","camelize$1","positionMap","newPositionMap","moveCbKey","decorate","TransitionGroupImpl","moveClass","hasCSSTransform","callPendingCbs","recordPosition","movedChildren","applyTranslation","cssTransitionProps","TransitionGroup","oldPos","newPos","dx","dy","clone","getModelAssigner","onCompositionStart","onCompositionEnd","assignKey","castValue","trim","number","vModelText","lazy","castToNumber","elValue","vModelCheckbox","_","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","vModelSelect","isSetModel","selectedVal","setSelected","_binding","isMultiple","isArrayValue","option","optionValue","optionType","systemModifiers","modifierGuards","withModifiers","cacheKey","guard","keyNames","withKeys","eventKey","k","rendererOptions","renderer","ensureRenderer","createApp","containerOrSelector","normalizeContainer","resolveRootNamespace","isBrowser","isRouteComponent","isESModule","applyToParams","params","newParams","noop","partialOptions","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery$1","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery$1","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationType$1","NavigationDirection","NavigationDirection$1","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","ErrorTypes","ErrorTypes$1","NavigationFailureSymbol","createRouterError","isNavigationFailure","propertiesToLog","stringifyRoute","parseQuery","search","searchParams","searchParam","eqPos","currentValue","stringifyQuery","value$1","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","registerGuard","record","removeFromList","onBeforeRouteLeave","leaveGuard","activeRecord","guardToPromiseFn","runWithContext","enterCallbackArray","reject","valid","guardReturn","guardCall","extractComponentsGuards","matched","guardType","guards","rawComponent","componentPromise","resolvedComponent","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","recordFrom","recordTo","createBaseLocation","createCurrentLocation","location$1","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","listener","pauseListeners","listen","teardown","beforeUnloadListener","history$1","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","replace$1","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","createWebHashHistory","TokenType","TokenType$1","TokenizerState","TokenizerState$1","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","PathScore","PathScore$1","REGEX_CHARS_RE","tokensToParser","score","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re$1","subPattern","re","parse","match","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","isLastScoreNegative","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","matcherRef","getRoutes","pickParams","parentMatcher","mergeMetaFields","clearRoutes","normalizeRecordProps","propsObject","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","guardEvent","preferSingleVNode","RouterLinkImpl","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matchedRoute$1","href$1","matcherLocation","targetParams","fullPath","href","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","failure$1","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","resolve$1","scrollBehavior","started","reactiveRoute","unmountApp","promise","useRouter","useRoute","_name","_useModel","__props","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_cache","_hoisted_3","_createTextVNode","_toDisplayString","_hoisted_4","_Fragment","_renderList","_withModifiers","$event","_hoisted_5","pageNumber","numberOfPages","showPagination","doublePageBuffer","pages","startIndex","endIndex","showEnd","page","_normalizeClass","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","addSubscription","subscriptions","onCleanup","removeSubscription","triggerSubscriptions","fallbackRunWithContext","ACTION_MARKER","ACTION_NAME","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","action","wrappedAction","afterCallbackSet","onErrorCallbackSet","after","onError","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","setupOptions","isSetupStore","useStore","hasContext","storeToRefs","rawStore","config","setDefaultConfig","defaultConfig","getDefaultConfig","useServiceControlStore","serviceControlUrl","monitoringUrl","isMonitoringDisabled","isMonitoringEnabled","getServiceControlUrl","refresh","getMonitoringUrl","mu","fetchFromServiceControl","suffix","requestOptions","fetchTypedFromServiceControl","response","fetchTypedFromMonitoring","postToServiceControl","payload","putToServiceControl","deleteFromServiceControl","deleteFromMonitoring","optionsFromMonitoring","patchToServiceControl","refreshTimer","viewModel","itemsPerPage","stopRefreshTimer","startRefreshTimer","loadData","_renderSlot","_ctx","_createBlock","ItemsPerPage","PaginationStrip","hookCallback","setHookCallback","input","hasOwnProp","isObjectEmpty","isUndefined","isNumber","arrLen","createUTC","format","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","isValid","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","isMoment","warn","msg","deprecate","firstTime","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","now","output","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","string","isFuture","pastFuture","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","p1","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","y","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","isUTC","month","date","stringGet","stringSet","prioritized","prioritizedLen","mod","indexOf","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","M","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","arr2","minl","normalizeLocale","chooseLocale","names","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","getLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","w","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","min","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","offsetFromString","chunkOffset","chunk","parts","cloneWithOffset","model","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","direction","period","dur","isAdding","updateOffset","subtract","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","properties","property","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","time","formats","sod","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","that","zoneDelta","monthDiff","wholeMonthDiff","adjust","toString","toISOString","keepOffset","utc","inspect","zone","prefix","datetime","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toArray","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","abbr","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","total","totalSign","ymSign","daysSign","hmsSign","proto$2","useDateFormatter","emptyDate","formatDateRange","dateRange","emptyText","fromDate","formatDate","dateInput","showLocalTime","showUtcTime","showRelative","moment","formatDateTooltip","titleValue","formatRelativeTime","formatLicenseDate","isValidDateRange","interval","title","updateText","Severity","heartbeatLinks","createLink","endpointName","failedMessagesLinks","groupId","messagesLinks","messageId","configurationLinks","throughputLinks","throughputEndpointLinks","throughputSetupLinks","monitoringLinks","historyPeriod","tab","routeLinks","_arrayLikeToArray","_arrayWithHoles","_arrayWithoutHoles","_classCallCheck","_defineProperties","_toPropertyKey","_createClass","_createForOfIteratorHelper","_unsupportedIterableToArray","F","_defineProperty","_iterableToArray","_iterableToArrayLimit","f","_nonIterableRest","_nonIterableSpread","ownKeys","_objectSpread2","_slicedToArray","_toConsumableArray","_toPrimitive","_typeof","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","_ref","_ref$userAgent","userAgent","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","IS_IE","_dt","E","q","H","Q","I","S","A","P","B","N","D","T","C","W","K","R","rt","gt","Ct","Ut","_t","Yt","qt","Ht","L","U","J","ol","dl","fl","ul","_ml","l$1","f$1","n$1","o$1","u$1","s$1","h$1","g$1","y$1","e$1","m$1","p$1","a$1","w$1","b$1","r$1","c$1","i$1","x$1","I$1","F$1","v$1","S$1","A$1","P$1","j$1","B$1","N$1","k$1","D$1","C$1","T$1","L$1","W$1","R$1","K$1","U$1","J$1","E$1","d$1","_$1","M$1","$t$1","z","Ht$1","Y$1","Zt$1","G$1","O$1","V$1","$$1","ro","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_CSS_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PSEUDO_ELEMENTS","PRODUCTION","familyProxy","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","_FONT_WEIGHT_TO_PREFIX","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","RESERVED_CLASSES","initial","getAttrConfig","attr","element","coerce","_ref2","_default","_config","_onChangeCb","onChange","d$2","meaninglessTransform","insertCss","css","headChildren","beforeChild","tagName","idPool","nextUniqueId","size","classArray","htmlEscape","joinAttributes","attributes","attributeName","joinStyles","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","innerTranslate","innerScale","innerRotate","transformForCss","_ref2$width","width","_ref2$height","height","baseStyles","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","InjectCSS","w$2","functions","_listener","loaded","domready","toHtml","abstractNodes","_abstractNodes$attrib","_abstractNodes$childr","iconFromMapping","mapping","iconName","subject","thisContext","toHex","unicode","normalizeIcons","icons","icon","expanded","defineIcons","_params$skipHooks","skipHooks","shims","FAMILY_NAMES","PREFIXES_FOR_FAMILY","familyId","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","isReserved","getIconName","cssPrefix","build","lookup","reducer","o$$1","a$$1","hasRegular","shimLookups","shim","maybeNameMaybeUnicode","getCanonicalPrefix","c$$1","byUnicode","byLigature","ligature","byAlias","byOldName","byOldUnicode","oldUnicode","newUnicode","getDefaultUsablePrefix","emptyCanonicalIcon","getFamilyId","family","famProps","v$$1","styleOrPrefix","_params$family","defined","moveNonFaClassesToRest","classNames","rest","sortedUniqueValues","_faCombinedClasses","getCanonicalIcon","_params$skipLookups","skipLookups","givenPrefix","faStyleOrFamilyClasses","nonStyleOrFamilyClasses","faStyles","_faStyles","_faStyles$","styleFromValues","canonical","getDefaultCanonicalPrefix","applyShimAndAlias","aliasIconName","newCanonicalFamilies","newCanonicalStyles","prefixOptions","_prefixOptions$givenP","_prefixOptions$styles","_prefixOptions$config","config$$1","isDuotoneFamily","valuesHasDuotone","defaultFamilyIsDuotone","canonicalPrefixIsDuotone","validPrefix","defaultPrefix","Library","_this","_len","definitions","additions","longPrefix","definition","_normalized$key","_plugins","_hooks","providers","defaultProviderKeys","registerPlugins","nextPlugins","mixout","tk","sk","chainHooks","accumulator","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","noAuto","dom","autoReplaceSvgRoot","autoReplace","_icon","canonicalIcon","_prefix","api","_params$autoReplaceSv","domVariants","abstractCreator","asIcon","main","mask","asSymbol","symbol","isLabeled","labels","label","makeInlineSvgAbstract","_params$icons","maskId","extra","_params$watchable","watchable","attrClass","makeLayersTextAbstract","_params$watchable2","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","_icon$slice","_icon$slice2","vectorData","missingIconResolutionMixin","maybeNotifyMissing","findIcon","noop$1","p$2","preamble","begin","perf","noop$2","isWatched","i2svg","hasPrefixAndIcon","hasBeenReplaced","getMutator","mutators","mutator","createElementNS","convertSVG","abstractObj","_params$ceFn","ceFn","nodeAsComment","comment","mutation","abstract","forSvg","splitClasses","newInnerHTML","performOperationSync","op","perform","mutations","callbackFunction","frame","mark","disableObservation","enableObservation","mo","observe","_options$treeCallback","treeCallback","_options$nodeCallback","nodeCallback","_options$pseudoElemen","pseudoElementsCallback","_options$observeMutat","observeMutationsRoot","objects","mutationRecord","_getCanonicalIcon","disconnect","styleParser","classParser","existingPrefix","existingIconName","innerText","attributesParser","extraAttributes","blankMeta","parseMeta","_classParser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","getKnownPrefixes","onTree","htmlClassList","hclAdd","hclRemove","prefixesDomQuery","p$$1","candidates","e$$1","resolvedMutations","onNode","resolveIcons","maybeIconDefinition","iconDefinition","_params$transform","_params$symbol","_params$mask","_params$maskId","_params$classes","classes","_params$attributes","_params$styles","ReplaceElements","providers$$1","_params$node","_params$callback","_ref3","Layers","assembler","LayersCounter","LayersText","computedFontSize","boundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_TO_PREFIX","FONT_FAMILY_WEIGHT_FALLBACK","fontFamily","weights","hexValueFromContent","cleaned","isSecondaryLayer","hasStylisticSet","codePoint","isPrependTen","isDoubled","getPrefix","fontWeight","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","replaceForPosition","pendingAttribute","alreadyProcessedPseudoElement","fontFamilyMatch","_content","hexValue","isV4","isSecondary","iconIdentifier","iconName4","processable","hasPseudoElement","pseudoSelector","parseCSSRuleForPseudos","selectorText","selectorSet","selectors","s$$1","_iterator","_step","selectorWithoutPseudo","searchPseudoElements","useAsNodeList","nodeList","_iterator2","_step2","stylesheet","_iterator3","_step3","rule","parsedSelectors","_iterator4","_step4","cleanSelectors","operations","PseudoElements","_unwatched","MutationObserver$1","parseTransformString","transformString","first","PowerTransforms","ALL_SPACE","fillBlack","deGroup","Masks","maskData","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","defs","MissingIconIndicator","reduceMotion","gChildren","FILL","ANIMATION_BASE","OPACITY_ANIMATE","dot","SvgSymbols","symbolData","plugins","parse$1","_objectWithoutProperties","_objectWithoutPropertiesLoose","objectWithKey","classList","_classes","commonjsGlobal","humps$1","module","global","_processKeys","convert","_isObject","_isDate","_isRegExp","_isBoolean","_isFunction","_isArray","separateWords","_isNumerical","chr","pascalize","camelized","decamelize","_processor","humps","_excluded","styleToObject","pair","idx","classToObject","className","abstractElement","_attrs$style","aStyle","otherAttrs","log","_console","normalizeIconArgs","FontAwesomeIcon","icon$1","renderedIcon","iconProps","_unref","faFilter","faEnvelope","faBell","faExclamation","faGauge","faTrash","faNoteSticky","faStickyNote","faPenToSquare","faEdit","faClock","faComment","faHeartPulse","faHeartbeat","faLaptop","faEnvelopeOpen","faPencil","faAngleRight","faCloud","faCircleExclamation","faExclamationCircle","faChartLine","faArrowTurnUp","faGear","faEraser","faCheck","faServer","faArrowRight","faXmark","faTimes","faFileLines","faRotateRight","faList","faClockRotateLeft","faAngleDown","faArrowDownShortWide","faChevronLeft","faArrowDown19","faBellSlash","faArrowDownZA","faTriangleExclamation","faExclamationTriangle","faWarning","faLock","faDownload","faArrowDown91","faPlus","faArrowRotateRight","faArrowRightRotate","faArrowDownWideShort","faRecycle","faArrowRotateLeft","faUndo","faArrowUpRightFromSquare","faExternalLink","faArrowsRotate","faRefresh","faListUl","faArrowDownAZ","faCircleInfo","faInfoCircle","navigateToEvent","subIcon","FAIcon","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","TimeSince","pageModel","DataView","EventLogItem","typeText","license","configuration","LicenseStatus","LicenseWarningLevel","secondDuration","minuteDuration","hourDuration","dayDuration","useFormatTime","formatTimeValue","useGetDayDiffFromToday","today","useFormatLargeNumber","num","decimals","suffixes","exp","timeValue","displayTwoDigits","strValue","useLicenseStore","serviceControlStore","licenseStatus","loading","licenseEdition","formattedInstanceName","formattedExpirationDate","formattedUpgradeProtectionExpiration","lic","getLicense","isSubscriptionLicense","isUpgradeProtectionLicense","getUpgradeDaysLeft","getSubscriptionDaysLeft","getTrialDaysLeft","getLicenseWarningLevel","isExpiring","getExpiringText","expirationDate","expiringIn","licenseStore","_component_RouterLink","ConditionalRender","LicenseExpired","FailedMessageStatus","tryOnScopeDispose","isClient","createFilterWrapper","debounceFilter","timer","maxTimer","lastRejector","_clearTimeout","timer$1","lastInvoker","invoke$1","maxDuration","useDebounceFn","useCounter","_initialValue","count","inc","dec","useTimeoutFn","immediateCallback","isPending","clear","stop","watchImmediate","computedAsync","evaluationCallback","optionsOrRef","_globalThis$reportErr","evaluating","counter","onInvalidate","counterAtBeginning","hasFinished","cancelCallback","defaultWindow","defaultDocument","unrefElement","elRef","_$el","plain","useEventListener","firstParamTargets","test","stopWatch","_firstParamTargets$va","_firstParamTargets$va2","raw_targets","raw_events","raw_listeners","raw_options","optionsClone","onClickOutside","window$1","ignore","capture","detectIframe","controls","shouldListen","shouldIgnore","target$1","hasMultipleRoots","vm","checkMultipleRoots","isProcessingClick","_window$document$acti","useDocumentVisibility","document$1","visibility","useMemoize","resolver","generateKey","_loadData","deleteData","clearData","memoized","useSwipe","onSwipe","onSwipeEnd","onSwipeStart","passive","coordsStart","coordsEnd","diffX","diffY","isThresholdExceeded","isSwiping","getTouchEventCoords","updateCoordsStart","updateCoordsEnd","listenerOptions","onTouchEnd","stops","useTimeoutPoll","loop","resume","pause","useConnectionsAndStatsStore","failedMessageCount","archivedMessageCount","pendingRetriesMessageCount","disconnectedEndpointsCount","requiresFullFailureDetailsSubscriberCount","requiresFullFailureDetails","connectionState","monitoringConnectionState","displayConnectionsWarning","failedMessagesResult","getErrorMessagesCount","archivedMessagesResult","pendingRetriesResult","disconnectedEndpointsCountResult","getDisconnectedEndpointsCount","failedMessages","archivedMessages","pendingRetries","disconnectedEndpoints","status","fetchAndSetConnectionState","fetchFunction","defaultResult","useFetchWithAutoRefresh","fetch","intervalMs","watchStop","isRefreshing","fetchWrapper","previous","updateInterval","newIntervalMs","useAutoRefresh","useStoreAutoRefresh","autoRefresh","useConnectionsAndStatsAutoRefresh","connectionStore","useCustomChecksStore","failingCount","failedChecks","skipRefresh","dismissCustomCheck","guid","useCustomChecksStoreAutoRefresh","DashboardItem","EndpointStatus","SortDirection","getSortFunction","sortFunc","firstElement","secondElement","reSemver","isUpgradeAvailable","currentVersion","latestVersion","latest","isSupported","minSupportedVersion","minSupported","defaultToZero","useEnvironmentAndVersionsStore","environment","newVersions","serviceControlIsGreaterThan","requiredVersion","productsResult","useServiceProductUrls","scResult","getPrimaryVersion","mResult","setMonitoringVersion","products","scVer","getData","spURL","scURL","servicePulse","serviceControl","sp","sc","latestSP","latestSC","useEnvironmentAndVersionsAutoRefresh","minimumSCVersionForEndpointSettings","useIsEndpointSettingsSupported","environmentStore","useEndpointSettingsStore","defaultEndpointSettingsValue","isEndpointSettingsSupported","getEndpointSettings","ColumnNames","columnSortings","endpoint","useHeartbeatsStore","endpointSettingsStore","sortByInstances","defaultTrackingInstancesValue","endpointFilterString","endpointInstances","settings","sortedEndpoints","mapEndpointsToLogical","filteredEndpoints","healthyEndpoints","filteredHealthyEndpoints","unhealthyEndpoints","filteredUnhealthyEndpoints","failedHeartbeatsCount","logical","endpointInstancesThatAreNotMuted","setEndpointFilterString","data2","updateEndpointSettings","endpoints","instanceDisplayText","setItemsPerPage","aliveCount","downCount","previousMax","useHeartbeatsStoreAutoRefresh","statsStore","ServiceControlAvailable","LicenseNotExpired","HeartbeatsDashboardItem","FailedMessagesDashboardItem","CustomChecksDashboardItem","EventItemShort","isRouteSelected","pathRoute","showPendingRetry","connectionsAndStatsStore","_withDirectives","VueCookiesManager","propertyName","keyName","expireTimes","domain","secure","sameSite","_expires","_expireTime","_keys","_index","GLOBAL_COOKIES_MANAGER","useCookies","cookies","useMonitoringHistoryPeriodStore","periods","getHistoryPeriod","requestedPeriod","allPeriods","setHistoryPeriod","useMonitoringStore","historyPeriodStore","grouping","sortBy","endpointList","disconnectedEndpointCount","filterString","endpointListCount","endpointListIsEmpty","endpointListIsGrouped","getEndpointList","updateEndpointList","updateFilterString","withoutFilter","updateGroupedEndpoints","getAllMonitoredEndpoints","updateGroupSegments","sortEndpointList","exceptionGroups","exceptionGroup","monitoredEndpoint","updateSelectedGrouping","groupSize","groups","newGrouping","parseEndpoint","resultGroup","sortGroupedEndpointList","maxGroupSegments","groupSegments","endpointSegments","comparator","propertyA","propertyB","endpointShortNameComparator","groupNameA","groupNameB","endpointListGroupA","endpointListGroupB","sortByColumn","activeSortColumn","isSortActive","sortIcon","toggleSort","$slots","_component_tippy","formatGraphDuration","lastValue","formatGraphDecimalFromNumber","deci","formatGraphDecimal","largeGraphsMinimumYAxis","smallGraphsMinimumYAxis","useGraph","plotdata","minimumyaxis","minPoints","valuesPath","valuesArea","maxYaxis","average","averageLine","createGraph","plotData","xTick","coordinates","points","yValue","Path","minYaxis","minimumYaxis","#pathElements","#complete","hover","averageLabelValue","averageLabelSuffix","averageLabelPosition","top","bottom","right","left","auto","basePlacements","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","read","afterRead","beforeMain","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","getWindow","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","initialStyles","styleProperties","attribute","applyStyles$1","getBasePlacement","getBoundingClientRect","includeScale","rect","scaleX","scaleY","offsetHeight","offsetWidth","getLayoutRect","clientRect","contains","rootNode","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","min$1","max$1","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","arrowElement","popperOffsets","basePlacement","axis","isVertical","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","axisProp","effect$1","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","gpuAcceleration","adaptive","roundOffsets","isFixed","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_Object$assign","computeStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","computeStyles$1","effect$2","_options$scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","getOppositePlacement","hash$1","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","html","visualViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflowX","overflowY","getScrollParent","listScrollParents","isBody","updatedList","rectToClientRect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","placements$1","allowedPlacements","overflows","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","visited","modifier","sort","requires","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","mergeByName","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","runModifierEffects","_state$elements","_state$orderedModifie","_state$orderedModifie2","_ref3$options","noopFn","createPopper","BOX_CLASS","CONTENT_CLASS","BACKDROP_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","TOUCH_OPTIONS","TIPPY_DEFAULT_APPEND_TO","getValueAtIndexOrReturn","isType","invokeWithArgsOrReturn","debounce$1","removeProperties","splitBySpaces","normalizeToArray","pushIfUnique","unique","getBasePlacement$1","arrayFrom","removeUndefinedProps","div","isElement$1","isNodeList","isMouseEvent","isReferenceElement","getArrayOfElements","setTransitionDuration","els","setVisibilityState","getOwnerDocument","elementOrElements","_normalizeToArray","isCursorOutsideInteractiveBorder","popperTreeData","clientX","clientY","popperState","interactiveBorder","topDistance","bottomDistance","leftDistance","rightDistance","exceedsTop","exceedsBottom","exceedsLeft","exceedsRight","updateTransitionEndListener","box","actualContains","_target$getRootNode","currentInput","lastMouseMoveTime","onDocumentTouchStart","onDocumentMouseMove","onWindowBlur","activeElement","bindGlobalEventListeners","isIE11","pluginProps","renderProps","defaultProps","defaultKeys","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","getDataAttributeProps","propKeys","valueAsString","evaluateProps","innerHTML","dangerouslySetInnerHTML","createArrowElement","setContent","getChildren","boxChildren","onUpdate","_getChildren","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","isVisibleFromClick","didHideDueToDocumentMouseDown","didTouchMove","ignoreOnFirstUpdate","lastTriggerEvent","currentTransitionEndListener","onFirstUpdate","debouncedOnMouseMove","onMouseMove","currentTarget","popperInstance","clearDelayTimeouts","setProps","show","hideWithInteractivity","enable","disable","_props$render","pluginsHooks","hasAriaExpanded","addListeners","handleAriaExpandedAttribute","handleStyles","invokeHook","scheduleShow","getDocument","getNormalizedTouchSettings","touch","getIsCustomTouchBehavior","getIsDefaultRenderFn","_instance$props$rende","getCurrentTarget","getDefaultTemplateChildren","getDelay","isShow","fromHide","shouldInvokePropsHook","pluginHooks","_instance$props","handleAriaContentAttribute","aria","nodes","cleanupInteractiveMouseListeners","onDocumentPress","actualTarget","removeDocumentPress","onTouchMove","onTouchStart","addDocumentPress","onTransitionedOut","onTransitionEnd","onTransitionedIn","on","eventType","onTrigger","onMouseLeave","onBlurOrFocusOut","removeListeners","_lastTriggerEvent","shouldScheduleClickHide","isEventListenerStopped","wasFocused","scheduleHide","isCursorOverReferenceOrPopper","getNestedPopperTree","_instance$popperInsta","shouldBail","createPopperInstance","destroyPopperInstance","_instance$props2","popperOptions","getReferenceClientRect","moveTransition","computedReference","tippyModifier","_getDefaultTemplateCh","appendTo","delay","_getNormalizedTouchSe","touchValue","touchDelay","nestedPopper","isAlreadyVisible","isTouchAndTouchDisabled","_getDefaultTemplateCh2","_instance$popperInsta2","_getDefaultTemplateCh3","_box","isAlreadyHidden","_getDefaultTemplateCh4","tippy","targets","optionalProps","elements","instances","applyStylesModifier","createSingleton","tippyInstances","_optionalProps$popper","individualInstances","references","triggerTargets","overrides","interceptSetPropsCleanups","shownOnCreate","setTriggerTargets","setReferences","enableInstances","isEnabled","interceptSetProps","singleton","originalSetProps","prepareInstance","overrideProps","_references$index","originalShow","nextInstances","animateFill","backdrop","createBackdropElement","transitionDuration","mouseCoords","activeInstances","storeMouseCoords","addMouseCoordsListener","removeMouseCoordsListener","followCursor","isInternalUpdate","wasFocusEvent","isUnmounted","getIsInitialBehavior","addListener","removeListener","unsetGetReferenceClientRect","isCursorOverReference","relativeX","relativeY","create","getProps","_props$popperOptions","inlinePositioning","cursorRectIndex","triedPlacements","_getReferenceClientRect","getInlineBoundingClientRect","setInternalProps","addModifier","cursorRect","currentBasePlacement","boundingRect","clientRects","firstRect","lastRect","isTop","minLeft","maxRight","measureRects","_top","_bottom","_left","_right","_width","_height","sticky","getReference","shouldCheck","prevRefRect","prevPopRect","updatePosition","currentRefRect","currentPopRect","areRectsDifferent","rectA","rectB","isComponentInstance","useTippy","opts","headlessApp","getContainer","getContent","newContent","unwrappedContent","refreshContent","useSingleton","_b","TippyComponent","elem","findParentHelper","contentElem","getOptions","contentSlot","contentTag","findParentHelperNode","booleanProps","TippySingleton","withArrow","setDefaultProps$1","MessageType","InstanceName","EndpointName","Throughput","ScheduledRetries","ProcessingTime","CriticalTime","QueueLength","monitoringHistoryPeriodStore","monitoringStore","isGrouped","shortName","supportsEndpointCount","processingTimeGraphDuration","criticalTimeGraphDuration","Tippy","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_directive_tippy","_hoisted_15","_hoisted_16","SmallGraph","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_33","_hoisted_34","_hoisted_35","_hoisted_36","_hoisted_37","_hoisted_38","_hoisted_40","_hoisted_41","_hoisted_42","_hoisted_43","_hoisted_44","activeColumn","ColumnHeader","endpointGroup","groupedEndpoint","EndpointListRow","__emit","debounceUpdateModel","textField","__expose","focus","selectGroup","saveSelectedGroup","getDefaultSelectedGroup","storedGroupSelection","selectedPeriod","selectHistoryPeriod","PeriodSelector","GroupBy","FilterInput","useConfigurationStore","isMassTransitConnected","configurationStore","MonitoringFilter","noData","refreshInterval","changeRefreshInterval","MonitoringNoData","MonitoringHead","EndpointList","WarningLevel","convertToWarningLevel","level","downloadFileFromString","fileType","fileName","fileBlob","downloadFile","downloadFileFromResponse","HEX_ESCAPE_REPLACE_REGEXP","NON_LATIN1_REGEXP","QESC_REGEXP","PARAM_REGEXP","EXT_VALUE_REGEXP","DISPOSITION_TYPE_REGEXP","getlatin1","ContentDisposition","parameters","pdecode","_str","hex","decodefield","charset","encoded","header","ThroughputClient","basePath","contentType","contentDisposition","createThroughputClient","Transport","minimumSCVersionForThroughput","useIsThroughputSupported","useThroughputStore","testResults","isThroughputSupported","throughputClient","hasErrors","isBrokerTransport","transport","transportNameForInstructions","transportDocsLinkForInstructions","useThroughputStoreAutoRefresh","useRedirectsStore","redirects","getKnownQueues","getRedirects","retryPendingMessagesForQueue","queueName","throughputStore","redirectsStore","notConnected","defaultRouteNotConnected","preventIfDisabled","ExclamationMark","_component_RouterView","faSquareCheck","faCheckSquare","faCopy","__read","ar","Color","angle","sin","cos","matrix","newR","newG","newB","slope","intercept","red","green","blue","hue","saturation","lightness","Solver","best","initialFilterValues","wide","A1","maxTriesInLoop","_c","alpha","gamma","bestLoss","deltas","highArgs","lowArgs","filtersToBeAppliedSize","ck","lossDiff","ak","loss","color","colorHSL","formatCssFilterValueByMultiplier","multiplier","hexToRgb","isNumeric","results","hexToCSSFilter","colorValue","solver","endpointColor","_hoisted_14","NoData","CustomCheckView","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","isNonEmptyString","isJSX","hasProp","isTouchEvent","isToastComponent","isToastContent","isVueComponent","isDOMRect","propKey","getX","getY","removeElement","getVueComponentFromObj","normalizeToastComponent","EventBus","isEventBusInterface","TYPE","TYPE2","POSITION","POSITION2","EVENTS","EVENTS2","VT_NAMESPACE","COMMON","ICON","CLOSE_BUTTON","PROGRESS_BAR","CORE_TOAST","TOAST","CONTAINER","toast","toasts","propValidators_default","VtProgressBar_default","defineComponent2","_normalizeStyle","VtProgressBar_default2","VtCloseButton_default","defineComponent3","_openBlock2","_resolveDynamicComponent","_mergeProps","_withCtx","VtCloseButton_default2","VtSuccessIcon_default","render3","_openBlock3","_createElementBlock2","VtSuccessIcon_default2","VtInfoIcon_default","_createElementVNode2","_hoisted_32","render4","_openBlock4","_createElementBlock3","VtInfoIcon_default2","VtWarningIcon_default","_createElementVNode3","render5","_openBlock5","_createElementBlock4","VtWarningIcon_default2","VtErrorIcon_default","_createElementVNode4","render6","_openBlock6","_createElementBlock5","VtErrorIcon_default2","VtIcon_default","defineComponent4","empty","render7","_openBlock7","_createBlock2","_resolveDynamicComponent2","_normalizeClass2","_withCtx2","_createTextVNode2","VtIcon_default2","VtToast_default","defineComponent5","render8","_component_Icon","_resolveComponent","_component_CloseButton","_component_ProgressBar","_openBlock8","_createElementBlock6","_normalizeClass3","_normalizeStyle2","_createBlock3","_createCommentVNode","_createElementVNode5","_createTextVNode3","_toDisplayString2","_resolveDynamicComponent3","_mergeProps2","_toHandlers","VtToast_default2","VtTransition_default","defineComponent6","render9","_openBlock9","_createBlock4","_TransitionGroup","_withCtx3","VtTransition_default2","VtToastContainer_default","defineComponent7","events","render10","_component_Toast","_resolveComponent2","_component_VtTransition","_openBlock10","_createElementBlock7","_Fragment2","_normalizeClass4","_withCtx4","_createBlock5","_mergeProps3","VtToastContainer_default2","buildInterface","mountContainer","baseApp","updateToast","createMockToastInterface","createToastInterface","optionsOrEventBus","toastInjectionKey","globalEventBus","VueToastificationPlugin","App","inter","useToast","eventBus","src_default","useShowToast","doNotUseTimeout","ToastPopup","showToastAfterOperation","operation","toastType","variantClasses","sizeClasses","confirm","close","ActionButton","showWarning","reportState","generateReport","downloadReport","ThroughputSupported","_Teleport","ConfirmDialog","FieldNames","useAuditStore","messageFilterString","totalCount","messages","selectedEndpointName","loadEndpoints","selected","filteredItems","setFilter","isSelected","bootstrapDropDown","filterInput","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","getSide","getAlignment","getOppositeAxis","getAxisLength","yAxisSides","getSideAxis","getAlignmentAxis","getAlignmentSides","rtl","alignment","alignmentAxis","mainAlignmentSide","getExpandedPlacements","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","expandPaddingObject","getPaddingObject","computeCoordsFromPlacement","floating","sideAxis","alignLength","commonAlign","coords","computePosition","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","_await$platform$isEle","offsetScale","arrowDimensions","isYAxis","clientProp","largestPossiblePadding","minPadding","maxPadding","shouldAddOffset","alignmentOffset","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkCrossAxis","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","hasFallbackAxisSideDirection","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","crossAxis","_middlewareData$offse","diffCoords","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","hasWindow","isNode","_node$ownerDocument","invalidOverflowDisplayValues","isOverflowElement","display","tableElements","topLayerSelectors","isTopLayer","transformProperties","willChangeValues","containValues","isContainingBlock","elementOrCss","webkit","isWebKit","isLastTraversableNode","lastTraversableNodeNames","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","floatingOffsetParent","isFixedStrategy","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","leftScroll","getHTMLOffset","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsetRect","htmlOffset","getClientRects","SCROLLBAR_MAX","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","absoluteOrFixed","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","clippingAncestors","firstClippingAncestor","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","polyfill","rawOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","skip","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","frameLoop","nextRefRect","_resizeObserver2","shift$1","mergedOptions","platformWithCache","computePosition$1","isComponentPublicInstance","getDPR","roundByDPR","useFloating","whileElementsMountedOption","openOption","_toValue","middlewareOption","placementOption","_toValue2","strategyOption","_toValue3","transformOption","_toValue4","referenceElement","floatingElement","isPositioned","floatingStyles","xVal","yVal","whileElementsMountedCleanup","open","attach","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","constructFromSymbol","constructFrom","argument","addDays","amount","_date","addMonths","dayOfMonth","endOfDesiredMonth","dateWithMonths","dateWithDays","minutesToAdd","msToAdd","getDefaultOptions","startOfWeek","weekStartsOn","startOfISOWeek","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTimezoneOffsetInMilliseconds","utcDate","normalizeDates","dates","normalize","startOfDay","differenceInCalendarDays","laterDate","earlierDate","laterDate_","earlierDate_","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","startOfISOWeekYear","fourthOfJanuary","addQuarters","addYears","compareAsc","dateLeft","dateRight","getQuarter","differenceInCalendarYears","getRoundingMethod","differenceInYears","partial","normalizeInterval","eachDayOfInterval","reversed","endTime","step","startOfQuarter","currentMonth","eachQuarterOfInterval","startOfMonth","endOfYear","startOfYear","date_","endOfWeek","endOfQuarter","formatDistanceLocale","formatDistance","tokenValue","buildFormatLongFn","dateFormats","timeFormats","dateTimeFormats","formatLong","formatRelativeLocale","formatRelative","_baseDate","buildLocalizeFn","valuesArray","defaultWidth","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","rem100","localize","quarter","buildMatchFn","matchPattern","matchResult","matchedString","parsePatterns","findIndex","findKey","predicate","buildMatchPatternFn","parseResult","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","enUS","getDayOfYear","getISOWeek","getWeekYear","firstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfWeekYear","firstWeek","getWeek","addLeadingZeros","lightFormatters","signedYear","dayPeriodEnumValue","numberOfDigits","fractionalSeconds","dayPeriodEnum","formatters","signedWeekYear","twoDigitYear","isoWeekYear","isoWeek","dayOfWeek","localDayOfWeek","isoDayOfWeek","_localize","timezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","timestamp","delimiter","absOffset","dateLongFormatter","timeLongFormatter","dateTimeLongFormatter","datePattern","timePattern","dateTimeFormat","longFormatters","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","_message","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","formatStr","defaultLocale","originalDate","substring","firstCharacter","longFormatter","cleanEscapedString","formatterOptions","part","formatter","getDay","monthIndex","lastDayOfMonth","getInternalDefaultOptions","getHours","getISODay","getMinutes","getMonth","getSeconds","getYear","dateToCompare","isEqual","leftDate","rightDate","transpose","constructor","isConstructor","TIMEZONE_UNIT_PRIORITY","Setter","_utcDate","ValueSetter","validateValue","setValue","priority","subPriority","DateTimezoneSetter","Parser","dateString","_value","EraParser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","rangeEndCentury","isPreviousCentury","isLeapYearIndex","YearParser","valueCallback","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","setWeek","LocalWeekParser","setISOWeek","ISOWeekParser","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","DayOfYearParser","setDay","currentDay","dayIndex","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","setISODay","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dateStr","referenceDate","subFnOptions","usedTokens","incompatibleTokens","incompatibleToken","usedToken","uniquePrioritySetters","setterArray","isSameQuarter","dateLeft_","dateRight_","subDays","roundToNearestMinutes","nearestTo","fractionalMilliseconds","roundedMinutes","midMonth","setMilliseconds","setSeconds","setYear","subMonths","withoutMonths","withoutDays","minutesToSub","msToSub","subYears","tzName","timeZone","offsetFormatCache","offsetCache","tzOffset","offsetStr","calcOffset","captures","offsetRe","cacheStr","TZDateMini","adjustToSystemTZ","syncToInternal","tz","utcMethod","syncFromInternal","baseOffset","prevHour","systemOffset","prevHourSystemOffset","systemDSTChange","dstShift","offsetDiff","systemDate","systemSecondsOffset","secondsOffset","postBaseOffset","postOffset","postOffsetDiff","offsetChanged","postDiff","newBaseOffset","newOffset","offsetChange","TZDate","Kt","Ee","Fn","La","Ha","Ka","ja","za","Oe","Wt","ya","ce","Jt","ba","ka","wa","Ke","Ve","yt","lt","Qe","Nn","qe","xe","St","Wn","nt","Fe","O","Se","ze","kt","ut","X","ne","ye","it","ft","ht","$e","be","ot","ie","Pe","Z","te","de","ge","se","ae","Ma","_e","Ae","le","me","dt","Ya","Ln","bt","Ua","Hn","Or","un","cn","dn","jt","zt","Y","he","_n","V","ue","G","Aa","Mn","ee","Mt","oe","Rt","At","$t","ta","Kn","Je","Da","Vt","Et","zn","jn","Un","qn","Qn","Gn","Jn","Xn","Zn","er","tr","nr","rr","lr","or","sr","ur","ir","cr","dr","vr","fr","mr","pr","hr","gr","yr","br","kr","wr","Dr","Mr","Oa","_r","xa","Ar","Pr","Tr","Ba","$r","Sr","Rr","Cr","Yr","Ia","Xt","En","et","Pn","aa","Pa","An","pt","na","Ne","Tn","ra","xr","Ot","Br","$n","Ir","Vr","Er","Fr","Nr","We","Ce","ve","ke","Te","Re","Lt","at","Wr","Lr","Hr","Kr","jr","Ge","Xe","we","Ze","vt","je","la","zr","Ur","qr","Qr","vn","Ye","Zt","ea","Gr","oa","Jr","Nt","Xr","qa","De","He","Qa","Ea","Ft","Fa","Na","Sn","sa","Zr","tl","al","nl","rl","ll","sl","il","cl","Wa","Rn","Ie","Le","wt","vl","ml","Ga","Ja","Yn","Cn","pl","hl","st","gl","yl","bl","kl","wl","Dl","Ml","_l","Al","Pl","Tl","$l","Sl","Rl","hn","On","xn","Cl","pe","Me","Be","Pt","ua","ia","ca","mt","Qt","It","ha","Dt","Gt","ga","xt","sn","Bt","va","Tt","fa","ma","fe","Ue","ct","pa","Xa","Za","en","tn","an","Bn","nn","rn","ln","Yl","Ol","xl","Va","Bl","Sa","Ca","In","Vn","Ra","Il","Vl","El","Fl","Nl","Wl","Ll","Hl","Kl","jl","zl","Ul","ql","Ql","mn","Gl","Jl","Ta","$a","yn","kn","wn","Dn","bn","gn","pn","lo","internalModel","displayDataRange","datePicker","updatedRange","clearCurrentDate","VueDatePicker","endpointNames","sortByItemsMap","numberOfItemsPerPage","sortByItems","selectedSortByItem","findKeyByValue","strings","selectedItemsPerPage","searchValue","ListFilterSelector","DatePickerRange","MessageStatus","MessageIntent","formatTypeName","objectName","formatDotNetTimespan","timespan","dotNetTimespanToMilliseconds","hh","mm","ss","hasWarning","statusInfo","MessageStatusIcon","autoRefreshOptionsText","extracted","selectValue","selectedRefresh","showSpinning","autoRefreshValue","refreshNow","firstLoad","setQuery","RefreshConfig","FiltersPanel","ResultsCount","LoadingSpinner","AuditListItem","minimumSCVersionForAllMessages","useIsAllMessagesSupported","isAllMessagesSupported","AuditList","DashboardView","__vitePreload","HeartbeatsView","AuditView","FailedMessagesView","MonitoringView","CustomChecksView","EventsView","ThroughputReportView","ConfigurationView","addChildren","newItem","makeRouter","defaultRoute","environmentAndVersionsStore","scMonitoringAddressTooltip","_imports_0","displayWarn","displayDanger","menuItems","DashboardMenuItem","HeartbeatsMenuItem","MonitoringMenuItem","AuditMenuItem","FailedMessagesMenuItem","CustomChecksMenuItem","EventsMenuItem","ThroughputMenuItem","ConfigurationMenuItem","FeedbackButton","menuItem","getUAString","uaData","isLayoutViewport","addVisualOffsets","mathMax","mathMin","_offsets$x","_offsets$y","_ref5","layoutViewport","_options$strategy","allPlacements","_ref$options","elementMap","Data","instanceMap","MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","parseSelector","toType","getUID","getTransitionDurationFromElement","transitionDelay","floatTransitionDuration","floatTransitionDelay","triggerTransitionEnd","getElement","isVisible","elementIsVisible","closedDetails","summary","findShadowRoot","reflow","getjQuery","DOMContentLoadedCallbacks","onDOMContentLoaded","defineJQueryPlugin","JQUERY_NO_CONFLICT","execute","possibleCallback","executeAfterTransition","transitionElement","waitForTransition","emulatedDuration","getNextActiveElement","shouldGetNext","isCycleAllowed","listLength","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","nativeEvents","makeEventUid","getElementEvents","bootstrapHandler","hydrateObj","EventHandler","bootstrapDelegationHandler","domElements","findHandler","callable","delegationSelector","normalizeParameters","originalTypeEvent","delegationFunction","isDelegated","typeEvent","getTypeEvent","addHandler","oneOff","previousFunction","removeHandler","removeNamespacedHandlers","storeElementEvent","handlerKey","inNamespace","isNamespace","elementEvent","keyHandlers","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","normalizeData","normalizeDataKey","Manipulator","bsKeys","pureKey","Config","jsonConfig","configTypes","expectedTypes","valueType","VERSION","BaseComponent","isAnimated","getSelector","hrefAttribute","sel","SelectorEngine","parents","focusables","enableDismissTrigger","clickEvent","NAME$f","DATA_KEY$a","EVENT_KEY$b","EVENT_CLOSE","EVENT_CLOSED","CLASS_NAME_FADE$5","CLASS_NAME_SHOW$8","Alert","NAME$e","DATA_KEY$9","EVENT_KEY$a","DATA_API_KEY$6","CLASS_NAME_ACTIVE$3","SELECTOR_DATA_TOGGLE$5","EVENT_CLICK_DATA_API$6","Button","button","NAME$d","EVENT_KEY$9","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","Default$c","DefaultType$c","Swipe","absDeltaX","NAME$c","DATA_KEY$8","EVENT_KEY$8","DATA_API_KEY$5","ARROW_LEFT_KEY$1","ARROW_RIGHT_KEY$1","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN$1","EVENT_MOUSEENTER$1","EVENT_MOUSELEAVE$1","EVENT_DRAG_START","EVENT_LOAD_DATA_API$3","EVENT_CLICK_DATA_API$5","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE$2","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default$b","DefaultType$b","Carousel","items","activeIndex","img","swipeConfig","activeIndicator","newActiveIndicator","elementInterval","isNext","nextElement","nextElementIndex","triggerEvent","eventName","isCycling","directionalClassName","orderClassName","completeCallBack","carousel","slideIndex","carousels","NAME$b","DATA_KEY$7","EVENT_KEY$7","DATA_API_KEY$4","EVENT_SHOW$6","EVENT_SHOWN$6","EVENT_HIDE$6","EVENT_HIDDEN$6","EVENT_CLICK_DATA_API$4","CLASS_NAME_SHOW$7","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE$4","Default$a","DefaultType$a","Collapse","toggleList","filterElement","foundElement","activeChildren","activeInstance","dimension","complete","scrollSize","triggerArray","isOpen","NAME$a","DATA_KEY$6","EVENT_KEY$6","DATA_API_KEY$3","ESCAPE_KEY$2","TAB_KEY$1","ARROW_UP_KEY$1","ARROW_DOWN_KEY$1","RIGHT_MOUSE_BUTTON","EVENT_HIDE$5","EVENT_HIDDEN$5","EVENT_SHOW$5","EVENT_SHOWN$5","EVENT_CLICK_DATA_API$3","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_SHOW$6","CLASS_NAME_DROPUP","CLASS_NAME_DROPEND","CLASS_NAME_DROPSTART","CLASS_NAME_DROPUP_CENTER","CLASS_NAME_DROPDOWN_CENTER","SELECTOR_DATA_TOGGLE$3","SELECTOR_DATA_TOGGLE_SHOWN","SELECTOR_MENU","SELECTOR_NAVBAR","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","PLACEMENT_TOPCENTER","PLACEMENT_BOTTOMCENTER","Default$9","DefaultType$9","Dropdown","relatedTarget","Popper","popperConfig","Popper.createPopper","parentDropdown","isEnd","popperData","defaultBsPopperConfig","openToggles","toggle","composedPath","isMenuTarget","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","NAME$9","CLASS_NAME_FADE$4","CLASS_NAME_SHOW$5","EVENT_MOUSEDOWN","Default$8","DefaultType$8","Backdrop","NAME$8","DATA_KEY$5","EVENT_KEY$5","EVENT_FOCUSIN$2","EVENT_KEYDOWN_TAB","TAB_KEY","TAB_NAV_FORWARD","TAB_NAV_BACKWARD","Default$7","DefaultType$7","FocusTrap","trapElement","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","ScrollBarHelper","documentWidth","calculatedValue","styleProperty","scrollbarWidth","manipulationCallBack","actualValue","callBack","NAME$7","DATA_KEY$4","EVENT_KEY$4","DATA_API_KEY$2","ESCAPE_KEY$1","EVENT_HIDE$4","EVENT_HIDE_PREVENTED$1","EVENT_HIDDEN$4","EVENT_SHOW$4","EVENT_SHOWN$4","EVENT_RESIZE$1","EVENT_CLICK_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_KEYDOWN_DISMISS$1","EVENT_CLICK_DATA_API$2","CLASS_NAME_OPEN","CLASS_NAME_FADE$3","CLASS_NAME_SHOW$4","CLASS_NAME_STATIC","OPEN_SELECTOR$1","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE$2","Default$6","DefaultType$6","Modal","modalBody","transitionComplete","event2","isModalOverflowing","initialOverflowY","isBodyOverflowing","showEvent","alreadyOpen","NAME$6","DATA_KEY$3","EVENT_KEY$3","DATA_API_KEY$1","EVENT_LOAD_DATA_API$2","ESCAPE_KEY","CLASS_NAME_SHOW$3","CLASS_NAME_SHOWING$1","CLASS_NAME_HIDING","CLASS_NAME_BACKDROP","OPEN_SELECTOR","EVENT_SHOW$3","EVENT_SHOWN$3","EVENT_HIDE$3","EVENT_HIDE_PREVENTED","EVENT_HIDDEN$3","EVENT_RESIZE","EVENT_CLICK_DATA_API$1","EVENT_KEYDOWN_DISMISS","SELECTOR_DATA_TOGGLE$1","Default$5","DefaultType$5","Offcanvas","completeCallback","clickCallback","ARIA_ATTRIBUTE_PATTERN","DefaultAllowlist","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","allowedAttributeList","attributeRegex","sanitizeHtml","unsafeHtml","allowList","sanitizeFunction","createdDocument","elementName","attributeList","allowedAttributes","NAME$5","Default$4","DefaultType$4","DefaultContentType","TemplateFactory","templateWrapper","extraClass","templateElement","NAME$4","DISALLOWED_ATTRIBUTES","CLASS_NAME_FADE$2","CLASS_NAME_MODAL","CLASS_NAME_SHOW$2","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_HIDE$2","EVENT_HIDDEN$2","EVENT_SHOW$2","EVENT_SHOWN$2","EVENT_INSERTED","EVENT_CLICK$1","EVENT_FOCUSIN$1","EVENT_FOCUSOUT$1","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","AttachmentMap","Default$3","DefaultType$3","Tooltip","isInTheDom","tip","tipId","attachment","triggers","eventIn","eventOut","dataAttributes","dataAttribute","NAME$3","SELECTOR_TITLE","SELECTOR_CONTENT","Default$2","DefaultType$2","Popover","NAME$2","DATA_KEY$2","EVENT_KEY$2","DATA_API_KEY","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API$1","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE$1","SELECTOR_DATA_SPY","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_LINK_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE$1","Default$1","DefaultType$1","ScrollSpy","section","observableSection","targetElement","entry","activate","parentScrollTop","userScrollsDown","entryIsLowerThanPrevious","targetLinks","listGroup","activeNodes","spy","NAME$1","DATA_KEY$1","EVENT_KEY$1","EVENT_HIDE$1","EVENT_HIDDEN$1","EVENT_SHOW$1","EVENT_SHOWN$1","EVENT_CLICK_DATA_API","EVENT_KEYDOWN","EVENT_LOAD_DATA_API","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_FADE$1","CLASS_NAME_SHOW$1","CLASS_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_MENU","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_TAB_PANEL","SELECTOR_OUTER","SELECTOR_INNER","SELECTOR_DATA_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","Tab","innerElem","active","hideEvent","relatedElem","nextActiveElement","outerElem","NAME","DATA_KEY","EVENT_KEY","EVENT_MOUSEOVER","EVENT_MOUSEOUT","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_SHOWING","DefaultType","Default","Toast","isInteracting","displayWarningMessage","configurationRootLink","upgradeProtectionExpired","trialExpiring","subscriptionExpiring","upgradeProtectionExpiring","monitoringConnectionFailure","connectionUrl","PageHeader","LicenseNotifications","BackendChecksNotifications","PageFooter","script","list_node","active_node","scroll_to","$props","$setup","$data","$options","createElementVNode","entry_esm","installable","toastOptions","SimpleTypeahead","VueTippy","conditionallyEnableMocking","appConstants"],"ignoreList":[0,1,2,3,4,5,8,12,17,18,20,31,32,57,64,81,90,91,92,93,94,98,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,322],"sources":["../../../../frontend/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../../../frontend/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../../../frontend/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../../../frontend/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../../../frontend/node_modules/vue-router/dist/devtools-BLCumUwL.mjs","../../../../frontend/node_modules/vue-router/dist/vue-router.mjs","../../../../frontend/src/components/ItemsPerPage.vue","../../../../frontend/src/components/PaginationStrip.vue","../../../../frontend/node_modules/pinia/dist/pinia.mjs","../../../../frontend/src/defaultConfig.ts","../../../../frontend/src/stores/ServiceControlStore.ts","../../../../frontend/src/components/AutoRefreshDataView.vue","../../../../frontend/node_modules/moment/dist/moment.js","../../../../frontend/src/composables/dateFormatter.ts","../../../../frontend/src/components/TimeSince.vue","../../../../frontend/src/resources/EventLogItem.ts","../../../../frontend/src/router/routeLinks.ts","../../../../frontend/node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../../../../frontend/node_modules/@fortawesome/vue-fontawesome/index.es.js","../../../../frontend/src/components/FAIcon.vue","../../../../frontend/node_modules/@fortawesome/free-solid-svg-icons/index.mjs","../../../../frontend/src/components/EventLogItem.vue","../../../../frontend/src/components/EventItemShort.vue","../../../../frontend/src/components/ConditionalRender.vue","../../../../frontend/src/resources/LicenseInfo.ts","../../../../frontend/src/composables/LicenseStatus.ts","../../../../frontend/src/composables/formatter.ts","../../../../frontend/src/stores/LicenseStore.ts","../../../../frontend/src/components/LicenseExpired.vue","../../../../frontend/src/components/LicenseNotExpired.vue","../../../../frontend/src/resources/FailedMessage.ts","../../../../frontend/node_modules/@vueuse/shared/dist/index.js","../../../../frontend/node_modules/@vueuse/core/dist/index.js","../../../../frontend/src/stores/ConnectionsAndStatsStore.ts","../../../../frontend/src/composables/autoRefresh.ts","../../../../frontend/src/composables/useAutoRefresh.ts","../../../../frontend/src/composables/useConnectionsAndStatsAutoRefresh.ts","../../../../frontend/src/components/ServiceControlAvailable.vue","../../../../frontend/src/components/DashboardItem.vue","../../../../frontend/src/stores/CustomChecksStore.ts","../../../../frontend/src/composables/useCustomChecksStoreAutoRefresh.ts","../../../../frontend/src/components/customchecks/CustomChecksDashboardItem.vue","../../../../frontend/src/resources/Heartbeat.ts","../../../../frontend/src/resources/SortOptions.ts","../../../../frontend/src/components/getSortFunction.ts","../../../../frontend/src/composables/serviceSemVer.ts","../../../../frontend/src/stores/EnvironmentAndVersionsStore.ts","../../../../frontend/src/composables/useEnvironmentAndVersionsAutoRefresh.ts","../../../../frontend/src/components/heartbeats/isEndpointSettingsSupported.ts","../../../../frontend/src/stores/EndpointSettingsStore.ts","../../../../frontend/src/stores/HeartbeatsStore.ts","../../../../frontend/src/composables/useHeartbeatsStoreAutoRefresh.ts","../../../../frontend/src/components/heartbeats/HeartbeatsDashboardItem.vue","../../../../frontend/src/components/failedmessages/FailedMessagesDashboardItem.vue","../../../../frontend/src/views/DashboardView.vue","../../../../frontend/src/composables/isRouteSelected.ts","../../../../frontend/src/views/FailedMessagesView.vue","../../../../frontend/node_modules/vue3-cookies/dist/index.js","../../../../frontend/src/stores/MonitoringHistoryPeriodStore.ts","../../../../frontend/src/stores/MonitoringStore.ts","../../../../frontend/src/components/ColumnHeader.vue","../../../../frontend/src/components/monitoring/formatGraph.ts","../../../../frontend/src/components/monitoring/graphLines.ts","../../../../frontend/src/components/monitoring/SmallGraph.vue","../../../../frontend/node_modules/vue-tippy/dist/vue-tippy.esm-browser.js","../../../../frontend/src/resources/MonitoringResources.ts","../../../../frontend/src/components/monitoring/EndpointListRow.vue","../../../../frontend/src/components/monitoring/EndpointList.vue","../../../../frontend/src/components/monitoring/MonitoringNoData.vue","../../../../frontend/src/components/FilterInput.vue","../../../../frontend/src/components/monitoring/MonitoringGroupBy.vue","../../../../frontend/src/components/monitoring/MonitoringHistoryPeriod.vue","../../../../frontend/src/components/monitoring/MonitoringFilter.vue","../../../../frontend/src/stores/ConfigurationStore.ts","../../../../frontend/src/components/monitoring/MonitoringHead.vue","../../../../frontend/src/views/MonitoringView.vue","../../../../frontend/src/views/EventsView.vue","../../../../frontend/src/components/WarningLevel.ts","../../../../frontend/src/components/ExclamationMark.vue","../../../../frontend/src/components/configuration/convertToWarningLevel.ts","../../../../frontend/src/composables/fileDownloadCreator.ts","../../../../frontend/node_modules/@tinyhttp/content-disposition/dist/index.js","../../../../frontend/src/views/throughputreport/throughputClient.ts","../../../../frontend/src/views/throughputreport/transport.ts","../../../../frontend/src/views/throughputreport/isThroughputSupported.ts","../../../../frontend/src/stores/ThroughputStore.ts","../../../../frontend/src/composables/useThroughputStoreAutoRefresh.ts","../../../../frontend/src/stores/RedirectsStore.ts","../../../../frontend/src/views/ConfigurationView.vue","../../../../frontend/src/components/NoData.vue","../../../../frontend/node_modules/@fortawesome/free-regular-svg-icons/index.mjs","../../../../frontend/node_modules/tslib/tslib.es6.mjs","../../../../frontend/node_modules/hex-to-css-filter/dist/esm/color.js","../../../../frontend/node_modules/hex-to-css-filter/dist/esm/solver.js","../../../../frontend/node_modules/hex-to-css-filter/dist/esm/hex-to-css-filter.js","../../../../frontend/src/components/customchecks/CustomCheckView.vue","../../../../frontend/src/views/CustomChecksView.vue","../../../../frontend/src/views/HeartbeatsView.vue","../../../../frontend/node_modules/vue-toastification/dist/index.mjs","../../../../frontend/src/components/ToastPopup.vue","../../../../frontend/src/composables/toast.ts","../../../../frontend/src/views/throughputreport/ThroughputSupported.vue","../../../../frontend/src/components/ActionButton.vue","../../../../frontend/src/components/ConfirmDialog.vue","../../../../frontend/src/views/ThroughputReportView.vue","../../../../frontend/src/stores/AuditStore.ts","../../../../frontend/src/components/ResultsCount.vue","../../../../frontend/src/components/audit/ListFilterSelector.vue","../../../../frontend/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../../frontend/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../../frontend/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../../frontend/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../../frontend/node_modules/@floating-ui/vue/dist/floating-ui.vue.mjs","../../../../frontend/node_modules/date-fns/constants.js","../../../../frontend/node_modules/date-fns/constructFrom.js","../../../../frontend/node_modules/date-fns/toDate.js","../../../../frontend/node_modules/date-fns/addDays.js","../../../../frontend/node_modules/date-fns/addMonths.js","../../../../frontend/node_modules/date-fns/add.js","../../../../frontend/node_modules/date-fns/_lib/defaultOptions.js","../../../../frontend/node_modules/date-fns/startOfWeek.js","../../../../frontend/node_modules/date-fns/startOfISOWeek.js","../../../../frontend/node_modules/date-fns/getISOWeekYear.js","../../../../frontend/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../../../../frontend/node_modules/date-fns/_lib/normalizeDates.js","../../../../frontend/node_modules/date-fns/startOfDay.js","../../../../frontend/node_modules/date-fns/differenceInCalendarDays.js","../../../../frontend/node_modules/date-fns/startOfISOWeekYear.js","../../../../frontend/node_modules/date-fns/addQuarters.js","../../../../frontend/node_modules/date-fns/addYears.js","../../../../frontend/node_modules/date-fns/compareAsc.js","../../../../frontend/node_modules/date-fns/isDate.js","../../../../frontend/node_modules/date-fns/isValid.js","../../../../frontend/node_modules/date-fns/getQuarter.js","../../../../frontend/node_modules/date-fns/differenceInCalendarYears.js","../../../../frontend/node_modules/date-fns/_lib/getRoundingMethod.js","../../../../frontend/node_modules/date-fns/differenceInYears.js","../../../../frontend/node_modules/date-fns/_lib/normalizeInterval.js","../../../../frontend/node_modules/date-fns/eachDayOfInterval.js","../../../../frontend/node_modules/date-fns/startOfQuarter.js","../../../../frontend/node_modules/date-fns/eachQuarterOfInterval.js","../../../../frontend/node_modules/date-fns/startOfMonth.js","../../../../frontend/node_modules/date-fns/endOfYear.js","../../../../frontend/node_modules/date-fns/startOfYear.js","../../../../frontend/node_modules/date-fns/endOfWeek.js","../../../../frontend/node_modules/date-fns/endOfQuarter.js","../../../../frontend/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../../frontend/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../../frontend/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../../frontend/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../../frontend/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../../frontend/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../../frontend/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../../frontend/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../../frontend/node_modules/date-fns/locale/en-US/_lib/match.js","../../../../frontend/node_modules/date-fns/locale/en-US.js","../../../../frontend/node_modules/date-fns/getDayOfYear.js","../../../../frontend/node_modules/date-fns/getISOWeek.js","../../../../frontend/node_modules/date-fns/getWeekYear.js","../../../../frontend/node_modules/date-fns/startOfWeekYear.js","../../../../frontend/node_modules/date-fns/getWeek.js","../../../../frontend/node_modules/date-fns/_lib/addLeadingZeros.js","../../../../frontend/node_modules/date-fns/_lib/format/lightFormatters.js","../../../../frontend/node_modules/date-fns/_lib/format/formatters.js","../../../../frontend/node_modules/date-fns/_lib/format/longFormatters.js","../../../../frontend/node_modules/date-fns/_lib/protectedTokens.js","../../../../frontend/node_modules/date-fns/format.js","../../../../frontend/node_modules/date-fns/getDay.js","../../../../frontend/node_modules/date-fns/getDaysInMonth.js","../../../../frontend/node_modules/date-fns/getDefaultOptions.js","../../../../frontend/node_modules/date-fns/getHours.js","../../../../frontend/node_modules/date-fns/getISODay.js","../../../../frontend/node_modules/date-fns/getMinutes.js","../../../../frontend/node_modules/date-fns/getMonth.js","../../../../frontend/node_modules/date-fns/getSeconds.js","../../../../frontend/node_modules/date-fns/getYear.js","../../../../frontend/node_modules/date-fns/isAfter.js","../../../../frontend/node_modules/date-fns/isBefore.js","../../../../frontend/node_modules/date-fns/isEqual.js","../../../../frontend/node_modules/date-fns/transpose.js","../../../../frontend/node_modules/date-fns/parse/_lib/Setter.js","../../../../frontend/node_modules/date-fns/parse/_lib/Parser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/constants.js","../../../../frontend/node_modules/date-fns/parse/_lib/utils.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../../../../frontend/node_modules/date-fns/setWeek.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../../../../frontend/node_modules/date-fns/setISOWeek.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../../../../frontend/node_modules/date-fns/setDay.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../../../../frontend/node_modules/date-fns/setISODay.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../../../../frontend/node_modules/date-fns/parse/_lib/parsers.js","../../../../frontend/node_modules/date-fns/parse.js","../../../../frontend/node_modules/date-fns/isSameQuarter.js","../../../../frontend/node_modules/date-fns/subDays.js","../../../../frontend/node_modules/date-fns/roundToNearestMinutes.js","../../../../frontend/node_modules/date-fns/setMonth.js","../../../../frontend/node_modules/date-fns/set.js","../../../../frontend/node_modules/date-fns/setMilliseconds.js","../../../../frontend/node_modules/date-fns/setSeconds.js","../../../../frontend/node_modules/date-fns/setYear.js","../../../../frontend/node_modules/date-fns/subMonths.js","../../../../frontend/node_modules/date-fns/sub.js","../../../../frontend/node_modules/date-fns/subYears.js","../../../../frontend/node_modules/@date-fns/tz/tzName/index.js","../../../../frontend/node_modules/@date-fns/tz/tzOffset/index.js","../../../../frontend/node_modules/@date-fns/tz/date/mini.js","../../../../frontend/node_modules/@date-fns/tz/date/index.js","../../../../frontend/node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.js","../../../../frontend/src/components/audit/DatePickerRange.vue","../../../../frontend/src/components/audit/FiltersPanel.vue","../../../../frontend/src/resources/Message.ts","../../../../frontend/src/composables/formatUtils.ts","../../../../frontend/src/components/audit/MessageStatusIcon.vue","../../../../frontend/src/components/audit/AuditListItem.vue","../../../../frontend/src/components/RefreshConfig.vue","../../../../frontend/src/components/LoadingSpinner.vue","../../../../frontend/src/components/audit/AuditList.vue","../../../../frontend/src/components/audit/isAllMessagesSupported.ts","../../../../frontend/src/views/AuditView.vue","../../../../frontend/src/router/config.ts","../../../../frontend/src/router/index.ts","../../../../frontend/src/components/PageFooter.vue","../../../../frontend/src/assets/logo.svg","../../../../frontend/src/components/customchecks/CustomChecksMenuItem.vue","../../../../frontend/src/components/heartbeats/HeartbeatsMenuItem.vue","../../../../frontend/src/components/configuration/ConfigurationMenuItem.vue","../../../../frontend/src/components/failedmessages/FailedMessagesMenuItem.vue","../../../../frontend/src/components/monitoring/MonitoringMenuItem.vue","../../../../frontend/src/components/events/EventsMenuItem.vue","../../../../frontend/src/components/dashboard/DashboardMenuItem.vue","../../../../frontend/src/components/FeedbackButton.vue","../../../../frontend/src/views/throughputreport/ThroughputMenuItem.vue","../../../../frontend/src/components/audit/AuditMenuItem.vue","../../../../frontend/src/components/PageHeader.vue","../../../../frontend/node_modules/@popperjs/core/lib/enums.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/math.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/userAgent.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/within.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getVariation.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/flip.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/hide.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/offset.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../../frontend/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../../frontend/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/debounce.js","../../../../frontend/node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../../frontend/node_modules/@popperjs/core/lib/createPopper.js","../../../../frontend/node_modules/@popperjs/core/lib/popper-lite.js","../../../../frontend/node_modules/@popperjs/core/lib/popper.js","../../../../frontend/node_modules/bootstrap/dist/js/bootstrap.esm.js","../../../../frontend/src/components/LicenseNotifications.vue","../../../../frontend/src/components/BackendChecksNotifications.vue","../../../../frontend/src/App.vue","../../../../frontend/node_modules/vue3-simple-typeahead/dist/vue3-simple-typeahead.esm.js","../../../../frontend/src/mount.ts","../../../../frontend/src/main.ts"],"sourcesContent":["/**\n* @vue/shared v3.5.24\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n// @__NO_SIDE_EFFECTS__\nfunction makeMap(str) {\n const map = /* @__PURE__ */ Object.create(null);\n for (const key of str.split(\",\")) map[key] = 1;\n return (val) => val in map;\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return ((str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n });\n};\nconst camelizeRE = /-\\w/g;\nconst camelize = cacheStringFunction(\n (str) => {\n return str.replace(camelizeRE, (c) => c.slice(1).toUpperCase());\n }\n);\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction(\n (str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n }\n);\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, ...arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](...arg);\n }\n};\nconst def = (obj, key, value, writable = false) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n writable,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\nfunction genCacheKey(source, options) {\n return source + JSON.stringify(\n options,\n (_, val) => typeof val === \"function\" ? val.toString() : val\n );\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"CACHED\": -1,\n \"-1\": \"CACHED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `CACHED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n start = Math.max(0, Math.min(start, source.length));\n end = Math.max(0, Math.min(end, source.length));\n if (start > end) return \"\";\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n if (!styles) return \"\";\n if (isString(styles)) return styles;\n let ret = \"\";\n for (const key in styles) {\n const value = styles[key];\n if (isString(value) || typeof value === \"number\") {\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props) return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nconst isKnownMathMLAttr = /* @__PURE__ */ makeMap(\n `accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>|?@[\\\\\\]^`{|}~]/g;\nfunction getEscapedCssVarName(key, doubleEscape) {\n return key.replace(\n cssVarNameEscapeSymbolsRE,\n (s) => doubleEscape ? s === '\"' ? '\\\\\\\\\\\\\"' : `\\\\\\\\${s}` : `\\\\${s}`\n );\n}\n\nfunction looseCompareArrays(a, b) {\n if (a.length !== b.length) return false;\n let equal = true;\n for (let i = 0; equal && i < a.length; i++) {\n equal = looseEqual(a[i], b[i]);\n }\n return equal;\n}\nfunction looseEqual(a, b) {\n if (a === b) return true;\n let aValidType = isDate(a);\n let bValidType = isDate(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? a.getTime() === b.getTime() : false;\n }\n aValidType = isSymbol(a);\n bValidType = isSymbol(b);\n if (aValidType || bValidType) {\n return a === b;\n }\n aValidType = isArray(a);\n bValidType = isArray(b);\n if (aValidType || bValidType) {\n return aValidType && bValidType ? looseCompareArrays(a, b) : false;\n }\n aValidType = isObject(a);\n bValidType = isObject(b);\n if (aValidType || bValidType) {\n if (!aValidType || !bValidType) {\n return false;\n }\n const aKeysCount = Object.keys(a).length;\n const bKeysCount = Object.keys(b).length;\n if (aKeysCount !== bKeysCount) {\n return false;\n }\n for (const key in a) {\n const aHasKey = a.hasOwnProperty(key);\n const bHasKey = b.hasOwnProperty(key);\n if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n return String(a) === String(b);\n}\nfunction looseIndexOf(arr, val) {\n return arr.findIndex((item) => looseEqual(item, val));\n}\n\nconst isRef = (val) => {\n return !!(val && val[\"__v_isRef\"] === true);\n};\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? isRef(val) ? toDisplayString(val.value) : JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (isRef(val)) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return (\n // Symbol.description in es2019+ so we need to cast here to pass\n // the lib: es2016 check\n isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v\n );\n};\n\nfunction normalizeCssVarValue(value) {\n if (value == null) {\n return \"initial\";\n }\n if (typeof value === \"string\") {\n return value === \"\" ? \" \" : value;\n }\n if (typeof value !== \"number\" || !Number.isFinite(value)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\n \"[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:\",\n value\n );\n }\n }\n return String(value);\n}\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, cssVarNameEscapeSymbolsRE, def, escapeHtml, escapeHtmlComment, extend, genCacheKey, genPropsAccessExp, generateCodeFrame, getEscapedCssVarName, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownMathMLAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeCssVarValue, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.5.24\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { extend, hasChanged, isArray, isIntegerKey, isSymbol, isMap, hasOwn, makeMap, isObject, capitalize, toRawType, def, isFunction, EMPTY_OBJ, isSet, isPlainObject, remove, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal track `on` calls, allow `on` call multiple times\n */\n this._on = 0;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this._isPaused = false;\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n pause() {\n if (this._active) {\n this._isPaused = true;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].pause();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].pause();\n }\n }\n }\n /**\n * Resumes the effect scope, including all child scopes and effects.\n */\n resume() {\n if (this._active) {\n if (this._isPaused) {\n this._isPaused = false;\n let i, l;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].resume();\n }\n }\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].resume();\n }\n }\n }\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n if (++this._on === 1) {\n this.prevScope = activeEffectScope;\n activeEffectScope = this;\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n if (this._on > 0 && --this._on === 0) {\n activeEffectScope = this.prevScope;\n this.prevScope = void 0;\n }\n }\n stop(fromParent) {\n if (this._active) {\n this._active = false;\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n this.effects.length = 0;\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n this.cleanups.length = 0;\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n this.scopes.length = 0;\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn, failSilently = false) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeSub;\nconst EffectFlags = {\n \"ACTIVE\": 1,\n \"1\": \"ACTIVE\",\n \"RUNNING\": 2,\n \"2\": \"RUNNING\",\n \"TRACKING\": 4,\n \"4\": \"TRACKING\",\n \"NOTIFIED\": 8,\n \"8\": \"NOTIFIED\",\n \"DIRTY\": 16,\n \"16\": \"DIRTY\",\n \"ALLOW_RECURSE\": 32,\n \"32\": \"ALLOW_RECURSE\",\n \"PAUSED\": 64,\n \"64\": \"PAUSED\",\n \"EVALUATED\": 128,\n \"128\": \"EVALUATED\"\n};\nconst pausedQueueEffects = /* @__PURE__ */ new WeakSet();\nclass ReactiveEffect {\n constructor(fn) {\n this.fn = fn;\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 1 | 4;\n /**\n * @internal\n */\n this.next = void 0;\n /**\n * @internal\n */\n this.cleanup = void 0;\n this.scheduler = void 0;\n if (activeEffectScope && activeEffectScope.active) {\n activeEffectScope.effects.push(this);\n }\n }\n pause() {\n this.flags |= 64;\n }\n resume() {\n if (this.flags & 64) {\n this.flags &= -65;\n if (pausedQueueEffects.has(this)) {\n pausedQueueEffects.delete(this);\n this.trigger();\n }\n }\n }\n /**\n * @internal\n */\n notify() {\n if (this.flags & 2 && !(this.flags & 32)) {\n return;\n }\n if (!(this.flags & 8)) {\n batch(this);\n }\n }\n run() {\n if (!(this.flags & 1)) {\n return this.fn();\n }\n this.flags |= 2;\n cleanupEffect(this);\n prepareDeps(this);\n const prevEffect = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = this;\n shouldTrack = true;\n try {\n return this.fn();\n } finally {\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub !== this) {\n warn(\n \"Active effect was not restored correctly - this is likely a Vue internal bug.\"\n );\n }\n cleanupDeps(this);\n activeSub = prevEffect;\n shouldTrack = prevShouldTrack;\n this.flags &= -3;\n }\n }\n stop() {\n if (this.flags & 1) {\n for (let link = this.deps; link; link = link.nextDep) {\n removeSub(link);\n }\n this.deps = this.depsTail = void 0;\n cleanupEffect(this);\n this.onStop && this.onStop();\n this.flags &= -2;\n }\n }\n trigger() {\n if (this.flags & 64) {\n pausedQueueEffects.add(this);\n } else if (this.scheduler) {\n this.scheduler();\n } else {\n this.runIfDirty();\n }\n }\n /**\n * @internal\n */\n runIfDirty() {\n if (isDirty(this)) {\n this.run();\n }\n }\n get dirty() {\n return isDirty(this);\n }\n}\nlet batchDepth = 0;\nlet batchedSub;\nlet batchedComputed;\nfunction batch(sub, isComputed = false) {\n sub.flags |= 8;\n if (isComputed) {\n sub.next = batchedComputed;\n batchedComputed = sub;\n return;\n }\n sub.next = batchedSub;\n batchedSub = sub;\n}\nfunction startBatch() {\n batchDepth++;\n}\nfunction endBatch() {\n if (--batchDepth > 0) {\n return;\n }\n if (batchedComputed) {\n let e = batchedComputed;\n batchedComputed = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n e = next;\n }\n }\n let error;\n while (batchedSub) {\n let e = batchedSub;\n batchedSub = void 0;\n while (e) {\n const next = e.next;\n e.next = void 0;\n e.flags &= -9;\n if (e.flags & 1) {\n try {\n ;\n e.trigger();\n } catch (err) {\n if (!error) error = err;\n }\n }\n e = next;\n }\n }\n if (error) throw error;\n}\nfunction prepareDeps(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n link.version = -1;\n link.prevActiveLink = link.dep.activeLink;\n link.dep.activeLink = link;\n }\n}\nfunction cleanupDeps(sub) {\n let head;\n let tail = sub.depsTail;\n let link = tail;\n while (link) {\n const prev = link.prevDep;\n if (link.version === -1) {\n if (link === tail) tail = prev;\n removeSub(link);\n removeDep(link);\n } else {\n head = link;\n }\n link.dep.activeLink = link.prevActiveLink;\n link.prevActiveLink = void 0;\n link = prev;\n }\n sub.deps = head;\n sub.depsTail = tail;\n}\nfunction isDirty(sub) {\n for (let link = sub.deps; link; link = link.nextDep) {\n if (link.dep.version !== link.version || link.dep.computed && (refreshComputed(link.dep.computed) || link.dep.version !== link.version)) {\n return true;\n }\n }\n if (sub._dirty) {\n return true;\n }\n return false;\n}\nfunction refreshComputed(computed) {\n if (computed.flags & 4 && !(computed.flags & 16)) {\n return;\n }\n computed.flags &= -17;\n if (computed.globalVersion === globalVersion) {\n return;\n }\n computed.globalVersion = globalVersion;\n if (!computed.isSSR && computed.flags & 128 && (!computed.deps && !computed._dirty || !isDirty(computed))) {\n return;\n }\n computed.flags |= 2;\n const dep = computed.dep;\n const prevSub = activeSub;\n const prevShouldTrack = shouldTrack;\n activeSub = computed;\n shouldTrack = true;\n try {\n prepareDeps(computed);\n const value = computed.fn(computed._value);\n if (dep.version === 0 || hasChanged(value, computed._value)) {\n computed.flags |= 128;\n computed._value = value;\n dep.version++;\n }\n } catch (err) {\n dep.version++;\n throw err;\n } finally {\n activeSub = prevSub;\n shouldTrack = prevShouldTrack;\n cleanupDeps(computed);\n computed.flags &= -3;\n }\n}\nfunction removeSub(link, soft = false) {\n const { dep, prevSub, nextSub } = link;\n if (prevSub) {\n prevSub.nextSub = nextSub;\n link.prevSub = void 0;\n }\n if (nextSub) {\n nextSub.prevSub = prevSub;\n link.nextSub = void 0;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && dep.subsHead === link) {\n dep.subsHead = nextSub;\n }\n if (dep.subs === link) {\n dep.subs = prevSub;\n if (!prevSub && dep.computed) {\n dep.computed.flags &= -5;\n for (let l = dep.computed.deps; l; l = l.nextDep) {\n removeSub(l, true);\n }\n }\n }\n if (!soft && !--dep.sc && dep.map) {\n dep.map.delete(dep.key);\n }\n}\nfunction removeDep(link) {\n const { prevDep, nextDep } = link;\n if (prevDep) {\n prevDep.nextDep = nextDep;\n link.prevDep = void 0;\n }\n if (nextDep) {\n nextDep.prevDep = prevDep;\n link.nextDep = void 0;\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const e = new ReactiveEffect(fn);\n if (options) {\n extend(e, options);\n }\n try {\n e.run();\n } catch (err) {\n e.stop();\n throw err;\n }\n const runner = e.run.bind(e);\n runner.effect = e;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction onEffectCleanup(fn, failSilently = false) {\n if (activeSub instanceof ReactiveEffect) {\n activeSub.cleanup = fn;\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onEffectCleanup() was called when there was no active effect to associate with.`\n );\n }\n}\nfunction cleanupEffect(e) {\n const { cleanup } = e;\n e.cleanup = void 0;\n if (cleanup) {\n const prevSub = activeSub;\n activeSub = void 0;\n try {\n cleanup();\n } finally {\n activeSub = prevSub;\n }\n }\n}\n\nlet globalVersion = 0;\nclass Link {\n constructor(sub, dep) {\n this.sub = sub;\n this.dep = dep;\n this.version = dep.version;\n this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;\n }\n}\nclass Dep {\n // TODO isolatedDeclarations \"__v_skip\"\n constructor(computed) {\n this.computed = computed;\n this.version = 0;\n /**\n * Link between this dep and the current active effect\n */\n this.activeLink = void 0;\n /**\n * Doubly linked list representing the subscribing effects (tail)\n */\n this.subs = void 0;\n /**\n * For object property deps cleanup\n */\n this.map = void 0;\n this.key = void 0;\n /**\n * Subscriber counter\n */\n this.sc = 0;\n /**\n * @internal\n */\n this.__v_skip = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.subsHead = void 0;\n }\n }\n track(debugInfo) {\n if (!activeSub || !shouldTrack || activeSub === this.computed) {\n return;\n }\n let link = this.activeLink;\n if (link === void 0 || link.sub !== activeSub) {\n link = this.activeLink = new Link(activeSub, this);\n if (!activeSub.deps) {\n activeSub.deps = activeSub.depsTail = link;\n } else {\n link.prevDep = activeSub.depsTail;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n }\n addSub(link);\n } else if (link.version === -1) {\n link.version = this.version;\n if (link.nextDep) {\n const next = link.nextDep;\n next.prevDep = link.prevDep;\n if (link.prevDep) {\n link.prevDep.nextDep = next;\n }\n link.prevDep = activeSub.depsTail;\n link.nextDep = void 0;\n activeSub.depsTail.nextDep = link;\n activeSub.depsTail = link;\n if (activeSub.deps === link) {\n activeSub.deps = next;\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") && activeSub.onTrack) {\n activeSub.onTrack(\n extend(\n {\n effect: activeSub\n },\n debugInfo\n )\n );\n }\n return link;\n }\n trigger(debugInfo) {\n this.version++;\n globalVersion++;\n this.notify(debugInfo);\n }\n notify(debugInfo) {\n startBatch();\n try {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n for (let head = this.subsHead; head; head = head.nextSub) {\n if (head.sub.onTrigger && !(head.sub.flags & 8)) {\n head.sub.onTrigger(\n extend(\n {\n effect: head.sub\n },\n debugInfo\n )\n );\n }\n }\n }\n for (let link = this.subs; link; link = link.prevSub) {\n if (link.sub.notify()) {\n ;\n link.sub.dep.notify();\n }\n }\n } finally {\n endBatch();\n }\n }\n}\nfunction addSub(link) {\n link.dep.sc++;\n if (link.sub.flags & 4) {\n const computed = link.dep.computed;\n if (computed && !link.dep.subs) {\n computed.flags |= 4 | 16;\n for (let l = computed.deps; l; l = l.nextDep) {\n addSub(l);\n }\n }\n const currentTail = link.dep.subs;\n if (currentTail !== link) {\n link.prevSub = currentTail;\n if (currentTail) currentTail.nextSub = link;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && link.dep.subsHead === void 0) {\n link.dep.subsHead = link;\n }\n link.dep.subs = link;\n }\n}\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Object iterate\" : \"\"\n);\nconst MAP_KEY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Map keys iterate\" : \"\"\n);\nconst ARRAY_ITERATE_KEY = Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? \"Array iterate\" : \"\"\n);\nfunction track(target, type, key) {\n if (shouldTrack && activeSub) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = new Dep());\n dep.map = depsMap;\n dep.key = key;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.track({\n target,\n type,\n key\n });\n } else {\n dep.track();\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n globalVersion++;\n return;\n }\n const run = (dep) => {\n if (dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n dep.trigger({\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n });\n } else {\n dep.trigger();\n }\n }\n };\n startBatch();\n if (type === \"clear\") {\n depsMap.forEach(run);\n } else {\n const targetIsArray = isArray(target);\n const isArrayIndex = targetIsArray && isIntegerKey(key);\n if (targetIsArray && key === \"length\") {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 === ARRAY_ITERATE_KEY || !isSymbol(key2) && key2 >= newLength) {\n run(dep);\n }\n });\n } else {\n if (key !== void 0 || depsMap.has(void 0)) {\n run(depsMap.get(key));\n }\n if (isArrayIndex) {\n run(depsMap.get(ARRAY_ITERATE_KEY));\n }\n switch (type) {\n case \"add\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isArrayIndex) {\n run(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!targetIsArray) {\n run(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n run(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n run(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n }\n endBatch();\n}\nfunction getDepFromReactive(object, key) {\n const depMap = targetMap.get(object);\n return depMap && depMap.get(key);\n}\n\nfunction reactiveReadArray(array) {\n const raw = toRaw(array);\n if (raw === array) return raw;\n track(raw, \"iterate\", ARRAY_ITERATE_KEY);\n return isShallow(array) ? raw : raw.map(toReactive);\n}\nfunction shallowReadArray(arr) {\n track(arr = toRaw(arr), \"iterate\", ARRAY_ITERATE_KEY);\n return arr;\n}\nconst arrayInstrumentations = {\n __proto__: null,\n [Symbol.iterator]() {\n return iterator(this, Symbol.iterator, toReactive);\n },\n concat(...args) {\n return reactiveReadArray(this).concat(\n ...args.map((x) => isArray(x) ? reactiveReadArray(x) : x)\n );\n },\n entries() {\n return iterator(this, \"entries\", (value) => {\n value[1] = toReactive(value[1]);\n return value;\n });\n },\n every(fn, thisArg) {\n return apply(this, \"every\", fn, thisArg, void 0, arguments);\n },\n filter(fn, thisArg) {\n return apply(this, \"filter\", fn, thisArg, (v) => v.map(toReactive), arguments);\n },\n find(fn, thisArg) {\n return apply(this, \"find\", fn, thisArg, toReactive, arguments);\n },\n findIndex(fn, thisArg) {\n return apply(this, \"findIndex\", fn, thisArg, void 0, arguments);\n },\n findLast(fn, thisArg) {\n return apply(this, \"findLast\", fn, thisArg, toReactive, arguments);\n },\n findLastIndex(fn, thisArg) {\n return apply(this, \"findLastIndex\", fn, thisArg, void 0, arguments);\n },\n // flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement\n forEach(fn, thisArg) {\n return apply(this, \"forEach\", fn, thisArg, void 0, arguments);\n },\n includes(...args) {\n return searchProxy(this, \"includes\", args);\n },\n indexOf(...args) {\n return searchProxy(this, \"indexOf\", args);\n },\n join(separator) {\n return reactiveReadArray(this).join(separator);\n },\n // keys() iterator only reads `length`, no optimization required\n lastIndexOf(...args) {\n return searchProxy(this, \"lastIndexOf\", args);\n },\n map(fn, thisArg) {\n return apply(this, \"map\", fn, thisArg, void 0, arguments);\n },\n pop() {\n return noTracking(this, \"pop\");\n },\n push(...args) {\n return noTracking(this, \"push\", args);\n },\n reduce(fn, ...args) {\n return reduce(this, \"reduce\", fn, args);\n },\n reduceRight(fn, ...args) {\n return reduce(this, \"reduceRight\", fn, args);\n },\n shift() {\n return noTracking(this, \"shift\");\n },\n // slice could use ARRAY_ITERATE but also seems to beg for range tracking\n some(fn, thisArg) {\n return apply(this, \"some\", fn, thisArg, void 0, arguments);\n },\n splice(...args) {\n return noTracking(this, \"splice\", args);\n },\n toReversed() {\n return reactiveReadArray(this).toReversed();\n },\n toSorted(comparer) {\n return reactiveReadArray(this).toSorted(comparer);\n },\n toSpliced(...args) {\n return reactiveReadArray(this).toSpliced(...args);\n },\n unshift(...args) {\n return noTracking(this, \"unshift\", args);\n },\n values() {\n return iterator(this, \"values\", toReactive);\n }\n};\nfunction iterator(self, method, wrapValue) {\n const arr = shallowReadArray(self);\n const iter = arr[method]();\n if (arr !== self && !isShallow(self)) {\n iter._next = iter.next;\n iter.next = () => {\n const result = iter._next();\n if (!result.done) {\n result.value = wrapValue(result.value);\n }\n return result;\n };\n }\n return iter;\n}\nconst arrayProto = Array.prototype;\nfunction apply(self, method, fn, thisArg, wrappedRetFn, args) {\n const arr = shallowReadArray(self);\n const needsWrap = arr !== self && !isShallow(self);\n const methodFn = arr[method];\n if (methodFn !== arrayProto[method]) {\n const result2 = methodFn.apply(self, args);\n return needsWrap ? toReactive(result2) : result2;\n }\n let wrappedFn = fn;\n if (arr !== self) {\n if (needsWrap) {\n wrappedFn = function(item, index) {\n return fn.call(this, toReactive(item), index, self);\n };\n } else if (fn.length > 2) {\n wrappedFn = function(item, index) {\n return fn.call(this, item, index, self);\n };\n }\n }\n const result = methodFn.call(arr, wrappedFn, thisArg);\n return needsWrap && wrappedRetFn ? wrappedRetFn(result) : result;\n}\nfunction reduce(self, method, fn, args) {\n const arr = shallowReadArray(self);\n let wrappedFn = fn;\n if (arr !== self) {\n if (!isShallow(self)) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, toReactive(item), index, self);\n };\n } else if (fn.length > 3) {\n wrappedFn = function(acc, item, index) {\n return fn.call(this, acc, item, index, self);\n };\n }\n }\n return arr[method](wrappedFn, ...args);\n}\nfunction searchProxy(self, method, args) {\n const arr = toRaw(self);\n track(arr, \"iterate\", ARRAY_ITERATE_KEY);\n const res = arr[method](...args);\n if ((res === -1 || res === false) && isProxy(args[0])) {\n args[0] = toRaw(args[0]);\n return arr[method](...args);\n }\n return res;\n}\nfunction noTracking(self, method, args = []) {\n pauseTracking();\n startBatch();\n const res = toRaw(self)[method].apply(self, args);\n endBatch();\n resetTracking();\n return res;\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nfunction hasOwnProperty(key) {\n if (!isSymbol(key)) key = String(key);\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n if (key === \"__v_skip\") return target[\"__v_skip\"];\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the receiver is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n let fn;\n if (targetIsArray && (fn = arrayInstrumentations[key])) {\n return fn;\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(\n target,\n key,\n // if this is a proxy wrapping a ref, return methods using the raw ref\n // as receiver so that we don't have to call `toRaw` on the ref in all\n // its class methods\n isRef(target) ? target : receiver\n );\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n const value = targetIsArray && isIntegerKey(key) ? res : res.value;\n return isReadonly2 && isObject(value) ? readonly(value) : value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target[key]\n );\n }\n return true;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(\n target,\n key,\n value,\n isRef(target) ? target : receiver\n );\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(true);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction createIterableMethod(method, isReadonly2, isShallow2) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;\n !isReadonly2 && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations(readonly, shallow) {\n const instrumentations = {\n get(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has } = getProto(rawTarget);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n if (has.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n },\n get size() {\n const target = this[\"__v_raw\"];\n !readonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return target.size;\n },\n has(key) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!readonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n },\n forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = shallow ? toShallow : readonly ? toReadonly : toReactive;\n !readonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n }\n };\n extend(\n instrumentations,\n readonly ? {\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\")\n } : {\n add(value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n },\n set(key, value) {\n if (!shallow && !isShallow(value) && !isReadonly(value)) {\n value = toRaw(value);\n }\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n },\n delete(key) {\n const target = toRaw(this);\n const { has, get } = getProto(target);\n let hadKey = has.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has, key);\n }\n const oldValue = get ? get.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n },\n clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(\n target,\n \"clear\",\n void 0,\n void 0,\n oldTarget\n );\n }\n return result;\n }\n }\n );\n const iteratorMethods = [\n \"keys\",\n \"values\",\n \"entries\",\n Symbol.iterator\n ];\n iteratorMethods.forEach((method) => {\n instrumentations[method] = createIterableMethod(method, readonly, shallow);\n });\n return instrumentations;\n}\nfunction createInstrumentationGetter(isReadonly2, shallow) {\n const instrumentations = createInstrumentations(isReadonly2, shallow);\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `value cannot be made ${isReadonly2 ? \"readonly\" : \"reactive\"}: ${String(\n target\n )}`\n );\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return value ? !!value[\"__v_raw\"] : false;\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (!hasOwn(value, \"__v_skip\") && Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction isRef(r) {\n return r ? r[\"__v_isRef\"] === true : false;\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, isShallow2) {\n this.dep = new Dep();\n this[\"__v_isRef\"] = true;\n this[\"__v_isShallow\"] = false;\n this._rawValue = isShallow2 ? value : toRaw(value);\n this._value = isShallow2 ? value : toReactive(value);\n this[\"__v_isShallow\"] = isShallow2;\n }\n get value() {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n });\n } else {\n this.dep.track();\n }\n return this._value;\n }\n set value(newValue) {\n const oldValue = this._rawValue;\n const useDirectValue = this[\"__v_isShallow\"] || isShallow(newValue) || isReadonly(newValue);\n newValue = useDirectValue ? newValue : toRaw(newValue);\n if (hasChanged(newValue, oldValue)) {\n this._rawValue = newValue;\n this._value = useDirectValue ? newValue : toReactive(newValue);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n this.dep.trigger({\n target: this,\n type: \"set\",\n key: \"value\",\n newValue,\n oldValue\n });\n } else {\n this.dep.trigger();\n }\n }\n }\n}\nfunction triggerRef(ref2) {\n if (ref2.dep) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n ref2.dep.trigger({\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: ref2._value\n });\n } else {\n ref2.dep.trigger();\n }\n }\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => key === \"__v_raw\" ? target : unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n const dep = this.dep = new Dep();\n const { get, set } = factory(dep.track.bind(dep), dep.trigger.bind(dep));\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._value = this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this[\"__v_isRef\"] = true;\n this._value = void 0;\n }\n get value() {\n const val = this._object[this._key];\n return this._value = val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this[\"__v_isRef\"] = true;\n this[\"__v_isReadonly\"] = true;\n this._value = void 0;\n }\n get value() {\n return this._value = this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nclass ComputedRefImpl {\n constructor(fn, setter, isSSR) {\n this.fn = fn;\n this.setter = setter;\n /**\n * @internal\n */\n this._value = void 0;\n /**\n * @internal\n */\n this.dep = new Dep(this);\n /**\n * @internal\n */\n this.__v_isRef = true;\n // TODO isolatedDeclarations \"__v_isReadonly\"\n // A computed is also a subscriber that tracks other deps\n /**\n * @internal\n */\n this.deps = void 0;\n /**\n * @internal\n */\n this.depsTail = void 0;\n /**\n * @internal\n */\n this.flags = 16;\n /**\n * @internal\n */\n this.globalVersion = globalVersion - 1;\n /**\n * @internal\n */\n this.next = void 0;\n // for backwards compat\n this.effect = this;\n this[\"__v_isReadonly\"] = !setter;\n this.isSSR = isSSR;\n }\n /**\n * @internal\n */\n notify() {\n this.flags |= 16;\n if (!(this.flags & 8) && // avoid infinite self recursion\n activeSub !== this) {\n batch(this, true);\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\")) ;\n }\n get value() {\n const link = !!(process.env.NODE_ENV !== \"production\") ? this.dep.track({\n target: this,\n type: \"get\",\n key: \"value\"\n }) : this.dep.track();\n refreshComputed(this);\n if (link) {\n link.version = this.dep.version;\n }\n return this._value;\n }\n set value(newValue) {\n if (this.setter) {\n this.setter(newValue);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\"Write operation failed: computed value is readonly\");\n }\n }\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n if (isFunction(getterOrOptions)) {\n getter = getterOrOptions;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.onTrack = debugOptions.onTrack;\n cRef.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\",\n \"IS_REF\": \"__v_isRef\"\n};\n\nconst WatchErrorCodes = {\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\"\n};\nconst INITIAL_WATCHER_VALUE = {};\nconst cleanupMap = /* @__PURE__ */ new WeakMap();\nlet activeWatcher = void 0;\nfunction getCurrentWatcher() {\n return activeWatcher;\n}\nfunction onWatcherCleanup(cleanupFn, failSilently = false, owner = activeWatcher) {\n if (owner) {\n let cleanups = cleanupMap.get(owner);\n if (!cleanups) cleanupMap.set(owner, cleanups = []);\n cleanups.push(cleanupFn);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !failSilently) {\n warn(\n `onWatcherCleanup() was called when there was no active watcher to associate with.`\n );\n }\n}\nfunction watch(source, cb, options = EMPTY_OBJ) {\n const { immediate, deep, once, scheduler, augmentJob, call } = options;\n const warnInvalidSource = (s) => {\n (options.onWarn || warn)(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const reactiveGetter = (source2) => {\n if (deep) return source2;\n if (isShallow(source2) || deep === false || deep === 0)\n return traverse(source2, 1);\n return traverse(source2);\n };\n let effect;\n let getter;\n let cleanup;\n let boundCleanup;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return call ? call(s, 2) : s();\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = call ? () => call(source, 2) : source;\n } else {\n getter = () => {\n if (cleanup) {\n pauseTracking();\n try {\n cleanup();\n } finally {\n resetTracking();\n }\n }\n const currentEffect = activeWatcher;\n activeWatcher = effect;\n try {\n return call ? call(source, 3, [boundCleanup]) : source(boundCleanup);\n } finally {\n activeWatcher = currentEffect;\n }\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n const depth = deep === true ? Infinity : deep;\n getter = () => traverse(baseGetter(), depth);\n }\n const scope = getCurrentScope();\n const watchHandle = () => {\n effect.stop();\n if (scope && scope.active) {\n remove(scope.effects, effect);\n }\n };\n if (once && cb) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n watchHandle();\n };\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = (immediateFirstRun) => {\n if (!(effect.flags & 1) || !effect.dirty && !immediateFirstRun) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue))) {\n if (cleanup) {\n cleanup();\n }\n const currentWatcher = activeWatcher;\n activeWatcher = effect;\n try {\n const args = [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n boundCleanup\n ];\n oldValue = newValue;\n call ? call(cb, 3, args) : (\n // @ts-expect-error\n cb(...args)\n );\n } finally {\n activeWatcher = currentWatcher;\n }\n }\n } else {\n effect.run();\n }\n };\n if (augmentJob) {\n augmentJob(job);\n }\n effect = new ReactiveEffect(getter);\n effect.scheduler = scheduler ? () => scheduler(job, false) : job;\n boundCleanup = (fn) => onWatcherCleanup(fn, false, effect);\n cleanup = effect.onStop = () => {\n const cleanups = cleanupMap.get(effect);\n if (cleanups) {\n if (call) {\n call(cleanups, 4);\n } else {\n for (const cleanup2 of cleanups) cleanup2();\n }\n cleanupMap.delete(effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = options.onTrack;\n effect.onTrigger = options.onTrigger;\n }\n if (cb) {\n if (immediate) {\n job(true);\n } else {\n oldValue = effect.run();\n }\n } else if (scheduler) {\n scheduler(job.bind(null, true), true);\n } else {\n effect.run();\n }\n watchHandle.pause = effect.pause.bind(effect);\n watchHandle.resume = effect.resume.bind(effect);\n watchHandle.stop = watchHandle;\n return watchHandle;\n}\nfunction traverse(value, depth = Infinity, seen) {\n if (depth <= 0 || !isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n seen = seen || /* @__PURE__ */ new Map();\n if ((seen.get(value) || 0) >= depth) {\n return value;\n }\n seen.set(value, depth);\n depth--;\n if (isRef(value)) {\n traverse(value.value, depth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, seen);\n }\n for (const key of Object.getOwnPropertySymbols(value)) {\n if (Object.prototype.propertyIsEnumerable.call(value, key)) {\n traverse(value[key], depth, seen);\n }\n }\n }\n return value;\n}\n\nexport { ARRAY_ITERATE_KEY, EffectFlags, EffectScope, ITERATE_KEY, MAP_KEY_ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, WatchErrorCodes, computed, customRef, effect, effectScope, enableTracking, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onEffectCleanup, onScopeDispose, onWatcherCleanup, pauseTracking, proxyRefs, reactive, reactiveReadArray, readonly, ref, resetTracking, shallowReactive, shallowReadArray, shallowReadonly, shallowRef, stop, toRaw, toReactive, toReadonly, toRef, toRefs, toValue, track, traverse, trigger, triggerRef, unref, watch };\n","/**\n* @vue/runtime-core v3.5.24\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, traverse, shallowRef, readonly, isReactive, ref, isShallow, isReadonly, shallowReadArray, toReadonly, toReactive, shallowReadonly, track, reactive, shallowReactive, trigger, ReactiveEffect, watch as watch$1, customRef, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1 } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, getCurrentWatcher, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, onWatcherCleanup, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, EMPTY_OBJ, isPromise, isArray, NOOP, getGlobalThis, extend, isBuiltInDirective, NO, hasOwn, remove, def, isOn, isReservedProp, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue, normalizeCssVarValue, getEscapedCssVarName, isObject, isRegExp, invokeArrayFns, toHandlerKey, camelize, capitalize, isSymbol, isGloballyAllowed, EMPTY_ARR, hyphenate, makeMap, toRawType, hasChanged, looseToNumber, isModelListener, toNumber } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nlet isWarning = false;\nfunction warn$1(msg, ...args) {\n if (isWarning) return;\n isWarning = true;\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n // eslint-disable-next-line no-restricted-syntax\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n isWarning = false;\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\")) return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\",\n \"COMPONENT_UPDATE\": 15,\n \"15\": \"COMPONENT_UPDATE\",\n \"APP_UNMOUNT_CLEANUP\": 16,\n \"16\": \"APP_UNMOUNT_CLEANUP\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush\",\n [15]: \"component update\",\n [16]: \"app unmount cleanup function\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n if (isArray(fn)) {\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Invalid value type passed to callWithAsyncErrorHandling(): ${typeof fn}`\n );\n }\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n const { errorHandler, throwUnhandledErrorInProduction } = instance && instance.appContext.config || EMPTY_OBJ;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n if (errorHandler) {\n pauseTracking();\n callWithErrorHandling(errorHandler, null, 10, [\n err,\n exposedInstance,\n errorInfo\n ]);\n resetTracking();\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev, throwUnhandledErrorInProduction);\n}\nfunction logError(err, type, contextVNode, throwInDev = true, throwInProd = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else if (throwInProd) {\n throw err;\n } else {\n console.error(err);\n }\n}\n\nconst queue = [];\nlet flushIndex = -1;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.flags & 2) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!(job.flags & 1)) {\n const jobId = getId(job);\n const lastJob = queue[queue.length - 1];\n if (!lastJob || // fast path when the job id is larger than the tail\n !(job.flags & 2) && jobId >= getId(lastJob)) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(jobId), 0, job);\n }\n job.flags |= 1;\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!currentFlushPromise) {\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (activePostFlushCbs && cb.id === -1) {\n activePostFlushCbs.splice(postFlushIndex + 1, 0, cb);\n } else if (!(cb.flags & 1)) {\n pendingPostFlushCbs.push(cb);\n cb.flags |= 1;\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = flushIndex + 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.flags & 2) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n cb();\n if (!(cb.flags & 4)) {\n cb.flags &= -2;\n }\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n const cb = activePostFlushCbs[postFlushIndex];\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n if (cb.flags & 4) {\n cb.flags &= -2;\n }\n if (!(cb.flags & 8)) cb();\n cb.flags &= -2;\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? job.flags & 2 ? -1 : Infinity : job.id;\nfunction flushJobs(seen) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && !(job.flags & 8)) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n if (job.flags & 4) {\n job.flags &= ~1;\n }\n callWithErrorHandling(\n job,\n job.i,\n job.i ? 15 : 14\n );\n if (!(job.flags & 4)) {\n job.flags &= ~1;\n }\n }\n }\n } finally {\n for (; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job) {\n job.flags &= -2;\n }\n }\n flushIndex = -1;\n queue.length = 0;\n flushPostFlushCbs(seen);\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n const count = seen.get(fn) || 0;\n if (count > RECURSION_LIMIT) {\n const instance = fn.i;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n }\n seen.set(fn, count + 1);\n return false;\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Map();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record) return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (let i = 0; i < instances.length; i++) {\n const instance = instances[i];\n const oldComp = normalizeClassComponent(instance.type);\n let dirtyInstances = hmrDirtyComponents.get(oldComp);\n if (!dirtyInstances) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.set(oldComp, dirtyInstances = /* @__PURE__ */ new Set());\n }\n dirtyInstances.add(instance);\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n dirtyInstances.add(instance);\n instance.ceReload(newComp.styles);\n dirtyInstances.delete(instance);\n } else if (instance.parent) {\n queueJob(() => {\n if (!(instance.job.flags & 8)) {\n isHmrUpdating = true;\n instance.parent.update();\n isHmrUpdating = false;\n dirtyInstances.delete(instance);\n }\n });\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n if (instance.root.ce && instance !== instance.root) {\n instance.root.ce._removeChildStyle(oldComp);\n }\n }\n queuePostFlushCb(() => {\n hmrDirtyComponents.clear();\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n // eslint-disable-next-line no-restricted-syntax\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\n// @__NO_SIDE_EFFECTS__\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx) return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getComponentPublicInstance(currentRenderingInstance);\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst TeleportEndKey = Symbol(\"_vte\");\nconst isTeleport = (type) => type.__isTeleport;\nconst isTeleportDisabled = (props) => props && (props.disabled || props.disabled === \"\");\nconst isTeleportDeferred = (props) => props && (props.defer || props.defer === \"\");\nconst isTargetSVG = (target) => typeof SVGElement !== \"undefined\" && target instanceof SVGElement;\nconst isTargetMathML = (target) => typeof MathMLElement === \"function\" && target instanceof MathMLElement;\nconst resolveTarget = (props, select) => {\n const targetSelector = props && props.to;\n if (isString(targetSelector)) {\n if (!select) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Current renderer does not support string target for Teleports. (missing querySelector renderer option)`\n );\n return null;\n } else {\n const target = select(targetSelector);\n if (!!(process.env.NODE_ENV !== \"production\") && !target && !isTeleportDisabled(props)) {\n warn$1(\n `Failed to locate Teleport target with selector \"${targetSelector}\". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`\n );\n }\n return target;\n }\n } else {\n if (!!(process.env.NODE_ENV !== \"production\") && !targetSelector && !isTeleportDisabled(props)) {\n warn$1(`Invalid Teleport target: ${targetSelector}`);\n }\n return targetSelector;\n }\n};\nconst TeleportImpl = {\n name: \"Teleport\",\n __isTeleport: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, internals) {\n const {\n mc: mountChildren,\n pc: patchChildren,\n pbc: patchBlockChildren,\n o: { insert, querySelector, createText, createComment }\n } = internals;\n const disabled = isTeleportDisabled(n2.props);\n let { shapeFlag, children, dynamicChildren } = n2;\n if (!!(process.env.NODE_ENV !== \"production\") && isHmrUpdating) {\n optimized = false;\n dynamicChildren = null;\n }\n if (n1 == null) {\n const placeholder = n2.el = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport start\") : createText(\"\");\n const mainAnchor = n2.anchor = !!(process.env.NODE_ENV !== \"production\") ? createComment(\"teleport end\") : createText(\"\");\n insert(placeholder, container, anchor);\n insert(mainAnchor, container, anchor);\n const mount = (container2, anchor2) => {\n if (shapeFlag & 16) {\n mountChildren(\n children,\n container2,\n anchor2,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized\n );\n }\n };\n const mountToTarget = () => {\n const target = n2.target = resolveTarget(n2.props, querySelector);\n const targetAnchor = prepareAnchor(target, n2, createText, insert);\n if (target) {\n if (namespace !== \"svg\" && isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace !== \"mathml\" && isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (parentComponent && parentComponent.isCE) {\n (parentComponent.ce._teleportTargets || (parentComponent.ce._teleportTargets = /* @__PURE__ */ new Set())).add(target);\n }\n if (!disabled) {\n mount(target, targetAnchor);\n updateCssVars(n2, false);\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && !disabled) {\n warn$1(\n \"Invalid Teleport target on mount:\",\n target,\n `(${typeof target})`\n );\n }\n };\n if (disabled) {\n mount(container, mainAnchor);\n updateCssVars(n2, true);\n }\n if (isTeleportDeferred(n2.props)) {\n n2.el.__isMounted = false;\n queuePostRenderEffect(() => {\n mountToTarget();\n delete n2.el.__isMounted;\n }, parentSuspense);\n } else {\n mountToTarget();\n }\n } else {\n if (isTeleportDeferred(n2.props) && n1.el.__isMounted === false) {\n queuePostRenderEffect(() => {\n TeleportImpl.process(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n internals\n );\n }, parentSuspense);\n return;\n }\n n2.el = n1.el;\n n2.targetStart = n1.targetStart;\n const mainAnchor = n2.anchor = n1.anchor;\n const target = n2.target = n1.target;\n const targetAnchor = n2.targetAnchor = n1.targetAnchor;\n const wasDisabled = isTeleportDisabled(n1.props);\n const currentContainer = wasDisabled ? container : target;\n const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;\n if (namespace === \"svg\" || isTargetSVG(target)) {\n namespace = \"svg\";\n } else if (namespace === \"mathml\" || isTargetMathML(target)) {\n namespace = \"mathml\";\n }\n if (dynamicChildren) {\n patchBlockChildren(\n n1.dynamicChildren,\n dynamicChildren,\n currentContainer,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds\n );\n traverseStaticChildren(n1, n2, !!!(process.env.NODE_ENV !== \"production\"));\n } else if (!optimized) {\n patchChildren(\n n1,\n n2,\n currentContainer,\n currentAnchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n false\n );\n }\n if (disabled) {\n if (!wasDisabled) {\n moveTeleport(\n n2,\n container,\n mainAnchor,\n internals,\n 1\n );\n } else {\n if (n2.props && n1.props && n2.props.to !== n1.props.to) {\n n2.props.to = n1.props.to;\n }\n }\n } else {\n if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {\n const nextTarget = n2.target = resolveTarget(\n n2.props,\n querySelector\n );\n if (nextTarget) {\n moveTeleport(\n n2,\n nextTarget,\n null,\n internals,\n 0\n );\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n \"Invalid Teleport target on update:\",\n target,\n `(${typeof target})`\n );\n }\n } else if (wasDisabled) {\n moveTeleport(\n n2,\n target,\n targetAnchor,\n internals,\n 1\n );\n }\n }\n updateCssVars(n2, disabled);\n }\n },\n remove(vnode, parentComponent, parentSuspense, { um: unmount, o: { remove: hostRemove } }, doRemove) {\n const {\n shapeFlag,\n children,\n anchor,\n targetStart,\n targetAnchor,\n target,\n props\n } = vnode;\n if (target) {\n hostRemove(targetStart);\n hostRemove(targetAnchor);\n }\n doRemove && hostRemove(anchor);\n if (shapeFlag & 16) {\n const shouldRemove = doRemove || !isTeleportDisabled(props);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n unmount(\n child,\n parentComponent,\n parentSuspense,\n shouldRemove,\n !!child.dynamicChildren\n );\n }\n }\n },\n move: moveTeleport,\n hydrate: hydrateTeleport\n};\nfunction moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {\n if (moveType === 0) {\n insert(vnode.targetAnchor, container, parentAnchor);\n }\n const { el, anchor, shapeFlag, children, props } = vnode;\n const isReorder = moveType === 2;\n if (isReorder) {\n insert(el, container, parentAnchor);\n }\n if (!isReorder || isTeleportDisabled(props)) {\n if (shapeFlag & 16) {\n for (let i = 0; i < children.length; i++) {\n move(\n children[i],\n container,\n parentAnchor,\n 2\n );\n }\n }\n }\n if (isReorder) {\n insert(anchor, container, parentAnchor);\n }\n}\nfunction hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, {\n o: { nextSibling, parentNode, querySelector, insert, createText }\n}, hydrateChildren) {\n function hydrateDisabledTeleport(node2, vnode2, targetStart, targetAnchor) {\n vnode2.anchor = hydrateChildren(\n nextSibling(node2),\n vnode2,\n parentNode(node2),\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n vnode2.targetStart = targetStart;\n vnode2.targetAnchor = targetAnchor;\n }\n const target = vnode.target = resolveTarget(\n vnode.props,\n querySelector\n );\n const disabled = isTeleportDisabled(vnode.props);\n if (target) {\n const targetNode = target._lpa || target.firstChild;\n if (vnode.shapeFlag & 16) {\n if (disabled) {\n hydrateDisabledTeleport(\n node,\n vnode,\n targetNode,\n targetNode && nextSibling(targetNode)\n );\n } else {\n vnode.anchor = nextSibling(node);\n let targetAnchor = targetNode;\n while (targetAnchor) {\n if (targetAnchor && targetAnchor.nodeType === 8) {\n if (targetAnchor.data === \"teleport start anchor\") {\n vnode.targetStart = targetAnchor;\n } else if (targetAnchor.data === \"teleport anchor\") {\n vnode.targetAnchor = targetAnchor;\n target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);\n break;\n }\n }\n targetAnchor = nextSibling(targetAnchor);\n }\n if (!vnode.targetAnchor) {\n prepareAnchor(target, vnode, createText, insert);\n }\n hydrateChildren(\n targetNode && nextSibling(targetNode),\n vnode,\n target,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n }\n updateCssVars(vnode, disabled);\n } else if (disabled) {\n if (vnode.shapeFlag & 16) {\n hydrateDisabledTeleport(node, vnode, node, nextSibling(node));\n }\n }\n return vnode.anchor && nextSibling(vnode.anchor);\n}\nconst Teleport = TeleportImpl;\nfunction updateCssVars(vnode, isDisabled) {\n const ctx = vnode.ctx;\n if (ctx && ctx.ut) {\n let node, anchor;\n if (isDisabled) {\n node = vnode.el;\n anchor = vnode.anchor;\n } else {\n node = vnode.targetStart;\n anchor = vnode.targetAnchor;\n }\n while (node && node !== anchor) {\n if (node.nodeType === 1) node.setAttribute(\"data-v-owner\", ctx.uid);\n node = node.nextSibling;\n }\n ctx.ut();\n }\n}\nfunction prepareAnchor(target, vnode, createText, insert) {\n const targetStart = vnode.targetStart = createText(\"\");\n const targetAnchor = vnode.targetAnchor = createText(\"\");\n targetStart[TeleportEndKey] = targetAnchor;\n if (target) {\n insert(targetStart, target);\n insert(targetAnchor, target);\n }\n return targetAnchor;\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst recursiveGetSubtree = (instance) => {\n const subTree = instance.subTree;\n return subTree.component ? recursiveGetSubtree(subTree.component) : subTree;\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n const child = findNonCommentChild(children);\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getInnerChild$1(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n let enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance,\n // #11061, ensure enterHooks is fresh after clone\n (hooks) => enterHooks = hooks\n );\n if (innerChild.type !== Comment) {\n setTransitionHooks(innerChild, enterHooks);\n }\n let oldInnerChild = instance.subTree && getInnerChild$1(instance.subTree);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(oldInnerChild, innerChild) && recursiveGetSubtree(instance).type !== Comment) {\n let leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\" && innerChild.type !== Comment) {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (!(instance.job.flags & 8)) {\n instance.update();\n }\n delete leavingHooks.afterLeave;\n oldInnerChild = void 0;\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n enterHooks.delayedLeave = () => {\n delayedLeave();\n delete enterHooks.delayedLeave;\n oldInnerChild = void 0;\n };\n };\n } else {\n oldInnerChild = void 0;\n }\n } else if (oldInnerChild) {\n oldInnerChild = void 0;\n }\n return child;\n };\n }\n};\nfunction findNonCommentChild(children) {\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\")) break;\n }\n }\n }\n return child;\n}\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance, postClone) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1)) done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called) return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n const hooks2 = resolveTransitionHooks(\n vnode2,\n props,\n state,\n instance,\n postClone\n );\n if (postClone) postClone(hooks2);\n return hooks2;\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getInnerChild$1(vnode) {\n if (!isKeepAlive(vnode)) {\n if (isTeleport(vnode.type) && vnode.children) {\n return findNonCommentChild(vnode.children);\n }\n return vnode;\n }\n if (vnode.component) {\n return vnode.component.subTree;\n }\n const { shapeFlag, children } = vnode;\n if (children) {\n if (shapeFlag & 16) {\n return children[0];\n }\n if (shapeFlag & 32 && isFunction(children.default)) {\n return children.default();\n }\n }\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n vnode.transition = hooks;\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128) keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8236: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nfunction useId() {\n const i = getCurrentInstance();\n if (i) {\n return (i.appContext.config.idPrefix || \"v\") + \"-\" + i.ids[0] + i.ids[1]++;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useId() is called when there is no active component instance to be associated with.`\n );\n }\n return \"\";\n}\nfunction markAsyncBoundary(instance) {\n instance.ids = [instance.ids[0] + instance.ids[2]++ + \"-\", 0, 0];\n}\n\nconst knownTemplateRefs = /* @__PURE__ */ new WeakSet();\nfunction useTemplateRef(key) {\n const i = getCurrentInstance();\n const r = shallowRef(null);\n if (i) {\n const refs = i.refs === EMPTY_OBJ ? i.refs = {} : i.refs;\n let desc;\n if (!!(process.env.NODE_ENV !== \"production\") && (desc = Object.getOwnPropertyDescriptor(refs, key)) && !desc.configurable) {\n warn$1(`useTemplateRef('${key}') already exists.`);\n } else {\n Object.defineProperty(refs, key, {\n enumerable: true,\n get: () => r.value,\n set: (val) => r.value = val\n });\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `useTemplateRef() is called when there is no active component instance to be associated with.`\n );\n }\n const ret = !!(process.env.NODE_ENV !== \"production\") ? readonly(r) : r;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n knownTemplateRefs.add(ret);\n }\n return ret;\n}\n\nconst pendingSetRefMap = /* @__PURE__ */ new WeakMap();\nfunction setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {\n if (isArray(rawRef)) {\n rawRef.forEach(\n (r, i) => setRef(\n r,\n oldRawRef && (isArray(oldRawRef) ? oldRawRef[i] : oldRawRef),\n parentSuspense,\n vnode,\n isUnmount\n )\n );\n return;\n }\n if (isAsyncWrapper(vnode) && !isUnmount) {\n if (vnode.shapeFlag & 512 && vnode.type.__asyncResolved && vnode.component.subTree.component) {\n setRef(rawRef, oldRawRef, parentSuspense, vnode.component.subTree);\n }\n return;\n }\n const refValue = vnode.shapeFlag & 4 ? getComponentPublicInstance(vnode.component) : vnode.el;\n const value = isUnmount ? null : refValue;\n const { i: owner, r: ref } = rawRef;\n if (!!(process.env.NODE_ENV !== \"production\") && !owner) {\n warn$1(\n `Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.`\n );\n return;\n }\n const oldRef = oldRawRef && oldRawRef.r;\n const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;\n const setupState = owner.setupState;\n const rawSetupState = toRaw(setupState);\n const canSetSetupRef = setupState === EMPTY_OBJ ? NO : (key) => {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (hasOwn(rawSetupState, key) && !isRef(rawSetupState[key])) {\n warn$1(\n `Template ref \"${key}\" used on a non-ref value. It will not work in the production build.`\n );\n }\n if (knownTemplateRefs.has(rawSetupState[key])) {\n return false;\n }\n }\n return hasOwn(rawSetupState, key);\n };\n const canSetRef = (ref2) => {\n return !!!(process.env.NODE_ENV !== \"production\") || !knownTemplateRefs.has(ref2);\n };\n if (oldRef != null && oldRef !== ref) {\n invalidatePendingSetRef(oldRawRef);\n if (isString(oldRef)) {\n refs[oldRef] = null;\n if (canSetSetupRef(oldRef)) {\n setupState[oldRef] = null;\n }\n } else if (isRef(oldRef)) {\n if (canSetRef(oldRef)) {\n oldRef.value = null;\n }\n const oldRawRefAtom = oldRawRef;\n if (oldRawRefAtom.k) refs[oldRawRefAtom.k] = null;\n }\n }\n if (isFunction(ref)) {\n callWithErrorHandling(ref, owner, 12, [value, refs]);\n } else {\n const _isString = isString(ref);\n const _isRef = isRef(ref);\n if (_isString || _isRef) {\n const doSet = () => {\n if (rawRef.f) {\n const existing = _isString ? canSetSetupRef(ref) ? setupState[ref] : refs[ref] : canSetRef(ref) || !rawRef.k ? ref.value : refs[rawRef.k];\n if (isUnmount) {\n isArray(existing) && remove(existing, refValue);\n } else {\n if (!isArray(existing)) {\n if (_isString) {\n refs[ref] = [refValue];\n if (canSetSetupRef(ref)) {\n setupState[ref] = refs[ref];\n }\n } else {\n const newVal = [refValue];\n if (canSetRef(ref)) {\n ref.value = newVal;\n }\n if (rawRef.k) refs[rawRef.k] = newVal;\n }\n } else if (!existing.includes(refValue)) {\n existing.push(refValue);\n }\n }\n } else if (_isString) {\n refs[ref] = value;\n if (canSetSetupRef(ref)) {\n setupState[ref] = value;\n }\n } else if (_isRef) {\n if (canSetRef(ref)) {\n ref.value = value;\n }\n if (rawRef.k) refs[rawRef.k] = value;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n };\n if (value) {\n const job = () => {\n doSet();\n pendingSetRefMap.delete(rawRef);\n };\n job.id = -1;\n pendingSetRefMap.set(rawRef, job);\n queuePostRenderEffect(job, parentSuspense);\n } else {\n invalidatePendingSetRef(rawRef);\n doSet();\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\"Invalid template ref type:\", ref, `(${typeof ref})`);\n }\n }\n}\nfunction invalidatePendingSetRef(rawRef) {\n const pendingSetRef = pendingSetRefMap.get(rawRef);\n if (pendingSetRef) {\n pendingSetRef.flags |= 8;\n pendingSetRefMap.delete(rawRef);\n }\n}\n\nlet hasLoggedMismatchError = false;\nconst logMismatchError = () => {\n if (hasLoggedMismatchError) {\n return;\n }\n console.error(\"Hydration completed but contains mismatches.\");\n hasLoggedMismatchError = true;\n};\nconst isSVGContainer = (container) => container.namespaceURI.includes(\"svg\") && container.tagName !== \"foreignObject\";\nconst isMathMLContainer = (container) => container.namespaceURI.includes(\"MathML\");\nconst getContainerType = (container) => {\n if (container.nodeType !== 1) return void 0;\n if (isSVGContainer(container)) return \"svg\";\n if (isMathMLContainer(container)) return \"mathml\";\n return void 0;\n};\nconst isComment = (node) => node.nodeType === 8;\nfunction createHydrationFunctions(rendererInternals) {\n const {\n mt: mountComponent,\n p: patch,\n o: {\n patchProp,\n createText,\n nextSibling,\n parentNode,\n remove,\n insert,\n createComment\n }\n } = rendererInternals;\n const hydrate = (vnode, container) => {\n if (!container.hasChildNodes()) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Attempting to hydrate existing markup but container is empty. Performing full mount instead.`\n );\n patch(null, vnode, container);\n flushPostFlushCbs();\n container._vnode = vnode;\n return;\n }\n hydrateNode(container.firstChild, vnode, null, null, null);\n flushPostFlushCbs();\n container._vnode = vnode;\n };\n const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const isFragmentStart = isComment(node) && node.data === \"[\";\n const onMismatch = () => handleMismatch(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n isFragmentStart\n );\n const { type, ref, shapeFlag, patchFlag } = vnode;\n let domType = node.nodeType;\n vnode.el = node;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n def(node, \"__vnode\", vnode, true);\n def(node, \"__vueParentComponent\", parentComponent, true);\n }\n if (patchFlag === -2) {\n optimized = false;\n vnode.dynamicChildren = null;\n }\n let nextNode = null;\n switch (type) {\n case Text:\n if (domType !== 3) {\n if (vnode.children === \"\") {\n insert(vnode.el = createText(\"\"), parentNode(node), node);\n nextNode = node;\n } else {\n nextNode = onMismatch();\n }\n } else {\n if (node.data !== vnode.children) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text mismatch in`,\n node.parentNode,\n `\n - rendered on server: ${JSON.stringify(\n node.data\n )}\n - expected on client: ${JSON.stringify(vnode.children)}`\n );\n logMismatchError();\n node.data = vnode.children;\n }\n nextNode = nextSibling(node);\n }\n break;\n case Comment:\n if (isTemplateNode(node)) {\n nextNode = nextSibling(node);\n replaceNode(\n vnode.el = node.content.firstChild,\n node,\n parentComponent\n );\n } else if (domType !== 8 || isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = nextSibling(node);\n }\n break;\n case Static:\n if (isFragmentStart) {\n node = nextSibling(node);\n domType = node.nodeType;\n }\n if (domType === 1 || domType === 3) {\n nextNode = node;\n const needToAdoptContent = !vnode.children.length;\n for (let i = 0; i < vnode.staticCount; i++) {\n if (needToAdoptContent)\n vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;\n if (i === vnode.staticCount - 1) {\n vnode.anchor = nextNode;\n }\n nextNode = nextSibling(nextNode);\n }\n return isFragmentStart ? nextSibling(nextNode) : nextNode;\n } else {\n onMismatch();\n }\n break;\n case Fragment:\n if (!isFragmentStart) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateFragment(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n break;\n default:\n if (shapeFlag & 1) {\n if ((domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) && !isTemplateNode(node)) {\n nextNode = onMismatch();\n } else {\n nextNode = hydrateElement(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n }\n } else if (shapeFlag & 6) {\n vnode.slotScopeIds = slotScopeIds;\n const container = parentNode(node);\n if (isFragmentStart) {\n nextNode = locateClosingAnchor(node);\n } else if (isComment(node) && node.data === \"teleport start\") {\n nextNode = locateClosingAnchor(node, node.data, \"teleport end\");\n } else {\n nextNode = nextSibling(node);\n }\n mountComponent(\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n optimized\n );\n if (isAsyncWrapper(vnode) && !vnode.type.__asyncResolved) {\n let subTree;\n if (isFragmentStart) {\n subTree = createVNode(Fragment);\n subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;\n } else {\n subTree = node.nodeType === 3 ? createTextVNode(\"\") : createVNode(\"div\");\n }\n subTree.el = node;\n vnode.component.subTree = subTree;\n }\n } else if (shapeFlag & 64) {\n if (domType !== 8) {\n nextNode = onMismatch();\n } else {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateChildren\n );\n }\n } else if (shapeFlag & 128) {\n nextNode = vnode.type.hydrate(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n getContainerType(parentNode(node)),\n slotScopeIds,\n optimized,\n rendererInternals,\n hydrateNode\n );\n } else if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) {\n warn$1(\"Invalid HostVNode type:\", type, `(${typeof type})`);\n }\n }\n if (ref != null) {\n setRef(ref, null, parentSuspense, vnode);\n }\n return nextNode;\n };\n const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!vnode.dynamicChildren;\n const { type, props, patchFlag, shapeFlag, dirs, transition } = vnode;\n const forcePatch = type === \"input\" || type === \"option\";\n if (!!(process.env.NODE_ENV !== \"production\") || forcePatch || patchFlag !== -1) {\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"created\");\n }\n let needCallTransitionHooks = false;\n if (isTemplateNode(el)) {\n needCallTransitionHooks = needTransition(\n null,\n // no need check parentSuspense in hydration\n transition\n ) && parentComponent && parentComponent.vnode.props && parentComponent.vnode.props.appear;\n const content = el.content.firstChild;\n if (needCallTransitionHooks) {\n const cls = content.getAttribute(\"class\");\n if (cls) content.$cls = cls;\n transition.beforeEnter(content);\n }\n replaceNode(content, el, parentComponent);\n vnode.el = el = content;\n }\n if (shapeFlag & 16 && // skip if element has innerHTML / textContent\n !(props && (props.innerHTML || props.textContent))) {\n let next = hydrateChildren(\n el.firstChild,\n vnode,\n el,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n let hasWarned = false;\n while (next) {\n if (!isMismatchAllowed(el, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n el,\n `\nServer rendered element contains more child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n const cur = next;\n next = next.nextSibling;\n remove(cur);\n }\n } else if (shapeFlag & 8) {\n let clientText = vnode.children;\n if (clientText[0] === \"\\n\" && (el.tagName === \"PRE\" || el.tagName === \"TEXTAREA\")) {\n clientText = clientText.slice(1);\n }\n const { textContent } = el;\n if (textContent !== clientText && // innerHTML normalize \\r\\n or \\r into a single \\n in the DOM\n textContent !== clientText.replace(/\\r\\n|\\r/g, \"\\n\")) {\n if (!isMismatchAllowed(el, 0 /* TEXT */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration text content mismatch on`,\n el,\n `\n - rendered on server: ${textContent}\n - expected on client: ${clientText}`\n );\n logMismatchError();\n }\n el.textContent = vnode.children;\n }\n }\n if (props) {\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ || forcePatch || !optimized || patchFlag & (16 | 32)) {\n const isCustomElement = el.tagName.includes(\"-\");\n for (const key in props) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && // #11189 skip if this node has directives that have created hooks\n // as it could have mutated the DOM in any possible way\n !(dirs && dirs.some((d) => d.dir.created)) && propHasMismatch(el, key, props[key], vnode, parentComponent)) {\n logMismatchError();\n }\n if (forcePatch && (key.endsWith(\"value\") || key === \"indeterminate\") || isOn(key) && !isReservedProp(key) || // force hydrate v-bind with .prop modifiers\n key[0] === \".\" || isCustomElement) {\n patchProp(el, key, null, props[key], void 0, parentComponent);\n }\n }\n } else if (props.onClick) {\n patchProp(\n el,\n \"onClick\",\n null,\n props.onClick,\n void 0,\n parentComponent\n );\n } else if (patchFlag & 4 && isReactive(props.style)) {\n for (const key in props.style) props.style[key];\n }\n }\n let vnodeHooks;\n if (vnodeHooks = props && props.onVnodeBeforeMount) {\n invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n }\n if (dirs) {\n invokeDirectiveHook(vnode, null, parentComponent, \"beforeMount\");\n }\n if ((vnodeHooks = props && props.onVnodeMounted) || dirs || needCallTransitionHooks) {\n queueEffectWithSuspense(() => {\n vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);\n needCallTransitionHooks && transition.enter(el);\n dirs && invokeDirectiveHook(vnode, null, parentComponent, \"mounted\");\n }, parentSuspense);\n }\n }\n return el.nextSibling;\n };\n const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n optimized = optimized || !!parentVNode.dynamicChildren;\n const children = parentVNode.children;\n const l = children.length;\n let hasWarned = false;\n for (let i = 0; i < l; i++) {\n const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);\n const isText = vnode.type === Text;\n if (node) {\n if (isText && !optimized) {\n if (i + 1 < l && normalizeVNode(children[i + 1]).type === Text) {\n insert(\n createText(\n node.data.slice(vnode.children.length)\n ),\n container,\n nextSibling(node)\n );\n node.data = vnode.children;\n }\n }\n node = hydrateNode(\n node,\n vnode,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n } else if (isText && !vnode.children) {\n insert(vnode.el = createText(\"\"), container);\n } else {\n if (!isMismatchAllowed(container, 1 /* CHILDREN */)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && !hasWarned) {\n warn$1(\n `Hydration children mismatch on`,\n container,\n `\nServer rendered element contains fewer child nodes than client vdom.`\n );\n hasWarned = true;\n }\n logMismatchError();\n }\n patch(\n null,\n vnode,\n container,\n null,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n }\n }\n return node;\n };\n const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {\n const { slotScopeIds: fragmentSlotScopeIds } = vnode;\n if (fragmentSlotScopeIds) {\n slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;\n }\n const container = parentNode(node);\n const next = hydrateChildren(\n nextSibling(node),\n vnode,\n container,\n parentComponent,\n parentSuspense,\n slotScopeIds,\n optimized\n );\n if (next && isComment(next) && next.data === \"]\") {\n return nextSibling(vnode.anchor = next);\n } else {\n logMismatchError();\n insert(vnode.anchor = createComment(`]`), container, next);\n return next;\n }\n };\n const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {\n if (!isMismatchAllowed(node.parentElement, 1 /* CHILDREN */)) {\n (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_HYDRATION_MISMATCH_DETAILS__) && warn$1(\n `Hydration node mismatch:\n- rendered on server:`,\n node,\n node.nodeType === 3 ? `(text)` : isComment(node) && node.data === \"[\" ? `(start of fragment)` : ``,\n `\n- expected on client:`,\n vnode.type\n );\n logMismatchError();\n }\n vnode.el = null;\n if (isFragment) {\n const end = locateClosingAnchor(node);\n while (true) {\n const next2 = nextSibling(node);\n if (next2 && next2 !== end) {\n remove(next2);\n } else {\n break;\n }\n }\n }\n const next = nextSibling(node);\n const container = parentNode(node);\n remove(node);\n patch(\n null,\n vnode,\n container,\n next,\n parentComponent,\n parentSuspense,\n getContainerType(container),\n slotScopeIds\n );\n if (parentComponent) {\n parentComponent.vnode.el = vnode.el;\n updateHOCHostEl(parentComponent, vnode.el);\n }\n return next;\n };\n const locateClosingAnchor = (node, open = \"[\", close = \"]\") => {\n let match = 0;\n while (node) {\n node = nextSibling(node);\n if (node && isComment(node)) {\n if (node.data === open) match++;\n if (node.data === close) {\n if (match === 0) {\n return nextSibling(node);\n } else {\n match--;\n }\n }\n }\n }\n return node;\n };\n const replaceNode = (newNode, oldNode, parentComponent) => {\n const parentNode2 = oldNode.parentNode;\n if (parentNode2) {\n parentNode2.replaceChild(newNode, oldNode);\n }\n let parent = parentComponent;\n while (parent) {\n if (parent.vnode.el === oldNode) {\n parent.vnode.el = parent.subTree.el = newNode;\n }\n parent = parent.parent;\n }\n };\n const isTemplateNode = (node) => {\n return node.nodeType === 1 && node.tagName === \"TEMPLATE\";\n };\n return [hydrate, hydrateNode];\n}\nfunction propHasMismatch(el, key, clientValue, vnode, instance) {\n let mismatchType;\n let mismatchKey;\n let actual;\n let expected;\n if (key === \"class\") {\n if (el.$cls) {\n actual = el.$cls;\n delete el.$cls;\n } else {\n actual = el.getAttribute(\"class\");\n }\n expected = normalizeClass(clientValue);\n if (!isSetEqual(toClassSet(actual || \"\"), toClassSet(expected))) {\n mismatchType = 2 /* CLASS */;\n mismatchKey = `class`;\n }\n } else if (key === \"style\") {\n actual = el.getAttribute(\"style\") || \"\";\n expected = isString(clientValue) ? clientValue : stringifyStyle(normalizeStyle(clientValue));\n const actualMap = toStyleMap(actual);\n const expectedMap = toStyleMap(expected);\n if (vnode.dirs) {\n for (const { dir, value } of vnode.dirs) {\n if (dir.name === \"show\" && !value) {\n expectedMap.set(\"display\", \"none\");\n }\n }\n }\n if (instance) {\n resolveCssVars(instance, vnode, expectedMap);\n }\n if (!isMapEqual(actualMap, expectedMap)) {\n mismatchType = 3 /* STYLE */;\n mismatchKey = \"style\";\n }\n } else if (el instanceof SVGElement && isKnownSvgAttr(key) || el instanceof HTMLElement && (isBooleanAttr(key) || isKnownHtmlAttr(key))) {\n if (isBooleanAttr(key)) {\n actual = el.hasAttribute(key);\n expected = includeBooleanAttr(clientValue);\n } else if (clientValue == null) {\n actual = el.hasAttribute(key);\n expected = false;\n } else {\n if (el.hasAttribute(key)) {\n actual = el.getAttribute(key);\n } else if (key === \"value\" && el.tagName === \"TEXTAREA\") {\n actual = el.value;\n } else {\n actual = false;\n }\n expected = isRenderableAttrValue(clientValue) ? String(clientValue) : false;\n }\n if (actual !== expected) {\n mismatchType = 4 /* ATTRIBUTE */;\n mismatchKey = key;\n }\n }\n if (mismatchType != null && !isMismatchAllowed(el, mismatchType)) {\n const format = (v) => v === false ? `(not rendered)` : `${mismatchKey}=\"${v}\"`;\n const preSegment = `Hydration ${MismatchTypeString[mismatchType]} mismatch on`;\n const postSegment = `\n - rendered on server: ${format(actual)}\n - expected on client: ${format(expected)}\n Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead.\n You should fix the source of the mismatch.`;\n {\n warn$1(preSegment, el, postSegment);\n }\n return true;\n }\n return false;\n}\nfunction toClassSet(str) {\n return new Set(str.trim().split(/\\s+/));\n}\nfunction isSetEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const s of a) {\n if (!b.has(s)) {\n return false;\n }\n }\n return true;\n}\nfunction toStyleMap(str) {\n const styleMap = /* @__PURE__ */ new Map();\n for (const item of str.split(\";\")) {\n let [key, value] = item.split(\":\");\n key = key.trim();\n value = value && value.trim();\n if (key && value) {\n styleMap.set(key, value);\n }\n }\n return styleMap;\n}\nfunction isMapEqual(a, b) {\n if (a.size !== b.size) {\n return false;\n }\n for (const [key, value] of a) {\n if (value !== b.get(key)) {\n return false;\n }\n }\n return true;\n}\nfunction resolveCssVars(instance, vnode, expectedMap) {\n const root = instance.subTree;\n if (instance.getCssVars && (vnode === root || root && root.type === Fragment && root.children.includes(vnode))) {\n const cssVars = instance.getCssVars();\n for (const key in cssVars) {\n const value = normalizeCssVarValue(cssVars[key]);\n expectedMap.set(`--${getEscapedCssVarName(key, false)}`, value);\n }\n }\n if (vnode === root && instance.parent) {\n resolveCssVars(instance.parent, instance.vnode, expectedMap);\n }\n}\nconst allowMismatchAttr = \"data-allow-mismatch\";\nconst MismatchTypeString = {\n [0 /* TEXT */]: \"text\",\n [1 /* CHILDREN */]: \"children\",\n [2 /* CLASS */]: \"class\",\n [3 /* STYLE */]: \"style\",\n [4 /* ATTRIBUTE */]: \"attribute\"\n};\nfunction isMismatchAllowed(el, allowedType) {\n if (allowedType === 0 /* TEXT */ || allowedType === 1 /* CHILDREN */) {\n while (el && !el.hasAttribute(allowMismatchAttr)) {\n el = el.parentElement;\n }\n }\n const allowedAttr = el && el.getAttribute(allowMismatchAttr);\n if (allowedAttr == null) {\n return false;\n } else if (allowedAttr === \"\") {\n return true;\n } else {\n const list = allowedAttr.split(\",\");\n if (allowedType === 0 /* TEXT */ && list.includes(\"children\")) {\n return true;\n }\n return list.includes(MismatchTypeString[allowedType]);\n }\n}\n\nconst requestIdleCallback = getGlobalThis().requestIdleCallback || ((cb) => setTimeout(cb, 1));\nconst cancelIdleCallback = getGlobalThis().cancelIdleCallback || ((id) => clearTimeout(id));\nconst hydrateOnIdle = (timeout = 1e4) => (hydrate) => {\n const id = requestIdleCallback(hydrate, { timeout });\n return () => cancelIdleCallback(id);\n};\nfunction elementIsVisibleInViewport(el) {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = window;\n return (top > 0 && top < innerHeight || bottom > 0 && bottom < innerHeight) && (left > 0 && left < innerWidth || right > 0 && right < innerWidth);\n}\nconst hydrateOnVisible = (opts) => (hydrate, forEach) => {\n const ob = new IntersectionObserver((entries) => {\n for (const e of entries) {\n if (!e.isIntersecting) continue;\n ob.disconnect();\n hydrate();\n break;\n }\n }, opts);\n forEach((el) => {\n if (!(el instanceof Element)) return;\n if (elementIsVisibleInViewport(el)) {\n hydrate();\n ob.disconnect();\n return false;\n }\n ob.observe(el);\n });\n return () => ob.disconnect();\n};\nconst hydrateOnMediaQuery = (query) => (hydrate) => {\n if (query) {\n const mql = matchMedia(query);\n if (mql.matches) {\n hydrate();\n } else {\n mql.addEventListener(\"change\", hydrate, { once: true });\n return () => mql.removeEventListener(\"change\", hydrate);\n }\n }\n};\nconst hydrateOnInteraction = (interactions = []) => (hydrate, forEach) => {\n if (isString(interactions)) interactions = [interactions];\n let hasHydrated = false;\n const doHydrate = (e) => {\n if (!hasHydrated) {\n hasHydrated = true;\n teardown();\n hydrate();\n e.target.dispatchEvent(new e.constructor(e.type, e));\n }\n };\n const teardown = () => {\n forEach((el) => {\n for (const i of interactions) {\n el.removeEventListener(i, doHydrate);\n }\n });\n };\n forEach((el) => {\n for (const i of interactions) {\n el.addEventListener(i, doHydrate, { once: true });\n }\n });\n return teardown;\n};\nfunction forEachElement(node, cb) {\n if (isComment(node) && node.data === \"[\") {\n let depth = 1;\n let next = node.nextSibling;\n while (next) {\n if (next.nodeType === 1) {\n const result = cb(next);\n if (result === false) {\n break;\n }\n } else if (isComment(next)) {\n if (next.data === \"]\") {\n if (--depth === 0) break;\n } else if (next.data === \"[\") {\n depth++;\n }\n }\n next = next.nextSibling;\n }\n } else {\n cb(node);\n }\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n hydrate: hydrateStrategy,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n __asyncHydrate(el, instance, hydrate) {\n let patched = false;\n (instance.bu || (instance.bu = [])).push(() => patched = true);\n const performHydrate = () => {\n if (patched) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `Skipping lazy hydration for component '${getComponentName(resolvedComp) || resolvedComp.__file}': it was updated before lazy hydration performed.`\n );\n }\n return;\n }\n hydrate();\n };\n const doHydrate = hydrateStrategy ? () => {\n const teardown = hydrateStrategy(\n performHydrate,\n (cb) => forEachElement(el, cb)\n );\n if (teardown) {\n (instance.bum || (instance.bum = [])).push(teardown);\n }\n } : performHydrate;\n if (resolvedComp) {\n doHydrate();\n } else {\n load().then(() => !instance.isUnmounted && doHydrate());\n }\n },\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n markAsyncBoundary(instance);\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.update();\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createInnerComp(\n loadingComponent,\n instance\n );\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n invalidateMount(instance2.m);\n invalidateMount(instance2.a);\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n instance2.__keepAliveStorageContainer = storageContainer;\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && !filter(name)) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (cached && (!current || !isSameVNodeType(cached, current))) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n if (isSuspense(instance.subTree.type)) {\n queuePostRenderEffect(() => {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }, instance.subTree.suspense);\n } else {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return current = null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n if (vnode.type === Comment) {\n current = null;\n return vnode;\n }\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n vnode.shapeFlag &= -257;\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n pattern.lastIndex = 0;\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= -257;\n vnode.shapeFlag &= -513;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => {\n if (!isInSSRComponentSetup || lifecycle === \"sp\") {\n injectHook(lifecycle, (...args) => hook(...args), target);\n }\n};\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\n \"bu\"\n);\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\n \"bum\"\n);\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\n \"sp\"\n);\nconst onRenderTriggered = createHook(\"rtg\");\nconst onRenderTracked = createHook(\"rtc\");\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n const sourceIsArray = isArray(source);\n if (sourceIsArray || isString(source)) {\n const sourceIsReactiveArray = sourceIsArray && isReactive(source);\n let needsWrap = false;\n let isReadonlySource = false;\n if (sourceIsReactiveArray) {\n needsWrap = !isShallow(source);\n isReadonlySource = isReadonly(source);\n source = shallowReadArray(source);\n }\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(\n needsWrap ? isReadonlySource ? toReadonly(toReactive(source[i])) : toReactive(source[i]) : source[i],\n i,\n void 0,\n cached && cached[i]\n );\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res) res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.ce || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.ce) {\n const hasProps = Object.keys(props).length > 0;\n if (name !== \"default\") props.name = name;\n return openBlock(), createBlock(\n Fragment,\n null,\n [createVNode(\"slot\", props, fallback && fallback())],\n hasProps ? -2 : 64\n );\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const slotKey = props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key;\n const rendered = createBlock(\n Fragment,\n {\n key: (slotKey && !isSymbol(slotKey) ? slotKey : `_${name}`) + // #7256 force differentiate fallback content from actual content\n (!validSlotContent && fallback ? \"_fb\" : \"\")\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child)) return true;\n if (child.type === Comment) return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i) return null;\n if (isStatefulComponent(i)) return getComponentPublicInstance(i);\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $host: (i) => i.ce,\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n if (key === \"__v_skip\") {\n return true;\n }\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (__VUE_OPTIONS_API__ && data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance.attrs, \"get\", \"\");\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n\n\n\n\n","\n\n\n\n\n","/*!\n * pinia v3.0.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { hasInjectionContext, inject, toRaw, watch, unref, markRaw, effectScope, ref, isRef, isReactive, getCurrentScope, onScopeDispose, getCurrentInstance, reactive, toRef, nextTick, computed, toRefs } from 'vue';\nimport { setupDevtoolsPlugin } from '@vue/devtools-api';\n\nconst IS_CLIENT = typeof window !== 'undefined';\n\n/**\n * setActivePinia must be called to handle SSR at the top of functions like\n * `fetch`, `setup`, `serverPrefetch` and others\n */\nlet activePinia;\n/**\n * Sets or unsets the active pinia. Used in SSR and internally when calling\n * actions and getters\n *\n * @param pinia - Pinia instance\n */\n// @ts-expect-error: cannot constrain the type of the return\nconst setActivePinia = (pinia) => (activePinia = pinia);\n/**\n * Get the currently active pinia if there is any.\n */\nconst getActivePinia = (process.env.NODE_ENV !== 'production')\n ? () => {\n const pinia = hasInjectionContext() && inject(piniaSymbol);\n if (!pinia && !IS_CLIENT) {\n console.error(`[🍍]: Pinia instance not found in context. This falls back to the global activePinia which exposes you to cross-request pollution on the server. Most of the time, it means you are calling \"useStore()\" in the wrong place.\\n` +\n `Read https://vuejs.org/guide/reusability/composables.html to learn more`);\n }\n return pinia || activePinia;\n }\n : () => (hasInjectionContext() && inject(piniaSymbol)) || activePinia;\nconst piniaSymbol = ((process.env.NODE_ENV !== 'production') ? Symbol('pinia') : /* istanbul ignore next */ Symbol());\n\nfunction isPlainObject(\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\no) {\n return (o &&\n typeof o === 'object' &&\n Object.prototype.toString.call(o) === '[object Object]' &&\n typeof o.toJSON !== 'function');\n}\n// type DeepReadonly = { readonly [P in keyof T]: DeepReadonly }\n// TODO: can we change these to numbers?\n/**\n * Possible types for SubscriptionCallback\n */\nvar MutationType;\n(function (MutationType) {\n /**\n * Direct mutation of the state:\n *\n * - `store.name = 'new name'`\n * - `store.$state.name = 'new name'`\n * - `store.list.push('new item')`\n */\n MutationType[\"direct\"] = \"direct\";\n /**\n * Mutated the state with `$patch` and an object\n *\n * - `store.$patch({ name: 'newName' })`\n */\n MutationType[\"patchObject\"] = \"patch object\";\n /**\n * Mutated the state with `$patch` and a function\n *\n * - `store.$patch(state => state.name = 'newName')`\n */\n MutationType[\"patchFunction\"] = \"patch function\";\n // maybe reset? for $state = {} and $reset\n})(MutationType || (MutationType = {}));\n\n/*\n * FileSaver.js A saveAs() FileSaver implementation.\n *\n * Originally by Eli Grey, adapted as an ESM module by Eduardo San Martin\n * Morote.\n *\n * License : MIT\n */\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nconst _global = /*#__PURE__*/ (() => typeof window === 'object' && window.window === window\n ? window\n : typeof self === 'object' && self.self === self\n ? self\n : typeof global === 'object' && global.global === global\n ? global\n : typeof globalThis === 'object'\n ? globalThis\n : { HTMLElement: null })();\nfunction bom(blob, { autoBom = false } = {}) {\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (autoBom &&\n /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xfeff), blob], { type: blob.type });\n }\n return blob;\n}\nfunction download(url, name, opts) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name, opts);\n };\n xhr.onerror = function () {\n console.error('could not download file');\n };\n xhr.send();\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\n// `a.click()` doesn't work for all browsers (#465)\nfunction click(node) {\n try {\n node.dispatchEvent(new MouseEvent('click'));\n }\n catch (e) {\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window,\n detail: 0,\n screenX: 80,\n screenY: 20,\n clientX: 80,\n clientY: 20,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n button: 0,\n relatedTarget: null,\n });\n node.dispatchEvent(evt);\n }\n}\nconst _navigator = typeof navigator === 'object' ? navigator : { userAgent: '' };\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nconst isMacOSWebView = /*#__PURE__*/ (() => /Macintosh/.test(_navigator.userAgent) &&\n /AppleWebKit/.test(_navigator.userAgent) &&\n !/Safari/.test(_navigator.userAgent))();\nconst saveAs = !IS_CLIENT\n ? () => { } // noop\n : // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program\n typeof HTMLAnchorElement !== 'undefined' &&\n 'download' in HTMLAnchorElement.prototype &&\n !isMacOSWebView\n ? downloadSaveAs\n : // Use msSaveOrOpenBlob as a second approach\n 'msSaveOrOpenBlob' in _navigator\n ? msSaveAs\n : // Fallback to using FileReader and a popup\n fileSaverSaveAs;\nfunction downloadSaveAs(blob, name = 'download', opts) {\n const a = document.createElement('a');\n a.download = name;\n a.rel = 'noopener'; // tabnabbing\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob;\n if (a.origin !== location.origin) {\n if (corsEnabled(a.href)) {\n download(blob, name, opts);\n }\n else {\n a.target = '_blank';\n click(a);\n }\n }\n else {\n click(a);\n }\n }\n else {\n // Support blobs\n a.href = URL.createObjectURL(blob);\n setTimeout(function () {\n URL.revokeObjectURL(a.href);\n }, 4e4); // 40s\n setTimeout(function () {\n click(a);\n }, 0);\n }\n}\nfunction msSaveAs(blob, name = 'download', opts) {\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts);\n }\n else {\n const a = document.createElement('a');\n a.href = blob;\n a.target = '_blank';\n setTimeout(function () {\n click(a);\n });\n }\n }\n else {\n // @ts-ignore: works on windows\n navigator.msSaveOrOpenBlob(bom(blob, opts), name);\n }\n}\nfunction fileSaverSaveAs(blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank');\n if (popup) {\n popup.document.title = popup.document.body.innerText = 'downloading...';\n }\n if (typeof blob === 'string')\n return download(blob, name, opts);\n const force = blob.type === 'application/octet-stream';\n const isSafari = /constructor/i.test(String(_global.HTMLElement)) || 'safari' in _global;\n const isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent);\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) &&\n typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n const reader = new FileReader();\n reader.onloadend = function () {\n let url = reader.result;\n if (typeof url !== 'string') {\n popup = null;\n throw new Error('Wrong reader.result type');\n }\n url = isChromeIOS\n ? url\n : url.replace(/^data:[^;]*;/, 'data:attachment/file;');\n if (popup) {\n popup.location.href = url;\n }\n else {\n location.assign(url);\n }\n popup = null; // reverse-tabnabbing #460\n };\n reader.readAsDataURL(blob);\n }\n else {\n const url = URL.createObjectURL(blob);\n if (popup)\n popup.location.assign(url);\n else\n location.href = url;\n popup = null; // reverse-tabnabbing #460\n setTimeout(function () {\n URL.revokeObjectURL(url);\n }, 4e4); // 40s\n }\n}\n\n/**\n * Shows a toast or console.log\n *\n * @param message - message to log\n * @param type - different color of the tooltip\n */\nfunction toastMessage(message, type) {\n const piniaMessage = '🍍 ' + message;\n if (typeof __VUE_DEVTOOLS_TOAST__ === 'function') {\n // No longer available :(\n __VUE_DEVTOOLS_TOAST__(piniaMessage, type);\n }\n else if (type === 'error') {\n console.error(piniaMessage);\n }\n else if (type === 'warn') {\n console.warn(piniaMessage);\n }\n else {\n console.log(piniaMessage);\n }\n}\nfunction isPinia(o) {\n return '_a' in o && 'install' in o;\n}\n\n/**\n * This file contain devtools actions, they are not Pinia actions.\n */\n// ---\nfunction checkClipboardAccess() {\n if (!('clipboard' in navigator)) {\n toastMessage(`Your browser doesn't support the Clipboard API`, 'error');\n return true;\n }\n}\nfunction checkNotFocusedError(error) {\n if (error instanceof Error &&\n error.message.toLowerCase().includes('document is not focused')) {\n toastMessage('You need to activate the \"Emulate a focused page\" setting in the \"Rendering\" panel of devtools.', 'warn');\n return true;\n }\n return false;\n}\nasync function actionGlobalCopyState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n await navigator.clipboard.writeText(JSON.stringify(pinia.state.value));\n toastMessage('Global state copied to clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to serialize the state. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalPasteState(pinia) {\n if (checkClipboardAccess())\n return;\n try {\n loadStoresState(pinia, JSON.parse(await navigator.clipboard.readText()));\n toastMessage('Global state pasted from clipboard.');\n }\n catch (error) {\n if (checkNotFocusedError(error))\n return;\n toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nasync function actionGlobalSaveState(pinia) {\n try {\n saveAs(new Blob([JSON.stringify(pinia.state.value)], {\n type: 'text/plain;charset=utf-8',\n }), 'pinia-state.json');\n }\n catch (error) {\n toastMessage(`Failed to export the state as JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nlet fileInput;\nfunction getFileOpener() {\n if (!fileInput) {\n fileInput = document.createElement('input');\n fileInput.type = 'file';\n fileInput.accept = '.json';\n }\n function openFile() {\n return new Promise((resolve, reject) => {\n fileInput.onchange = async () => {\n const files = fileInput.files;\n if (!files)\n return resolve(null);\n const file = files.item(0);\n if (!file)\n return resolve(null);\n return resolve({ text: await file.text(), file });\n };\n // @ts-ignore: TODO: changed from 4.3 to 4.4\n fileInput.oncancel = () => resolve(null);\n fileInput.onerror = reject;\n fileInput.click();\n });\n }\n return openFile;\n}\nasync function actionGlobalOpenStateFile(pinia) {\n try {\n const open = getFileOpener();\n const result = await open();\n if (!result)\n return;\n const { text, file } = result;\n loadStoresState(pinia, JSON.parse(text));\n toastMessage(`Global state imported from \"${file.name}\".`);\n }\n catch (error) {\n toastMessage(`Failed to import the state from JSON. Check the console for more details.`, 'error');\n console.error(error);\n }\n}\nfunction loadStoresState(pinia, state) {\n for (const key in state) {\n const storeState = pinia.state.value[key];\n // store is already instantiated, patch it\n if (storeState) {\n Object.assign(storeState, state[key]);\n }\n else {\n // store is not instantiated, set the initial state\n pinia.state.value[key] = state[key];\n }\n }\n}\n\nfunction formatDisplay(display) {\n return {\n _custom: {\n display,\n },\n };\n}\nconst PINIA_ROOT_LABEL = '🍍 Pinia (root)';\nconst PINIA_ROOT_ID = '_root';\nfunction formatStoreForInspectorTree(store) {\n return isPinia(store)\n ? {\n id: PINIA_ROOT_ID,\n label: PINIA_ROOT_LABEL,\n }\n : {\n id: store.$id,\n label: store.$id,\n };\n}\nfunction formatStoreForInspectorState(store) {\n if (isPinia(store)) {\n const storeNames = Array.from(store._s.keys());\n const storeMap = store._s;\n const state = {\n state: storeNames.map((storeId) => ({\n editable: true,\n key: storeId,\n value: store.state.value[storeId],\n })),\n getters: storeNames\n .filter((id) => storeMap.get(id)._getters)\n .map((id) => {\n const store = storeMap.get(id);\n return {\n editable: false,\n key: id,\n value: store._getters.reduce((getters, key) => {\n getters[key] = store[key];\n return getters;\n }, {}),\n };\n }),\n };\n return state;\n }\n const state = {\n state: Object.keys(store.$state).map((key) => ({\n editable: true,\n key,\n value: store.$state[key],\n })),\n };\n // avoid adding empty getters\n if (store._getters && store._getters.length) {\n state.getters = store._getters.map((getterName) => ({\n editable: false,\n key: getterName,\n value: store[getterName],\n }));\n }\n if (store._customProperties.size) {\n state.customProperties = Array.from(store._customProperties).map((key) => ({\n editable: true,\n key,\n value: store[key],\n }));\n }\n return state;\n}\nfunction formatEventData(events) {\n if (!events)\n return {};\n if (Array.isArray(events)) {\n // TODO: handle add and delete for arrays and objects\n return events.reduce((data, event) => {\n data.keys.push(event.key);\n data.operations.push(event.type);\n data.oldValue[event.key] = event.oldValue;\n data.newValue[event.key] = event.newValue;\n return data;\n }, {\n oldValue: {},\n keys: [],\n operations: [],\n newValue: {},\n });\n }\n else {\n return {\n operation: formatDisplay(events.type),\n key: formatDisplay(events.key),\n oldValue: events.oldValue,\n newValue: events.newValue,\n };\n }\n}\nfunction formatMutationType(type) {\n switch (type) {\n case MutationType.direct:\n return 'mutation';\n case MutationType.patchFunction:\n return '$patch';\n case MutationType.patchObject:\n return '$patch';\n default:\n return 'unknown';\n }\n}\n\n// timeline can be paused when directly changing the state\nlet isTimelineActive = true;\nconst componentStateTypes = [];\nconst MUTATIONS_LAYER_ID = 'pinia:mutations';\nconst INSPECTOR_ID = 'pinia';\nconst { assign: assign$1 } = Object;\n/**\n * Gets the displayed name of a store in devtools\n *\n * @param id - id of the store\n * @returns a formatted string\n */\nconst getStoreType = (id) => '🍍 ' + id;\n/**\n * Add the pinia plugin without any store. Allows displaying a Pinia plugin tab\n * as soon as it is added to the application.\n *\n * @param app - Vue application\n * @param pinia - pinia instance\n */\nfunction registerPiniaDevtools(app, pinia) {\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n }, (api) => {\n if (typeof api.now !== 'function') {\n toastMessage('You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.');\n }\n api.addTimelineLayer({\n id: MUTATIONS_LAYER_ID,\n label: `Pinia 🍍`,\n color: 0xe5df88,\n });\n api.addInspector({\n id: INSPECTOR_ID,\n label: 'Pinia 🍍',\n icon: 'storage',\n treeFilterPlaceholder: 'Search stores',\n actions: [\n {\n icon: 'content_copy',\n action: () => {\n actionGlobalCopyState(pinia);\n },\n tooltip: 'Serialize and copy the state',\n },\n {\n icon: 'content_paste',\n action: async () => {\n await actionGlobalPasteState(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Replace the state with the content of your clipboard',\n },\n {\n icon: 'save',\n action: () => {\n actionGlobalSaveState(pinia);\n },\n tooltip: 'Save the state as a JSON file',\n },\n {\n icon: 'folder_open',\n action: async () => {\n await actionGlobalOpenStateFile(pinia);\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n },\n tooltip: 'Import the state from a JSON file',\n },\n ],\n nodeActions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state (with \"$reset\")',\n action: (nodeId) => {\n const store = pinia._s.get(nodeId);\n if (!store) {\n toastMessage(`Cannot reset \"${nodeId}\" store because it wasn't found.`, 'warn');\n }\n else if (typeof store.$reset !== 'function') {\n toastMessage(`Cannot reset \"${nodeId}\" store because it doesn't have a \"$reset\" method implemented.`, 'warn');\n }\n else {\n store.$reset();\n toastMessage(`Store \"${nodeId}\" reset.`);\n }\n },\n },\n ],\n });\n api.on.inspectComponent((payload) => {\n const proxy = (payload.componentInstance &&\n payload.componentInstance.proxy);\n if (proxy && proxy._pStores) {\n const piniaStores = payload.componentInstance.proxy._pStores;\n Object.values(piniaStores).forEach((store) => {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'state',\n editable: true,\n value: store._isOptionsAPI\n ? {\n _custom: {\n value: toRaw(store.$state),\n actions: [\n {\n icon: 'restore',\n tooltip: 'Reset the state of this store',\n action: () => store.$reset(),\n },\n ],\n },\n }\n : // NOTE: workaround to unwrap transferred refs\n Object.keys(store.$state).reduce((state, key) => {\n state[key] = store.$state[key];\n return state;\n }, {}),\n });\n if (store._getters && store._getters.length) {\n payload.instanceData.state.push({\n type: getStoreType(store.$id),\n key: 'getters',\n editable: false,\n value: store._getters.reduce((getters, key) => {\n try {\n getters[key] = store[key];\n }\n catch (error) {\n // @ts-expect-error: we just want to show it in devtools\n getters[key] = error;\n }\n return getters;\n }, {}),\n });\n }\n });\n }\n });\n api.on.getInspectorTree((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n let stores = [pinia];\n stores = stores.concat(Array.from(pinia._s.values()));\n payload.rootNodes = (payload.filter\n ? stores.filter((store) => '$id' in store\n ? store.$id\n .toLowerCase()\n .includes(payload.filter.toLowerCase())\n : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase()))\n : stores).map(formatStoreForInspectorTree);\n }\n });\n // Expose pinia instance as $pinia to window\n globalThis.$pinia = pinia;\n api.on.getInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n // this could be the selected store restored for a different project\n // so it's better not to say anything here\n return;\n }\n if (inspectedStore) {\n // Expose selected store as $store to window\n if (payload.nodeId !== PINIA_ROOT_ID)\n globalThis.$store = toRaw(inspectedStore);\n payload.state = formatStoreForInspectorState(inspectedStore);\n }\n }\n });\n api.on.editInspectorState((payload) => {\n if (payload.app === app && payload.inspectorId === INSPECTOR_ID) {\n const inspectedStore = payload.nodeId === PINIA_ROOT_ID\n ? pinia\n : pinia._s.get(payload.nodeId);\n if (!inspectedStore) {\n return toastMessage(`store \"${payload.nodeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (!isPinia(inspectedStore)) {\n // access only the state\n if (path.length !== 1 ||\n !inspectedStore._customProperties.has(path[0]) ||\n path[0] in inspectedStore.$state) {\n path.unshift('$state');\n }\n }\n else {\n // Root access, we can omit the `.value` because the devtools API does it for us\n path.unshift('state');\n }\n isTimelineActive = false;\n payload.set(inspectedStore, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n api.on.editComponentState((payload) => {\n if (payload.type.startsWith('🍍')) {\n const storeId = payload.type.replace(/^🍍\\s*/, '');\n const store = pinia._s.get(storeId);\n if (!store) {\n return toastMessage(`store \"${storeId}\" not found`, 'error');\n }\n const { path } = payload;\n if (path[0] !== 'state') {\n return toastMessage(`Invalid path for store \"${storeId}\":\\n${path}\\nOnly state can be modified.`);\n }\n // rewrite the first entry to be able to directly set the state as\n // well as any other path\n path[0] = '$state';\n isTimelineActive = false;\n payload.set(store, path, payload.state.value);\n isTimelineActive = true;\n }\n });\n });\n}\nfunction addStoreToDevtools(app, store) {\n if (!componentStateTypes.includes(getStoreType(store.$id))) {\n componentStateTypes.push(getStoreType(store.$id));\n }\n setupDevtoolsPlugin({\n id: 'dev.esm.pinia',\n label: 'Pinia 🍍',\n logo: 'https://pinia.vuejs.org/logo.svg',\n packageName: 'pinia',\n homepage: 'https://pinia.vuejs.org',\n componentStateTypes,\n app,\n settings: {\n logStoreChanges: {\n label: 'Notify about new/deleted stores',\n type: 'boolean',\n defaultValue: true,\n },\n // useEmojis: {\n // label: 'Use emojis in messages ⚡️',\n // type: 'boolean',\n // defaultValue: true,\n // },\n },\n }, (api) => {\n // gracefully handle errors\n const now = typeof api.now === 'function' ? api.now.bind(api) : Date.now;\n store.$onAction(({ after, onError, name, args }) => {\n const groupId = runningActionId++;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛫 ' + name,\n subtitle: 'start',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n },\n groupId,\n },\n });\n after((result) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🛬 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n result,\n },\n groupId,\n },\n });\n });\n onError((error) => {\n activeAction = undefined;\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n logType: 'error',\n title: '💥 ' + name,\n subtitle: 'end',\n data: {\n store: formatDisplay(store.$id),\n action: formatDisplay(name),\n args,\n error,\n },\n groupId,\n },\n });\n });\n }, true);\n store._customProperties.forEach((name) => {\n watch(() => unref(store[name]), (newValue, oldValue) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (isTimelineActive) {\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: 'Change',\n subtitle: name,\n data: {\n newValue,\n oldValue,\n },\n groupId: activeAction,\n },\n });\n }\n }, { deep: true });\n });\n store.$subscribe(({ events, type }, state) => {\n api.notifyComponentUpdate();\n api.sendInspectorState(INSPECTOR_ID);\n if (!isTimelineActive)\n return;\n // rootStore.state[store.id] = state\n const eventData = {\n time: now(),\n title: formatMutationType(type),\n data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)),\n groupId: activeAction,\n };\n if (type === MutationType.patchFunction) {\n eventData.subtitle = '⤵️';\n }\n else if (type === MutationType.patchObject) {\n eventData.subtitle = '🧩';\n }\n else if (events && !Array.isArray(events)) {\n eventData.subtitle = events.type;\n }\n if (events) {\n eventData.data['rawEvent(s)'] = {\n _custom: {\n display: 'DebuggerEvent',\n type: 'object',\n tooltip: 'raw DebuggerEvent[]',\n value: events,\n },\n };\n }\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: eventData,\n });\n }, { detached: true, flush: 'sync' });\n const hotUpdate = store._hotUpdate;\n store._hotUpdate = markRaw((newStore) => {\n hotUpdate(newStore);\n api.addTimelineEvent({\n layerId: MUTATIONS_LAYER_ID,\n event: {\n time: now(),\n title: '🔥 ' + store.$id,\n subtitle: 'HMR update',\n data: {\n store: formatDisplay(store.$id),\n info: formatDisplay(`HMR update`),\n },\n },\n });\n // update the devtools too\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n });\n const { $dispose } = store;\n store.$dispose = () => {\n $dispose();\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`Disposed \"${store.$id}\" store 🗑`);\n };\n // trigger an update so it can display new registered stores\n api.notifyComponentUpdate();\n api.sendInspectorTree(INSPECTOR_ID);\n api.sendInspectorState(INSPECTOR_ID);\n api.getSettings().logStoreChanges &&\n toastMessage(`\"${store.$id}\" store installed 🆕`);\n });\n}\nlet runningActionId = 0;\nlet activeAction;\n/**\n * Patches a store to enable action grouping in devtools by wrapping the store with a Proxy that is passed as the\n * context of all actions, allowing us to set `runningAction` on each access and effectively associating any state\n * mutation to the action.\n *\n * @param store - store to patch\n * @param actionNames - list of actionst to patch\n */\nfunction patchActionForGrouping(store, actionNames, wrapWithProxy) {\n // original actions of the store as they are given by pinia. We are going to override them\n const actions = actionNames.reduce((storeActions, actionName) => {\n // use toRaw to avoid tracking #541\n storeActions[actionName] = toRaw(store)[actionName];\n return storeActions;\n }, {});\n for (const actionName in actions) {\n store[actionName] = function () {\n // the running action id is incremented in a before action hook\n const _actionId = runningActionId;\n const trackedStore = wrapWithProxy\n ? new Proxy(store, {\n get(...args) {\n activeAction = _actionId;\n return Reflect.get(...args);\n },\n set(...args) {\n activeAction = _actionId;\n return Reflect.set(...args);\n },\n })\n : store;\n // For Setup Stores we need https://github.com/tc39/proposal-async-context\n activeAction = _actionId;\n const retValue = actions[actionName].apply(trackedStore, arguments);\n // this is safer as async actions in Setup Stores would associate mutations done outside of the action\n activeAction = undefined;\n return retValue;\n };\n }\n}\n/**\n * pinia.use(devtoolsPlugin)\n */\nfunction devtoolsPlugin({ app, store, options }) {\n // HMR module\n if (store.$id.startsWith('__hot:')) {\n return;\n }\n // detect option api vs setup api\n store._isOptionsAPI = !!options.state;\n // Do not overwrite actions mocked by @pinia/testing (#2298)\n if (!store._p._testing) {\n patchActionForGrouping(store, Object.keys(options.actions), store._isOptionsAPI);\n // Upgrade the HMR to also update the new actions\n const originalHotUpdate = store._hotUpdate;\n toRaw(store)._hotUpdate = function (newStore) {\n originalHotUpdate.apply(this, arguments);\n patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions), !!store._isOptionsAPI);\n };\n }\n addStoreToDevtools(app, \n // FIXME: is there a way to allow the assignment from Store to StoreGeneric?\n store);\n}\n\n/**\n * Creates a Pinia instance to be used by the application\n */\nfunction createPinia() {\n const scope = effectScope(true);\n // NOTE: here we could check the window object for a state and directly set it\n // if there is anything like it with Vue 3 SSR\n const state = scope.run(() => ref({}));\n let _p = [];\n // plugins added before calling app.use(pinia)\n let toBeInstalled = [];\n const pinia = markRaw({\n install(app) {\n // this allows calling useStore() outside of a component setup after\n // installing pinia's plugin\n setActivePinia(pinia);\n pinia._a = app;\n app.provide(piniaSymbol, pinia);\n app.config.globalProperties.$pinia = pinia;\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n registerPiniaDevtools(app, pinia);\n }\n toBeInstalled.forEach((plugin) => _p.push(plugin));\n toBeInstalled = [];\n },\n use(plugin) {\n if (!this._a) {\n toBeInstalled.push(plugin);\n }\n else {\n _p.push(plugin);\n }\n return this;\n },\n _p,\n // it's actually undefined here\n // @ts-expect-error\n _a: null,\n _e: scope,\n _s: new Map(),\n state,\n });\n // pinia devtools rely on dev only features so they cannot be forced unless\n // the dev build of Vue is used. Avoid old browsers like IE11.\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT && typeof Proxy !== 'undefined') {\n pinia.use(devtoolsPlugin);\n }\n return pinia;\n}\n/**\n * Dispose a Pinia instance by stopping its effectScope and removing the state, plugins and stores. This is mostly\n * useful in tests, with both a testing pinia or a regular pinia and in applications that use multiple pinia instances.\n * Once disposed, the pinia instance cannot be used anymore.\n *\n * @param pinia - pinia instance\n */\nfunction disposePinia(pinia) {\n pinia._e.stop();\n pinia._s.clear();\n pinia._p.splice(0);\n pinia.state.value = {};\n // @ts-expect-error: non valid\n pinia._a = null;\n}\n\n/**\n * Checks if a function is a `StoreDefinition`.\n *\n * @param fn - object to test\n * @returns true if `fn` is a StoreDefinition\n */\nconst isUseStore = (fn) => {\n return typeof fn === 'function' && typeof fn.$id === 'string';\n};\n/**\n * Mutates in place `newState` with `oldState` to _hot update_ it. It will\n * remove any key not existing in `newState` and recursively merge plain\n * objects.\n *\n * @param newState - new state object to be patched\n * @param oldState - old state that should be used to patch newState\n * @returns - newState\n */\nfunction patchObject(newState, oldState) {\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in oldState) {\n const subPatch = oldState[key];\n // skip the whole sub tree\n if (!(key in newState)) {\n continue;\n }\n const targetValue = newState[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n newState[key] = patchObject(targetValue, subPatch);\n }\n else {\n // objects are either a bit more complex (e.g. refs) or primitives, so we\n // just set the whole thing\n newState[key] = subPatch;\n }\n }\n return newState;\n}\n/**\n * Creates an _accept_ function to pass to `import.meta.hot` in Vite applications.\n *\n * @example\n * ```js\n * const useUser = defineStore(...)\n * if (import.meta.hot) {\n * import.meta.hot.accept(acceptHMRUpdate(useUser, import.meta.hot))\n * }\n * ```\n *\n * @param initialUseStore - return of the defineStore to hot update\n * @param hot - `import.meta.hot`\n */\nfunction acceptHMRUpdate(initialUseStore, hot) {\n // strip as much as possible from iife.prod\n if (!(process.env.NODE_ENV !== 'production')) {\n return () => { };\n }\n return (newModule) => {\n const pinia = hot.data.pinia || initialUseStore._pinia;\n if (!pinia) {\n // this store is still not used\n return;\n }\n // preserve the pinia instance across loads\n hot.data.pinia = pinia;\n // console.log('got data', newStore)\n for (const exportName in newModule) {\n const useStore = newModule[exportName];\n // console.log('checking for', exportName)\n if (isUseStore(useStore) && pinia._s.has(useStore.$id)) {\n // console.log('Accepting update for', useStore.$id)\n const id = useStore.$id;\n if (id !== initialUseStore.$id) {\n console.warn(`The id of the store changed from \"${initialUseStore.$id}\" to \"${id}\". Reloading.`);\n // return import.meta.hot.invalidate()\n return hot.invalidate();\n }\n const existingStore = pinia._s.get(id);\n if (!existingStore) {\n console.log(`[Pinia]: skipping hmr because store doesn't exist yet`);\n return;\n }\n useStore(pinia, existingStore);\n }\n }\n };\n}\n\nconst noop = () => { };\nfunction addSubscription(subscriptions, callback, detached, onCleanup = noop) {\n subscriptions.add(callback);\n const removeSubscription = () => {\n const isDel = subscriptions.delete(callback);\n isDel && onCleanup();\n };\n if (!detached && getCurrentScope()) {\n onScopeDispose(removeSubscription);\n }\n return removeSubscription;\n}\nfunction triggerSubscriptions(subscriptions, ...args) {\n subscriptions.forEach((callback) => {\n callback(...args);\n });\n}\n\nconst fallbackRunWithContext = (fn) => fn();\n/**\n * Marks a function as an action for `$onAction`\n * @internal\n */\nconst ACTION_MARKER = Symbol();\n/**\n * Action name symbol. Allows to add a name to an action after defining it\n * @internal\n */\nconst ACTION_NAME = Symbol();\nfunction mergeReactiveObjects(target, patchToApply) {\n // Handle Map instances\n if (target instanceof Map && patchToApply instanceof Map) {\n patchToApply.forEach((value, key) => target.set(key, value));\n }\n else if (target instanceof Set && patchToApply instanceof Set) {\n // Handle Set instances\n patchToApply.forEach(target.add, target);\n }\n // no need to go through symbols because they cannot be serialized anyway\n for (const key in patchToApply) {\n if (!patchToApply.hasOwnProperty(key))\n continue;\n const subPatch = patchToApply[key];\n const targetValue = target[key];\n if (isPlainObject(targetValue) &&\n isPlainObject(subPatch) &&\n target.hasOwnProperty(key) &&\n !isRef(subPatch) &&\n !isReactive(subPatch)) {\n // NOTE: here I wanted to warn about inconsistent types but it's not possible because in setup stores one might\n // start the value of a property as a certain type e.g. a Map, and then for some reason, during SSR, change that\n // to `undefined`. When trying to hydrate, we want to override the Map with `undefined`.\n target[key] = mergeReactiveObjects(targetValue, subPatch);\n }\n else {\n // @ts-expect-error: subPatch is a valid value\n target[key] = subPatch;\n }\n }\n return target;\n}\nconst skipHydrateSymbol = (process.env.NODE_ENV !== 'production')\n ? Symbol('pinia:skipHydration')\n : /* istanbul ignore next */ Symbol();\n/**\n * Tells Pinia to skip the hydration process of a given object. This is useful in setup stores (only) when you return a\n * stateful object in the store but it isn't really state. e.g. returning a router instance in a setup store.\n *\n * @param obj - target object\n * @returns obj\n */\nfunction skipHydrate(obj) {\n return Object.defineProperty(obj, skipHydrateSymbol, {});\n}\n/**\n * Returns whether a value should be hydrated\n *\n * @param obj - target variable\n * @returns true if `obj` should be hydrated\n */\nfunction shouldHydrate(obj) {\n return (!isPlainObject(obj) ||\n !Object.prototype.hasOwnProperty.call(obj, skipHydrateSymbol));\n}\nconst { assign } = Object;\nfunction isComputed(o) {\n return !!(isRef(o) && o.effect);\n}\nfunction createOptionsStore(id, options, pinia, hot) {\n const { state, actions, getters } = options;\n const initialState = pinia.state.value[id];\n let store;\n function setup() {\n if (!initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[id] = state ? state() : {};\n }\n // avoid creating a state in pinia.state.value\n const localState = (process.env.NODE_ENV !== 'production') && hot\n ? // use ref() to unwrap refs inside state TODO: check if this is still necessary\n toRefs(ref(state ? state() : {}).value)\n : toRefs(pinia.state.value[id]);\n return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {\n if ((process.env.NODE_ENV !== 'production') && name in localState) {\n console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with \"${name}\" in store \"${id}\".`);\n }\n computedGetters[name] = markRaw(computed(() => {\n setActivePinia(pinia);\n // it was created just before\n const store = pinia._s.get(id);\n // allow cross using stores\n // @ts-expect-error\n // return getters![name].call(context, context)\n // TODO: avoid reading the getter while assigning with a global variable\n return getters[name].call(store, store);\n }));\n return computedGetters;\n }, {}));\n }\n store = createSetupStore(id, setup, options, pinia, hot, true);\n return store;\n}\nfunction createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) {\n let scope;\n const optionsForPlugin = assign({ actions: {} }, options);\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && !pinia._e.active) {\n throw new Error('Pinia destroyed');\n }\n // watcher options for $subscribe\n const $subscribeOptions = { deep: true };\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n $subscribeOptions.onTrigger = (event) => {\n /* istanbul ignore else */\n if (isListening) {\n debuggerEvents = event;\n // avoid triggering this while the store is being built and the state is being set in pinia\n }\n else if (isListening == false && !store._hotUpdating) {\n // let patch send all the events together later\n /* istanbul ignore else */\n if (Array.isArray(debuggerEvents)) {\n debuggerEvents.push(event);\n }\n else {\n console.error('🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug.');\n }\n }\n };\n }\n // internal state\n let isListening; // set to true at the end\n let isSyncListening; // set to true at the end\n let subscriptions = new Set();\n let actionSubscriptions = new Set();\n let debuggerEvents;\n const initialState = pinia.state.value[$id];\n // avoid setting the state for option stores if it is set\n // by the setup\n if (!isOptionsStore && !initialState && (!(process.env.NODE_ENV !== 'production') || !hot)) {\n /* istanbul ignore if */\n pinia.state.value[$id] = {};\n }\n const hotState = ref({});\n // avoid triggering too many listeners\n // https://github.com/vuejs/pinia/issues/1129\n let activeListener;\n function $patch(partialStateOrMutator) {\n let subscriptionMutation;\n isListening = isSyncListening = false;\n // reset the debugger events since patches are sync\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n debuggerEvents = [];\n }\n if (typeof partialStateOrMutator === 'function') {\n partialStateOrMutator(pinia.state.value[$id]);\n subscriptionMutation = {\n type: MutationType.patchFunction,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n else {\n mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator);\n subscriptionMutation = {\n type: MutationType.patchObject,\n payload: partialStateOrMutator,\n storeId: $id,\n events: debuggerEvents,\n };\n }\n const myListenerId = (activeListener = Symbol());\n nextTick().then(() => {\n if (activeListener === myListenerId) {\n isListening = true;\n }\n });\n isSyncListening = true;\n // because we paused the watcher, we need to manually call the subscriptions\n triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]);\n }\n const $reset = isOptionsStore\n ? function $reset() {\n const { state } = options;\n const newState = state ? state() : {};\n // we use a patch to group all changes into one single subscription\n this.$patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, newState);\n });\n }\n : /* istanbul ignore next */\n (process.env.NODE_ENV !== 'production')\n ? () => {\n throw new Error(`🍍: Store \"${$id}\" is built using the setup syntax and does not implement $reset().`);\n }\n : noop;\n function $dispose() {\n scope.stop();\n subscriptions.clear();\n actionSubscriptions.clear();\n pinia._s.delete($id);\n }\n /**\n * Helper that wraps function so it can be tracked with $onAction\n * @param fn - action to wrap\n * @param name - name of the action\n */\n const action = (fn, name = '') => {\n if (ACTION_MARKER in fn) {\n fn[ACTION_NAME] = name;\n return fn;\n }\n const wrappedAction = function () {\n setActivePinia(pinia);\n const args = Array.from(arguments);\n const afterCallbackSet = new Set();\n const onErrorCallbackSet = new Set();\n function after(callback) {\n afterCallbackSet.add(callback);\n }\n function onError(callback) {\n onErrorCallbackSet.add(callback);\n }\n // @ts-expect-error\n triggerSubscriptions(actionSubscriptions, {\n args,\n name: wrappedAction[ACTION_NAME],\n store,\n after,\n onError,\n });\n let ret;\n try {\n ret = fn.apply(this && this.$id === $id ? this : store, args);\n // handle sync errors\n }\n catch (error) {\n triggerSubscriptions(onErrorCallbackSet, error);\n throw error;\n }\n if (ret instanceof Promise) {\n return ret\n .then((value) => {\n triggerSubscriptions(afterCallbackSet, value);\n return value;\n })\n .catch((error) => {\n triggerSubscriptions(onErrorCallbackSet, error);\n return Promise.reject(error);\n });\n }\n // trigger after callbacks\n triggerSubscriptions(afterCallbackSet, ret);\n return ret;\n };\n wrappedAction[ACTION_MARKER] = true;\n wrappedAction[ACTION_NAME] = name; // will be set later\n // @ts-expect-error: we are intentionally limiting the returned type to just Fn\n // because all the added properties are internals that are exposed through `$onAction()` only\n return wrappedAction;\n };\n const _hmrPayload = /*#__PURE__*/ markRaw({\n actions: {},\n getters: {},\n state: [],\n hotState,\n });\n const partialStore = {\n _p: pinia,\n // _s: scope,\n $id,\n $onAction: addSubscription.bind(null, actionSubscriptions),\n $patch,\n $reset,\n $subscribe(callback, options = {}) {\n const removeSubscription = addSubscription(subscriptions, callback, options.detached, () => stopWatcher());\n const stopWatcher = scope.run(() => watch(() => pinia.state.value[$id], (state) => {\n if (options.flush === 'sync' ? isSyncListening : isListening) {\n callback({\n storeId: $id,\n type: MutationType.direct,\n events: debuggerEvents,\n }, state);\n }\n }, assign({}, $subscribeOptions, options)));\n return removeSubscription;\n },\n $dispose,\n };\n const store = reactive((process.env.NODE_ENV !== 'production') || ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT)\n ? assign({\n _hmrPayload,\n _customProperties: markRaw(new Set()), // devtools custom properties\n }, partialStore\n // must be added later\n // setupStore\n )\n : partialStore);\n // store the partial store now so the setup of stores can instantiate each other before they are finished without\n // creating infinite loops.\n pinia._s.set($id, store);\n const runWithContext = (pinia._a && pinia._a.runWithContext) || fallbackRunWithContext;\n // TODO: idea create skipSerialize that marks properties as non serializable and they are skipped\n const setupStore = runWithContext(() => pinia._e.run(() => (scope = effectScope()).run(() => setup({ action }))));\n // overwrite existing actions to support $onAction\n for (const key in setupStore) {\n const prop = setupStore[key];\n if ((isRef(prop) && !isComputed(prop)) || isReactive(prop)) {\n // mark it as a piece of state to be serialized\n if ((process.env.NODE_ENV !== 'production') && hot) {\n hotState.value[key] = toRef(setupStore, key);\n // createOptionStore directly sets the state in pinia.state.value so we\n // can just skip that\n }\n else if (!isOptionsStore) {\n // in setup stores we must hydrate the state and sync pinia state tree with the refs the user just created\n if (initialState && shouldHydrate(prop)) {\n if (isRef(prop)) {\n prop.value = initialState[key];\n }\n else {\n // probably a reactive object, lets recursively assign\n // @ts-expect-error: prop is unknown\n mergeReactiveObjects(prop, initialState[key]);\n }\n }\n // transfer the ref to the pinia state to keep everything in sync\n pinia.state.value[$id][key] = prop;\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.state.push(key);\n }\n // action\n }\n else if (typeof prop === 'function') {\n const actionValue = (process.env.NODE_ENV !== 'production') && hot ? prop : action(prop, key);\n // this a hot module replacement store because the hotUpdate method needs\n // to do it with the right context\n // @ts-expect-error\n setupStore[key] = actionValue;\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n _hmrPayload.actions[key] = prop;\n }\n // list actions so they can be used in plugins\n // @ts-expect-error\n optionsForPlugin.actions[key] = prop;\n }\n else if ((process.env.NODE_ENV !== 'production')) {\n // add getters for devtools\n if (isComputed(prop)) {\n _hmrPayload.getters[key] = isOptionsStore\n ? // @ts-expect-error\n options.getters[key]\n : prop;\n if (IS_CLIENT) {\n const getters = setupStore._getters ||\n // @ts-expect-error: same\n (setupStore._getters = markRaw([]));\n getters.push(key);\n }\n }\n }\n }\n // add the state, getters, and action properties\n /* istanbul ignore if */\n assign(store, setupStore);\n // allows retrieving reactive objects with `storeToRefs()`. Must be called after assigning to the reactive object.\n // Make `storeToRefs()` work with `reactive()` #799\n assign(toRaw(store), setupStore);\n // use this instead of a computed with setter to be able to create it anywhere\n // without linking the computed lifespan to wherever the store is first\n // created.\n Object.defineProperty(store, '$state', {\n get: () => ((process.env.NODE_ENV !== 'production') && hot ? hotState.value : pinia.state.value[$id]),\n set: (state) => {\n /* istanbul ignore if */\n if ((process.env.NODE_ENV !== 'production') && hot) {\n throw new Error('cannot set hotState');\n }\n $patch(($state) => {\n // @ts-expect-error: FIXME: shouldn't error?\n assign($state, state);\n });\n },\n });\n // add the hotUpdate before plugins to allow them to override it\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n store._hotUpdate = markRaw((newStore) => {\n store._hotUpdating = true;\n newStore._hmrPayload.state.forEach((stateKey) => {\n if (stateKey in store.$state) {\n const newStateTarget = newStore.$state[stateKey];\n const oldStateSource = store.$state[stateKey];\n if (typeof newStateTarget === 'object' &&\n isPlainObject(newStateTarget) &&\n isPlainObject(oldStateSource)) {\n patchObject(newStateTarget, oldStateSource);\n }\n else {\n // transfer the ref\n newStore.$state[stateKey] = oldStateSource;\n }\n }\n // patch direct access properties to allow store.stateProperty to work as\n // store.$state.stateProperty\n // @ts-expect-error: any type\n store[stateKey] = toRef(newStore.$state, stateKey);\n });\n // remove deleted state properties\n Object.keys(store.$state).forEach((stateKey) => {\n if (!(stateKey in newStore.$state)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[stateKey];\n }\n });\n // avoid devtools logging this as a mutation\n isListening = false;\n isSyncListening = false;\n pinia.state.value[$id] = toRef(newStore._hmrPayload, 'hotState');\n isSyncListening = true;\n nextTick().then(() => {\n isListening = true;\n });\n for (const actionName in newStore._hmrPayload.actions) {\n const actionFn = newStore[actionName];\n // @ts-expect-error: actionName is a string\n store[actionName] =\n //\n action(actionFn, actionName);\n }\n // TODO: does this work in both setup and option store?\n for (const getterName in newStore._hmrPayload.getters) {\n const getter = newStore._hmrPayload.getters[getterName];\n const getterValue = isOptionsStore\n ? // special handling of options api\n computed(() => {\n setActivePinia(pinia);\n return getter.call(store, store);\n })\n : getter;\n // @ts-expect-error: getterName is a string\n store[getterName] =\n //\n getterValue;\n }\n // remove deleted getters\n Object.keys(store._hmrPayload.getters).forEach((key) => {\n if (!(key in newStore._hmrPayload.getters)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // remove old actions\n Object.keys(store._hmrPayload.actions).forEach((key) => {\n if (!(key in newStore._hmrPayload.actions)) {\n // @ts-expect-error: noop if doesn't exist\n delete store[key];\n }\n });\n // update the values used in devtools and to allow deleting new properties later on\n store._hmrPayload = newStore._hmrPayload;\n store._getters = newStore._getters;\n store._hotUpdating = false;\n });\n }\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const nonEnumerable = {\n writable: true,\n configurable: true,\n // avoid warning on devtools trying to display this property\n enumerable: false,\n };\n ['_p', '_hmrPayload', '_getters', '_customProperties'].forEach((p) => {\n Object.defineProperty(store, p, assign({ value: store[p] }, nonEnumerable));\n });\n }\n // apply all plugins\n pinia._p.forEach((extender) => {\n /* istanbul ignore else */\n if ((((process.env.NODE_ENV !== 'production') || (typeof __VUE_PROD_DEVTOOLS__ !== 'undefined' && __VUE_PROD_DEVTOOLS__)) && !(process.env.NODE_ENV === 'test')) && IS_CLIENT) {\n const extensions = scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n }));\n Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key));\n assign(store, extensions);\n }\n else {\n assign(store, scope.run(() => extender({\n store: store,\n app: pinia._a,\n pinia,\n options: optionsForPlugin,\n })));\n }\n });\n if ((process.env.NODE_ENV !== 'production') &&\n store.$state &&\n typeof store.$state === 'object' &&\n typeof store.$state.constructor === 'function' &&\n !store.$state.constructor.toString().includes('[native code]')) {\n console.warn(`[🍍]: The \"state\" must be a plain object. It cannot be\\n` +\n `\\tstate: () => new MyClass()\\n` +\n `Found in store \"${store.$id}\".`);\n }\n // only apply hydrate to option stores with an initial state in pinia\n if (initialState &&\n isOptionsStore &&\n options.hydrate) {\n options.hydrate(store.$state, initialState);\n }\n isListening = true;\n isSyncListening = true;\n return store;\n}\n// allows unused stores to be tree shaken\n/*! #__NO_SIDE_EFFECTS__ */\nfunction defineStore(\n// TODO: add proper types from above\nid, setup, setupOptions) {\n let options;\n const isSetupStore = typeof setup === 'function';\n // the option store setup will contain the actual options in this case\n options = isSetupStore ? setupOptions : setup;\n function useStore(pinia, hot) {\n const hasContext = hasInjectionContext();\n pinia =\n // in test mode, ignore the argument provided as we can always retrieve a\n // pinia instance with getActivePinia()\n ((process.env.NODE_ENV === 'test') && activePinia && activePinia._testing ? null : pinia) ||\n (hasContext ? inject(piniaSymbol, null) : null);\n if (pinia)\n setActivePinia(pinia);\n if ((process.env.NODE_ENV !== 'production') && !activePinia) {\n throw new Error(`[🍍]: \"getActivePinia()\" was called but there was no active Pinia. Are you trying to use a store before calling \"app.use(pinia)\"?\\n` +\n `See https://pinia.vuejs.org/core-concepts/outside-component-usage.html for help.\\n` +\n `This will fail in production.`);\n }\n pinia = activePinia;\n if (!pinia._s.has(id)) {\n // creating the store registers it in `pinia._s`\n if (isSetupStore) {\n createSetupStore(id, setup, options, pinia);\n }\n else {\n createOptionsStore(id, options, pinia);\n }\n /* istanbul ignore else */\n if ((process.env.NODE_ENV !== 'production')) {\n // @ts-expect-error: not the right inferred type\n useStore._pinia = pinia;\n }\n }\n const store = pinia._s.get(id);\n if ((process.env.NODE_ENV !== 'production') && hot) {\n const hotId = '__hot:' + id;\n const newStore = isSetupStore\n ? createSetupStore(hotId, setup, options, pinia, true)\n : createOptionsStore(hotId, assign({}, options), pinia, true);\n hot._hotUpdate(newStore);\n // cleanup the state properties and the store from the cache\n delete pinia.state.value[hotId];\n pinia._s.delete(hotId);\n }\n if ((process.env.NODE_ENV !== 'production') && IS_CLIENT) {\n const currentInstance = getCurrentInstance();\n // save stores in instances to access them devtools\n if (currentInstance &&\n currentInstance.proxy &&\n // avoid adding stores that are just built for hot module replacement\n !hot) {\n const vm = currentInstance.proxy;\n const cache = '_pStores' in vm ? vm._pStores : (vm._pStores = {});\n cache[id] = store;\n }\n }\n // StoreGeneric cannot be casted towards Store\n return store;\n }\n useStore.$id = id;\n return useStore;\n}\n\nlet mapStoreSuffix = 'Store';\n/**\n * Changes the suffix added by `mapStores()`. Can be set to an empty string.\n * Defaults to `\"Store\"`. Make sure to extend the MapStoresCustomization\n * interface if you are using TypeScript.\n *\n * @param suffix - new suffix\n */\nfunction setMapStoreSuffix(suffix // could be 'Store' but that would be annoying for JS\n) {\n mapStoreSuffix = suffix;\n}\n/**\n * Allows using stores without the composition API (`setup()`) by generating an\n * object to be spread in the `computed` field of a component. It accepts a list\n * of store definitions.\n *\n * @example\n * ```js\n * export default {\n * computed: {\n * // other computed properties\n * ...mapStores(useUserStore, useCartStore)\n * },\n *\n * created() {\n * this.userStore // store with id \"user\"\n * this.cartStore // store with id \"cart\"\n * }\n * }\n * ```\n *\n * @param stores - list of stores to map to an object\n */\nfunction mapStores(...stores) {\n if ((process.env.NODE_ENV !== 'production') && Array.isArray(stores[0])) {\n console.warn(`[🍍]: Directly pass all stores to \"mapStores()\" without putting them in an array:\\n` +\n `Replace\\n` +\n `\\tmapStores([useAuthStore, useCartStore])\\n` +\n `with\\n` +\n `\\tmapStores(useAuthStore, useCartStore)\\n` +\n `This will fail in production if not fixed.`);\n stores = stores[0];\n }\n return stores.reduce((reduced, useStore) => {\n // @ts-expect-error: $id is added by defineStore\n reduced[useStore.$id + mapStoreSuffix] = function () {\n return useStore(this.$pinia);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = function () {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key];\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function () {\n const store = useStore(this.$pinia);\n const storeKey = keysOrMapper[key];\n // for some reason TS is unable to infer the type of storeKey to be a\n // function\n return typeof storeKey === 'function'\n ? storeKey.call(this, store)\n : // @ts-expect-error: FIXME: should work?\n store[storeKey];\n };\n return reduced;\n }, {});\n}\n/**\n * Alias for `mapState()`. You should use `mapState()` instead.\n * @deprecated use `mapState()` instead.\n */\nconst mapGetters = mapState;\n/**\n * Allows directly using actions from your store without using the composition\n * API (`setup()`) by generating an object to be spread in the `methods` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapActions(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[key](...args);\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n // @ts-expect-error\n reduced[key] = function (...args) {\n // @ts-expect-error: FIXME: should work?\n return useStore(this.$pinia)[keysOrMapper[key]](...args);\n };\n return reduced;\n }, {});\n}\n/**\n * Allows using state and getters from one store without using the composition\n * API (`setup()`) by generating an object to be spread in the `computed` field\n * of a component.\n *\n * @param useStore - store to map from\n * @param keysOrMapper - array or object\n */\nfunction mapWritableState(useStore, keysOrMapper) {\n return Array.isArray(keysOrMapper)\n ? keysOrMapper.reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[key];\n },\n set(value) {\n return (useStore(this.$pinia)[key] = value);\n },\n };\n return reduced;\n }, {})\n : Object.keys(keysOrMapper).reduce((reduced, key) => {\n reduced[key] = {\n get() {\n return useStore(this.$pinia)[keysOrMapper[key]];\n },\n set(value) {\n return (useStore(this.$pinia)[keysOrMapper[key]] = value);\n },\n };\n return reduced;\n }, {});\n}\n\n/**\n * Creates an object of references with all the state, getters, and plugin-added\n * state properties of the store. Similar to `toRefs()` but specifically\n * designed for Pinia stores so methods and non reactive properties are\n * completely ignored.\n *\n * @param store - store to extract the refs from\n */\nfunction storeToRefs(store) {\n const rawStore = toRaw(store);\n const refs = {};\n for (const key in rawStore) {\n const value = rawStore[key];\n // There is no native method to check for a computed\n // https://github.com/vuejs/core/pull/4165\n if (value.effect) {\n // @ts-expect-error: too hard to type correctly\n refs[key] =\n // ...\n computed({\n get: () => store[key],\n set(value) {\n store[key] = value;\n },\n });\n }\n else if (isRef(value) || isReactive(value)) {\n // @ts-expect-error: the key is state or getter\n refs[key] =\n // ---\n toRef(store, key);\n }\n }\n return refs;\n}\n\nexport { MutationType, acceptHMRUpdate, createPinia, defineStore, disposePinia, getActivePinia, mapActions, mapGetters, mapState, mapStores, mapWritableState, setActivePinia, setMapStoreSuffix, shouldHydrate, skipHydrate, storeToRefs };\n","export interface DefaultConfig {\n default_route: string;\n version: string;\n service_control_url: string;\n monitoring_url: string;\n showPendingRetry: boolean;\n}\n\nlet config: DefaultConfig | null = null;\n\nexport function setDefaultConfig(defaultConfig: DefaultConfig): void {\n config = defaultConfig;\n}\n\nexport function getDefaultConfig(): DefaultConfig {\n if (!config) {\n throw new Error(\"defaultConfig has not been initialized\");\n }\n return config;\n}\n","import { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { computed, ref } from \"vue\";\nimport { getDefaultConfig } from \"@/defaultConfig\";\n\nexport const useServiceControlStore = defineStore(\"ServiceControlStore\", () => {\n const serviceControlUrl = ref();\n const monitoringUrl = ref();\n\n const isMonitoringDisabled = computed(() => monitoringUrl.value == null || monitoringUrl.value === \"\" || monitoringUrl.value === \"!\");\n const isMonitoringEnabled = computed(() => !isMonitoringDisabled.value);\n\n function getServiceControlUrl() {\n if (!serviceControlUrl.value) {\n refresh();\n }\n if (!serviceControlUrl.value) {\n throw new Error(\"Service Control URL is not configured\");\n }\n return serviceControlUrl.value;\n }\n\n function getMonitoringUrl() {\n if (!monitoringUrl.value) refresh();\n return monitoringUrl.value;\n }\n\n function refresh() {\n const params = new URLSearchParams(window.location.search);\n const mu = params.get(\"mu\");\n const config = getDefaultConfig();\n\n if (config.service_control_url) {\n serviceControlUrl.value = config.service_control_url;\n console.debug(`setting ServiceControl Url to its default value: ${config.service_control_url}`);\n } else {\n console.warn(\"ServiceControl Url is not defined.\");\n }\n\n if (mu) {\n monitoringUrl.value = mu;\n window.localStorage.setItem(\"mu\", monitoringUrl.value);\n console.debug(`Monitoring Url found in QS and stored in local storage: ${monitoringUrl.value}`);\n } else if (window.localStorage.getItem(\"mu\")) {\n monitoringUrl.value = window.localStorage.getItem(\"mu\");\n console.debug(`Monitoring Url, not in QS, found in local storage: ${monitoringUrl.value}`);\n } else if (config.monitoring_url) {\n monitoringUrl.value = config.monitoring_url;\n console.debug(`setting Monitoring Url to its default value: ${config.monitoring_url}`);\n } else {\n console.warn(\"Monitoring Url is not defined.\");\n }\n }\n\n async function fetchFromServiceControl(suffix: string, options?: { cache?: RequestCache }) {\n const requestOptions: RequestInit = {\n method: \"GET\",\n cache: options?.cache ?? \"default\", // Default if not specified\n headers: {\n Accept: \"application/json\",\n },\n };\n return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions);\n }\n\n async function fetchTypedFromServiceControl(suffix: string): Promise<[Response, T]> {\n const response = await fetch(`${getServiceControlUrl()}${suffix}`);\n if (!response.ok) throw new Error(response.statusText ?? \"No response\");\n const data = await response.json();\n\n return [response, data];\n }\n\n async function fetchTypedFromMonitoring(suffix: string): Promise<[Response?, T?]> {\n if (isMonitoringDisabled.value) {\n return [];\n }\n\n const response = await fetch(`${getMonitoringUrl()}${suffix}`);\n const data = await response.json();\n\n return [response, data];\n }\n\n async function postToServiceControl(suffix: string, payload: object | null = null) {\n const requestOptions: RequestInit = {\n method: \"POST\",\n };\n if (payload != null) {\n requestOptions.headers = { \"Content-Type\": \"application/json\" };\n requestOptions.body = JSON.stringify(payload);\n }\n return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions);\n }\n\n async function putToServiceControl(suffix: string, payload: object | null) {\n const requestOptions: RequestInit = {\n method: \"PUT\",\n };\n if (payload != null) {\n requestOptions.headers = { \"Content-Type\": \"application/json\" };\n requestOptions.body = JSON.stringify(payload);\n }\n return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions);\n }\n\n async function deleteFromServiceControl(suffix: string) {\n const requestOptions: RequestInit = {\n method: \"DELETE\",\n };\n return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions);\n }\n\n async function deleteFromMonitoring(suffix: string) {\n const requestOptions = {\n method: \"DELETE\",\n };\n return await fetch(`${getMonitoringUrl()}${suffix}`, requestOptions);\n }\n\n async function optionsFromMonitoring() {\n if (isMonitoringDisabled.value) {\n return Promise.resolve(null);\n }\n\n const requestOptions = {\n method: \"OPTIONS\",\n };\n return await fetch(getMonitoringUrl() ?? \"\", requestOptions);\n }\n\n async function patchToServiceControl(suffix: string, payload: object | null) {\n const requestOptions: RequestInit = {\n method: \"PATCH\",\n };\n if (payload != null) {\n requestOptions.headers = { \"Content-Type\": \"application/json\" };\n requestOptions.body = JSON.stringify(payload);\n }\n return await fetch(`${getServiceControlUrl()}${suffix}`, requestOptions);\n }\n\n return {\n refresh,\n serviceControlUrl,\n monitoringUrl,\n isMonitoringDisabled,\n isMonitoringEnabled,\n fetchFromServiceControl,\n fetchTypedFromServiceControl,\n fetchTypedFromMonitoring,\n putToServiceControl,\n postToServiceControl,\n patchToServiceControl,\n deleteFromServiceControl,\n deleteFromMonitoring,\n optionsFromMonitoring,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useServiceControlStore, import.meta.hot));\n}\n\nexport type ServiceControlStore = ReturnType;\n","\n\n\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\nvar hookCallback;\n\nfunction hooks() {\n return hookCallback.apply(null, arguments);\n}\n\n// This is done to register the method called with moment()\n// without creating circular dependencies.\nfunction setHookCallback(callback) {\n hookCallback = callback;\n}\n\nfunction isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\nfunction isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nfunction hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nfunction isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n}\n\nfunction isUndefined(input) {\n return input === void 0;\n}\n\nfunction isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n}\n\nfunction isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n}\n\nfunction map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n}\n\nfunction extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n}\n\nfunction createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n}\n\nfunction defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n}\n\nfunction getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n}\n\nvar some;\nif (Array.prototype.some) {\n some = Array.prototype.some;\n} else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n};\n\nexport default hooks;\n","import moment from \"moment\";\nimport type { DateRange } from \"@/types/date\";\n\nexport interface DateDisplayOptions {\n showLocalTime?: boolean;\n showUtcTime?: boolean;\n showRelative?: boolean;\n format?: string;\n emptyText?: string;\n}\n\n/**\n * Composable for consistent date formatting across the application\n */\nexport function useDateFormatter() {\n const emptyDate = \"0001-01-01T00:00:00\";\n\n /**\n * Format a date range for display\n */\n function formatDateRange(dateRange: DateRange, options: DateDisplayOptions = {}): string {\n const { emptyText = \"No dates\" } = options;\n\n if (dateRange.length === 0) return emptyText;\n\n const [fromDate, toDate] = dateRange;\n\n if (toDate && toDate > new Date()) return \"Date cannot be in the future\";\n if (fromDate && toDate) return `${fromDate.toLocaleString()} - ${toDate.toLocaleString()}`;\n if (fromDate) return fromDate.toLocaleString();\n return emptyText;\n }\n\n /**\n * Format a single date with flexible options\n */\n function formatDate(dateInput: string | Date | null, options: DateDisplayOptions = {}): string {\n const { showLocalTime = true, showUtcTime = false, showRelative = false, format = \"LLLL\", emptyText = \"n/a\" } = options;\n\n if (!dateInput || dateInput === emptyDate) {\n return emptyText;\n }\n\n const m = moment.utc(dateInput);\n\n if (showRelative) {\n return m.fromNow();\n }\n\n if (showLocalTime && showUtcTime) {\n return `${m.local().format(format)} (local)\\n${m.utc().format(format)} (UTC)`;\n }\n\n if (showUtcTime) {\n return m.utc().format(format);\n }\n\n return m.local().format(format);\n }\n\n /**\n * Format date for tooltip display (local and UTC)\n */\n function formatDateTooltip(dateInput: string | Date | null, titleValue?: string): string {\n if (titleValue) return titleValue;\n if (!dateInput || dateInput === emptyDate) return \"\";\n\n const m = moment.utc(dateInput);\n return `${m.local().format(\"LLLL\")} (local)\\n${m.utc().format(\"LLLL\")} (UTC)`;\n }\n\n /**\n * Get relative time that updates periodically\n */\n function formatRelativeTime(dateInput: string | Date | null, options: DateDisplayOptions = {}): string {\n const { emptyText = \"n/a\" } = options;\n\n if (!dateInput || dateInput === emptyDate) {\n return emptyText;\n }\n\n return moment.utc(dateInput).fromNow();\n }\n\n /**\n * Format for license expiration dates\n */\n function formatLicenseDate(dateInput: string | null): string {\n if (!dateInput) return \"\";\n return new Date(dateInput.replace(\"Z\", \"\")).toLocaleDateString();\n }\n\n /**\n * Validate if a date range is valid\n */\n function isValidDateRange(dateRange: DateRange): boolean {\n // Empty range is valid\n if (dateRange.length === 0) return true;\n\n const [fromDate, toDate] = dateRange;\n\n // If we have a toDate, it must not be in the future\n if (toDate && toDate > new Date()) return false;\n\n // If we have a fromDate but no toDate, that's valid\n if (fromDate && !toDate) return true;\n\n // If we have both dates, fromDate should be before or equal to toDate\n if (fromDate && toDate) return fromDate <= toDate;\n\n return true;\n }\n\n return {\n formatDate,\n formatDateRange,\n formatDateTooltip,\n formatRelativeTime,\n formatLicenseDate,\n isValidDateRange,\n emptyDate,\n };\n}\n","\n\n\n","export default interface EventLogItem {\n id: string;\n description: string;\n severity: Severity;\n raised_at: string;\n related_to: string[];\n category: string;\n event_type: string;\n}\n\nexport enum Severity {\n Critical = \"critical\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n","const heartbeatLinks = (root: string) => {\n function createLink(template: string) {\n return { link: `${root}/${template}`, template: template };\n }\n\n return {\n root,\n unhealthy: createLink(\"unhealthy\"),\n healthy: createLink(\"healthy\"),\n configuration: createLink(\"configuration\"),\n instances: { link: (endpointName: string) => `${root}/instances/${encodeURIComponent(endpointName)}`, template: \"/heartbeats/instances/:endpointName\" },\n };\n};\n\nconst failedMessagesLinks = (root: string) => {\n function createLink(template: string) {\n return { link: `${root}/${template}`, template: template };\n }\n\n return {\n root,\n failedMessagesGroups: createLink(\"failed-message-groups\"),\n failedMessages: createLink(\"all-failed-messages\"),\n deletedMessagesGroup: createLink(\"deleted-message-groups\"),\n deletedMessages: createLink(\"all-deleted-messages\"),\n pendingRetries: createLink(\"pending-retries\"),\n group: { link: (groupId: string) => `${root}/group/${groupId}`, template: \"group/:groupId\" },\n deletedGroup: { link: (groupId: string) => `${root}/deleted-messages/group/${groupId}`, template: \"deleted-messages/group/:groupId\" },\n message: { link: (id: string) => `${root}/message/${id}`, template: \"message/:id\" },\n };\n};\n\nconst messagesLinks = (root: string) => {\n return {\n root,\n failedMessage: { link: (id: string) => `${root}/${id}`, template: \"/messages/:id\" },\n successMessage: { link: (messageId: string, id: string) => `${root}/${messageId}/${id}`, template: \"/messages/:messageId/:id\" },\n };\n};\n\nconst configurationLinks = (root: string) => {\n function createLink(template: string) {\n return { link: `${root}/${template}`, template: template };\n }\n\n return {\n root,\n license: createLink(\"license\"),\n massTransitConnector: createLink(\"mass-transit-connector\"),\n healthCheckNotifications: createLink(\"health-check-notifications\"),\n retryRedirects: createLink(\"retry-redirects\"),\n connections: createLink(\"connections\"),\n endpointConnection: createLink(\"endpoint-connection\"),\n };\n};\n\nconst throughputLinks = (root: string) => {\n return {\n root: root,\n endpoints: throughputEndpointLinks(`${root}/endpoints`),\n setup: throughputSetupLinks(`${root}/setup`),\n };\n};\n\nconst throughputSetupLinks = (root: string) => {\n function createLink(template: string) {\n return { link: `${root}/${template}`, template: template };\n }\n\n return {\n root,\n connectionSetup: createLink(\"connection-setup\"),\n mask: createLink(\"mask\"),\n diagnostics: createLink(\"diagnostics\"),\n };\n};\n\nconst throughputEndpointLinks = (root: string) => {\n function createLink(template: string) {\n return { link: `${root}/${template}`, template: template };\n }\n\n return {\n root,\n detectedEndpoints: createLink(\"known\"),\n detectedBrokerQueues: createLink(\"broker\"),\n };\n};\n\nconst monitoringLinks = (root: string) => {\n return {\n root,\n endpointDetails: {\n link: (endpointName: string, historyPeriod: number, tab?: string) => `${root}/endpoint/${encodeURIComponent(endpointName)}?historyPeriod=${historyPeriod}${(tab && `&tab=${tab}`) ?? \"\"}`,\n template: \"/monitoring/endpoint/:endpointName\",\n },\n };\n};\n\nconst routeLinks = {\n dashboard: \"/dashboard\",\n heartbeats: heartbeatLinks(\"/heartbeats\"),\n monitoring: monitoringLinks(\"/monitoring\"),\n failedMessage: failedMessagesLinks(\"/failed-messages\"),\n customChecks: \"/custom-checks\",\n events: \"/events\",\n messages: messagesLinks(\"/messages\"),\n configuration: configurationLinks(\"/configuration\"),\n throughput: throughputLinks(\"/usage\"),\n};\n\nexport default routeLinks;\n","/*!\n * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2025 Fonticons, Inc.\n */\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)(>|$)/g, function (e, r, t) {\n if (\"\" === t) return e;\n var p = o[r];\n return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nvar noop = function noop() {};\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {} // eslint-disable-line no-empty\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _dt;\nvar E = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n _ = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i;\nvar q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n },\n H = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n Q = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n rt = [i, t, d, l, f, n, h, o, u, g, s, y, m, e, p, a, w, x],\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\nvar gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\nvar Ct = {\n \"Font Awesome 7 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 7 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 7 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 7 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 7 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 7 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n \"Font Awesome 7 Jelly\": {\n 400: \"fajr\",\n normal: \"fajr\"\n },\n \"Font Awesome 7 Jelly Fill\": {\n 400: \"fajfr\",\n normal: \"fajfr\"\n },\n \"Font Awesome 7 Jelly Duo\": {\n 400: \"fajdr\",\n normal: \"fajdr\"\n },\n \"Font Awesome 7 Slab\": {\n 400: \"faslr\",\n normal: \"faslr\"\n },\n \"Font Awesome 7 Slab Press\": {\n 400: \"faslpr\",\n normal: \"faslpr\"\n },\n \"Font Awesome 7 Thumbprint\": {\n 300: \"fatl\",\n normal: \"fatl\"\n },\n \"Font Awesome 7 Notdog\": {\n 900: \"fans\",\n normal: \"fans\"\n },\n \"Font Awesome 7 Notdog Duo\": {\n 900: \"fands\",\n normal: \"fands\"\n },\n \"Font Awesome 7 Etch\": {\n 900: \"faes\",\n normal: \"faes\"\n },\n \"Font Awesome 7 Chisel\": {\n 400: \"facr\",\n normal: \"facr\"\n },\n \"Font Awesome 7 Whiteboard\": {\n 600: \"fawsb\",\n normal: \"fawsb\"\n },\n \"Font Awesome 7 Utility\": {\n 600: \"fausb\",\n normal: \"fausb\"\n },\n \"Font Awesome 7 Utility Duo\": {\n 600: \"faudsb\",\n normal: \"faudsb\"\n },\n \"Font Awesome 7 Utility Fill\": {\n 600: \"faufsb\",\n normal: \"faufsb\"\n }\n };\nvar Ut = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"chisel\", {\n defaultShortPrefixId: \"facr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"etch\", {\n defaultShortPrefixId: \"faes\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"jelly\", {\n defaultShortPrefixId: \"fajr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-duo\", {\n defaultShortPrefixId: \"fajdr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-fill\", {\n defaultShortPrefixId: \"fajfr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"notdog\", {\n defaultShortPrefixId: \"fans\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"notdog-duo\", {\n defaultShortPrefixId: \"fands\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"slab\", {\n defaultShortPrefixId: \"faslr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"slab-press\", {\n defaultShortPrefixId: \"faslpr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"thumbprint\", {\n defaultShortPrefixId: \"fatl\",\n defaultStyleId: \"light\",\n styleIds: [\"light\"],\n futureStyleIds: [],\n defaultFontWeight: 300\n }], [\"utility\", {\n defaultShortPrefixId: \"fausb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-duo\", {\n defaultShortPrefixId: \"faudsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-fill\", {\n defaultShortPrefixId: \"faufsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"whiteboard\", {\n defaultShortPrefixId: \"fawsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }]]),\n _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\nvar Yt = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\nvar L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\nvar ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar dl = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar _ml;\nvar l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n f$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\nvar E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\nvar $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n Y$1 = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n Zt$1 = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(f$1, Y$1),\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\nvar ro = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n}();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n}\nvar _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), q[i]), qt['kit']), qt['kit-duotone']);\nvar PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nvar _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\nvar STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nvar _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n_PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\nvar PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nvar _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n_LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\nvar LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nvar ICON_SELECTION_SYNTAX_PATTERN = E;\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = _;\nvar _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\nvar FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = H;\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n}\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nvar _default = {\n styleDefault: 'solid',\n familyDefault: i,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n searchPseudoElements: false,\n searchPseudoElementsWarnings: true,\n searchPseudoElementsFullScan: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d$2 = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 7 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-slab-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab\\\";\\n --fa-font-slab-press-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab Press\\\";\\n --fa-font-whiteboard-semibold: normal 600 1em/1 \\\"Font Awesome 7 Whiteboard\\\";\\n --fa-font-thumbprint-light: normal 300 1em/1 \\\"Font Awesome 7 Thumbprint\\\";\\n --fa-font-notdog-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog\\\";\\n --fa-font-notdog-duo-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog Duo\\\";\\n --fa-font-etch-solid: normal 900 1em/1 \\\"Font Awesome 7 Etch\\\";\\n --fa-font-jelly-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly\\\";\\n --fa-font-jelly-fill-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Fill\\\";\\n --fa-font-jelly-duo-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Duo\\\";\\n --fa-font-chisel-regular: normal 400 1em/1 \\\"Font Awesome 7 Chisel\\\";\\n --fa-font-utility-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility\\\";\\n --fa-font-utility-duo-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Duo\\\";\\n --fa-font-utility-fill-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Fill\\\";\\n}\\n\\n.svg-inline--fa {\\n box-sizing: content-box;\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285714em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left,\\n.svg-inline--fa .fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n --fa-width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-inline-start: var(--fa-li-margin, 2.5em);\\n padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n/* Heads Up: Bordered Icons will not be supported in the future!\\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\n*/\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.0625em);\\n box-sizing: var(--fa-border-box-sizing, content-box);\\n padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation: none !important;\\n transition: none !important;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n --fa-width: 1.25em;\\n height: 1em;\\n width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n --fa-width: 2.5em;\\n height: 2em;\\n width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n z-index: var(--fa-stack-z-index, auto);\\n}\";\n\nfunction css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nvar _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w$2 = WINDOW || {};\nif (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\nif (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$2[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar _listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\nvar loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', _listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n};\n\n/**\n * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' → '7B'\n */\nfunction toHex(unicode) {\n if (_toConsumableArray(unicode).length !== 1) return null;\n return unicode.codePointAt(0).toString(16);\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar MONO = 0x1;\nvar DUO = 0x2;\n\n// New v7 compatible matchers using the style attribute to determine layer membership\nvar modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n d2: 2,\n d1: 3\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n d1: 1\n})]];\n\n// Old <= v6 matchers, these should rarely get used.\n//\n// Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n// syntax for our source SVG files several times. These patterns match the\n// historical record and attempt to handle backwards-compatibility in rare edge\n// cases (loading version 6 SVG source files using the version 7 SVG parser)\nvar legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2,\n attr1: 3,\n d1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2,\n attr2: 3,\n d2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d2: 1,\n attr2: 2,\n d1: 3,\n attr1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d1: 1,\n attr1: 2,\n d2: 3,\n attr2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d1: 1,\n attr1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d2: 1,\n attr2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n d1: 1\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n})]];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nvar PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o$$1, style, prefix) {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n};\nonChange(function (c$$1) {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n var family = i;\n var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n rt.forEach(function (familyId) {\n if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n })) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? i : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n var result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n var rest = [];\n var iconName = null;\n classNames.forEach(function (cls) {\n var result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName: iconName,\n rest: rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter(function (value, index, arr) {\n return arr.indexOf(value) === index;\n });\n}\nvar _faCombinedClasses = Zt$1.concat(Yt);\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return _faCombinedClasses.includes(cls);\n }));\n var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return !_faCombinedClasses.includes(cls);\n }));\n var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n givenPrefix = cls;\n return !Q.includes(cls);\n });\n var _faStyles = _slicedToArray(faStyles, 1),\n _faStyles$ = _faStyles[0],\n styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n var family = getFamilyId(faStyleOrFamilyClasses);\n var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family: family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values: values,\n family: family,\n styles: styles,\n config: config,\n canonical: canonical,\n givenPrefix: givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n var prefix = canonical.prefix,\n iconName = canonical.iconName;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n var aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix: prefix,\n iconName: iconName\n };\n}\nvar newCanonicalFamilies = rt.filter(function (familyId) {\n return familyId !== i || familyId !== t;\n});\nvar newCanonicalStyles = Object.keys(Ht$1).filter(function (key) {\n return key !== i;\n}).map(function (key) {\n return Object.keys(Ht$1[key]);\n}).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n var values = prefixOptions.values,\n family = prefixOptions.family,\n canonical = prefixOptions.canonical,\n _prefixOptions$givenP = prefixOptions.givenPrefix,\n givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n _prefixOptions$styles = prefixOptions.styles,\n styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n _prefixOptions$config = prefixOptions.config,\n config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n var isDuotoneFamily = family === t;\n var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n var canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n var validPrefix = Object.keys(styles).find(function (key) {\n return newCanonicalStyles.includes(key);\n });\n if (validPrefix || config$$1.autoFetchSvg) {\n var defaultPrefix = Ut.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n return _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // To keep support for older Classic styles, also add longer prefixes\n var longPrefix = PREFIX_TO_LONG_STYLE[i][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args));\n });\n return accumulator;\n}\nfunction callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return undefined;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\n// If any of these attributes are present, don't assume the icon is decorative\nfunction isLabeled(attributes) {\n var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n return labels.some(function (label) {\n return label in attributes;\n });\n}\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n maskId = params.maskId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n content.attributes['aria-hidden'] = 'true';\n }\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2({}, extra.styles)\n });\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n extra = params.extra;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise(function (resolve, reject) {\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\nvar p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"7.1.0\\\"\";\nvar begin = function begin(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\nvar end = function end(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback([mutationRecord.target], true);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\nfunction getKnownPrefixes() {\n return [].concat(_toConsumableArray(Yt), _toConsumableArray(Zt$1));\n}\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? getKnownPrefixes() : Q.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e$$1) {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n maskId: maskId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nvar _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), Ct), ro), dl);\nvar FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nvar FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n return acc;\n}, {});\n\n// Return hex value of *first* character in `content`\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n return toHex(_toConsumableArray(cleaned)[0] || '');\n}\n\n// Check if it's a secondary Duotone layer, by checking if:\n// - Unicode value in `content` is repeated\n// - Unicode value in `content` is above 0x10000\n// - The \"ss01\" font feature is enabled on the `content`\nfunction isSecondaryLayer(styles) {\n var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n var content = styles.getPropertyValue('content');\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = cleaned.codePointAt(0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return isPrependTen || isDoubled || hasStylisticSet;\n}\nfunction getPrefix(fontFamily, fontWeight) {\n var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n var fontWeightInteger = parseInt(fontWeight);\n var fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family');\n var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = getPrefix(fontFamily, fontWeight);\n var hexValue = hexValueFromContent(_content);\n var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n var isSecondary = isSecondaryLayer(styles);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a$$1) {\n return toHtml(a$$1);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\nvar hasPseudoElement = function hasPseudoElement(selector) {\n return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n return selector.includes(pseudoSelector);\n });\n};\n\n// Return selectors from all available stylesheets that have\n// pseudo-elements defined.\nvar parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n if (!selectorText) return [];\n var selectorSet = new Set();\n var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n return s$$1.trim();\n });\n selectors = selectors.flatMap(function (selector) {\n return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n return s$$1.trim();\n });\n });\n var _iterator = _createForOfIteratorHelper(selectors),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var selector = _step.value;\n if (hasPseudoElement(selector)) {\n // Remove pseudo-elements from the selector\n var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n return acc.replace(pseudoSelector, '');\n }, selector);\n if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n selectorSet.add(selectorWithoutPseudo);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return selectorSet;\n};\nfunction searchPseudoElements(root) {\n var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!IS_DOM) return;\n var nodeList;\n if (useAsNodeList) {\n nodeList = root;\n } else if (config.searchPseudoElementsFullScan) {\n nodeList = root.querySelectorAll('*');\n } else {\n // Get elements that have pseudo elements defined in the CSS\n var selectorSet = new Set();\n var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var stylesheet = _step2.value;\n try {\n var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var rule = _step3.value;\n var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var selector = _step4.value;\n selectorSet.add(selector);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } catch (e$$1) {\n if (config.searchPseudoElementsWarnings) {\n console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!selectorSet.size) return;\n var cleanSelectors = Array.from(selectorSet).join(', ');\n try {\n nodeList = root.querySelectorAll(cleanSelectors);\n } catch (_unused) {} // eslint-disable-line no-empty\n }\n return new Promise(function (resolve, reject) {\n var operations = toArray(nodeList).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n 'fill': 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n 'mask': \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n class: 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","import { h, defineComponent, computed, watch } from 'vue';\nimport { parse, icon, config, text } from '@fortawesome/fontawesome-svg-core';\n\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = _objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\n\nfunction objectWithKey(key, value) {\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\nfunction classList(props) {\n var _classes;\n var classes = (_classes = {\n 'fa-spin': props.spin,\n 'fa-pulse': props.pulse,\n // the fixedWidth property has been deprecated as of version 7.0.0\n 'fa-fw': props.fixedWidth,\n 'fa-border': props.border,\n 'fa-li': props.listItem,\n 'fa-inverse': props.inverse,\n 'fa-flip': props.flip === true,\n 'fa-flip-horizontal': props.flip === 'horizontal' || props.flip === 'both',\n 'fa-flip-vertical': props.flip === 'vertical' || props.flip === 'both'\n }, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_classes, \"fa-\".concat(props.size), props.size !== null), \"fa-rotate-\".concat(props.rotation), props.rotation !== null), 'fa-rotate-by', props.rotateBy), \"fa-pull-\".concat(props.pull), props.pull !== null), 'fa-swap-opacity', props.swapOpacity), 'fa-bounce', props.bounce), 'fa-shake', props.shake), 'fa-beat', props.beat), 'fa-fade', props.fade), 'fa-beat-fade', props.beatFade), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_classes, 'fa-flash', props.flash), 'fa-spin-pulse', props.spinPulse), 'fa-spin-reverse', props.spinReverse), 'fa-width-auto', props.widthAuto));\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar humps$1 = {exports: {}};\n\n(function (module) {\n(function(global) {\n\n\t var _processKeys = function(convert, obj, options) {\n\t if(!_isObject(obj) || _isDate(obj) || _isRegExp(obj) || _isBoolean(obj) || _isFunction(obj)) {\n\t return obj;\n\t }\n\n\t var output,\n\t i = 0,\n\t l = 0;\n\n\t if(_isArray(obj)) {\n\t output = [];\n\t for(l=obj.length; i} classes The class list to convert.\n * @returns {Object}\n */\nfunction classToObject(classes) {\n return classes.split(/\\s+/).reduce(function (output, className) {\n output[className] = true;\n return output;\n }, {});\n}\n\n/**\n * Converts a FontAwesome abstract element of an icon into a Vue VNode.\n * @param {AbstractElement | String} abstractElement The element to convert.\n * @param {Object} props The user-defined props.\n * @param {Object} attrs The user-defined native HTML attributes.\n * @returns {VNode}\n */\nfunction convert(abstractElement) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var attrs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n // If the abstract element is a string, we'll just return a string render function\n if (typeof abstractElement === 'string') {\n return abstractElement;\n }\n\n // Converting abstract element children into Vue VNodes\n var children = (abstractElement.children || []).map(function (child) {\n return convert(child);\n });\n\n // Converting abstract element attributes into valid Vue format\n var mixins = Object.keys(abstractElement.attributes || {}).reduce(function (mixins, key) {\n var value = abstractElement.attributes[key];\n switch (key) {\n case 'class':\n mixins.class = classToObject(value);\n break;\n case 'style':\n mixins.style = styleToObject(value);\n break;\n default:\n mixins.attrs[key] = value;\n }\n return mixins;\n }, {\n attrs: {},\n class: {},\n style: {}\n });\n\n // Now, we'll return the VNode\n attrs.class;\n var _attrs$style = attrs.style,\n aStyle = _attrs$style === void 0 ? {} : _attrs$style,\n otherAttrs = _objectWithoutProperties(attrs, _excluded);\n return h(abstractElement.tag, _objectSpread2(_objectSpread2(_objectSpread2({}, props), {}, {\n class: mixins.class,\n style: _objectSpread2(_objectSpread2({}, mixins.style), aStyle)\n }, mixins.attrs), otherAttrs), children);\n}\n\nvar PRODUCTION = false;\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n if (parse.icon) {\n return parse.icon(icon);\n }\n if (icon === null) {\n return null;\n }\n if (_typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n }\n if (Array.isArray(icon) && icon.length === 2) {\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n }\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\nvar FontAwesomeIcon = defineComponent({\n name: 'FontAwesomeIcon',\n props: {\n border: {\n type: Boolean,\n default: false\n },\n // the fixedWidth property has been deprecated as of version 7\n fixedWidth: {\n type: Boolean,\n default: false\n },\n flip: {\n type: [Boolean, String],\n default: false,\n validator: function validator(value) {\n return [true, false, 'horizontal', 'vertical', 'both'].indexOf(value) > -1;\n }\n },\n icon: {\n type: [Object, Array, String],\n required: true\n },\n mask: {\n type: [Object, Array, String],\n default: null\n },\n maskId: {\n type: String,\n default: null\n },\n listItem: {\n type: Boolean,\n default: false\n },\n pull: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['right', 'left'].indexOf(value) > -1;\n }\n },\n pulse: {\n type: Boolean,\n default: false\n },\n rotation: {\n type: [String, Number],\n default: null,\n validator: function validator(value) {\n return [90, 180, 270].indexOf(Number.parseInt(value, 10)) > -1;\n }\n },\n // the rotateBy property is only supported in version 7.0.0 and later\n rotateBy: {\n type: Boolean,\n default: false\n },\n swapOpacity: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x'].indexOf(value) > -1;\n }\n },\n spin: {\n type: Boolean,\n default: false\n },\n transform: {\n type: [String, Object],\n default: null\n },\n symbol: {\n type: [Boolean, String],\n default: false\n },\n title: {\n type: String,\n default: null\n },\n titleId: {\n type: String,\n default: null\n },\n inverse: {\n type: Boolean,\n default: false\n },\n bounce: {\n type: Boolean,\n default: false\n },\n shake: {\n type: Boolean,\n default: false\n },\n beat: {\n type: Boolean,\n default: false\n },\n fade: {\n type: Boolean,\n default: false\n },\n beatFade: {\n type: Boolean,\n default: false\n },\n flash: {\n type: Boolean,\n default: false\n },\n spinPulse: {\n type: Boolean,\n default: false\n },\n spinReverse: {\n type: Boolean,\n default: false\n },\n // the widthAuto property is only supported in version 7.0.0 and later\n widthAuto: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var icon$1 = computed(function () {\n return normalizeIconArgs(props.icon);\n });\n var classes = computed(function () {\n return objectWithKey('classes', classList(props));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var mask = computed(function () {\n return objectWithKey('mask', normalizeIconArgs(props.mask));\n });\n var renderedIcon = computed(function () {\n var iconProps = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes.value), transform.value), mask.value), {}, {\n symbol: props.symbol,\n maskId: props.maskId\n });\n\n // the title attribute will only apply to versions prior to version 7.0.0\n iconProps.title = props.title;\n iconProps.titleId = props.titleId;\n return icon(icon$1.value, iconProps);\n });\n watch(renderedIcon, function (value) {\n if (!value) {\n return log('Could not find one or more icon(s)', icon$1.value, mask.value);\n }\n }, {\n immediate: true\n });\n var vnode = computed(function () {\n return renderedIcon.value ? convert(renderedIcon.value.abstract[0], {}, attrs) : null;\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nvar FontAwesomeLayers = defineComponent({\n name: 'FontAwesomeLayers',\n props: {\n fixedWidth: {\n type: Boolean,\n default: false\n }\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n var familyPrefix = config.familyPrefix;\n var className = computed(function () {\n return [\"\".concat(familyPrefix, \"-layers\")].concat(_toConsumableArray(props.fixedWidth ? [\"\".concat(familyPrefix, \"-fw\")] : []));\n });\n return function () {\n return h('div', {\n class: className.value\n }, slots.default ? slots.default() : []);\n };\n }\n});\n\nvar FontAwesomeLayersText = defineComponent({\n name: 'FontAwesomeLayersText',\n props: {\n value: {\n type: [String, Number],\n default: ''\n },\n transform: {\n type: [String, Object],\n default: null\n },\n counter: {\n type: Boolean,\n default: false\n },\n position: {\n type: String,\n default: null,\n validator: function validator(value) {\n return ['bottom-left', 'bottom-right', 'top-left', 'top-right'].indexOf(value) > -1;\n }\n }\n },\n setup: function setup(props, _ref) {\n var attrs = _ref.attrs;\n var familyPrefix = config.familyPrefix;\n var classes = computed(function () {\n return objectWithKey('classes', [].concat(_toConsumableArray(props.counter ? [\"\".concat(familyPrefix, \"-layers-counter\")] : []), _toConsumableArray(props.position ? [\"\".concat(familyPrefix, \"-layers-\").concat(props.position)] : [])));\n });\n var transform = computed(function () {\n return objectWithKey('transform', typeof props.transform === 'string' ? parse.transform(props.transform) : props.transform);\n });\n var abstractElement = computed(function () {\n var _text = text(props.value.toString(), _objectSpread2(_objectSpread2({}, transform.value), classes.value)),\n abstract = _text.abstract;\n if (props.counter) {\n abstract[0].attributes.class = abstract[0].attributes.class.replace('fa-layers-text', '');\n }\n return abstract[0];\n });\n var vnode = computed(function () {\n return convert(abstractElement.value, {}, attrs);\n });\n return function () {\n return vnode.value;\n };\n }\n});\n\nexport { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText };\n","\n\n\n","/*!\n * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2025 Fonticons, Inc.\n */\nvar prefix = \"fas\";\nvar fa0 = {\n prefix: 'fas',\n iconName: '0',\n icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n prefix: 'fas',\n iconName: '1',\n icon: [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar fa2 = {\n prefix: 'fas',\n iconName: '2',\n icon: [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"]\n};\nvar fa3 = {\n prefix: 'fas',\n iconName: '3',\n icon: [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"]\n};\nvar fa4 = {\n prefix: 'fas',\n iconName: '4',\n icon: [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"]\n};\nvar fa5 = {\n prefix: 'fas',\n iconName: '5',\n icon: [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"]\n};\nvar fa6 = {\n prefix: 'fas',\n iconName: '6',\n icon: [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar fa7 = {\n prefix: 'fas',\n iconName: '7',\n icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n prefix: 'fas',\n iconName: '8',\n icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n prefix: 'fas',\n iconName: '9',\n icon: [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"]\n};\nvar faDollarSign = {\n prefix: 'fas',\n iconName: 'dollar-sign',\n icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faDog = {\n prefix: 'fas',\n iconName: 'dog',\n icon: [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faTruckMoving = {\n prefix: 'fas',\n iconName: 'truck-moving',\n icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faRotate = {\n prefix: 'fas',\n iconName: 'rotate',\n icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSquareMinus = {\n prefix: 'fas',\n iconName: 'square-minus',\n icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faAlignJustify = {\n prefix: 'fas',\n iconName: 'align-justify',\n icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faCalendarCheck = {\n prefix: 'fas',\n iconName: 'calendar-check',\n icon: [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faFaceKiss = {\n prefix: 'fas',\n iconName: 'face-kiss',\n icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faKitchenSet = {\n prefix: 'fas',\n iconName: 'kitchen-set',\n icon: [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faDna = {\n prefix: 'fas',\n iconName: 'dna',\n icon: [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"]\n};\nvar faChildReaching = {\n prefix: 'fas',\n iconName: 'child-reaching',\n icon: [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faPaste = {\n prefix: 'fas',\n iconName: 'paste',\n icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"]\n};\nvar faFileClipboard = faPaste;\nvar faMeteor = {\n prefix: 'fas',\n iconName: 'meteor',\n icon: [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faGears = {\n prefix: 'fas',\n iconName: 'gears',\n icon: [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"]\n};\nvar faCogs = faGears;\nvar faFileCirclePlus = {\n prefix: 'fas',\n iconName: 'file-circle-plus',\n icon: [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faIcicles = {\n prefix: 'fas',\n iconName: 'icicles',\n icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faArrowTrendUp = {\n prefix: 'fas',\n iconName: 'arrow-trend-up',\n icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"]\n};\nvar faHexagonNodesBolt = {\n prefix: 'fas',\n iconName: 'hexagon-nodes-bolt',\n icon: [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faQuestion = {\n prefix: 'fas',\n iconName: 'question',\n icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"]\n};\nvar faHandsBound = {\n prefix: 'fas',\n iconName: 'hands-bound',\n icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"]\n};\nvar faPersonWalkingLuggage = {\n prefix: 'fas',\n iconName: 'person-walking-luggage',\n icon: [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"]\n};\nvar faFileArrowDown = {\n prefix: 'fas',\n iconName: 'file-arrow-down',\n icon: [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faPersonBooth = {\n prefix: 'fas',\n iconName: 'person-booth',\n icon: [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"]\n};\nvar faLocust = {\n prefix: 'fas',\n iconName: 'locust',\n icon: [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"]\n};\nvar faRightLong = {\n prefix: 'fas',\n iconName: 'right-long',\n icon: [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faTruckDroplet = {\n prefix: 'fas',\n iconName: 'truck-droplet',\n icon: [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"]\n};\nvar faHandHoldingMedical = {\n prefix: 'fas',\n iconName: 'hand-holding-medical',\n icon: [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faHandPointLeft = {\n prefix: 'fas',\n iconName: 'hand-point-left',\n icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nvar faCalculator = {\n prefix: 'fas',\n iconName: 'calculator',\n icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faMinus = {\n prefix: 'fas',\n iconName: 'minus',\n icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSubtract = faMinus;\nvar faArrowUpZA = {\n prefix: 'fas',\n iconName: 'arrow-up-z-a',\n icon: [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faMicrophoneSlash = {\n prefix: 'fas',\n iconName: 'microphone-slash',\n icon: [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"]\n};\nvar faSquarePen = {\n prefix: 'fas',\n iconName: 'square-pen',\n icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faHandFist = {\n prefix: 'fas',\n iconName: 'hand-fist',\n icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCommentSms = {\n prefix: 'fas',\n iconName: 'comment-sms',\n icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"]\n};\nvar faSms = faCommentSms;\nvar faSimCard = {\n prefix: 'fas',\n iconName: 'sim-card',\n icon: [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"]\n};\nvar faScaleBalanced = {\n prefix: 'fas',\n iconName: 'scale-balanced',\n icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faCar = {\n prefix: 'fas',\n iconName: 'car',\n icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAutomobile = faCar;\nvar faCropSimple = {\n prefix: 'fas',\n iconName: 'crop-simple',\n icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMedal = {\n prefix: 'fas',\n iconName: 'medal',\n icon: [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"]\n};\nvar faScroll = {\n prefix: 'fas',\n iconName: 'scroll',\n icon: [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"]\n};\nvar faFileExcel = {\n prefix: 'fas',\n iconName: 'file-excel',\n icon: [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"]\n};\nvar faFilter = {\n prefix: 'fas',\n iconName: 'filter',\n icon: [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"]\n};\nvar faDrum = {\n prefix: 'fas',\n iconName: 'drum',\n icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faMapPin = {\n prefix: 'fas',\n iconName: 'map-pin',\n icon: [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faScaleUnbalancedFlip = {\n prefix: 'fas',\n iconName: 'scale-unbalanced-flip',\n icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faArrowsToCircle = {\n prefix: 'fas',\n iconName: 'arrows-to-circle',\n icon: [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"]\n};\nvar faEnvelope = {\n prefix: 'fas',\n iconName: 'envelope',\n icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"]\n};\nvar faBaby = {\n prefix: 'fas',\n iconName: 'baby',\n icon: [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"]\n};\nvar faSquareCaretDown = {\n prefix: 'fas',\n iconName: 'square-caret-down',\n icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTent = {\n prefix: 'fas',\n iconName: 'tent',\n icon: [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"]\n};\nvar faA = {\n prefix: 'fas',\n iconName: 'a',\n icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"]\n};\nvar faParachuteBox = {\n prefix: 'fas',\n iconName: 'parachute-box',\n icon: [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"]\n};\nvar faCartArrowDown = {\n prefix: 'fas',\n iconName: 'cart-arrow-down',\n icon: [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faBridgeCircleExclamation = {\n prefix: 'fas',\n iconName: 'bridge-circle-exclamation',\n icon: [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCloudArrowUp = {\n prefix: 'fas',\n iconName: 'cloud-arrow-up',\n icon: [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faAt = {\n prefix: 'fas',\n iconName: 'at',\n icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faIndianRupeeSign = {\n prefix: 'fas',\n iconName: 'indian-rupee-sign',\n icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faTruck = {\n prefix: 'fas',\n iconName: 'truck',\n icon: [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faChalkboardUser = {\n prefix: 'fas',\n iconName: 'chalkboard-user',\n icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M128 96c0-35.3 28.7-64 64-64l352 0c35.3 0 64 28.7 64 64l0 240-96 0 0-16c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 16-129.1 0c10.9-18.8 17.1-40.7 17.1-64 0-70.7-57.3-128-128-128-5.4 0-10.8 .3-16 1l0-49zM333 448c-5.1-24.2-16.3-46.1-32.1-64L608 384c0 35.3-28.7 64-64 64l-211 0zM64 272a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM0 480c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faUserCheck = {\n prefix: 'fas',\n iconName: 'user-check',\n icon: [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserNinja = {\n prefix: 'fas',\n iconName: 'user-ninja',\n icon: [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"]\n};\nvar faPlantWilt = {\n prefix: 'fas',\n iconName: 'plant-wilt',\n icon: [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"]\n};\nvar faWeightScale = {\n prefix: 'fas',\n iconName: 'weight-scale',\n icon: [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"]\n};\nvar faWeight = faWeightScale;\nvar faCaretRight = {\n prefix: 'fas',\n iconName: 'caret-right',\n icon: [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"]\n};\nvar faFlorinSign = {\n prefix: 'fas',\n iconName: 'florin-sign',\n icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"]\n};\nvar faBell = {\n prefix: 'fas',\n iconName: 'bell',\n icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"]\n};\nvar faLariSign = {\n prefix: 'fas',\n iconName: 'lari-sign',\n icon: [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"]\n};\nvar faMillSign = {\n prefix: 'fas',\n iconName: 'mill-sign',\n icon: [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"]\n};\nvar faPersonSnowboarding = {\n prefix: 'fas',\n iconName: 'person-snowboarding',\n icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTty = {\n prefix: 'fas',\n iconName: 'tty',\n icon: [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faTeletype = faTty;\nvar faUsersRectangle = {\n prefix: 'fas',\n iconName: 'users-rectangle',\n icon: [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faMobile = {\n prefix: 'fas',\n iconName: 'mobile',\n icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faArrowsTurnToDots = {\n prefix: 'fas',\n iconName: 'arrows-turn-to-dots',\n icon: [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"]\n};\nvar faExclamation = {\n prefix: 'fas',\n iconName: 'exclamation',\n icon: [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"]\n};\nvar faChurch = {\n prefix: 'fas',\n iconName: 'church',\n icon: [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faToggleOff = {\n prefix: 'fas',\n iconName: 'toggle-off',\n icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faShoePrints = {\n prefix: 'fas',\n iconName: 'shoe-prints',\n icon: [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"]\n};\nvar faFileCircleExclamation = {\n prefix: 'fas',\n iconName: 'file-circle-exclamation',\n icon: [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faWallet = {\n prefix: 'fas',\n iconName: 'wallet',\n icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMessage = {\n prefix: 'fas',\n iconName: 'message',\n icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"]\n};\nvar faCommentAlt = faMessage;\nvar faTrophy = {\n prefix: 'fas',\n iconName: 'trophy',\n icon: [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"]\n};\nvar faFaceDizzy = {\n prefix: 'fas',\n iconName: 'face-dizzy',\n icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faBacteria = {\n prefix: 'fas',\n iconName: 'bacteria',\n icon: [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faEarDeaf = {\n prefix: 'fas',\n iconName: 'ear-deaf',\n icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faPeopleArrows = {\n prefix: 'fas',\n iconName: 'people-arrows',\n icon: [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faHandsClapping = {\n prefix: 'fas',\n iconName: 'hands-clapping',\n icon: [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"]\n};\nvar faVirusCovidSlash = {\n prefix: 'fas',\n iconName: 'virus-covid-slash',\n icon: [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"]\n};\nvar faCalendarDays = {\n prefix: 'fas',\n iconName: 'calendar-days',\n icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faDiamondTurnRight = {\n prefix: 'fas',\n iconName: 'diamond-turn-right',\n icon: [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faHandPointUp = {\n prefix: 'fas',\n iconName: 'hand-point-up',\n icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faBezierCurve = {\n prefix: 'fas',\n iconName: 'bezier-curve',\n icon: [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"]\n};\nvar faPersonHalfDress = {\n prefix: 'fas',\n iconName: 'person-half-dress',\n icon: [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"]\n};\nvar faSquarePollHorizontal = {\n prefix: 'fas',\n iconName: 'square-poll-horizontal',\n icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faSchoolCircleXmark = {\n prefix: 'fas',\n iconName: 'school-circle-xmark',\n icon: [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHandLizard = {\n prefix: 'fas',\n iconName: 'hand-lizard',\n icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"]\n};\nvar faChalkboard = {\n prefix: 'fas',\n iconName: 'chalkboard',\n icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'up-right-from-square',\n icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faSquareFull = {\n prefix: 'fas',\n iconName: 'square-full',\n icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faClover = {\n prefix: 'fas',\n iconName: 'clover',\n icon: [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"]\n};\nvar faTeethOpen = {\n prefix: 'fas',\n iconName: 'teeth-open',\n icon: [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"]\n};\nvar faBarsStaggered = {\n prefix: 'fas',\n iconName: 'bars-staggered',\n icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faWarehouse = {\n prefix: 'fas',\n iconName: 'warehouse',\n icon: [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"]\n};\nvar faSwatchbook = {\n prefix: 'fas',\n iconName: 'swatchbook',\n icon: [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faCampground = {\n prefix: 'fas',\n iconName: 'campground',\n icon: [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"]\n};\nvar faPersonWalkingArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-right',\n icon: [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"]\n};\nvar faGlasses = {\n prefix: 'fas',\n iconName: 'glasses',\n icon: [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"]\n};\nvar faCirclePause = {\n prefix: 'fas',\n iconName: 'circle-pause',\n icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faMemory = {\n prefix: 'fas',\n iconName: 'memory',\n icon: [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faGift = {\n prefix: 'fas',\n iconName: 'gift',\n icon: [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"]\n};\nvar faMoneyBillWheat = {\n prefix: 'fas',\n iconName: 'money-bill-wheat',\n icon: [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faDungeon = {\n prefix: 'fas',\n iconName: 'dungeon',\n icon: [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"]\n};\nvar faSuitcaseMedical = {\n prefix: 'fas',\n iconName: 'suitcase-medical',\n icon: [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faPersonCane = {\n prefix: 'fas',\n iconName: 'person-cane',\n icon: [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"]\n};\nvar faGauge = {\n prefix: 'fas',\n iconName: 'gauge',\n icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faEnvelopeOpenText = {\n prefix: 'fas',\n iconName: 'envelope-open-text',\n icon: [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"]\n};\nvar faToolbox = {\n prefix: 'fas',\n iconName: 'toolbox',\n icon: [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"]\n};\nvar faPowerOff = {\n prefix: 'fas',\n iconName: 'power-off',\n icon: [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"]\n};\nvar faSignal = {\n prefix: 'fas',\n iconName: 'signal',\n icon: [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faArrowsSpin = {\n prefix: 'fas',\n iconName: 'arrows-spin',\n icon: [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"]\n};\nvar faJoint = {\n prefix: 'fas',\n iconName: 'joint',\n icon: [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"]\n};\nvar faBraille = {\n prefix: 'fas',\n iconName: 'braille',\n icon: [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faBasketShopping = {\n prefix: 'fas',\n iconName: 'basket-shopping',\n icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faBridge = {\n prefix: 'fas',\n iconName: 'bridge',\n icon: [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"]\n};\nvar faPlaneArrival = {\n prefix: 'fas',\n iconName: 'plane-arrival',\n icon: [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"]\n};\nvar faCashRegister = {\n prefix: 'fas',\n iconName: 'cash-register',\n icon: [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faRing = {\n prefix: 'fas',\n iconName: 'ring',\n icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"]\n};\nvar faShareNodes = {\n prefix: 'fas',\n iconName: 'share-nodes',\n icon: [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faPersonCircleExclamation = {\n prefix: 'fas',\n iconName: 'person-circle-exclamation',\n icon: [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faBinoculars = {\n prefix: 'fas',\n iconName: 'binoculars',\n icon: [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"]\n};\nvar faKipSign = {\n prefix: 'fas',\n iconName: 'kip-sign',\n icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"]\n};\nvar faHardDrive = {\n prefix: 'fas',\n iconName: 'hard-drive',\n icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHdd = faHardDrive;\nvar faRankingStar = {\n prefix: 'fas',\n iconName: 'ranking-star',\n icon: [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"]\n};\nvar faUserTie = {\n prefix: 'fas',\n iconName: 'user-tie',\n icon: [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"]\n};\nvar faEllipsis = {\n prefix: 'fas',\n iconName: 'ellipsis',\n icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faStoreSlash = {\n prefix: 'fas',\n iconName: 'store-slash',\n icon: [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"]\n};\nvar faPercent = {\n prefix: 'fas',\n iconName: 'percent',\n icon: [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"]\n};\nvar faPercentage = faPercent;\nvar faFileZipper = {\n prefix: 'fas',\n iconName: 'file-zipper',\n icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faDisplay = {\n prefix: 'fas',\n iconName: 'display',\n icon: [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faIcons = {\n prefix: 'fas',\n iconName: 'icons',\n icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faRulerVertical = {\n prefix: 'fas',\n iconName: 'ruler-vertical',\n icon: [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"]\n};\nvar faMapLocationDot = {\n prefix: 'fas',\n iconName: 'map-location-dot',\n icon: [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faHeartCrack = {\n prefix: 'fas',\n iconName: 'heart-crack',\n icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faCow = {\n prefix: 'fas',\n iconName: 'cow',\n icon: [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faRss = {\n prefix: 'fas',\n iconName: 'rss',\n icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faMagnifyingGlass = {\n prefix: 'fas',\n iconName: 'magnifying-glass',\n icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faCloudMoon = {\n prefix: 'fas',\n iconName: 'cloud-moon',\n icon: [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBoxesStacked = {\n prefix: 'fas',\n iconName: 'boxes-stacked',\n icon: [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faCodeBranch = {\n prefix: 'fas',\n iconName: 'code-branch',\n icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBan = {\n prefix: 'fas',\n iconName: 'ban',\n icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faCancel = faBan;\nvar faJugDetergent = {\n prefix: 'fas',\n iconName: 'jug-detergent',\n icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faReply = {\n prefix: 'fas',\n iconName: 'reply',\n icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"]\n};\nvar faMailReply = faReply;\nvar faSunPlantWilt = {\n prefix: 'fas',\n iconName: 'sun-plant-wilt',\n icon: [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacterium = {\n prefix: 'fas',\n iconName: 'bacterium',\n icon: [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRecordVinyl = {\n prefix: 'fas',\n iconName: 'record-vinyl',\n icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFloppyDisk = {\n prefix: 'fas',\n iconName: 'floppy-disk',\n icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSave = faFloppyDisk;\nvar faToiletsPortable = {\n prefix: 'fas',\n iconName: 'toilets-portable',\n icon: [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faO = {\n prefix: 'fas',\n iconName: 'o',\n icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"]\n};\nvar faPalette = {\n prefix: 'fas',\n iconName: 'palette',\n icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUnlock = {\n prefix: 'fas',\n iconName: 'unlock',\n icon: [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"]\n};\nvar faEarListen = {\n prefix: 'fas',\n iconName: 'ear-listen',\n icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faCodePullRequest = {\n prefix: 'fas',\n iconName: 'code-pull-request',\n icon: [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faKey = {\n prefix: 'fas',\n iconName: 'key',\n icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSkull = {\n prefix: 'fas',\n iconName: 'skull',\n icon: [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMarsStrokeUp = {\n prefix: 'fas',\n iconName: 'mars-stroke-up',\n icon: [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faFireFlameSimple = {\n prefix: 'fas',\n iconName: 'fire-flame-simple',\n icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faTree = {\n prefix: 'fas',\n iconName: 'tree',\n icon: [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"]\n};\nvar faSmog = {\n prefix: 'fas',\n iconName: 'smog',\n icon: [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faS = {\n prefix: 'fas',\n iconName: 's',\n icon: [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"]\n};\nvar faJedi = {\n prefix: 'fas',\n iconName: 'jedi',\n icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faPersonHiking = {\n prefix: 'fas',\n iconName: 'person-hiking',\n icon: [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nvar faHiking = faPersonHiking;\nvar faArrowsUpToLine = {\n prefix: 'fas',\n iconName: 'arrows-up-to-line',\n icon: [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faMarsDouble = {\n prefix: 'fas',\n iconName: 'mars-double',\n icon: [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"]\n};\nvar faThermometer = {\n prefix: 'fas',\n iconName: 'thermometer',\n icon: [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"]\n};\nvar faPaintbrush = {\n prefix: 'fas',\n iconName: 'paintbrush',\n icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faNeuter = {\n prefix: 'fas',\n iconName: 'neuter',\n icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"]\n};\nvar faSquarePhoneFlip = {\n prefix: 'fas',\n iconName: 'square-phone-flip',\n icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faFaceGrinTongueSquint = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-squint',\n icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCommentDollar = {\n prefix: 'fas',\n iconName: 'comment-dollar',\n icon: [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faHippo = {\n prefix: 'fas',\n iconName: 'hippo',\n icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faBowlFood = {\n prefix: 'fas',\n iconName: 'bowl-food',\n icon: [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faSquareVirus = {\n prefix: 'fas',\n iconName: 'square-virus',\n icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCloudSunRain = {\n prefix: 'fas',\n iconName: 'cloud-sun-rain',\n icon: [576, 512, [127782], \"f743\", \"M303.2-3.2c-1.1-5.2-4.6-9.5-9.5-11.6s-10.5-1.5-14.9 1.4L208 33.6 137.3-13.3c-4.4-2.9-10-3.5-14.9-1.4s-8.5 6.4-9.5 11.6L96 80 12.8 96.8c-5.2 1.1-9.5 4.6-11.6 9.5s-1.5 10.5 1.4 14.9L49.6 192 2.7 262.7c-2.9 4.4-3.5 10-1.4 14.9s6.4 8.5 11.6 9.5L96 304 112.8 387.2c1.1 5.2 4.6 9.5 9.5 11.6s10.5 1.5 14.9-1.4l67.3-44.6c-15.8-19.4-26-43.5-28.2-69.9-37.5-13.1-64.4-48.7-64.4-90.7 0-53 43-96 96-96 21.7 0 41.8 7.2 57.8 19.4 15.5-17.6 36.9-30 61.1-34L320 80 303.2-3.2zM243 159.1c-8.8-9.3-21.2-15.1-35-15.1-26.5 0-48 21.5-48 48 0 17 8.9 32 22.2 40.5 10.2-31.4 32.1-57.4 60.7-73l.1-.4zM304 352l192 0c44.2 0 80-35.8 80-80 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-30.8 0-57.5 17.4-70.9 42.8-9.3-6.8-20.7-10.8-33.1-10.8-30.9 0-56 25.1-56 56 0 3.2 .3 6.4 .8 9.4-36.9 7.1-64.8 39.6-64.8 78.6 0 44.2 35.8 80 80 80zm-19 49.1c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"]\n};\nvar faArrowRightLong = {\n prefix: 'fas',\n iconName: 'arrow-right-long',\n icon: [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faBuildingUn = {\n prefix: 'fas',\n iconName: 'building-un',\n icon: [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faTemperatureLow = {\n prefix: 'fas',\n iconName: 'temperature-low',\n icon: [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faDoorOpen = {\n prefix: 'fas',\n iconName: 'door-open',\n icon: [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faAlignLeft = {\n prefix: 'fas',\n iconName: 'align-left',\n icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCamera = {\n prefix: 'fas',\n iconName: 'camera',\n icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faCameraAlt = faCamera;\nvar faUsersRays = {\n prefix: 'fas',\n iconName: 'users-rays',\n icon: [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"]\n};\nvar faRainbow = {\n prefix: 'fas',\n iconName: 'rainbow',\n icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faSitemap = {\n prefix: 'fas',\n iconName: 'sitemap',\n icon: [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faFaceGrinStars = {\n prefix: 'fas',\n iconName: 'face-grin-stars',\n icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faSortUp = {\n prefix: 'fas',\n iconName: 'sort-up',\n icon: [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"]\n};\nvar faSortAsc = faSortUp;\nvar faEye = {\n prefix: 'fas',\n iconName: 'eye',\n icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"]\n};\nvar faCaretLeft = {\n prefix: 'fas',\n iconName: 'caret-left',\n icon: [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"]\n};\nvar faAppleWhole = {\n prefix: 'fas',\n iconName: 'apple-whole',\n icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faScrollTorah = {\n prefix: 'fas',\n iconName: 'scroll-torah',\n icon: [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTorah = faScrollTorah;\nvar faHouseLock = {\n prefix: 'fas',\n iconName: 'house-lock',\n icon: [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"]\n};\nvar faArrowsLeftRightToLine = {\n prefix: 'fas',\n iconName: 'arrows-left-right-to-line',\n icon: [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"]\n};\nvar faTrash = {\n prefix: 'fas',\n iconName: 'trash',\n icon: [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"]\n};\nvar faFaceSadTear = {\n prefix: 'fas',\n iconName: 'face-sad-tear',\n icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faFax = {\n prefix: 'fas',\n iconName: 'fax',\n icon: [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faPersonCirclePlus = {\n prefix: 'fas',\n iconName: 'person-circle-plus',\n icon: [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHamsa = {\n prefix: 'fas',\n iconName: 'hamsa',\n icon: [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonCircleQuestion = {\n prefix: 'fas',\n iconName: 'person-circle-question',\n icon: [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faClipboardCheck = {\n prefix: 'fas',\n iconName: 'clipboard-check',\n icon: [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"]\n};\nvar faShareFromSquare = {\n prefix: 'fas',\n iconName: 'share-from-square',\n icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faReceipt = {\n prefix: 'fas',\n iconName: 'receipt',\n icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faEquals = {\n prefix: 'fas',\n iconName: 'equals',\n icon: [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"]\n};\nvar faChevronUp = {\n prefix: 'fas',\n iconName: 'chevron-up',\n icon: [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faVirusSlash = {\n prefix: 'fas',\n iconName: 'virus-slash',\n icon: [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"]\n};\nvar faSlash = {\n prefix: 'fas',\n iconName: 'slash',\n icon: [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"]\n};\nvar faExpand = {\n prefix: 'fas',\n iconName: 'expand',\n icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"]\n};\nvar faNoteSticky = {\n prefix: 'fas',\n iconName: 'note-sticky',\n icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faTableColumns = {\n prefix: 'fas',\n iconName: 'table-columns',\n icon: [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"]\n};\nvar faColumns = faTableColumns;\nvar faPersonShelter = {\n prefix: 'fas',\n iconName: 'person-shelter',\n icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"]\n};\nvar faCircleNotch = {\n prefix: 'fas',\n iconName: 'circle-notch',\n icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faWater = {\n prefix: 'fas',\n iconName: 'water',\n icon: [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faDeleteLeft = {\n prefix: 'fas',\n iconName: 'delete-left',\n icon: [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faBroomBall = {\n prefix: 'fas',\n iconName: 'broom-ball',\n icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faJ = {\n prefix: 'fas',\n iconName: 'j',\n icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"]\n};\nvar faShuttleSpace = {\n prefix: 'fas',\n iconName: 'shuttle-space',\n icon: [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faYinYang = {\n prefix: 'fas',\n iconName: 'yin-yang',\n icon: [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faStop = {\n prefix: 'fas',\n iconName: 'stop',\n icon: [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faTrowel = {\n prefix: 'fas',\n iconName: 'trowel',\n icon: [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faHandBackFist = {\n prefix: 'fas',\n iconName: 'hand-back-fist',\n icon: [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faTemperatureHigh = {\n prefix: 'fas',\n iconName: 'temperature-high',\n icon: [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faGreaterThan = {\n prefix: 'fas',\n iconName: 'greater-than',\n icon: [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"]\n};\nvar faCrutch = {\n prefix: 'fas',\n iconName: 'crutch',\n icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"]\n};\nvar faSeptagon = {\n prefix: 'fas',\n iconName: 'septagon',\n icon: [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"]\n};\nvar faHeptagon = faSeptagon;\nvar faStreetView = {\n prefix: 'fas',\n iconName: 'street-view',\n icon: [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"]\n};\nvar faWaveSquare = {\n prefix: 'fas',\n iconName: 'wave-square',\n icon: [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"]\n};\nvar faAngleLeft = {\n prefix: 'fas',\n iconName: 'angle-left',\n icon: [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faScrewdriver = {\n prefix: 'fas',\n iconName: 'screwdriver',\n icon: [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"]\n};\nvar faTractor = {\n prefix: 'fas',\n iconName: 'tractor',\n icon: [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"]\n};\nvar faBridgeCircleXmark = {\n prefix: 'fas',\n iconName: 'bridge-circle-xmark',\n icon: [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faVials = {\n prefix: 'fas',\n iconName: 'vials',\n icon: [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"]\n};\nvar faStethoscope = {\n prefix: 'fas',\n iconName: 'stethoscope',\n icon: [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPodcast = {\n prefix: 'fas',\n iconName: 'podcast',\n icon: [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faArrowUpRightDots = {\n prefix: 'fas',\n iconName: 'arrow-up-right-dots',\n icon: [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"]\n};\nvar faChessQueen = {\n prefix: 'fas',\n iconName: 'chess-queen',\n icon: [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"]\n};\nvar faAnchorCircleExclamation = {\n prefix: 'fas',\n iconName: 'anchor-circle-exclamation',\n icon: [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faEllipsisVertical = {\n prefix: 'fas',\n iconName: 'ellipsis-vertical',\n icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faHeartCircleExclamation = {\n prefix: 'fas',\n iconName: 'heart-circle-exclamation',\n icon: [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBuildingCircleExclamation = {\n prefix: 'fas',\n iconName: 'building-circle-exclamation',\n icon: [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPersonArrowUpFromLine = {\n prefix: 'fas',\n iconName: 'person-arrow-up-from-line',\n icon: [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"]\n};\nvar faNotEqual = {\n prefix: 'fas',\n iconName: 'not-equal',\n icon: [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"]\n};\nvar faTrainTram = {\n prefix: 'fas',\n iconName: 'train-tram',\n icon: [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPlaneDeparture = {\n prefix: 'fas',\n iconName: 'plane-departure',\n icon: [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"]\n};\nvar faRightToBracket = {\n prefix: 'fas',\n iconName: 'right-to-bracket',\n icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faSdCard = {\n prefix: 'fas',\n iconName: 'sd-card',\n icon: [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHouseCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-circle-exclamation',\n icon: [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faShekelSign = {\n prefix: 'fas',\n iconName: 'shekel-sign',\n icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faRadio = {\n prefix: 'fas',\n iconName: 'radio',\n icon: [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"]\n};\nvar faHandDots = {\n prefix: 'fas',\n iconName: 'hand-dots',\n icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faAllergies = faHandDots;\nvar faBookSkull = {\n prefix: 'fas',\n iconName: 'book-skull',\n icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"]\n};\nvar faBookDead = faBookSkull;\nvar faUnlockKeyhole = {\n prefix: 'fas',\n iconName: 'unlock-keyhole',\n icon: [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faFileArrowUp = {\n prefix: 'fas',\n iconName: 'file-arrow-up',\n icon: [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faFaceGrinTears = {\n prefix: 'fas',\n iconName: 'face-grin-tears',\n icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n prefix: 'fas',\n iconName: 'pen-to-square',\n icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faEarthEurope = {\n prefix: 'fas',\n iconName: 'earth-europe',\n icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faFaceGrinBeamSweat = {\n prefix: 'fas',\n iconName: 'face-grin-beam-sweat',\n icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faCircleHalfStroke = {\n prefix: 'fas',\n iconName: 'circle-half-stroke',\n icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faPersonMilitaryToPerson = {\n prefix: 'fas',\n iconName: 'person-military-to-person',\n icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faTableCellsColumnLock = {\n prefix: 'fas',\n iconName: 'table-cells-column-lock',\n icon: [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faTruckFieldUn = {\n prefix: 'fas',\n iconName: 'truck-field-un',\n icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faClock = {\n prefix: 'fas',\n iconName: 'clock',\n icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBook = {\n prefix: 'fas',\n iconName: 'book',\n icon: [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faFaceLaughWink = {\n prefix: 'fas',\n iconName: 'face-laugh-wink',\n icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCloudMeatball = {\n prefix: 'fas',\n iconName: 'cloud-meatball',\n icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faChartArea = {\n prefix: 'fas',\n iconName: 'chart-area',\n icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"]\n};\nvar faAreaChart = faChartArea;\nvar faRupiahSign = {\n prefix: 'fas',\n iconName: 'rupiah-sign',\n icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"]\n};\nvar faTextWidth = {\n prefix: 'fas',\n iconName: 'text-width',\n icon: [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"]\n};\nvar faSatellite = {\n prefix: 'fas',\n iconName: 'satellite',\n icon: [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"]\n};\nvar faMagnifyingGlassMinus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-minus',\n icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faPeopleGroup = {\n prefix: 'fas',\n iconName: 'people-group',\n icon: [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faSquareBinary = {\n prefix: 'fas',\n iconName: 'square-binary',\n icon: [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"]\n};\nvar faMasksTheater = {\n prefix: 'fas',\n iconName: 'masks-theater',\n icon: [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faCartPlus = {\n prefix: 'fas',\n iconName: 'cart-plus',\n icon: [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"]\n};\nvar faHandsAslInterpreting = {\n prefix: 'fas',\n iconName: 'hands-asl-interpreting',\n icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faTableCellsRowUnlock = {\n prefix: 'fas',\n iconName: 'table-cells-row-unlock',\n icon: [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"]\n};\nvar faRocket = {\n prefix: 'fas',\n iconName: 'rocket',\n icon: [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faShrimp = {\n prefix: 'fas',\n iconName: 'shrimp',\n icon: [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTengeSign = {\n prefix: 'fas',\n iconName: 'tenge-sign',\n icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHouseChimneyMedical = {\n prefix: 'fas',\n iconName: 'house-chimney-medical',\n icon: [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faUsersSlash = {\n prefix: 'fas',\n iconName: 'users-slash',\n icon: [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faPaperPlane = {\n prefix: 'fas',\n iconName: 'paper-plane',\n icon: [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"]\n};\nvar faBookAtlas = {\n prefix: 'fas',\n iconName: 'book-atlas',\n icon: [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faTable = {\n prefix: 'fas',\n iconName: 'table',\n icon: [448, 512, [], \"f0ce\", \"M256 160l0 96 128 0 0-96-128 0zm-64 0l-128 0 0 96 128 0 0-96zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm384 0l-128 0 0 96 128 0 0-96zM192 416l0-96-128 0 0 96 128 0z\"]\n};\nvar faHeart = {\n prefix: 'fas',\n iconName: 'heart',\n icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"]\n};\nvar faCircleChevronUp = {\n prefix: 'fas',\n iconName: 'circle-chevron-up',\n icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faBatteryHalf = {\n prefix: 'fas',\n iconName: 'battery-half',\n icon: [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faFontAwesome = {\n prefix: 'fas',\n iconName: 'font-awesome',\n icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faHandcuffs = {\n prefix: 'fas',\n iconName: 'handcuffs',\n icon: [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHatCowboySide = {\n prefix: 'fas',\n iconName: 'hat-cowboy-side',\n icon: [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"]\n};\nvar faIndustry = {\n prefix: 'fas',\n iconName: 'industry',\n icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar faLinesLeaning = {\n prefix: 'fas',\n iconName: 'lines-leaning',\n icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"]\n};\nvar faPassport = {\n prefix: 'fas',\n iconName: 'passport',\n icon: [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faInfinity = {\n prefix: 'fas',\n iconName: 'infinity',\n icon: [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"]\n};\nvar faClone = {\n prefix: 'fas',\n iconName: 'clone',\n icon: [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"]\n};\nvar faForward = {\n prefix: 'fas',\n iconName: 'forward',\n icon: [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"]\n};\nvar faM = {\n prefix: 'fas',\n iconName: 'm',\n icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faRoadSpikes = {\n prefix: 'fas',\n iconName: 'road-spikes',\n icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMountain = {\n prefix: 'fas',\n iconName: 'mountain',\n icon: [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"]\n};\nvar faChess = {\n prefix: 'fas',\n iconName: 'chess',\n icon: [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"]\n};\nvar faTemperatureThreeQuarters = {\n prefix: 'fas',\n iconName: 'temperature-three-quarters',\n icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faB = {\n prefix: 'fas',\n iconName: 'b',\n icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"]\n};\nvar faShieldVirus = {\n prefix: 'fas',\n iconName: 'shield-virus',\n icon: [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faLitecoinSign = {\n prefix: 'fas',\n iconName: 'litecoin-sign',\n icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"]\n};\nvar faDiceD6 = {\n prefix: 'fas',\n iconName: 'dice-d6',\n icon: [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"]\n};\nvar faGripLinesVertical = {\n prefix: 'fas',\n iconName: 'grip-lines-vertical',\n icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"]\n};\nvar faGolfBallTee = {\n prefix: 'fas',\n iconName: 'golf-ball-tee',\n icon: [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faHexagon = {\n prefix: 'fas',\n iconName: 'hexagon',\n icon: [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"]\n};\nvar faFolderOpen = {\n prefix: 'fas',\n iconName: 'folder-open',\n icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"]\n};\nvar faKaaba = {\n prefix: 'fas',\n iconName: 'kaaba',\n icon: [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"]\n};\nvar faHandHolding = {\n prefix: 'fas',\n iconName: 'hand-holding',\n icon: [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faSingleQuoteRight = {\n prefix: 'fas',\n iconName: 'single-quote-right',\n icon: [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"]\n};\nvar faBottleDroplet = {\n prefix: 'fas',\n iconName: 'bottle-droplet',\n icon: [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"]\n};\nvar faWindowMinimize = {\n prefix: 'fas',\n iconName: 'window-minimize',\n icon: [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChevronRight = {\n prefix: 'fas',\n iconName: 'chevron-right',\n icon: [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faEgg = {\n prefix: 'fas',\n iconName: 'egg',\n icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faLandmarkDome = {\n prefix: 'fas',\n iconName: 'landmark-dome',\n icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faWorm = {\n prefix: 'fas',\n iconName: 'worm',\n icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faUserInjured = {\n prefix: 'fas',\n iconName: 'user-injured',\n icon: [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"]\n};\nvar faStrikethrough = {\n prefix: 'fas',\n iconName: 'strikethrough',\n icon: [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"]\n};\nvar faBlog = {\n prefix: 'fas',\n iconName: 'blog',\n icon: [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStopwatch20 = {\n prefix: 'fas',\n iconName: 'stopwatch-20',\n icon: [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"]\n};\nvar faTruckPickup = {\n prefix: 'fas',\n iconName: 'truck-pickup',\n icon: [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSeedling = {\n prefix: 'fas',\n iconName: 'seedling',\n icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"]\n};\nvar faSprout = faSeedling;\nvar faTransgender = {\n prefix: 'fas',\n iconName: 'transgender',\n icon: [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faStarHalf = {\n prefix: 'fas',\n iconName: 'star-half',\n icon: [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"]\n};\nvar faPhotoFilm = {\n prefix: 'fas',\n iconName: 'photo-film',\n icon: [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faPumpMedical = {\n prefix: 'fas',\n iconName: 'pump-medical',\n icon: [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFire = {\n prefix: 'fas',\n iconName: 'fire',\n icon: [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"]\n};\nvar faMagnifyingGlassPlus = {\n prefix: 'fas',\n iconName: 'magnifying-glass-plus',\n icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faFlask = {\n prefix: 'fas',\n iconName: 'flask',\n icon: [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"]\n};\nvar faAlignRight = {\n prefix: 'fas',\n iconName: 'align-right',\n icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCableCar = {\n prefix: 'fas',\n iconName: 'cable-car',\n icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"]\n};\nvar faTram = faCableCar;\nvar faKitMedical = {\n prefix: 'fas',\n iconName: 'kit-medical',\n icon: [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faGripLines = {\n prefix: 'fas',\n iconName: 'grip-lines',\n icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faBurger = {\n prefix: 'fas',\n iconName: 'burger',\n icon: [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHamburger = faBurger;\nvar faSnowman = {\n prefix: 'fas',\n iconName: 'snowman',\n icon: [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"]\n};\nvar faHotel = {\n prefix: 'fas',\n iconName: 'hotel',\n icon: [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"]\n};\nvar faPrint = {\n prefix: 'fas',\n iconName: 'print',\n icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faVolleyball = {\n prefix: 'fas',\n iconName: 'volleyball',\n icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faTrafficLight = {\n prefix: 'fas',\n iconName: 'traffic-light',\n icon: [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"]\n};\nvar faPlaneCircleCheck = {\n prefix: 'fas',\n iconName: 'plane-circle-check',\n icon: [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faUsers = {\n prefix: 'fas',\n iconName: 'users',\n icon: [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faCertificate = {\n prefix: 'fas',\n iconName: 'certificate',\n icon: [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"]\n};\nvar faAlarmClock = {\n prefix: 'fas',\n iconName: 'alarm-clock',\n icon: [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"]\n};\nvar faHelicopterSymbol = {\n prefix: 'fas',\n iconName: 'helicopter-symbol',\n icon: [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"]\n};\nvar faHouseChimneyCrack = {\n prefix: 'fas',\n iconName: 'house-chimney-crack',\n icon: [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faPersonMilitaryPointing = {\n prefix: 'fas',\n iconName: 'person-military-pointing',\n icon: [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"]\n};\nvar faDatabase = {\n prefix: 'fas',\n iconName: 'database',\n icon: [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"]\n};\nvar faNewspaper = {\n prefix: 'fas',\n iconName: 'newspaper',\n icon: [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"]\n};\nvar faCloudRain = {\n prefix: 'fas',\n iconName: 'cloud-rain',\n icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"]\n};\nvar faMaximize = {\n prefix: 'fas',\n iconName: 'maximize',\n icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faLocationArrow = {\n prefix: 'fas',\n iconName: 'location-arrow',\n icon: [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"]\n};\nvar faCity = {\n prefix: 'fas',\n iconName: 'city',\n icon: [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"]\n};\nvar faXRay = {\n prefix: 'fas',\n iconName: 'x-ray',\n icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"]\n};\nvar faUmbrellaBeach = {\n prefix: 'fas',\n iconName: 'umbrella-beach',\n icon: [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"]\n};\nvar faArrowRightToBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-to-bracket',\n icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faHeadset = {\n prefix: 'fas',\n iconName: 'headset',\n icon: [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"]\n};\nvar faSplotch = {\n prefix: 'fas',\n iconName: 'splotch',\n icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nvar faUpLong = {\n prefix: 'fas',\n iconName: 'up-long',\n icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faHexagonNodes = {\n prefix: 'fas',\n iconName: 'hexagon-nodes',\n icon: [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"]\n};\nvar faHospital = {\n prefix: 'fas',\n iconName: 'hospital',\n icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faPersonHarassing = {\n prefix: 'fas',\n iconName: 'person-harassing',\n icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faMoneyBillTrendUp = {\n prefix: 'fas',\n iconName: 'money-bill-trend-up',\n icon: [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faPenRuler = {\n prefix: 'fas',\n iconName: 'pen-ruler',\n icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faRepeat = {\n prefix: 'fas',\n iconName: 'repeat',\n icon: [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faBone = {\n prefix: 'fas',\n iconName: 'bone',\n icon: [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"]\n};\nvar faFireFlameCurved = {\n prefix: 'fas',\n iconName: 'fire-flame-curved',\n icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faBusSimple = {\n prefix: 'fas',\n iconName: 'bus-simple',\n icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faVenusMars = {\n prefix: 'fas',\n iconName: 'venus-mars',\n icon: [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"]\n};\nvar faBlender = {\n prefix: 'fas',\n iconName: 'blender',\n icon: [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faU = {\n prefix: 'fas',\n iconName: 'u',\n icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"]\n};\nvar faShare = {\n prefix: 'fas',\n iconName: 'share',\n icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"]\n};\nvar faMailForward = faShare;\nvar faPhoneFlip = {\n prefix: 'fas',\n iconName: 'phone-flip',\n icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faToiletPortable = {\n prefix: 'fas',\n iconName: 'toilet-portable',\n icon: [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonPregnant = {\n prefix: 'fas',\n iconName: 'person-pregnant',\n icon: [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"]\n};\nvar faLessThan = {\n prefix: 'fas',\n iconName: 'less-than',\n icon: [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"]\n};\nvar faSuperscript = {\n prefix: 'fas',\n iconName: 'superscript',\n icon: [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"]\n};\nvar faCircleStop = {\n prefix: 'fas',\n iconName: 'circle-stop',\n icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faArrowsUpDown = {\n prefix: 'fas',\n iconName: 'arrows-up-down',\n icon: [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faPooStorm = {\n prefix: 'fas',\n iconName: 'poo-storm',\n icon: [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faVideoSlash = {\n prefix: 'fas',\n iconName: 'video-slash',\n icon: [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faSquareXmark = {\n prefix: 'fas',\n iconName: 'square-xmark',\n icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHandHoldingDroplet = {\n prefix: 'fas',\n iconName: 'hand-holding-droplet',\n icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWonSign = {\n prefix: 'fas',\n iconName: 'won-sign',\n icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faObjectUngroup = {\n prefix: 'fas',\n iconName: 'object-ungroup',\n icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"]\n};\nvar faComment = {\n prefix: 'fas',\n iconName: 'comment',\n icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"]\n};\nvar faHillAvalanche = {\n prefix: 'fas',\n iconName: 'hill-avalanche',\n icon: [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"]\n};\nvar faArrowsToEye = {\n prefix: 'fas',\n iconName: 'arrows-to-eye',\n icon: [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSnowplow = {\n prefix: 'fas',\n iconName: 'snowplow',\n icon: [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faChartGantt = {\n prefix: 'fas',\n iconName: 'chart-gantt',\n icon: [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"]\n};\nvar faVideo = {\n prefix: 'fas',\n iconName: 'video',\n icon: [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faVideoCamera = faVideo;\nvar faChessPawn = {\n prefix: 'fas',\n iconName: 'chess-pawn',\n icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"]\n};\nvar faSynagogue = {\n prefix: 'fas',\n iconName: 'synagogue',\n icon: [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBuildingCircleCheck = {\n prefix: 'fas',\n iconName: 'building-circle-check',\n icon: [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCalendarPlus = {\n prefix: 'fas',\n iconName: 'calendar-plus',\n icon: [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faWheelchairMove = {\n prefix: 'fas',\n iconName: 'wheelchair-move',\n icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faUserShield = {\n prefix: 'fas',\n iconName: 'user-shield',\n icon: [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faBold = {\n prefix: 'fas',\n iconName: 'bold',\n icon: [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"]\n};\nvar faHeartPulse = {\n prefix: 'fas',\n iconName: 'heart-pulse',\n icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faSquareRootVariable = {\n prefix: 'fas',\n iconName: 'square-root-variable',\n icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faHandsBubbles = {\n prefix: 'fas',\n iconName: 'hands-bubbles',\n icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faMarker = {\n prefix: 'fas',\n iconName: 'marker',\n icon: [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"]\n};\nvar faClipboard = {\n prefix: 'fas',\n iconName: 'clipboard',\n icon: [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"]\n};\nvar faPlaceOfWorship = {\n prefix: 'fas',\n iconName: 'place-of-worship',\n icon: [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faCannabis = {\n prefix: 'fas',\n iconName: 'cannabis',\n icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"]\n};\nvar faPeopleRoof = {\n prefix: 'fas',\n iconName: 'people-roof',\n icon: [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"]\n};\nvar faDisease = {\n prefix: 'fas',\n iconName: 'disease',\n icon: [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBookBible = {\n prefix: 'fas',\n iconName: 'book-bible',\n icon: [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBible = faBookBible;\nvar faChessBoard = {\n prefix: 'fas',\n iconName: 'chess-board',\n icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faMars = {\n prefix: 'fas',\n iconName: 'mars',\n icon: [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faLaptop = {\n prefix: 'fas',\n iconName: 'laptop',\n icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"]\n};\nvar faUserXmark = {\n prefix: 'fas',\n iconName: 'user-xmark',\n icon: [640, 512, [\"user-times\"], \"f235\", \"M136.4 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zm-88 354.3c0-98.5 79.8-178.3 178.3-178.3l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78.1 512c-16.4 0-29.7-13.3-29.7-29.7zM612.3 124.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faFlagUsa = {\n prefix: 'fas',\n iconName: 'flag-usa',\n icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faHandMiddleFinger = {\n prefix: 'fas',\n iconName: 'hand-middle-finger',\n icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"]\n};\nvar faMortarPestle = {\n prefix: 'fas',\n iconName: 'mortar-pestle',\n icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"]\n};\nvar faHeadSideCough = {\n prefix: 'fas',\n iconName: 'head-side-cough',\n icon: [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faPlaneLock = {\n prefix: 'fas',\n iconName: 'plane-lock',\n icon: [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faBatteryThreeQuarters = {\n prefix: 'fas',\n iconName: 'battery-three-quarters',\n icon: [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faFrancSign = {\n prefix: 'fas',\n iconName: 'franc-sign',\n icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nvar faFilterCircleDollar = {\n prefix: 'fas',\n iconName: 'filter-circle-dollar',\n icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCheese = {\n prefix: 'fas',\n iconName: 'cheese',\n icon: [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"]\n};\nvar faCircleH = {\n prefix: 'fas',\n iconName: 'circle-h',\n icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faSchool = {\n prefix: 'fas',\n iconName: 'school',\n icon: [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faDiceFive = {\n prefix: 'fas',\n iconName: 'dice-five',\n icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTornado = {\n prefix: 'fas',\n iconName: 'tornado',\n icon: [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"]\n};\nvar faJetFighter = {\n prefix: 'fas',\n iconName: 'jet-fighter',\n icon: [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faThumbsDown = {\n prefix: 'fas',\n iconName: 'thumbs-down',\n icon: [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"]\n};\nvar faBroom = {\n prefix: 'fas',\n iconName: 'broom',\n icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nvar faFileImport = {\n prefix: 'fas',\n iconName: 'file-import',\n icon: [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faUtensils = {\n prefix: 'fas',\n iconName: 'utensils',\n icon: [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"]\n};\nvar faCutlery = faUtensils;\nvar faIdBadge = {\n prefix: 'fas',\n iconName: 'id-badge',\n icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSpider = {\n prefix: 'fas',\n iconName: 'spider',\n icon: [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"]\n};\nvar faMobileRetro = {\n prefix: 'fas',\n iconName: 'mobile-retro',\n icon: [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faSignsPost = {\n prefix: 'fas',\n iconName: 'signs-post',\n icon: [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faGroupArrowsRotate = {\n prefix: 'fas',\n iconName: 'group-arrows-rotate',\n icon: [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n prefix: 'fas',\n iconName: 'arrows-split-up-and-left',\n icon: [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faFillDrip = {\n prefix: 'fas',\n iconName: 'fill-drip',\n icon: [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"]\n};\nvar faShieldHeart = {\n prefix: 'fas',\n iconName: 'shield-heart',\n icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"]\n};\nvar faPersonSkiingNordic = {\n prefix: 'fas',\n iconName: 'person-skiing-nordic',\n icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faSquareCheck = {\n prefix: 'fas',\n iconName: 'square-check',\n icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faBath = {\n prefix: 'fas',\n iconName: 'bath',\n icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"]\n};\nvar faBathtub = faBath;\nvar faChessBishop = {\n prefix: 'fas',\n iconName: 'chess-bishop',\n icon: [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"]\n};\nvar faPrescriptionBottleMedical = {\n prefix: 'fas',\n iconName: 'prescription-bottle-medical',\n icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faDrawPolygon = {\n prefix: 'fas',\n iconName: 'draw-polygon',\n icon: [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"]\n};\nvar faVectorPolygon = faDrawPolygon;\nvar faICursor = {\n prefix: 'fas',\n iconName: 'i-cursor',\n icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faHeartCirclePlus = {\n prefix: 'fas',\n iconName: 'heart-circle-plus',\n icon: [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faShieldDog = {\n prefix: 'fas',\n iconName: 'shield-dog',\n icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faGreaterThanEqual = {\n prefix: 'fas',\n iconName: 'greater-than-equal',\n icon: [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"]\n};\nvar faEnvelopeOpen = {\n prefix: 'fas',\n iconName: 'envelope-open',\n icon: [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"]\n};\nvar faMound = {\n prefix: 'fas',\n iconName: 'mound',\n icon: [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"]\n};\nvar faVoicemail = {\n prefix: 'fas',\n iconName: 'voicemail',\n icon: [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faVest = {\n prefix: 'fas',\n iconName: 'vest',\n icon: [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"]\n};\nvar faAudioDescription = {\n prefix: 'fas',\n iconName: 'audio-description',\n icon: [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"]\n};\nvar faW = {\n prefix: 'fas',\n iconName: 'w',\n icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEyeDropper = {\n prefix: 'fas',\n iconName: 'eye-dropper',\n icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faCircleXmark = {\n prefix: 'fas',\n iconName: 'circle-xmark',\n icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faTrailer = {\n prefix: 'fas',\n iconName: 'trailer',\n icon: [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTurkishLiraSign = {\n prefix: 'fas',\n iconName: 'turkish-lira-sign',\n icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faVolcano = {\n prefix: 'fas',\n iconName: 'volcano',\n icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"]\n};\nvar faWandSparkles = {\n prefix: 'fas',\n iconName: 'wand-sparkles',\n icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faMicrophone = {\n prefix: 'fas',\n iconName: 'microphone',\n icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"]\n};\nvar faCrown = {\n prefix: 'fas',\n iconName: 'crown',\n icon: [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"]\n};\nvar faTentArrowTurnLeft = {\n prefix: 'fas',\n iconName: 'tent-arrow-turn-left',\n icon: [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faTruckFast = {\n prefix: 'fas',\n iconName: 'truck-fast',\n icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faUserPen = {\n prefix: 'fas',\n iconName: 'user-pen',\n icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faUserEdit = faUserPen;\nvar faUserClock = {\n prefix: 'fas',\n iconName: 'user-clock',\n icon: [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faShower = {\n prefix: 'fas',\n iconName: 'shower',\n icon: [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSquareCaretUp = {\n prefix: 'fas',\n iconName: 'square-caret-up',\n icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faMapLocation = {\n prefix: 'fas',\n iconName: 'map-location',\n icon: [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faPenFancy = {\n prefix: 'fas',\n iconName: 'pen-fancy',\n icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"]\n};\nvar faEuroSign = {\n prefix: 'fas',\n iconName: 'euro-sign',\n icon: [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faHouseCircleXmark = {\n prefix: 'fas',\n iconName: 'house-circle-xmark',\n icon: [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faLiraSign = {\n prefix: 'fas',\n iconName: 'lira-sign',\n icon: [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"]\n};\nvar faYenSign = {\n prefix: 'fas',\n iconName: 'yen-sign',\n icon: [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faBoxOpen = {\n prefix: 'fas',\n iconName: 'box-open',\n icon: [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"]\n};\nvar faTruckField = {\n prefix: 'fas',\n iconName: 'truck-field',\n icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faLocationPinLock = {\n prefix: 'fas',\n iconName: 'location-pin-lock',\n icon: [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faPersonPraying = {\n prefix: 'fas',\n iconName: 'person-praying',\n icon: [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faClipboardList = {\n prefix: 'fas',\n iconName: 'clipboard-list',\n icon: [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSackDollar = {\n prefix: 'fas',\n iconName: 'sack-dollar',\n icon: [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faMountainSun = {\n prefix: 'fas',\n iconName: 'mountain-sun',\n icon: [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faArrowUpWideShort = {\n prefix: 'fas',\n iconName: 'arrow-up-wide-short',\n icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faUsersLine = {\n prefix: 'fas',\n iconName: 'users-line',\n icon: [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarOfDavid = {\n prefix: 'fas',\n iconName: 'star-of-david',\n icon: [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"]\n};\nvar faNotesMedical = {\n prefix: 'fas',\n iconName: 'notes-medical',\n icon: [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"]\n};\nvar faAustralSign = {\n prefix: 'fas',\n iconName: 'austral-sign',\n icon: [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"]\n};\nvar faClipboardUser = {\n prefix: 'fas',\n iconName: 'clipboard-user',\n icon: [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"]\n};\nvar faFileImage = {\n prefix: 'fas',\n iconName: 'file-image',\n icon: [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"]\n};\nvar faSquareCaretRight = {\n prefix: 'fas',\n iconName: 'square-caret-right',\n icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faVial = {\n prefix: 'fas',\n iconName: 'vial',\n icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"]\n};\nvar faHelicopter = {\n prefix: 'fas',\n iconName: 'helicopter',\n icon: [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"]\n};\nvar faMitten = {\n prefix: 'fas',\n iconName: 'mitten',\n icon: [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faGasPump = {\n prefix: 'fas',\n iconName: 'gas-pump',\n icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"]\n};\nvar faEnvelopeCircleCheck = {\n prefix: 'fas',\n iconName: 'envelope-circle-check',\n icon: [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faPersonSkating = {\n prefix: 'fas',\n iconName: 'person-skating',\n icon: [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faSun = {\n prefix: 'fas',\n iconName: 'sun',\n icon: [576, 512, [9728], \"f185\", \"M178.2-10.1c7.4-3.1 15.8-2.2 22.5 2.2l87.8 58.2 87.8-58.2c6.7-4.4 15.1-5.2 22.5-2.2S411.4-.5 413 7.3l20.9 103.2 103.2 20.9c7.8 1.6 14.4 7 17.4 14.3s2.2 15.8-2.2 22.5l-58.2 87.8 58.2 87.8c4.4 6.7 5.2 15.1 2.2 22.5s-9.6 12.8-17.4 14.3L433.8 401.4 413 504.7c-1.6 7.8-7 14.4-14.3 17.4s-15.8 2.2-22.5-2.2l-87.8-58.2-87.8 58.2c-6.7 4.4-15.1 5.2-22.5 2.2s-12.8-9.6-14.3-17.4L143 401.4 39.7 380.5c-7.8-1.6-14.4-7-17.4-14.3s-2.2-15.8 2.2-22.5L82.7 256 24.5 168.2c-4.4-6.7-5.2-15.1-2.2-22.5s9.6-12.8 17.4-14.3L143 110.6 163.9 7.3c1.6-7.8 7-14.4 14.3-17.4zM207.6 256a80.4 80.4 0 1 1 160.8 0 80.4 80.4 0 1 1 -160.8 0zm208.8 0a128.4 128.4 0 1 0 -256.8 0 128.4 128.4 0 1 0 256.8 0z\"]\n};\nvar faBaseball = {\n prefix: 'fas',\n iconName: 'baseball',\n icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faImage = {\n prefix: 'fas',\n iconName: 'image',\n icon: [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"]\n};\nvar faNotdef = {\n prefix: 'fas',\n iconName: 'notdef',\n icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nvar faBasketball = {\n prefix: 'fas',\n iconName: 'basketball',\n icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faPencil = {\n prefix: 'fas',\n iconName: 'pencil',\n icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"]\n};\nvar faPencilAlt = faPencil;\nvar faPersonWalkingArrowLoopLeft = {\n prefix: 'fas',\n iconName: 'person-walking-arrow-loop-left',\n icon: [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"]\n};\nvar faDiceSix = {\n prefix: 'fas',\n iconName: 'dice-six',\n icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesDown = {\n prefix: 'fas',\n iconName: 'angles-down',\n icon: [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faSyringe = {\n prefix: 'fas',\n iconName: 'syringe',\n icon: [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faWheatAwn = {\n prefix: 'fas',\n iconName: 'wheat-awn',\n icon: [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faPlaneUp = {\n prefix: 'fas',\n iconName: 'plane-up',\n icon: [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"]\n};\nvar faAlignCenter = {\n prefix: 'fas',\n iconName: 'align-center',\n icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faHockeyPuck = {\n prefix: 'fas',\n iconName: 'hockey-puck',\n icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"]\n};\nvar faCircleArrowLeft = {\n prefix: 'fas',\n iconName: 'circle-arrow-left',\n icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faPlugCircleBolt = {\n prefix: 'fas',\n iconName: 'plug-circle-bolt',\n icon: [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faRestroom = {\n prefix: 'fas',\n iconName: 'restroom',\n icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faAnchorLock = {\n prefix: 'fas',\n iconName: 'anchor-lock',\n icon: [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faTimeline = {\n prefix: 'fas',\n iconName: 'timeline',\n icon: [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"]\n};\nvar faLightbulb = {\n prefix: 'fas',\n iconName: 'lightbulb',\n icon: [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faCircleArrowRight = {\n prefix: 'fas',\n iconName: 'circle-arrow-right',\n icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faMarsAndVenus = {\n prefix: 'fas',\n iconName: 'mars-and-venus',\n icon: [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"]\n};\nvar faNetworkWired = {\n prefix: 'fas',\n iconName: 'network-wired',\n icon: [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"]\n};\nvar faBuildingShield = {\n prefix: 'fas',\n iconName: 'building-shield',\n icon: [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faCode = {\n prefix: 'fas',\n iconName: 'code',\n icon: [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faFeatherPointed = {\n prefix: 'fas',\n iconName: 'feather-pointed',\n icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faFileCircleQuestion = {\n prefix: 'fas',\n iconName: 'file-circle-question',\n icon: [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faSignature = {\n prefix: 'fas',\n iconName: 'signature',\n icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"]\n};\nvar faEarthAmericas = {\n prefix: 'fas',\n iconName: 'earth-americas',\n icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faCarrot = {\n prefix: 'fas',\n iconName: 'carrot',\n icon: [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"]\n};\nvar faTemperatureFull = {\n prefix: 'fas',\n iconName: 'temperature-full',\n icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faTableCellsRowLock = {\n prefix: 'fas',\n iconName: 'table-cells-row-lock',\n icon: [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faBoltLightning = {\n prefix: 'fas',\n iconName: 'bolt-lightning',\n icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faCloudShowersWater = {\n prefix: 'fas',\n iconName: 'cloud-showers-water',\n icon: [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"]\n};\nvar faArrowUpLong = {\n prefix: 'fas',\n iconName: 'arrow-up-long',\n icon: [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faAddressCard = {\n prefix: 'fas',\n iconName: 'address-card',\n icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faAngleRight = {\n prefix: 'fas',\n iconName: 'angle-right',\n icon: [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faFaceMeh = {\n prefix: 'fas',\n iconName: 'face-meh',\n icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMeh = faFaceMeh;\nvar faArrowUpFromGroundWater = {\n prefix: 'fas',\n iconName: 'arrow-up-from-ground-water',\n icon: [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMap = {\n prefix: 'fas',\n iconName: 'map',\n icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"]\n};\nvar faUserPlus = {\n prefix: 'fas',\n iconName: 'user-plus',\n icon: [640, 512, [], \"f234\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM544 96c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faVenus = {\n prefix: 'fas',\n iconName: 'venus',\n icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"]\n};\nvar faDiagramSuccessor = {\n prefix: 'fas',\n iconName: 'diagram-successor',\n icon: [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"]\n};\nvar faHeadSideCoughSlash = {\n prefix: 'fas',\n iconName: 'head-side-cough-slash',\n icon: [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faDiagramProject = {\n prefix: 'fas',\n iconName: 'diagram-project',\n icon: [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faTerminal = {\n prefix: 'fas',\n iconName: 'terminal',\n icon: [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faHouseFire = {\n prefix: 'fas',\n iconName: 'house-fire',\n icon: [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"]\n};\nvar faMask = {\n prefix: 'fas',\n iconName: 'mask',\n icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faHurricane = {\n prefix: 'fas',\n iconName: 'hurricane',\n icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faEarthAfrica = {\n prefix: 'fas',\n iconName: 'earth-africa',\n icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faThumbtack = {\n prefix: 'fas',\n iconName: 'thumbtack',\n icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faHandPointDown = {\n prefix: 'fas',\n iconName: 'hand-point-down',\n icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"]\n};\nvar faFaceMehBlank = {\n prefix: 'fas',\n iconName: 'face-meh-blank',\n icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faTemperatureEmpty = {\n prefix: 'fas',\n iconName: 'temperature-empty',\n icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBorderNone = {\n prefix: 'fas',\n iconName: 'border-none',\n icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faHighlighter = {\n prefix: 'fas',\n iconName: 'highlighter',\n icon: [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faMoneyBillWave = {\n prefix: 'fas',\n iconName: 'money-bill-wave',\n icon: [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"]\n};\nvar faToiletPaperSlash = {\n prefix: 'fas',\n iconName: 'toilet-paper-slash',\n icon: [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faFileShield = {\n prefix: 'fas',\n iconName: 'file-shield',\n icon: [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faTextHeight = {\n prefix: 'fas',\n iconName: 'text-height',\n icon: [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"]\n};\nvar faFaceGrinTongue = {\n prefix: 'fas',\n iconName: 'face-grin-tongue',\n icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFileSignature = {\n prefix: 'fas',\n iconName: 'file-signature',\n icon: [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"]\n};\nvar faBuildingWheat = {\n prefix: 'fas',\n iconName: 'building-wheat',\n icon: [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"]\n};\nvar faPlugCircleMinus = {\n prefix: 'fas',\n iconName: 'plug-circle-minus',\n icon: [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faFutbol = {\n prefix: 'fas',\n iconName: 'futbol',\n icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faCirclePlus = {\n prefix: 'fas',\n iconName: 'circle-plus',\n icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faBrazilianRealSign = {\n prefix: 'fas',\n iconName: 'brazilian-real-sign',\n icon: [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"]\n};\nvar faStarAndCrescent = {\n prefix: 'fas',\n iconName: 'star-and-crescent',\n icon: [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faFaceSurprise = {\n prefix: 'fas',\n iconName: 'face-surprise',\n icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faHospitalUser = {\n prefix: 'fas',\n iconName: 'hospital-user',\n icon: [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faArrowDownUpLock = {\n prefix: 'fas',\n iconName: 'arrow-down-up-lock',\n icon: [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faFolder = {\n prefix: 'fas',\n iconName: 'folder',\n icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faHollyBerry = {\n prefix: 'fas',\n iconName: 'holly-berry',\n icon: [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faVenusDouble = {\n prefix: 'fas',\n iconName: 'venus-double',\n icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"]\n};\nvar faClipboardQuestion = {\n prefix: 'fas',\n iconName: 'clipboard-question',\n icon: [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"]\n};\nvar faHotdog = {\n prefix: 'fas',\n iconName: 'hotdog',\n icon: [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"]\n};\nvar faArrowUpFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-up-from-bracket',\n icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faMicroscope = {\n prefix: 'fas',\n iconName: 'microscope',\n icon: [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faCloud = {\n prefix: 'fas',\n iconName: 'cloud',\n icon: [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"]\n};\nvar faBaseballBatBall = {\n prefix: 'fas',\n iconName: 'baseball-bat-ball',\n icon: [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"]\n};\nvar faCarRear = {\n prefix: 'fas',\n iconName: 'car-rear',\n icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faThumbtackSlash = {\n prefix: 'fas',\n iconName: 'thumbtack-slash',\n icon: [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"]\n};\nvar faThumbTackSlash = faThumbtackSlash;\nvar faPlusMinus = {\n prefix: 'fas',\n iconName: 'plus-minus',\n icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHouseCircleCheck = {\n prefix: 'fas',\n iconName: 'house-circle-check',\n icon: [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"]\n};\nvar faCalendarDay = {\n prefix: 'fas',\n iconName: 'calendar-day',\n icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nvar faCircle = {\n prefix: 'fas',\n iconName: 'circle',\n icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faMobileVibrate = {\n prefix: 'fas',\n iconName: 'mobile-vibrate',\n icon: [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFaceGrinSquint = {\n prefix: 'fas',\n iconName: 'face-grin-squint',\n icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faUsersBetweenLines = {\n prefix: 'fas',\n iconName: 'users-between-lines',\n icon: [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"]\n};\nvar faHouseMedicalCircleXmark = {\n prefix: 'fas',\n iconName: 'house-medical-circle-xmark',\n icon: [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faTableList = {\n prefix: 'fas',\n iconName: 'table-list',\n icon: [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"]\n};\nvar faThList = faTableList;\nvar faFlaskVial = {\n prefix: 'fas',\n iconName: 'flask-vial',\n icon: [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"]\n};\nvar faCircleExclamation = {\n prefix: 'fas',\n iconName: 'circle-exclamation',\n icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faTaxi = {\n prefix: 'fas',\n iconName: 'taxi',\n icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCab = faTaxi;\nvar faTextSlash = {\n prefix: 'fas',\n iconName: 'text-slash',\n icon: [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faPeoplePulling = {\n prefix: 'fas',\n iconName: 'people-pulling',\n icon: [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faBackward = {\n prefix: 'fas',\n iconName: 'backward',\n icon: [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"]\n};\nvar faCarBurst = {\n prefix: 'fas',\n iconName: 'car-burst',\n icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faLink = {\n prefix: 'fas',\n iconName: 'link',\n icon: [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"]\n};\nvar faChain = faLink;\nvar faBackwardStep = {\n prefix: 'fas',\n iconName: 'backward-step',\n icon: [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faX = {\n prefix: 'fas',\n iconName: 'x',\n icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faCircleUser = {\n prefix: 'fas',\n iconName: 'circle-user',\n icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n prefix: 'fas',\n iconName: 'rectangle-list',\n icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n prefix: 'fas',\n iconName: 'hand',\n icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"]\n};\nvar faHandPaper = faHand;\nvar faVanShuttle = {\n prefix: 'fas',\n iconName: 'van-shuttle',\n icon: [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faStairs = {\n prefix: 'fas',\n iconName: 'stairs',\n icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"]\n};\nvar faHorseHead = {\n prefix: 'fas',\n iconName: 'horse-head',\n icon: [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faVault = {\n prefix: 'fas',\n iconName: 'vault',\n icon: [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faDrumSteelpan = {\n prefix: 'fas',\n iconName: 'drum-steelpan',\n icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"]\n};\nvar faThumbsUp = {\n prefix: 'fas',\n iconName: 'thumbs-up',\n icon: [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"]\n};\nvar faStamp = {\n prefix: 'fas',\n iconName: 'stamp',\n icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"]\n};\nvar faMenorah = {\n prefix: 'fas',\n iconName: 'menorah',\n icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildren = {\n prefix: 'fas',\n iconName: 'children',\n icon: [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"]\n};\nvar faChartLine = {\n prefix: 'fas',\n iconName: 'chart-line',\n icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faSquareEnvelope = {\n prefix: 'fas',\n iconName: 'square-envelope',\n icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faBanSmoking = {\n prefix: 'fas',\n iconName: 'ban-smoking',\n icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTruckFront = {\n prefix: 'fas',\n iconName: 'truck-front',\n icon: [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBuilding = {\n prefix: 'fas',\n iconName: 'building',\n icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faBullseye = {\n prefix: 'fas',\n iconName: 'bullseye',\n icon: [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faArrowLeftLong = {\n prefix: 'fas',\n iconName: 'arrow-left-long',\n icon: [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faChessRook = {\n prefix: 'fas',\n iconName: 'chess-rook',\n icon: [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"]\n};\nvar faBlenderPhone = {\n prefix: 'fas',\n iconName: 'blender-phone',\n icon: [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faArrowTurnUp = {\n prefix: 'fas',\n iconName: 'arrow-turn-up',\n icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faBicycle = {\n prefix: 'fas',\n iconName: 'bicycle',\n icon: [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"]\n};\nvar faCircleArrowDown = {\n prefix: 'fas',\n iconName: 'circle-arrow-down',\n icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faGear = {\n prefix: 'fas',\n iconName: 'gear',\n icon: [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"]\n};\nvar faCog = faGear;\nvar faMarsAndVenusBurst = {\n prefix: 'fas',\n iconName: 'mars-and-venus-burst',\n icon: [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"]\n};\nvar faOtter = {\n prefix: 'fas',\n iconName: 'otter',\n icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faCircleChevronLeft = {\n prefix: 'fas',\n iconName: 'circle-chevron-left',\n icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faCircleQuestion = {\n prefix: 'fas',\n iconName: 'circle-question',\n icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faWalkieTalkie = {\n prefix: 'fas',\n iconName: 'walkie-talkie',\n icon: [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faUserGroup = {\n prefix: 'fas',\n iconName: 'user-group',\n icon: [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faHouseChimney = {\n prefix: 'fas',\n iconName: 'house-chimney',\n icon: [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faRightFromBracket = {\n prefix: 'fas',\n iconName: 'right-from-bracket',\n icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faFile = {\n prefix: 'fas',\n iconName: 'file',\n icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faPlaneSlash = {\n prefix: 'fas',\n iconName: 'plane-slash',\n icon: [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"]\n};\nvar faCloudShowersHeavy = {\n prefix: 'fas',\n iconName: 'cloud-showers-heavy',\n icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"]\n};\nvar faPersonFalling = {\n prefix: 'fas',\n iconName: 'person-falling',\n icon: [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faTurnDown = {\n prefix: 'fas',\n iconName: 'turn-down',\n icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faUpRightAndDownLeftFromCenter = {\n prefix: 'fas',\n iconName: 'up-right-and-down-left-from-center',\n icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faUserTag = {\n prefix: 'fas',\n iconName: 'user-tag',\n icon: [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandSparkles = {\n prefix: 'fas',\n iconName: 'hand-sparkles',\n icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faArrowsToDot = {\n prefix: 'fas',\n iconName: 'arrows-to-dot',\n icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFaceSadCry = {\n prefix: 'fas',\n iconName: 'face-sad-cry',\n icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faDongSign = {\n prefix: 'fas',\n iconName: 'dong-sign',\n icon: [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"]\n};\nvar faPeopleLine = {\n prefix: 'fas',\n iconName: 'people-line',\n icon: [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSquareRss = {\n prefix: 'fas',\n iconName: 'square-rss',\n icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faCalendarMinus = {\n prefix: 'fas',\n iconName: 'calendar-minus',\n icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faChartDiagram = {\n prefix: 'fas',\n iconName: 'chart-diagram',\n icon: [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"]\n};\nvar faFaceTired = {\n prefix: 'fas',\n iconName: 'face-tired',\n icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n prefix: 'fas',\n iconName: 'hand-point-right',\n icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nvar faArrowUp = {\n prefix: 'fas',\n iconName: 'arrow-up',\n icon: [384, 512, [8593], \"f062\", \"M214.6 17.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 117.3 160 488c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faCubesStacked = {\n prefix: 'fas',\n iconName: 'cubes-stacked',\n icon: [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildCombatant = {\n prefix: 'fas',\n iconName: 'child-combatant',\n icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faVestPatches = {\n prefix: 'fas',\n iconName: 'vest-patches',\n icon: [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faMartiniGlassEmpty = {\n prefix: 'fas',\n iconName: 'martini-glass-empty',\n icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faMagnet = {\n prefix: 'fas',\n iconName: 'magnet',\n icon: [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"]\n};\nvar faRoadBarrier = {\n prefix: 'fas',\n iconName: 'road-barrier',\n icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"]\n};\nvar faCompassDrafting = {\n prefix: 'fas',\n iconName: 'compass-drafting',\n icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faSquarePersonConfined = {\n prefix: 'fas',\n iconName: 'square-person-confined',\n icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"]\n};\nvar faPlateWheat = {\n prefix: 'fas',\n iconName: 'plate-wheat',\n icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faSignHanging = {\n prefix: 'fas',\n iconName: 'sign-hanging',\n icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faCarBattery = {\n prefix: 'fas',\n iconName: 'car-battery',\n icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faShirt = {\n prefix: 'fas',\n iconName: 'shirt',\n icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faParagraph = {\n prefix: 'fas',\n iconName: 'paragraph',\n icon: [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"]\n};\nvar faEnvelopesBulk = {\n prefix: 'fas',\n iconName: 'envelopes-bulk',\n icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faGuitar = {\n prefix: 'fas',\n iconName: 'guitar',\n icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faSuitcase = {\n prefix: 'fas',\n iconName: 'suitcase',\n icon: [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"]\n};\nvar faCircleUp = {\n prefix: 'fas',\n iconName: 'circle-up',\n icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faF = {\n prefix: 'fas',\n iconName: 'f',\n icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faXmarksLines = {\n prefix: 'fas',\n iconName: 'xmarks-lines',\n icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faEarthOceania = {\n prefix: 'fas',\n iconName: 'earth-oceania',\n icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faCommentSlash = {\n prefix: 'fas',\n iconName: 'comment-slash',\n icon: [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"]\n};\nvar faPlay = {\n prefix: 'fas',\n iconName: 'play',\n icon: [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"]\n};\nvar faVialCircleCheck = {\n prefix: 'fas',\n iconName: 'vial-circle-check',\n icon: [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faBridgeCircleCheck = {\n prefix: 'fas',\n iconName: 'bridge-circle-check',\n icon: [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCediSign = {\n prefix: 'fas',\n iconName: 'cedi-sign',\n icon: [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"]\n};\nvar faPuzzlePiece = {\n prefix: 'fas',\n iconName: 'puzzle-piece',\n icon: [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"]\n};\nvar faHelmetUn = {\n prefix: 'fas',\n iconName: 'helmet-un',\n icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGlassWater = {\n prefix: 'fas',\n iconName: 'glass-water',\n icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nvar faHeartCircleBolt = {\n prefix: 'fas',\n iconName: 'heart-circle-bolt',\n icon: [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faPumpSoap = {\n prefix: 'fas',\n iconName: 'pump-soap',\n icon: [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"]\n};\nvar faHandScissors = {\n prefix: 'fas',\n iconName: 'hand-scissors',\n icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faDolly = {\n prefix: 'fas',\n iconName: 'dolly',\n icon: [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"]\n};\nvar faDollyBox = faDolly;\nvar faPaperclip = {\n prefix: 'fas',\n iconName: 'paperclip',\n icon: [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"]\n};\nvar faDemocrat = {\n prefix: 'fas',\n iconName: 'democrat',\n icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faSquareArrowUpRight = {\n prefix: 'fas',\n iconName: 'square-arrow-up-right',\n icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faFerry = {\n prefix: 'fas',\n iconName: 'ferry',\n icon: [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMosquito = {\n prefix: 'fas',\n iconName: 'mosquito',\n icon: [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"]\n};\nvar faBuildingCircleArrowRight = {\n prefix: 'fas',\n iconName: 'building-circle-arrow-right',\n icon: [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faLeftRight = {\n prefix: 'fas',\n iconName: 'left-right',\n icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faVirus = {\n prefix: 'fas',\n iconName: 'virus',\n icon: [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGem = {\n prefix: 'fas',\n iconName: 'gem',\n icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faToilet = {\n prefix: 'fas',\n iconName: 'toilet',\n icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"]\n};\nvar faSingleQuoteLeft = {\n prefix: 'fas',\n iconName: 'single-quote-left',\n icon: [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"]\n};\nvar faMoneyBills = {\n prefix: 'fas',\n iconName: 'money-bills',\n icon: [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"]\n};\nvar faTabletButton = {\n prefix: 'fas',\n iconName: 'tablet-button',\n icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRectangleXmark = {\n prefix: 'fas',\n iconName: 'rectangle-xmark',\n icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faWrench = {\n prefix: 'fas',\n iconName: 'wrench',\n icon: [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"]\n};\nvar faTrashCan = {\n prefix: 'fas',\n iconName: 'trash-can',\n icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTableCells = {\n prefix: 'fas',\n iconName: 'table-cells',\n icon: [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faTh = faTableCells;\nvar faRibbon = {\n prefix: 'fas',\n iconName: 'ribbon',\n icon: [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"]\n};\nvar faLandmarkFlag = {\n prefix: 'fas',\n iconName: 'landmark-flag',\n icon: [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"]\n};\nvar faUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'up-down-left-right',\n icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faCarSide = {\n prefix: 'fas',\n iconName: 'car-side',\n icon: [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTrashArrowUp = {\n prefix: 'fas',\n iconName: 'trash-arrow-up',\n icon: [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faLifeRing = {\n prefix: 'fas',\n iconName: 'life-ring',\n icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n prefix: 'fas',\n iconName: 'copyright',\n icon: [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"]\n};\nvar faFilePrescription = {\n prefix: 'fas',\n iconName: 'file-prescription',\n icon: [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"]\n};\nvar faEraser = {\n prefix: 'fas',\n iconName: 'eraser',\n icon: [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"]\n};\nvar faHourglassStart = {\n prefix: 'fas',\n iconName: 'hourglass-start',\n icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faCircleLeft = {\n prefix: 'fas',\n iconName: 'circle-left',\n icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCruzeiroSign = {\n prefix: 'fas',\n iconName: 'cruzeiro-sign',\n icon: [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"]\n};\nvar faSmoking = {\n prefix: 'fas',\n iconName: 'smoking',\n icon: [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSquarePollVertical = {\n prefix: 'fas',\n iconName: 'square-poll-vertical',\n icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faPersonCircleMinus = {\n prefix: 'fas',\n iconName: 'person-circle-minus',\n icon: [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faBiohazard = {\n prefix: 'fas',\n iconName: 'biohazard',\n icon: [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"]\n};\nvar faBellConcierge = {\n prefix: 'fas',\n iconName: 'bell-concierge',\n icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faRulerHorizontal = {\n prefix: 'fas',\n iconName: 'ruler-horizontal',\n icon: [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"]\n};\nvar faHorse = {\n prefix: 'fas',\n iconName: 'horse',\n icon: [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faCalendar = {\n prefix: 'fas',\n iconName: 'calendar',\n icon: [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"]\n};\nvar faHandsHoldingChild = {\n prefix: 'fas',\n iconName: 'hands-holding-child',\n icon: [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"]\n};\nvar faItalic = {\n prefix: 'fas',\n iconName: 'italic',\n icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faKhanda = {\n prefix: 'fas',\n iconName: 'khanda',\n icon: [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"]\n};\nvar faFaceFrownOpen = {\n prefix: 'fas',\n iconName: 'face-frown-open',\n icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faCheck = {\n prefix: 'fas',\n iconName: 'check',\n icon: [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"]\n};\nvar faFingerprint = {\n prefix: 'fas',\n iconName: 'fingerprint',\n icon: [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"]\n};\nvar faChargingStation = {\n prefix: 'fas',\n iconName: 'charging-station',\n icon: [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"]\n};\nvar faUserLock = {\n prefix: 'fas',\n iconName: 'user-lock',\n icon: [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faMobileScreenButton = {\n prefix: 'fas',\n iconName: 'mobile-screen-button',\n icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faAnchorCircleCheck = {\n prefix: 'fas',\n iconName: 'anchor-circle-check',\n icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faPersonWalkingWithCane = {\n prefix: 'fas',\n iconName: 'person-walking-with-cane',\n icon: [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faFileWaveform = {\n prefix: 'fas',\n iconName: 'file-waveform',\n icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faHouseCrack = {\n prefix: 'fas',\n iconName: 'house-crack',\n icon: [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"]\n};\nvar faHatWizard = {\n prefix: 'fas',\n iconName: 'hat-wizard',\n icon: [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faUserDoctor = {\n prefix: 'fas',\n iconName: 'user-doctor',\n icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faChartBar = {\n prefix: 'fas',\n iconName: 'chart-bar',\n icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faSprayCanSparkles = {\n prefix: 'fas',\n iconName: 'spray-can-sparkles',\n icon: [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faBahtSign = {\n prefix: 'fas',\n iconName: 'baht-sign',\n icon: [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"]\n};\nvar faTemperatureArrowUp = {\n prefix: 'fas',\n iconName: 'temperature-arrow-up',\n icon: [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faWebAwesome = {\n prefix: 'fas',\n iconName: 'web-awesome',\n icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nvar faNonBinary = {\n prefix: 'fas',\n iconName: 'non-binary',\n icon: [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faN = {\n prefix: 'fas',\n iconName: 'n',\n icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faArrowsUpDownLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-up-down-left-right',\n icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faHouse = {\n prefix: 'fas',\n iconName: 'house',\n icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faSpinner = {\n prefix: 'fas',\n iconName: 'spinner',\n icon: [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"]\n};\nvar faGavel = {\n prefix: 'fas',\n iconName: 'gavel',\n icon: [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"]\n};\nvar faLegal = faGavel;\nvar faTicketSimple = {\n prefix: 'fas',\n iconName: 'ticket-simple',\n icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faDove = {\n prefix: 'fas',\n iconName: 'dove',\n icon: [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"]\n};\nvar faTarpDroplet = {\n prefix: 'fas',\n iconName: 'tarp-droplet',\n icon: [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTreeCity = {\n prefix: 'fas',\n iconName: 'tree-city',\n icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faTurnUp = {\n prefix: 'fas',\n iconName: 'turn-up',\n icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar faTemperatureQuarter = {\n prefix: 'fas',\n iconName: 'temperature-quarter',\n icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faSliders = {\n prefix: 'fas',\n iconName: 'sliders',\n icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"]\n};\nvar faSlidersH = faSliders;\nvar faMosque = {\n prefix: 'fas',\n iconName: 'mosque',\n icon: [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"]\n};\nvar faH = {\n prefix: 'fas',\n iconName: 'h',\n icon: [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"]\n};\nvar faInfo = {\n prefix: 'fas',\n iconName: 'info',\n icon: [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonWalking = {\n prefix: 'fas',\n iconName: 'person-walking',\n icon: [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"]\n};\nvar faWalking = faPersonWalking;\nvar faArrowTurnDown = {\n prefix: 'fas',\n iconName: 'arrow-turn-down',\n icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faRoad = {\n prefix: 'fas',\n iconName: 'road',\n icon: [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSpiral = {\n prefix: 'fas',\n iconName: 'spiral',\n icon: [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"]\n};\nvar faFaceFrown = {\n prefix: 'fas',\n iconName: 'face-frown',\n icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faWineGlassEmpty = {\n prefix: 'fas',\n iconName: 'wine-glass-empty',\n icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faClapperboard = {\n prefix: 'fas',\n iconName: 'clapperboard',\n icon: [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"]\n};\nvar faForwardStep = {\n prefix: 'fas',\n iconName: 'forward-step',\n icon: [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"]\n};\nvar faStepForward = faForwardStep;\nvar faSquareUpRight = {\n prefix: 'fas',\n iconName: 'square-up-right',\n icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faBookJournalWhills = {\n prefix: 'fas',\n iconName: 'book-journal-whills',\n icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faChampagneGlasses = {\n prefix: 'fas',\n iconName: 'champagne-glasses',\n icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faDumpster = {\n prefix: 'fas',\n iconName: 'dumpster',\n icon: [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"]\n};\nvar faHeartCircleXmark = {\n prefix: 'fas',\n iconName: 'heart-circle-xmark',\n icon: [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faComputer = {\n prefix: 'fas',\n iconName: 'computer',\n icon: [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faWandMagic = {\n prefix: 'fas',\n iconName: 'wand-magic',\n icon: [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faBrain = {\n prefix: 'fas',\n iconName: 'brain',\n icon: [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"]\n};\nvar faBriefcaseMedical = {\n prefix: 'fas',\n iconName: 'briefcase-medical',\n icon: [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n prefix: 'fas',\n iconName: 'house-medical-circle-exclamation',\n icon: [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCodeCommit = {\n prefix: 'fas',\n iconName: 'code-commit',\n icon: [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"]\n};\nvar faPersonBreastfeeding = {\n prefix: 'fas',\n iconName: 'person-breastfeeding',\n icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nvar faPersonRays = {\n prefix: 'fas',\n iconName: 'person-rays',\n icon: [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"]\n};\nvar faManatSign = {\n prefix: 'fas',\n iconName: 'manat-sign',\n icon: [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"]\n};\nvar faSort = {\n prefix: 'fas',\n iconName: 'sort',\n icon: [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"]\n};\nvar faUnsorted = faSort;\nvar faCircleRadiation = {\n prefix: 'fas',\n iconName: 'circle-radiation',\n icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faLaptopCode = {\n prefix: 'fas',\n iconName: 'laptop-code',\n icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSink = {\n prefix: 'fas',\n iconName: 'sink',\n icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"]\n};\nvar faArrowUpFromWaterPump = {\n prefix: 'fas',\n iconName: 'arrow-up-from-water-pump',\n icon: [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"]\n};\nvar faMicrophoneLinesSlash = {\n prefix: 'fas',\n iconName: 'microphone-lines-slash',\n icon: [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faServer = {\n prefix: 'fas',\n iconName: 'server',\n icon: [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faUser = {\n prefix: 'fas',\n iconName: 'user',\n icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n prefix: 'fas',\n iconName: 'snowflake',\n icon: [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"]\n};\nvar faSkullCrossbones = {\n prefix: 'fas',\n iconName: 'skull-crossbones',\n icon: [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"]\n};\nvar faPesoSign = {\n prefix: 'fas',\n iconName: 'peso-sign',\n icon: [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"]\n};\nvar faWineGlass = {\n prefix: 'fas',\n iconName: 'wine-glass',\n icon: [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"]\n};\nvar faTemperatureHalf = {\n prefix: 'fas',\n iconName: 'temperature-half',\n icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faTicket = {\n prefix: 'fas',\n iconName: 'ticket',\n icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faWheatAwnCircleExclamation = {\n prefix: 'fas',\n iconName: 'wheat-awn-circle-exclamation',\n icon: [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"]\n};\nvar faArrowsTurnRight = {\n prefix: 'fas',\n iconName: 'arrows-turn-right',\n icon: [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCandyCane = {\n prefix: 'fas',\n iconName: 'candy-cane',\n icon: [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"]\n};\nvar faWheelchair = {\n prefix: 'fas',\n iconName: 'wheelchair',\n icon: [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"]\n};\nvar faSpellCheck = {\n prefix: 'fas',\n iconName: 'spell-check',\n icon: [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"]\n};\nvar faVolumeOff = {\n prefix: 'fas',\n iconName: 'volume-off',\n icon: [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"]\n};\nvar faLungs = {\n prefix: 'fas',\n iconName: 'lungs',\n icon: [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"]\n};\nvar faBookmark = {\n prefix: 'fas',\n iconName: 'bookmark',\n icon: [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faBarcode = {\n prefix: 'fas',\n iconName: 'barcode',\n icon: [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListOl = {\n prefix: 'fas',\n iconName: 'list-ol',\n icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faFileCircleXmark = {\n prefix: 'fas',\n iconName: 'file-circle-xmark',\n icon: [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faCube = {\n prefix: 'fas',\n iconName: 'cube',\n icon: [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"]\n};\nvar faTape = {\n prefix: 'fas',\n iconName: 'tape',\n icon: [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faBomb = {\n prefix: 'fas',\n iconName: 'bomb',\n icon: [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faScaleUnbalanced = {\n prefix: 'fas',\n iconName: 'scale-unbalanced',\n icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSquareCaretLeft = {\n prefix: 'fas',\n iconName: 'square-caret-left',\n icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faRuler = {\n prefix: 'fas',\n iconName: 'ruler',\n icon: [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"]\n};\nvar faI = {\n prefix: 'fas',\n iconName: 'i',\n icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faVolumeXmark = {\n prefix: 'fas',\n iconName: 'volume-xmark',\n icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faArchway = {\n prefix: 'fas',\n iconName: 'archway',\n icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"]\n};\nvar faPersonDigging = {\n prefix: 'fas',\n iconName: 'person-digging',\n icon: [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"]\n};\nvar faDigging = faPersonDigging;\nvar faGaugeHigh = {\n prefix: 'fas',\n iconName: 'gauge-high',\n icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faGenderless = {\n prefix: 'fas',\n iconName: 'genderless',\n icon: [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"]\n};\nvar faCloudSun = {\n prefix: 'fas',\n iconName: 'cloud-sun',\n icon: [576, 512, [9925], \"f6c4\", \"M453.6-14.8c4.9 2 8.5 6.4 9.5 11.6L480 80 563.2 96.8c5.2 1.1 9.5 4.6 11.6 9.5s1.5 10.5-1.4 14.9l-46.9 70.7 46.9 70.7c2.9 4.4 3.5 10 1.4 14.9s-6.4 8.5-11.6 9.5L501 299.7c-11.9-8.7-25.1-15.6-39.4-20.4-2.5-12.7-6.8-24.7-12.7-35.7 9.5-14.9 15.1-32.6 15.1-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-26.5-20.3-59.5-32.5-95.4-32.9l-15.1-22.7c-2.9-4.4-3.5-10-1.4-14.9s6.4-8.5 11.6-9.5L256 80 272.8-3.2c1.1-5.2 4.6-9.5 9.5-11.6s10.5-1.5 14.9 1.4L368 33.6 438.7-13.3c4.4-2.9 10-3.5 14.9-1.4zM416 192c0 3.8-.4 7.5-1.3 11.1-21.7-17-49-27.1-78.7-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.4-32.7 45.5-32.7 26.5 0 48 21.5 48 48zM96 512c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 512z\"]\n};\nvar faArrowRight = {\n prefix: 'fas',\n iconName: 'arrow-right',\n icon: [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faHandshake = {\n prefix: 'fas',\n iconName: 'handshake',\n icon: [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faPersonSkiing = {\n prefix: 'fas',\n iconName: 'person-skiing',\n icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faBridgeWater = {\n prefix: 'fas',\n iconName: 'bridge-water',\n icon: [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faBuildingNgo = {\n prefix: 'fas',\n iconName: 'building-ngo',\n icon: [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"]\n};\nvar faIgloo = {\n prefix: 'fas',\n iconName: 'igloo',\n icon: [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"]\n};\nvar faCircleDollarToSlot = {\n prefix: 'fas',\n iconName: 'circle-dollar-to-slot',\n icon: [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faY = {\n prefix: 'fas',\n iconName: 'y',\n icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faFaceSmileWink = {\n prefix: 'fas',\n iconName: 'face-smile-wink',\n icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faDiceFour = {\n prefix: 'fas',\n iconName: 'dice-four',\n icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFaceGrinSquintTears = {\n prefix: 'fas',\n iconName: 'face-grin-squint-tears',\n icon: [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n prefix: 'fas',\n iconName: 'file-audio',\n icon: [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"]\n};\nvar faArrowsDownToLine = {\n prefix: 'fas',\n iconName: 'arrows-down-to-line',\n icon: [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"]\n};\nvar faG = {\n prefix: 'fas',\n iconName: 'g',\n icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faVihara = {\n prefix: 'fas',\n iconName: 'vihara',\n icon: [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"]\n};\nvar faFlagCheckered = {\n prefix: 'fas',\n iconName: 'flag-checkered',\n icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faGaugeSimple = {\n prefix: 'fas',\n iconName: 'gauge-simple',\n icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faRightLeft = {\n prefix: 'fas',\n iconName: 'right-left',\n icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPills = {\n prefix: 'fas',\n iconName: 'pills',\n icon: [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"]\n};\nvar faExplosion = {\n prefix: 'fas',\n iconName: 'explosion',\n icon: [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"]\n};\nvar faArrowsDownToPeople = {\n prefix: 'fas',\n iconName: 'arrows-down-to-people',\n icon: [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"]\n};\nvar faUsersViewfinder = {\n prefix: 'fas',\n iconName: 'users-viewfinder',\n icon: [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarOn = {\n prefix: 'fas',\n iconName: 'car-on',\n icon: [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"]\n};\nvar faSleigh = {\n prefix: 'fas',\n iconName: 'sleigh',\n icon: [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"]\n};\nvar faDumbbell = {\n prefix: 'fas',\n iconName: 'dumbbell',\n icon: [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"]\n};\nvar faBabyCarriage = {\n prefix: 'fas',\n iconName: 'baby-carriage',\n icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faKiwiBird = {\n prefix: 'fas',\n iconName: 'kiwi-bird',\n icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faCalendarXmark = {\n prefix: 'fas',\n iconName: 'calendar-xmark',\n icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n prefix: 'fas',\n iconName: 'circle-down',\n icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileMedical = {\n prefix: 'fas',\n iconName: 'file-medical',\n icon: [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faXmark = {\n prefix: 'fas',\n iconName: 'xmark',\n icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faShapes = {\n prefix: 'fas',\n iconName: 'shapes',\n icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faDiceOne = {\n prefix: 'fas',\n iconName: 'dice-one',\n icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLockOpen = {\n prefix: 'fas',\n iconName: 'lock-open',\n icon: [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"]\n};\nvar faPepperHot = {\n prefix: 'fas',\n iconName: 'pepper-hot',\n icon: [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"]\n};\nvar faDropletSlash = {\n prefix: 'fas',\n iconName: 'droplet-slash',\n icon: [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faDroplet = {\n prefix: 'fas',\n iconName: 'droplet',\n icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"]\n};\nvar faTint = faDroplet;\nvar faFileLines = {\n prefix: 'fas',\n iconName: 'file-lines',\n icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCommentsDollar = {\n prefix: 'fas',\n iconName: 'comments-dollar',\n icon: [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faMagnifyingGlassLocation = {\n prefix: 'fas',\n iconName: 'magnifying-glass-location',\n icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faFileInvoice = {\n prefix: 'fas',\n iconName: 'file-invoice',\n icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPentagon = {\n prefix: 'fas',\n iconName: 'pentagon',\n icon: [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"]\n};\nvar faRepublican = {\n prefix: 'fas',\n iconName: 'republican',\n icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"]\n};\nvar faShop = {\n prefix: 'fas',\n iconName: 'shop',\n icon: [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"]\n};\nvar faStoreAlt = faShop;\nvar faFilm = {\n prefix: 'fas',\n iconName: 'film',\n icon: [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nvar faFilmAlt = faFilm;\nvar faFilmSimple = faFilm;\nvar faBuildingCircleXmark = {\n prefix: 'fas',\n iconName: 'building-circle-xmark',\n icon: [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"]\n};\nvar faComments = {\n prefix: 'fas',\n iconName: 'comments',\n icon: [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"]\n};\nvar faTags = {\n prefix: 'fas',\n iconName: 'tags',\n icon: [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faGun = {\n prefix: 'fas',\n iconName: 'gun',\n icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faCircleCheck = {\n prefix: 'fas',\n iconName: 'circle-check',\n icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faIdCardClip = {\n prefix: 'fas',\n iconName: 'id-card-clip',\n icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMoon = {\n prefix: 'fas',\n iconName: 'moon',\n icon: [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"]\n};\nvar faOilWell = {\n prefix: 'fas',\n iconName: 'oil-well',\n icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"]\n};\nvar faTachographDigital = {\n prefix: 'fas',\n iconName: 'tachograph-digital',\n icon: [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faTablet = {\n prefix: 'fas',\n iconName: 'tablet',\n icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faRubleSign = {\n prefix: 'fas',\n iconName: 'ruble-sign',\n icon: [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faClosedCaptioning = {\n prefix: 'fas',\n iconName: 'closed-captioning',\n icon: [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faPen = {\n prefix: 'fas',\n iconName: 'pen',\n icon: [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"]\n};\nvar faPlane = {\n prefix: 'fas',\n iconName: 'plane',\n icon: [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"]\n};\nvar faImages = {\n prefix: 'fas',\n iconName: 'images',\n icon: [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"]\n};\nvar faMobileScreen = {\n prefix: 'fas',\n iconName: 'mobile-screen',\n icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faGuaraniSign = {\n prefix: 'fas',\n iconName: 'guarani-sign',\n icon: [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"]\n};\nvar faBagShopping = {\n prefix: 'fas',\n iconName: 'bag-shopping',\n icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faCircleRight = {\n prefix: 'fas',\n iconName: 'circle-right',\n icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPhoneVolume = {\n prefix: 'fas',\n iconName: 'phone-volume',\n icon: [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faCubes = {\n prefix: 'fas',\n iconName: 'cubes',\n icon: [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"]\n};\nvar faPhone = {\n prefix: 'fas',\n iconName: 'phone',\n icon: [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"]\n};\nvar faToriiGate = {\n prefix: 'fas',\n iconName: 'torii-gate',\n icon: [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faBacon = {\n prefix: 'fas',\n iconName: 'bacon',\n icon: [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"]\n};\nvar faPersonFallingBurst = {\n prefix: 'fas',\n iconName: 'person-falling-burst',\n icon: [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faQuoteRight = {\n prefix: 'fas',\n iconName: 'quote-right',\n icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faHouseMedicalFlag = {\n prefix: 'fas',\n iconName: 'house-medical-flag',\n icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"]\n};\nvar faPrescription = {\n prefix: 'fas',\n iconName: 'prescription',\n icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faDiceThree = {\n prefix: 'fas',\n iconName: 'dice-three',\n icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBuildingLock = {\n prefix: 'fas',\n iconName: 'building-lock',\n icon: [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faIdCard = {\n prefix: 'fas',\n iconName: 'id-card',\n icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n prefix: 'fas',\n iconName: 'circle-play',\n icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n prefix: 'fas',\n iconName: 'face-laugh-beam',\n icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faLeaf = {\n prefix: 'fas',\n iconName: 'leaf',\n icon: [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"]\n};\nvar faHouseChimneyUser = {\n prefix: 'fas',\n iconName: 'house-chimney-user',\n icon: [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar faRotateRight = {\n prefix: 'fas',\n iconName: 'rotate-right',\n icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faTooth = {\n prefix: 'fas',\n iconName: 'tooth',\n icon: [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"]\n};\nvar faHouseChimneyWindow = {\n prefix: 'fas',\n iconName: 'house-chimney-window',\n icon: [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"]\n};\nvar faMotorcycle = {\n prefix: 'fas',\n iconName: 'motorcycle',\n icon: [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"]\n};\nvar faBackwardFast = {\n prefix: 'fas',\n iconName: 'backward-fast',\n icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faAddressBook = {\n prefix: 'fas',\n iconName: 'address-book',\n icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faContactBook = faAddressBook;\nvar faSailboat = {\n prefix: 'fas',\n iconName: 'sailboat',\n icon: [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"]\n};\nvar faBookBookmark = {\n prefix: 'fas',\n iconName: 'book-bookmark',\n icon: [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n prefix: 'fas',\n iconName: 'magnifying-glass-arrow-right',\n icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faMicrophoneLines = {\n prefix: 'fas',\n iconName: 'microphone-lines',\n icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faReplyAll = {\n prefix: 'fas',\n iconName: 'reply-all',\n icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faUniversalAccess = {\n prefix: 'fas',\n iconName: 'universal-access',\n icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faToiletPaper = {\n prefix: 'fas',\n iconName: 'toilet-paper',\n icon: [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"]\n};\nvar faToiletPaperAlt = faToiletPaper;\nvar faToiletPaperBlank = faToiletPaper;\nvar faVrCardboard = {\n prefix: 'fas',\n iconName: 'vr-cardboard',\n icon: [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faPizzaSlice = {\n prefix: 'fas',\n iconName: 'pizza-slice',\n icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSprayCan = {\n prefix: 'fas',\n iconName: 'spray-can',\n icon: [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faVolumeLow = {\n prefix: 'fas',\n iconName: 'volume-low',\n icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCross = {\n prefix: 'fas',\n iconName: 'cross',\n icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"]\n};\nvar faPerson = {\n prefix: 'fas',\n iconName: 'person',\n icon: [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"]\n};\nvar faMale = faPerson;\nvar faHourglass = {\n prefix: 'fas',\n iconName: 'hourglass',\n icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faFish = {\n prefix: 'fas',\n iconName: 'fish',\n icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDrumstickBite = {\n prefix: 'fas',\n iconName: 'drumstick-bite',\n icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"]\n};\nvar faChartSimple = {\n prefix: 'fas',\n iconName: 'chart-simple',\n icon: [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"]\n};\nvar faAtom = {\n prefix: 'fas',\n iconName: 'atom',\n icon: [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faP = {\n prefix: 'fas',\n iconName: 'p',\n icon: [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"]\n};\nvar faJetFighterUp = {\n prefix: 'fas',\n iconName: 'jet-fighter-up',\n icon: [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"]\n};\nvar faPlugCircleXmark = {\n prefix: 'fas',\n iconName: 'plug-circle-xmark',\n icon: [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faSheetPlastic = {\n prefix: 'fas',\n iconName: 'sheet-plastic',\n icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faV = {\n prefix: 'fas',\n iconName: 'v',\n icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faList = {\n prefix: 'fas',\n iconName: 'list',\n icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faListSquares = faList;\nvar faSolarPanel = {\n prefix: 'fas',\n iconName: 'solar-panel',\n icon: [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"]\n};\nvar faLandMineOn = {\n prefix: 'fas',\n iconName: 'land-mine-on',\n icon: [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"]\n};\nvar faHeadphones = {\n prefix: 'fas',\n iconName: 'headphones',\n icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faBus = {\n prefix: 'fas',\n iconName: 'bus',\n icon: [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faFilePowerpoint = {\n prefix: 'fas',\n iconName: 'file-powerpoint',\n icon: [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faQuoteLeft = {\n prefix: 'fas',\n iconName: 'quote-left',\n icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faChevronDown = {\n prefix: 'fas',\n iconName: 'chevron-down',\n icon: [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faEarthAsia = {\n prefix: 'fas',\n iconName: 'earth-asia',\n icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faCentSign = {\n prefix: 'fas',\n iconName: 'cent-sign',\n icon: [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"]\n};\nvar faShieldCat = {\n prefix: 'fas',\n iconName: 'shield-cat',\n icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faSchoolCircleCheck = {\n prefix: 'fas',\n iconName: 'school-circle-check',\n icon: [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faMartiniGlass = {\n prefix: 'fas',\n iconName: 'martini-glass',\n icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faPlug = {\n prefix: 'fas',\n iconName: 'plug',\n icon: [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"]\n};\nvar faPanorama = {\n prefix: 'fas',\n iconName: 'panorama',\n icon: [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"]\n};\nvar faClockRotateLeft = {\n prefix: 'fas',\n iconName: 'clock-rotate-left',\n icon: [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faJarWheat = {\n prefix: 'fas',\n iconName: 'jar-wheat',\n icon: [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faCloudArrowDown = {\n prefix: 'fas',\n iconName: 'cloud-arrow-down',\n icon: [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faTruckRampBox = {\n prefix: 'fas',\n iconName: 'truck-ramp-box',\n icon: [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faAngleDown = {\n prefix: 'fas',\n iconName: 'angle-down',\n icon: [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faPlugCircleCheck = {\n prefix: 'fas',\n iconName: 'plug-circle-check',\n icon: [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faWindowMaximize = {\n prefix: 'fas',\n iconName: 'window-maximize',\n icon: [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHandsHoldingCircle = {\n prefix: 'fas',\n iconName: 'hands-holding-circle',\n icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faLocationPin = {\n prefix: 'fas',\n iconName: 'location-pin',\n icon: [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faBowlingBall = {\n prefix: 'fas',\n iconName: 'bowling-ball',\n icon: [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCartFlatbed = {\n prefix: 'fas',\n iconName: 'cart-flatbed',\n icon: [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faHouseUser = {\n prefix: 'fas',\n iconName: 'house-user',\n icon: [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faGhost = {\n prefix: 'fas',\n iconName: 'ghost',\n icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommentNodes = {\n prefix: 'fas',\n iconName: 'comment-nodes',\n icon: [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"]\n};\nvar faPersonArrowDownToLine = {\n prefix: 'fas',\n iconName: 'person-arrow-down-to-line',\n icon: [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faPlugCirclePlus = {\n prefix: 'fas',\n iconName: 'plug-circle-plus',\n icon: [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faPersonSwimming = {\n prefix: 'fas',\n iconName: 'person-swimming',\n icon: [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faCommentDots = {\n prefix: 'fas',\n iconName: 'comment-dots',\n icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCommenting = faCommentDots;\nvar faChartPie = {\n prefix: 'fas',\n iconName: 'chart-pie',\n icon: [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"]\n};\nvar faPieChart = faChartPie;\nvar faFrog = {\n prefix: 'fas',\n iconName: 'frog',\n icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faWineBottle = {\n prefix: 'fas',\n iconName: 'wine-bottle',\n icon: [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"]\n};\nvar faInbox = {\n prefix: 'fas',\n iconName: 'inbox',\n icon: [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"]\n};\nvar faSquareH = {\n prefix: 'fas',\n iconName: 'square-h',\n icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faHouseMedical = {\n prefix: 'fas',\n iconName: 'house-medical',\n icon: [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faCircleChevronRight = {\n prefix: 'fas',\n iconName: 'circle-chevron-right',\n icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faFileCsv = {\n prefix: 'fas',\n iconName: 'file-csv',\n icon: [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"]\n};\nvar faHatCowboy = {\n prefix: 'fas',\n iconName: 'hat-cowboy',\n icon: [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"]\n};\nvar faFaceGrinTongueWink = {\n prefix: 'fas',\n iconName: 'face-grin-tongue-wink',\n icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faL = {\n prefix: 'fas',\n iconName: 'l',\n icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowDownShortWide = {\n prefix: 'fas',\n iconName: 'arrow-down-short-wide',\n icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faHourglassHalf = {\n prefix: 'fas',\n iconName: 'hourglass-half',\n icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faSpoon = {\n prefix: 'fas',\n iconName: 'spoon',\n icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faCreditCard = {\n prefix: 'fas',\n iconName: 'credit-card',\n icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faFileInvoiceDollar = {\n prefix: 'fas',\n iconName: 'file-invoice-dollar',\n icon: [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"]\n};\nvar faSpaghettiMonsterFlying = {\n prefix: 'fas',\n iconName: 'spaghetti-monster-flying',\n icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faMartiniGlassCitrus = {\n prefix: 'fas',\n iconName: 'martini-glass-citrus',\n icon: [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faBullhorn = {\n prefix: 'fas',\n iconName: 'bullhorn',\n icon: [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"]\n};\nvar faBoxTissue = {\n prefix: 'fas',\n iconName: 'box-tissue',\n icon: [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"]\n};\nvar faMattressPillow = {\n prefix: 'fas',\n iconName: 'mattress-pillow',\n icon: [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faChevronLeft = {\n prefix: 'fas',\n iconName: 'chevron-left',\n icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faCloudMoonRain = {\n prefix: 'fas',\n iconName: 'cloud-moon-rain',\n icon: [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"]\n};\nvar faArrowDown19 = {\n prefix: 'fas',\n iconName: 'arrow-down-1-9',\n icon: [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandSpock = {\n prefix: 'fas',\n iconName: 'hand-spock',\n icon: [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faWandMagicSparkles = {\n prefix: 'fas',\n iconName: 'wand-magic-sparkles',\n icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faCommentMedical = {\n prefix: 'fas',\n iconName: 'comment-medical',\n icon: [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"]\n};\nvar faBellSlash = {\n prefix: 'fas',\n iconName: 'bell-slash',\n icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"]\n};\nvar faHandshakeSlash = {\n prefix: 'fas',\n iconName: 'handshake-slash',\n icon: [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSlash;\nvar faHandshakeSimpleSlash = faHandshakeSlash;\nvar faBottleWater = {\n prefix: 'fas',\n iconName: 'bottle-water',\n icon: [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"]\n};\nvar faDiceD20 = {\n prefix: 'fas',\n iconName: 'dice-d20',\n icon: [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"]\n};\nvar faArrowDownZA = {\n prefix: 'fas',\n iconName: 'arrow-down-z-a',\n icon: [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faBrush = {\n prefix: 'fas',\n iconName: 'brush',\n icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n prefix: 'fas',\n iconName: 'person-walking-dashed-line-arrow-right',\n icon: [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faArrowUpShortWide = {\n prefix: 'fas',\n iconName: 'arrow-up-short-wide',\n icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faGripVertical = {\n prefix: 'fas',\n iconName: 'grip-vertical',\n icon: [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"]\n};\nvar faGridVertical = faGripVertical;\nvar faCarTunnel = {\n prefix: 'fas',\n iconName: 'car-tunnel',\n icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faChartColumn = {\n prefix: 'fas',\n iconName: 'chart-column',\n icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faTruckArrowRight = {\n prefix: 'fas',\n iconName: 'truck-arrow-right',\n icon: [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faTv = {\n prefix: 'fas',\n iconName: 'tv',\n icon: [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faSection = {\n prefix: 'fas',\n iconName: 'section',\n icon: [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"]\n};\nvar faPeace = {\n prefix: 'fas',\n iconName: 'peace',\n icon: [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faStar = {\n prefix: 'fas',\n iconName: 'star',\n icon: [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"]\n};\nvar faFlag = {\n prefix: 'fas',\n iconName: 'flag',\n icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"]\n};\nvar faTriangleExclamation = {\n prefix: 'fas',\n iconName: 'triangle-exclamation',\n icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faSchoolCircleExclamation = {\n prefix: 'fas',\n iconName: 'school-circle-exclamation',\n icon: [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faGraduationCap = {\n prefix: 'fas',\n iconName: 'graduation-cap',\n icon: [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faStore = {\n prefix: 'fas',\n iconName: 'store',\n icon: [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"]\n};\nvar faUserAstronaut = {\n prefix: 'fas',\n iconName: 'user-astronaut',\n icon: [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"]\n};\nvar faBuildingFlag = {\n prefix: 'fas',\n iconName: 'building-flag',\n icon: [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMugSaucer = {\n prefix: 'fas',\n iconName: 'mug-saucer',\n icon: [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faLemon = {\n prefix: 'fas',\n iconName: 'lemon',\n icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faCaravan = {\n prefix: 'fas',\n iconName: 'caravan',\n icon: [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faQ = {\n prefix: 'fas',\n iconName: 'q',\n icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faLock = {\n prefix: 'fas',\n iconName: 'lock',\n icon: [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faPaintRoller = {\n prefix: 'fas',\n iconName: 'paint-roller',\n icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faVolumeHigh = {\n prefix: 'fas',\n iconName: 'volume-high',\n icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faFolderPlus = {\n prefix: 'fas',\n iconName: 'folder-plus',\n icon: [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faMercury = {\n prefix: 'fas',\n iconName: 'mercury',\n icon: [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"]\n};\nvar faAnchor = {\n prefix: 'fas',\n iconName: 'anchor',\n icon: [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"]\n};\nvar faSquareParking = {\n prefix: 'fas',\n iconName: 'square-parking',\n icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHanukiah = {\n prefix: 'fas',\n iconName: 'hanukiah',\n icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"]\n};\nvar faRotateLeft = {\n prefix: 'fas',\n iconName: 'rotate-left',\n icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faHeading = {\n prefix: 'fas',\n iconName: 'heading',\n icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faCrosshairs = {\n prefix: 'fas',\n iconName: 'crosshairs',\n icon: [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCircleNodes = {\n prefix: 'fas',\n iconName: 'circle-nodes',\n icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faWindowRestore = {\n prefix: 'fas',\n iconName: 'window-restore',\n icon: [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"]\n};\nvar faR = {\n prefix: 'fas',\n iconName: 'r',\n icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFilterCircleXmark = {\n prefix: 'fas',\n iconName: 'filter-circle-xmark',\n icon: [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGopuram = {\n prefix: 'fas',\n iconName: 'gopuram',\n icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faHeartCircleMinus = {\n prefix: 'fas',\n iconName: 'heart-circle-minus',\n icon: [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faStarOfLife = {\n prefix: 'fas',\n iconName: 'star-of-life',\n icon: [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"]\n};\nvar faBusinessTime = {\n prefix: 'fas',\n iconName: 'business-time',\n icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faFireExtinguisher = {\n prefix: 'fas',\n iconName: 'fire-extinguisher',\n icon: [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faArrowDownLong = {\n prefix: 'fas',\n iconName: 'arrow-down-long',\n icon: [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faUserMinus = {\n prefix: 'fas',\n iconName: 'user-minus',\n icon: [640, 512, [], \"f503\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM472 168l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMoneyCheck = {\n prefix: 'fas',\n iconName: 'money-check',\n icon: [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faHouseLaptop = {\n prefix: 'fas',\n iconName: 'house-laptop',\n icon: [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faDownload = {\n prefix: 'fas',\n iconName: 'download',\n icon: [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faCouch = {\n prefix: 'fas',\n iconName: 'couch',\n icon: [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"]\n};\nvar faRoadLock = {\n prefix: 'fas',\n iconName: 'road-lock',\n icon: [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faScissors = {\n prefix: 'fas',\n iconName: 'scissors',\n icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCut = faScissors;\nvar faBug = {\n prefix: 'fas',\n iconName: 'bug',\n icon: [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"]\n};\nvar faArrowRightFromBracket = {\n prefix: 'fas',\n iconName: 'arrow-right-from-bracket',\n icon: [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faHandHoldingHand = {\n prefix: 'fas',\n iconName: 'hand-holding-hand',\n icon: [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faStroopwafel = {\n prefix: 'fas',\n iconName: 'stroopwafel',\n icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"]\n};\nvar faChild = {\n prefix: 'fas',\n iconName: 'child',\n icon: [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"]\n};\nvar faIceCream = {\n prefix: 'fas',\n iconName: 'ice-cream',\n icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"]\n};\nvar faComputerMouse = {\n prefix: 'fas',\n iconName: 'computer-mouse',\n icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"]\n};\nvar faMouse = faComputerMouse;\nvar faFaucet = {\n prefix: 'fas',\n iconName: 'faucet',\n icon: [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"]\n};\nvar faAward = {\n prefix: 'fas',\n iconName: 'award',\n icon: [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPersonDrowning = {\n prefix: 'fas',\n iconName: 'person-drowning',\n icon: [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faCameraRotate = {\n prefix: 'fas',\n iconName: 'camera-rotate',\n icon: [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"]\n};\nvar faFaceGrinHearts = {\n prefix: 'fas',\n iconName: 'face-grin-hearts',\n icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFileFragment = {\n prefix: 'fas',\n iconName: 'file-fragment',\n icon: [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"]\n};\nvar faPersonMilitaryRifle = {\n prefix: 'fas',\n iconName: 'person-military-rifle',\n icon: [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faToggleOn = {\n prefix: 'fas',\n iconName: 'toggle-on',\n icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLungsVirus = {\n prefix: 'fas',\n iconName: 'lungs-virus',\n icon: [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTableTennisPaddleBall = {\n prefix: 'fas',\n iconName: 'table-tennis-paddle-ball',\n icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faBoxesPacking = {\n prefix: 'fas',\n iconName: 'boxes-packing',\n icon: [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faPersonChalkboard = {\n prefix: 'fas',\n iconName: 'person-chalkboard',\n icon: [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDiceTwo = {\n prefix: 'fas',\n iconName: 'dice-two',\n icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowRightArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-right-arrow-left',\n icon: [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faFootball = {\n prefix: 'fas',\n iconName: 'football',\n icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFootballBall = faFootball;\nvar faTruckMonster = {\n prefix: 'fas',\n iconName: 'truck-monster',\n icon: [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faAsterisk = {\n prefix: 'fas',\n iconName: 'asterisk',\n icon: [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"]\n};\nvar faBatteryFull = {\n prefix: 'fas',\n iconName: 'battery-full',\n icon: [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faChildDress = {\n prefix: 'fas',\n iconName: 'child-dress',\n icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"]\n};\nvar faFaceKissBeam = {\n prefix: 'fas',\n iconName: 'face-kiss-beam',\n icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faTrashCanArrowUp = {\n prefix: 'fas',\n iconName: 'trash-can-arrow-up',\n icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faFont = {\n prefix: 'fas',\n iconName: 'font',\n icon: [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"]\n};\nvar faBoreHole = {\n prefix: 'fas',\n iconName: 'bore-hole',\n icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"]\n};\nvar faVirusCovid = {\n prefix: 'fas',\n iconName: 'virus-covid',\n icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFilePdf = {\n prefix: 'fas',\n iconName: 'file-pdf',\n icon: [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"]\n};\nvar faLanguage = {\n prefix: 'fas',\n iconName: 'language',\n icon: [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"]\n};\nvar faShieldHalved = {\n prefix: 'fas',\n iconName: 'shield-halved',\n icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faCaretUp = {\n prefix: 'fas',\n iconName: 'caret-up',\n icon: [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"]\n};\nvar faFilePen = {\n prefix: 'fas',\n iconName: 'file-pen',\n icon: [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faFileEdit = faFilePen;\nvar faPersonBiking = {\n prefix: 'fas',\n iconName: 'person-biking',\n icon: [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBookOpenReader = {\n prefix: 'fas',\n iconName: 'book-open-reader',\n icon: [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faGlassWaterDroplet = {\n prefix: 'fas',\n iconName: 'glass-water-droplet',\n icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faTowerBroadcast = {\n prefix: 'fas',\n iconName: 'tower-broadcast',\n icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faMinimize = {\n prefix: 'fas',\n iconName: 'minimize',\n icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faArrowRightToCity = {\n prefix: 'fas',\n iconName: 'arrow-right-to-city',\n icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faLaptopMedical = {\n prefix: 'fas',\n iconName: 'laptop-medical',\n icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faBreadSlice = {\n prefix: 'fas',\n iconName: 'bread-slice',\n icon: [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"]\n};\nvar faGlobe = {\n prefix: 'fas',\n iconName: 'globe',\n icon: [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"]\n};\nvar faFolderMinus = {\n prefix: 'fas',\n iconName: 'folder-minus',\n icon: [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMaskFace = {\n prefix: 'fas',\n iconName: 'mask-face',\n icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBong = {\n prefix: 'fas',\n iconName: 'bong',\n icon: [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"]\n};\nvar faRoadBridge = {\n prefix: 'fas',\n iconName: 'road-bridge',\n icon: [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"]\n};\nvar faArrowUp91 = {\n prefix: 'fas',\n iconName: 'arrow-up-9-1',\n icon: [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faMountainCity = {\n prefix: 'fas',\n iconName: 'mountain-city',\n icon: [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"]\n};\nvar faArrowDown91 = {\n prefix: 'fas',\n iconName: 'arrow-down-9-1',\n icon: [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinWide = {\n prefix: 'fas',\n iconName: 'face-grin-wide',\n icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faPoop = {\n prefix: 'fas',\n iconName: 'poop',\n icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faDharmachakra = {\n prefix: 'fas',\n iconName: 'dharmachakra',\n icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBatteryQuarter = {\n prefix: 'fas',\n iconName: 'battery-quarter',\n icon: [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faAnkh = {\n prefix: 'fas',\n iconName: 'ankh',\n icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"]\n};\nvar faDiamond = {\n prefix: 'fas',\n iconName: 'diamond',\n icon: [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"]\n};\nvar faSubscript = {\n prefix: 'fas',\n iconName: 'subscript',\n icon: [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"]\n};\nvar faRupeeSign = {\n prefix: 'fas',\n iconName: 'rupee-sign',\n icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"]\n};\nvar faRupee = faRupeeSign;\nvar faPersonRifle = {\n prefix: 'fas',\n iconName: 'person-rifle',\n icon: [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faD = {\n prefix: 'fas',\n iconName: 'd',\n icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"]\n};\nvar faSquareNfi = {\n prefix: 'fas',\n iconName: 'square-nfi',\n icon: [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTeeth = {\n prefix: 'fas',\n iconName: 'teeth',\n icon: [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"]\n};\nvar faMagnifyingGlassDollar = {\n prefix: 'fas',\n iconName: 'magnifying-glass-dollar',\n icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faDumpsterFire = {\n prefix: 'fas',\n iconName: 'dumpster-fire',\n icon: [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faUpload = {\n prefix: 'fas',\n iconName: 'upload',\n icon: [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faUserSlash = {\n prefix: 'fas',\n iconName: 'user-slash',\n icon: [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"]\n};\nvar faUserAltSlash = faUserSlash;\nvar faUserLargeSlash = faUserSlash;\nvar faArrowLeft = {\n prefix: 'fas',\n iconName: 'arrow-left',\n icon: [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faVialVirus = {\n prefix: 'fas',\n iconName: 'vial-virus',\n icon: [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCheckDouble = {\n prefix: 'fas',\n iconName: 'check-double',\n icon: [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"]\n};\nvar faPaw = {\n prefix: 'fas',\n iconName: 'paw',\n icon: [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"]\n};\nvar faHelmetSafety = {\n prefix: 'fas',\n iconName: 'helmet-safety',\n icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faE = {\n prefix: 'fas',\n iconName: 'e',\n icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faFaceLaughSquint = {\n prefix: 'fas',\n iconName: 'face-laugh-squint',\n icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faDownLeftAndUpRightToCenter = {\n prefix: 'fas',\n iconName: 'down-left-and-up-right-to-center',\n icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faGifts = {\n prefix: 'fas',\n iconName: 'gifts',\n icon: [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"]\n};\nvar faBed = {\n prefix: 'fas',\n iconName: 'bed',\n icon: [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faMoneyBillTransfer = {\n prefix: 'fas',\n iconName: 'money-bill-transfer',\n icon: [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"]\n};\nvar faPersonRunning = {\n prefix: 'fas',\n iconName: 'person-running',\n icon: [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"]\n};\nvar faRunning = faPersonRunning;\nvar faCircleChevronDown = {\n prefix: 'fas',\n iconName: 'circle-chevron-down',\n icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUserNurse = {\n prefix: 'fas',\n iconName: 'user-nurse',\n icon: [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"]\n};\nvar faFaceKissWinkHeart = {\n prefix: 'fas',\n iconName: 'face-kiss-wink-heart',\n icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFill = {\n prefix: 'fas',\n iconName: 'fill',\n icon: [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"]\n};\nvar faMoneyBill1Wave = {\n prefix: 'fas',\n iconName: 'money-bill-1-wave',\n icon: [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLandmark = {\n prefix: 'fas',\n iconName: 'landmark',\n icon: [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"]\n};\nvar faMusic = {\n prefix: 'fas',\n iconName: 'music',\n icon: [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"]\n};\nvar faBookMedical = {\n prefix: 'fas',\n iconName: 'book-medical',\n icon: [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faShuffle = {\n prefix: 'fas',\n iconName: 'shuffle',\n icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faUnderline = {\n prefix: 'fas',\n iconName: 'underline',\n icon: [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faBuildingUser = {\n prefix: 'fas',\n iconName: 'building-user',\n icon: [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faRobot = {\n prefix: 'fas',\n iconName: 'robot',\n icon: [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faPlus = {\n prefix: 'fas',\n iconName: 'plus',\n icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"]\n};\nvar faAdd = faPlus;\nvar faCopy = {\n prefix: 'fas',\n iconName: 'copy',\n icon: [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"]\n};\nvar faChessKing = {\n prefix: 'fas',\n iconName: 'chess-king',\n icon: [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faHouseFloodWater = {\n prefix: 'fas',\n iconName: 'house-flood-water',\n icon: [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faBitcoinSign = {\n prefix: 'fas',\n iconName: 'bitcoin-sign',\n icon: [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nvar faBox = {\n prefix: 'fas',\n iconName: 'box',\n icon: [448, 512, [128230], \"f466\", \"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"]\n};\nvar faSquarePlus = {\n prefix: 'fas',\n iconName: 'square-plus',\n icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faArrowsLeftRight = {\n prefix: 'fas',\n iconName: 'arrows-left-right',\n icon: [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faFan = {\n prefix: 'fas',\n iconName: 'fan',\n icon: [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCrow = {\n prefix: 'fas',\n iconName: 'crow',\n icon: [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFileCircleCheck = {\n prefix: 'fas',\n iconName: 'file-circle-check',\n icon: [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faLinkSlash = {\n prefix: 'fas',\n iconName: 'link-slash',\n icon: [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faArrowRotateRight = {\n prefix: 'fas',\n iconName: 'arrow-rotate-right',\n icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faPenClip = {\n prefix: 'fas',\n iconName: 'pen-clip',\n icon: [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"]\n};\nvar faPenAlt = faPenClip;\nvar faDoorClosed = {\n prefix: 'fas',\n iconName: 'door-closed',\n icon: [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowDownWideShort = {\n prefix: 'fas',\n iconName: 'arrow-down-wide-short',\n icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCaretDown = {\n prefix: 'fas',\n iconName: 'caret-down',\n icon: [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"]\n};\nvar faK = {\n prefix: 'fas',\n iconName: 'k',\n icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faCheckToSlot = {\n prefix: 'fas',\n iconName: 'check-to-slot',\n icon: [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faFishFins = {\n prefix: 'fas',\n iconName: 'fish-fins',\n icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCompress = {\n prefix: 'fas',\n iconName: 'compress',\n icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"]\n};\nvar faArrowUpAZ = {\n prefix: 'fas',\n iconName: 'arrow-up-a-z',\n icon: [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faUserGraduate = {\n prefix: 'fas',\n iconName: 'user-graduate',\n icon: [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"]\n};\nvar faFileCode = {\n prefix: 'fas',\n iconName: 'file-code',\n icon: [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faSoap = {\n prefix: 'fas',\n iconName: 'soap',\n icon: [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faRecycle = {\n prefix: 'fas',\n iconName: 'recycle',\n icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"]\n};\nvar faFaceGrinWink = {\n prefix: 'fas',\n iconName: 'face-grin-wink',\n icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faWaterLadder = {\n prefix: 'fas',\n iconName: 'water-ladder',\n icon: [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faTowerCell = {\n prefix: 'fas',\n iconName: 'tower-cell',\n icon: [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faColonSign = {\n prefix: 'fas',\n iconName: 'colon-sign',\n icon: [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"]\n};\nvar faLaptopFile = {\n prefix: 'fas',\n iconName: 'laptop-file',\n icon: [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"]\n};\nvar faBahai = {\n prefix: 'fas',\n iconName: 'bahai',\n icon: [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"]\n};\nvar faHaykal = faBahai;\nvar faMoneyBill1 = {\n prefix: 'fas',\n iconName: 'money-bill-1',\n icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faCloudBolt = {\n prefix: 'fas',\n iconName: 'cloud-bolt',\n icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faEthernet = {\n prefix: 'fas',\n iconName: 'ethernet',\n icon: [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHryvniaSign = {\n prefix: 'fas',\n iconName: 'hryvnia-sign',\n icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faEyeSlash = {\n prefix: 'fas',\n iconName: 'eye-slash',\n icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"]\n};\nvar faCartFlatbedSuitcase = {\n prefix: 'fas',\n iconName: 'cart-flatbed-suitcase',\n icon: [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRadiation = {\n prefix: 'fas',\n iconName: 'radiation',\n icon: [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"]\n};\nvar faFileWord = {\n prefix: 'fas',\n iconName: 'file-word',\n icon: [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"]\n};\nvar faBedPulse = {\n prefix: 'fas',\n iconName: 'bed-pulse',\n icon: [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faProcedures = faBedPulse;\nvar faTents = {\n prefix: 'fas',\n iconName: 'tents',\n icon: [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faMugHot = {\n prefix: 'fas',\n iconName: 'mug-hot',\n icon: [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"]\n};\nvar faBolt = {\n prefix: 'fas',\n iconName: 'bolt',\n icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"]\n};\nvar faZap = faBolt;\nvar faJar = {\n prefix: 'fas',\n iconName: 'jar',\n icon: [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"]\n};\nvar faTruckPlane = {\n prefix: 'fas',\n iconName: 'truck-plane',\n icon: [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandHoldingHeart = {\n prefix: 'fas',\n iconName: 'hand-holding-heart',\n icon: [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faArrowRotateLeft = {\n prefix: 'fas',\n iconName: 'arrow-rotate-left',\n icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faFaceAngry = {\n prefix: 'fas',\n iconName: 'face-angry',\n icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faBurst = {\n prefix: 'fas',\n iconName: 'burst',\n icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"]\n};\nvar faZ = {\n prefix: 'fas',\n iconName: 'z',\n icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faBandage = {\n prefix: 'fas',\n iconName: 'bandage',\n icon: [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBandAid = faBandage;\nvar faPlaneCircleExclamation = {\n prefix: 'fas',\n iconName: 'plane-circle-exclamation',\n icon: [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBusSide = {\n prefix: 'fas',\n iconName: 'bus-side',\n icon: [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"]\n};\nvar faBugs = {\n prefix: 'fas',\n iconName: 'bugs',\n icon: [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"]\n};\nvar faBeerMugEmpty = {\n prefix: 'fas',\n iconName: 'beer-mug-empty',\n icon: [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faPersonCircleCheck = {\n prefix: 'fas',\n iconName: 'person-circle-check',\n icon: [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faStapler = {\n prefix: 'fas',\n iconName: 'stapler',\n icon: [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"]\n};\nvar faHouseMedicalCircleCheck = {\n prefix: 'fas',\n iconName: 'house-medical-circle-check',\n icon: [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faNairaSign = {\n prefix: 'fas',\n iconName: 'naira-sign',\n icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"]\n};\nvar faWifi = {\n prefix: 'fas',\n iconName: 'wifi',\n icon: [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faMoneyCheckDollar = {\n prefix: 'fas',\n iconName: 'money-check-dollar',\n icon: [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faEyeLowVision = {\n prefix: 'fas',\n iconName: 'eye-low-vision',\n icon: [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCircleArrowUp = {\n prefix: 'fas',\n iconName: 'circle-arrow-up',\n icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faCameraRetro = {\n prefix: 'fas',\n iconName: 'camera-retro',\n icon: [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"]\n};\nvar faCapsules = {\n prefix: 'fas',\n iconName: 'capsules',\n icon: [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"]\n};\nvar faPoo = {\n prefix: 'fas',\n iconName: 'poo',\n icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faElevator = {\n prefix: 'fas',\n iconName: 'elevator',\n icon: [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faTag = {\n prefix: 'fas',\n iconName: 'tag',\n icon: [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFileCircleMinus = {\n prefix: 'fas',\n iconName: 'file-circle-minus',\n icon: [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faDownLong = {\n prefix: 'fas',\n iconName: 'down-long',\n icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faCompactDisc = {\n prefix: 'fas',\n iconName: 'compact-disc',\n icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faSuitcaseRolling = {\n prefix: 'fas',\n iconName: 'suitcase-rolling',\n icon: [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBookQuran = {\n prefix: 'fas',\n iconName: 'book-quran',\n icon: [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"]\n};\nvar faQuran = faBookQuran;\nvar faPhoneSlash = {\n prefix: 'fas',\n iconName: 'phone-slash',\n icon: [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"]\n};\nvar faRoadCircleCheck = {\n prefix: 'fas',\n iconName: 'road-circle-check',\n icon: [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faShopLock = {\n prefix: 'fas',\n iconName: 'shop-lock',\n icon: [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faImagePortrait = {\n prefix: 'fas',\n iconName: 'image-portrait',\n icon: [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faBridgeLock = {\n prefix: 'fas',\n iconName: 'bridge-lock',\n icon: [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faHammer = {\n prefix: 'fas',\n iconName: 'hammer',\n icon: [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"]\n};\nvar faArrowUp19 = {\n prefix: 'fas',\n iconName: 'arrow-up-1-9',\n icon: [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faChessKnight = {\n prefix: 'fas',\n iconName: 'chess-knight',\n icon: [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n prefix: 'fas',\n iconName: 'house-flood-water-circle-arrow-right',\n icon: [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faArrowUpRightFromSquare = {\n prefix: 'fas',\n iconName: 'arrow-up-right-from-square',\n icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faArrowDownUpAcrossLine = {\n prefix: 'fas',\n iconName: 'arrow-down-up-across-line',\n icon: [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"]\n};\nvar faFaceGrinBeam = {\n prefix: 'fas',\n iconName: 'face-grin-beam',\n icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faRectangleAd = {\n prefix: 'fas',\n iconName: 'rectangle-ad',\n icon: [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"]\n};\nvar faAd = faRectangleAd;\nvar faBookTanakh = {\n prefix: 'fas',\n iconName: 'book-tanakh',\n icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faHotTubPerson = {\n prefix: 'fas',\n iconName: 'hot-tub-person',\n icon: [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faFileHalfDashed = {\n prefix: 'fas',\n iconName: 'file-half-dashed',\n icon: [384, 512, [], \"e698\", \"M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z\"]\n};\nvar faOutdent = {\n prefix: 'fas',\n iconName: 'outdent',\n icon: [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHandPeace = {\n prefix: 'fas',\n iconName: 'hand-peace',\n icon: [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faHeadSideVirus = {\n prefix: 'fas',\n iconName: 'head-side-virus',\n icon: [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faCompass = {\n prefix: 'fas',\n iconName: 'compass',\n icon: [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faPenNib = {\n prefix: 'fas',\n iconName: 'pen-nib',\n icon: [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"]\n};\nvar faTentArrowsDown = {\n prefix: 'fas',\n iconName: 'tent-arrows-down',\n icon: [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faForwardFast = {\n prefix: 'fas',\n iconName: 'forward-fast',\n icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"]\n};\nvar faFastForward = faForwardFast;\nvar faCrop = {\n prefix: 'fas',\n iconName: 'crop',\n icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"]\n};\nvar faWhiskeyGlass = {\n prefix: 'fas',\n iconName: 'whiskey-glass',\n icon: [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faSquare = {\n prefix: 'fas',\n iconName: 'square',\n icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faFaceGrin = {\n prefix: 'fas',\n iconName: 'face-grin',\n icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFileContract = {\n prefix: 'fas',\n iconName: 'file-contract',\n icon: [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"]\n};\nvar faAngleUp = {\n prefix: 'fas',\n iconName: 'angle-up',\n icon: [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faFaceSmile = {\n prefix: 'fas',\n iconName: 'face-smile',\n icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faPersonDressBurst = {\n prefix: 'fas',\n iconName: 'person-dress-burst',\n icon: [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"]\n};\nvar faDivide = {\n prefix: 'fas',\n iconName: 'divide',\n icon: [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faCodeFork = {\n prefix: 'fas',\n iconName: 'code-fork',\n icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHouseFlag = {\n prefix: 'fas',\n iconName: 'house-flag',\n icon: [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faBuildingColumns = {\n prefix: 'fas',\n iconName: 'building-columns',\n icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faRug = {\n prefix: 'fas',\n iconName: 'rug',\n icon: [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faCodeMerge = {\n prefix: 'fas',\n iconName: 'code-merge',\n icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faHouseTsunami = {\n prefix: 'fas',\n iconName: 'house-tsunami',\n icon: [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMagnifyingGlassChart = {\n prefix: 'fas',\n iconName: 'magnifying-glass-chart',\n icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faUmbrella = {\n prefix: 'fas',\n iconName: 'umbrella',\n icon: [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faHillRockslide = {\n prefix: 'fas',\n iconName: 'hill-rockslide',\n icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUserSecret = {\n prefix: 'fas',\n iconName: 'user-secret',\n icon: [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"]\n};\nvar faPager = {\n prefix: 'fas',\n iconName: 'pager',\n icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faBriefcase = {\n prefix: 'fas',\n iconName: 'briefcase',\n icon: [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"]\n};\nvar faTrowelBricks = {\n prefix: 'fas',\n iconName: 'trowel-bricks',\n icon: [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"]\n};\nvar faSocks = {\n prefix: 'fas',\n iconName: 'socks',\n icon: [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"]\n};\nvar faT = {\n prefix: 'fas',\n iconName: 't',\n icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faMicrochip = {\n prefix: 'fas',\n iconName: 'microchip',\n icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"]\n};\nvar faTruckMedical = {\n prefix: 'fas',\n iconName: 'truck-medical',\n icon: [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faOm = {\n prefix: 'fas',\n iconName: 'om',\n icon: [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"]\n};\nvar faMosquitoNet = {\n prefix: 'fas',\n iconName: 'mosquito-net',\n icon: [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"]\n};\nvar faPrescriptionBottle = {\n prefix: 'fas',\n iconName: 'prescription-bottle',\n icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"]\n};\nvar faUsersGear = {\n prefix: 'fas',\n iconName: 'users-gear',\n icon: [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faRoadCircleExclamation = {\n prefix: 'fas',\n iconName: 'road-circle-exclamation',\n icon: [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPause = {\n prefix: 'fas',\n iconName: 'pause',\n icon: [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"]\n};\nvar faStaffSnake = {\n prefix: 'fas',\n iconName: 'staff-snake',\n icon: [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faPiggyBank = {\n prefix: 'fas',\n iconName: 'piggy-bank',\n icon: [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faMonument = {\n prefix: 'fas',\n iconName: 'monument',\n icon: [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faAnglesRight = {\n prefix: 'fas',\n iconName: 'angles-right',\n icon: [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faDesktop = {\n prefix: 'fas',\n iconName: 'desktop',\n icon: [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faPlaneCircleXmark = {\n prefix: 'fas',\n iconName: 'plane-circle-xmark',\n icon: [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faRetweet = {\n prefix: 'fas',\n iconName: 'retweet',\n icon: [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"]\n};\nvar faUserGear = {\n prefix: 'fas',\n iconName: 'user-gear',\n icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"]\n};\nvar faUserCog = faUserGear;\nvar faBorderAll = {\n prefix: 'fas',\n iconName: 'border-all',\n icon: [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faCoins = {\n prefix: 'fas',\n iconName: 'coins',\n icon: [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"]\n};\nvar faMarsStroke = {\n prefix: 'fas',\n iconName: 'mars-stroke',\n icon: [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"]\n};\nvar faHandshakeAngle = {\n prefix: 'fas',\n iconName: 'handshake-angle',\n icon: [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faArrowDown = {\n prefix: 'fas',\n iconName: 'arrow-down',\n icon: [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faLocationDot = {\n prefix: 'fas',\n iconName: 'location-dot',\n icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faPlugCircleExclamation = {\n prefix: 'fas',\n iconName: 'plug-circle-exclamation',\n icon: [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faCookieBite = {\n prefix: 'fas',\n iconName: 'cookie-bite',\n icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faScrewdriverWrench = {\n prefix: 'fas',\n iconName: 'screwdriver-wrench',\n icon: [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faIndent = {\n prefix: 'fas',\n iconName: 'indent',\n icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faBars = {\n prefix: 'fas',\n iconName: 'bars',\n icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faHandsPraying = {\n prefix: 'fas',\n iconName: 'hands-praying',\n icon: [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faViruses = {\n prefix: 'fas',\n iconName: 'viruses',\n icon: [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faSchoolFlag = {\n prefix: 'fas',\n iconName: 'school-flag',\n icon: [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faTrademark = {\n prefix: 'fas',\n iconName: 'trademark',\n icon: [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"]\n};\nvar faFireBurner = {\n prefix: 'fas',\n iconName: 'fire-burner',\n icon: [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faFaceSmileBeam = {\n prefix: 'fas',\n iconName: 'face-smile-beam',\n icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faTentArrowLeftRight = {\n prefix: 'fas',\n iconName: 'tent-arrow-left-right',\n icon: [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faRoute = {\n prefix: 'fas',\n iconName: 'route',\n icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesUp = {\n prefix: 'fas',\n iconName: 'angles-up',\n icon: [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faBucket = {\n prefix: 'fas',\n iconName: 'bucket',\n icon: [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"]\n};\nvar faLessThanEqual = {\n prefix: 'fas',\n iconName: 'less-than-equal',\n icon: [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nvar faFolderClosed = {\n prefix: 'fas',\n iconName: 'folder-closed',\n icon: [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"]\n};\nvar faPersonThroughWindow = {\n prefix: 'fas',\n iconName: 'person-through-window',\n icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faSchoolLock = {\n prefix: 'fas',\n iconName: 'school-lock',\n icon: [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"]\n};\nvar faPersonBurst = {\n prefix: 'fas',\n iconName: 'person-burst',\n icon: [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"]\n};\nvar faLeftLong = {\n prefix: 'fas',\n iconName: 'left-long',\n icon: [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faLocationCrosshairs = {\n prefix: 'fas',\n iconName: 'location-crosshairs',\n icon: [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faPersonDotsFromLine = {\n prefix: 'fas',\n iconName: 'person-dots-from-line',\n icon: [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faGaugeSimpleHigh = {\n prefix: 'fas',\n iconName: 'gauge-simple-high',\n icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faAnglesLeft = {\n prefix: 'fas',\n iconName: 'angles-left',\n icon: [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faUpDown = {\n prefix: 'fas',\n iconName: 'up-down',\n icon: [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faBatteryEmpty = {\n prefix: 'fas',\n iconName: 'battery-empty',\n icon: [640, 512, [\"battery-0\"], \"f244\", \"M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faKeyboard = {\n prefix: 'fas',\n iconName: 'keyboard',\n icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faCookie = {\n prefix: 'fas',\n iconName: 'cookie',\n icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faStopwatch = {\n prefix: 'fas',\n iconName: 'stopwatch',\n icon: [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faEject = {\n prefix: 'fas',\n iconName: 'eject',\n icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"]\n};\nvar faSatelliteDish = {\n prefix: 'fas',\n iconName: 'satellite-dish',\n icon: [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"]\n};\nvar faFaceRollingEyes = {\n prefix: 'fas',\n iconName: 'face-rolling-eyes',\n icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faListCheck = {\n prefix: 'fas',\n iconName: 'list-check',\n icon: [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faTasks = faListCheck;\nvar faSackXmark = {\n prefix: 'fas',\n iconName: 'sack-xmark',\n icon: [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faHashtag = {\n prefix: 'fas',\n iconName: 'hashtag',\n icon: [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"]\n};\nvar faTrain = {\n prefix: 'fas',\n iconName: 'train',\n icon: [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faGamepad = {\n prefix: 'fas',\n iconName: 'gamepad',\n icon: [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faFileExport = {\n prefix: 'fas',\n iconName: 'file-export',\n icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faFaceGrimace = {\n prefix: 'fas',\n iconName: 'face-grimace',\n icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faTrainSubway = {\n prefix: 'fas',\n iconName: 'train-subway',\n icon: [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSubway = faTrainSubway;\nvar faCircleDot = {\n prefix: 'fas',\n iconName: 'circle-dot',\n icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n prefix: 'fas',\n iconName: 'object-group',\n icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faShip = {\n prefix: 'fas',\n iconName: 'ship',\n icon: [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faC = {\n prefix: 'fas',\n iconName: 'c',\n icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faSquarePhone = {\n prefix: 'fas',\n iconName: 'square-phone',\n icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faRulerCombined = {\n prefix: 'fas',\n iconName: 'ruler-combined',\n icon: [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"]\n};\nvar faArrowsRotate = {\n prefix: 'fas',\n iconName: 'arrows-rotate',\n icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faPersonDress = {\n prefix: 'fas',\n iconName: 'person-dress',\n icon: [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"]\n};\nvar faFemale = faPersonDress;\nvar faBookOpen = {\n prefix: 'fas',\n iconName: 'book-open',\n icon: [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"]\n};\nvar faFolderTree = {\n prefix: 'fas',\n iconName: 'folder-tree',\n icon: [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"]\n};\nvar faBoxArchive = {\n prefix: 'fas',\n iconName: 'box-archive',\n icon: [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faArchive = faBoxArchive;\nvar faTentArrowDownToLine = {\n prefix: 'fas',\n iconName: 'tent-arrow-down-to-line',\n icon: [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"]\n};\nvar faQrcode = {\n prefix: 'fas',\n iconName: 'qrcode',\n icon: [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nvar faDragon = {\n prefix: 'fas',\n iconName: 'dragon',\n icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"]\n};\nvar faHourglassEnd = {\n prefix: 'fas',\n iconName: 'hourglass-end',\n icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faGrip = {\n prefix: 'fas',\n iconName: 'grip',\n icon: [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"]\n};\nvar faGridHorizontal = faGrip;\nvar faGripHorizontal = faGrip;\nvar faBorderTopLeft = {\n prefix: 'fas',\n iconName: 'border-top-left',\n icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faListUl = {\n prefix: 'fas',\n iconName: 'list-ul',\n icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faListDots = faListUl;\nvar faPeopleRobbery = {\n prefix: 'fas',\n iconName: 'people-robbery',\n icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"]\n};\nvar faMobileButton = {\n prefix: 'fas',\n iconName: 'mobile-button',\n icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faArrowDownAZ = {\n prefix: 'fas',\n iconName: 'arrow-down-a-z',\n icon: [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBill = {\n prefix: 'fas',\n iconName: 'money-bill',\n icon: [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"]\n};\nvar faCircleMinus = {\n prefix: 'fas',\n iconName: 'circle-minus',\n icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faArrowPointer = {\n prefix: 'fas',\n iconName: 'arrow-pointer',\n icon: [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faSquareShareNodes = {\n prefix: 'fas',\n iconName: 'square-share-nodes',\n icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faTableCellsLarge = {\n prefix: 'fas',\n iconName: 'table-cells-large',\n icon: [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faCat = {\n prefix: 'fas',\n iconName: 'cat',\n icon: [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faCalendarWeek = {\n prefix: 'fas',\n iconName: 'calendar-week',\n icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"]\n};\nvar faCodeCompare = {\n prefix: 'fas',\n iconName: 'code-compare',\n icon: [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nvar faRoadCircleXmark = {\n prefix: 'fas',\n iconName: 'road-circle-xmark',\n icon: [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPallet = {\n prefix: 'fas',\n iconName: 'pallet',\n icon: [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"]\n};\nvar faCakeCandles = {\n prefix: 'fas',\n iconName: 'cake-candles',\n icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faBugSlash = {\n prefix: 'fas',\n iconName: 'bug-slash',\n icon: [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"]\n};\nvar faTarp = {\n prefix: 'fas',\n iconName: 'tarp',\n icon: [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDiagramPredecessor = {\n prefix: 'fas',\n iconName: 'diagram-predecessor',\n icon: [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"]\n};\nvar faFaceFlushed = {\n prefix: 'fas',\n iconName: 'face-flushed',\n icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faDiagramNext = {\n prefix: 'fas',\n iconName: 'diagram-next',\n icon: [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"]\n};\nvar faAnchorCircleXmark = {\n prefix: 'fas',\n iconName: 'anchor-circle-xmark',\n icon: [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPersonCircleXmark = {\n prefix: 'fas',\n iconName: 'person-circle-xmark',\n icon: [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faSpa = {\n prefix: 'fas',\n iconName: 'spa',\n icon: [576, 512, [], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"]\n};\nvar faBarsProgress = {\n prefix: 'fas',\n iconName: 'bars-progress',\n icon: [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faHeartCircleCheck = {\n prefix: 'fas',\n iconName: 'heart-circle-check',\n icon: [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faMarsStrokeRight = {\n prefix: 'fas',\n iconName: 'mars-stroke-right',\n icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faTowerObservation = {\n prefix: 'fas',\n iconName: 'tower-observation',\n icon: [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSterlingSign = {\n prefix: 'fas',\n iconName: 'sterling-sign',\n icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faFaucetDrip = {\n prefix: 'fas',\n iconName: 'faucet-drip',\n icon: [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"]\n};\nvar faCircleInfo = {\n prefix: 'fas',\n iconName: 'circle-info',\n icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faFeather = {\n prefix: 'fas',\n iconName: 'feather',\n icon: [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"]\n};\nvar faBowlRice = {\n prefix: 'fas',\n iconName: 'bowl-rice',\n icon: [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n prefix: 'fas',\n iconName: 'star-half-stroke',\n icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faTemperatureArrowDown = {\n prefix: 'fas',\n iconName: 'temperature-arrow-down',\n icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faMaskVentilator = {\n prefix: 'fas',\n iconName: 'mask-ventilator',\n icon: [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faFileVideo = {\n prefix: 'fas',\n iconName: 'file-video',\n icon: [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faArrowTrendDown = {\n prefix: 'fas',\n iconName: 'arrow-trend-down',\n icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"]\n};\nvar faOilCan = {\n prefix: 'fas',\n iconName: 'oil-can',\n icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"]\n};\nvar faPeopleCarryBox = {\n prefix: 'fas',\n iconName: 'people-carry-box',\n icon: [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faChair = {\n prefix: 'fas',\n iconName: 'chair',\n icon: [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faWind = {\n prefix: 'fas',\n iconName: 'wind',\n icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faLayerGroup = {\n prefix: 'fas',\n iconName: 'layer-group',\n icon: [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"]\n};\nvar faHeadSideMask = {\n prefix: 'fas',\n iconName: 'head-side-mask',\n icon: [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faHands = {\n prefix: 'fas',\n iconName: 'hands',\n icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faTablets = {\n prefix: 'fas',\n iconName: 'tablets',\n icon: [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"]\n};\nvar faWeightHanging = {\n prefix: 'fas',\n iconName: 'weight-hanging',\n icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"]\n};\nvar faDice = {\n prefix: 'fas',\n iconName: 'dice',\n icon: [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"]\n};\nvar faShopSlash = {\n prefix: 'fas',\n iconName: 'shop-slash',\n icon: [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faSortDown = {\n prefix: 'fas',\n iconName: 'sort-down',\n icon: [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"]\n};\nvar faSortDesc = faSortDown;\nvar faPesetaSign = {\n prefix: 'fas',\n iconName: 'peseta-sign',\n icon: [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"]\n};\nvar faTabletScreenButton = {\n prefix: 'fas',\n iconName: 'tablet-screen-button',\n icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faHandHoldingDollar = {\n prefix: 'fas',\n iconName: 'hand-holding-dollar',\n icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faShield = {\n prefix: 'fas',\n iconName: 'shield',\n icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faFaceLaugh = {\n prefix: 'fas',\n iconName: 'face-laugh',\n icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandsHolding = {\n prefix: 'fas',\n iconName: 'hands-holding',\n icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faCartShopping = {\n prefix: 'fas',\n iconName: 'cart-shopping',\n icon: [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faOctagon = {\n prefix: 'fas',\n iconName: 'octagon',\n icon: [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"]\n};\nvar faHandPointer = {\n prefix: 'fas',\n iconName: 'hand-pointer',\n icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n prefix: 'fas',\n iconName: 'registered',\n icon: [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"]\n};\nvar faHouseSignal = {\n prefix: 'fas',\n iconName: 'house-signal',\n icon: [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"]\n};\nvar faBangladeshiTakaSign = {\n prefix: 'fas',\n iconName: 'bangladeshi-taka-sign',\n icon: [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n};\nvar icons = {\n fa0: fa0,\n fa1: fa1,\n fa2: fa2,\n fa3: fa3,\n fa4: fa4,\n fa5: fa5,\n fa6: fa6,\n fa7: fa7,\n fa8: fa8,\n fa9: fa9,\n faDollarSign: faDollarSign,\n faDollar: faDollar,\n faUsd: faUsd,\n faDog: faDog,\n faTruckMoving: faTruckMoving,\n faRotate: faRotate,\n faSyncAlt: faSyncAlt,\n faSquareMinus: faSquareMinus,\n faMinusSquare: faMinusSquare,\n faAlignJustify: faAlignJustify,\n faCalendarCheck: faCalendarCheck,\n faFaceKiss: faFaceKiss,\n faKiss: faKiss,\n faKitchenSet: faKitchenSet,\n faDna: faDna,\n faChildReaching: faChildReaching,\n faPaste: faPaste,\n faFileClipboard: faFileClipboard,\n faMeteor: faMeteor,\n faGears: faGears,\n faCogs: faCogs,\n faFileCirclePlus: faFileCirclePlus,\n faIcicles: faIcicles,\n faArrowTrendUp: faArrowTrendUp,\n faHexagonNodesBolt: faHexagonNodesBolt,\n faQuestion: faQuestion,\n faHandsBound: faHandsBound,\n faPersonWalkingLuggage: faPersonWalkingLuggage,\n faFileArrowDown: faFileArrowDown,\n faFileDownload: faFileDownload,\n faPersonBooth: faPersonBooth,\n faLocust: faLocust,\n faRightLong: faRightLong,\n faLongArrowAltRight: faLongArrowAltRight,\n faTruckDroplet: faTruckDroplet,\n faHandHoldingMedical: faHandHoldingMedical,\n faHandPointLeft: faHandPointLeft,\n faCalculator: faCalculator,\n faMinus: faMinus,\n faSubtract: faSubtract,\n faArrowUpZA: faArrowUpZA,\n faSortAlphaUpAlt: faSortAlphaUpAlt,\n faMicrophoneSlash: faMicrophoneSlash,\n faSquarePen: faSquarePen,\n faPenSquare: faPenSquare,\n faPencilSquare: faPencilSquare,\n faHandFist: faHandFist,\n faFistRaised: faFistRaised,\n faCommentSms: faCommentSms,\n faSms: faSms,\n faSimCard: faSimCard,\n faScaleBalanced: faScaleBalanced,\n faBalanceScale: faBalanceScale,\n faCar: faCar,\n faAutomobile: faAutomobile,\n faCropSimple: faCropSimple,\n faCropAlt: faCropAlt,\n faMedal: faMedal,\n faScroll: faScroll,\n faFileExcel: faFileExcel,\n faFilter: faFilter,\n faDrum: faDrum,\n faMapPin: faMapPin,\n faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n faBalanceScaleRight: faBalanceScaleRight,\n faArrowsToCircle: faArrowsToCircle,\n faEnvelope: faEnvelope,\n faBaby: faBaby,\n faSquareCaretDown: faSquareCaretDown,\n faCaretSquareDown: faCaretSquareDown,\n faTent: faTent,\n faA: faA,\n faParachuteBox: faParachuteBox,\n faCartArrowDown: faCartArrowDown,\n faBridgeCircleExclamation: faBridgeCircleExclamation,\n faCloudArrowUp: faCloudArrowUp,\n faCloudUpload: faCloudUpload,\n faCloudUploadAlt: faCloudUploadAlt,\n faAt: faAt,\n faIndianRupeeSign: faIndianRupeeSign,\n faIndianRupee: faIndianRupee,\n faInr: faInr,\n faTruck: faTruck,\n faChalkboardUser: faChalkboardUser,\n faChalkboardTeacher: faChalkboardTeacher,\n faUserCheck: faUserCheck,\n faUserNinja: faUserNinja,\n faPlantWilt: faPlantWilt,\n faWeightScale: faWeightScale,\n faWeight: faWeight,\n faCaretRight: faCaretRight,\n faFlorinSign: faFlorinSign,\n faBell: faBell,\n faLariSign: faLariSign,\n faMillSign: faMillSign,\n faPersonSnowboarding: faPersonSnowboarding,\n faSnowboarding: faSnowboarding,\n faTty: faTty,\n faTeletype: faTeletype,\n faUsersRectangle: faUsersRectangle,\n faMobile: faMobile,\n faMobileAndroid: faMobileAndroid,\n faMobilePhone: faMobilePhone,\n faArrowsTurnToDots: faArrowsTurnToDots,\n faExclamation: faExclamation,\n faChurch: faChurch,\n faToggleOff: faToggleOff,\n faShoePrints: faShoePrints,\n faFileCircleExclamation: faFileCircleExclamation,\n faWallet: faWallet,\n faMessage: faMessage,\n faCommentAlt: faCommentAlt,\n faTrophy: faTrophy,\n faFaceDizzy: faFaceDizzy,\n faDizzy: faDizzy,\n faBacteria: faBacteria,\n faEarDeaf: faEarDeaf,\n faDeaf: faDeaf,\n faDeafness: faDeafness,\n faHardOfHearing: faHardOfHearing,\n faPeopleArrows: faPeopleArrows,\n faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n faHandsClapping: faHandsClapping,\n faVirusCovidSlash: faVirusCovidSlash,\n faCalendarDays: faCalendarDays,\n faCalendarAlt: faCalendarAlt,\n faDiamondTurnRight: faDiamondTurnRight,\n faDirections: faDirections,\n faHandPointUp: faHandPointUp,\n faBezierCurve: faBezierCurve,\n faPersonHalfDress: faPersonHalfDress,\n faSquarePollHorizontal: faSquarePollHorizontal,\n faPollH: faPollH,\n faSchoolCircleXmark: faSchoolCircleXmark,\n faHandLizard: faHandLizard,\n faChalkboard: faChalkboard,\n faBlackboard: faBlackboard,\n faUpRightFromSquare: faUpRightFromSquare,\n faExternalLinkAlt: faExternalLinkAlt,\n faSquareFull: faSquareFull,\n faClover: faClover,\n faTeethOpen: faTeethOpen,\n faBarsStaggered: faBarsStaggered,\n faReorder: faReorder,\n faStream: faStream,\n faWarehouse: faWarehouse,\n faSwatchbook: faSwatchbook,\n faCampground: faCampground,\n faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n faGlasses: faGlasses,\n faCirclePause: faCirclePause,\n faPauseCircle: faPauseCircle,\n faMemory: faMemory,\n faGift: faGift,\n faMoneyBillWheat: faMoneyBillWheat,\n faDungeon: faDungeon,\n faSuitcaseMedical: faSuitcaseMedical,\n faMedkit: faMedkit,\n faPersonCane: faPersonCane,\n faGauge: faGauge,\n faDashboard: faDashboard,\n faGaugeMed: faGaugeMed,\n faTachometerAltAverage: faTachometerAltAverage,\n faEnvelopeOpenText: faEnvelopeOpenText,\n faToolbox: faToolbox,\n faPowerOff: faPowerOff,\n faSignal: faSignal,\n faSignal5: faSignal5,\n faSignalPerfect: faSignalPerfect,\n faArrowsSpin: faArrowsSpin,\n faJoint: faJoint,\n faBraille: faBraille,\n faBasketShopping: faBasketShopping,\n faShoppingBasket: faShoppingBasket,\n faBridge: faBridge,\n faPlaneArrival: faPlaneArrival,\n faCashRegister: faCashRegister,\n faRing: faRing,\n faShareNodes: faShareNodes,\n faShareAlt: faShareAlt,\n faPersonCircleExclamation: faPersonCircleExclamation,\n faBinoculars: faBinoculars,\n faKipSign: faKipSign,\n faHardDrive: faHardDrive,\n faHdd: faHdd,\n faRankingStar: faRankingStar,\n faUserTie: faUserTie,\n faEllipsis: faEllipsis,\n faEllipsisH: faEllipsisH,\n faStoreSlash: faStoreSlash,\n faPercent: faPercent,\n faPercentage: faPercentage,\n faFileZipper: faFileZipper,\n faFileArchive: faFileArchive,\n faDisplay: faDisplay,\n faIcons: faIcons,\n faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n faRulerVertical: faRulerVertical,\n faMapLocationDot: faMapLocationDot,\n faMapMarkedAlt: faMapMarkedAlt,\n faHeartCrack: faHeartCrack,\n faHeartBroken: faHeartBroken,\n faCow: faCow,\n faRss: faRss,\n faFeed: faFeed,\n faMagnifyingGlass: faMagnifyingGlass,\n faSearch: faSearch,\n faCloudMoon: faCloudMoon,\n faBoxesStacked: faBoxesStacked,\n faBoxes: faBoxes,\n faBoxesAlt: faBoxesAlt,\n faCodeBranch: faCodeBranch,\n faBan: faBan,\n faCancel: faCancel,\n faJugDetergent: faJugDetergent,\n faReply: faReply,\n faMailReply: faMailReply,\n faSunPlantWilt: faSunPlantWilt,\n faBacterium: faBacterium,\n faRecordVinyl: faRecordVinyl,\n faFloppyDisk: faFloppyDisk,\n faSave: faSave,\n faToiletsPortable: faToiletsPortable,\n faO: faO,\n faPalette: faPalette,\n faUnlock: faUnlock,\n faEarListen: faEarListen,\n faAssistiveListeningSystems: faAssistiveListeningSystems,\n faCodePullRequest: faCodePullRequest,\n faKey: faKey,\n faSkull: faSkull,\n faMarsStrokeUp: faMarsStrokeUp,\n faMarsStrokeV: faMarsStrokeV,\n faFireFlameSimple: faFireFlameSimple,\n faBurn: faBurn,\n faTree: faTree,\n faSmog: faSmog,\n faS: faS,\n faJedi: faJedi,\n faPersonHiking: faPersonHiking,\n faHiking: faHiking,\n faArrowsUpToLine: faArrowsUpToLine,\n faMarsDouble: faMarsDouble,\n faThermometer: faThermometer,\n faPaintbrush: faPaintbrush,\n faPaintBrush: faPaintBrush,\n faNeuter: faNeuter,\n faSquarePhoneFlip: faSquarePhoneFlip,\n faPhoneSquareAlt: faPhoneSquareAlt,\n faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n faGrinTongueSquint: faGrinTongueSquint,\n faCommentDollar: faCommentDollar,\n faHippo: faHippo,\n faBowlFood: faBowlFood,\n faSquareVirus: faSquareVirus,\n faCloudSunRain: faCloudSunRain,\n faArrowRightLong: faArrowRightLong,\n faLongArrowRight: faLongArrowRight,\n faBuildingUn: faBuildingUn,\n faTemperatureLow: faTemperatureLow,\n faDoorOpen: faDoorOpen,\n faAlignLeft: faAlignLeft,\n faCamera: faCamera,\n faCameraAlt: faCameraAlt,\n faUsersRays: faUsersRays,\n faRainbow: faRainbow,\n faSitemap: faSitemap,\n faFaceGrinStars: faFaceGrinStars,\n faGrinStars: faGrinStars,\n faSortUp: faSortUp,\n faSortAsc: faSortAsc,\n faEye: faEye,\n faCaretLeft: faCaretLeft,\n faAppleWhole: faAppleWhole,\n faAppleAlt: faAppleAlt,\n faScrollTorah: faScrollTorah,\n faTorah: faTorah,\n faHouseLock: faHouseLock,\n faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n faTrash: faTrash,\n faFaceSadTear: faFaceSadTear,\n faSadTear: faSadTear,\n faFax: faFax,\n faPersonCirclePlus: faPersonCirclePlus,\n faHamsa: faHamsa,\n faPersonCircleQuestion: faPersonCircleQuestion,\n faClipboardCheck: faClipboardCheck,\n faShareFromSquare: faShareFromSquare,\n faShareSquare: faShareSquare,\n faReceipt: faReceipt,\n faEquals: faEquals,\n faChevronUp: faChevronUp,\n faVirusSlash: faVirusSlash,\n faSlash: faSlash,\n faExpand: faExpand,\n faNoteSticky: faNoteSticky,\n faStickyNote: faStickyNote,\n faTableColumns: faTableColumns,\n faColumns: faColumns,\n faPersonShelter: faPersonShelter,\n faCircleNotch: faCircleNotch,\n faWater: faWater,\n faDeleteLeft: faDeleteLeft,\n faBackspace: faBackspace,\n faBroomBall: faBroomBall,\n faQuidditch: faQuidditch,\n faQuidditchBroomBall: faQuidditchBroomBall,\n faJ: faJ,\n faShuttleSpace: faShuttleSpace,\n faSpaceShuttle: faSpaceShuttle,\n faYinYang: faYinYang,\n faStop: faStop,\n faTrowel: faTrowel,\n faHandBackFist: faHandBackFist,\n faHandRock: faHandRock,\n faTemperatureHigh: faTemperatureHigh,\n faGreaterThan: faGreaterThan,\n faCrutch: faCrutch,\n faSeptagon: faSeptagon,\n faHeptagon: faHeptagon,\n faStreetView: faStreetView,\n faWaveSquare: faWaveSquare,\n faAngleLeft: faAngleLeft,\n faScrewdriver: faScrewdriver,\n faTractor: faTractor,\n faBridgeCircleXmark: faBridgeCircleXmark,\n faVials: faVials,\n faStethoscope: faStethoscope,\n faPodcast: faPodcast,\n faArrowUpRightDots: faArrowUpRightDots,\n faChessQueen: faChessQueen,\n faAnchorCircleExclamation: faAnchorCircleExclamation,\n faEllipsisVertical: faEllipsisVertical,\n faEllipsisV: faEllipsisV,\n faHeartCircleExclamation: faHeartCircleExclamation,\n faBuildingCircleExclamation: faBuildingCircleExclamation,\n faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n faNotEqual: faNotEqual,\n faTrainTram: faTrainTram,\n faPlaneDeparture: faPlaneDeparture,\n faRightToBracket: faRightToBracket,\n faSignInAlt: faSignInAlt,\n faSdCard: faSdCard,\n faHouseCircleExclamation: faHouseCircleExclamation,\n faShekelSign: faShekelSign,\n faIls: faIls,\n faShekel: faShekel,\n faSheqel: faSheqel,\n faSheqelSign: faSheqelSign,\n faRadio: faRadio,\n faHandDots: faHandDots,\n faAllergies: faAllergies,\n faBookSkull: faBookSkull,\n faBookDead: faBookDead,\n faUnlockKeyhole: faUnlockKeyhole,\n faUnlockAlt: faUnlockAlt,\n faFileArrowUp: faFileArrowUp,\n faFileUpload: faFileUpload,\n faFaceGrinTears: faFaceGrinTears,\n faGrinTears: faGrinTears,\n faPenToSquare: faPenToSquare,\n faEdit: faEdit,\n faEarthEurope: faEarthEurope,\n faGlobeEurope: faGlobeEurope,\n faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n faGrinBeamSweat: faGrinBeamSweat,\n faCircleHalfStroke: faCircleHalfStroke,\n faAdjust: faAdjust,\n faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n faTableCellsColumnLock: faTableCellsColumnLock,\n faTruckFieldUn: faTruckFieldUn,\n faClock: faClock,\n faClockFour: faClockFour,\n faBook: faBook,\n faFaceLaughWink: faFaceLaughWink,\n faLaughWink: faLaughWink,\n faCloudMeatball: faCloudMeatball,\n faChartArea: faChartArea,\n faAreaChart: faAreaChart,\n faRupiahSign: faRupiahSign,\n faTextWidth: faTextWidth,\n faSatellite: faSatellite,\n faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n faSearchMinus: faSearchMinus,\n faPeopleGroup: faPeopleGroup,\n faSquareBinary: faSquareBinary,\n faMasksTheater: faMasksTheater,\n faTheaterMasks: faTheaterMasks,\n faCartPlus: faCartPlus,\n faHandsAslInterpreting: faHandsAslInterpreting,\n faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n faAslInterpreting: faAslInterpreting,\n faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n faTableCellsRowUnlock: faTableCellsRowUnlock,\n faRocket: faRocket,\n faShrimp: faShrimp,\n faTengeSign: faTengeSign,\n faTenge: faTenge,\n faHouseChimneyMedical: faHouseChimneyMedical,\n faClinicMedical: faClinicMedical,\n faUsersSlash: faUsersSlash,\n faPaperPlane: faPaperPlane,\n faBookAtlas: faBookAtlas,\n faAtlas: faAtlas,\n faTable: faTable,\n faHeart: faHeart,\n faCircleChevronUp: faCircleChevronUp,\n faChevronCircleUp: faChevronCircleUp,\n faBatteryHalf: faBatteryHalf,\n faBattery3: faBattery3,\n faFontAwesome: faFontAwesome,\n faFontAwesomeFlag: faFontAwesomeFlag,\n faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n faHandcuffs: faHandcuffs,\n faHatCowboySide: faHatCowboySide,\n faIndustry: faIndustry,\n faLinesLeaning: faLinesLeaning,\n faPassport: faPassport,\n faInfinity: faInfinity,\n faClone: faClone,\n faForward: faForward,\n faM: faM,\n faRoadSpikes: faRoadSpikes,\n faMountain: faMountain,\n faChess: faChess,\n faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n faTemperature3: faTemperature3,\n faThermometer3: faThermometer3,\n faThermometerThreeQuarters: faThermometerThreeQuarters,\n faB: faB,\n faShieldVirus: faShieldVirus,\n faLitecoinSign: faLitecoinSign,\n faDiceD6: faDiceD6,\n faGripLinesVertical: faGripLinesVertical,\n faGolfBallTee: faGolfBallTee,\n faGolfBall: faGolfBall,\n faHexagon: faHexagon,\n faFolderOpen: faFolderOpen,\n faKaaba: faKaaba,\n faHandHolding: faHandHolding,\n faSingleQuoteRight: faSingleQuoteRight,\n faBottleDroplet: faBottleDroplet,\n faWindowMinimize: faWindowMinimize,\n faChevronRight: faChevronRight,\n faEgg: faEgg,\n faLandmarkDome: faLandmarkDome,\n faLandmarkAlt: faLandmarkAlt,\n faWorm: faWorm,\n faUserInjured: faUserInjured,\n faStrikethrough: faStrikethrough,\n faBlog: faBlog,\n faStopwatch20: faStopwatch20,\n faTruckPickup: faTruckPickup,\n faSeedling: faSeedling,\n faSprout: faSprout,\n faTransgender: faTransgender,\n faTransgenderAlt: faTransgenderAlt,\n faStarHalf: faStarHalf,\n faPhotoFilm: faPhotoFilm,\n faPhotoVideo: faPhotoVideo,\n faPumpMedical: faPumpMedical,\n faFire: faFire,\n faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n faSearchPlus: faSearchPlus,\n faFlask: faFlask,\n faAlignRight: faAlignRight,\n faCableCar: faCableCar,\n faTram: faTram,\n faKitMedical: faKitMedical,\n faFirstAid: faFirstAid,\n faGripLines: faGripLines,\n faBurger: faBurger,\n faHamburger: faHamburger,\n faSnowman: faSnowman,\n faHotel: faHotel,\n faPrint: faPrint,\n faVolleyball: faVolleyball,\n faVolleyballBall: faVolleyballBall,\n faTrafficLight: faTrafficLight,\n faPlaneCircleCheck: faPlaneCircleCheck,\n faUsers: faUsers,\n faCertificate: faCertificate,\n faAlarmClock: faAlarmClock,\n faHelicopterSymbol: faHelicopterSymbol,\n faHouseChimneyCrack: faHouseChimneyCrack,\n faHouseDamage: faHouseDamage,\n faPersonMilitaryPointing: faPersonMilitaryPointing,\n faDatabase: faDatabase,\n faNewspaper: faNewspaper,\n faCloudRain: faCloudRain,\n faMaximize: faMaximize,\n faExpandArrowsAlt: faExpandArrowsAlt,\n faLocationArrow: faLocationArrow,\n faCity: faCity,\n faXRay: faXRay,\n faUmbrellaBeach: faUmbrellaBeach,\n faArrowRightToBracket: faArrowRightToBracket,\n faSignIn: faSignIn,\n faHeadset: faHeadset,\n faSplotch: faSplotch,\n faUpLong: faUpLong,\n faLongArrowAltUp: faLongArrowAltUp,\n faHexagonNodes: faHexagonNodes,\n faHospital: faHospital,\n faHospitalAlt: faHospitalAlt,\n faHospitalWide: faHospitalWide,\n faPersonHarassing: faPersonHarassing,\n faMoneyBillTrendUp: faMoneyBillTrendUp,\n faPenRuler: faPenRuler,\n faPencilRuler: faPencilRuler,\n faRepeat: faRepeat,\n faBone: faBone,\n faFireFlameCurved: faFireFlameCurved,\n faFireAlt: faFireAlt,\n faBusSimple: faBusSimple,\n faBusAlt: faBusAlt,\n faVenusMars: faVenusMars,\n faBlender: faBlender,\n faU: faU,\n faShare: faShare,\n faMailForward: faMailForward,\n faPhoneFlip: faPhoneFlip,\n faPhoneAlt: faPhoneAlt,\n faToiletPortable: faToiletPortable,\n faPersonPregnant: faPersonPregnant,\n faLessThan: faLessThan,\n faSuperscript: faSuperscript,\n faCircleStop: faCircleStop,\n faStopCircle: faStopCircle,\n faArrowsUpDown: faArrowsUpDown,\n faArrowsV: faArrowsV,\n faPooStorm: faPooStorm,\n faPooBolt: faPooBolt,\n faVideoSlash: faVideoSlash,\n faSquareXmark: faSquareXmark,\n faTimesSquare: faTimesSquare,\n faXmarkSquare: faXmarkSquare,\n faHandHoldingDroplet: faHandHoldingDroplet,\n faHandHoldingWater: faHandHoldingWater,\n faWonSign: faWonSign,\n faKrw: faKrw,\n faWon: faWon,\n faObjectUngroup: faObjectUngroup,\n faComment: faComment,\n faHillAvalanche: faHillAvalanche,\n faArrowsToEye: faArrowsToEye,\n faSnowplow: faSnowplow,\n faChartGantt: faChartGantt,\n faVideo: faVideo,\n faVideoCamera: faVideoCamera,\n faChessPawn: faChessPawn,\n faSynagogue: faSynagogue,\n faBuildingCircleCheck: faBuildingCircleCheck,\n faCalendarPlus: faCalendarPlus,\n faWheelchairMove: faWheelchairMove,\n faWheelchairAlt: faWheelchairAlt,\n faUserShield: faUserShield,\n faBold: faBold,\n faHeartPulse: faHeartPulse,\n faHeartbeat: faHeartbeat,\n faSquareRootVariable: faSquareRootVariable,\n faSquareRootAlt: faSquareRootAlt,\n faHandsBubbles: faHandsBubbles,\n faHandsWash: faHandsWash,\n faMarker: faMarker,\n faClipboard: faClipboard,\n faPlaceOfWorship: faPlaceOfWorship,\n faCannabis: faCannabis,\n faPeopleRoof: faPeopleRoof,\n faDisease: faDisease,\n faBookBible: faBookBible,\n faBible: faBible,\n faChessBoard: faChessBoard,\n faMars: faMars,\n faLaptop: faLaptop,\n faUserXmark: faUserXmark,\n faUserTimes: faUserTimes,\n faFlagUsa: faFlagUsa,\n faHandMiddleFinger: faHandMiddleFinger,\n faMortarPestle: faMortarPestle,\n faHeadSideCough: faHeadSideCough,\n faPlaneLock: faPlaneLock,\n faBatteryThreeQuarters: faBatteryThreeQuarters,\n faBattery4: faBattery4,\n faFrancSign: faFrancSign,\n faFilterCircleDollar: faFilterCircleDollar,\n faFunnelDollar: faFunnelDollar,\n faCheese: faCheese,\n faCircleH: faCircleH,\n faHospitalSymbol: faHospitalSymbol,\n faSchool: faSchool,\n faDiceFive: faDiceFive,\n faTornado: faTornado,\n faJetFighter: faJetFighter,\n faFighterJet: faFighterJet,\n faThumbsDown: faThumbsDown,\n faBroom: faBroom,\n faFileImport: faFileImport,\n faArrowRightToFile: faArrowRightToFile,\n faUtensils: faUtensils,\n faCutlery: faCutlery,\n faIdBadge: faIdBadge,\n faSpider: faSpider,\n faMobileRetro: faMobileRetro,\n faSignsPost: faSignsPost,\n faMapSigns: faMapSigns,\n faGroupArrowsRotate: faGroupArrowsRotate,\n faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n faFillDrip: faFillDrip,\n faShieldHeart: faShieldHeart,\n faPersonSkiingNordic: faPersonSkiingNordic,\n faSkiingNordic: faSkiingNordic,\n faSquareCheck: faSquareCheck,\n faCheckSquare: faCheckSquare,\n faBath: faBath,\n faBathtub: faBathtub,\n faChessBishop: faChessBishop,\n faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n faDrawPolygon: faDrawPolygon,\n faVectorPolygon: faVectorPolygon,\n faICursor: faICursor,\n faHeartCirclePlus: faHeartCirclePlus,\n faShieldDog: faShieldDog,\n faGreaterThanEqual: faGreaterThanEqual,\n faEnvelopeOpen: faEnvelopeOpen,\n faMound: faMound,\n faVoicemail: faVoicemail,\n faVest: faVest,\n faAudioDescription: faAudioDescription,\n faW: faW,\n faEyeDropper: faEyeDropper,\n faEyeDropperEmpty: faEyeDropperEmpty,\n faEyedropper: faEyedropper,\n faCircleXmark: faCircleXmark,\n faTimesCircle: faTimesCircle,\n faXmarkCircle: faXmarkCircle,\n faTrailer: faTrailer,\n faTurkishLiraSign: faTurkishLiraSign,\n faTry: faTry,\n faTurkishLira: faTurkishLira,\n faVolcano: faVolcano,\n faWandSparkles: faWandSparkles,\n faMicrophone: faMicrophone,\n faCrown: faCrown,\n faTentArrowTurnLeft: faTentArrowTurnLeft,\n faTruckFast: faTruckFast,\n faShippingFast: faShippingFast,\n faUserPen: faUserPen,\n faUserEdit: faUserEdit,\n faUserClock: faUserClock,\n faShower: faShower,\n faSquareCaretUp: faSquareCaretUp,\n faCaretSquareUp: faCaretSquareUp,\n faMapLocation: faMapLocation,\n faMapMarked: faMapMarked,\n faPenFancy: faPenFancy,\n faEuroSign: faEuroSign,\n faEur: faEur,\n faEuro: faEuro,\n faHouseCircleXmark: faHouseCircleXmark,\n faLiraSign: faLiraSign,\n faYenSign: faYenSign,\n faCny: faCny,\n faJpy: faJpy,\n faRmb: faRmb,\n faYen: faYen,\n faBoxOpen: faBoxOpen,\n faTruckField: faTruckField,\n faLocationPinLock: faLocationPinLock,\n faPersonPraying: faPersonPraying,\n faPray: faPray,\n faClipboardList: faClipboardList,\n faSackDollar: faSackDollar,\n faMountainSun: faMountainSun,\n faArrowUpWideShort: faArrowUpWideShort,\n faSortAmountUp: faSortAmountUp,\n faUsersLine: faUsersLine,\n faStarOfDavid: faStarOfDavid,\n faNotesMedical: faNotesMedical,\n faAustralSign: faAustralSign,\n faClipboardUser: faClipboardUser,\n faFileImage: faFileImage,\n faSquareCaretRight: faSquareCaretRight,\n faCaretSquareRight: faCaretSquareRight,\n faVial: faVial,\n faHelicopter: faHelicopter,\n faMitten: faMitten,\n faGasPump: faGasPump,\n faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n faPersonSkating: faPersonSkating,\n faSkating: faSkating,\n faSun: faSun,\n faBaseball: faBaseball,\n faBaseballBall: faBaseballBall,\n faImage: faImage,\n faNotdef: faNotdef,\n faBasketball: faBasketball,\n faBasketballBall: faBasketballBall,\n faPencil: faPencil,\n faPencilAlt: faPencilAlt,\n faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n faDiceSix: faDiceSix,\n faAnglesDown: faAnglesDown,\n faAngleDoubleDown: faAngleDoubleDown,\n faSyringe: faSyringe,\n faWheatAwn: faWheatAwn,\n faWheatAlt: faWheatAlt,\n faPlaneUp: faPlaneUp,\n faAlignCenter: faAlignCenter,\n faHockeyPuck: faHockeyPuck,\n faCircleArrowLeft: faCircleArrowLeft,\n faArrowCircleLeft: faArrowCircleLeft,\n faPlugCircleBolt: faPlugCircleBolt,\n faRestroom: faRestroom,\n faAnchorLock: faAnchorLock,\n faTimeline: faTimeline,\n faLightbulb: faLightbulb,\n faCircleArrowRight: faCircleArrowRight,\n faArrowCircleRight: faArrowCircleRight,\n faMarsAndVenus: faMarsAndVenus,\n faNetworkWired: faNetworkWired,\n faBuildingShield: faBuildingShield,\n faCode: faCode,\n faFeatherPointed: faFeatherPointed,\n faFeatherAlt: faFeatherAlt,\n faFileCircleQuestion: faFileCircleQuestion,\n faSignature: faSignature,\n faEarthAmericas: faEarthAmericas,\n faEarth: faEarth,\n faEarthAmerica: faEarthAmerica,\n faGlobeAmericas: faGlobeAmericas,\n faCarrot: faCarrot,\n faTemperatureFull: faTemperatureFull,\n faTemperature4: faTemperature4,\n faThermometer4: faThermometer4,\n faThermometerFull: faThermometerFull,\n faTableCellsRowLock: faTableCellsRowLock,\n faBoltLightning: faBoltLightning,\n faCloudShowersWater: faCloudShowersWater,\n faArrowUpLong: faArrowUpLong,\n faLongArrowUp: faLongArrowUp,\n faAddressCard: faAddressCard,\n faContactCard: faContactCard,\n faVcard: faVcard,\n faAngleRight: faAngleRight,\n faFaceMeh: faFaceMeh,\n faMeh: faMeh,\n faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n faMap: faMap,\n faUserPlus: faUserPlus,\n faVenus: faVenus,\n faDiagramSuccessor: faDiagramSuccessor,\n faHeadSideCoughSlash: faHeadSideCoughSlash,\n faDiagramProject: faDiagramProject,\n faProjectDiagram: faProjectDiagram,\n faTerminal: faTerminal,\n faHouseFire: faHouseFire,\n faMask: faMask,\n faHurricane: faHurricane,\n faEarthAfrica: faEarthAfrica,\n faGlobeAfrica: faGlobeAfrica,\n faThumbtack: faThumbtack,\n faThumbTack: faThumbTack,\n faHandPointDown: faHandPointDown,\n faFaceMehBlank: faFaceMehBlank,\n faMehBlank: faMehBlank,\n faTemperatureEmpty: faTemperatureEmpty,\n faTemperature0: faTemperature0,\n faThermometer0: faThermometer0,\n faThermometerEmpty: faThermometerEmpty,\n faBorderNone: faBorderNone,\n faHighlighter: faHighlighter,\n faMoneyBillWave: faMoneyBillWave,\n faToiletPaperSlash: faToiletPaperSlash,\n faFileShield: faFileShield,\n faTextHeight: faTextHeight,\n faFaceGrinTongue: faFaceGrinTongue,\n faGrinTongue: faGrinTongue,\n faFileSignature: faFileSignature,\n faBuildingWheat: faBuildingWheat,\n faPlugCircleMinus: faPlugCircleMinus,\n faFutbol: faFutbol,\n faFutbolBall: faFutbolBall,\n faSoccerBall: faSoccerBall,\n faCirclePlus: faCirclePlus,\n faPlusCircle: faPlusCircle,\n faBrazilianRealSign: faBrazilianRealSign,\n faStarAndCrescent: faStarAndCrescent,\n faFaceSurprise: faFaceSurprise,\n faSurprise: faSurprise,\n faHospitalUser: faHospitalUser,\n faArrowDownUpLock: faArrowDownUpLock,\n faFolder: faFolder,\n faFolderBlank: faFolderBlank,\n faHollyBerry: faHollyBerry,\n faVenusDouble: faVenusDouble,\n faClipboardQuestion: faClipboardQuestion,\n faHotdog: faHotdog,\n faArrowUpFromBracket: faArrowUpFromBracket,\n faMicroscope: faMicroscope,\n faCloud: faCloud,\n faBaseballBatBall: faBaseballBatBall,\n faCarRear: faCarRear,\n faCarAlt: faCarAlt,\n faThumbtackSlash: faThumbtackSlash,\n faThumbTackSlash: faThumbTackSlash,\n faPlusMinus: faPlusMinus,\n faHouseCircleCheck: faHouseCircleCheck,\n faCalendarDay: faCalendarDay,\n faCircle: faCircle,\n faMobileVibrate: faMobileVibrate,\n faFaceGrinSquint: faFaceGrinSquint,\n faGrinSquint: faGrinSquint,\n faUsersBetweenLines: faUsersBetweenLines,\n faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n faTableList: faTableList,\n faThList: faThList,\n faFlaskVial: faFlaskVial,\n faCircleExclamation: faCircleExclamation,\n faExclamationCircle: faExclamationCircle,\n faTaxi: faTaxi,\n faCab: faCab,\n faTextSlash: faTextSlash,\n faRemoveFormat: faRemoveFormat,\n faPeoplePulling: faPeoplePulling,\n faBackward: faBackward,\n faCarBurst: faCarBurst,\n faCarCrash: faCarCrash,\n faLink: faLink,\n faChain: faChain,\n faBackwardStep: faBackwardStep,\n faStepBackward: faStepBackward,\n faX: faX,\n faCircleUser: faCircleUser,\n faUserCircle: faUserCircle,\n faRectangleList: faRectangleList,\n faListAlt: faListAlt,\n faHand: faHand,\n faHandPaper: faHandPaper,\n faVanShuttle: faVanShuttle,\n faShuttleVan: faShuttleVan,\n faStairs: faStairs,\n faHorseHead: faHorseHead,\n faVault: faVault,\n faDrumSteelpan: faDrumSteelpan,\n faThumbsUp: faThumbsUp,\n faStamp: faStamp,\n faMenorah: faMenorah,\n faChildren: faChildren,\n faChartLine: faChartLine,\n faLineChart: faLineChart,\n faSquareEnvelope: faSquareEnvelope,\n faEnvelopeSquare: faEnvelopeSquare,\n faBanSmoking: faBanSmoking,\n faSmokingBan: faSmokingBan,\n faTruckFront: faTruckFront,\n faBuilding: faBuilding,\n faBullseye: faBullseye,\n faArrowLeftLong: faArrowLeftLong,\n faLongArrowLeft: faLongArrowLeft,\n faChessRook: faChessRook,\n faBlenderPhone: faBlenderPhone,\n faArrowTurnUp: faArrowTurnUp,\n faLevelUp: faLevelUp,\n faBicycle: faBicycle,\n faCircleArrowDown: faCircleArrowDown,\n faArrowCircleDown: faArrowCircleDown,\n faGear: faGear,\n faCog: faCog,\n faMarsAndVenusBurst: faMarsAndVenusBurst,\n faOtter: faOtter,\n faCircleChevronLeft: faCircleChevronLeft,\n faChevronCircleLeft: faChevronCircleLeft,\n faCircleQuestion: faCircleQuestion,\n faQuestionCircle: faQuestionCircle,\n faWalkieTalkie: faWalkieTalkie,\n faUserGroup: faUserGroup,\n faUserFriends: faUserFriends,\n faHouseChimney: faHouseChimney,\n faHomeLg: faHomeLg,\n faRightFromBracket: faRightFromBracket,\n faSignOutAlt: faSignOutAlt,\n faFile: faFile,\n faPlaneSlash: faPlaneSlash,\n faCloudShowersHeavy: faCloudShowersHeavy,\n faPersonFalling: faPersonFalling,\n faTurnDown: faTurnDown,\n faLevelDownAlt: faLevelDownAlt,\n faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n faExpandAlt: faExpandAlt,\n faUserTag: faUserTag,\n faHandSparkles: faHandSparkles,\n faArrowsToDot: faArrowsToDot,\n faFaceSadCry: faFaceSadCry,\n faSadCry: faSadCry,\n faDongSign: faDongSign,\n faPeopleLine: faPeopleLine,\n faSquareRss: faSquareRss,\n faRssSquare: faRssSquare,\n faCalendarMinus: faCalendarMinus,\n faChartDiagram: faChartDiagram,\n faFaceTired: faFaceTired,\n faTired: faTired,\n faHandPointRight: faHandPointRight,\n faArrowUp: faArrowUp,\n faCubesStacked: faCubesStacked,\n faChildCombatant: faChildCombatant,\n faChildRifle: faChildRifle,\n faVestPatches: faVestPatches,\n faMartiniGlassEmpty: faMartiniGlassEmpty,\n faGlassMartini: faGlassMartini,\n faMagnet: faMagnet,\n faRoadBarrier: faRoadBarrier,\n faCompassDrafting: faCompassDrafting,\n faDraftingCompass: faDraftingCompass,\n faSquarePersonConfined: faSquarePersonConfined,\n faPlateWheat: faPlateWheat,\n faSignHanging: faSignHanging,\n faSign: faSign,\n faCarBattery: faCarBattery,\n faBatteryCar: faBatteryCar,\n faShirt: faShirt,\n faTShirt: faTShirt,\n faTshirt: faTshirt,\n faParagraph: faParagraph,\n faEnvelopesBulk: faEnvelopesBulk,\n faMailBulk: faMailBulk,\n faGuitar: faGuitar,\n faSuitcase: faSuitcase,\n faCircleUp: faCircleUp,\n faArrowAltCircleUp: faArrowAltCircleUp,\n faF: faF,\n faXmarksLines: faXmarksLines,\n faEarthOceania: faEarthOceania,\n faGlobeOceania: faGlobeOceania,\n faCommentSlash: faCommentSlash,\n faPlay: faPlay,\n faVialCircleCheck: faVialCircleCheck,\n faBridgeCircleCheck: faBridgeCircleCheck,\n faCediSign: faCediSign,\n faPuzzlePiece: faPuzzlePiece,\n faHelmetUn: faHelmetUn,\n faGlassWater: faGlassWater,\n faHeartCircleBolt: faHeartCircleBolt,\n faPumpSoap: faPumpSoap,\n faHandScissors: faHandScissors,\n faDolly: faDolly,\n faDollyBox: faDollyBox,\n faPaperclip: faPaperclip,\n faDemocrat: faDemocrat,\n faSquareArrowUpRight: faSquareArrowUpRight,\n faExternalLinkSquare: faExternalLinkSquare,\n faFerry: faFerry,\n faMosquito: faMosquito,\n faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n faLeftRight: faLeftRight,\n faArrowsAltH: faArrowsAltH,\n faVirus: faVirus,\n faGem: faGem,\n faToilet: faToilet,\n faSingleQuoteLeft: faSingleQuoteLeft,\n faMoneyBills: faMoneyBills,\n faTabletButton: faTabletButton,\n faRectangleXmark: faRectangleXmark,\n faRectangleTimes: faRectangleTimes,\n faTimesRectangle: faTimesRectangle,\n faWindowClose: faWindowClose,\n faWrench: faWrench,\n faTrashCan: faTrashCan,\n faTrashAlt: faTrashAlt,\n faTableCells: faTableCells,\n faTh: faTh,\n faRibbon: faRibbon,\n faLandmarkFlag: faLandmarkFlag,\n faUpDownLeftRight: faUpDownLeftRight,\n faArrowsAlt: faArrowsAlt,\n faCarSide: faCarSide,\n faTrashArrowUp: faTrashArrowUp,\n faTrashRestore: faTrashRestore,\n faLifeRing: faLifeRing,\n faCopyright: faCopyright,\n faFilePrescription: faFilePrescription,\n faEraser: faEraser,\n faHourglassStart: faHourglassStart,\n faHourglass1: faHourglass1,\n faCircleLeft: faCircleLeft,\n faArrowAltCircleLeft: faArrowAltCircleLeft,\n faCruzeiroSign: faCruzeiroSign,\n faSmoking: faSmoking,\n faSquarePollVertical: faSquarePollVertical,\n faPoll: faPoll,\n faPersonCircleMinus: faPersonCircleMinus,\n faBiohazard: faBiohazard,\n faBellConcierge: faBellConcierge,\n faConciergeBell: faConciergeBell,\n faRulerHorizontal: faRulerHorizontal,\n faHorse: faHorse,\n faCalendar: faCalendar,\n faHandsHoldingChild: faHandsHoldingChild,\n faItalic: faItalic,\n faKhanda: faKhanda,\n faFaceFrownOpen: faFaceFrownOpen,\n faFrownOpen: faFrownOpen,\n faCheck: faCheck,\n faFingerprint: faFingerprint,\n faChargingStation: faChargingStation,\n faUserLock: faUserLock,\n faMobileScreenButton: faMobileScreenButton,\n faMobileAlt: faMobileAlt,\n faAnchorCircleCheck: faAnchorCircleCheck,\n faPersonWalkingWithCane: faPersonWalkingWithCane,\n faBlind: faBlind,\n faFileWaveform: faFileWaveform,\n faFileMedicalAlt: faFileMedicalAlt,\n faHouseCrack: faHouseCrack,\n faHatWizard: faHatWizard,\n faUserDoctor: faUserDoctor,\n faUserMd: faUserMd,\n faChartBar: faChartBar,\n faBarChart: faBarChart,\n faSprayCanSparkles: faSprayCanSparkles,\n faAirFreshener: faAirFreshener,\n faBahtSign: faBahtSign,\n faTemperatureArrowUp: faTemperatureArrowUp,\n faTemperatureUp: faTemperatureUp,\n faWebAwesome: faWebAwesome,\n faNonBinary: faNonBinary,\n faN: faN,\n faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n faArrows: faArrows,\n faHouse: faHouse,\n faHome: faHome,\n faHomeAlt: faHomeAlt,\n faHomeLgAlt: faHomeLgAlt,\n faSpinner: faSpinner,\n faGavel: faGavel,\n faLegal: faLegal,\n faTicketSimple: faTicketSimple,\n faTicketAlt: faTicketAlt,\n faDove: faDove,\n faTarpDroplet: faTarpDroplet,\n faTreeCity: faTreeCity,\n faTurnUp: faTurnUp,\n faLevelUpAlt: faLevelUpAlt,\n faTemperatureQuarter: faTemperatureQuarter,\n faTemperature1: faTemperature1,\n faThermometer1: faThermometer1,\n faThermometerQuarter: faThermometerQuarter,\n faSliders: faSliders,\n faSlidersH: faSlidersH,\n faMosque: faMosque,\n faH: faH,\n faInfo: faInfo,\n faPersonWalking: faPersonWalking,\n faWalking: faWalking,\n faArrowTurnDown: faArrowTurnDown,\n faLevelDown: faLevelDown,\n faRoad: faRoad,\n faSpiral: faSpiral,\n faFaceFrown: faFaceFrown,\n faFrown: faFrown,\n faWineGlassEmpty: faWineGlassEmpty,\n faWineGlassAlt: faWineGlassAlt,\n faClapperboard: faClapperboard,\n faForwardStep: faForwardStep,\n faStepForward: faStepForward,\n faSquareUpRight: faSquareUpRight,\n faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n faBookJournalWhills: faBookJournalWhills,\n faJournalWhills: faJournalWhills,\n faChampagneGlasses: faChampagneGlasses,\n faGlassCheers: faGlassCheers,\n faDumpster: faDumpster,\n faHeartCircleXmark: faHeartCircleXmark,\n faComputer: faComputer,\n faWandMagic: faWandMagic,\n faMagic: faMagic,\n faBrain: faBrain,\n faBriefcaseMedical: faBriefcaseMedical,\n faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n faCodeCommit: faCodeCommit,\n faPersonBreastfeeding: faPersonBreastfeeding,\n faPersonRays: faPersonRays,\n faManatSign: faManatSign,\n faSort: faSort,\n faUnsorted: faUnsorted,\n faCircleRadiation: faCircleRadiation,\n faRadiationAlt: faRadiationAlt,\n faLaptopCode: faLaptopCode,\n faSink: faSink,\n faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n faMicrophoneAltSlash: faMicrophoneAltSlash,\n faServer: faServer,\n faUser: faUser,\n faUserAlt: faUserAlt,\n faUserLarge: faUserLarge,\n faSnowflake: faSnowflake,\n faSkullCrossbones: faSkullCrossbones,\n faPesoSign: faPesoSign,\n faWineGlass: faWineGlass,\n faTemperatureHalf: faTemperatureHalf,\n faTemperature2: faTemperature2,\n faThermometer2: faThermometer2,\n faThermometerHalf: faThermometerHalf,\n faTicket: faTicket,\n faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n faArrowsTurnRight: faArrowsTurnRight,\n faCandyCane: faCandyCane,\n faWheelchair: faWheelchair,\n faSpellCheck: faSpellCheck,\n faVolumeOff: faVolumeOff,\n faLungs: faLungs,\n faBookmark: faBookmark,\n faBarcode: faBarcode,\n faListOl: faListOl,\n faList12: faList12,\n faListNumeric: faListNumeric,\n faFileCircleXmark: faFileCircleXmark,\n faCube: faCube,\n faTape: faTape,\n faBomb: faBomb,\n faScaleUnbalanced: faScaleUnbalanced,\n faBalanceScaleLeft: faBalanceScaleLeft,\n faSquareCaretLeft: faSquareCaretLeft,\n faCaretSquareLeft: faCaretSquareLeft,\n faRuler: faRuler,\n faI: faI,\n faVolumeXmark: faVolumeXmark,\n faVolumeMute: faVolumeMute,\n faVolumeTimes: faVolumeTimes,\n faArchway: faArchway,\n faPersonDigging: faPersonDigging,\n faDigging: faDigging,\n faGaugeHigh: faGaugeHigh,\n faTachometerAlt: faTachometerAlt,\n faTachometerAltFast: faTachometerAltFast,\n faGenderless: faGenderless,\n faCloudSun: faCloudSun,\n faArrowRight: faArrowRight,\n faHandshake: faHandshake,\n faHandshakeAlt: faHandshakeAlt,\n faHandshakeSimple: faHandshakeSimple,\n faPersonSkiing: faPersonSkiing,\n faSkiing: faSkiing,\n faBridgeWater: faBridgeWater,\n faBuildingNgo: faBuildingNgo,\n faIgloo: faIgloo,\n faCircleDollarToSlot: faCircleDollarToSlot,\n faDonate: faDonate,\n faY: faY,\n faFaceSmileWink: faFaceSmileWink,\n faSmileWink: faSmileWink,\n faDiceFour: faDiceFour,\n faFaceGrinSquintTears: faFaceGrinSquintTears,\n faGrinSquintTears: faGrinSquintTears,\n faFileAudio: faFileAudio,\n faArrowsDownToLine: faArrowsDownToLine,\n faG: faG,\n faVihara: faVihara,\n faFlagCheckered: faFlagCheckered,\n faGaugeSimple: faGaugeSimple,\n faGaugeSimpleMed: faGaugeSimpleMed,\n faTachometerAverage: faTachometerAverage,\n faRightLeft: faRightLeft,\n faExchangeAlt: faExchangeAlt,\n faPills: faPills,\n faExplosion: faExplosion,\n faArrowsDownToPeople: faArrowsDownToPeople,\n faUsersViewfinder: faUsersViewfinder,\n faCarOn: faCarOn,\n faSleigh: faSleigh,\n faDumbbell: faDumbbell,\n faBabyCarriage: faBabyCarriage,\n faCarriageBaby: faCarriageBaby,\n faKiwiBird: faKiwiBird,\n faCalendarXmark: faCalendarXmark,\n faCalendarTimes: faCalendarTimes,\n faCircleDown: faCircleDown,\n faArrowAltCircleDown: faArrowAltCircleDown,\n faFileMedical: faFileMedical,\n faXmark: faXmark,\n faClose: faClose,\n faMultiply: faMultiply,\n faRemove: faRemove,\n faTimes: faTimes,\n faShapes: faShapes,\n faTriangleCircleSquare: faTriangleCircleSquare,\n faDiceOne: faDiceOne,\n faLockOpen: faLockOpen,\n faPepperHot: faPepperHot,\n faDropletSlash: faDropletSlash,\n faTintSlash: faTintSlash,\n faDroplet: faDroplet,\n faTint: faTint,\n faFileLines: faFileLines,\n faFileAlt: faFileAlt,\n faFileText: faFileText,\n faCommentsDollar: faCommentsDollar,\n faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n faSearchLocation: faSearchLocation,\n faFileInvoice: faFileInvoice,\n faPentagon: faPentagon,\n faRepublican: faRepublican,\n faShop: faShop,\n faStoreAlt: faStoreAlt,\n faFilm: faFilm,\n faFilmAlt: faFilmAlt,\n faFilmSimple: faFilmSimple,\n faBuildingCircleXmark: faBuildingCircleXmark,\n faComments: faComments,\n faTags: faTags,\n faGun: faGun,\n faCircleCheck: faCircleCheck,\n faCheckCircle: faCheckCircle,\n faIdCardClip: faIdCardClip,\n faIdCardAlt: faIdCardAlt,\n faMoon: faMoon,\n faOilWell: faOilWell,\n faTachographDigital: faTachographDigital,\n faDigitalTachograph: faDigitalTachograph,\n faTablet: faTablet,\n faTabletAndroid: faTabletAndroid,\n faRubleSign: faRubleSign,\n faRouble: faRouble,\n faRub: faRub,\n faRuble: faRuble,\n faClosedCaptioning: faClosedCaptioning,\n faPen: faPen,\n faPlane: faPlane,\n faImages: faImages,\n faMobileScreen: faMobileScreen,\n faMobileAndroidAlt: faMobileAndroidAlt,\n faGuaraniSign: faGuaraniSign,\n faBagShopping: faBagShopping,\n faShoppingBag: faShoppingBag,\n faCircleRight: faCircleRight,\n faArrowAltCircleRight: faArrowAltCircleRight,\n faPhoneVolume: faPhoneVolume,\n faVolumeControlPhone: faVolumeControlPhone,\n faCubes: faCubes,\n faPhone: faPhone,\n faToriiGate: faToriiGate,\n faBacon: faBacon,\n faPersonFallingBurst: faPersonFallingBurst,\n faQuoteRight: faQuoteRight,\n faQuoteRightAlt: faQuoteRightAlt,\n faHouseMedicalFlag: faHouseMedicalFlag,\n faPrescription: faPrescription,\n faDiceThree: faDiceThree,\n faBuildingLock: faBuildingLock,\n faIdCard: faIdCard,\n faDriversLicense: faDriversLicense,\n faCirclePlay: faCirclePlay,\n faPlayCircle: faPlayCircle,\n faFaceLaughBeam: faFaceLaughBeam,\n faLaughBeam: faLaughBeam,\n faLeaf: faLeaf,\n faHouseChimneyUser: faHouseChimneyUser,\n faRotateRight: faRotateRight,\n faRedoAlt: faRedoAlt,\n faRotateForward: faRotateForward,\n faTooth: faTooth,\n faHouseChimneyWindow: faHouseChimneyWindow,\n faMotorcycle: faMotorcycle,\n faBackwardFast: faBackwardFast,\n faFastBackward: faFastBackward,\n faAddressBook: faAddressBook,\n faContactBook: faContactBook,\n faSailboat: faSailboat,\n faBookBookmark: faBookBookmark,\n faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n faMicrophoneLines: faMicrophoneLines,\n faMicrophoneAlt: faMicrophoneAlt,\n faReplyAll: faReplyAll,\n faMailReplyAll: faMailReplyAll,\n faUniversalAccess: faUniversalAccess,\n faToiletPaper: faToiletPaper,\n faToiletPaperAlt: faToiletPaperAlt,\n faToiletPaperBlank: faToiletPaperBlank,\n faVrCardboard: faVrCardboard,\n faPizzaSlice: faPizzaSlice,\n faSprayCan: faSprayCan,\n faVolumeLow: faVolumeLow,\n faVolumeDown: faVolumeDown,\n faCross: faCross,\n faPerson: faPerson,\n faMale: faMale,\n faHourglass: faHourglass,\n faHourglassEmpty: faHourglassEmpty,\n faFish: faFish,\n faDrumstickBite: faDrumstickBite,\n faChartSimple: faChartSimple,\n faAtom: faAtom,\n faP: faP,\n faJetFighterUp: faJetFighterUp,\n faPlugCircleXmark: faPlugCircleXmark,\n faSheetPlastic: faSheetPlastic,\n faV: faV,\n faList: faList,\n faListSquares: faListSquares,\n faSolarPanel: faSolarPanel,\n faLandMineOn: faLandMineOn,\n faHeadphones: faHeadphones,\n faHeadphonesAlt: faHeadphonesAlt,\n faHeadphonesSimple: faHeadphonesSimple,\n faBus: faBus,\n faFilePowerpoint: faFilePowerpoint,\n faQuoteLeft: faQuoteLeft,\n faQuoteLeftAlt: faQuoteLeftAlt,\n faChevronDown: faChevronDown,\n faEarthAsia: faEarthAsia,\n faGlobeAsia: faGlobeAsia,\n faCentSign: faCentSign,\n faShieldCat: faShieldCat,\n faSchoolCircleCheck: faSchoolCircleCheck,\n faMartiniGlass: faMartiniGlass,\n faGlassMartiniAlt: faGlassMartiniAlt,\n faPlug: faPlug,\n faPanorama: faPanorama,\n faClockRotateLeft: faClockRotateLeft,\n faHistory: faHistory,\n faJarWheat: faJarWheat,\n faCloudArrowDown: faCloudArrowDown,\n faCloudDownload: faCloudDownload,\n faCloudDownloadAlt: faCloudDownloadAlt,\n faTruckRampBox: faTruckRampBox,\n faTruckLoading: faTruckLoading,\n faAngleDown: faAngleDown,\n faPlugCircleCheck: faPlugCircleCheck,\n faWindowMaximize: faWindowMaximize,\n faHandsHoldingCircle: faHandsHoldingCircle,\n faLocationPin: faLocationPin,\n faMapMarker: faMapMarker,\n faBowlingBall: faBowlingBall,\n faCartFlatbed: faCartFlatbed,\n faDollyFlatbed: faDollyFlatbed,\n faHouseUser: faHouseUser,\n faHomeUser: faHomeUser,\n faGhost: faGhost,\n faCommentNodes: faCommentNodes,\n faPersonArrowDownToLine: faPersonArrowDownToLine,\n faPlugCirclePlus: faPlugCirclePlus,\n faPersonSwimming: faPersonSwimming,\n faSwimmer: faSwimmer,\n faCommentDots: faCommentDots,\n faCommenting: faCommenting,\n faChartPie: faChartPie,\n faPieChart: faPieChart,\n faFrog: faFrog,\n faWineBottle: faWineBottle,\n faInbox: faInbox,\n faSquareH: faSquareH,\n faHSquare: faHSquare,\n faHouseMedical: faHouseMedical,\n faCircleChevronRight: faCircleChevronRight,\n faChevronCircleRight: faChevronCircleRight,\n faFileCsv: faFileCsv,\n faHatCowboy: faHatCowboy,\n faFaceGrinTongueWink: faFaceGrinTongueWink,\n faGrinTongueWink: faGrinTongueWink,\n faL: faL,\n faArrowDownShortWide: faArrowDownShortWide,\n faSortAmountDesc: faSortAmountDesc,\n faSortAmountDownAlt: faSortAmountDownAlt,\n faHourglassHalf: faHourglassHalf,\n faHourglass2: faHourglass2,\n faSpoon: faSpoon,\n faUtensilSpoon: faUtensilSpoon,\n faCreditCard: faCreditCard,\n faCreditCardAlt: faCreditCardAlt,\n faFileInvoiceDollar: faFileInvoiceDollar,\n faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n faPastafarianism: faPastafarianism,\n faMartiniGlassCitrus: faMartiniGlassCitrus,\n faCocktail: faCocktail,\n faBullhorn: faBullhorn,\n faBoxTissue: faBoxTissue,\n faMattressPillow: faMattressPillow,\n faChevronLeft: faChevronLeft,\n faCloudMoonRain: faCloudMoonRain,\n faArrowDown19: faArrowDown19,\n faSortNumericAsc: faSortNumericAsc,\n faSortNumericDown: faSortNumericDown,\n faHandSpock: faHandSpock,\n faWandMagicSparkles: faWandMagicSparkles,\n faMagicWandSparkles: faMagicWandSparkles,\n faCommentMedical: faCommentMedical,\n faBellSlash: faBellSlash,\n faHandshakeSlash: faHandshakeSlash,\n faHandshakeAltSlash: faHandshakeAltSlash,\n faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n faBottleWater: faBottleWater,\n faDiceD20: faDiceD20,\n faArrowDownZA: faArrowDownZA,\n faSortAlphaDesc: faSortAlphaDesc,\n faSortAlphaDownAlt: faSortAlphaDownAlt,\n faBrush: faBrush,\n faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n faArrowUpShortWide: faArrowUpShortWide,\n faSortAmountUpAlt: faSortAmountUpAlt,\n faGripVertical: faGripVertical,\n faGridVertical: faGridVertical,\n faCarTunnel: faCarTunnel,\n faChartColumn: faChartColumn,\n faTruckArrowRight: faTruckArrowRight,\n faTv: faTv,\n faTelevision: faTelevision,\n faTvAlt: faTvAlt,\n faSection: faSection,\n faPeace: faPeace,\n faStar: faStar,\n faFlag: faFlag,\n faTriangleExclamation: faTriangleExclamation,\n faExclamationTriangle: faExclamationTriangle,\n faWarning: faWarning,\n faSchoolCircleExclamation: faSchoolCircleExclamation,\n faGraduationCap: faGraduationCap,\n faMortarBoard: faMortarBoard,\n faStore: faStore,\n faUserAstronaut: faUserAstronaut,\n faBuildingFlag: faBuildingFlag,\n faMugSaucer: faMugSaucer,\n faCoffee: faCoffee,\n faLemon: faLemon,\n faCaravan: faCaravan,\n faQ: faQ,\n faLock: faLock,\n faPaintRoller: faPaintRoller,\n faVolumeHigh: faVolumeHigh,\n faVolumeUp: faVolumeUp,\n faFolderPlus: faFolderPlus,\n faMercury: faMercury,\n faAnchor: faAnchor,\n faSquareParking: faSquareParking,\n faParking: faParking,\n faHanukiah: faHanukiah,\n faRotateLeft: faRotateLeft,\n faRotateBack: faRotateBack,\n faRotateBackward: faRotateBackward,\n faUndoAlt: faUndoAlt,\n faHeading: faHeading,\n faHeader: faHeader,\n faCrosshairs: faCrosshairs,\n faCircleNodes: faCircleNodes,\n faWindowRestore: faWindowRestore,\n faR: faR,\n faFilterCircleXmark: faFilterCircleXmark,\n faGopuram: faGopuram,\n faHeartCircleMinus: faHeartCircleMinus,\n faStarOfLife: faStarOfLife,\n faBusinessTime: faBusinessTime,\n faBriefcaseClock: faBriefcaseClock,\n faFireExtinguisher: faFireExtinguisher,\n faArrowDownLong: faArrowDownLong,\n faLongArrowDown: faLongArrowDown,\n faUserMinus: faUserMinus,\n faMoneyCheck: faMoneyCheck,\n faHouseLaptop: faHouseLaptop,\n faLaptopHouse: faLaptopHouse,\n faDownload: faDownload,\n faCouch: faCouch,\n faRoadLock: faRoadLock,\n faScissors: faScissors,\n faCut: faCut,\n faBug: faBug,\n faArrowRightFromBracket: faArrowRightFromBracket,\n faSignOut: faSignOut,\n faHandHoldingHand: faHandHoldingHand,\n faStroopwafel: faStroopwafel,\n faChild: faChild,\n faIceCream: faIceCream,\n faComputerMouse: faComputerMouse,\n faMouse: faMouse,\n faFaucet: faFaucet,\n faAward: faAward,\n faPersonDrowning: faPersonDrowning,\n faCameraRotate: faCameraRotate,\n faFaceGrinHearts: faFaceGrinHearts,\n faGrinHearts: faGrinHearts,\n faFileFragment: faFileFragment,\n faPersonMilitaryRifle: faPersonMilitaryRifle,\n faToggleOn: faToggleOn,\n faLungsVirus: faLungsVirus,\n faTableTennisPaddleBall: faTableTennisPaddleBall,\n faPingPongPaddleBall: faPingPongPaddleBall,\n faTableTennis: faTableTennis,\n faBoxesPacking: faBoxesPacking,\n faPersonChalkboard: faPersonChalkboard,\n faDiceTwo: faDiceTwo,\n faArrowRightArrowLeft: faArrowRightArrowLeft,\n faExchange: faExchange,\n faFootball: faFootball,\n faFootballBall: faFootballBall,\n faTruckMonster: faTruckMonster,\n faAsterisk: faAsterisk,\n faBatteryFull: faBatteryFull,\n faBattery: faBattery,\n faBattery5: faBattery5,\n faChildDress: faChildDress,\n faFaceKissBeam: faFaceKissBeam,\n faKissBeam: faKissBeam,\n faTrashCanArrowUp: faTrashCanArrowUp,\n faTrashRestoreAlt: faTrashRestoreAlt,\n faFont: faFont,\n faBoreHole: faBoreHole,\n faVirusCovid: faVirusCovid,\n faFilePdf: faFilePdf,\n faLanguage: faLanguage,\n faShieldHalved: faShieldHalved,\n faShieldAlt: faShieldAlt,\n faCaretUp: faCaretUp,\n faFilePen: faFilePen,\n faFileEdit: faFileEdit,\n faPersonBiking: faPersonBiking,\n faBiking: faBiking,\n faBookOpenReader: faBookOpenReader,\n faBookReader: faBookReader,\n faGlassWaterDroplet: faGlassWaterDroplet,\n faTowerBroadcast: faTowerBroadcast,\n faBroadcastTower: faBroadcastTower,\n faMinimize: faMinimize,\n faCompressArrowsAlt: faCompressArrowsAlt,\n faArrowRightToCity: faArrowRightToCity,\n faLaptopMedical: faLaptopMedical,\n faBreadSlice: faBreadSlice,\n faGlobe: faGlobe,\n faFolderMinus: faFolderMinus,\n faMaskFace: faMaskFace,\n faBong: faBong,\n faRoadBridge: faRoadBridge,\n faArrowUp91: faArrowUp91,\n faSortNumericUpAlt: faSortNumericUpAlt,\n faMountainCity: faMountainCity,\n faArrowDown91: faArrowDown91,\n faSortNumericDesc: faSortNumericDesc,\n faSortNumericDownAlt: faSortNumericDownAlt,\n faFaceGrinWide: faFaceGrinWide,\n faGrinAlt: faGrinAlt,\n faPoop: faPoop,\n faDharmachakra: faDharmachakra,\n faBatteryQuarter: faBatteryQuarter,\n faBattery2: faBattery2,\n faAnkh: faAnkh,\n faDiamond: faDiamond,\n faSubscript: faSubscript,\n faRupeeSign: faRupeeSign,\n faRupee: faRupee,\n faPersonRifle: faPersonRifle,\n faD: faD,\n faSquareNfi: faSquareNfi,\n faTeeth: faTeeth,\n faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n faSearchDollar: faSearchDollar,\n faDumpsterFire: faDumpsterFire,\n faUpload: faUpload,\n faUserSlash: faUserSlash,\n faUserAltSlash: faUserAltSlash,\n faUserLargeSlash: faUserLargeSlash,\n faArrowLeft: faArrowLeft,\n faVialVirus: faVialVirus,\n faCheckDouble: faCheckDouble,\n faPaw: faPaw,\n faHelmetSafety: faHelmetSafety,\n faHardHat: faHardHat,\n faHatHard: faHatHard,\n faE: faE,\n faFaceLaughSquint: faFaceLaughSquint,\n faLaughSquint: faLaughSquint,\n faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n faCompressAlt: faCompressAlt,\n faGifts: faGifts,\n faBed: faBed,\n faMoneyBillTransfer: faMoneyBillTransfer,\n faPersonRunning: faPersonRunning,\n faRunning: faRunning,\n faCircleChevronDown: faCircleChevronDown,\n faChevronCircleDown: faChevronCircleDown,\n faUserNurse: faUserNurse,\n faFaceKissWinkHeart: faFaceKissWinkHeart,\n faKissWinkHeart: faKissWinkHeart,\n faFill: faFill,\n faMoneyBill1Wave: faMoneyBill1Wave,\n faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n faLandmark: faLandmark,\n faMusic: faMusic,\n faBookMedical: faBookMedical,\n faShuffle: faShuffle,\n faRandom: faRandom,\n faUnderline: faUnderline,\n faBuildingUser: faBuildingUser,\n faRobot: faRobot,\n faPlus: faPlus,\n faAdd: faAdd,\n faCopy: faCopy,\n faChessKing: faChessKing,\n faHouseFloodWater: faHouseFloodWater,\n faBitcoinSign: faBitcoinSign,\n faBox: faBox,\n faSquarePlus: faSquarePlus,\n faPlusSquare: faPlusSquare,\n faArrowsLeftRight: faArrowsLeftRight,\n faArrowsH: faArrowsH,\n faFan: faFan,\n faCrow: faCrow,\n faFileCircleCheck: faFileCircleCheck,\n faLinkSlash: faLinkSlash,\n faChainBroken: faChainBroken,\n faChainSlash: faChainSlash,\n faUnlink: faUnlink,\n faArrowRotateRight: faArrowRotateRight,\n faArrowRightRotate: faArrowRightRotate,\n faArrowRotateForward: faArrowRotateForward,\n faRedo: faRedo,\n faPenClip: faPenClip,\n faPenAlt: faPenAlt,\n faDoorClosed: faDoorClosed,\n faArrowDownWideShort: faArrowDownWideShort,\n faSortAmountAsc: faSortAmountAsc,\n faSortAmountDown: faSortAmountDown,\n faCaretDown: faCaretDown,\n faK: faK,\n faCheckToSlot: faCheckToSlot,\n faVoteYea: faVoteYea,\n faFishFins: faFishFins,\n faCompress: faCompress,\n faArrowUpAZ: faArrowUpAZ,\n faSortAlphaUp: faSortAlphaUp,\n faUserGraduate: faUserGraduate,\n faFileCode: faFileCode,\n faSoap: faSoap,\n faRecycle: faRecycle,\n faFaceGrinWink: faFaceGrinWink,\n faGrinWink: faGrinWink,\n faWaterLadder: faWaterLadder,\n faLadderWater: faLadderWater,\n faSwimmingPool: faSwimmingPool,\n faTowerCell: faTowerCell,\n faColonSign: faColonSign,\n faLaptopFile: faLaptopFile,\n faBahai: faBahai,\n faHaykal: faHaykal,\n faMoneyBill1: faMoneyBill1,\n faMoneyBillAlt: faMoneyBillAlt,\n faCloudBolt: faCloudBolt,\n faThunderstorm: faThunderstorm,\n faEthernet: faEthernet,\n faHryvniaSign: faHryvniaSign,\n faHryvnia: faHryvnia,\n faEyeSlash: faEyeSlash,\n faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n faLuggageCart: faLuggageCart,\n faRadiation: faRadiation,\n faFileWord: faFileWord,\n faBedPulse: faBedPulse,\n faProcedures: faProcedures,\n faTents: faTents,\n faMugHot: faMugHot,\n faBolt: faBolt,\n faZap: faZap,\n faJar: faJar,\n faTruckPlane: faTruckPlane,\n faHandHoldingHeart: faHandHoldingHeart,\n faArrowRotateLeft: faArrowRotateLeft,\n faArrowLeftRotate: faArrowLeftRotate,\n faArrowRotateBack: faArrowRotateBack,\n faArrowRotateBackward: faArrowRotateBackward,\n faUndo: faUndo,\n faFaceAngry: faFaceAngry,\n faAngry: faAngry,\n faBurst: faBurst,\n faZ: faZ,\n faBandage: faBandage,\n faBandAid: faBandAid,\n faPlaneCircleExclamation: faPlaneCircleExclamation,\n faBusSide: faBusSide,\n faBugs: faBugs,\n faBeerMugEmpty: faBeerMugEmpty,\n faBeer: faBeer,\n faPersonCircleCheck: faPersonCircleCheck,\n faStapler: faStapler,\n faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n faNairaSign: faNairaSign,\n faWifi: faWifi,\n faWifi3: faWifi3,\n faWifiStrong: faWifiStrong,\n faMoneyCheckDollar: faMoneyCheckDollar,\n faMoneyCheckAlt: faMoneyCheckAlt,\n faEyeLowVision: faEyeLowVision,\n faLowVision: faLowVision,\n faCircleArrowUp: faCircleArrowUp,\n faArrowCircleUp: faArrowCircleUp,\n faCameraRetro: faCameraRetro,\n faCapsules: faCapsules,\n faPoo: faPoo,\n faElevator: faElevator,\n faTag: faTag,\n faFileCircleMinus: faFileCircleMinus,\n faDownLong: faDownLong,\n faLongArrowAltDown: faLongArrowAltDown,\n faCompactDisc: faCompactDisc,\n faSuitcaseRolling: faSuitcaseRolling,\n faBookQuran: faBookQuran,\n faQuran: faQuran,\n faPhoneSlash: faPhoneSlash,\n faRoadCircleCheck: faRoadCircleCheck,\n faShopLock: faShopLock,\n faImagePortrait: faImagePortrait,\n faPortrait: faPortrait,\n faBridgeLock: faBridgeLock,\n faHammer: faHammer,\n faArrowUp19: faArrowUp19,\n faSortNumericUp: faSortNumericUp,\n faChessKnight: faChessKnight,\n faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n faExternalLink: faExternalLink,\n faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n faFaceGrinBeam: faFaceGrinBeam,\n faGrinBeam: faGrinBeam,\n faRectangleAd: faRectangleAd,\n faAd: faAd,\n faBookTanakh: faBookTanakh,\n faTanakh: faTanakh,\n faHotTubPerson: faHotTubPerson,\n faHotTub: faHotTub,\n faFileHalfDashed: faFileHalfDashed,\n faOutdent: faOutdent,\n faDedent: faDedent,\n faHandPeace: faHandPeace,\n faHeadSideVirus: faHeadSideVirus,\n faCompass: faCompass,\n faPenNib: faPenNib,\n faTentArrowsDown: faTentArrowsDown,\n faForwardFast: faForwardFast,\n faFastForward: faFastForward,\n faCrop: faCrop,\n faWhiskeyGlass: faWhiskeyGlass,\n faGlassWhiskey: faGlassWhiskey,\n faSquare: faSquare,\n faFaceGrin: faFaceGrin,\n faGrin: faGrin,\n faFileContract: faFileContract,\n faAngleUp: faAngleUp,\n faFaceSmile: faFaceSmile,\n faSmile: faSmile,\n faPersonDressBurst: faPersonDressBurst,\n faDivide: faDivide,\n faCodeFork: faCodeFork,\n faHouseFlag: faHouseFlag,\n faBuildingColumns: faBuildingColumns,\n faBank: faBank,\n faInstitution: faInstitution,\n faMuseum: faMuseum,\n faUniversity: faUniversity,\n faRug: faRug,\n faCodeMerge: faCodeMerge,\n faHouseTsunami: faHouseTsunami,\n faMagnifyingGlassChart: faMagnifyingGlassChart,\n faUmbrella: faUmbrella,\n faHillRockslide: faHillRockslide,\n faUserSecret: faUserSecret,\n faPager: faPager,\n faBriefcase: faBriefcase,\n faTrowelBricks: faTrowelBricks,\n faSocks: faSocks,\n faT: faT,\n faMicrochip: faMicrochip,\n faTruckMedical: faTruckMedical,\n faAmbulance: faAmbulance,\n faOm: faOm,\n faMosquitoNet: faMosquitoNet,\n faPrescriptionBottle: faPrescriptionBottle,\n faUsersGear: faUsersGear,\n faUsersCog: faUsersCog,\n faRoadCircleExclamation: faRoadCircleExclamation,\n faPause: faPause,\n faStaffSnake: faStaffSnake,\n faRodAsclepius: faRodAsclepius,\n faRodSnake: faRodSnake,\n faStaffAesculapius: faStaffAesculapius,\n faPiggyBank: faPiggyBank,\n faMonument: faMonument,\n faAnglesRight: faAnglesRight,\n faAngleDoubleRight: faAngleDoubleRight,\n faDesktop: faDesktop,\n faDesktopAlt: faDesktopAlt,\n faPlaneCircleXmark: faPlaneCircleXmark,\n faRetweet: faRetweet,\n faUserGear: faUserGear,\n faUserCog: faUserCog,\n faBorderAll: faBorderAll,\n faCoins: faCoins,\n faMarsStroke: faMarsStroke,\n faHandshakeAngle: faHandshakeAngle,\n faHandsHelping: faHandsHelping,\n faArrowDown: faArrowDown,\n faLocationDot: faLocationDot,\n faMapMarkerAlt: faMapMarkerAlt,\n faPlugCircleExclamation: faPlugCircleExclamation,\n faCookieBite: faCookieBite,\n faScrewdriverWrench: faScrewdriverWrench,\n faTools: faTools,\n faIndent: faIndent,\n faBars: faBars,\n faNavicon: faNavicon,\n faHandsPraying: faHandsPraying,\n faPrayingHands: faPrayingHands,\n faViruses: faViruses,\n faSchoolFlag: faSchoolFlag,\n faTrademark: faTrademark,\n faFireBurner: faFireBurner,\n faFaceSmileBeam: faFaceSmileBeam,\n faSmileBeam: faSmileBeam,\n faTentArrowLeftRight: faTentArrowLeftRight,\n faRoute: faRoute,\n faAnglesUp: faAnglesUp,\n faAngleDoubleUp: faAngleDoubleUp,\n faBucket: faBucket,\n faLessThanEqual: faLessThanEqual,\n faFolderClosed: faFolderClosed,\n faPersonThroughWindow: faPersonThroughWindow,\n faSchoolLock: faSchoolLock,\n faPersonBurst: faPersonBurst,\n faLeftLong: faLeftLong,\n faLongArrowAltLeft: faLongArrowAltLeft,\n faLocationCrosshairs: faLocationCrosshairs,\n faLocation: faLocation,\n faPersonDotsFromLine: faPersonDotsFromLine,\n faDiagnoses: faDiagnoses,\n faGaugeSimpleHigh: faGaugeSimpleHigh,\n faTachometer: faTachometer,\n faTachometerFast: faTachometerFast,\n faAnglesLeft: faAnglesLeft,\n faAngleDoubleLeft: faAngleDoubleLeft,\n faUpDown: faUpDown,\n faArrowsAltV: faArrowsAltV,\n faBatteryEmpty: faBatteryEmpty,\n faBattery0: faBattery0,\n faKeyboard: faKeyboard,\n faCookie: faCookie,\n faStopwatch: faStopwatch,\n faEject: faEject,\n faSatelliteDish: faSatelliteDish,\n faFaceRollingEyes: faFaceRollingEyes,\n faMehRollingEyes: faMehRollingEyes,\n faListCheck: faListCheck,\n faTasks: faTasks,\n faSackXmark: faSackXmark,\n faHashtag: faHashtag,\n faTrain: faTrain,\n faGamepad: faGamepad,\n faFileExport: faFileExport,\n faArrowRightFromFile: faArrowRightFromFile,\n faFaceGrimace: faFaceGrimace,\n faGrimace: faGrimace,\n faTrainSubway: faTrainSubway,\n faSubway: faSubway,\n faCircleDot: faCircleDot,\n faDotCircle: faDotCircle,\n faObjectGroup: faObjectGroup,\n faShip: faShip,\n faC: faC,\n faSquarePhone: faSquarePhone,\n faPhoneSquare: faPhoneSquare,\n faRulerCombined: faRulerCombined,\n faArrowsRotate: faArrowsRotate,\n faRefresh: faRefresh,\n faSync: faSync,\n faPersonDress: faPersonDress,\n faFemale: faFemale,\n faBookOpen: faBookOpen,\n faFolderTree: faFolderTree,\n faBoxArchive: faBoxArchive,\n faArchive: faArchive,\n faTentArrowDownToLine: faTentArrowDownToLine,\n faQrcode: faQrcode,\n faDragon: faDragon,\n faHourglassEnd: faHourglassEnd,\n faHourglass3: faHourglass3,\n faGrip: faGrip,\n faGridHorizontal: faGridHorizontal,\n faGripHorizontal: faGripHorizontal,\n faBorderTopLeft: faBorderTopLeft,\n faBorderStyle: faBorderStyle,\n faListUl: faListUl,\n faListDots: faListDots,\n faPeopleRobbery: faPeopleRobbery,\n faMobileButton: faMobileButton,\n faArrowDownAZ: faArrowDownAZ,\n faSortAlphaAsc: faSortAlphaAsc,\n faSortAlphaDown: faSortAlphaDown,\n faMoneyBill: faMoneyBill,\n faCircleMinus: faCircleMinus,\n faMinusCircle: faMinusCircle,\n faArrowPointer: faArrowPointer,\n faMousePointer: faMousePointer,\n faSquareShareNodes: faSquareShareNodes,\n faShareAltSquare: faShareAltSquare,\n faTableCellsLarge: faTableCellsLarge,\n faThLarge: faThLarge,\n faCat: faCat,\n faCalendarWeek: faCalendarWeek,\n faCodeCompare: faCodeCompare,\n faRoadCircleXmark: faRoadCircleXmark,\n faPallet: faPallet,\n faCakeCandles: faCakeCandles,\n faBirthdayCake: faBirthdayCake,\n faCake: faCake,\n faBugSlash: faBugSlash,\n faTarp: faTarp,\n faDiagramPredecessor: faDiagramPredecessor,\n faFaceFlushed: faFaceFlushed,\n faFlushed: faFlushed,\n faDiagramNext: faDiagramNext,\n faAnchorCircleXmark: faAnchorCircleXmark,\n faPersonCircleXmark: faPersonCircleXmark,\n faSpa: faSpa,\n faBarsProgress: faBarsProgress,\n faTasksAlt: faTasksAlt,\n faHeartCircleCheck: faHeartCircleCheck,\n faMarsStrokeRight: faMarsStrokeRight,\n faMarsStrokeH: faMarsStrokeH,\n faTowerObservation: faTowerObservation,\n faSterlingSign: faSterlingSign,\n faGbp: faGbp,\n faPoundSign: faPoundSign,\n faFaucetDrip: faFaucetDrip,\n faCircleInfo: faCircleInfo,\n faInfoCircle: faInfoCircle,\n faFeather: faFeather,\n faBowlRice: faBowlRice,\n faStarHalfStroke: faStarHalfStroke,\n faStarHalfAlt: faStarHalfAlt,\n faTemperatureArrowDown: faTemperatureArrowDown,\n faTemperatureDown: faTemperatureDown,\n faMaskVentilator: faMaskVentilator,\n faFileVideo: faFileVideo,\n faArrowTrendDown: faArrowTrendDown,\n faOilCan: faOilCan,\n faPeopleCarryBox: faPeopleCarryBox,\n faPeopleCarry: faPeopleCarry,\n faChair: faChair,\n faWind: faWind,\n faLayerGroup: faLayerGroup,\n faHeadSideMask: faHeadSideMask,\n faHands: faHands,\n faSignLanguage: faSignLanguage,\n faSigning: faSigning,\n faTablets: faTablets,\n faWeightHanging: faWeightHanging,\n faDice: faDice,\n faShopSlash: faShopSlash,\n faStoreAltSlash: faStoreAltSlash,\n faSortDown: faSortDown,\n faSortDesc: faSortDesc,\n faPesetaSign: faPesetaSign,\n faTabletScreenButton: faTabletScreenButton,\n faTabletAlt: faTabletAlt,\n faHandHoldingDollar: faHandHoldingDollar,\n faHandHoldingUsd: faHandHoldingUsd,\n faShield: faShield,\n faShieldBlank: faShieldBlank,\n faFaceLaugh: faFaceLaugh,\n faLaugh: faLaugh,\n faHandsHolding: faHandsHolding,\n faCartShopping: faCartShopping,\n faShoppingCart: faShoppingCart,\n faOctagon: faOctagon,\n faHandPointer: faHandPointer,\n faRegistered: faRegistered,\n faHouseSignal: faHouseSignal,\n faBangladeshiTakaSign: faBangladeshiTakaSign\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faDollarSign, faDollar, faUsd, faDog, faTruckMoving, faRotate, faSyncAlt, faSquareMinus, faMinusSquare, faAlignJustify, faCalendarCheck, faFaceKiss, faKiss, faKitchenSet, faDna, faChildReaching, faPaste, faFileClipboard, faMeteor, faGears, faCogs, faFileCirclePlus, faIcicles, faArrowTrendUp, faHexagonNodesBolt, faQuestion, faHandsBound, faPersonWalkingLuggage, faFileArrowDown, faFileDownload, faPersonBooth, faLocust, faRightLong, faLongArrowAltRight, faTruckDroplet, faHandHoldingMedical, faHandPointLeft, faCalculator, faMinus, faSubtract, faArrowUpZA, faSortAlphaUpAlt, faMicrophoneSlash, faSquarePen, faPenSquare, faPencilSquare, faHandFist, faFistRaised, faCommentSms, faSms, faSimCard, faScaleBalanced, faBalanceScale, faCar, faAutomobile, faCropSimple, faCropAlt, faMedal, faScroll, faFileExcel, faFilter, faDrum, faMapPin, faScaleUnbalancedFlip, faBalanceScaleRight, faArrowsToCircle, faEnvelope, faBaby, faSquareCaretDown, faCaretSquareDown, faTent, faA, faParachuteBox, faCartArrowDown, faBridgeCircleExclamation, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faAt, faIndianRupeeSign, faIndianRupee, faInr, faTruck, faChalkboardUser, faChalkboardTeacher, faUserCheck, faUserNinja, faPlantWilt, faWeightScale, faWeight, faCaretRight, faFlorinSign, faBell, faLariSign, faMillSign, faPersonSnowboarding, faSnowboarding, faTty, faTeletype, faUsersRectangle, faMobile, faMobileAndroid, faMobilePhone, faArrowsTurnToDots, faExclamation, faChurch, faToggleOff, faShoePrints, faFileCircleExclamation, faWallet, faMessage, faCommentAlt, faTrophy, faFaceDizzy, faDizzy, faBacteria, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faPeopleArrows, faPeopleArrowsLeftRight, faHandsClapping, faVirusCovidSlash, faCalendarDays, faCalendarAlt, faDiamondTurnRight, faDirections, faHandPointUp, faBezierCurve, faPersonHalfDress, faSquarePollHorizontal, faPollH, faSchoolCircleXmark, faHandLizard, faChalkboard, faBlackboard, faUpRightFromSquare, faExternalLinkAlt, faSquareFull, faClover, faTeethOpen, faBarsStaggered, faReorder, faStream, faWarehouse, faSwatchbook, faCampground, faPersonWalkingArrowRight, faGlasses, faCirclePause, faPauseCircle, faMemory, faGift, faMoneyBillWheat, faDungeon, faSuitcaseMedical, faMedkit, faPersonCane, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faEnvelopeOpenText, faToolbox, faPowerOff, faSignal, faSignal5, faSignalPerfect, faArrowsSpin, faJoint, faBraille, faBasketShopping, faShoppingBasket, faBridge, faPlaneArrival, faCashRegister, faRing, faShareNodes, faShareAlt, faPersonCircleExclamation, faBinoculars, faKipSign, faHardDrive, faHdd, faRankingStar, faUserTie, faEllipsis, faEllipsisH, faStoreSlash, faPercent, faPercentage, faFileZipper, faFileArchive, faDisplay, faIcons, faHeartMusicCameraBolt, faRulerVertical, faMapLocationDot, faMapMarkedAlt, faHeartCrack, faHeartBroken, faCow, faRss, faFeed, faMagnifyingGlass, faSearch, faCloudMoon, faBoxesStacked, faBoxes, faBoxesAlt, faCodeBranch, faBan, faCancel, faJugDetergent, faReply, faMailReply, faSunPlantWilt, faBacterium, faRecordVinyl, faFloppyDisk, faSave, faToiletsPortable, faO, faPalette, faUnlock, faEarListen, faAssistiveListeningSystems, faCodePullRequest, faKey, faSkull, faMarsStrokeUp, faMarsStrokeV, faFireFlameSimple, faBurn, faTree, faSmog, faS, faJedi, faPersonHiking, faHiking, faArrowsUpToLine, faMarsDouble, faThermometer, faPaintbrush, faPaintBrush, faNeuter, faSquarePhoneFlip, faPhoneSquareAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faCommentDollar, faHippo, faBowlFood, faSquareVirus, faCloudSunRain, faArrowRightLong, faLongArrowRight, faBuildingUn, faTemperatureLow, faDoorOpen, faAlignLeft, faCamera, faCameraAlt, faUsersRays, faRainbow, faSitemap, faFaceGrinStars, faGrinStars, faSortUp, faSortAsc, faEye, faCaretLeft, faAppleWhole, faAppleAlt, faScrollTorah, faTorah, faHouseLock, faArrowsLeftRightToLine, faTrash, faFaceSadTear, faSadTear, faFax, faPersonCirclePlus, faHamsa, faPersonCircleQuestion, faClipboardCheck, faShareFromSquare, faShareSquare, faReceipt, faEquals, faChevronUp, faVirusSlash, faSlash, faExpand, faNoteSticky, faStickyNote, faTableColumns, faColumns, faPersonShelter, faCircleNotch, faWater, faDeleteLeft, faBackspace, faBroomBall, faQuidditch, faQuidditchBroomBall, faJ, faShuttleSpace, faSpaceShuttle, faYinYang, faStop, faTrowel, faHandBackFist, faHandRock, faTemperatureHigh, faGreaterThan, faCrutch, faSeptagon, faHeptagon, faStreetView, faWaveSquare, faAngleLeft, faScrewdriver, faTractor, faBridgeCircleXmark, faVials, faStethoscope, faPodcast, faArrowUpRightDots, faChessQueen, faAnchorCircleExclamation, faEllipsisVertical, faEllipsisV, faHeartCircleExclamation, faBuildingCircleExclamation, faPersonArrowUpFromLine, faNotEqual, faTrainTram, faPlaneDeparture, faRightToBracket, faSignInAlt, faSdCard, faHouseCircleExclamation, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faRadio, faHandDots, faAllergies, faBookSkull, faBookDead, faUnlockKeyhole, faUnlockAlt, faFileArrowUp, faFileUpload, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faEarthEurope, faGlobeEurope, faFaceGrinBeamSweat, faGrinBeamSweat, faCircleHalfStroke, faAdjust, faPersonMilitaryToPerson, faTableCellsColumnLock, faTruckFieldUn, faClock, faClockFour, faBook, faFaceLaughWink, faLaughWink, faCloudMeatball, faChartArea, faAreaChart, faRupiahSign, faTextWidth, faSatellite, faMagnifyingGlassMinus, faSearchMinus, faPeopleGroup, faSquareBinary, faMasksTheater, faTheaterMasks, faCartPlus, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faTableCellsRowUnlock, faRocket, faShrimp, faTengeSign, faTenge, faHouseChimneyMedical, faClinicMedical, faUsersSlash, faPaperPlane, faBookAtlas, faAtlas, faTable, faHeart, faCircleChevronUp, faChevronCircleUp, faBatteryHalf, faBattery3, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faHandcuffs, faHatCowboySide, faIndustry, faLinesLeaning, faPassport, faInfinity, faClone, faForward, faM, faRoadSpikes, faMountain, faChess, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faB, faShieldVirus, faLitecoinSign, faDiceD6, faGripLinesVertical, faGolfBallTee, faGolfBall, faHexagon, faFolderOpen, faKaaba, faHandHolding, faSingleQuoteRight, faBottleDroplet, faWindowMinimize, faChevronRight, faEgg, faLandmarkDome, faLandmarkAlt, faWorm, faUserInjured, faStrikethrough, faBlog, faStopwatch20, faTruckPickup, faSeedling, faSprout, faTransgender, faTransgenderAlt, faStarHalf, faPhotoFilm, faPhotoVideo, faPumpMedical, faFire, faMagnifyingGlassPlus, faSearchPlus, faFlask, faAlignRight, faCableCar, faTram, faKitMedical, faFirstAid, faGripLines, faBurger, faHamburger, faSnowman, faHotel, faPrint, faVolleyball, faVolleyballBall, faTrafficLight, faPlaneCircleCheck, faUsers, faCertificate, faAlarmClock, faHelicopterSymbol, faHouseChimneyCrack, faHouseDamage, faPersonMilitaryPointing, faDatabase, faNewspaper, faCloudRain, faMaximize, faExpandArrowsAlt, faLocationArrow, faCity, faXRay, faUmbrellaBeach, faArrowRightToBracket, faSignIn, faHeadset, faSplotch, faUpLong, faLongArrowAltUp, faHexagonNodes, faHospital, faHospitalAlt, faHospitalWide, faPersonHarassing, faMoneyBillTrendUp, faPenRuler, faPencilRuler, faRepeat, faBone, faFireFlameCurved, faFireAlt, faBusSimple, faBusAlt, faVenusMars, faBlender, faU, faShare, faMailForward, faPhoneFlip, faPhoneAlt, faToiletPortable, faPersonPregnant, faLessThan, faSuperscript, faCircleStop, faStopCircle, faArrowsUpDown, faArrowsV, faPooStorm, faPooBolt, faVideoSlash, faSquareXmark, faTimesSquare, faXmarkSquare, faHandHoldingDroplet, faHandHoldingWater, faWonSign, faKrw, faWon, faObjectUngroup, faComment, faHillAvalanche, faArrowsToEye, faSnowplow, faChartGantt, faVideo, faVideoCamera, faChessPawn, faSynagogue, faBuildingCircleCheck, faCalendarPlus, faWheelchairMove, faWheelchairAlt, faUserShield, faBold, faHeartPulse, faHeartbeat, faSquareRootVariable, faSquareRootAlt, faHandsBubbles, faHandsWash, faMarker, faClipboard, faPlaceOfWorship, faCannabis, faPeopleRoof, faDisease, faBookBible, faBible, faChessBoard, faMars, faLaptop, faUserXmark, faUserTimes, faFlagUsa, faHandMiddleFinger, faMortarPestle, faHeadSideCough, faPlaneLock, faBatteryThreeQuarters, faBattery4, faFrancSign, faFilterCircleDollar, faFunnelDollar, faCheese, faCircleH, faHospitalSymbol, faSchool, faDiceFive, faTornado, faJetFighter, faFighterJet, faThumbsDown, faBroom, faFileImport, faArrowRightToFile, faUtensils, faCutlery, faIdBadge, faSpider, faMobileRetro, faSignsPost, faMapSigns, faGroupArrowsRotate, faArrowsSplitUpAndLeft, faFillDrip, faShieldHeart, faPersonSkiingNordic, faSkiingNordic, faSquareCheck, faCheckSquare, faBath, faBathtub, faChessBishop, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faDrawPolygon, faVectorPolygon, faICursor, faHeartCirclePlus, faShieldDog, faGreaterThanEqual, faEnvelopeOpen, faMound, faVoicemail, faVest, faAudioDescription, faW, faEyeDropper, faEyeDropperEmpty, faEyedropper, faCircleXmark, faTimesCircle, faXmarkCircle, faTrailer, faTurkishLiraSign, faTry, faTurkishLira, faVolcano, faWandSparkles, faMicrophone, faCrown, faTentArrowTurnLeft, faTruckFast, faShippingFast, faUserPen, faUserEdit, faUserClock, faShower, faSquareCaretUp, faCaretSquareUp, faMapLocation, faMapMarked, faPenFancy, faEuroSign, faEur, faEuro, faHouseCircleXmark, faLiraSign, faYenSign, faCny, faJpy, faRmb, faYen, faBoxOpen, faTruckField, faLocationPinLock, faPersonPraying, faPray, faClipboardList, faSackDollar, faMountainSun, faArrowUpWideShort, faSortAmountUp, faUsersLine, faStarOfDavid, faNotesMedical, faAustralSign, faClipboardUser, faFileImage, faSquareCaretRight, faCaretSquareRight, faVial, faHelicopter, faMitten, faGasPump, faEnvelopeCircleCheck, faPersonSkating, faSkating, faSun, faBaseball, faBaseballBall, faImage, faNotdef, faBasketball, faBasketballBall, faPencil, faPencilAlt, faPersonWalkingArrowLoopLeft, faDiceSix, faAnglesDown, faAngleDoubleDown, faSyringe, faWheatAwn, faWheatAlt, faPlaneUp, faAlignCenter, faHockeyPuck, faCircleArrowLeft, faArrowCircleLeft, faPlugCircleBolt, faRestroom, faAnchorLock, faTimeline, faLightbulb, faCircleArrowRight, faArrowCircleRight, faMarsAndVenus, faNetworkWired, faBuildingShield, faCode, faFeatherPointed, faFeatherAlt, faFileCircleQuestion, faSignature, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faCarrot, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faTableCellsRowLock, faBoltLightning, faCloudShowersWater, faArrowUpLong, faLongArrowUp, faAddressCard, faContactCard, faVcard, faAngleRight, faFaceMeh, faMeh, faArrowUpFromGroundWater, faMap, faUserPlus, faVenus, faDiagramSuccessor, faHeadSideCoughSlash, faDiagramProject, faProjectDiagram, faTerminal, faHouseFire, faMask, faHurricane, faEarthAfrica, faGlobeAfrica, faThumbtack, faThumbTack, faHandPointDown, faFaceMehBlank, faMehBlank, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBorderNone, faHighlighter, faMoneyBillWave, faToiletPaperSlash, faFileShield, faTextHeight, faFaceGrinTongue, faGrinTongue, faFileSignature, faBuildingWheat, faPlugCircleMinus, faFutbol, faFutbolBall, faSoccerBall, faCirclePlus, faPlusCircle, faBrazilianRealSign, faStarAndCrescent, faFaceSurprise, faSurprise, faHospitalUser, faArrowDownUpLock, faFolder, faFolderBlank, faHollyBerry, faVenusDouble, faClipboardQuestion, faHotdog, faArrowUpFromBracket, faMicroscope, faCloud, faBaseballBatBall, faCarRear, faCarAlt, faThumbtackSlash, faThumbTackSlash, faPlusMinus, faHouseCircleCheck, faCalendarDay, faCircle, faMobileVibrate, faFaceGrinSquint, faGrinSquint, faUsersBetweenLines, faHouseMedicalCircleXmark, faTableList, faThList, faFlaskVial, faCircleExclamation, faExclamationCircle, faTaxi, faCab, faTextSlash, faRemoveFormat, faPeoplePulling, faBackward, faCarBurst, faCarCrash, faLink, faChain, faBackwardStep, faStepBackward, faX, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faVanShuttle, faShuttleVan, faStairs, faHorseHead, faVault, faDrumSteelpan, faThumbsUp, faStamp, faMenorah, faChildren, faChartLine, faLineChart, faSquareEnvelope, faEnvelopeSquare, faBanSmoking, faSmokingBan, faTruckFront, faBuilding, faBullseye, faArrowLeftLong, faLongArrowLeft, faChessRook, faBlenderPhone, faArrowTurnUp, faLevelUp, faBicycle, faCircleArrowDown, faArrowCircleDown, faGear, faCog, faMarsAndVenusBurst, faOtter, faCircleChevronLeft, faChevronCircleLeft, faCircleQuestion, faQuestionCircle, faWalkieTalkie, faUserGroup, faUserFriends, faHouseChimney, faHomeLg, faRightFromBracket, faSignOutAlt, faFile, faPlaneSlash, faCloudShowersHeavy, faPersonFalling, faTurnDown, faLevelDownAlt, faUpRightAndDownLeftFromCenter, faExpandAlt, faUserTag, faHandSparkles, faArrowsToDot, faFaceSadCry, faSadCry, faDongSign, faPeopleLine, faSquareRss, faRssSquare, faCalendarMinus, faChartDiagram, faFaceTired, faTired, faHandPointRight, faArrowUp, faCubesStacked, faChildCombatant, faChildRifle, faVestPatches, faMartiniGlassEmpty, faGlassMartini, faMagnet, faRoadBarrier, faCompassDrafting, faDraftingCompass, faSquarePersonConfined, faPlateWheat, faSignHanging, faSign, faCarBattery, faBatteryCar, faShirt, faTShirt, faTshirt, faParagraph, faEnvelopesBulk, faMailBulk, faGuitar, faSuitcase, faCircleUp, faArrowAltCircleUp, faF, faXmarksLines, faEarthOceania, faGlobeOceania, faCommentSlash, faPlay, faVialCircleCheck, faBridgeCircleCheck, faCediSign, faPuzzlePiece, faHelmetUn, faGlassWater, faHeartCircleBolt, faPumpSoap, faHandScissors, faDolly, faDollyBox, faPaperclip, faDemocrat, faSquareArrowUpRight, faExternalLinkSquare, faFerry, faMosquito, faBuildingCircleArrowRight, faLeftRight, faArrowsAltH, faVirus, faGem, faToilet, faSingleQuoteLeft, faMoneyBills, faTabletButton, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faWrench, faTrashCan, faTrashAlt, faTableCells, faTh, faRibbon, faLandmarkFlag, faUpDownLeftRight, faArrowsAlt, faCarSide, faTrashArrowUp, faTrashRestore, faLifeRing, faCopyright, faFilePrescription, faEraser, faHourglassStart, faHourglass1, faCircleLeft, faArrowAltCircleLeft, faCruzeiroSign, faSmoking, faSquarePollVertical, faPoll, faPersonCircleMinus, faBiohazard, faBellConcierge, faConciergeBell, faRulerHorizontal, faHorse, faCalendar, faHandsHoldingChild, faItalic, faKhanda, faFaceFrownOpen, faFrownOpen, faCheck, faFingerprint, faChargingStation, faUserLock, faMobileScreenButton, faMobileAlt, faAnchorCircleCheck, faPersonWalkingWithCane, faBlind, faFileWaveform, faFileMedicalAlt, faHouseCrack, faHatWizard, faUserDoctor, faUserMd, faChartBar, faBarChart, faSprayCanSparkles, faAirFreshener, faBahtSign, faTemperatureArrowUp, faTemperatureUp, faWebAwesome, faNonBinary, faN, faArrowsUpDownLeftRight, faArrows, faHouse, faHome, faHomeAlt, faHomeLgAlt, faSpinner, faGavel, faLegal, faTicketSimple, faTicketAlt, faDove, faTarpDroplet, faTreeCity, faTurnUp, faLevelUpAlt, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faSliders, faSlidersH, faMosque, faH, faInfo, faPersonWalking, faWalking, faArrowTurnDown, faLevelDown, faRoad, faSpiral, faFaceFrown, faFrown, faWineGlassEmpty, faWineGlassAlt, faClapperboard, faForwardStep, faStepForward, faSquareUpRight, faExternalLinkSquareAlt, faBookJournalWhills, faJournalWhills, faChampagneGlasses, faGlassCheers, faDumpster, faHeartCircleXmark, faComputer, faWandMagic, faMagic, faBrain, faBriefcaseMedical, faHouseMedicalCircleExclamation, faCodeCommit, faPersonBreastfeeding, faPersonRays, faManatSign, faSort, faUnsorted, faCircleRadiation, faRadiationAlt, faLaptopCode, faSink, faArrowUpFromWaterPump, faMicrophoneLinesSlash, faMicrophoneAltSlash, faServer, faUser, faUserAlt, faUserLarge, faSnowflake, faSkullCrossbones, faPesoSign, faWineGlass, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faTicket, faWheatAwnCircleExclamation, faArrowsTurnRight, faCandyCane, faWheelchair, faSpellCheck, faVolumeOff, faLungs, faBookmark, faBarcode, faListOl, faList12, faListNumeric, faFileCircleXmark, faCube, faTape, faBomb, faScaleUnbalanced, faBalanceScaleLeft, faSquareCaretLeft, faCaretSquareLeft, faRuler, faI, faVolumeXmark, faVolumeMute, faVolumeTimes, faArchway, faPersonDigging, faDigging, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faGenderless, faCloudSun, faArrowRight, faHandshake, faHandshakeAlt, faHandshakeSimple, faPersonSkiing, faSkiing, faBridgeWater, faBuildingNgo, faIgloo, faCircleDollarToSlot, faDonate, faY, faFaceSmileWink, faSmileWink, faDiceFour, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faArrowsDownToLine, faG, faVihara, faFlagCheckered, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faRightLeft, faExchangeAlt, faPills, faExplosion, faArrowsDownToPeople, faUsersViewfinder, faCarOn, faSleigh, faDumbbell, faBabyCarriage, faCarriageBaby, faKiwiBird, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileMedical, faXmark, faClose, faMultiply, faRemove, faTimes, faShapes, faTriangleCircleSquare, faDiceOne, faLockOpen, faPepperHot, faDropletSlash, faTintSlash, faDroplet, faTint, faFileLines, faFileAlt, faFileText, faCommentsDollar, faMagnifyingGlassLocation, faSearchLocation, faFileInvoice, faPentagon, faRepublican, faShop, faStoreAlt, faFilm, faFilmAlt, faFilmSimple, faBuildingCircleXmark, faComments, faTags, faGun, faCircleCheck, faCheckCircle, faIdCardClip, faIdCardAlt, faMoon, faOilWell, faTachographDigital, faDigitalTachograph, faTablet, faTabletAndroid, faRubleSign, faRouble, faRub, faRuble, faClosedCaptioning, faPen, faPlane, faImages, faMobileScreen, faMobileAndroidAlt, faGuaraniSign, faBagShopping, faShoppingBag, faCircleRight, faArrowAltCircleRight, faPhoneVolume, faVolumeControlPhone, faCubes, faPhone, faToriiGate, faBacon, faPersonFallingBurst, faQuoteRight, faQuoteRightAlt, faHouseMedicalFlag, faPrescription, faDiceThree, faBuildingLock, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faLeaf, faHouseChimneyUser, faRotateRight, faRedoAlt, faRotateForward, faTooth, faHouseChimneyWindow, faMotorcycle, faBackwardFast, faFastBackward, faAddressBook, faContactBook, faSailboat, faBookBookmark, faMagnifyingGlassArrowRight, faMicrophoneLines, faMicrophoneAlt, faReplyAll, faMailReplyAll, faUniversalAccess, faToiletPaper, faToiletPaperAlt, faToiletPaperBlank, faVrCardboard, faPizzaSlice, faSprayCan, faVolumeLow, faVolumeDown, faCross, faPerson, faMale, faHourglass, faHourglassEmpty, faFish, faDrumstickBite, faChartSimple, faAtom, faP, faJetFighterUp, faPlugCircleXmark, faSheetPlastic, faV, faList, faListSquares, faSolarPanel, faLandMineOn, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faBus, faFilePowerpoint, faQuoteLeft, faQuoteLeftAlt, faChevronDown, faEarthAsia, faGlobeAsia, faCentSign, faShieldCat, faSchoolCircleCheck, faMartiniGlass, faGlassMartiniAlt, faPlug, faPanorama, faClockRotateLeft, faHistory, faJarWheat, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faTruckRampBox, faTruckLoading, faAngleDown, faPlugCircleCheck, faWindowMaximize, faHandsHoldingCircle, faLocationPin, faMapMarker, faBowlingBall, faCartFlatbed, faDollyFlatbed, faHouseUser, faHomeUser, faGhost, faCommentNodes, faPersonArrowDownToLine, faPlugCirclePlus, faPersonSwimming, faSwimmer, faCommentDots, faCommenting, faChartPie, faPieChart, faFrog, faWineBottle, faInbox, faSquareH, faHSquare, faHouseMedical, faCircleChevronRight, faChevronCircleRight, faFileCsv, faHatCowboy, faFaceGrinTongueWink, faGrinTongueWink, faL, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faHourglassHalf, faHourglass2, faSpoon, faUtensilSpoon, faCreditCard, faCreditCardAlt, faFileInvoiceDollar, faSpaghettiMonsterFlying, faPastafarianism, faMartiniGlassCitrus, faCocktail, faBullhorn, faBoxTissue, faMattressPillow, faChevronLeft, faCloudMoonRain, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandSpock, faWandMagicSparkles, faMagicWandSparkles, faCommentMedical, faBellSlash, faHandshakeSlash, faHandshakeAltSlash, faHandshakeSimpleSlash, faBottleWater, faDiceD20, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faBrush, faPersonWalkingDashedLineArrowRight, faArrowUpShortWide, faSortAmountUpAlt, faGripVertical, faGridVertical, faCarTunnel, faChartColumn, faTruckArrowRight, faTv, faTelevision, faTvAlt, faSection, faPeace, faStar, faFlag, faTriangleExclamation, faExclamationTriangle, faWarning, faSchoolCircleExclamation, faGraduationCap, faMortarBoard, faStore, faUserAstronaut, faBuildingFlag, faMugSaucer, faCoffee, faLemon, faCaravan, faQ, faLock, faPaintRoller, faVolumeHigh, faVolumeUp, faFolderPlus, faMercury, faAnchor, faSquareParking, faParking, faHanukiah, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faHeading, faHeader, faCrosshairs, faCircleNodes, faWindowRestore, faR, faFilterCircleXmark, faGopuram, faHeartCircleMinus, faStarOfLife, faBusinessTime, faBriefcaseClock, faFireExtinguisher, faArrowDownLong, faLongArrowDown, faUserMinus, faMoneyCheck, faHouseLaptop, faLaptopHouse, faDownload, faCouch, faRoadLock, faScissors, faCut, faBug, faArrowRightFromBracket, faSignOut, faHandHoldingHand, faStroopwafel, faChild, faIceCream, faComputerMouse, faMouse, faFaucet, faAward, faPersonDrowning, faCameraRotate, faFaceGrinHearts, faGrinHearts, faFileFragment, faPersonMilitaryRifle, faToggleOn, faLungsVirus, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faBoxesPacking, faPersonChalkboard, faDiceTwo, faArrowRightArrowLeft, faExchange, faFootball, faFootballBall, faTruckMonster, faAsterisk, faBatteryFull, faBattery, faBattery5, faChildDress, faFaceKissBeam, faKissBeam, faTrashCanArrowUp, faTrashRestoreAlt, faFont, faBoreHole, faVirusCovid, faFilePdf, faLanguage, faShieldHalved, faShieldAlt, faCaretUp, faFilePen, faFileEdit, faPersonBiking, faBiking, faBookOpenReader, faBookReader, faGlassWaterDroplet, faTowerBroadcast, faBroadcastTower, faMinimize, faCompressArrowsAlt, faArrowRightToCity, faLaptopMedical, faBreadSlice, faGlobe, faFolderMinus, faMaskFace, faBong, faRoadBridge, faArrowUp91, faSortNumericUpAlt, faMountainCity, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinWide, faGrinAlt, faPoop, faDharmachakra, faBatteryQuarter, faBattery2, faAnkh, faDiamond, faSubscript, faRupeeSign, faRupee, faPersonRifle, faD, faSquareNfi, faTeeth, faMagnifyingGlassDollar, faSearchDollar, faDumpsterFire, faUpload, faUserSlash, faUserAltSlash, faUserLargeSlash, faArrowLeft, faVialVirus, faCheckDouble, faPaw, faHelmetSafety, faHardHat, faHatHard, faE, faFaceLaughSquint, faLaughSquint, faDownLeftAndUpRightToCenter, faCompressAlt, faGifts, faBed, faMoneyBillTransfer, faPersonRunning, faRunning, faCircleChevronDown, faChevronCircleDown, faUserNurse, faFaceKissWinkHeart, faKissWinkHeart, faFill, faMoneyBill1Wave, faMoneyBillWaveAlt, faLandmark, faMusic, faBookMedical, faShuffle, faRandom, faUnderline, faBuildingUser, faRobot, faPlus, faAdd, faCopy, faChessKing, faHouseFloodWater, faBitcoinSign, faBox, faSquarePlus, faPlusSquare, faArrowsLeftRight, faArrowsH, faFan, faCrow, faFileCircleCheck, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faPenClip, faPenAlt, faDoorClosed, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCaretDown, faK, faCheckToSlot, faVoteYea, faFishFins, faCompress, faArrowUpAZ, faSortAlphaUp, faUserGraduate, faFileCode, faSoap, faRecycle, faFaceGrinWink, faGrinWink, faWaterLadder, faLadderWater, faSwimmingPool, faTowerCell, faColonSign, faLaptopFile, faBahai, faHaykal, faMoneyBill1, faMoneyBillAlt, faCloudBolt, faThunderstorm, faEthernet, faHryvniaSign, faHryvnia, faEyeSlash, faCartFlatbedSuitcase, faLuggageCart, faRadiation, faFileWord, faBedPulse, faProcedures, faTents, faMugHot, faBolt, faZap, faJar, faTruckPlane, faHandHoldingHeart, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faFaceAngry, faAngry, faBurst, faZ, faBandage, faBandAid, faPlaneCircleExclamation, faBusSide, faBugs, faBeerMugEmpty, faBeer, faPersonCircleCheck, faStapler, faHouseMedicalCircleCheck, faNairaSign, faWifi, faWifi3, faWifiStrong, faMoneyCheckDollar, faMoneyCheckAlt, faEyeLowVision, faLowVision, faCircleArrowUp, faArrowCircleUp, faCameraRetro, faCapsules, faPoo, faElevator, faTag, faFileCircleMinus, faDownLong, faLongArrowAltDown, faCompactDisc, faSuitcaseRolling, faBookQuran, faQuran, faPhoneSlash, faRoadCircleCheck, faShopLock, faImagePortrait, faPortrait, faBridgeLock, faHammer, faArrowUp19, faSortNumericUp, faChessKnight, faHouseFloodWaterCircleArrowRight, faArrowUpRightFromSquare, faExternalLink, faArrowDownUpAcrossLine, faFaceGrinBeam, faGrinBeam, faRectangleAd, faAd, faBookTanakh, faTanakh, faHotTubPerson, faHotTub, faFileHalfDashed, faOutdent, faDedent, faHandPeace, faHeadSideVirus, faCompass, faPenNib, faTentArrowsDown, faForwardFast, faFastForward, faCrop, faWhiskeyGlass, faGlassWhiskey, faSquare, faFaceGrin, faGrin, faFileContract, faAngleUp, faFaceSmile, faSmile, faPersonDressBurst, faDivide, faCodeFork, faHouseFlag, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faRug, faCodeMerge, faHouseTsunami, faMagnifyingGlassChart, faUmbrella, faHillRockslide, faUserSecret, faPager, faBriefcase, faTrowelBricks, faSocks, faT, faMicrochip, faTruckMedical, faAmbulance, faOm, faMosquitoNet, faPrescriptionBottle, faUsersGear, faUsersCog, faRoadCircleExclamation, faPause, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faPiggyBank, faMonument, faAnglesRight, faAngleDoubleRight, faDesktop, faDesktopAlt, faPlaneCircleXmark, faRetweet, faUserGear, faUserCog, faBorderAll, faCoins, faMarsStroke, faHandshakeAngle, faHandsHelping, faArrowDown, faLocationDot, faMapMarkerAlt, faPlugCircleExclamation, faCookieBite, faScrewdriverWrench, faTools, faIndent, faBars, faNavicon, faHandsPraying, faPrayingHands, faViruses, faSchoolFlag, faTrademark, faFireBurner, faFaceSmileBeam, faSmileBeam, faTentArrowLeftRight, faRoute, faAnglesUp, faAngleDoubleUp, faBucket, faLessThanEqual, faFolderClosed, faPersonThroughWindow, faSchoolLock, faPersonBurst, faLeftLong, faLongArrowAltLeft, faLocationCrosshairs, faLocation, faPersonDotsFromLine, faDiagnoses, faGaugeSimpleHigh, faTachometer, faTachometerFast, faAnglesLeft, faAngleDoubleLeft, faUpDown, faArrowsAltV, faBatteryEmpty, faBattery0, faKeyboard, faCookie, faStopwatch, faEject, faSatelliteDish, faFaceRollingEyes, faMehRollingEyes, faListCheck, faTasks, faSackXmark, faHashtag, faTrain, faGamepad, faFileExport, faArrowRightFromFile, faFaceGrimace, faGrimace, faTrainSubway, faSubway, faCircleDot, faDotCircle, faObjectGroup, faShip, faC, faSquarePhone, faPhoneSquare, faRulerCombined, faArrowsRotate, faRefresh, faSync, faPersonDress, faFemale, faBookOpen, faFolderTree, faBoxArchive, faArchive, faTentArrowDownToLine, faQrcode, faDragon, faHourglassEnd, faHourglass3, faGrip, faGridHorizontal, faGripHorizontal, faBorderTopLeft, faBorderStyle, faListUl, faListDots, faPeopleRobbery, faMobileButton, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBill, faCircleMinus, faMinusCircle, faArrowPointer, faMousePointer, faSquareShareNodes, faShareAltSquare, faTableCellsLarge, faThLarge, faCat, faCalendarWeek, faCodeCompare, faRoadCircleXmark, faPallet, faCakeCandles, faBirthdayCake, faCake, faBugSlash, faTarp, faDiagramPredecessor, faFaceFlushed, faFlushed, faDiagramNext, faAnchorCircleXmark, faPersonCircleXmark, faSpa, faBarsProgress, faTasksAlt, faHeartCircleCheck, faMarsStrokeRight, faMarsStrokeH, faTowerObservation, faSterlingSign, faGbp, faPoundSign, faFaucetDrip, faCircleInfo, faInfoCircle, faFeather, faBowlRice, faStarHalfStroke, faStarHalfAlt, faTemperatureArrowDown, faTemperatureDown, faMaskVentilator, faFileVideo, faArrowTrendDown, faOilCan, faPeopleCarryBox, faPeopleCarry, faChair, faWind, faLayerGroup, faHeadSideMask, faHands, faSignLanguage, faSigning, faTablets, faWeightHanging, faDice, faShopSlash, faStoreAltSlash, faSortDown, faSortDesc, faPesetaSign, faTabletScreenButton, faTabletAlt, faHandHoldingDollar, faHandHoldingUsd, faShield, faShieldBlank, faFaceLaugh, faLaugh, faHandsHolding, faCartShopping, faShoppingCart, faOctagon, faHandPointer, faRegistered, faHouseSignal, faBangladeshiTakaSign };\n","\n\n\n\n\n","\n\n\n\n\n","\n\n\n","import Configuration from \"./Configuration\";\n\nexport default interface LicenseInfo {\n registered_to: string;\n edition: string;\n expiration_date: string;\n upgrade_protection_expiration: string;\n license_type: string;\n instance_name: string;\n trial_license: boolean;\n license_status: LicenseStatus;\n license_extension_url?: string;\n status: string;\n}\n\nexport function typeText(license: LicenseInfo, configuration: Configuration | null) {\n if (license.trial_license && configuration?.mass_transit_connector) {\n return \"Early Access \";\n }\n}\n\nexport enum LicenseStatus {\n Valid = \"Valid\",\n Unavailable = \"Unavailable\",\n InvalidDueToExpiredSubscription = \"InvalidDueToExpiredSubscription\",\n ValidWithExpiringTrial = \"ValidWithExpiringTrial\",\n InvalidDueToExpiredTrial = \"InvalidDueToExpiredTrial\",\n InvalidDueToExpiredUpgradeProtection = \"InvalidDueToExpiredUpgradeProtection\",\n ValidWithExpiredUpgradeProtection = \"ValidWithExpiredUpgradeProtection\",\n ValidWithExpiringUpgradeProtection = \"ValidWithExpiringUpgradeProtection\",\n ValidWithExpiringSubscription = \"ValidWithExpiringSubscription\",\n}\nexport enum LicenseType {\n Subscription,\n Trial,\n UpgradeProtection,\n}\n","export enum LicenseWarningLevel {\n None = \"none\",\n Warning = \"warning\",\n Danger = \"danger\",\n}\n","import moment from \"moment\";\n\nconst secondDuration = moment.duration(1000);\nconst minuteDuration = moment.duration(60 * 1000);\nconst hourDuration = moment.duration(60 * 60 * 1000); //this ensures that we never use minute formatting\nconst dayDuration = moment.duration(24 * 60 * 60 * 1000);\n\nexport interface ValueWithUnit {\n value: string;\n unit: string;\n}\n\nexport function useFormatTime(value?: number): ValueWithUnit {\n const time = { value: \"0\", unit: \"ms\" };\n if (value) {\n const duration = moment.duration(value);\n if (duration >= dayDuration) {\n time.value = formatTimeValue(duration.days()) + \" d \" + formatTimeValue(duration.hours()) + \" hrs\";\n } else if (duration >= hourDuration) {\n time.value = formatTimeValue(duration.hours(), true) + \":\" + formatTimeValue(duration.minutes(), true);\n time.unit = \"hr\";\n } else if (duration >= minuteDuration) {\n time.value = formatTimeValue(duration.minutes()) + \":\" + formatTimeValue(duration.seconds());\n time.unit = \"min\";\n } else if (duration >= secondDuration) {\n time.value = formatTimeValue(duration.seconds());\n time.unit = \"sec\";\n } else {\n time.value = formatTimeValue(duration.asMilliseconds());\n time.unit = \"ms\";\n }\n }\n\n return time;\n}\n\nexport function useGetDayDiffFromToday(value: string) {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n const diff = new Date(value.replace(\"Z\", \"\")).getTime() - today.getTime();\n return Math.round(diff / 1000 / 60 / 60 / 24);\n}\n\nexport function useFormatLargeNumber(num: number, decimals: number) {\n const suffixes = [\"k\", \"M\", \"G\", \"T\", \"P\", \"E\"];\n\n if (isNaN(num)) {\n return \"\";\n }\n\n if (num < 1000000) {\n return round(num, decimals).toLocaleString();\n }\n\n const exp = Math.floor(Math.log(num) / Math.log(1000));\n\n return `${round(num / Math.pow(1000, exp), decimals).toLocaleString()}${suffixes[exp - 1]}`;\n}\n\nfunction round(num: number, decimals: number) {\n return Number(num.toFixed(decimals));\n}\n\nfunction formatTimeValue(timeValue: number, displayTwoDigits = false) {\n const strValue = Math.floor(timeValue);\n return `${displayTwoDigits ? (\"0\" + strValue).slice(-2) : strValue.toLocaleString()}`;\n}\n","import { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { computed, reactive, ref } from \"vue\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport LicenseInfo, { LicenseStatus } from \"@/resources/LicenseInfo\";\nimport { LicenseWarningLevel } from \"@/composables/LicenseStatus\";\nimport { useGetDayDiffFromToday } from \"@/composables/formatter\";\n\nexport const useLicenseStore = defineStore(\"LicenseStore\", () => {\n const serviceControlStore = useServiceControlStore();\n\n const license = reactive({\n edition: \"\",\n expiration_date: \"\",\n upgrade_protection_expiration: \"\",\n license_type: \"\",\n instance_name: \"\",\n trial_license: true,\n registered_to: \"\",\n status: \"\",\n license_status: LicenseStatus.Unavailable,\n license_extension_url: \"\",\n });\n\n const licenseStatus = reactive({\n isSubscriptionLicense: false,\n isUpgradeProtectionLicense: false,\n isTrialLicense: false,\n isPlatformExpired: false,\n isPlatformTrialExpired: false,\n isPlatformTrialExpiring: false,\n isInvalidDueToUpgradeProtectionExpired: false,\n isValidWithExpiredUpgradeProtection: false,\n isValidWithExpiringUpgradeProtection: false,\n isExpired: false,\n upgradeDaysLeft: \"\",\n subscriptionDaysLeft: \"\",\n trialDaysLeft: \"\",\n warningLevel: LicenseWarningLevel.None,\n licenseExtensionUrl: \"\",\n });\n\n const loading = ref(false);\n\n // Computed properties for license formatting\n const licenseEdition = computed(() => {\n return `${license.license_type}${license.edition ? `, ${license.edition}` : \"\"}`;\n });\n\n const formattedInstanceName = computed(() => {\n return license.instance_name || \"Upgrade ServiceControl to v3.4.0+ to see more information about this license\";\n });\n\n const formattedExpirationDate = computed(() => {\n return license.expiration_date ? new Date(license.expiration_date.replace(\"Z\", \"\")).toLocaleDateString() : \"\";\n });\n\n const formattedUpgradeProtectionExpiration = computed(() => {\n return license.upgrade_protection_expiration ? new Date(license.upgrade_protection_expiration.replace(\"Z\", \"\")).toLocaleDateString() : \"\";\n });\n\n async function refresh() {\n loading.value = true;\n try {\n const lic = await getLicense();\n if (lic === null) {\n return;\n }\n license.license_type = lic.license_type;\n license.expiration_date = lic.expiration_date;\n license.trial_license = lic.trial_license;\n license.edition = lic.edition;\n license.license_status = lic.license_status;\n license.instance_name = lic.instance_name;\n license.registered_to = lic.registered_to;\n license.status = lic.status;\n license.license_extension_url = lic.license_extension_url ?? \"https://particular.net/extend-your-trial?p=servicepulse\";\n license.upgrade_protection_expiration = lic.upgrade_protection_expiration;\n\n licenseStatus.isSubscriptionLicense = isSubscriptionLicense();\n licenseStatus.isUpgradeProtectionLicense = isUpgradeProtectionLicense();\n licenseStatus.isTrialLicense = license.trial_license;\n licenseStatus.isPlatformExpired = license.license_status === LicenseStatus.InvalidDueToExpiredSubscription;\n licenseStatus.isPlatformTrialExpiring = license.license_status === LicenseStatus.ValidWithExpiringTrial;\n licenseStatus.isPlatformTrialExpired = license.license_status === LicenseStatus.InvalidDueToExpiredTrial;\n licenseStatus.isInvalidDueToUpgradeProtectionExpired = license.license_status === LicenseStatus.InvalidDueToExpiredUpgradeProtection;\n licenseStatus.isValidWithExpiredUpgradeProtection = license.license_status === LicenseStatus.ValidWithExpiredUpgradeProtection;\n licenseStatus.isValidWithExpiringUpgradeProtection = license.license_status === LicenseStatus.ValidWithExpiringUpgradeProtection;\n licenseStatus.upgradeDaysLeft = getUpgradeDaysLeft();\n licenseStatus.subscriptionDaysLeft = getSubscriptionDaysLeft();\n licenseStatus.trialDaysLeft = getTrialDaysLeft();\n licenseStatus.warningLevel = getLicenseWarningLevel();\n licenseStatus.isExpired = licenseStatus.isPlatformExpired || licenseStatus.isPlatformTrialExpired || licenseStatus.isInvalidDueToUpgradeProtectionExpired;\n licenseStatus.licenseExtensionUrl = license.license_extension_url;\n } finally {\n loading.value = false;\n }\n }\n\n async function getLicense() {\n try {\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(\"license?refresh=true&clientName=servicepulse\");\n return data;\n } catch (err) {\n console.error(\"Error fetching license information\", err);\n return null;\n }\n }\n\n function getLicenseWarningLevel() {\n switch (license.license_status) {\n case LicenseStatus.InvalidDueToExpiredTrial:\n case LicenseStatus.InvalidDueToExpiredSubscription:\n case LicenseStatus.InvalidDueToExpiredUpgradeProtection:\n return LicenseWarningLevel.Danger;\n case LicenseStatus.ValidWithExpiringUpgradeProtection:\n case LicenseStatus.ValidWithExpiringTrial:\n case LicenseStatus.ValidWithExpiredUpgradeProtection:\n case LicenseStatus.ValidWithExpiringSubscription:\n return LicenseWarningLevel.Warning;\n default:\n return LicenseWarningLevel.None;\n }\n }\n\n function isUpgradeProtectionLicense() {\n return license.upgrade_protection_expiration !== undefined && license.upgrade_protection_expiration !== \"\";\n }\n\n function isSubscriptionLicense() {\n return license.expiration_date !== undefined && license.expiration_date !== \"\" && !license.trial_license;\n }\n\n function getSubscriptionDaysLeft() {\n if (license.license_status === LicenseStatus.InvalidDueToExpiredSubscription) return \" - expired\";\n\n const isExpiring = license.license_status === LicenseStatus.ValidWithExpiringSubscription;\n return getExpiringText(isExpiring, license.expiration_date);\n }\n\n function getTrialDaysLeft() {\n if (license.license_status === LicenseStatus.InvalidDueToExpiredTrial) return \" - expired\";\n\n const isExpiring = license.license_status === LicenseStatus.ValidWithExpiringTrial;\n return getExpiringText(isExpiring, license.expiration_date);\n }\n\n function getExpiringText(isExpiring: boolean, expirationDate: string) {\n const expiringIn = useGetDayDiffFromToday(expirationDate);\n if (isNaN(expiringIn)) return \"\";\n if (!isExpiring) return ` - ${expiringIn} days left`;\n if (expiringIn === 0) return \" - expiring today\";\n if (expiringIn === 1) return \" - expiring tomorrow\";\n return ` - expiring in ${expiringIn} days`;\n }\n\n function getUpgradeDaysLeft() {\n if (license.license_status === LicenseStatus.InvalidDueToExpiredUpgradeProtection) return \" - expired\";\n\n const expiringIn = useGetDayDiffFromToday(license.upgrade_protection_expiration);\n //TODO: can this be unified with the function above? Text is currently similar but not identical.\n if (isNaN(expiringIn)) return \"\";\n if (expiringIn <= 0) return \" - expired\";\n if (expiringIn === 0) return \" - expiring today\";\n if (expiringIn === 1) return \" - 1 day left\";\n return \" - \" + expiringIn + \" days left\";\n }\n\n return {\n refresh,\n license,\n licenseStatus,\n loading,\n licenseEdition,\n formattedInstanceName,\n formattedExpirationDate,\n formattedUpgradeProtectionExpiration,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useLicenseStore, import.meta.hot));\n}\n\nexport type LicenseStore = ReturnType;\n","\n\n\n","\n\n\n","import type EndpointDetails from \"@/resources/EndpointDetails\";\nimport type Header from \"@/resources/Header\";\nimport { ConversationModel } from \"./SequenceDiagram/SequenceModel\";\n\nexport interface FailedMessage {\n id: string;\n message_type: string;\n time_sent?: string;\n is_system_message: boolean;\n exception: ExceptionDetails;\n message_id: string;\n number_of_processing_attempts: number;\n status: FailedMessageStatus;\n sending_endpoint: EndpointDetails;\n receiving_endpoint: EndpointDetails;\n queue_address: string;\n time_of_failure: string;\n last_modified: string;\n edited: boolean;\n edit_of: string;\n}\n\nexport interface ExtendedFailedMessage extends FailedMessage {\n error_retention_period: number;\n delete_soon: boolean;\n deleted_in: string;\n retryInProgress: boolean;\n deleteInProgress: boolean;\n restoreInProgress: boolean;\n selected: boolean;\n retried: boolean;\n archiving: boolean;\n restoring: boolean;\n archived: boolean;\n resolved: boolean;\n headersNotFound: boolean;\n messageBodyNotFound: boolean;\n bodyUnavailable: boolean;\n headers: Header[];\n conversationId: string;\n conversation?: ConversationModel;\n messageBody: string;\n contentType: string;\n isEditAndRetryEnabled: boolean;\n redirect: boolean;\n submittedForRetrial: boolean;\n}\n\nexport interface FailedMessageError {\n notFound: boolean;\n error: boolean;\n}\n\nexport function isError(obj: ExtendedFailedMessage | FailedMessageError): obj is FailedMessageError {\n return (obj as FailedMessageError).error !== undefined || (obj as FailedMessageError).notFound !== undefined;\n}\n\nexport interface ExceptionDetails {\n exception_type: string;\n message: string;\n source: string;\n stack_trace: string;\n}\n\nexport enum FailedMessageStatus {\n Unresolved = \"unresolved\",\n Resolved = \"resolved\",\n RetryIssued = \"retryIssued\",\n Archived = \"archived\",\n}\n","import { computed, customRef, effectScope, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, isReactive, isRef, nextTick, onBeforeMount, onBeforeUnmount, onMounted, onScopeDispose, onUnmounted, provide, reactive, readonly, ref, shallowReadonly, shallowRef, toRef as toRef$1, toRefs as toRefs$1, toValue, unref, watch, watchEffect } from \"vue\";\n\n//#region computedEager/index.ts\n/**\n*\n* @deprecated This function will be removed in future version.\n*\n* Note: If you are using Vue 3.4+, you can straight use computed instead.\n* Because in Vue 3.4+, if computed new value does not change,\n* computed, effect, watch, watchEffect, render dependencies will not be triggered.\n* refer: https://github.com/vuejs/core/pull/5912\n*\n* @param fn effect function\n* @param options WatchOptionsBase\n* @returns readonly shallowRef\n*/\nfunction computedEager(fn, options) {\n\tvar _options$flush;\n\tconst result = shallowRef();\n\twatchEffect(() => {\n\t\tresult.value = fn();\n\t}, {\n\t\t...options,\n\t\tflush: (_options$flush = options === null || options === void 0 ? void 0 : options.flush) !== null && _options$flush !== void 0 ? _options$flush : \"sync\"\n\t});\n\treturn readonly(result);\n}\n/** @deprecated use `computedEager` instead */\nconst eagerComputed = computedEager;\n\n//#endregion\n//#region computedWithControl/index.ts\n/**\n* Explicitly define the deps of computed.\n*\n* @param source\n* @param fn\n*/\nfunction computedWithControl(source, fn, options = {}) {\n\tlet v = void 0;\n\tlet track;\n\tlet trigger;\n\tlet dirty = true;\n\tconst update = () => {\n\t\tdirty = true;\n\t\ttrigger();\n\t};\n\twatch(source, update, {\n\t\tflush: \"sync\",\n\t\t...options\n\t});\n\tconst get$1 = typeof fn === \"function\" ? fn : fn.get;\n\tconst set$1 = typeof fn === \"function\" ? void 0 : fn.set;\n\tconst result = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tif (dirty) {\n\t\t\t\t\tv = get$1(v);\n\t\t\t\t\tdirty = false;\n\t\t\t\t}\n\t\t\t\ttrack();\n\t\t\t\treturn v;\n\t\t\t},\n\t\t\tset(v$1) {\n\t\t\t\tset$1 === null || set$1 === void 0 || set$1(v$1);\n\t\t\t}\n\t\t};\n\t});\n\tresult.trigger = update;\n\treturn result;\n}\n/** @deprecated use `computedWithControl` instead */\nconst controlledComputed = computedWithControl;\n\n//#endregion\n//#region tryOnScopeDispose/index.ts\n/**\n* Call onScopeDispose() if it's inside an effect scope lifecycle, if not, do nothing\n*\n* @param fn\n*/\nfunction tryOnScopeDispose(fn, failSilently) {\n\tif (getCurrentScope()) {\n\t\tonScopeDispose(fn, failSilently);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\n//#endregion\n//#region createEventHook/index.ts\n/**\n* Utility for creating event hooks\n*\n* @see https://vueuse.org/createEventHook\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createEventHook() {\n\tconst fns = /* @__PURE__ */ new Set();\n\tconst off = (fn) => {\n\t\tfns.delete(fn);\n\t};\n\tconst clear = () => {\n\t\tfns.clear();\n\t};\n\tconst on = (fn) => {\n\t\tfns.add(fn);\n\t\tconst offFn = () => off(fn);\n\t\ttryOnScopeDispose(offFn);\n\t\treturn { off: offFn };\n\t};\n\tconst trigger = (...args) => {\n\t\treturn Promise.all(Array.from(fns).map((fn) => fn(...args)));\n\t};\n\treturn {\n\t\ton,\n\t\toff,\n\t\ttrigger,\n\t\tclear\n\t};\n}\n\n//#endregion\n//#region createGlobalState/index.ts\n/**\n* Keep states in the global scope to be reusable across Vue instances.\n*\n* @see https://vueuse.org/createGlobalState\n* @param stateFactory A factory function to create the state\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createGlobalState(stateFactory) {\n\tlet initialized = false;\n\tlet state;\n\tconst scope = effectScope(true);\n\treturn ((...args) => {\n\t\tif (!initialized) {\n\t\t\tstate = scope.run(() => stateFactory(...args));\n\t\t\tinitialized = true;\n\t\t}\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region provideLocal/map.ts\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\n//#endregion\n//#region injectLocal/index.ts\n/**\n* On the basis of `inject`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* injectLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*\n* @__NO_SIDE_EFFECTS__\n*/\nconst injectLocal = (...args) => {\n\tvar _getCurrentInstance;\n\tconst key = args[0];\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null && !hasInjectionContext()) throw new Error(\"injectLocal must be called in setup\");\n\tif (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];\n\treturn inject(...args);\n};\n\n//#endregion\n//#region provideLocal/index.ts\n/**\n* On the basis of `provide`, it is allowed to directly call inject to obtain the value after call provide in the same component.\n*\n* @example\n* ```ts\n* provideLocal('MyInjectionKey', 1)\n* const injectedValue = injectLocal('MyInjectionKey') // injectedValue === 1\n* ```\n*/\nfunction provideLocal(key, value) {\n\tvar _getCurrentInstance;\n\tconst instance = (_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;\n\tconst owner = instance !== null && instance !== void 0 ? instance : getCurrentScope();\n\tif (owner == null) throw new Error(\"provideLocal must be called in setup\");\n\tif (!localProvidedStateMap.has(owner)) localProvidedStateMap.set(owner, Object.create(null));\n\tconst localProvidedState = localProvidedStateMap.get(owner);\n\tlocalProvidedState[key] = value;\n\treturn provide(key, value);\n}\n\n//#endregion\n//#region createInjectionState/index.ts\n/**\n* Create global state that can be injected into components.\n*\n* @see https://vueuse.org/createInjectionState\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createInjectionState(composable, options) {\n\tconst key = (options === null || options === void 0 ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n\tconst defaultValue = options === null || options === void 0 ? void 0 : options.defaultValue;\n\tconst useProvidingState = (...args) => {\n\t\tconst state = composable(...args);\n\t\tprovideLocal(key, state);\n\t\treturn state;\n\t};\n\tconst useInjectedState = () => injectLocal(key, defaultValue);\n\treturn [useProvidingState, useInjectedState];\n}\n\n//#endregion\n//#region createRef/index.ts\n/**\n* Returns a `deepRef` or `shallowRef` depending on the `deep` param.\n*\n* @example createRef(1) // ShallowRef\n* @example createRef(1, false) // ShallowRef\n* @example createRef(1, true) // Ref\n* @example createRef(\"string\") // ShallowRef\n* @example createRef<\"A\"|\"B\">(\"A\", true) // Ref<\"A\"|\"B\">\n*\n* @param value\n* @param deep\n* @returns the `deepRef` or `shallowRef`\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createRef(value, deep) {\n\tif (deep === true) return ref(value);\n\telse return shallowRef(value);\n}\n\n//#endregion\n//#region utils/is.ts\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n\tif (!condition) console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {};\nconst rand = (min, max) => {\n\tmin = Math.ceil(min);\n\tmax = Math.floor(max);\n\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n\tvar _window, _window2, _window3;\n\treturn isClient && ((_window = window) === null || _window === void 0 || (_window = _window.navigator) === null || _window === void 0 ? void 0 : _window.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.navigator) === null || _window2 === void 0 ? void 0 : _window2.maxTouchPoints) > 2 && /iPad|Macintosh/.test((_window3 = window) === null || _window3 === void 0 ? void 0 : _window3.navigator.userAgent));\n}\n\n//#endregion\n//#region toRef/index.ts\nfunction toRef(...args) {\n\tif (args.length !== 1) return toRef$1(...args);\n\tconst r = args[0];\n\treturn typeof r === \"function\" ? readonly(customRef(() => ({\n\t\tget: r,\n\t\tset: noop\n\t}))) : ref(r);\n}\n\n//#endregion\n//#region utils/filters.ts\n/**\n* @internal\n*/\nfunction createFilterWrapper(filter, fn) {\n\tfunction wrapper(...args) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tPromise.resolve(filter(() => fn.apply(this, args), {\n\t\t\t\tfn,\n\t\t\t\tthisArg: this,\n\t\t\t\targs\n\t\t\t})).then(resolve).catch(reject);\n\t\t});\n\t}\n\treturn wrapper;\n}\nconst bypassFilter = (invoke$1) => {\n\treturn invoke$1();\n};\n/**\n* Create an EventFilter that debounce the events\n*/\nfunction debounceFilter(ms, options = {}) {\n\tlet timer;\n\tlet maxTimer;\n\tlet lastRejector = noop;\n\tconst _clearTimeout = (timer$1) => {\n\t\tclearTimeout(timer$1);\n\t\tlastRejector();\n\t\tlastRejector = noop;\n\t};\n\tlet lastInvoker;\n\tconst filter = (invoke$1) => {\n\t\tconst duration = toValue(ms);\n\t\tconst maxDuration = toValue(options.maxWait);\n\t\tif (timer) _clearTimeout(timer);\n\t\tif (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n\t\t\tif (maxTimer) {\n\t\t\t\t_clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t}\n\t\t\treturn Promise.resolve(invoke$1());\n\t\t}\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlastRejector = options.rejectOnCancel ? reject : resolve;\n\t\t\tlastInvoker = invoke$1;\n\t\t\tif (maxDuration && !maxTimer) maxTimer = setTimeout(() => {\n\t\t\t\tif (timer) _clearTimeout(timer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(lastInvoker());\n\t\t\t}, maxDuration);\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tif (maxTimer) _clearTimeout(maxTimer);\n\t\t\t\tmaxTimer = void 0;\n\t\t\t\tresolve(invoke$1());\n\t\t\t}, duration);\n\t\t});\n\t};\n\treturn filter;\n}\nfunction throttleFilter(...args) {\n\tlet lastExec = 0;\n\tlet timer;\n\tlet isLeading = true;\n\tlet lastRejector = noop;\n\tlet lastValue;\n\tlet ms;\n\tlet trailing;\n\tlet leading;\n\tlet rejectOnCancel;\n\tif (!isRef(args[0]) && typeof args[0] === \"object\") ({delay: ms, trailing = true, leading = true, rejectOnCancel = false} = args[0]);\n\telse [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n\tconst clear = () => {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t\tlastRejector();\n\t\t\tlastRejector = noop;\n\t\t}\n\t};\n\tconst filter = (_invoke) => {\n\t\tconst duration = toValue(ms);\n\t\tconst elapsed = Date.now() - lastExec;\n\t\tconst invoke$1 = () => {\n\t\t\treturn lastValue = _invoke();\n\t\t};\n\t\tclear();\n\t\tif (duration <= 0) {\n\t\t\tlastExec = Date.now();\n\t\t\treturn invoke$1();\n\t\t}\n\t\tif (elapsed > duration) {\n\t\t\tlastExec = Date.now();\n\t\t\tif (leading || !isLeading) invoke$1();\n\t\t} else if (trailing) lastValue = new Promise((resolve, reject) => {\n\t\t\tlastRejector = rejectOnCancel ? reject : resolve;\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\tlastExec = Date.now();\n\t\t\t\tisLeading = true;\n\t\t\t\tresolve(invoke$1());\n\t\t\t\tclear();\n\t\t\t}, Math.max(0, duration - elapsed));\n\t\t});\n\t\tif (!leading && !timer) timer = setTimeout(() => isLeading = true, duration);\n\t\tisLeading = false;\n\t\treturn lastValue;\n\t};\n\treturn filter;\n}\n/**\n* EventFilter that gives extra controls to pause and resume the filter\n*\n* @param extendFilter Extra filter to apply when the PausableFilter is active, default to none\n* @param options Options to configure the filter\n*/\nfunction pausableFilter(extendFilter = bypassFilter, options = {}) {\n\tconst { initialState = \"active\" } = options;\n\tconst isActive = toRef(initialState === \"active\");\n\tfunction pause() {\n\t\tisActive.value = false;\n\t}\n\tfunction resume() {\n\t\tisActive.value = true;\n\t}\n\tconst eventFilter = (...args) => {\n\t\tif (isActive.value) extendFilter(...args);\n\t};\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume,\n\t\teventFilter\n\t};\n}\n\n//#endregion\n//#region utils/general.ts\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n\treturn new Promise((resolve, reject) => {\n\t\tif (throwOnTimeout) setTimeout(() => reject(reason), ms);\n\t\telse setTimeout(resolve, ms);\n\t});\n}\nfunction identity(arg) {\n\treturn arg;\n}\n/**\n* Create singleton promise function\n*\n* @example\n* ```\n* const promise = createSingletonPromise(async () => { ... })\n*\n* await promise()\n* await promise() // all of them will be bind to a single promise instance\n* await promise() // and be resolved together\n* ```\n*/\nfunction createSingletonPromise(fn) {\n\tlet _promise;\n\tfunction wrapper() {\n\t\tif (!_promise) _promise = fn();\n\t\treturn _promise;\n\t}\n\twrapper.reset = async () => {\n\t\tconst _prev = _promise;\n\t\t_promise = void 0;\n\t\tif (_prev) await _prev;\n\t};\n\treturn wrapper;\n}\nfunction invoke(fn) {\n\treturn fn();\n}\nfunction containsProp(obj, ...props) {\n\treturn props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n\tvar _target$match;\n\tif (typeof target === \"number\") return target + delta;\n\tconst value = ((_target$match = target.match(/^-?\\d+\\.?\\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || \"\";\n\tconst unit = target.slice(value.length);\n\tconst result = Number.parseFloat(value) + delta;\n\tif (Number.isNaN(result)) return target;\n\treturn result + unit;\n}\n/**\n* Get a px value for SSR use, do not rely on this method outside of SSR as REM unit is assumed at 16px, which might not be the case on the client\n*/\nfunction pxValue(px) {\n\treturn px.endsWith(\"rem\") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);\n}\n/**\n* Create a new subset object by giving keys\n*/\nfunction objectPick(obj, keys, omitUndefined = false) {\n\treturn keys.reduce((n, k) => {\n\t\tif (k in obj) {\n\t\t\tif (!omitUndefined || obj[k] !== void 0) n[k] = obj[k];\n\t\t}\n\t\treturn n;\n\t}, {});\n}\n/**\n* Create a new subset object by omit giving keys\n*/\nfunction objectOmit(obj, keys, omitUndefined = false) {\n\treturn Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n\t\treturn (!omitUndefined || value !== void 0) && !keys.includes(key);\n\t}));\n}\nfunction objectEntries(obj) {\n\treturn Object.entries(obj);\n}\nfunction toArray(value) {\n\treturn Array.isArray(value) ? value : [value];\n}\n\n//#endregion\n//#region utils/port.ts\nfunction cacheStringFunction(fn) {\n\tconst cache = Object.create(null);\n\treturn ((str) => {\n\t\treturn cache[str] || (cache[str] = fn(str));\n\t});\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n\treturn str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\n//#endregion\n//#region utils/vue.ts\nfunction getLifeCycleTarget(target) {\n\treturn target || getCurrentInstance();\n}\n\n//#endregion\n//#region createSharedComposable/index.ts\n/**\n* Make a composable function usable with multiple Vue instances.\n*\n* @see https://vueuse.org/createSharedComposable\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createSharedComposable(composable) {\n\tif (!isClient) return composable;\n\tlet subscribers = 0;\n\tlet state;\n\tlet scope;\n\tconst dispose = () => {\n\t\tsubscribers -= 1;\n\t\tif (scope && subscribers <= 0) {\n\t\t\tscope.stop();\n\t\t\tstate = void 0;\n\t\t\tscope = void 0;\n\t\t}\n\t};\n\treturn ((...args) => {\n\t\tsubscribers += 1;\n\t\tif (!scope) {\n\t\t\tscope = effectScope(true);\n\t\t\tstate = scope.run(() => composable(...args));\n\t\t}\n\t\ttryOnScopeDispose(dispose);\n\t\treturn state;\n\t});\n}\n\n//#endregion\n//#region extendRef/index.ts\nfunction extendRef(ref$1, extend, { enumerable = false, unwrap = true } = {}) {\n\tfor (const [key, value] of Object.entries(extend)) {\n\t\tif (key === \"value\") continue;\n\t\tif (isRef(value) && unwrap) Object.defineProperty(ref$1, key, {\n\t\t\tget() {\n\t\t\t\treturn value.value;\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tvalue.value = v;\n\t\t\t},\n\t\t\tenumerable\n\t\t});\n\t\telse Object.defineProperty(ref$1, key, {\n\t\t\tvalue,\n\t\t\tenumerable\n\t\t});\n\t}\n\treturn ref$1;\n}\n\n//#endregion\n//#region get/index.ts\nfunction get(obj, key) {\n\tif (key == null) return unref(obj);\n\treturn unref(obj)[key];\n}\n\n//#endregion\n//#region isDefined/index.ts\nfunction isDefined(v) {\n\treturn unref(v) != null;\n}\n\n//#endregion\n//#region makeDestructurable/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction makeDestructurable(obj, arr) {\n\tif (typeof Symbol !== \"undefined\") {\n\t\tconst clone = { ...obj };\n\t\tObject.defineProperty(clone, Symbol.iterator, {\n\t\t\tenumerable: false,\n\t\t\tvalue() {\n\t\t\t\tlet index = 0;\n\t\t\t\treturn { next: () => ({\n\t\t\t\t\tvalue: arr[index++],\n\t\t\t\t\tdone: index > arr.length\n\t\t\t\t}) };\n\t\t\t}\n\t\t});\n\t\treturn clone;\n\t} else return Object.assign([...arr], obj);\n}\n\n//#endregion\n//#region reactify/index.ts\n/**\n* Converts plain function into a reactive function.\n* The converted function accepts refs as it's arguments\n* and returns a ComputedRef, with proper typing.\n*\n* @param fn - Source function\n* @param options - Options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactify(fn, options) {\n\tconst unrefFn = (options === null || options === void 0 ? void 0 : options.computedGetter) === false ? unref : toValue;\n\treturn function(...args) {\n\t\treturn computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n\t};\n}\n/** @deprecated use `reactify` instead */\nconst createReactiveFn = reactify;\n\n//#endregion\n//#region reactifyObject/index.ts\n/**\n* Apply `reactify` to an object\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n\tlet keys = [];\n\tlet options;\n\tif (Array.isArray(optionsOrKeys)) keys = optionsOrKeys;\n\telse {\n\t\toptions = optionsOrKeys;\n\t\tconst { includeOwnProperties = true } = optionsOrKeys;\n\t\tkeys.push(...Object.keys(obj));\n\t\tif (includeOwnProperties) keys.push(...Object.getOwnPropertyNames(obj));\n\t}\n\treturn Object.fromEntries(keys.map((key) => {\n\t\tconst value = obj[key];\n\t\treturn [key, typeof value === \"function\" ? reactify(value.bind(obj), options) : value];\n\t}));\n}\n\n//#endregion\n//#region toReactive/index.ts\n/**\n* Converts ref to reactive.\n*\n* @see https://vueuse.org/toReactive\n* @param objectRef A ref of object\n*/\nfunction toReactive(objectRef) {\n\tif (!isRef(objectRef)) return reactive(objectRef);\n\treturn reactive(new Proxy({}, {\n\t\tget(_, p, receiver) {\n\t\t\treturn unref(Reflect.get(objectRef.value, p, receiver));\n\t\t},\n\t\tset(_, p, value) {\n\t\t\tif (isRef(objectRef.value[p]) && !isRef(value)) objectRef.value[p].value = value;\n\t\t\telse objectRef.value[p] = value;\n\t\t\treturn true;\n\t\t},\n\t\tdeleteProperty(_, p) {\n\t\t\treturn Reflect.deleteProperty(objectRef.value, p);\n\t\t},\n\t\thas(_, p) {\n\t\t\treturn Reflect.has(objectRef.value, p);\n\t\t},\n\t\townKeys() {\n\t\t\treturn Object.keys(objectRef.value);\n\t\t},\n\t\tgetOwnPropertyDescriptor() {\n\t\t\treturn {\n\t\t\t\tenumerable: true,\n\t\t\t\tconfigurable: true\n\t\t\t};\n\t\t}\n\t}));\n}\n\n//#endregion\n//#region reactiveComputed/index.ts\n/**\n* Computed reactive object.\n*/\nfunction reactiveComputed(fn) {\n\treturn toReactive(computed(fn));\n}\n\n//#endregion\n//#region reactiveOmit/index.ts\n/**\n* Reactively omit fields from a reactive object\n*\n* @see https://vueuse.org/reactiveOmit\n*/\nfunction reactiveOmit(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\n//#endregion\n//#region reactivePick/index.ts\n/**\n* Reactively pick fields from a reactive object\n*\n* @see https://vueuse.org/reactivePick\n*/\nfunction reactivePick(obj, ...keys) {\n\tconst flatKeys = keys.flat();\n\tconst predicate = flatKeys[0];\n\treturn reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\n//#endregion\n//#region refAutoReset/index.ts\n/**\n* Create a ref which will be reset to the default value after some time.\n*\n* @see https://vueuse.org/refAutoReset\n* @param defaultValue The value which will be set.\n* @param afterMs A zero-or-greater delay in milliseconds.\n*/\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n\treturn customRef((track, trigger) => {\n\t\tlet value = toValue(defaultValue);\n\t\tlet timer;\n\t\tconst resetAfter = () => setTimeout(() => {\n\t\t\tvalue = toValue(defaultValue);\n\t\t\ttrigger();\n\t\t}, toValue(afterMs));\n\t\ttryOnScopeDispose(() => {\n\t\t\tclearTimeout(timer);\n\t\t});\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = resetAfter();\n\t\t\t}\n\t\t};\n\t});\n}\n/** @deprecated use `refAutoReset` instead */\nconst autoResetRef = refAutoReset;\n\n//#endregion\n//#region useDebounceFn/index.ts\n/**\n* Debounce execution of a function.\n*\n* @see https://vueuse.org/useDebounceFn\n* @param fn A function to be executed after delay milliseconds debounced.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param options Options\n*\n* @return A new, debounce, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n\treturn createFilterWrapper(debounceFilter(ms, options), fn);\n}\n\n//#endregion\n//#region refDebounced/index.ts\n/**\n* Debounce updates of a ref.\n*\n* @return A new debounced ref.\n*/\nfunction refDebounced(value, ms = 200, options = {}) {\n\tconst debounced = ref(toValue(value));\n\tconst updater = useDebounceFn(() => {\n\t\tdebounced.value = value.value;\n\t}, ms, options);\n\twatch(value, () => updater());\n\treturn shallowReadonly(debounced);\n}\n/** @deprecated use `refDebounced` instead */\nconst debouncedRef = refDebounced;\n/** @deprecated use `refDebounced` instead */\nconst useDebounce = refDebounced;\n\n//#endregion\n//#region refDefault/index.ts\n/**\n* Apply default value to a ref.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refDefault(source, defaultValue) {\n\treturn computed({\n\t\tget() {\n\t\t\tvar _source$value;\n\t\t\treturn (_source$value = source.value) !== null && _source$value !== void 0 ? _source$value : defaultValue;\n\t\t},\n\t\tset(value) {\n\t\t\tsource.value = value;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region refManualReset/index.ts\n/**\n* Create a ref with manual reset functionality.\n*\n* @see https://vueuse.org/refManualReset\n* @param defaultValue The value which will be set.\n*/\nfunction refManualReset(defaultValue) {\n\tlet value = toValue(defaultValue);\n\tlet trigger;\n\tconst reset = () => {\n\t\tvalue = toValue(defaultValue);\n\t\ttrigger();\n\t};\n\tconst refValue = customRef((track, _trigger) => {\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\ttrack();\n\t\t\t\treturn value;\n\t\t\t},\n\t\t\tset(newValue) {\n\t\t\t\tvalue = newValue;\n\t\t\t\ttrigger();\n\t\t\t}\n\t\t};\n\t});\n\trefValue.reset = reset;\n\treturn refValue;\n}\n\n//#endregion\n//#region useThrottleFn/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param fn A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n* to `callback` when the throttled-function is executed.\n* @param ms A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* (default value: 200)\n*\n* @param [trailing] if true, call fn again after the time is up (default value: false)\n*\n* @param [leading] if true, call fn on the leading edge of the ms timeout (default value: true)\n*\n* @param [rejectOnCancel] if true, reject the last call if it's been cancel (default value: false)\n*\n* @return A new, throttled, function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n\treturn createFilterWrapper(throttleFilter(ms, trailing, leading, rejectOnCancel), fn);\n}\n\n//#endregion\n//#region refThrottled/index.ts\n/**\n* Throttle execution of a function. Especially useful for rate limiting\n* execution of handlers on events like resize and scroll.\n*\n* @param value Ref value to be watched with throttle effect\n* @param delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n* @param trailing if true, update the value again after the delay time is up\n* @param leading if true, update the value on the leading edge of the ms timeout\n*/\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n\tif (delay <= 0) return value;\n\tconst throttled = ref(toValue(value));\n\tconst updater = useThrottleFn(() => {\n\t\tthrottled.value = value.value;\n\t}, delay, trailing, leading);\n\twatch(value, () => updater());\n\treturn throttled;\n}\n/** @deprecated use `refThrottled` instead */\nconst throttledRef = refThrottled;\n/** @deprecated use `refThrottled` instead */\nconst useThrottle = refThrottled;\n\n//#endregion\n//#region refWithControl/index.ts\n/**\n* Fine-grained controls over ref and its reactivity.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction refWithControl(initial, options = {}) {\n\tlet source = initial;\n\tlet track;\n\tlet trigger;\n\tconst ref$1 = customRef((_track, _trigger) => {\n\t\ttrack = _track;\n\t\ttrigger = _trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\treturn get$1();\n\t\t\t},\n\t\t\tset(v) {\n\t\t\t\tset$1(v);\n\t\t\t}\n\t\t};\n\t});\n\tfunction get$1(tracking = true) {\n\t\tif (tracking) track();\n\t\treturn source;\n\t}\n\tfunction set$1(value, triggering = true) {\n\t\tvar _options$onBeforeChan, _options$onChanged;\n\t\tif (value === source) return;\n\t\tconst old = source;\n\t\tif (((_options$onBeforeChan = options.onBeforeChange) === null || _options$onBeforeChan === void 0 ? void 0 : _options$onBeforeChan.call(options, value, old)) === false) return;\n\t\tsource = value;\n\t\t(_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, value, old);\n\t\tif (triggering) trigger();\n\t}\n\t/**\n\t* Get the value without tracked in the reactivity system\n\t*/\n\tconst untrackedGet = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*/\n\tconst silentSet = (v) => set$1(v, false);\n\t/**\n\t* Get the value without tracked in the reactivity system.\n\t*\n\t* Alias for `untrackedGet()`\n\t*/\n\tconst peek = () => get$1(false);\n\t/**\n\t* Set the value without triggering the reactivity system\n\t*\n\t* Alias for `silentSet(v)`\n\t*/\n\tconst lay = (v) => set$1(v, false);\n\treturn extendRef(ref$1, {\n\t\tget: get$1,\n\t\tset: set$1,\n\t\tuntrackedGet,\n\t\tsilentSet,\n\t\tpeek,\n\t\tlay\n\t}, { enumerable: true });\n}\n/** @deprecated use `refWithControl` instead */\nconst controlledRef = refWithControl;\n\n//#endregion\n//#region set/index.ts\n/**\n* Shorthand for `ref.value = x`\n*/\nfunction set(...args) {\n\tif (args.length === 2) {\n\t\tconst [ref$1, value] = args;\n\t\tref$1.value = value;\n\t}\n\tif (args.length === 3) {\n\t\tconst [target, key, value] = args;\n\t\ttarget[key] = value;\n\t}\n}\n\n//#endregion\n//#region watchWithFilter/index.ts\nfunction watchWithFilter(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\treturn watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\n//#endregion\n//#region watchPausable/index.ts\nfunction watchPausable(source, cb, options = {}) {\n\tconst { eventFilter: filter, initialState = \"active\",...watchOptions } = options;\n\tconst { eventFilter, pause, resume, isActive } = pausableFilter(filter, { initialState });\n\treturn {\n\t\tstop: watchWithFilter(source, cb, {\n\t\t\t...watchOptions,\n\t\t\teventFilter\n\t\t}),\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n/** @deprecated use `watchPausable` instead */\nconst pausableWatch = watchPausable;\n\n//#endregion\n//#region syncRef/index.ts\n/**\n* Two-way refs synchronization.\n* From the set theory perspective to restrict the option's type\n* Check in the following order:\n* 1. L = R\n* 2. L ∩ R ≠ ∅\n* 3. L ⊆ R\n* 4. L ∩ R = ∅\n*/\nfunction syncRef(left, right, ...[options]) {\n\tconst { flush = \"sync\", deep = false, immediate = true, direction = \"both\", transform = {} } = options || {};\n\tconst watchers = [];\n\tconst transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n\tconst transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n\tif (direction === \"both\" || direction === \"ltr\") watchers.push(pausableWatch(left, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tright.value = transformLTR(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tif (direction === \"both\" || direction === \"rtl\") watchers.push(pausableWatch(right, (newValue) => {\n\t\twatchers.forEach((w) => w.pause());\n\t\tleft.value = transformRTL(newValue);\n\t\twatchers.forEach((w) => w.resume());\n\t}, {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t}));\n\tconst stop = () => {\n\t\twatchers.forEach((w) => w.stop());\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region syncRefs/index.ts\n/**\n* Keep target ref(s) in sync with the source ref\n*\n* @param source source ref\n* @param targets\n*/\nfunction syncRefs(source, targets, options = {}) {\n\tconst { flush = \"sync\", deep = false, immediate = true } = options;\n\tconst targetsArray = toArray(targets);\n\treturn watch(source, (newValue) => targetsArray.forEach((target) => target.value = newValue), {\n\t\tflush,\n\t\tdeep,\n\t\timmediate\n\t});\n}\n\n//#endregion\n//#region toRefs/index.ts\n/**\n* Extended `toRefs` that also accepts refs of an object.\n*\n* @see https://vueuse.org/toRefs\n* @param objectRef A ref or normal object or array.\n* @param options Options\n*/\nfunction toRefs(objectRef, options = {}) {\n\tif (!isRef(objectRef)) return toRefs$1(objectRef);\n\tconst result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n\tfor (const key in objectRef.value) result[key] = customRef(() => ({\n\t\tget() {\n\t\t\treturn objectRef.value[key];\n\t\t},\n\t\tset(v) {\n\t\t\tvar _toValue;\n\t\t\tif ((_toValue = toValue(options.replaceRef)) !== null && _toValue !== void 0 ? _toValue : true) if (Array.isArray(objectRef.value)) {\n\t\t\t\tconst copy = [...objectRef.value];\n\t\t\t\tcopy[key] = v;\n\t\t\t\tobjectRef.value = copy;\n\t\t\t} else {\n\t\t\t\tconst newObject = {\n\t\t\t\t\t...objectRef.value,\n\t\t\t\t\t[key]: v\n\t\t\t\t};\n\t\t\t\tObject.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n\t\t\t\tobjectRef.value = newObject;\n\t\t\t}\n\t\t\telse objectRef.value[key] = v;\n\t\t}\n\t}));\n\treturn result;\n}\n\n//#endregion\n//#region tryOnBeforeMount/index.ts\n/**\n* Call onBeforeMount() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnBeforeMount(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onBeforeMount(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnBeforeUnmount/index.ts\n/**\n* Call onBeforeUnmount() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnBeforeUnmount(fn, target) {\n\tif (getLifeCycleTarget(target)) onBeforeUnmount(fn, target);\n}\n\n//#endregion\n//#region tryOnMounted/index.ts\n/**\n* Call onMounted() if it's inside a component lifecycle, if not, just call the function\n*\n* @param fn\n* @param sync if set to false, it will run in the nextTick() of Vue\n* @param target\n*/\nfunction tryOnMounted(fn, sync = true, target) {\n\tif (getLifeCycleTarget(target)) onMounted(fn, target);\n\telse if (sync) fn();\n\telse nextTick(fn);\n}\n\n//#endregion\n//#region tryOnUnmounted/index.ts\n/**\n* Call onUnmounted() if it's inside a component lifecycle, if not, do nothing\n*\n* @param fn\n* @param target\n*/\nfunction tryOnUnmounted(fn, target) {\n\tif (getLifeCycleTarget(target)) onUnmounted(fn, target);\n}\n\n//#endregion\n//#region until/index.ts\nfunction createUntil(r, isNot = false) {\n\tfunction toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch(r, (v) => {\n\t\t\t\tif (condition(v) !== isNot) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop === null || stop === void 0 ? void 0 : stop()));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBe(value, options) {\n\t\tif (!isRef(value)) return toMatch((v) => v === value, options);\n\t\tconst { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options !== null && options !== void 0 ? options : {};\n\t\tlet stop = null;\n\t\tconst promises = [new Promise((resolve) => {\n\t\t\tstop = watch([r, value], ([v1, v2]) => {\n\t\t\t\tif (isNot !== (v1 === v2)) {\n\t\t\t\t\tif (stop) stop();\n\t\t\t\t\telse nextTick(() => stop === null || stop === void 0 ? void 0 : stop());\n\t\t\t\t\tresolve(v1);\n\t\t\t\t}\n\t\t\t}, {\n\t\t\t\tflush,\n\t\t\t\tdeep,\n\t\t\t\timmediate: true\n\t\t\t});\n\t\t})];\n\t\tif (timeout != null) promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n\t\t\tstop === null || stop === void 0 || stop();\n\t\t\treturn toValue(r);\n\t\t}));\n\t\treturn Promise.race(promises);\n\t}\n\tfunction toBeTruthy(options) {\n\t\treturn toMatch((v) => Boolean(v), options);\n\t}\n\tfunction toBeNull(options) {\n\t\treturn toBe(null, options);\n\t}\n\tfunction toBeUndefined(options) {\n\t\treturn toBe(void 0, options);\n\t}\n\tfunction toBeNaN(options) {\n\t\treturn toMatch(Number.isNaN, options);\n\t}\n\tfunction toContains(value, options) {\n\t\treturn toMatch((v) => {\n\t\t\tconst array = Array.from(v);\n\t\t\treturn array.includes(value) || array.includes(toValue(value));\n\t\t}, options);\n\t}\n\tfunction changed(options) {\n\t\treturn changedTimes(1, options);\n\t}\n\tfunction changedTimes(n = 1, options) {\n\t\tlet count = -1;\n\t\treturn toMatch(() => {\n\t\t\tcount += 1;\n\t\t\treturn count >= n;\n\t\t}, options);\n\t}\n\tif (Array.isArray(toValue(r))) return {\n\t\ttoMatch,\n\t\ttoContains,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n\telse return {\n\t\ttoMatch,\n\t\ttoBe,\n\t\ttoBeTruthy,\n\t\ttoBeNull,\n\t\ttoBeNaN,\n\t\ttoBeUndefined,\n\t\tchanged,\n\t\tchangedTimes,\n\t\tget not() {\n\t\t\treturn createUntil(r, !isNot);\n\t\t}\n\t};\n}\nfunction until(r) {\n\treturn createUntil(r);\n}\n\n//#endregion\n//#region useArrayDifference/index.ts\nfunction defaultComparator(value, othVal) {\n\treturn value === othVal;\n}\n/**\n* Reactive get array difference of two array\n* @see https://vueuse.org/useArrayDifference\n* @returns - the difference of two array\n* @param args\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayDifference(...args) {\n\tvar _args$, _args$2;\n\tconst list = args[0];\n\tconst values = args[1];\n\tlet compareFn = (_args$ = args[2]) !== null && _args$ !== void 0 ? _args$ : defaultComparator;\n\tconst { symmetric = false } = (_args$2 = args[3]) !== null && _args$2 !== void 0 ? _args$2 : {};\n\tif (typeof compareFn === \"string\") {\n\t\tconst key = compareFn;\n\t\tcompareFn = (value, othVal) => value[key] === othVal[key];\n\t}\n\tconst diff1 = computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n\tif (symmetric) {\n\t\tconst diff2 = computed(() => toValue(values).filter((x) => toValue(list).findIndex((y) => compareFn(x, y)) === -1));\n\t\treturn computed(() => symmetric ? [...toValue(diff1), ...toValue(diff2)] : toValue(diff1));\n\t} else return diff1;\n}\n\n//#endregion\n//#region useArrayEvery/index.ts\n/**\n* Reactive `Array.every`\n*\n* @see https://vueuse.org/useArrayEvery\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for every element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayEvery(list, fn) {\n\treturn computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFilter/index.ts\n/**\n* Reactive `Array.filter`\n*\n* @see https://vueuse.org/useArrayFilter\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a shallow copy of a portion of the given array, filtered down to just the elements from the given array that pass the test implemented by the provided function. If no elements pass the test, an empty array will be returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFilter(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\n//#endregion\n//#region useArrayFind/index.ts\n/**\n* Reactive `Array.find`\n*\n* @see https://vueuse.org/useArrayFind\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the first element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFind(list, fn) {\n\treturn computed(() => toValue(toValue(list).find((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayFindIndex/index.ts\n/**\n* Reactive `Array.findIndex`\n*\n* @see https://vueuse.org/useArrayFindIndex\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the index of the first element in the array that passes the test. Otherwise, \"-1\".\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindIndex(list, fn) {\n\treturn computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayFindLast/index.ts\nfunction findLast(arr, cb) {\n\tlet index = arr.length;\n\twhile (index-- > 0) if (cb(arr[index], index, arr)) return arr[index];\n}\n/**\n* Reactive `Array.findLast`\n*\n* @see https://vueuse.org/useArrayFindLast\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns the last element in the array that satisfies the provided testing function. Otherwise, undefined is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayFindLast(list, fn) {\n\treturn computed(() => toValue(!Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))));\n}\n\n//#endregion\n//#region useArrayIncludes/index.ts\nfunction isArrayIncludesOptions(obj) {\n\treturn isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\n/**\n* Reactive `Array.includes`\n*\n* @see https://vueuse.org/useArrayIncludes\n*\n* @returns true if the `value` is found in the array. Otherwise, false.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayIncludes(...args) {\n\tvar _comparator;\n\tconst list = args[0];\n\tconst value = args[1];\n\tlet comparator = args[2];\n\tlet formIndex = 0;\n\tif (isArrayIncludesOptions(comparator)) {\n\t\tvar _comparator$fromIndex;\n\t\tformIndex = (_comparator$fromIndex = comparator.fromIndex) !== null && _comparator$fromIndex !== void 0 ? _comparator$fromIndex : 0;\n\t\tcomparator = comparator.comparator;\n\t}\n\tif (typeof comparator === \"string\") {\n\t\tconst key = comparator;\n\t\tcomparator = (element, value$1) => element[key] === toValue(value$1);\n\t}\n\tcomparator = (_comparator = comparator) !== null && _comparator !== void 0 ? _comparator : ((element, value$1) => element === toValue(value$1));\n\treturn computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(toValue(element), toValue(value), index, toValue(array))));\n}\n\n//#endregion\n//#region useArrayJoin/index.ts\n/**\n* Reactive `Array.join`\n*\n* @see https://vueuse.org/useArrayJoin\n* @param list - the array was called upon.\n* @param separator - a string to separate each pair of adjacent elements of the array. If omitted, the array elements are separated with a comma (\",\").\n*\n* @returns a string with all array elements joined. If arr.length is 0, the empty string is returned.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayJoin(list, separator) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\n//#endregion\n//#region useArrayMap/index.ts\n/**\n* Reactive `Array.map`\n*\n* @see https://vueuse.org/useArrayMap\n* @param list - the array was called upon.\n* @param fn - a function that is called for every element of the given `list`. Each time `fn` executes, the returned value is added to the new array.\n*\n* @returns a new array with each element being the result of the callback function.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayMap(list, fn) {\n\treturn computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\n//#endregion\n//#region useArrayReduce/index.ts\n/**\n* Reactive `Array.reduce`\n*\n* @see https://vueuse.org/useArrayReduce\n* @param list - the array was called upon.\n* @param reducer - a \"reducer\" function.\n* @param args\n*\n* @returns the value that results from running the \"reducer\" callback function to completion over the entire array.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayReduce(list, reducer, ...args) {\n\tconst reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n\treturn computed(() => {\n\t\tconst resolved = toValue(list);\n\t\treturn args.length ? resolved.reduce(reduceCallback, typeof args[0] === \"function\" ? toValue(args[0]()) : toValue(args[0])) : resolved.reduce(reduceCallback);\n\t});\n}\n\n//#endregion\n//#region useArraySome/index.ts\n/**\n* Reactive `Array.some`\n*\n* @see https://vueuse.org/useArraySome\n* @param list - the array was called upon.\n* @param fn - a function to test each element.\n*\n* @returns **true** if the `fn` function returns a **truthy** value for any element from the array. Otherwise, **false**.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArraySome(list, fn) {\n\treturn computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\n//#endregion\n//#region useArrayUnique/index.ts\nfunction uniq(array) {\n\treturn Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n\treturn array.reduce((acc, v) => {\n\t\tif (!acc.some((x) => fn(v, x, array))) acc.push(v);\n\t\treturn acc;\n\t}, []);\n}\n/**\n* reactive unique array\n* @see https://vueuse.org/useArrayUnique\n* @param list - the array was called upon.\n* @param compareFn\n* @returns A computed ref that returns a unique array of items.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useArrayUnique(list, compareFn) {\n\treturn computed(() => {\n\t\tconst resolvedList = toValue(list).map((element) => toValue(element));\n\t\treturn compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n\t});\n}\n\n//#endregion\n//#region useCounter/index.ts\n/**\n* Basic counter with utility functions.\n*\n* @see https://vueuse.org/useCounter\n* @param [initialValue]\n* @param options\n*/\nfunction useCounter(initialValue = 0, options = {}) {\n\tlet _initialValue = unref(initialValue);\n\tconst count = shallowRef(initialValue);\n\tconst { max = Number.POSITIVE_INFINITY, min = Number.NEGATIVE_INFINITY } = options;\n\tconst inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n\tconst dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n\tconst get$1 = () => count.value;\n\tconst set$1 = (val) => count.value = Math.max(min, Math.min(max, val));\n\tconst reset = (val = _initialValue) => {\n\t\t_initialValue = val;\n\t\treturn set$1(val);\n\t};\n\treturn {\n\t\tcount: shallowReadonly(count),\n\t\tinc,\n\t\tdec,\n\t\tget: get$1,\n\t\tset: set$1,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useDateFormat/index.ts\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|z{1,4}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n\tlet m = hours < 12 ? \"AM\" : \"PM\";\n\tif (hasPeriod) m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n\treturn isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n\tconst suffixes = [\n\t\t\"th\",\n\t\t\"st\",\n\t\t\"nd\",\n\t\t\"rd\"\n\t];\n\tconst v = num % 100;\n\treturn num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n\tvar _options$customMeridi;\n\tconst years = date.getFullYear();\n\tconst month = date.getMonth();\n\tconst days = date.getDate();\n\tconst hours = date.getHours();\n\tconst minutes = date.getMinutes();\n\tconst seconds = date.getSeconds();\n\tconst milliseconds = date.getMilliseconds();\n\tconst day = date.getDay();\n\tconst meridiem = (_options$customMeridi = options.customMeridiem) !== null && _options$customMeridi !== void 0 ? _options$customMeridi : defaultMeridiem;\n\tconst stripTimeZone = (dateString) => {\n\t\tvar _dateString$split$;\n\t\treturn (_dateString$split$ = dateString.split(\" \")[1]) !== null && _dateString$split$ !== void 0 ? _dateString$split$ : \"\";\n\t};\n\tconst matches = {\n\t\tYo: () => formatOrdinal(years),\n\t\tYY: () => String(years).slice(-2),\n\t\tYYYY: () => years,\n\t\tM: () => month + 1,\n\t\tMo: () => formatOrdinal(month + 1),\n\t\tMM: () => `${month + 1}`.padStart(2, \"0\"),\n\t\tMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n\t\tMMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n\t\tD: () => String(days),\n\t\tDo: () => formatOrdinal(days),\n\t\tDD: () => `${days}`.padStart(2, \"0\"),\n\t\tH: () => String(hours),\n\t\tHo: () => formatOrdinal(hours),\n\t\tHH: () => `${hours}`.padStart(2, \"0\"),\n\t\th: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n\t\tho: () => formatOrdinal(hours % 12 || 12),\n\t\thh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n\t\tm: () => String(minutes),\n\t\tmo: () => formatOrdinal(minutes),\n\t\tmm: () => `${minutes}`.padStart(2, \"0\"),\n\t\ts: () => String(seconds),\n\t\tso: () => formatOrdinal(seconds),\n\t\tss: () => `${seconds}`.padStart(2, \"0\"),\n\t\tSSS: () => `${milliseconds}`.padStart(3, \"0\"),\n\t\td: () => day,\n\t\tdd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n\t\tddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n\t\tdddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n\t\tA: () => meridiem(hours, minutes),\n\t\tAA: () => meridiem(hours, minutes, false, true),\n\t\ta: () => meridiem(hours, minutes, true),\n\t\taa: () => meridiem(hours, minutes, true, true),\n\t\tz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"shortOffset\" })),\n\t\tzzzz: () => stripTimeZone(date.toLocaleDateString(toValue(options.locales), { timeZoneName: \"longOffset\" }))\n\t};\n\treturn formatStr.replace(REGEX_FORMAT, (match, $1) => {\n\t\tvar _ref, _matches$match;\n\t\treturn (_ref = $1 !== null && $1 !== void 0 ? $1 : (_matches$match = matches[match]) === null || _matches$match === void 0 ? void 0 : _matches$match.call(matches)) !== null && _ref !== void 0 ? _ref : match;\n\t});\n}\nfunction normalizeDate(date) {\n\tif (date === null) return /* @__PURE__ */ new Date(NaN);\n\tif (date === void 0) return /* @__PURE__ */ new Date();\n\tif (date instanceof Date) return new Date(date);\n\tif (typeof date === \"string\" && !/Z$/i.test(date)) {\n\t\tconst d = date.match(REGEX_PARSE);\n\t\tif (d) {\n\t\t\tconst m = d[2] - 1 || 0;\n\t\t\tconst ms = (d[7] || \"0\").substring(0, 3);\n\t\t\treturn new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n\t\t}\n\t}\n\treturn new Date(date);\n}\n/**\n* Get the formatted date according to the string of tokens passed in.\n*\n* @see https://vueuse.org/useDateFormat\n* @param date - The date to format, can either be a `Date` object, a timestamp, or a string\n* @param formatStr - The combination of tokens to format the date\n* @param options - UseDateFormatOptions\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n\treturn computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\n//#endregion\n//#region useIntervalFn/index.ts\n/**\n* Wrapper for `setInterval` with controls\n*\n* @see https://vueuse.org/useIntervalFn\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tlet timer = null;\n\tconst isActive = shallowRef(false);\n\tfunction clean() {\n\t\tif (timer) {\n\t\t\tclearInterval(timer);\n\t\t\ttimer = null;\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tclean();\n\t}\n\tfunction resume() {\n\t\tconst intervalValue = toValue(interval);\n\t\tif (intervalValue <= 0) return;\n\t\tisActive.value = true;\n\t\tif (immediateCallback) cb();\n\t\tclean();\n\t\tif (isActive.value) timer = setInterval(cb, intervalValue);\n\t}\n\tif (immediate && isClient) resume();\n\tif (isRef(interval) || typeof interval === \"function\") tryOnScopeDispose(watch(interval, () => {\n\t\tif (isActive.value && isClient) resume();\n\t}));\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: shallowReadonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useInterval/index.ts\nfunction useInterval(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, immediate = true, callback } = options;\n\tconst counter = shallowRef(0);\n\tconst update = () => counter.value += 1;\n\tconst reset = () => {\n\t\tcounter.value = 0;\n\t};\n\tconst controls = useIntervalFn(callback ? () => {\n\t\tupdate();\n\t\tcallback(counter.value);\n\t} : update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tcounter: shallowReadonly(counter),\n\t\treset,\n\t\t...controls\n\t};\n\telse return shallowReadonly(counter);\n}\n\n//#endregion\n//#region useLastChanged/index.ts\nfunction useLastChanged(source, options = {}) {\n\tvar _options$initialValue;\n\tconst ms = shallowRef((_options$initialValue = options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : null);\n\twatch(source, () => ms.value = timestamp(), options);\n\treturn shallowReadonly(ms);\n}\n\n//#endregion\n//#region useTimeoutFn/index.ts\n/**\n* Wrapper for `setTimeout` with controls.\n*\n* @param cb\n* @param interval\n* @param options\n*/\nfunction useTimeoutFn(cb, interval, options = {}) {\n\tconst { immediate = true, immediateCallback = false } = options;\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tfunction clear() {\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t}\n\tfunction stop() {\n\t\tisPending.value = false;\n\t\tclear();\n\t}\n\tfunction start(...args) {\n\t\tif (immediateCallback) cb();\n\t\tclear();\n\t\tisPending.value = true;\n\t\ttimer = setTimeout(() => {\n\t\t\tisPending.value = false;\n\t\t\ttimer = void 0;\n\t\t\tcb(...args);\n\t\t}, toValue(interval));\n\t}\n\tif (immediate) {\n\t\tisPending.value = true;\n\t\tif (isClient) start();\n\t}\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisPending: shallowReadonly(isPending),\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useTimeout/index.ts\nfunction useTimeout(interval = 1e3, options = {}) {\n\tconst { controls: exposeControls = false, callback } = options;\n\tconst controls = useTimeoutFn(callback !== null && callback !== void 0 ? callback : noop, interval, options);\n\tconst ready = computed(() => !controls.isPending.value);\n\tif (exposeControls) return {\n\t\tready,\n\t\t...controls\n\t};\n\telse return ready;\n}\n\n//#endregion\n//#region useToNumber/index.ts\n/**\n* Reactively convert a string ref to number.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToNumber(value, options = {}) {\n\tconst { method = \"parseFloat\", radix, nanToZero } = options;\n\treturn computed(() => {\n\t\tlet resolved = toValue(value);\n\t\tif (typeof method === \"function\") resolved = method(resolved);\n\t\telse if (typeof resolved === \"string\") resolved = Number[method](resolved, radix);\n\t\tif (nanToZero && Number.isNaN(resolved)) resolved = 0;\n\t\treturn resolved;\n\t});\n}\n\n//#endregion\n//#region useToString/index.ts\n/**\n* Reactively convert a ref to string.\n*\n* @see https://vueuse.org/useToString\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToString(value) {\n\treturn computed(() => `${toValue(value)}`);\n}\n\n//#endregion\n//#region useToggle/index.ts\n/**\n* A boolean ref with a toggler\n*\n* @see https://vueuse.org/useToggle\n* @param [initialValue]\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useToggle(initialValue = false, options = {}) {\n\tconst { truthyValue = true, falsyValue = false } = options;\n\tconst valueIsRef = isRef(initialValue);\n\tconst _value = shallowRef(initialValue);\n\tfunction toggle(value) {\n\t\tif (arguments.length) {\n\t\t\t_value.value = value;\n\t\t\treturn _value.value;\n\t\t} else {\n\t\t\tconst truthy = toValue(truthyValue);\n\t\t\t_value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n\t\t\treturn _value.value;\n\t\t}\n\t}\n\tif (valueIsRef) return toggle;\n\telse return [_value, toggle];\n}\n\n//#endregion\n//#region watchArray/index.ts\n/**\n* Watch for an array with additions and removals.\n*\n* @see https://vueuse.org/watchArray\n*/\nfunction watchArray(source, cb, options) {\n\tlet oldList = (options === null || options === void 0 ? void 0 : options.immediate) ? [] : [...typeof source === \"function\" ? source() : Array.isArray(source) ? source : toValue(source)];\n\treturn watch(source, (newList, _, onCleanup) => {\n\t\tconst oldListRemains = Array.from({ length: oldList.length });\n\t\tconst added = [];\n\t\tfor (const obj of newList) {\n\t\t\tlet found = false;\n\t\t\tfor (let i = 0; i < oldList.length; i++) if (!oldListRemains[i] && obj === oldList[i]) {\n\t\t\t\toldListRemains[i] = true;\n\t\t\t\tfound = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (!found) added.push(obj);\n\t\t}\n\t\tconst removed = oldList.filter((_$1, i) => !oldListRemains[i]);\n\t\tcb(newList, oldList, added, removed, onCleanup);\n\t\toldList = [...newList];\n\t}, options);\n}\n\n//#endregion\n//#region watchAtMost/index.ts\nfunction watchAtMost(source, cb, options) {\n\tconst { count,...watchOptions } = options;\n\tconst current = shallowRef(0);\n\tconst { stop, resume, pause } = watchWithFilter(source, (...args) => {\n\t\tcurrent.value += 1;\n\t\tif (current.value >= toValue(count)) nextTick(() => stop());\n\t\tcb(...args);\n\t}, watchOptions);\n\treturn {\n\t\tcount: current,\n\t\tstop,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region watchDebounced/index.ts\nfunction watchDebounced(source, cb, options = {}) {\n\tconst { debounce = 0, maxWait = void 0,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: debounceFilter(debounce, { maxWait })\n\t});\n}\n/** @deprecated use `watchDebounced` instead */\nconst debouncedWatch = watchDebounced;\n\n//#endregion\n//#region watchDeep/index.ts\n/**\n* Shorthand for watching value with {deep: true}\n*\n* @see https://vueuse.org/watchDeep\n*/\nfunction watchDeep(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tdeep: true\n\t});\n}\n\n//#endregion\n//#region watchIgnorable/index.ts\nfunction watchIgnorable(source, cb, options = {}) {\n\tconst { eventFilter = bypassFilter,...watchOptions } = options;\n\tconst filteredCb = createFilterWrapper(eventFilter, cb);\n\tlet ignoreUpdates;\n\tlet ignorePrevAsyncUpdates;\n\tlet stop;\n\tif (watchOptions.flush === \"sync\") {\n\t\tlet ignore = false;\n\t\tignorePrevAsyncUpdates = () => {};\n\t\tignoreUpdates = (updater) => {\n\t\t\tignore = true;\n\t\t\tupdater();\n\t\t\tignore = false;\n\t\t};\n\t\tstop = watch(source, (...args) => {\n\t\t\tif (!ignore) filteredCb(...args);\n\t\t}, watchOptions);\n\t} else {\n\t\tconst disposables = [];\n\t\tlet ignoreCounter = 0;\n\t\tlet syncCounter = 0;\n\t\tignorePrevAsyncUpdates = () => {\n\t\t\tignoreCounter = syncCounter;\n\t\t};\n\t\tdisposables.push(watch(source, () => {\n\t\t\tsyncCounter++;\n\t\t}, {\n\t\t\t...watchOptions,\n\t\t\tflush: \"sync\"\n\t\t}));\n\t\tignoreUpdates = (updater) => {\n\t\t\tconst syncCounterPrev = syncCounter;\n\t\t\tupdater();\n\t\t\tignoreCounter += syncCounter - syncCounterPrev;\n\t\t};\n\t\tdisposables.push(watch(source, (...args) => {\n\t\t\tconst ignore = ignoreCounter > 0 && ignoreCounter === syncCounter;\n\t\t\tignoreCounter = 0;\n\t\t\tsyncCounter = 0;\n\t\t\tif (ignore) return;\n\t\t\tfilteredCb(...args);\n\t\t}, watchOptions));\n\t\tstop = () => {\n\t\t\tdisposables.forEach((fn) => fn());\n\t\t};\n\t}\n\treturn {\n\t\tstop,\n\t\tignoreUpdates,\n\t\tignorePrevAsyncUpdates\n\t};\n}\n/** @deprecated use `watchIgnorable` instead */\nconst ignorableWatch = watchIgnorable;\n\n//#endregion\n//#region watchImmediate/index.ts\n/**\n* Shorthand for watching value with {immediate: true}\n*\n* @see https://vueuse.org/watchImmediate\n*/\nfunction watchImmediate(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\timmediate: true\n\t});\n}\n\n//#endregion\n//#region watchOnce/index.ts\n/**\n* Shorthand for watching value with { once: true }\n*\n* @see https://vueuse.org/watchOnce\n*/\nfunction watchOnce(source, cb, options) {\n\treturn watch(source, cb, {\n\t\t...options,\n\t\tonce: true\n\t});\n}\n\n//#endregion\n//#region watchThrottled/index.ts\nfunction watchThrottled(source, cb, options = {}) {\n\tconst { throttle = 0, trailing = true, leading = true,...watchOptions } = options;\n\treturn watchWithFilter(source, cb, {\n\t\t...watchOptions,\n\t\teventFilter: throttleFilter(throttle, trailing, leading)\n\t});\n}\n/** @deprecated use `watchThrottled` instead */\nconst throttledWatch = watchThrottled;\n\n//#endregion\n//#region watchTriggerable/index.ts\nfunction watchTriggerable(source, cb, options = {}) {\n\tlet cleanupFn;\n\tfunction onEffect() {\n\t\tif (!cleanupFn) return;\n\t\tconst fn = cleanupFn;\n\t\tcleanupFn = void 0;\n\t\tfn();\n\t}\n\t/** Register the function `cleanupFn` */\n\tfunction onCleanup(callback) {\n\t\tcleanupFn = callback;\n\t}\n\tconst _cb = (value, oldValue) => {\n\t\tonEffect();\n\t\treturn cb(value, oldValue, onCleanup);\n\t};\n\tconst res = watchIgnorable(source, _cb, options);\n\tconst { ignoreUpdates } = res;\n\tconst trigger = () => {\n\t\tlet res$1;\n\t\tignoreUpdates(() => {\n\t\t\tres$1 = _cb(getWatchSources(source), getOldValue(source));\n\t\t});\n\t\treturn res$1;\n\t};\n\treturn {\n\t\t...res,\n\t\ttrigger\n\t};\n}\nfunction getWatchSources(sources) {\n\tif (isReactive(sources)) return sources;\n\tif (Array.isArray(sources)) return sources.map((item) => toValue(item));\n\treturn toValue(sources);\n}\nfunction getOldValue(source) {\n\treturn Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\n//#endregion\n//#region whenever/index.ts\n/**\n* Shorthand for watching value to be truthy\n*\n* @see https://vueuse.org/whenever\n*/\nfunction whenever(source, cb, options) {\n\tconst stop = watch(source, (v, ov, onInvalidate) => {\n\t\tif (v) {\n\t\t\tif (options === null || options === void 0 ? void 0 : options.once) nextTick(() => stop());\n\t\t\tcb(v, ov, onInvalidate);\n\t\t}\n\t}, {\n\t\t...options,\n\t\tonce: false\n\t});\n\treturn stop;\n}\n\n//#endregion\nexport { assert, autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, createReactiveFn, createRef, createSharedComposable, createSingletonPromise, debounceFilter, debouncedRef, debouncedWatch, eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refManualReset, refThrottled, refWithControl, set, syncRef, syncRefs, throttleFilter, throttledRef, throttledWatch, timestamp, toArray, toReactive, toRef, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };","import { bypassFilter, camelize, clamp, computedWithControl, containsProp, createEventHook, createFilterWrapper, createRef, createSingletonPromise, debounceFilter, hasOwn, identity, increaseWithUnit, injectLocal, isClient, isDef, isIOS, isObject, isWorker, makeDestructurable, noop, notNullish, objectEntries, objectOmit, objectPick, pausableFilter, pausableWatch, promiseTimeout, provideLocal, pxValue, syncRef, throttleFilter, timestamp, toArray, toRef, toRefs, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useDebounceFn, useIntervalFn, useThrottleFn, useTimeoutFn, watchIgnorable, watchImmediate, watchOnce, watchWithFilter, whenever } from \"@vueuse/shared\";\nimport { Fragment, TransitionGroup, computed, customRef, defineComponent, getCurrentInstance, getCurrentScope, h, hasInjectionContext, inject, isReadonly, isRef, markRaw, nextTick, onBeforeUpdate, onMounted, onUpdated, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, toRaw, toValue, unref, watch, watchEffect } from \"vue\";\n\nexport * from \"@vueuse/shared\"\n\n//#region computedAsync/index.ts\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n\tvar _globalThis$reportErr;\n\tlet options;\n\tif (isRef(optionsOrRef)) options = { evaluating: optionsOrRef };\n\telse options = optionsOrRef || {};\n\tconst { lazy = false, flush = \"sync\", evaluating = void 0, shallow = true, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop } = options;\n\tconst started = shallowRef(!lazy);\n\tconst current = shallow ? shallowRef(initialState) : ref(initialState);\n\tlet counter = 0;\n\twatchEffect(async (onInvalidate) => {\n\t\tif (!started.value) return;\n\t\tcounter++;\n\t\tconst counterAtBeginning = counter;\n\t\tlet hasFinished = false;\n\t\tif (evaluating) Promise.resolve().then(() => {\n\t\t\tevaluating.value = true;\n\t\t});\n\t\ttry {\n\t\t\tconst result = await evaluationCallback((cancelCallback) => {\n\t\t\t\tonInvalidate(() => {\n\t\t\t\t\tif (evaluating) evaluating.value = false;\n\t\t\t\t\tif (!hasFinished) cancelCallback();\n\t\t\t\t});\n\t\t\t});\n\t\t\tif (counterAtBeginning === counter) current.value = result;\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (evaluating && counterAtBeginning === counter) evaluating.value = false;\n\t\t\thasFinished = true;\n\t\t}\n\t}, { flush });\n\tif (lazy) return computed(() => {\n\t\tstarted.value = true;\n\t\treturn current.value;\n\t});\n\telse return current;\n}\n/** @deprecated use `computedAsync` instead */\nconst asyncComputed = computedAsync;\n\n//#endregion\n//#region computedInject/index.ts\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n\tlet source = inject(key);\n\tif (defaultSource) source = inject(key, defaultSource);\n\tif (treatDefaultAsFactory) source = inject(key, defaultSource, treatDefaultAsFactory);\n\tif (typeof options === \"function\") return computed((oldValue) => options(source, oldValue));\n\telse return computed({\n\t\tget: (oldValue) => options.get(source, oldValue),\n\t\tset: options.set\n\t});\n}\n\n//#endregion\n//#region createReusableTemplate/index.ts\n/**\n* This function creates `define` and `reuse` components in pair,\n* It also allow to pass a generic to bind with type.\n*\n* @see https://vueuse.org/createReusableTemplate\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createReusableTemplate(options = {}) {\n\tconst { inheritAttrs = true } = options;\n\tconst render = shallowRef();\n\tconst define = defineComponent({ setup(_, { slots }) {\n\t\treturn () => {\n\t\t\trender.value = slots.default;\n\t\t};\n\t} });\n\tconst reuse = defineComponent({\n\t\tinheritAttrs,\n\t\tprops: options.props,\n\t\tsetup(props, { attrs, slots }) {\n\t\t\treturn () => {\n\t\t\t\tvar _render$value;\n\t\t\t\tif (!render.value && true) throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n\t\t\t\tconst vnode = (_render$value = render.value) === null || _render$value === void 0 ? void 0 : _render$value.call(render, {\n\t\t\t\t\t...options.props == null ? keysToCamelKebabCase(attrs) : props,\n\t\t\t\t\t$slots: slots\n\t\t\t\t});\n\t\t\t\treturn inheritAttrs && (vnode === null || vnode === void 0 ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n\t\t\t};\n\t\t}\n\t});\n\treturn makeDestructurable({\n\t\tdefine,\n\t\treuse\n\t}, [define, reuse]);\n}\nfunction keysToCamelKebabCase(obj) {\n\tconst newObj = {};\n\tfor (const key in obj) newObj[camelize(key)] = obj[key];\n\treturn newObj;\n}\n\n//#endregion\n//#region createTemplatePromise/index.ts\n/**\n* Creates a template promise component.\n*\n* @see https://vueuse.org/createTemplatePromise\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createTemplatePromise(options = {}) {\n\tlet index = 0;\n\tconst instances = ref([]);\n\tfunction create(...args) {\n\t\tconst props = shallowReactive({\n\t\t\tkey: index++,\n\t\t\targs,\n\t\t\tpromise: void 0,\n\t\t\tresolve: () => {},\n\t\t\treject: () => {},\n\t\t\tisResolving: false,\n\t\t\toptions\n\t\t});\n\t\tinstances.value.push(props);\n\t\tprops.promise = new Promise((_resolve, _reject) => {\n\t\t\tprops.resolve = (v) => {\n\t\t\t\tprops.isResolving = true;\n\t\t\t\treturn _resolve(v);\n\t\t\t};\n\t\t\tprops.reject = _reject;\n\t\t}).finally(() => {\n\t\t\tprops.promise = void 0;\n\t\t\tconst index$1 = instances.value.indexOf(props);\n\t\t\tif (index$1 !== -1) instances.value.splice(index$1, 1);\n\t\t});\n\t\treturn props.promise;\n\t}\n\tfunction start(...args) {\n\t\tif (options.singleton && instances.value.length > 0) return instances.value[0].promise;\n\t\treturn create(...args);\n\t}\n\tconst component = defineComponent((_, { slots }) => {\n\t\tconst renderList = () => instances.value.map((props) => {\n\t\t\tvar _slots$default;\n\t\t\treturn h(Fragment, { key: props.key }, (_slots$default = slots.default) === null || _slots$default === void 0 ? void 0 : _slots$default.call(slots, props));\n\t\t});\n\t\tif (options.transition) return () => h(TransitionGroup, options.transition, renderList);\n\t\treturn renderList;\n\t});\n\tcomponent.start = start;\n\treturn component;\n}\n\n//#endregion\n//#region createUnrefFn/index.ts\n/**\n* Make a plain function accepting ref and raw values as arguments.\n* Returns the same value the unconverted function returns, with proper typing.\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction createUnrefFn(fn) {\n\treturn function(...args) {\n\t\treturn fn.apply(this, args.map((i) => toValue(i)));\n\t};\n}\n\n//#endregion\n//#region _configurable.ts\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\n//#endregion\n//#region unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n\n//#endregion\n//#region useEventListener/index.ts\nfunction useEventListener(...args) {\n\tconst cleanups = [];\n\tconst cleanup = () => {\n\t\tcleanups.forEach((fn) => fn());\n\t\tcleanups.length = 0;\n\t};\n\tconst register = (el, event, listener, options) => {\n\t\tel.addEventListener(event, listener, options);\n\t\treturn () => el.removeEventListener(event, listener, options);\n\t};\n\tconst firstParamTargets = computed(() => {\n\t\tconst test = toArray(toValue(args[0])).filter((e) => e != null);\n\t\treturn test.every((e) => typeof e !== \"string\") ? test : void 0;\n\t});\n\tconst stopWatch = watchImmediate(() => {\n\t\tvar _firstParamTargets$va, _firstParamTargets$va2;\n\t\treturn [\n\t\t\t(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),\n\t\t\ttoArray(toValue(firstParamTargets.value ? args[1] : args[0])),\n\t\t\ttoArray(unref(firstParamTargets.value ? args[2] : args[1])),\n\t\t\ttoValue(firstParamTargets.value ? args[3] : args[2])\n\t\t];\n\t}, ([raw_targets, raw_events, raw_listeners, raw_options]) => {\n\t\tcleanup();\n\t\tif (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;\n\t\tconst optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;\n\t\tcleanups.push(...raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone)))));\n\t}, { flush: \"post\" });\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(cleanup);\n\treturn stop;\n}\n\n//#endregion\n//#region onClickOutside/index.ts\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n\tconst { window: window$1 = defaultWindow, ignore = [], capture = true, detectIframe = false, controls = false } = options;\n\tif (!window$1) return controls ? {\n\t\tstop: noop,\n\t\tcancel: noop,\n\t\ttrigger: noop\n\t} : noop;\n\tif (isIOS && !_iOSWorkaround) {\n\t\t_iOSWorkaround = true;\n\t\tconst listenerOptions = { passive: true };\n\t\tArray.from(window$1.document.body.children).forEach((el) => el.addEventListener(\"click\", noop, listenerOptions));\n\t\twindow$1.document.documentElement.addEventListener(\"click\", noop, listenerOptions);\n\t}\n\tlet shouldListen = true;\n\tconst shouldIgnore = (event) => {\n\t\treturn toValue(ignore).some((target$1) => {\n\t\t\tif (typeof target$1 === \"string\") return Array.from(window$1.document.querySelectorAll(target$1)).some((el) => el === event.target || event.composedPath().includes(el));\n\t\t\telse {\n\t\t\t\tconst el = unrefElement(target$1);\n\t\t\t\treturn el && (event.target === el || event.composedPath().includes(el));\n\t\t\t}\n\t\t});\n\t};\n\t/**\n\t* Determines if the given target has multiple root elements.\n\t* Referenced from: https://github.com/vuejs/test-utils/blob/ccb460be55f9f6be05ab708500a41ec8adf6f4bc/src/vue-wrapper.ts#L21\n\t*/\n\tfunction hasMultipleRoots(target$1) {\n\t\tconst vm = toValue(target$1);\n\t\treturn vm && vm.$.subTree.shapeFlag === 16;\n\t}\n\tfunction checkMultipleRoots(target$1, event) {\n\t\tconst vm = toValue(target$1);\n\t\tconst children = vm.$.subTree && vm.$.subTree.children;\n\t\tif (children == null || !Array.isArray(children)) return false;\n\t\treturn children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n\t}\n\tconst listener = (event) => {\n\t\tconst el = unrefElement(target);\n\t\tif (event.target == null) return;\n\t\tif (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event)) return;\n\t\tif (!el || el === event.target || event.composedPath().includes(el)) return;\n\t\tif (\"detail\" in event && event.detail === 0) shouldListen = !shouldIgnore(event);\n\t\tif (!shouldListen) {\n\t\t\tshouldListen = true;\n\t\t\treturn;\n\t\t}\n\t\thandler(event);\n\t};\n\tlet isProcessingClick = false;\n\tconst cleanup = [\n\t\tuseEventListener(window$1, \"click\", (event) => {\n\t\t\tif (!isProcessingClick) {\n\t\t\t\tisProcessingClick = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tisProcessingClick = false;\n\t\t\t\t}, 0);\n\t\t\t\tlistener(event);\n\t\t\t}\n\t\t}, {\n\t\t\tpassive: true,\n\t\t\tcapture\n\t\t}),\n\t\tuseEventListener(window$1, \"pointerdown\", (e) => {\n\t\t\tconst el = unrefElement(target);\n\t\t\tshouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n\t\t}, { passive: true }),\n\t\tdetectIframe && useEventListener(window$1, \"blur\", (event) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tvar _window$document$acti;\n\t\t\t\tconst el = unrefElement(target);\n\t\t\t\tif (((_window$document$acti = window$1.document.activeElement) === null || _window$document$acti === void 0 ? void 0 : _window$document$acti.tagName) === \"IFRAME\" && !(el === null || el === void 0 ? void 0 : el.contains(window$1.document.activeElement))) handler(event);\n\t\t\t}, 0);\n\t\t}, { passive: true })\n\t].filter(Boolean);\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\tif (controls) return {\n\t\tstop,\n\t\tcancel: () => {\n\t\t\tshouldListen = false;\n\t\t},\n\t\ttrigger: (event) => {\n\t\t\tshouldListen = true;\n\t\t\tlistener(event);\n\t\t\tshouldListen = false;\n\t\t}\n\t};\n\treturn stop;\n}\n\n//#endregion\n//#region useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n\n//#endregion\n//#region useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n\n//#endregion\n//#region useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"MutationObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n\n//#endregion\n//#region onElementRemoval/index.ts\n/**\n* Fires when the element or any element containing it is removed.\n*\n* @param target\n* @param callback\n* @param options\n*/\nfunction onElementRemoval(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow, document: document$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.document, flush = \"sync\" } = options;\n\tif (!window$1 || !document$1) return noop;\n\tlet stopFn;\n\tconst cleanupAndUpdate = (fn) => {\n\t\tstopFn === null || stopFn === void 0 || stopFn();\n\t\tstopFn = fn;\n\t};\n\tconst stopWatch = watchEffect(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (el) {\n\t\t\tconst { stop } = useMutationObserver(document$1, (mutationsList) => {\n\t\t\t\tif (mutationsList.map((mutation) => [...mutation.removedNodes]).flat().some((node) => node === el || node.contains(el))) callback(mutationsList);\n\t\t\t}, {\n\t\t\t\twindow: window$1,\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true\n\t\t\t});\n\t\t\tcleanupAndUpdate(stop);\n\t\t}\n\t}, { flush });\n\tconst stopHandle = () => {\n\t\tstopWatch();\n\t\tcleanupAndUpdate();\n\t};\n\ttryOnScopeDispose(stopHandle);\n\treturn stopHandle;\n}\n\n//#endregion\n//#region onKeyStroke/index.ts\nfunction createKeyPredicate(keyFilter) {\n\tif (typeof keyFilter === \"function\") return keyFilter;\n\telse if (typeof keyFilter === \"string\") return (event) => event.key === keyFilter;\n\telse if (Array.isArray(keyFilter)) return (event) => keyFilter.includes(event.key);\n\treturn () => true;\n}\nfunction onKeyStroke(...args) {\n\tlet key;\n\tlet handler;\n\tlet options = {};\n\tif (args.length === 3) {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t\toptions = args[2];\n\t} else if (args.length === 2) if (typeof args[1] === \"object\") {\n\t\tkey = true;\n\t\thandler = args[0];\n\t\toptions = args[1];\n\t} else {\n\t\tkey = args[0];\n\t\thandler = args[1];\n\t}\n\telse {\n\t\tkey = true;\n\t\thandler = args[0];\n\t}\n\tconst { target = defaultWindow, eventName = \"keydown\", passive = false, dedupe = false } = options;\n\tconst predicate = createKeyPredicate(key);\n\tconst listener = (e) => {\n\t\tif (e.repeat && toValue(dedupe)) return;\n\t\tif (predicate(e)) handler(e);\n\t};\n\treturn useEventListener(target, eventName, listener, passive);\n}\n/**\n* Listen to the keydown event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyDown(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keydown\"\n\t});\n}\n/**\n* Listen to the keypress event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyPressed(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keypress\"\n\t});\n}\n/**\n* Listen to the keyup event of the given key.\n*\n* @see https://vueuse.org/onKeyStroke\n* @param key\n* @param handler\n* @param options\n*/\nfunction onKeyUp(key, handler, options = {}) {\n\treturn onKeyStroke(key, handler, {\n\t\t...options,\n\t\teventName: \"keyup\"\n\t});\n}\n\n//#endregion\n//#region onLongPress/index.ts\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n\tvar _options$modifiers10, _options$modifiers11;\n\tconst elementRef = computed(() => unrefElement(target));\n\tlet timeout;\n\tlet posStart;\n\tlet startTimestamp;\n\tlet hasLongPressed = false;\n\tfunction clear() {\n\t\tif (timeout) {\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = void 0;\n\t\t}\n\t\tposStart = void 0;\n\t\tstartTimestamp = void 0;\n\t\thasLongPressed = false;\n\t}\n\tfunction getDelay(ev) {\n\t\tconst delay = options === null || options === void 0 ? void 0 : options.delay;\n\t\tif (typeof delay === \"function\") return delay(ev);\n\t\treturn delay !== null && delay !== void 0 ? delay : DEFAULT_DELAY;\n\t}\n\tfunction onRelease(ev) {\n\t\tvar _options$modifiers, _options$modifiers2, _options$modifiers3;\n\t\tconst [_startTimestamp, _posStart, _hasLongPressed] = [\n\t\t\tstartTimestamp,\n\t\t\tposStart,\n\t\t\thasLongPressed\n\t\t];\n\t\tclear();\n\t\tif (!(options === null || options === void 0 ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp) return;\n\t\tif ((options === null || options === void 0 || (_options$modifiers = options.modifiers) === null || _options$modifiers === void 0 ? void 0 : _options$modifiers.self) && ev.target !== elementRef.value) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers2 = options.modifiers) === null || _options$modifiers2 === void 0 ? void 0 : _options$modifiers2.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers3 = options.modifiers) === null || _options$modifiers3 === void 0 ? void 0 : _options$modifiers3.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - _posStart.x;\n\t\tconst dy = ev.y - _posStart.y;\n\t\tconst distance = Math.sqrt(dx * dx + dy * dy);\n\t\toptions.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n\t}\n\tfunction onDown(ev) {\n\t\tvar _options$modifiers4, _options$modifiers5, _options$modifiers6;\n\t\tif ((options === null || options === void 0 || (_options$modifiers4 = options.modifiers) === null || _options$modifiers4 === void 0 ? void 0 : _options$modifiers4.self) && ev.target !== elementRef.value) return;\n\t\tclear();\n\t\tif (options === null || options === void 0 || (_options$modifiers5 = options.modifiers) === null || _options$modifiers5 === void 0 ? void 0 : _options$modifiers5.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers6 = options.modifiers) === null || _options$modifiers6 === void 0 ? void 0 : _options$modifiers6.stop) ev.stopPropagation();\n\t\tposStart = {\n\t\t\tx: ev.x,\n\t\t\ty: ev.y\n\t\t};\n\t\tstartTimestamp = ev.timeStamp;\n\t\ttimeout = setTimeout(() => {\n\t\t\thasLongPressed = true;\n\t\t\thandler(ev);\n\t\t}, getDelay(ev));\n\t}\n\tfunction onMove(ev) {\n\t\tvar _options$modifiers7, _options$modifiers8, _options$modifiers9, _options$distanceThre;\n\t\tif ((options === null || options === void 0 || (_options$modifiers7 = options.modifiers) === null || _options$modifiers7 === void 0 ? void 0 : _options$modifiers7.self) && ev.target !== elementRef.value) return;\n\t\tif (!posStart || (options === null || options === void 0 ? void 0 : options.distanceThreshold) === false) return;\n\t\tif (options === null || options === void 0 || (_options$modifiers8 = options.modifiers) === null || _options$modifiers8 === void 0 ? void 0 : _options$modifiers8.prevent) ev.preventDefault();\n\t\tif (options === null || options === void 0 || (_options$modifiers9 = options.modifiers) === null || _options$modifiers9 === void 0 ? void 0 : _options$modifiers9.stop) ev.stopPropagation();\n\t\tconst dx = ev.x - posStart.x;\n\t\tconst dy = ev.y - posStart.y;\n\t\tif (Math.sqrt(dx * dx + dy * dy) >= ((_options$distanceThre = options === null || options === void 0 ? void 0 : options.distanceThreshold) !== null && _options$distanceThre !== void 0 ? _options$distanceThre : DEFAULT_THRESHOLD)) clear();\n\t}\n\tconst listenerOptions = {\n\t\tcapture: options === null || options === void 0 || (_options$modifiers10 = options.modifiers) === null || _options$modifiers10 === void 0 ? void 0 : _options$modifiers10.capture,\n\t\tonce: options === null || options === void 0 || (_options$modifiers11 = options.modifiers) === null || _options$modifiers11 === void 0 ? void 0 : _options$modifiers11.once\n\t};\n\tconst cleanup = [\n\t\tuseEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n\t\tuseEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n\t\tuseEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n\t];\n\tconst stop = () => cleanup.forEach((fn) => fn());\n\treturn stop;\n}\n\n//#endregion\n//#region onStartTyping/index.ts\nfunction isFocusedElementEditable() {\n\tconst { activeElement, body } = document;\n\tif (!activeElement) return false;\n\tif (activeElement === body) return false;\n\tswitch (activeElement.tagName) {\n\t\tcase \"INPUT\":\n\t\tcase \"TEXTAREA\": return true;\n\t}\n\treturn activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({ keyCode, metaKey, ctrlKey, altKey }) {\n\tif (metaKey || ctrlKey || altKey) return false;\n\tif (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105) return true;\n\tif (keyCode >= 65 && keyCode <= 90) return true;\n\treturn false;\n}\n/**\n* Fires when users start typing on non-editable elements.\n*\n* @see https://vueuse.org/onStartTyping\n* @param callback\n* @param options\n*/\nfunction onStartTyping(callback, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst keydown = (event) => {\n\t\tif (!isFocusedElementEditable() && isTypedCharValid(event)) callback(event);\n\t};\n\tif (document$1) useEventListener(document$1, \"keydown\", keydown, { passive: true });\n}\n\n//#endregion\n//#region templateRef/index.ts\n/**\n* @deprecated Use Vue's built-in `useTemplateRef` instead.\n*\n* Shorthand for binding ref to template element.\n*\n* @see https://vueuse.org/templateRef\n* @param key\n* @param initialValue\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction templateRef(key, initialValue = null) {\n\tconst instance = getCurrentInstance();\n\tlet _trigger = () => {};\n\tconst element = customRef((track, trigger) => {\n\t\t_trigger = trigger;\n\t\treturn {\n\t\t\tget() {\n\t\t\t\tvar _instance$proxy$$refs, _instance$proxy;\n\t\t\t\ttrack();\n\t\t\t\treturn (_instance$proxy$$refs = instance === null || instance === void 0 || (_instance$proxy = instance.proxy) === null || _instance$proxy === void 0 ? void 0 : _instance$proxy.$refs[key]) !== null && _instance$proxy$$refs !== void 0 ? _instance$proxy$$refs : initialValue;\n\t\t\t},\n\t\t\tset() {}\n\t\t};\n\t});\n\ttryOnMounted(_trigger);\n\tonUpdated(_trigger);\n\treturn element;\n}\n\n//#endregion\n//#region useActiveElement/index.ts\n/**\n* Reactive `document.activeElement`\n*\n* @see https://vueuse.org/useActiveElement\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useActiveElement(options = {}) {\n\tvar _options$document;\n\tconst { window: window$1 = defaultWindow, deep = true, triggerOnRemoval = false } = options;\n\tconst document$1 = (_options$document = options.document) !== null && _options$document !== void 0 ? _options$document : window$1 === null || window$1 === void 0 ? void 0 : window$1.document;\n\tconst getDeepActiveElement = () => {\n\t\tlet element = document$1 === null || document$1 === void 0 ? void 0 : document$1.activeElement;\n\t\tif (deep) {\n\t\t\tvar _element$shadowRoot;\n\t\t\twhile (element === null || element === void 0 ? void 0 : element.shadowRoot) element = element === null || element === void 0 || (_element$shadowRoot = element.shadowRoot) === null || _element$shadowRoot === void 0 ? void 0 : _element$shadowRoot.activeElement;\n\t\t}\n\t\treturn element;\n\t};\n\tconst activeElement = shallowRef();\n\tconst trigger = () => {\n\t\tactiveElement.value = getDeepActiveElement();\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t};\n\t\tuseEventListener(window$1, \"blur\", (event) => {\n\t\t\tif (event.relatedTarget !== null) return;\n\t\t\ttrigger();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"focus\", trigger, listenerOptions);\n\t}\n\tif (triggerOnRemoval) onElementRemoval(activeElement, trigger, { document: document$1 });\n\ttrigger();\n\treturn activeElement;\n}\n\n//#endregion\n//#region useRafFn/index.ts\n/**\n* Call function on every `requestAnimationFrame`. With controls of pausing and resuming.\n*\n* @see https://vueuse.org/useRafFn\n* @param fn\n* @param options\n*/\nfunction useRafFn(fn, options = {}) {\n\tconst { immediate = true, fpsLimit = void 0, window: window$1 = defaultWindow, once = false } = options;\n\tconst isActive = shallowRef(false);\n\tconst intervalLimit = computed(() => {\n\t\treturn fpsLimit ? 1e3 / toValue(fpsLimit) : null;\n\t});\n\tlet previousFrameTimestamp = 0;\n\tlet rafId = null;\n\tfunction loop(timestamp$1) {\n\t\tif (!isActive.value || !window$1) return;\n\t\tif (!previousFrameTimestamp) previousFrameTimestamp = timestamp$1;\n\t\tconst delta = timestamp$1 - previousFrameTimestamp;\n\t\tif (intervalLimit.value && delta < intervalLimit.value) {\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t\treturn;\n\t\t}\n\t\tpreviousFrameTimestamp = timestamp$1;\n\t\tfn({\n\t\t\tdelta,\n\t\t\ttimestamp: timestamp$1\n\t\t});\n\t\tif (once) {\n\t\t\tisActive.value = false;\n\t\t\trafId = null;\n\t\t\treturn;\n\t\t}\n\t\trafId = window$1.requestAnimationFrame(loop);\n\t}\n\tfunction resume() {\n\t\tif (!isActive.value && window$1) {\n\t\t\tisActive.value = true;\n\t\t\tpreviousFrameTimestamp = 0;\n\t\t\trafId = window$1.requestAnimationFrame(loop);\n\t\t}\n\t}\n\tfunction pause() {\n\t\tisActive.value = false;\n\t\tif (rafId != null && window$1) {\n\t\t\twindow$1.cancelAnimationFrame(rafId);\n\t\t\trafId = null;\n\t\t}\n\t}\n\tif (immediate) resume();\n\ttryOnScopeDispose(pause);\n\treturn {\n\t\tisActive: readonly(isActive),\n\t\tpause,\n\t\tresume\n\t};\n}\n\n//#endregion\n//#region useAnimate/index.ts\n/**\n* Reactive Web Animations API\n*\n* @see https://vueuse.org/useAnimate\n* @param target\n* @param keyframes\n* @param options\n*/\nfunction useAnimate(target, keyframes, options) {\n\tlet config;\n\tlet animateOptions;\n\tif (isObject(options)) {\n\t\tconfig = options;\n\t\tanimateOptions = objectOmit(options, [\n\t\t\t\"window\",\n\t\t\t\"immediate\",\n\t\t\t\"commitStyles\",\n\t\t\t\"persist\",\n\t\t\t\"onReady\",\n\t\t\t\"onError\"\n\t\t]);\n\t} else {\n\t\tconfig = { duration: options };\n\t\tanimateOptions = options;\n\t}\n\tconst { window: window$1 = defaultWindow, immediate = true, commitStyles, persist, playbackRate: _playbackRate = 1, onReady, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = config;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && HTMLElement && \"animate\" in HTMLElement.prototype);\n\tconst animate = shallowRef(void 0);\n\tconst store = shallowReactive({\n\t\tstartTime: null,\n\t\tcurrentTime: null,\n\t\ttimeline: null,\n\t\tplaybackRate: _playbackRate,\n\t\tpending: false,\n\t\tplayState: immediate ? \"idle\" : \"paused\",\n\t\treplaceState: \"active\"\n\t});\n\tconst pending = computed(() => store.pending);\n\tconst playState = computed(() => store.playState);\n\tconst replaceState = computed(() => store.replaceState);\n\tconst startTime = computed({\n\t\tget() {\n\t\t\treturn store.startTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.startTime = value;\n\t\t\tif (animate.value) animate.value.startTime = value;\n\t\t}\n\t});\n\tconst currentTime = computed({\n\t\tget() {\n\t\t\treturn store.currentTime;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.currentTime = value;\n\t\t\tif (animate.value) {\n\t\t\t\tanimate.value.currentTime = value;\n\t\t\t\tsyncResume();\n\t\t\t}\n\t\t}\n\t});\n\tconst timeline = computed({\n\t\tget() {\n\t\t\treturn store.timeline;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.timeline = value;\n\t\t\tif (animate.value) animate.value.timeline = value;\n\t\t}\n\t});\n\tconst playbackRate = computed({\n\t\tget() {\n\t\t\treturn store.playbackRate;\n\t\t},\n\t\tset(value) {\n\t\t\tstore.playbackRate = value;\n\t\t\tif (animate.value) animate.value.playbackRate = value;\n\t\t}\n\t});\n\tconst play = () => {\n\t\tif (animate.value) try {\n\t\t\tanimate.value.play();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t\telse update();\n\t};\n\tconst pause = () => {\n\t\ttry {\n\t\t\tvar _animate$value;\n\t\t\t(_animate$value = animate.value) === null || _animate$value === void 0 || _animate$value.pause();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst reverse = () => {\n\t\tif (!animate.value) update();\n\t\ttry {\n\t\t\tvar _animate$value2;\n\t\t\t(_animate$value2 = animate.value) === null || _animate$value2 === void 0 || _animate$value2.reverse();\n\t\t\tsyncResume();\n\t\t} catch (e) {\n\t\t\tsyncPause();\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst finish = () => {\n\t\ttry {\n\t\t\tvar _animate$value3;\n\t\t\t(_animate$value3 = animate.value) === null || _animate$value3 === void 0 || _animate$value3.finish();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\tconst cancel = () => {\n\t\ttry {\n\t\t\tvar _animate$value4;\n\t\t\t(_animate$value4 = animate.value) === null || _animate$value4 === void 0 || _animate$value4.cancel();\n\t\t\tsyncPause();\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t};\n\twatch(() => unrefElement(target), (el) => {\n\t\tif (el) update(true);\n\t\telse animate.value = void 0;\n\t});\n\twatch(() => keyframes, (value) => {\n\t\tif (animate.value) {\n\t\t\tupdate();\n\t\t\tconst targetEl = unrefElement(target);\n\t\t\tif (targetEl) animate.value.effect = new KeyframeEffect(targetEl, toValue(value), animateOptions);\n\t\t}\n\t}, { deep: true });\n\ttryOnMounted(() => update(true), false);\n\ttryOnScopeDispose(cancel);\n\tfunction update(init) {\n\t\tconst el = unrefElement(target);\n\t\tif (!isSupported.value || !el) return;\n\t\tif (!animate.value) animate.value = el.animate(toValue(keyframes), animateOptions);\n\t\tif (persist) animate.value.persist();\n\t\tif (_playbackRate !== 1) animate.value.playbackRate = _playbackRate;\n\t\tif (init && !immediate) animate.value.pause();\n\t\telse syncResume();\n\t\tonReady === null || onReady === void 0 || onReady(animate.value);\n\t}\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(animate, [\n\t\t\"cancel\",\n\t\t\"finish\",\n\t\t\"remove\"\n\t], syncPause, listenerOptions);\n\tuseEventListener(animate, \"finish\", () => {\n\t\tvar _animate$value5;\n\t\tif (commitStyles) (_animate$value5 = animate.value) === null || _animate$value5 === void 0 || _animate$value5.commitStyles();\n\t}, listenerOptions);\n\tconst { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n\t\tif (!animate.value) return;\n\t\tstore.pending = animate.value.pending;\n\t\tstore.playState = animate.value.playState;\n\t\tstore.replaceState = animate.value.replaceState;\n\t\tstore.startTime = animate.value.startTime;\n\t\tstore.currentTime = animate.value.currentTime;\n\t\tstore.timeline = animate.value.timeline;\n\t\tstore.playbackRate = animate.value.playbackRate;\n\t}, { immediate: false });\n\tfunction syncResume() {\n\t\tif (isSupported.value) resumeRef();\n\t}\n\tfunction syncPause() {\n\t\tif (isSupported.value && window$1) window$1.requestAnimationFrame(pauseRef);\n\t}\n\treturn {\n\t\tisSupported,\n\t\tanimate,\n\t\tplay,\n\t\tpause,\n\t\treverse,\n\t\tfinish,\n\t\tcancel,\n\t\tpending,\n\t\tplayState,\n\t\treplaceState,\n\t\tstartTime,\n\t\tcurrentTime,\n\t\ttimeline,\n\t\tplaybackRate\n\t};\n}\n\n//#endregion\n//#region useAsyncQueue/index.ts\n/**\n* Asynchronous queue task controller.\n*\n* @see https://vueuse.org/useAsyncQueue\n* @param tasks\n* @param options\n*/\nfunction useAsyncQueue(tasks, options) {\n\tconst { interrupt = true, onError = noop, onFinished = noop, signal } = options || {};\n\tconst promiseState = {\n\t\taborted: \"aborted\",\n\t\tfulfilled: \"fulfilled\",\n\t\tpending: \"pending\",\n\t\trejected: \"rejected\"\n\t};\n\tconst result = reactive(Array.from(Array.from({ length: tasks.length }), () => ({\n\t\tstate: promiseState.pending,\n\t\tdata: null\n\t})));\n\tconst activeIndex = shallowRef(-1);\n\tif (!tasks || tasks.length === 0) {\n\t\tonFinished();\n\t\treturn {\n\t\t\tactiveIndex,\n\t\t\tresult\n\t\t};\n\t}\n\tfunction updateResult(state, res) {\n\t\tactiveIndex.value++;\n\t\tresult[activeIndex.value].data = res;\n\t\tresult[activeIndex.value].state = state;\n\t}\n\ttasks.reduce((prev, curr) => {\n\t\treturn prev.then((prevRes) => {\n\t\t\tvar _result$activeIndex$v;\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, /* @__PURE__ */ new Error(\"aborted\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (((_result$activeIndex$v = result[activeIndex.value]) === null || _result$activeIndex$v === void 0 ? void 0 : _result$activeIndex$v.state) === promiseState.rejected && interrupt) {\n\t\t\t\tonFinished();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst done = curr(prevRes).then((currentRes) => {\n\t\t\t\tupdateResult(promiseState.fulfilled, currentRes);\n\t\t\t\tif (activeIndex.value === tasks.length - 1) onFinished();\n\t\t\t\treturn currentRes;\n\t\t\t});\n\t\t\tif (!signal) return done;\n\t\t\treturn Promise.race([done, whenAborted(signal)]);\n\t\t}).catch((e) => {\n\t\t\tif (signal === null || signal === void 0 ? void 0 : signal.aborted) {\n\t\t\t\tupdateResult(promiseState.aborted, e);\n\t\t\t\treturn e;\n\t\t\t}\n\t\t\tupdateResult(promiseState.rejected, e);\n\t\t\tonError();\n\t\t\treturn e;\n\t\t});\n\t}, Promise.resolve());\n\treturn {\n\t\tactiveIndex,\n\t\tresult\n\t};\n}\nfunction whenAborted(signal) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst error = /* @__PURE__ */ new Error(\"aborted\");\n\t\tif (signal.aborted) reject(error);\n\t\telse signal.addEventListener(\"abort\", () => reject(error), { once: true });\n\t});\n}\n\n//#endregion\n//#region useAsyncState/index.ts\n/**\n* Reactive async state. Will not block your setup function and will trigger changes once\n* the promise is ready.\n*\n* @see https://vueuse.org/useAsyncState\n* @param promise The promise / async function to be resolved\n* @param initialState The initial state, used until the first evaluation finishes\n* @param options\n*/\nfunction useAsyncState(promise, initialState, options) {\n\tvar _globalThis$reportErr;\n\tconst { immediate = true, delay = 0, onError = (_globalThis$reportErr = globalThis.reportError) !== null && _globalThis$reportErr !== void 0 ? _globalThis$reportErr : noop, onSuccess = noop, resetOnExecute = true, shallow = true, throwError } = options !== null && options !== void 0 ? options : {};\n\tconst state = shallow ? shallowRef(initialState) : ref(initialState);\n\tconst isReady = shallowRef(false);\n\tconst isLoading = shallowRef(false);\n\tconst error = shallowRef(void 0);\n\tlet executionsCount = 0;\n\tasync function execute(delay$1 = 0, ...args) {\n\t\tconst executionId = executionsCount += 1;\n\t\tif (resetOnExecute) state.value = toValue(initialState);\n\t\terror.value = void 0;\n\t\tisReady.value = false;\n\t\tisLoading.value = true;\n\t\tif (delay$1 > 0) await promiseTimeout(delay$1);\n\t\tconst _promise = typeof promise === \"function\" ? promise(...args) : promise;\n\t\ttry {\n\t\t\tconst data = await _promise;\n\t\t\tif (executionId === executionsCount) {\n\t\t\t\tstate.value = data;\n\t\t\t\tisReady.value = true;\n\t\t\t}\n\t\t\tonSuccess(data);\n\t\t} catch (e) {\n\t\t\tif (executionId === executionsCount) error.value = e;\n\t\t\tonError(e);\n\t\t\tif (throwError) throw e;\n\t\t} finally {\n\t\t\tif (executionId === executionsCount) isLoading.value = false;\n\t\t}\n\t\treturn state.value;\n\t}\n\tif (immediate) execute(delay);\n\tconst shell = {\n\t\tstate,\n\t\tisReady,\n\t\tisLoading,\n\t\terror,\n\t\texecute,\n\t\texecuteImmediate: (...args) => execute(0, ...args)\n\t};\n\tfunction waitUntilIsLoaded() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilIsLoaded().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useBase64/serialization.ts\nconst defaults = {\n\tarray: (v) => JSON.stringify(v),\n\tobject: (v) => JSON.stringify(v),\n\tset: (v) => JSON.stringify(Array.from(v)),\n\tmap: (v) => JSON.stringify(Object.fromEntries(v)),\n\tnull: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n\tif (!target) return defaults.null;\n\tif (target instanceof Map) return defaults.map;\n\telse if (target instanceof Set) return defaults.set;\n\telse if (Array.isArray(target)) return defaults.array;\n\telse return defaults.object;\n}\n\n//#endregion\n//#region useBase64/index.ts\nfunction useBase64(target, options) {\n\tconst base64 = shallowRef(\"\");\n\tconst promise = shallowRef();\n\tfunction execute() {\n\t\tif (!isClient) return;\n\t\tpromise.value = new Promise((resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst _target = toValue(target);\n\t\t\t\tif (_target == null) resolve(\"\");\n\t\t\t\telse if (typeof _target === \"string\") resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n\t\t\t\telse if (_target instanceof Blob) resolve(blobToBase64(_target));\n\t\t\t\telse if (_target instanceof ArrayBuffer) resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n\t\t\t\telse if (_target instanceof HTMLCanvasElement) resolve(_target.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\telse if (_target instanceof HTMLImageElement) {\n\t\t\t\t\tconst img = _target.cloneNode(false);\n\t\t\t\t\timg.crossOrigin = \"Anonymous\";\n\t\t\t\t\timgLoaded(img).then(() => {\n\t\t\t\t\t\tconst canvas = document.createElement(\"canvas\");\n\t\t\t\t\t\tconst ctx = canvas.getContext(\"2d\");\n\t\t\t\t\t\tcanvas.width = img.width;\n\t\t\t\t\t\tcanvas.height = img.height;\n\t\t\t\t\t\tctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n\t\t\t\t\t\tresolve(canvas.toDataURL(options === null || options === void 0 ? void 0 : options.type, options === null || options === void 0 ? void 0 : options.quality));\n\t\t\t\t\t}).catch(reject);\n\t\t\t\t} else if (typeof _target === \"object\") {\n\t\t\t\t\tconst serialized = ((options === null || options === void 0 ? void 0 : options.serializer) || getDefaultSerialization(_target))(_target);\n\t\t\t\t\treturn resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n\t\t\t\t} else reject(/* @__PURE__ */ new Error(\"target is unsupported types\"));\n\t\t\t} catch (error) {\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t\tpromise.value.then((res) => {\n\t\t\tbase64.value = (options === null || options === void 0 ? void 0 : options.dataUrl) === false ? res.replace(/^data:.*?;base64,/, \"\") : res;\n\t\t});\n\t\treturn promise.value;\n\t}\n\tif (isRef(target) || typeof target === \"function\") watch(target, execute, { immediate: true });\n\telse execute();\n\treturn {\n\t\tbase64,\n\t\tpromise,\n\t\texecute\n\t};\n}\nfunction imgLoaded(img) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!img.complete) {\n\t\t\timg.onload = () => {\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\timg.onerror = reject;\n\t\t} else resolve();\n\t});\n}\nfunction blobToBase64(blob) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst fr = new FileReader();\n\t\tfr.onload = (e) => {\n\t\t\tresolve(e.target.result);\n\t\t};\n\t\tfr.onerror = reject;\n\t\tfr.readAsDataURL(blob);\n\t});\n}\n\n//#endregion\n//#region useBattery/index.ts\n/**\n* Reactive Battery Status API.\n*\n* @see https://vueuse.org/useBattery\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBattery(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst events$1 = [\n\t\t\"chargingchange\",\n\t\t\"chargingtimechange\",\n\t\t\"dischargingtimechange\",\n\t\t\"levelchange\"\n\t];\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getBattery\" in navigator$1 && typeof navigator$1.getBattery === \"function\");\n\tconst charging = shallowRef(false);\n\tconst chargingTime = shallowRef(0);\n\tconst dischargingTime = shallowRef(0);\n\tconst level = shallowRef(1);\n\tlet battery;\n\tfunction updateBatteryInfo() {\n\t\tcharging.value = this.charging;\n\t\tchargingTime.value = this.chargingTime || 0;\n\t\tdischargingTime.value = this.dischargingTime || 0;\n\t\tlevel.value = this.level;\n\t}\n\tif (isSupported.value) navigator$1.getBattery().then((_battery) => {\n\t\tbattery = _battery;\n\t\tupdateBatteryInfo.call(battery);\n\t\tuseEventListener(battery, events$1, updateBatteryInfo, { passive: true });\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcharging,\n\t\tchargingTime,\n\t\tdischargingTime,\n\t\tlevel\n\t};\n}\n\n//#endregion\n//#region useBluetooth/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useBluetooth(options) {\n\tlet { acceptAllDevices = false } = options || {};\n\tconst { filters = void 0, optionalServices = void 0, navigator: navigator$1 = defaultNavigator } = options || {};\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"bluetooth\" in navigator$1);\n\tconst device = shallowRef();\n\tconst error = shallowRef(null);\n\twatch(device, () => {\n\t\tconnectToBluetoothGATTServer();\n\t});\n\tasync function requestDevice() {\n\t\tif (!isSupported.value) return;\n\t\terror.value = null;\n\t\tif (filters && filters.length > 0) acceptAllDevices = false;\n\t\ttry {\n\t\t\tdevice.value = await (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.bluetooth.requestDevice({\n\t\t\t\tacceptAllDevices,\n\t\t\t\tfilters,\n\t\t\t\toptionalServices\n\t\t\t}));\n\t\t} catch (err) {\n\t\t\terror.value = err;\n\t\t}\n\t}\n\tconst server = shallowRef();\n\tconst isConnected = shallowRef(false);\n\tfunction reset() {\n\t\tisConnected.value = false;\n\t\tdevice.value = void 0;\n\t\tserver.value = void 0;\n\t}\n\tasync function connectToBluetoothGATTServer() {\n\t\terror.value = null;\n\t\tif (device.value && device.value.gatt) {\n\t\t\tuseEventListener(device, \"gattserverdisconnected\", reset, { passive: true });\n\t\t\ttry {\n\t\t\t\tserver.value = await device.value.gatt.connect();\n\t\t\t\tisConnected.value = server.value.connected;\n\t\t\t} catch (err) {\n\t\t\t\terror.value = err;\n\t\t\t}\n\t\t}\n\t}\n\ttryOnMounted(() => {\n\t\tvar _device$value$gatt;\n\t\tif (device.value) (_device$value$gatt = device.value.gatt) === null || _device$value$gatt === void 0 || _device$value$gatt.connect();\n\t});\n\ttryOnScopeDispose(() => {\n\t\tvar _device$value$gatt2;\n\t\tif (device.value) (_device$value$gatt2 = device.value.gatt) === null || _device$value$gatt2 === void 0 || _device$value$gatt2.disconnect();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tisConnected: readonly(isConnected),\n\t\tdevice,\n\t\trequestDevice,\n\t\tserver,\n\t\terror\n\t};\n}\n\n//#endregion\n//#region useSSRWidth/index.ts\nconst ssrWidthSymbol = Symbol(\"vueuse-ssr-width\");\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSSRWidth() {\n\tconst ssrWidth = hasInjectionContext() ? injectLocal(ssrWidthSymbol, null) : null;\n\treturn typeof ssrWidth === \"number\" ? ssrWidth : void 0;\n}\nfunction provideSSRWidth(width, app) {\n\tif (app !== void 0) app.provide(ssrWidthSymbol, width);\n\telse provideLocal(ssrWidthSymbol, width);\n}\n\n//#endregion\n//#region useMediaQuery/index.ts\n/**\n* Reactive Media Query.\n*\n* @see https://vueuse.org/useMediaQuery\n* @param query\n* @param options\n*/\nfunction useMediaQuery(query, options = {}) {\n\tconst { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"matchMedia\" in window$1 && typeof window$1.matchMedia === \"function\");\n\tconst ssrSupport = shallowRef(typeof ssrWidth === \"number\");\n\tconst mediaQuery = shallowRef();\n\tconst matches = shallowRef(false);\n\tconst handler = (event) => {\n\t\tmatches.value = event.matches;\n\t};\n\twatchEffect(() => {\n\t\tif (ssrSupport.value) {\n\t\t\tssrSupport.value = !isSupported.value;\n\t\t\tmatches.value = toValue(query).split(\",\").some((queryString) => {\n\t\t\t\tconst not = queryString.includes(\"not all\");\n\t\t\t\tconst minWidth = queryString.match(/\\(\\s*min-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tconst maxWidth = queryString.match(/\\(\\s*max-width:\\s*(-?\\d+(?:\\.\\d*)?[a-z]+\\s*)\\)/);\n\t\t\t\tlet res = Boolean(minWidth || maxWidth);\n\t\t\t\tif (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);\n\t\t\t\tif (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);\n\t\t\t\treturn not ? !res : res;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tif (!isSupported.value) return;\n\t\tmediaQuery.value = window$1.matchMedia(toValue(query));\n\t\tmatches.value = mediaQuery.value.matches;\n\t});\n\tuseEventListener(mediaQuery, \"change\", handler, { passive: true });\n\treturn computed(() => matches.value);\n}\n\n//#endregion\n//#region useBreakpoints/breakpoints.ts\n/**\n* Breakpoints from Tailwind V2\n*\n* @see https://tailwindcss.com/docs/breakpoints\n*/\nconst breakpointsTailwind = {\n\t\"sm\": 640,\n\t\"md\": 768,\n\t\"lg\": 1024,\n\t\"xl\": 1280,\n\t\"2xl\": 1536\n};\n/**\n* Breakpoints from Bootstrap V5\n*\n* @see https://getbootstrap.com/docs/5.0/layout/breakpoints\n*/\nconst breakpointsBootstrapV5 = {\n\txs: 0,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1400\n};\n/**\n* Breakpoints from Vuetify V2\n*\n* @see https://v2.vuetifyjs.com/en/features/breakpoints/\n*/\nconst breakpointsVuetifyV2 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1264,\n\txl: 1904\n};\n/**\n* Breakpoints from Vuetify V3\n*\n* @see https://vuetifyjs.com/en/styles/float/#overview\n*/\nconst breakpointsVuetifyV3 = {\n\txs: 0,\n\tsm: 600,\n\tmd: 960,\n\tlg: 1280,\n\txl: 1920,\n\txxl: 2560\n};\n/**\n* Alias to `breakpointsVuetifyV2`\n*\n* @deprecated explictly use `breakpointsVuetifyV2` or `breakpointsVuetifyV3` instead\n*/\nconst breakpointsVuetify = breakpointsVuetifyV2;\n/**\n* Breakpoints from Ant Design\n*\n* @see https://ant.design/components/layout/#breakpoint-width\n*/\nconst breakpointsAntDesign = {\n\txs: 480,\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200,\n\txxl: 1600\n};\n/**\n* Breakpoints from Quasar V2\n*\n* @see https://quasar.dev/style/breakpoints\n*/\nconst breakpointsQuasar = {\n\txs: 0,\n\tsm: 600,\n\tmd: 1024,\n\tlg: 1440,\n\txl: 1920\n};\n/**\n* Sematic Breakpoints\n*/\nconst breakpointsSematic = {\n\tmobileS: 320,\n\tmobileM: 375,\n\tmobileL: 425,\n\ttablet: 768,\n\tlaptop: 1024,\n\tlaptopL: 1440,\n\tdesktop4K: 2560\n};\n/**\n* Breakpoints from Master CSS\n*\n* @see https://docs.master.co/css/breakpoints\n*/\nconst breakpointsMasterCss = {\n\t\"3xs\": 360,\n\t\"2xs\": 480,\n\t\"xs\": 600,\n\t\"sm\": 768,\n\t\"md\": 1024,\n\t\"lg\": 1280,\n\t\"xl\": 1440,\n\t\"2xl\": 1600,\n\t\"3xl\": 1920,\n\t\"4xl\": 2560\n};\n/**\n* Breakpoints from PrimeFlex\n*\n* @see https://primeflex.org/installation\n*/\nconst breakpointsPrimeFlex = {\n\tsm: 576,\n\tmd: 768,\n\tlg: 992,\n\txl: 1200\n};\n/**\n* Breakpoints from ElementUI/ElementPlus\n*\n* @see https://element.eleme.io/#/en-US/component/layout\n* @see https://element-plus.org/en-US/component/layout.html\n*/\nconst breakpointsElement = {\n\txs: 0,\n\tsm: 768,\n\tmd: 992,\n\tlg: 1200,\n\txl: 1920\n};\n\n//#endregion\n//#region useBreakpoints/index.ts\n/**\n* Reactively viewport breakpoints\n*\n* @see https://vueuse.org/useBreakpoints\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBreakpoints(breakpoints, options = {}) {\n\tfunction getValue$1(k, delta) {\n\t\tlet v = toValue(breakpoints[toValue(k)]);\n\t\tif (delta != null) v = increaseWithUnit(v, delta);\n\t\tif (typeof v === \"number\") v = `${v}px`;\n\t\treturn v;\n\t}\n\tconst { window: window$1 = defaultWindow, strategy = \"min-width\", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;\n\tconst ssrSupport = typeof ssrWidth === \"number\";\n\tconst mounted = ssrSupport ? shallowRef(false) : { value: true };\n\tif (ssrSupport) tryOnMounted(() => mounted.value = !!window$1);\n\tfunction match(query, size) {\n\t\tif (!mounted.value && ssrSupport) return query === \"min\" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);\n\t\tif (!window$1) return false;\n\t\treturn window$1.matchMedia(`(${query}-width: ${size})`).matches;\n\t}\n\tconst greaterOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k)})`, options);\n\t};\n\tconst smallerOrEqual = (k) => {\n\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k)})`, options);\n\t};\n\tconst shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n\t\tObject.defineProperty(shortcuts, k, {\n\t\t\tget: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true\n\t\t});\n\t\treturn shortcuts;\n\t}, {});\n\tfunction current() {\n\t\tconst points = Object.keys(breakpoints).map((k) => [\n\t\t\tk,\n\t\t\tshortcutMethods[k],\n\t\t\tpxValue(getValue$1(k))\n\t\t]).sort((a, b) => a[2] - b[2]);\n\t\treturn computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n\t}\n\treturn Object.assign(shortcutMethods, {\n\t\tgreaterOrEqual,\n\t\tsmallerOrEqual,\n\t\tgreater(k) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(k, .1)})`, options);\n\t\t},\n\t\tsmaller(k) {\n\t\t\treturn useMediaQuery(() => `(max-width: ${getValue$1(k, -.1)})`, options);\n\t\t},\n\t\tbetween(a, b) {\n\t\t\treturn useMediaQuery(() => `(min-width: ${getValue$1(a)}) and (max-width: ${getValue$1(b, -.1)})`, options);\n\t\t},\n\t\tisGreater(k) {\n\t\t\treturn match(\"min\", getValue$1(k, .1));\n\t\t},\n\t\tisGreaterOrEqual(k) {\n\t\t\treturn match(\"min\", getValue$1(k));\n\t\t},\n\t\tisSmaller(k) {\n\t\t\treturn match(\"max\", getValue$1(k, -.1));\n\t\t},\n\t\tisSmallerOrEqual(k) {\n\t\t\treturn match(\"max\", getValue$1(k));\n\t\t},\n\t\tisInBetween(a, b) {\n\t\t\treturn match(\"min\", getValue$1(a)) && match(\"max\", getValue$1(b, -.1));\n\t\t},\n\t\tcurrent,\n\t\tactive() {\n\t\t\tconst bps = current();\n\t\t\treturn computed(() => bps.value.length === 0 ? \"\" : bps.value.at(strategy === \"min-width\" ? -1 : 0));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useBroadcastChannel/index.ts\n/**\n* Reactive BroadcastChannel\n*\n* @see https://vueuse.org/useBroadcastChannel\n* @see https://developer.mozilla.org/en-US/docs/Web/API/BroadcastChannel\n* @param options\n*\n*/\nfunction useBroadcastChannel(options) {\n\tconst { name, window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"BroadcastChannel\" in window$1);\n\tconst isClosed = shallowRef(false);\n\tconst channel = ref();\n\tconst data = ref();\n\tconst error = shallowRef(null);\n\tconst post = (data$1) => {\n\t\tif (channel.value) channel.value.postMessage(data$1);\n\t};\n\tconst close = () => {\n\t\tif (channel.value) channel.value.close();\n\t\tisClosed.value = true;\n\t};\n\tif (isSupported.value) tryOnMounted(() => {\n\t\terror.value = null;\n\t\tchannel.value = new BroadcastChannel(name);\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(channel, \"message\", (e) => {\n\t\t\tdata.value = e.data;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"messageerror\", (e) => {\n\t\t\terror.value = e;\n\t\t}, listenerOptions);\n\t\tuseEventListener(channel, \"close\", () => {\n\t\t\tisClosed.value = true;\n\t\t}, listenerOptions);\n\t});\n\ttryOnScopeDispose(() => {\n\t\tclose();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tchannel,\n\t\tdata,\n\t\tpost,\n\t\tclose,\n\t\terror,\n\t\tisClosed\n\t};\n}\n\n//#endregion\n//#region useBrowserLocation/index.ts\nconst WRITABLE_PROPERTIES = [\n\t\"hash\",\n\t\"host\",\n\t\"hostname\",\n\t\"href\",\n\t\"pathname\",\n\t\"port\",\n\t\"protocol\",\n\t\"search\"\n];\n/**\n* Reactive browser location.\n*\n* @see https://vueuse.org/useBrowserLocation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useBrowserLocation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst refs = Object.fromEntries(WRITABLE_PROPERTIES.map((key) => [key, ref()]));\n\tfor (const [key, ref$1] of objectEntries(refs)) watch(ref$1, (value) => {\n\t\tif (!(window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || window$1.location[key] === value) return;\n\t\twindow$1.location[key] = value;\n\t});\n\tconst buildState = (trigger) => {\n\t\tvar _window$location;\n\t\tconst { state: state$1, length } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.history) || {};\n\t\tconst { origin } = (window$1 === null || window$1 === void 0 ? void 0 : window$1.location) || {};\n\t\tfor (const key of WRITABLE_PROPERTIES) refs[key].value = window$1 === null || window$1 === void 0 || (_window$location = window$1.location) === null || _window$location === void 0 ? void 0 : _window$location[key];\n\t\treturn reactive({\n\t\t\ttrigger,\n\t\t\tstate: state$1,\n\t\t\tlength,\n\t\t\torigin,\n\t\t\t...refs\n\t\t});\n\t};\n\tconst state = ref(buildState(\"load\"));\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"popstate\", () => state.value = buildState(\"popstate\"), listenerOptions);\n\t\tuseEventListener(window$1, \"hashchange\", () => state.value = buildState(\"hashchange\"), listenerOptions);\n\t}\n\treturn state;\n}\n\n//#endregion\n//#region useCached/index.ts\nfunction useCached(refValue, comparator = (a, b) => a === b, options) {\n\tconst { deepRefs = true,...watchOptions } = options || {};\n\tconst cachedValue = createRef(refValue.value, deepRefs);\n\twatch(() => refValue.value, (value) => {\n\t\tif (!comparator(value, cachedValue.value)) cachedValue.value = value;\n\t}, watchOptions);\n\treturn cachedValue;\n}\n\n//#endregion\n//#region usePermission/index.ts\n/**\n* Reactive Permissions API.\n*\n* @see https://vueuse.org/usePermission\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePermission(permissionDesc, options = {}) {\n\tconst { controls = false, navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"permissions\" in navigator$1);\n\tconst permissionStatus = shallowRef();\n\tconst desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n\tconst state = shallowRef();\n\tconst update = () => {\n\t\tvar _permissionStatus$val, _permissionStatus$val2;\n\t\tstate.value = (_permissionStatus$val = (_permissionStatus$val2 = permissionStatus.value) === null || _permissionStatus$val2 === void 0 ? void 0 : _permissionStatus$val2.state) !== null && _permissionStatus$val !== void 0 ? _permissionStatus$val : \"prompt\";\n\t};\n\tuseEventListener(permissionStatus, \"change\", update, { passive: true });\n\tconst query = createSingletonPromise(async () => {\n\t\tif (!isSupported.value) return;\n\t\tif (!permissionStatus.value) try {\n\t\t\tpermissionStatus.value = await navigator$1.permissions.query(desc);\n\t\t} catch (_unused) {\n\t\t\tpermissionStatus.value = void 0;\n\t\t} finally {\n\t\t\tupdate();\n\t\t}\n\t\tif (controls) return toRaw(permissionStatus.value);\n\t});\n\tquery();\n\tif (controls) return {\n\t\tstate,\n\t\tisSupported,\n\t\tquery\n\t};\n\telse return state;\n}\n\n//#endregion\n//#region useClipboard/index.ts\nfunction useClipboard(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500, legacy = false } = options;\n\tconst isClipboardApiSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst permissionRead = usePermission(\"clipboard-read\");\n\tconst permissionWrite = usePermission(\"clipboard-write\");\n\tconst isSupported = computed(() => isClipboardApiSupported.value || legacy);\n\tconst text = shallowRef(\"\");\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tasync function updateText() {\n\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionRead.value));\n\t\tif (!useLegacy) try {\n\t\t\ttext.value = await navigator$1.clipboard.readText();\n\t\t} catch (_unused) {\n\t\t\tuseLegacy = true;\n\t\t}\n\t\tif (useLegacy) text.value = legacyRead();\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateText, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tlet useLegacy = !(isClipboardApiSupported.value && isAllowed(permissionWrite.value));\n\t\t\tif (!useLegacy) try {\n\t\t\t\tawait navigator$1.clipboard.writeText(value);\n\t\t\t} catch (_unused2) {\n\t\t\t\tuseLegacy = true;\n\t\t\t}\n\t\t\tif (useLegacy) legacyCopy(value);\n\t\t\ttext.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\tfunction legacyCopy(value) {\n\t\tconst ta = document.createElement(\"textarea\");\n\t\tta.value = value;\n\t\tta.style.position = \"absolute\";\n\t\tta.style.opacity = \"0\";\n\t\tdocument.body.appendChild(ta);\n\t\tta.select();\n\t\tdocument.execCommand(\"copy\");\n\t\tta.remove();\n\t}\n\tfunction legacyRead() {\n\t\tvar _document$getSelectio, _document, _document$getSelectio2;\n\t\treturn (_document$getSelectio = (_document = document) === null || _document === void 0 || (_document$getSelectio2 = _document.getSelection) === null || _document$getSelectio2 === void 0 || (_document$getSelectio2 = _document$getSelectio2.call(_document)) === null || _document$getSelectio2 === void 0 ? void 0 : _document$getSelectio2.toString()) !== null && _document$getSelectio !== void 0 ? _document$getSelectio : \"\";\n\t}\n\tfunction isAllowed(status) {\n\t\treturn status === \"granted\" || status === \"prompt\";\n\t}\n\treturn {\n\t\tisSupported,\n\t\ttext: readonly(text),\n\t\tcopied: readonly(copied),\n\t\tcopy\n\t};\n}\n\n//#endregion\n//#region useClipboardItems/index.ts\nfunction useClipboardItems(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, read = false, source, copiedDuring = 1500 } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"clipboard\" in navigator$1);\n\tconst content = ref([]);\n\tconst copied = shallowRef(false);\n\tconst timeout = useTimeoutFn(() => copied.value = false, copiedDuring, { immediate: false });\n\tfunction updateContent() {\n\t\tif (isSupported.value) navigator$1.clipboard.read().then((items) => {\n\t\t\tcontent.value = items;\n\t\t});\n\t}\n\tif (isSupported.value && read) useEventListener([\"copy\", \"cut\"], updateContent, { passive: true });\n\tasync function copy(value = toValue(source)) {\n\t\tif (isSupported.value && value != null) {\n\t\t\tawait navigator$1.clipboard.write(value);\n\t\t\tcontent.value = value;\n\t\t\tcopied.value = true;\n\t\t\ttimeout.start();\n\t\t}\n\t}\n\treturn {\n\t\tisSupported,\n\t\tcontent: shallowReadonly(content),\n\t\tcopied: readonly(copied),\n\t\tcopy,\n\t\tread: updateContent\n\t};\n}\n\n//#endregion\n//#region useCloned/index.ts\nfunction cloneFnJSON(source) {\n\treturn JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n\tconst cloned = ref({});\n\tconst isModified = shallowRef(false);\n\tlet _lastSync = false;\n\tconst { manual, clone = cloneFnJSON, deep = true, immediate = true } = options;\n\twatch(cloned, () => {\n\t\tif (_lastSync) {\n\t\t\t_lastSync = false;\n\t\t\treturn;\n\t\t}\n\t\tisModified.value = true;\n\t}, {\n\t\tdeep: true,\n\t\tflush: \"sync\"\n\t});\n\tfunction sync() {\n\t\t_lastSync = true;\n\t\tisModified.value = false;\n\t\tcloned.value = clone(toValue(source));\n\t}\n\tif (!manual && (isRef(source) || typeof source === \"function\")) watch(source, sync, {\n\t\t...options,\n\t\tdeep,\n\t\timmediate\n\t});\n\telse sync();\n\treturn {\n\t\tcloned,\n\t\tisModified,\n\t\tsync\n\t};\n}\n\n//#endregion\n//#region ssr-handlers.ts\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n\tif (!(globalKey in _global)) _global[globalKey] = _global[globalKey] || {};\n\treturn _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n\treturn handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n\thandlers[key] = fn;\n}\n\n//#endregion\n//#region usePreferredDark/index.ts\n/**\n* Reactive dark theme preference.\n*\n* @see https://vueuse.org/usePreferredDark\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredDark(options) {\n\treturn useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\n//#endregion\n//#region useStorage/guess.ts\nfunction guessSerializerType(rawInit) {\n\treturn rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\n//#endregion\n//#region useStorage/index.ts\nconst StorageSerializers = {\n\tboolean: {\n\t\tread: (v) => v === \"true\",\n\t\twrite: (v) => String(v)\n\t},\n\tobject: {\n\t\tread: (v) => JSON.parse(v),\n\t\twrite: (v) => JSON.stringify(v)\n\t},\n\tnumber: {\n\t\tread: (v) => Number.parseFloat(v),\n\t\twrite: (v) => String(v)\n\t},\n\tany: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tstring: {\n\t\tread: (v) => v,\n\t\twrite: (v) => String(v)\n\t},\n\tmap: {\n\t\tread: (v) => new Map(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v.entries()))\n\t},\n\tset: {\n\t\tread: (v) => new Set(JSON.parse(v)),\n\t\twrite: (v) => JSON.stringify(Array.from(v))\n\t},\n\tdate: {\n\t\tread: (v) => new Date(v),\n\t\twrite: (v) => v.toISOString()\n\t}\n};\nconst customStorageEventName = \"vueuse-storage\";\n/**\n* Reactive LocalStorage/SessionStorage.\n*\n* @see https://vueuse.org/useStorage\n*/\nfunction useStorage(key, defaults$1, storage, options = {}) {\n\tvar _options$serializer;\n\tconst { flush = \"pre\", deep = true, listenToStorageChanges = true, writeDefaults = true, mergeDefaults = false, shallow, window: window$1 = defaultWindow, eventFilter, onError = (e) => {\n\t\tconsole.error(e);\n\t}, initOnMounted } = options;\n\tconst data = (shallow ? shallowRef : ref)(typeof defaults$1 === \"function\" ? defaults$1() : defaults$1);\n\tconst keyComputed = computed(() => toValue(key));\n\tif (!storage) try {\n\t\tstorage = getSSRHandler(\"getDefaultStorage\", () => defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.localStorage)();\n\t} catch (e) {\n\t\tonError(e);\n\t}\n\tif (!storage) return data;\n\tconst rawInit = toValue(defaults$1);\n\tconst type = guessSerializerType(rawInit);\n\tconst serializer = (_options$serializer = options.serializer) !== null && _options$serializer !== void 0 ? _options$serializer : StorageSerializers[type];\n\tconst { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, (newValue) => write(newValue), {\n\t\tflush,\n\t\tdeep,\n\t\teventFilter\n\t});\n\twatch(keyComputed, () => update(), { flush });\n\tlet firstMounted = false;\n\tconst onStorageEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdate(ev);\n\t};\n\tconst onStorageCustomEvent = (ev) => {\n\t\tif (initOnMounted && !firstMounted) return;\n\t\tupdateFromCustomEvent(ev);\n\t};\n\t/**\n\t* The custom event is needed for same-document syncing when using custom\n\t* storage backends, but it doesn't work across different documents.\n\t*\n\t* TODO: Consider implementing a BroadcastChannel-based solution that fixes this.\n\t*/\n\tif (window$1 && listenToStorageChanges) if (storage instanceof Storage) useEventListener(window$1, \"storage\", onStorageEvent, { passive: true });\n\telse useEventListener(window$1, customStorageEventName, onStorageCustomEvent);\n\tif (initOnMounted) tryOnMounted(() => {\n\t\tfirstMounted = true;\n\t\tupdate();\n\t});\n\telse update();\n\tfunction dispatchWriteEvent(oldValue, newValue) {\n\t\tif (window$1) {\n\t\t\tconst payload = {\n\t\t\t\tkey: keyComputed.value,\n\t\t\t\toldValue,\n\t\t\t\tnewValue,\n\t\t\t\tstorageArea: storage\n\t\t\t};\n\t\t\twindow$1.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, { detail: payload }));\n\t\t}\n\t}\n\tfunction write(v) {\n\t\ttry {\n\t\t\tconst oldValue = storage.getItem(keyComputed.value);\n\t\t\tif (v == null) {\n\t\t\t\tdispatchWriteEvent(oldValue, null);\n\t\t\t\tstorage.removeItem(keyComputed.value);\n\t\t\t} else {\n\t\t\t\tconst serialized = serializer.write(v);\n\t\t\t\tif (oldValue !== serialized) {\n\t\t\t\t\tstorage.setItem(keyComputed.value, serialized);\n\t\t\t\t\tdispatchWriteEvent(oldValue, serialized);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t}\n\tfunction read(event) {\n\t\tconst rawValue = event ? event.newValue : storage.getItem(keyComputed.value);\n\t\tif (rawValue == null) {\n\t\t\tif (writeDefaults && rawInit != null) storage.setItem(keyComputed.value, serializer.write(rawInit));\n\t\t\treturn rawInit;\n\t\t} else if (!event && mergeDefaults) {\n\t\t\tconst value = serializer.read(rawValue);\n\t\t\tif (typeof mergeDefaults === \"function\") return mergeDefaults(value, rawInit);\n\t\t\telse if (type === \"object\" && !Array.isArray(value)) return {\n\t\t\t\t...rawInit,\n\t\t\t\t...value\n\t\t\t};\n\t\t\treturn value;\n\t\t} else if (typeof rawValue !== \"string\") return rawValue;\n\t\telse return serializer.read(rawValue);\n\t}\n\tfunction update(event) {\n\t\tif (event && event.storageArea !== storage) return;\n\t\tif (event && event.key == null) {\n\t\t\tdata.value = rawInit;\n\t\t\treturn;\n\t\t}\n\t\tif (event && event.key !== keyComputed.value) return;\n\t\tpauseWatch();\n\t\ttry {\n\t\t\tconst serializedData = serializer.write(data.value);\n\t\t\tif (event === void 0 || (event === null || event === void 0 ? void 0 : event.newValue) !== serializedData) data.value = read(event);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t} finally {\n\t\t\tif (event) nextTick(resumeWatch);\n\t\t\telse resumeWatch();\n\t\t}\n\t}\n\tfunction updateFromCustomEvent(event) {\n\t\tupdate(event.detail);\n\t}\n\treturn data;\n}\n\n//#endregion\n//#region useColorMode/index.ts\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\n/**\n* Reactive color mode with auto data persistence.\n*\n* @see https://vueuse.org/useColorMode\n* @param options\n*/\nfunction useColorMode(options = {}) {\n\tconst { selector = \"html\", attribute = \"class\", initialValue = \"auto\", window: window$1 = defaultWindow, storage, storageKey = \"vueuse-color-scheme\", listenToStorageChanges = true, storageRef, emitAuto, disableTransition = true } = options;\n\tconst modes = {\n\t\tauto: \"\",\n\t\tlight: \"light\",\n\t\tdark: \"dark\",\n\t\t...options.modes || {}\n\t};\n\tconst preferredDark = usePreferredDark({ window: window$1 });\n\tconst system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n\tconst store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, {\n\t\twindow: window$1,\n\t\tlistenToStorageChanges\n\t}));\n\tconst state = computed(() => store.value === \"auto\" ? system.value : store.value);\n\tconst updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector$1, attribute$1, value) => {\n\t\tconst el = typeof selector$1 === \"string\" ? window$1 === null || window$1 === void 0 ? void 0 : window$1.document.querySelector(selector$1) : unrefElement(selector$1);\n\t\tif (!el) return;\n\t\tconst classesToAdd = /* @__PURE__ */ new Set();\n\t\tconst classesToRemove = /* @__PURE__ */ new Set();\n\t\tlet attributeToChange = null;\n\t\tif (attribute$1 === \"class\") {\n\t\t\tconst current = value.split(/\\s/g);\n\t\t\tObject.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n\t\t\t\tif (current.includes(v)) classesToAdd.add(v);\n\t\t\t\telse classesToRemove.add(v);\n\t\t\t});\n\t\t} else attributeToChange = {\n\t\t\tkey: attribute$1,\n\t\t\tvalue\n\t\t};\n\t\tif (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null) return;\n\t\tlet style;\n\t\tif (disableTransition) {\n\t\t\tstyle = window$1.document.createElement(\"style\");\n\t\t\tstyle.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n\t\t\twindow$1.document.head.appendChild(style);\n\t\t}\n\t\tfor (const c of classesToAdd) el.classList.add(c);\n\t\tfor (const c of classesToRemove) el.classList.remove(c);\n\t\tif (attributeToChange) el.setAttribute(attributeToChange.key, attributeToChange.value);\n\t\tif (disableTransition) {\n\t\t\twindow$1.getComputedStyle(style).opacity;\n\t\t\tdocument.head.removeChild(style);\n\t\t}\n\t});\n\tfunction defaultOnChanged(mode) {\n\t\tvar _modes$mode;\n\t\tupdateHTMLAttrs(selector, attribute, (_modes$mode = modes[mode]) !== null && _modes$mode !== void 0 ? _modes$mode : mode);\n\t}\n\tfunction onChanged(mode) {\n\t\tif (options.onChanged) options.onChanged(mode, defaultOnChanged);\n\t\telse defaultOnChanged(mode);\n\t}\n\twatch(state, onChanged, {\n\t\tflush: \"post\",\n\t\timmediate: true\n\t});\n\ttryOnMounted(() => onChanged(state.value));\n\tconst auto = computed({\n\t\tget() {\n\t\t\treturn emitAuto ? store.value : state.value;\n\t\t},\n\t\tset(v) {\n\t\t\tstore.value = v;\n\t\t}\n\t});\n\treturn Object.assign(auto, {\n\t\tstore,\n\t\tsystem,\n\t\tstate\n\t});\n}\n\n//#endregion\n//#region useConfirmDialog/index.ts\n/**\n* Hooks for creating confirm dialogs. Useful for modal windows, popups and logins.\n*\n* @see https://vueuse.org/useConfirmDialog/\n* @param revealed `boolean` `ref` that handles a modal window\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useConfirmDialog(revealed = shallowRef(false)) {\n\tconst confirmHook = createEventHook();\n\tconst cancelHook = createEventHook();\n\tconst revealHook = createEventHook();\n\tlet _resolve = noop;\n\tconst reveal = (data) => {\n\t\trevealHook.trigger(data);\n\t\trevealed.value = true;\n\t\treturn new Promise((resolve) => {\n\t\t\t_resolve = resolve;\n\t\t});\n\t};\n\tconst confirm = (data) => {\n\t\trevealed.value = false;\n\t\tconfirmHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: false\n\t\t});\n\t};\n\tconst cancel = (data) => {\n\t\trevealed.value = false;\n\t\tcancelHook.trigger(data);\n\t\t_resolve({\n\t\t\tdata,\n\t\t\tisCanceled: true\n\t\t});\n\t};\n\treturn {\n\t\tisRevealed: computed(() => revealed.value),\n\t\treveal,\n\t\tconfirm,\n\t\tcancel,\n\t\tonReveal: revealHook.on,\n\t\tonConfirm: confirmHook.on,\n\t\tonCancel: cancelHook.on\n\t};\n}\n\n//#endregion\n//#region useCountdown/index.ts\n/**\n* Wrapper for `useIntervalFn` that provides a countdown timer in seconds.\n*\n* @param initialCountdown\n* @param options\n*\n* @see https://vueuse.org/useCountdown\n*/\nfunction useCountdown(initialCountdown, options) {\n\tvar _options$interval, _options$immediate;\n\tconst remaining = shallowRef(toValue(initialCountdown));\n\tconst intervalController = useIntervalFn(() => {\n\t\tvar _options$onTick;\n\t\tconst value = remaining.value - 1;\n\t\tremaining.value = value < 0 ? 0 : value;\n\t\toptions === null || options === void 0 || (_options$onTick = options.onTick) === null || _options$onTick === void 0 || _options$onTick.call(options);\n\t\tif (remaining.value <= 0) {\n\t\t\tvar _options$onComplete;\n\t\t\tintervalController.pause();\n\t\t\toptions === null || options === void 0 || (_options$onComplete = options.onComplete) === null || _options$onComplete === void 0 || _options$onComplete.call(options);\n\t\t}\n\t}, (_options$interval = options === null || options === void 0 ? void 0 : options.interval) !== null && _options$interval !== void 0 ? _options$interval : 1e3, { immediate: (_options$immediate = options === null || options === void 0 ? void 0 : options.immediate) !== null && _options$immediate !== void 0 ? _options$immediate : false });\n\tconst reset = (countdown) => {\n\t\tvar _toValue;\n\t\tremaining.value = (_toValue = toValue(countdown)) !== null && _toValue !== void 0 ? _toValue : toValue(initialCountdown);\n\t};\n\tconst stop = () => {\n\t\tintervalController.pause();\n\t\treset();\n\t};\n\tconst resume = () => {\n\t\tif (!intervalController.isActive.value) {\n\t\t\tif (remaining.value > 0) intervalController.resume();\n\t\t}\n\t};\n\tconst start = (countdown) => {\n\t\treset(countdown);\n\t\tintervalController.resume();\n\t};\n\treturn {\n\t\tremaining,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tpause: intervalController.pause,\n\t\tresume,\n\t\tisActive: intervalController.isActive\n\t};\n}\n\n//#endregion\n//#region useCssVar/index.ts\n/**\n* Manipulate CSS variables.\n*\n* @see https://vueuse.org/useCssVar\n* @param prop\n* @param target\n* @param options\n*/\nfunction useCssVar(prop, target, options = {}) {\n\tconst { window: window$1 = defaultWindow, initialValue, observe = false } = options;\n\tconst variable = shallowRef(initialValue);\n\tconst elRef = computed(() => {\n\t\tvar _window$document;\n\t\treturn unrefElement(target) || (window$1 === null || window$1 === void 0 || (_window$document = window$1.document) === null || _window$document === void 0 ? void 0 : _window$document.documentElement);\n\t});\n\tfunction updateCssVar() {\n\t\tconst key = toValue(prop);\n\t\tconst el = toValue(elRef);\n\t\tif (el && window$1 && key) {\n\t\t\tvar _window$getComputedSt;\n\t\t\tvariable.value = ((_window$getComputedSt = window$1.getComputedStyle(el).getPropertyValue(key)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.trim()) || variable.value || initialValue;\n\t\t}\n\t}\n\tif (observe) useMutationObserver(elRef, updateCssVar, {\n\t\tattributeFilter: [\"style\", \"class\"],\n\t\twindow: window$1\n\t});\n\twatch([elRef, () => toValue(prop)], (_, old) => {\n\t\tif (old[0] && old[1]) old[0].style.removeProperty(old[1]);\n\t\tupdateCssVar();\n\t}, { immediate: true });\n\twatch([variable, elRef], ([val, el]) => {\n\t\tconst raw_prop = toValue(prop);\n\t\tif ((el === null || el === void 0 ? void 0 : el.style) && raw_prop) if (val == null) el.style.removeProperty(raw_prop);\n\t\telse el.style.setProperty(raw_prop, val);\n\t}, { immediate: true });\n\treturn variable;\n}\n\n//#endregion\n//#region useCurrentElement/index.ts\nfunction useCurrentElement(rootComponent) {\n\tconst vm = getCurrentInstance();\n\tconst currentElement = computedWithControl(() => null, () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el);\n\tonUpdated(currentElement.trigger);\n\tonMounted(currentElement.trigger);\n\treturn currentElement;\n}\n\n//#endregion\n//#region useCycleList/index.ts\n/**\n* Cycle through a list of items\n*\n* @see https://vueuse.org/useCycleList\n*/\nfunction useCycleList(list, options) {\n\tconst state = shallowRef(getInitialValue());\n\tconst listRef = toRef(list);\n\tconst index = computed({\n\t\tget() {\n\t\t\tvar _options$fallbackInde;\n\t\t\tconst targetList = listRef.value;\n\t\t\tlet index$1 = (options === null || options === void 0 ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n\t\t\tif (index$1 < 0) index$1 = (_options$fallbackInde = options === null || options === void 0 ? void 0 : options.fallbackIndex) !== null && _options$fallbackInde !== void 0 ? _options$fallbackInde : 0;\n\t\t\treturn index$1;\n\t\t},\n\t\tset(v) {\n\t\t\tset(v);\n\t\t}\n\t});\n\tfunction set(i) {\n\t\tconst targetList = listRef.value;\n\t\tconst length = targetList.length;\n\t\tconst value = targetList[(i % length + length) % length];\n\t\tstate.value = value;\n\t\treturn value;\n\t}\n\tfunction shift(delta = 1) {\n\t\treturn set(index.value + delta);\n\t}\n\tfunction next(n = 1) {\n\t\treturn shift(n);\n\t}\n\tfunction prev(n = 1) {\n\t\treturn shift(-n);\n\t}\n\tfunction getInitialValue() {\n\t\tvar _toValue, _options$initialValue;\n\t\treturn (_toValue = toValue((_options$initialValue = options === null || options === void 0 ? void 0 : options.initialValue) !== null && _options$initialValue !== void 0 ? _options$initialValue : toValue(list)[0])) !== null && _toValue !== void 0 ? _toValue : void 0;\n\t}\n\twatch(listRef, () => set(index.value));\n\treturn {\n\t\tstate,\n\t\tindex,\n\t\tnext,\n\t\tprev,\n\t\tgo: set\n\t};\n}\n\n//#endregion\n//#region useDark/index.ts\n/**\n* Reactive dark mode with auto data persistence.\n*\n* @see https://vueuse.org/useDark\n* @param options\n*/\nfunction useDark(options = {}) {\n\tconst { valueDark = \"dark\", valueLight = \"\" } = options;\n\tconst mode = useColorMode({\n\t\t...options,\n\t\tonChanged: (mode$1, defaultHandler) => {\n\t\t\tvar _options$onChanged;\n\t\t\tif (options.onChanged) (_options$onChanged = options.onChanged) === null || _options$onChanged === void 0 || _options$onChanged.call(options, mode$1 === \"dark\", defaultHandler, mode$1);\n\t\t\telse defaultHandler(mode$1);\n\t\t},\n\t\tmodes: {\n\t\t\tdark: valueDark,\n\t\t\tlight: valueLight\n\t\t}\n\t});\n\tconst system = computed(() => mode.system.value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn mode.value === \"dark\";\n\t\t},\n\t\tset(v) {\n\t\t\tconst modeVal = v ? \"dark\" : \"light\";\n\t\t\tif (system.value === modeVal) mode.value = \"auto\";\n\t\t\telse mode.value = modeVal;\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useManualRefHistory/index.ts\nfunction fnBypass(v) {\n\treturn v;\n}\nfunction fnSetSource(source, value) {\n\treturn source.value = value;\n}\nfunction defaultDump(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n\treturn clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useManualRefHistory\n* @param source\n* @param options\n*/\nfunction useManualRefHistory(source, options = {}) {\n\tconst { clone = false, dump = defaultDump(clone), parse = defaultParse(clone), setSource = fnSetSource } = options;\n\tfunction _createHistoryRecord() {\n\t\treturn markRaw({\n\t\t\tsnapshot: dump(source.value),\n\t\t\ttimestamp: timestamp()\n\t\t});\n\t}\n\tconst last = ref(_createHistoryRecord());\n\tconst undoStack = ref([]);\n\tconst redoStack = ref([]);\n\tconst _setSource = (record) => {\n\t\tsetSource(source, parse(record.snapshot));\n\t\tlast.value = record;\n\t};\n\tconst commit = () => {\n\t\tundoStack.value.unshift(last.value);\n\t\tlast.value = _createHistoryRecord();\n\t\tif (options.capacity && undoStack.value.length > options.capacity) undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n\t\tif (redoStack.value.length) redoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst clear = () => {\n\t\tundoStack.value.splice(0, undoStack.value.length);\n\t\tredoStack.value.splice(0, redoStack.value.length);\n\t};\n\tconst undo = () => {\n\t\tconst state = undoStack.value.shift();\n\t\tif (state) {\n\t\t\tredoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst redo = () => {\n\t\tconst state = redoStack.value.shift();\n\t\tif (state) {\n\t\t\tundoStack.value.unshift(last.value);\n\t\t\t_setSource(state);\n\t\t}\n\t};\n\tconst reset = () => {\n\t\t_setSource(last.value);\n\t};\n\treturn {\n\t\tsource,\n\t\tundoStack,\n\t\tredoStack,\n\t\tlast,\n\t\thistory: computed(() => [last.value, ...undoStack.value]),\n\t\tcanUndo: computed(() => undoStack.value.length > 0),\n\t\tcanRedo: computed(() => redoStack.value.length > 0),\n\t\tclear,\n\t\tcommit,\n\t\treset,\n\t\tundo,\n\t\tredo\n\t};\n}\n\n//#endregion\n//#region useRefHistory/index.ts\n/**\n* Track the change history of a ref, also provides undo and redo functionality.\n*\n* @see https://vueuse.org/useRefHistory\n* @param source\n* @param options\n*/\nfunction useRefHistory(source, options = {}) {\n\tconst { deep = false, flush = \"pre\", eventFilter, shouldCommit = () => true } = options;\n\tconst { eventFilter: composedFilter, pause, resume: resumeTracking, isActive: isTracking } = pausableFilter(eventFilter);\n\tlet lastRawValue = source.value;\n\tconst { ignoreUpdates, ignorePrevAsyncUpdates, stop } = watchIgnorable(source, commit, {\n\t\tdeep,\n\t\tflush,\n\t\teventFilter: composedFilter\n\t});\n\tfunction setSource(source$1, value) {\n\t\tignorePrevAsyncUpdates();\n\t\tignoreUpdates(() => {\n\t\t\tsource$1.value = value;\n\t\t\tlastRawValue = value;\n\t\t});\n\t}\n\tconst manualHistory = useManualRefHistory(source, {\n\t\t...options,\n\t\tclone: options.clone || deep,\n\t\tsetSource\n\t});\n\tconst { clear, commit: manualCommit } = manualHistory;\n\tfunction commit() {\n\t\tignorePrevAsyncUpdates();\n\t\tif (!shouldCommit(lastRawValue, source.value)) return;\n\t\tlastRawValue = source.value;\n\t\tmanualCommit();\n\t}\n\tfunction resume(commitNow) {\n\t\tresumeTracking();\n\t\tif (commitNow) commit();\n\t}\n\tfunction batch(fn) {\n\t\tlet canceled = false;\n\t\tconst cancel = () => canceled = true;\n\t\tignoreUpdates(() => {\n\t\t\tfn(cancel);\n\t\t});\n\t\tif (!canceled) commit();\n\t}\n\tfunction dispose() {\n\t\tstop();\n\t\tclear();\n\t}\n\treturn {\n\t\t...manualHistory,\n\t\tisTracking,\n\t\tpause,\n\t\tresume,\n\t\tcommit,\n\t\tbatch,\n\t\tdispose\n\t};\n}\n\n//#endregion\n//#region useDebouncedRefHistory/index.ts\n/**\n* Shorthand for [useRefHistory](https://vueuse.org/useRefHistory) with debounce filter.\n*\n* @see https://vueuse.org/useDebouncedRefHistory\n* @param source\n* @param options\n*/\nfunction useDebouncedRefHistory(source, options = {}) {\n\tconst filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n\treturn { ...useRefHistory(source, {\n\t\t...options,\n\t\teventFilter: filter\n\t}) };\n}\n\n//#endregion\n//#region useDeviceMotion/index.ts\n/**\n* Reactive DeviceMotionEvent.\n*\n* @see https://vueuse.org/useDeviceMotion\n* @param options\n*/\nfunction useDeviceMotion(options = {}) {\n\tconst { window: window$1 = defaultWindow, requestPermissions = false, eventFilter = bypassFilter } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof DeviceMotionEvent !== \"undefined\");\n\tconst requirePermissions = /* @__PURE__ */ useSupported(() => isSupported.value && \"requestPermission\" in DeviceMotionEvent && typeof DeviceMotionEvent.requestPermission === \"function\");\n\tconst permissionGranted = shallowRef(false);\n\tconst acceleration = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tconst rotationRate = ref({\n\t\talpha: null,\n\t\tbeta: null,\n\t\tgamma: null\n\t});\n\tconst interval = shallowRef(0);\n\tconst accelerationIncludingGravity = ref({\n\t\tx: null,\n\t\ty: null,\n\t\tz: null\n\t});\n\tfunction init() {\n\t\tif (window$1) useEventListener(window$1, \"devicemotion\", createFilterWrapper(eventFilter, (event) => {\n\t\t\tvar _event$acceleration, _event$acceleration2, _event$acceleration3, _event$accelerationIn, _event$accelerationIn2, _event$accelerationIn3, _event$rotationRate, _event$rotationRate2, _event$rotationRate3;\n\t\t\tacceleration.value = {\n\t\t\t\tx: ((_event$acceleration = event.acceleration) === null || _event$acceleration === void 0 ? void 0 : _event$acceleration.x) || null,\n\t\t\t\ty: ((_event$acceleration2 = event.acceleration) === null || _event$acceleration2 === void 0 ? void 0 : _event$acceleration2.y) || null,\n\t\t\t\tz: ((_event$acceleration3 = event.acceleration) === null || _event$acceleration3 === void 0 ? void 0 : _event$acceleration3.z) || null\n\t\t\t};\n\t\t\taccelerationIncludingGravity.value = {\n\t\t\t\tx: ((_event$accelerationIn = event.accelerationIncludingGravity) === null || _event$accelerationIn === void 0 ? void 0 : _event$accelerationIn.x) || null,\n\t\t\t\ty: ((_event$accelerationIn2 = event.accelerationIncludingGravity) === null || _event$accelerationIn2 === void 0 ? void 0 : _event$accelerationIn2.y) || null,\n\t\t\t\tz: ((_event$accelerationIn3 = event.accelerationIncludingGravity) === null || _event$accelerationIn3 === void 0 ? void 0 : _event$accelerationIn3.z) || null\n\t\t\t};\n\t\t\trotationRate.value = {\n\t\t\t\talpha: ((_event$rotationRate = event.rotationRate) === null || _event$rotationRate === void 0 ? void 0 : _event$rotationRate.alpha) || null,\n\t\t\t\tbeta: ((_event$rotationRate2 = event.rotationRate) === null || _event$rotationRate2 === void 0 ? void 0 : _event$rotationRate2.beta) || null,\n\t\t\t\tgamma: ((_event$rotationRate3 = event.rotationRate) === null || _event$rotationRate3 === void 0 ? void 0 : _event$rotationRate3.gamma) || null\n\t\t\t};\n\t\t\tinterval.value = event.interval;\n\t\t}), { passive: true });\n\t}\n\tconst ensurePermissions = async () => {\n\t\tif (!requirePermissions.value) permissionGranted.value = true;\n\t\tif (permissionGranted.value) return;\n\t\tif (requirePermissions.value) {\n\t\t\tconst requestPermission = DeviceMotionEvent.requestPermission;\n\t\t\ttry {\n\t\t\t\tif (await requestPermission() === \"granted\") {\n\t\t\t\t\tpermissionGranted.value = true;\n\t\t\t\t\tinit();\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(error);\n\t\t\t}\n\t\t}\n\t};\n\tif (isSupported.value) if (requestPermissions && requirePermissions.value) ensurePermissions().then(() => init());\n\telse init();\n\treturn {\n\t\tacceleration,\n\t\taccelerationIncludingGravity,\n\t\trotationRate,\n\t\tinterval,\n\t\tisSupported,\n\t\trequirePermissions,\n\t\tensurePermissions,\n\t\tpermissionGranted\n\t};\n}\n\n//#endregion\n//#region useDeviceOrientation/index.ts\n/**\n* Reactive DeviceOrientationEvent.\n*\n* @see https://vueuse.org/useDeviceOrientation\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDeviceOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"DeviceOrientationEvent\" in window$1);\n\tconst isAbsolute = shallowRef(false);\n\tconst alpha = shallowRef(null);\n\tconst beta = shallowRef(null);\n\tconst gamma = shallowRef(null);\n\tif (window$1 && isSupported.value) useEventListener(window$1, \"deviceorientation\", (event) => {\n\t\tisAbsolute.value = event.absolute;\n\t\talpha.value = event.alpha;\n\t\tbeta.value = event.beta;\n\t\tgamma.value = event.gamma;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tisAbsolute,\n\t\talpha,\n\t\tbeta,\n\t\tgamma\n\t};\n}\n\n//#endregion\n//#region useDevicePixelRatio/index.ts\n/**\n* Reactively track `window.devicePixelRatio`.\n*\n* @see https://vueuse.org/useDevicePixelRatio\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDevicePixelRatio(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst pixelRatio = shallowRef(1);\n\tconst query = useMediaQuery(() => `(resolution: ${pixelRatio.value}dppx)`, options);\n\tlet stop = noop;\n\tif (window$1) stop = watchImmediate(query, () => pixelRatio.value = window$1.devicePixelRatio);\n\treturn {\n\t\tpixelRatio: readonly(pixelRatio),\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useDevicesList/index.ts\n/**\n* Reactive `enumerateDevices` listing available input/output devices\n*\n* @see https://vueuse.org/useDevicesList\n* @param options\n*/\nfunction useDevicesList(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator, requestPermissions = false, constraints = {\n\t\taudio: true,\n\t\tvideo: true\n\t}, onUpdated: onUpdated$1 } = options;\n\tconst devices = ref([]);\n\tconst videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n\tconst audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n\tconst audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && navigator$1.mediaDevices && navigator$1.mediaDevices.enumerateDevices);\n\tconst permissionGranted = shallowRef(false);\n\tlet stream;\n\tasync function update() {\n\t\tif (!isSupported.value) return;\n\t\tdevices.value = await navigator$1.mediaDevices.enumerateDevices();\n\t\tonUpdated$1 === null || onUpdated$1 === void 0 || onUpdated$1(devices.value);\n\t\tif (stream) {\n\t\t\tstream.getTracks().forEach((t) => t.stop());\n\t\t\tstream = null;\n\t\t}\n\t}\n\tasync function ensurePermissions() {\n\t\tconst deviceName = constraints.video ? \"camera\" : \"microphone\";\n\t\tif (!isSupported.value) return false;\n\t\tif (permissionGranted.value) return true;\n\t\tconst { state, query } = usePermission(deviceName, { controls: true });\n\t\tawait query();\n\t\tif (state.value !== \"granted\") {\n\t\t\tlet granted = true;\n\t\t\ttry {\n\t\t\t\tconst allDevices = await navigator$1.mediaDevices.enumerateDevices();\n\t\t\t\tconst hasCamera = allDevices.some((device) => device.kind === \"videoinput\");\n\t\t\t\tconst hasMicrophone = allDevices.some((device) => device.kind === \"audioinput\" || device.kind === \"audiooutput\");\n\t\t\t\tconstraints.video = hasCamera ? constraints.video : false;\n\t\t\t\tconstraints.audio = hasMicrophone ? constraints.audio : false;\n\t\t\t\tstream = await navigator$1.mediaDevices.getUserMedia(constraints);\n\t\t\t} catch (_unused) {\n\t\t\t\tstream = null;\n\t\t\t\tgranted = false;\n\t\t\t}\n\t\t\tupdate();\n\t\t\tpermissionGranted.value = granted;\n\t\t} else permissionGranted.value = true;\n\t\treturn permissionGranted.value;\n\t}\n\tif (isSupported.value) {\n\t\tif (requestPermissions) ensurePermissions();\n\t\tuseEventListener(navigator$1.mediaDevices, \"devicechange\", update, { passive: true });\n\t\tupdate();\n\t}\n\treturn {\n\t\tdevices,\n\t\tensurePermissions,\n\t\tpermissionGranted,\n\t\tvideoInputs,\n\t\taudioInputs,\n\t\taudioOutputs,\n\t\tisSupported\n\t};\n}\n\n//#endregion\n//#region useDisplayMedia/index.ts\n/**\n* Reactive `mediaDevices.getDisplayMedia` streaming\n*\n* @see https://vueuse.org/useDisplayMedia\n* @param options\n*/\nfunction useDisplayMedia(options = {}) {\n\tvar _options$enabled;\n\tconst enabled = shallowRef((_options$enabled = options.enabled) !== null && _options$enabled !== void 0 ? _options$enabled : false);\n\tconst video = options.video;\n\tconst audio = options.audio;\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tvar _navigator$mediaDevic;\n\t\treturn navigator$1 === null || navigator$1 === void 0 || (_navigator$mediaDevic = navigator$1.mediaDevices) === null || _navigator$mediaDevic === void 0 ? void 0 : _navigator$mediaDevic.getDisplayMedia;\n\t});\n\tconst constraint = {\n\t\taudio,\n\t\tvideo\n\t};\n\tconst stream = shallowRef();\n\tasync function _start() {\n\t\tvar _stream$value;\n\t\tif (!isSupported.value || stream.value) return;\n\t\tstream.value = await navigator$1.mediaDevices.getDisplayMedia(constraint);\n\t\t(_stream$value = stream.value) === null || _stream$value === void 0 || _stream$value.getTracks().forEach((t) => useEventListener(t, \"ended\", stop, { passive: true }));\n\t\treturn stream.value;\n\t}\n\tasync function _stop() {\n\t\tvar _stream$value2;\n\t\t(_stream$value2 = stream.value) === null || _stream$value2 === void 0 || _stream$value2.getTracks().forEach((t) => t.stop());\n\t\tstream.value = void 0;\n\t}\n\tfunction stop() {\n\t\t_stop();\n\t\tenabled.value = false;\n\t}\n\tasync function start() {\n\t\tawait _start();\n\t\tif (stream.value) enabled.value = true;\n\t\treturn stream.value;\n\t}\n\twatch(enabled, (v) => {\n\t\tif (v) _start();\n\t\telse _stop();\n\t}, { immediate: true });\n\treturn {\n\t\tisSupported,\n\t\tstream,\n\t\tstart,\n\t\tstop,\n\t\tenabled\n\t};\n}\n\n//#endregion\n//#region useDocumentVisibility/index.ts\n/**\n* Reactively track `document.visibilityState`.\n*\n* @see https://vueuse.org/useDocumentVisibility\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useDocumentVisibility(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tif (!document$1) return shallowRef(\"visible\");\n\tconst visibility = shallowRef(document$1.visibilityState);\n\tuseEventListener(document$1, \"visibilitychange\", () => {\n\t\tvisibility.value = document$1.visibilityState;\n\t}, { passive: true });\n\treturn visibility;\n}\n\n//#endregion\n//#region useDraggable/index.ts\n/**\n* Make elements draggable.\n*\n* @see https://vueuse.org/useDraggable\n* @param target\n* @param options\n*/\nfunction useDraggable(target, options = {}) {\n\tvar _toValue;\n\tconst { pointerTypes, preventDefault: preventDefault$1, stopPropagation, exact, onMove, onEnd, onStart, initialValue, axis = \"both\", draggingElement = defaultWindow, containerElement, handle: draggingHandle = target, buttons = [0] } = options;\n\tconst position = ref((_toValue = toValue(initialValue)) !== null && _toValue !== void 0 ? _toValue : {\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst pressedDelta = ref();\n\tconst filterEvent = (e) => {\n\t\tif (pointerTypes) return pointerTypes.includes(e.pointerType);\n\t\treturn true;\n\t};\n\tconst handleEvent = (e) => {\n\t\tif (toValue(preventDefault$1)) e.preventDefault();\n\t\tif (toValue(stopPropagation)) e.stopPropagation();\n\t};\n\tconst start = (e) => {\n\t\tvar _container$getBoundin;\n\t\tif (!toValue(buttons).includes(e.button)) return;\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (toValue(exact) && e.target !== toValue(target)) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst containerRect = container === null || container === void 0 || (_container$getBoundin = container.getBoundingClientRect) === null || _container$getBoundin === void 0 ? void 0 : _container$getBoundin.call(container);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tconst pos = {\n\t\t\tx: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n\t\t\ty: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n\t\t};\n\t\tif ((onStart === null || onStart === void 0 ? void 0 : onStart(pos, e)) === false) return;\n\t\tpressedDelta.value = pos;\n\t\thandleEvent(e);\n\t};\n\tconst move = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tconst container = toValue(containerElement);\n\t\tconst targetRect = toValue(target).getBoundingClientRect();\n\t\tlet { x, y } = position.value;\n\t\tif (axis === \"x\" || axis === \"both\") {\n\t\t\tx = e.clientX - pressedDelta.value.x;\n\t\t\tif (container) x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n\t\t}\n\t\tif (axis === \"y\" || axis === \"both\") {\n\t\t\ty = e.clientY - pressedDelta.value.y;\n\t\t\tif (container) y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n\t\t}\n\t\tposition.value = {\n\t\t\tx,\n\t\t\ty\n\t\t};\n\t\tonMove === null || onMove === void 0 || onMove(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tconst end = (e) => {\n\t\tif (toValue(options.disabled) || !filterEvent(e)) return;\n\t\tif (!pressedDelta.value) return;\n\t\tpressedDelta.value = void 0;\n\t\tonEnd === null || onEnd === void 0 || onEnd(position.value, e);\n\t\thandleEvent(e);\n\t};\n\tif (isClient) {\n\t\tconst config = () => {\n\t\t\tvar _options$capture;\n\t\t\treturn {\n\t\t\t\tcapture: (_options$capture = options.capture) !== null && _options$capture !== void 0 ? _options$capture : true,\n\t\t\t\tpassive: !toValue(preventDefault$1)\n\t\t\t};\n\t\t};\n\t\tuseEventListener(draggingHandle, \"pointerdown\", start, config);\n\t\tuseEventListener(draggingElement, \"pointermove\", move, config);\n\t\tuseEventListener(draggingElement, \"pointerup\", end, config);\n\t}\n\treturn {\n\t\t...toRefs(position),\n\t\tposition,\n\t\tisDragging: computed(() => !!pressedDelta.value),\n\t\tstyle: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n\t};\n}\n\n//#endregion\n//#region useDropZone/index.ts\nfunction useDropZone(target, options = {}) {\n\tconst isOverDropZone = shallowRef(false);\n\tconst files = shallowRef(null);\n\tlet counter = 0;\n\tlet isValid = true;\n\tif (isClient) {\n\t\tvar _options$multiple, _options$preventDefau;\n\t\tconst _options = typeof options === \"function\" ? { onDrop: options } : options;\n\t\tconst multiple = (_options$multiple = _options.multiple) !== null && _options$multiple !== void 0 ? _options$multiple : true;\n\t\tconst preventDefaultForUnhandled = (_options$preventDefau = _options.preventDefaultForUnhandled) !== null && _options$preventDefau !== void 0 ? _options$preventDefau : false;\n\t\tconst getFiles = (event) => {\n\t\t\tvar _event$dataTransfer$f, _event$dataTransfer;\n\t\t\tconst list = Array.from((_event$dataTransfer$f = (_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.files) !== null && _event$dataTransfer$f !== void 0 ? _event$dataTransfer$f : []);\n\t\t\treturn list.length === 0 ? null : multiple ? list : [list[0]];\n\t\t};\n\t\tconst checkDataTypes = (types) => {\n\t\t\tconst dataTypes = unref(_options.dataTypes);\n\t\t\tif (typeof dataTypes === \"function\") return dataTypes(types);\n\t\t\tif (!(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length)) return true;\n\t\t\tif (types.length === 0) return false;\n\t\t\treturn types.every((type) => dataTypes.some((allowedType) => type.includes(allowedType)));\n\t\t};\n\t\tconst checkValidity = (items) => {\n\t\t\tconst dataTypesValid = checkDataTypes(Array.from(items !== null && items !== void 0 ? items : []).map((item) => item.type));\n\t\t\tconst multipleFilesValid = multiple || items.length <= 1;\n\t\t\treturn dataTypesValid && multipleFilesValid;\n\t\t};\n\t\tconst isSafari = () => /^(?:(?!chrome|android).)*safari/i.test(navigator.userAgent) && !(\"chrome\" in window);\n\t\tconst handleDragEvent = (event, eventType) => {\n\t\t\tvar _event$dataTransfer2, _ref;\n\t\t\tconst dataTransferItemList = (_event$dataTransfer2 = event.dataTransfer) === null || _event$dataTransfer2 === void 0 ? void 0 : _event$dataTransfer2.items;\n\t\t\tisValid = (_ref = dataTransferItemList && checkValidity(dataTransferItemList)) !== null && _ref !== void 0 ? _ref : false;\n\t\t\tif (preventDefaultForUnhandled) event.preventDefault();\n\t\t\tif (!isSafari() && !isValid) {\n\t\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"none\";\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tif (event.dataTransfer) event.dataTransfer.dropEffect = \"copy\";\n\t\t\tconst currentFiles = getFiles(event);\n\t\t\tswitch (eventType) {\n\t\t\t\tcase \"enter\":\n\t\t\t\t\tvar _options$onEnter;\n\t\t\t\t\tcounter += 1;\n\t\t\t\t\tisOverDropZone.value = true;\n\t\t\t\t\t(_options$onEnter = _options.onEnter) === null || _options$onEnter === void 0 || _options$onEnter.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"over\":\n\t\t\t\t\tvar _options$onOver;\n\t\t\t\t\t(_options$onOver = _options.onOver) === null || _options$onOver === void 0 || _options$onOver.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"leave\":\n\t\t\t\t\tvar _options$onLeave;\n\t\t\t\t\tcounter -= 1;\n\t\t\t\t\tif (counter === 0) isOverDropZone.value = false;\n\t\t\t\t\t(_options$onLeave = _options.onLeave) === null || _options$onLeave === void 0 || _options$onLeave.call(_options, null, event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"drop\":\n\t\t\t\t\tcounter = 0;\n\t\t\t\t\tisOverDropZone.value = false;\n\t\t\t\t\tif (isValid) {\n\t\t\t\t\t\tvar _options$onDrop;\n\t\t\t\t\t\tfiles.value = currentFiles;\n\t\t\t\t\t\t(_options$onDrop = _options.onDrop) === null || _options$onDrop === void 0 || _options$onDrop.call(_options, currentFiles, event);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t};\n\t\tuseEventListener(target, \"dragenter\", (event) => handleDragEvent(event, \"enter\"));\n\t\tuseEventListener(target, \"dragover\", (event) => handleDragEvent(event, \"over\"));\n\t\tuseEventListener(target, \"dragleave\", (event) => handleDragEvent(event, \"leave\"));\n\t\tuseEventListener(target, \"drop\", (event) => handleDragEvent(event, \"drop\"));\n\t}\n\treturn {\n\t\tfiles,\n\t\tisOverDropZone\n\t};\n}\n\n//#endregion\n//#region useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver(target, callback, options = {}) {\n\tconst { window: window$1 = defaultWindow,...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"ResizeObserver\" in window$1);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window$1) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementBounding/index.ts\n/**\n* Reactive bounding box of an HTML element.\n*\n* @see https://vueuse.org/useElementBounding\n* @param target\n*/\nfunction useElementBounding(target, options = {}) {\n\tconst { reset = true, windowResize = true, windowScroll = true, immediate = true, updateTiming = \"sync\" } = options;\n\tconst height = shallowRef(0);\n\tconst bottom = shallowRef(0);\n\tconst left = shallowRef(0);\n\tconst right = shallowRef(0);\n\tconst top = shallowRef(0);\n\tconst width = shallowRef(0);\n\tconst x = shallowRef(0);\n\tconst y = shallowRef(0);\n\tfunction recalculate() {\n\t\tconst el = unrefElement(target);\n\t\tif (!el) {\n\t\t\tif (reset) {\n\t\t\t\theight.value = 0;\n\t\t\t\tbottom.value = 0;\n\t\t\t\tleft.value = 0;\n\t\t\t\tright.value = 0;\n\t\t\t\ttop.value = 0;\n\t\t\t\twidth.value = 0;\n\t\t\t\tx.value = 0;\n\t\t\t\ty.value = 0;\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst rect = el.getBoundingClientRect();\n\t\theight.value = rect.height;\n\t\tbottom.value = rect.bottom;\n\t\tleft.value = rect.left;\n\t\tright.value = rect.right;\n\t\ttop.value = rect.top;\n\t\twidth.value = rect.width;\n\t\tx.value = rect.x;\n\t\ty.value = rect.y;\n\t}\n\tfunction update() {\n\t\tif (updateTiming === \"sync\") recalculate();\n\t\telse if (updateTiming === \"next-frame\") requestAnimationFrame(() => recalculate());\n\t}\n\tuseResizeObserver(target, update);\n\twatch(() => unrefElement(target), (ele) => !ele && update());\n\tuseMutationObserver(target, update, { attributeFilter: [\"style\", \"class\"] });\n\tif (windowScroll) useEventListener(\"scroll\", update, {\n\t\tcapture: true,\n\t\tpassive: true\n\t});\n\tif (windowResize) useEventListener(\"resize\", update, { passive: true });\n\ttryOnMounted(() => {\n\t\tif (immediate) update();\n\t});\n\treturn {\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty,\n\t\tupdate\n\t};\n}\n\n//#endregion\n//#region useElementByPoint/index.ts\n/**\n* Reactive element by point.\n*\n* @see https://vueuse.org/useElementByPoint\n* @param options - UseElementByPointOptions\n*/\nfunction useElementByPoint(options) {\n\tconst { x, y, document: document$1 = defaultDocument, multiple, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => {\n\t\tif (toValue(multiple)) return document$1 && \"elementsFromPoint\" in document$1;\n\t\treturn document$1 && \"elementFromPoint\" in document$1;\n\t});\n\tconst element = shallowRef(null);\n\tconst cb = () => {\n\t\tvar _document$elementsFro, _document$elementFrom;\n\t\telement.value = toValue(multiple) ? (_document$elementsFro = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementsFromPoint(toValue(x), toValue(y))) !== null && _document$elementsFro !== void 0 ? _document$elementsFro : [] : (_document$elementFrom = document$1 === null || document$1 === void 0 ? void 0 : document$1.elementFromPoint(toValue(x), toValue(y))) !== null && _document$elementFrom !== void 0 ? _document$elementFrom : null;\n\t};\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\t...interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate })\n\t};\n}\n\n//#endregion\n//#region useElementHover/index.ts\nfunction useElementHover(el, options = {}) {\n\tconst { delayEnter = 0, delayLeave = 0, triggerOnRemoval = false, window: window$1 = defaultWindow } = options;\n\tconst isHovered = shallowRef(false);\n\tlet timer;\n\tconst toggle = (entering) => {\n\t\tconst delay = entering ? delayEnter : delayLeave;\n\t\tif (timer) {\n\t\t\tclearTimeout(timer);\n\t\t\ttimer = void 0;\n\t\t}\n\t\tif (delay) timer = setTimeout(() => isHovered.value = entering, delay);\n\t\telse isHovered.value = entering;\n\t};\n\tif (!window$1) return isHovered;\n\tuseEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n\tuseEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n\tif (triggerOnRemoval) onElementRemoval(computed(() => unrefElement(el)), () => toggle(false));\n\treturn isHovered;\n}\n\n//#endregion\n//#region useElementSize/index.ts\n/**\n* Reactive size of an HTML element.\n*\n* @see https://vueuse.org/useElementSize\n*/\nfunction useElementSize(target, initialSize = {\n\twidth: 0,\n\theight: 0\n}, options = {}) {\n\tconst { window: window$1 = defaultWindow, box = \"content-box\" } = options;\n\tconst isSVG = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) === null || _unrefElement === void 0 || (_unrefElement = _unrefElement.namespaceURI) === null || _unrefElement === void 0 ? void 0 : _unrefElement.includes(\"svg\");\n\t});\n\tconst width = shallowRef(initialSize.width);\n\tconst height = shallowRef(initialSize.height);\n\tconst { stop: stop1 } = useResizeObserver(target, ([entry]) => {\n\t\tconst boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n\t\tif (window$1 && isSVG.value) {\n\t\t\tconst $elem = unrefElement(target);\n\t\t\tif ($elem) {\n\t\t\t\tconst rect = $elem.getBoundingClientRect();\n\t\t\t\twidth.value = rect.width;\n\t\t\t\theight.value = rect.height;\n\t\t\t}\n\t\t} else if (boxSize) {\n\t\t\tconst formatBoxSize = toArray(boxSize);\n\t\t\twidth.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n\t\t\theight.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n\t\t} else {\n\t\t\twidth.value = entry.contentRect.width;\n\t\t\theight.value = entry.contentRect.height;\n\t\t}\n\t}, options);\n\ttryOnMounted(() => {\n\t\tconst ele = unrefElement(target);\n\t\tif (ele) {\n\t\t\twidth.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n\t\t\theight.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n\t\t}\n\t});\n\tconst stop2 = watch(() => unrefElement(target), (ele) => {\n\t\twidth.value = ele ? initialSize.width : 0;\n\t\theight.value = ele ? initialSize.height : 0;\n\t});\n\tfunction stop() {\n\t\tstop1();\n\t\tstop2();\n\t}\n\treturn {\n\t\twidth,\n\t\theight,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useIntersectionObserver/index.ts\n/**\n* Detects that a target element's visibility.\n*\n* @see https://vueuse.org/useIntersectionObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useIntersectionObserver(target, callback, options = {}) {\n\tconst { root, rootMargin = \"0px\", threshold = 0, window: window$1 = defaultWindow, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"IntersectionObserver\" in window$1);\n\tconst targets = computed(() => {\n\t\treturn toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t});\n\tlet cleanup = noop;\n\tconst isActive = shallowRef(immediate);\n\tconst stopWatch = isSupported.value ? watch(() => [\n\t\ttargets.value,\n\t\tunrefElement(root),\n\t\tisActive.value\n\t], ([targets$1, root$1]) => {\n\t\tcleanup();\n\t\tif (!isActive.value) return;\n\t\tif (!targets$1.length) return;\n\t\tconst observer = new IntersectionObserver(callback, {\n\t\t\troot: unrefElement(root$1),\n\t\t\trootMargin,\n\t\t\tthreshold\n\t\t});\n\t\ttargets$1.forEach((el) => el && observer.observe(el));\n\t\tcleanup = () => {\n\t\t\tobserver.disconnect();\n\t\t\tcleanup = noop;\n\t\t};\n\t}, {\n\t\timmediate,\n\t\tflush: \"post\"\n\t}) : noop;\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t\tisActive.value = false;\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tisActive,\n\t\tpause() {\n\t\t\tcleanup();\n\t\t\tisActive.value = false;\n\t\t},\n\t\tresume() {\n\t\t\tisActive.value = true;\n\t\t},\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useElementVisibility/index.ts\n/**\n* Tracks the visibility of an element within the viewport.\n*\n* @see https://vueuse.org/useElementVisibility\n*/\nfunction useElementVisibility(element, options = {}) {\n\tconst { window: window$1 = defaultWindow, scrollTarget, threshold = 0, rootMargin, once = false } = options;\n\tconst elementIsVisible = shallowRef(false);\n\tconst { stop } = useIntersectionObserver(element, (intersectionObserverEntries) => {\n\t\tlet isIntersecting = elementIsVisible.value;\n\t\tlet latestTime = 0;\n\t\tfor (const entry of intersectionObserverEntries) if (entry.time >= latestTime) {\n\t\t\tlatestTime = entry.time;\n\t\t\tisIntersecting = entry.isIntersecting;\n\t\t}\n\t\telementIsVisible.value = isIntersecting;\n\t\tif (once) watchOnce(elementIsVisible, () => {\n\t\t\tstop();\n\t\t});\n\t}, {\n\t\troot: scrollTarget,\n\t\twindow: window$1,\n\t\tthreshold,\n\t\trootMargin: toValue(rootMargin)\n\t});\n\treturn elementIsVisible;\n}\n\n//#endregion\n//#region useEventBus/internal.ts\nconst events = /* @__PURE__ */ new Map();\n\n//#endregion\n//#region useEventBus/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useEventBus(key) {\n\tconst scope = getCurrentScope();\n\tfunction on(listener) {\n\t\tvar _scope$cleanups;\n\t\tconst listeners = events.get(key) || /* @__PURE__ */ new Set();\n\t\tlisteners.add(listener);\n\t\tevents.set(key, listeners);\n\t\tconst _off = () => off(listener);\n\t\tscope === null || scope === void 0 || (_scope$cleanups = scope.cleanups) === null || _scope$cleanups === void 0 || _scope$cleanups.push(_off);\n\t\treturn _off;\n\t}\n\tfunction once(listener) {\n\t\tfunction _listener(...args) {\n\t\t\toff(_listener);\n\t\t\tlistener(...args);\n\t\t}\n\t\treturn on(_listener);\n\t}\n\tfunction off(listener) {\n\t\tconst listeners = events.get(key);\n\t\tif (!listeners) return;\n\t\tlisteners.delete(listener);\n\t\tif (!listeners.size) reset();\n\t}\n\tfunction reset() {\n\t\tevents.delete(key);\n\t}\n\tfunction emit(event, payload) {\n\t\tvar _events$get;\n\t\t(_events$get = events.get(key)) === null || _events$get === void 0 || _events$get.forEach((v) => v(event, payload));\n\t}\n\treturn {\n\t\ton,\n\t\tonce,\n\t\toff,\n\t\temit,\n\t\treset\n\t};\n}\n\n//#endregion\n//#region useEventSource/index.ts\nfunction resolveNestedOptions$1(options) {\n\tif (options === true) return {};\n\treturn options;\n}\n/**\n* Reactive wrapper for EventSource.\n*\n* @see https://vueuse.org/useEventSource\n* @see https://developer.mozilla.org/en-US/docs/Web/API/EventSource/EventSource EventSource\n* @param url\n* @param events\n* @param options\n*/\nfunction useEventSource(url, events$1 = [], options = {}) {\n\tconst event = shallowRef(null);\n\tconst data = shallowRef(null);\n\tconst status = shallowRef(\"CONNECTING\");\n\tconst eventSource = ref(null);\n\tconst error = shallowRef(null);\n\tconst urlRef = toRef(url);\n\tconst lastEventId = shallowRef(null);\n\tlet explicitlyClosed = false;\n\tlet retried = 0;\n\tconst { withCredentials = false, immediate = true, autoConnect = true, autoReconnect, serializer = { read: (v) => v } } = options;\n\tconst close = () => {\n\t\tif (isClient && eventSource.value) {\n\t\t\teventSource.value.close();\n\t\t\teventSource.value = null;\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\texplicitlyClosed = true;\n\t\t}\n\t};\n\tconst _init = () => {\n\t\tif (explicitlyClosed || typeof urlRef.value === \"undefined\") return;\n\t\tconst es = new EventSource(urlRef.value, { withCredentials });\n\t\tstatus.value = \"CONNECTING\";\n\t\teventSource.value = es;\n\t\tes.onopen = () => {\n\t\t\tstatus.value = \"OPEN\";\n\t\t\terror.value = null;\n\t\t};\n\t\tes.onerror = (e) => {\n\t\t\tstatus.value = \"CLOSED\";\n\t\t\terror.value = e;\n\t\t\tif (es.readyState === 2 && !explicitlyClosed && autoReconnect) {\n\t\t\t\tes.close();\n\t\t\t\tconst { retries = -1, delay = 1e3, onFailed } = resolveNestedOptions$1(autoReconnect);\n\t\t\t\tretried += 1;\n\t\t\t\tif (typeof retries === \"number\" && (retries < 0 || retried < retries)) setTimeout(_init, delay);\n\t\t\t\telse if (typeof retries === \"function\" && retries()) setTimeout(_init, delay);\n\t\t\t\telse onFailed === null || onFailed === void 0 || onFailed();\n\t\t\t}\n\t\t};\n\t\tes.onmessage = (e) => {\n\t\t\tvar _serializer$read;\n\t\t\tevent.value = null;\n\t\t\tdata.value = (_serializer$read = serializer.read(e.data)) !== null && _serializer$read !== void 0 ? _serializer$read : null;\n\t\t\tlastEventId.value = e.lastEventId;\n\t\t};\n\t\tfor (const event_name of events$1) useEventListener(es, event_name, (e) => {\n\t\t\tvar _serializer$read2, _e$lastEventId;\n\t\t\tevent.value = event_name;\n\t\t\tdata.value = (_serializer$read2 = serializer.read(e.data)) !== null && _serializer$read2 !== void 0 ? _serializer$read2 : null;\n\t\t\tlastEventId.value = (_e$lastEventId = e.lastEventId) !== null && _e$lastEventId !== void 0 ? _e$lastEventId : null;\n\t\t}, { passive: true });\n\t};\n\tconst open = () => {\n\t\tif (!isClient) return;\n\t\tclose();\n\t\texplicitlyClosed = false;\n\t\tretried = 0;\n\t\t_init();\n\t};\n\tif (immediate) open();\n\tif (autoConnect) watch(urlRef, open);\n\ttryOnScopeDispose(close);\n\treturn {\n\t\teventSource,\n\t\tevent,\n\t\tdata,\n\t\tstatus,\n\t\terror,\n\t\topen,\n\t\tclose,\n\t\tlastEventId\n\t};\n}\n\n//#endregion\n//#region useEyeDropper/index.ts\n/**\n* Reactive [EyeDropper API](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper_API)\n*\n* @see https://vueuse.org/useEyeDropper\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useEyeDropper(options = {}) {\n\tconst { initialValue = \"\" } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n\tconst sRGBHex = shallowRef(initialValue);\n\tasync function open(openOptions) {\n\t\tif (!isSupported.value) return;\n\t\tconst result = await new window.EyeDropper().open(openOptions);\n\t\tsRGBHex.value = result.sRGBHex;\n\t\treturn result;\n\t}\n\treturn {\n\t\tisSupported,\n\t\tsRGBHex,\n\t\topen\n\t};\n}\n\n//#endregion\n//#region useFavicon/index.ts\nfunction useFavicon(newIcon = null, options = {}) {\n\tconst { baseUrl = \"\", rel = \"icon\", document: document$1 = defaultDocument } = options;\n\tconst favicon = toRef(newIcon);\n\tconst applyIcon = (icon) => {\n\t\tconst elements = document$1 === null || document$1 === void 0 ? void 0 : document$1.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n\t\tif (!elements || elements.length === 0) {\n\t\t\tconst link = document$1 === null || document$1 === void 0 ? void 0 : document$1.createElement(\"link\");\n\t\t\tif (link) {\n\t\t\t\tlink.rel = rel;\n\t\t\t\tlink.href = `${baseUrl}${icon}`;\n\t\t\t\tlink.type = `image/${icon.split(\".\").pop()}`;\n\t\t\t\tdocument$1 === null || document$1 === void 0 || document$1.head.append(link);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\telements === null || elements === void 0 || elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n\t};\n\twatch(favicon, (i, o) => {\n\t\tif (typeof i === \"string\" && i !== o) applyIcon(i);\n\t}, { immediate: true });\n\treturn favicon;\n}\n\n//#endregion\n//#region useFetch/index.ts\nconst payloadMapping = {\n\tjson: \"application/json\",\n\ttext: \"text/plain\"\n};\n/**\n* !!!IMPORTANT!!!\n*\n* If you update the UseFetchOptions interface, be sure to update this object\n* to include the new options\n*/\nfunction isFetchOptions(obj) {\n\treturn obj && containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n\treturn reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n\tif (typeof Headers !== \"undefined\" && headers instanceof Headers) return Object.fromEntries(headers.entries());\n\treturn headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n\tif (combination === \"overwrite\") return async (ctx) => {\n\t\tlet callback;\n\t\tfor (let i = callbacks.length - 1; i >= 0; i--) if (callbacks[i] != null) {\n\t\t\tcallback = callbacks[i];\n\t\t\tbreak;\n\t\t}\n\t\tif (callback) return {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n\telse return async (ctx) => {\n\t\tfor (const callback of callbacks) if (callback) ctx = {\n\t\t\t...ctx,\n\t\t\t...await callback(ctx)\n\t\t};\n\t\treturn ctx;\n\t};\n}\nfunction createFetch(config = {}) {\n\tconst _combination = config.combination || \"chain\";\n\tconst _options = config.options || {};\n\tconst _fetchOptions = config.fetchOptions || {};\n\tfunction useFactoryFetch(url, ...args) {\n\t\tconst computedUrl = computed(() => {\n\t\t\tconst baseUrl = toValue(config.baseUrl);\n\t\t\tconst targetUrl = toValue(url);\n\t\t\treturn baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n\t\t});\n\t\tlet options = _options;\n\t\tlet fetchOptions = _fetchOptions;\n\t\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t\t...options,\n\t\t\t...args[0],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n\t\t};\n\t\telse fetchOptions = {\n\t\t\t...fetchOptions,\n\t\t\t...args[0],\n\t\t\theaders: {\n\t\t\t\t...headersToObject(fetchOptions.headers) || {},\n\t\t\t\t...headersToObject(args[0].headers) || {}\n\t\t\t}\n\t\t};\n\t\tif (args.length > 1 && isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1],\n\t\t\tbeforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n\t\t\tafterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n\t\t\tonFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n\t\t};\n\t\treturn useFetch(computedUrl, fetchOptions, options);\n\t}\n\treturn useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n\tvar _defaultWindow$fetch, _globalThis;\n\tconst supportsAbort = typeof AbortController === \"function\";\n\tlet fetchOptions = {};\n\tlet options = {\n\t\timmediate: true,\n\t\trefetch: false,\n\t\ttimeout: 0,\n\t\tupdateDataOnError: false\n\t};\n\tconst config = {\n\t\tmethod: \"GET\",\n\t\ttype: \"text\",\n\t\tpayload: void 0\n\t};\n\tif (args.length > 0) if (isFetchOptions(args[0])) options = {\n\t\t...options,\n\t\t...args[0]\n\t};\n\telse fetchOptions = args[0];\n\tif (args.length > 1) {\n\t\tif (isFetchOptions(args[1])) options = {\n\t\t\t...options,\n\t\t\t...args[1]\n\t\t};\n\t}\n\tconst { fetch = (_defaultWindow$fetch = defaultWindow === null || defaultWindow === void 0 ? void 0 : defaultWindow.fetch) !== null && _defaultWindow$fetch !== void 0 ? _defaultWindow$fetch : (_globalThis = globalThis) === null || _globalThis === void 0 ? void 0 : _globalThis.fetch, initialData, timeout } = options;\n\tconst responseEvent = createEventHook();\n\tconst errorEvent = createEventHook();\n\tconst finallyEvent = createEventHook();\n\tconst isFinished = shallowRef(false);\n\tconst isFetching = shallowRef(false);\n\tconst aborted = shallowRef(false);\n\tconst statusCode = shallowRef(null);\n\tconst response = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst data = shallowRef(initialData || null);\n\tconst canAbort = computed(() => supportsAbort && isFetching.value);\n\tlet controller;\n\tlet timer;\n\tconst abort = (reason) => {\n\t\tif (supportsAbort) {\n\t\t\tcontroller === null || controller === void 0 || controller.abort(reason);\n\t\t\tcontroller = new AbortController();\n\t\t\tcontroller.signal.onabort = () => aborted.value = true;\n\t\t\tfetchOptions = {\n\t\t\t\t...fetchOptions,\n\t\t\t\tsignal: controller.signal\n\t\t\t};\n\t\t}\n\t};\n\tconst loading = (isLoading) => {\n\t\tisFetching.value = isLoading;\n\t\tisFinished.value = !isLoading;\n\t};\n\tif (timeout) timer = useTimeoutFn(abort, timeout, { immediate: false });\n\tlet executeCounter = 0;\n\tconst execute = async (throwOnFailed = false) => {\n\t\tvar _context$options;\n\t\tabort();\n\t\tloading(true);\n\t\terror.value = null;\n\t\tstatusCode.value = null;\n\t\taborted.value = false;\n\t\texecuteCounter += 1;\n\t\tconst currentExecuteCounter = executeCounter;\n\t\tconst defaultFetchOptions = {\n\t\t\tmethod: config.method,\n\t\t\theaders: {}\n\t\t};\n\t\tconst payload = toValue(config.payload);\n\t\tif (payload) {\n\t\t\tvar _payloadMapping$confi;\n\t\t\tconst headers = headersToObject(defaultFetchOptions.headers);\n\t\t\tconst proto = Object.getPrototypeOf(payload);\n\t\t\tif (!config.payloadType && payload && (proto === Object.prototype || Array.isArray(proto)) && !(payload instanceof FormData)) config.payloadType = \"json\";\n\t\t\tif (config.payloadType) headers[\"Content-Type\"] = (_payloadMapping$confi = payloadMapping[config.payloadType]) !== null && _payloadMapping$confi !== void 0 ? _payloadMapping$confi : config.payloadType;\n\t\t\tdefaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n\t\t}\n\t\tlet isCanceled = false;\n\t\tconst context = {\n\t\t\turl: toValue(url),\n\t\t\toptions: {\n\t\t\t\t...defaultFetchOptions,\n\t\t\t\t...fetchOptions\n\t\t\t},\n\t\t\tcancel: () => {\n\t\t\t\tisCanceled = true;\n\t\t\t}\n\t\t};\n\t\tif (options.beforeFetch) Object.assign(context, await options.beforeFetch(context));\n\t\tif (isCanceled || !fetch) {\n\t\t\tloading(false);\n\t\t\treturn Promise.resolve(null);\n\t\t}\n\t\tlet responseData = null;\n\t\tif (timer) timer.start();\n\t\treturn fetch(context.url, {\n\t\t\t...defaultFetchOptions,\n\t\t\t...context.options,\n\t\t\theaders: {\n\t\t\t\t...headersToObject(defaultFetchOptions.headers),\n\t\t\t\t...headersToObject((_context$options = context.options) === null || _context$options === void 0 ? void 0 : _context$options.headers)\n\t\t\t}\n\t\t}).then(async (fetchResponse) => {\n\t\t\tresponse.value = fetchResponse;\n\t\t\tstatusCode.value = fetchResponse.status;\n\t\t\tresponseData = await fetchResponse.clone()[config.type]();\n\t\t\tif (!fetchResponse.ok) {\n\t\t\t\tdata.value = initialData || null;\n\t\t\t\tthrow new Error(fetchResponse.statusText);\n\t\t\t}\n\t\t\tif (options.afterFetch) ({data: responseData} = await options.afterFetch({\n\t\t\t\tdata: responseData,\n\t\t\t\tresponse: fetchResponse,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\tdata.value = responseData;\n\t\t\tresponseEvent.trigger(fetchResponse);\n\t\t\treturn fetchResponse;\n\t\t}).catch(async (fetchError) => {\n\t\t\tlet errorData = fetchError.message || fetchError.name;\n\t\t\tif (options.onFetchError) ({error: errorData, data: responseData} = await options.onFetchError({\n\t\t\t\tdata: responseData,\n\t\t\t\terror: fetchError,\n\t\t\t\tresponse: response.value,\n\t\t\t\tcontext,\n\t\t\t\texecute\n\t\t\t}));\n\t\t\terror.value = errorData;\n\t\t\tif (options.updateDataOnError) data.value = responseData;\n\t\t\terrorEvent.trigger(fetchError);\n\t\t\tif (throwOnFailed) throw fetchError;\n\t\t\treturn null;\n\t\t}).finally(() => {\n\t\t\tif (currentExecuteCounter === executeCounter) loading(false);\n\t\t\tif (timer) timer.stop();\n\t\t\tfinallyEvent.trigger(null);\n\t\t});\n\t};\n\tconst refetch = toRef(options.refetch);\n\twatch([refetch, toRef(url)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\tconst shell = {\n\t\tisFinished: readonly(isFinished),\n\t\tisFetching: readonly(isFetching),\n\t\tstatusCode,\n\t\tresponse,\n\t\terror,\n\t\tdata,\n\t\tcanAbort,\n\t\taborted,\n\t\tabort,\n\t\texecute,\n\t\tonFetchResponse: responseEvent.on,\n\t\tonFetchError: errorEvent.on,\n\t\tonFetchFinally: finallyEvent.on,\n\t\tget: setMethod(\"GET\"),\n\t\tput: setMethod(\"PUT\"),\n\t\tpost: setMethod(\"POST\"),\n\t\tdelete: setMethod(\"DELETE\"),\n\t\tpatch: setMethod(\"PATCH\"),\n\t\thead: setMethod(\"HEAD\"),\n\t\toptions: setMethod(\"OPTIONS\"),\n\t\tjson: setType(\"json\"),\n\t\ttext: setType(\"text\"),\n\t\tblob: setType(\"blob\"),\n\t\tarrayBuffer: setType(\"arrayBuffer\"),\n\t\tformData: setType(\"formData\")\n\t};\n\tfunction setMethod(method) {\n\t\treturn (payload, payloadType) => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.method = method;\n\t\t\t\tconfig.payload = payload;\n\t\t\t\tconfig.payloadType = payloadType;\n\t\t\t\tif (isRef(config.payload)) watch([refetch, toRef(config.payload)], ([refetch$1]) => refetch$1 && execute(), { deep: true });\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tfunction waitUntilFinished() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tuntil(isFinished).toBe(true).then(() => resolve(shell)).catch(reject);\n\t\t});\n\t}\n\tfunction setType(type) {\n\t\treturn () => {\n\t\t\tif (!isFetching.value) {\n\t\t\t\tconfig.type = type;\n\t\t\t\treturn {\n\t\t\t\t\t...shell,\n\t\t\t\t\tthen(onFulfilled, onRejected) {\n\t\t\t\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t}\n\tif (options.immediate) Promise.resolve().then(() => execute());\n\treturn {\n\t\t...shell,\n\t\tthen(onFulfilled, onRejected) {\n\t\t\treturn waitUntilFinished().then(onFulfilled, onRejected);\n\t\t}\n\t};\n}\nfunction joinPaths(start, end) {\n\tif (!start.endsWith(\"/\") && !end.startsWith(\"/\")) return `${start}/${end}`;\n\tif (start.endsWith(\"/\") && end.startsWith(\"/\")) return `${start.slice(0, -1)}${end}`;\n\treturn `${start}${end}`;\n}\n\n//#endregion\n//#region useFileDialog/index.ts\nconst DEFAULT_OPTIONS = {\n\tmultiple: true,\n\taccept: \"*\",\n\treset: false,\n\tdirectory: false\n};\nfunction prepareInitialFiles(files) {\n\tif (!files) return null;\n\tif (files instanceof FileList) return files;\n\tconst dt = new DataTransfer();\n\tfor (const file of files) dt.items.add(file);\n\treturn dt.files;\n}\n/**\n* Open file dialog with ease.\n*\n* @see https://vueuse.org/useFileDialog\n* @param options\n*/\nfunction useFileDialog(options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst files = ref(prepareInitialFiles(options.initialFiles));\n\tconst { on: onChange, trigger: changeTrigger } = createEventHook();\n\tconst { on: onCancel, trigger: cancelTrigger } = createEventHook();\n\tconst inputRef = computed(() => {\n\t\tvar _unrefElement;\n\t\tconst input = (_unrefElement = unrefElement(options.input)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 ? document$1.createElement(\"input\") : void 0;\n\t\tif (input) {\n\t\t\tinput.type = \"file\";\n\t\t\tinput.onchange = (event) => {\n\t\t\t\tfiles.value = event.target.files;\n\t\t\t\tchangeTrigger(files.value);\n\t\t\t};\n\t\t\tinput.oncancel = () => {\n\t\t\t\tcancelTrigger();\n\t\t\t};\n\t\t}\n\t\treturn input;\n\t});\n\tconst reset = () => {\n\t\tfiles.value = null;\n\t\tif (inputRef.value && inputRef.value.value) {\n\t\t\tinputRef.value.value = \"\";\n\t\t\tchangeTrigger(null);\n\t\t}\n\t};\n\tconst applyOptions = (options$1) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tel.multiple = toValue(options$1.multiple);\n\t\tel.accept = toValue(options$1.accept);\n\t\tel.webkitdirectory = toValue(options$1.directory);\n\t\tif (hasOwn(options$1, \"capture\")) el.capture = toValue(options$1.capture);\n\t};\n\tconst open = (localOptions) => {\n\t\tconst el = inputRef.value;\n\t\tif (!el) return;\n\t\tconst mergedOptions = {\n\t\t\t...DEFAULT_OPTIONS,\n\t\t\t...options,\n\t\t\t...localOptions\n\t\t};\n\t\tapplyOptions(mergedOptions);\n\t\tif (toValue(mergedOptions.reset)) reset();\n\t\tel.click();\n\t};\n\twatchEffect(() => {\n\t\tapplyOptions(options);\n\t});\n\treturn {\n\t\tfiles: readonly(files),\n\t\topen,\n\t\treset,\n\t\tonCancel,\n\t\tonChange\n\t};\n}\n\n//#endregion\n//#region useFileSystemAccess/index.ts\nfunction useFileSystemAccess(options = {}) {\n\tconst { window: _window = defaultWindow, dataType = \"Text\" } = options;\n\tconst window$1 = _window;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"showSaveFilePicker\" in window$1 && \"showOpenFilePicker\" in window$1);\n\tconst fileHandle = shallowRef();\n\tconst data = shallowRef();\n\tconst file = shallowRef();\n\tconst fileName = computed(() => {\n\t\tvar _file$value$name, _file$value;\n\t\treturn (_file$value$name = (_file$value = file.value) === null || _file$value === void 0 ? void 0 : _file$value.name) !== null && _file$value$name !== void 0 ? _file$value$name : \"\";\n\t});\n\tconst fileMIME = computed(() => {\n\t\tvar _file$value$type, _file$value2;\n\t\treturn (_file$value$type = (_file$value2 = file.value) === null || _file$value2 === void 0 ? void 0 : _file$value2.type) !== null && _file$value$type !== void 0 ? _file$value$type : \"\";\n\t});\n\tconst fileSize = computed(() => {\n\t\tvar _file$value$size, _file$value3;\n\t\treturn (_file$value$size = (_file$value3 = file.value) === null || _file$value3 === void 0 ? void 0 : _file$value3.size) !== null && _file$value$size !== void 0 ? _file$value$size : 0;\n\t});\n\tconst fileLastModified = computed(() => {\n\t\tvar _file$value$lastModif, _file$value4;\n\t\treturn (_file$value$lastModif = (_file$value4 = file.value) === null || _file$value4 === void 0 ? void 0 : _file$value4.lastModified) !== null && _file$value$lastModif !== void 0 ? _file$value$lastModif : 0;\n\t});\n\tasync function open(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tconst [handle] = await window$1.showOpenFilePicker({\n\t\t\t...toValue(options),\n\t\t\t..._options\n\t\t});\n\t\tfileHandle.value = handle;\n\t\tawait updateData();\n\t}\n\tasync function create(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tdata.value = void 0;\n\t\tawait updateData();\n\t}\n\tasync function save(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tif (!fileHandle.value) return saveAs(_options);\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function saveAs(_options = {}) {\n\t\tif (!isSupported.value) return;\n\t\tfileHandle.value = await window$1.showSaveFilePicker({\n\t\t\t...options,\n\t\t\t..._options\n\t\t});\n\t\tif (data.value) {\n\t\t\tconst writableStream = await fileHandle.value.createWritable();\n\t\t\tawait writableStream.write(data.value);\n\t\t\tawait writableStream.close();\n\t\t}\n\t\tawait updateFile();\n\t}\n\tasync function updateFile() {\n\t\tvar _fileHandle$value;\n\t\tfile.value = await ((_fileHandle$value = fileHandle.value) === null || _fileHandle$value === void 0 ? void 0 : _fileHandle$value.getFile());\n\t}\n\tasync function updateData() {\n\t\tvar _file$value5, _file$value6;\n\t\tawait updateFile();\n\t\tconst type = toValue(dataType);\n\t\tif (type === \"Text\") data.value = await ((_file$value5 = file.value) === null || _file$value5 === void 0 ? void 0 : _file$value5.text());\n\t\telse if (type === \"ArrayBuffer\") data.value = await ((_file$value6 = file.value) === null || _file$value6 === void 0 ? void 0 : _file$value6.arrayBuffer());\n\t\telse if (type === \"Blob\") data.value = file.value;\n\t}\n\twatch(() => toValue(dataType), updateData);\n\treturn {\n\t\tisSupported,\n\t\tdata,\n\t\tfile,\n\t\tfileName,\n\t\tfileMIME,\n\t\tfileSize,\n\t\tfileLastModified,\n\t\topen,\n\t\tcreate,\n\t\tsave,\n\t\tsaveAs,\n\t\tupdateData\n\t};\n}\n\n//#endregion\n//#region useFocus/index.ts\n/**\n* Track or set the focus state of a DOM element.\n*\n* @see https://vueuse.org/useFocus\n* @param target The target element for the focus and blur events.\n* @param options\n*/\nfunction useFocus(target, options = {}) {\n\tconst { initialValue = false, focusVisible = false, preventScroll = false } = options;\n\tconst innerFocused = shallowRef(false);\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, \"focus\", (event) => {\n\t\tvar _matches, _ref;\n\t\tif (!focusVisible || ((_matches = (_ref = event.target).matches) === null || _matches === void 0 ? void 0 : _matches.call(_ref, \":focus-visible\"))) innerFocused.value = true;\n\t}, listenerOptions);\n\tuseEventListener(targetElement, \"blur\", () => innerFocused.value = false, listenerOptions);\n\tconst focused = computed({\n\t\tget: () => innerFocused.value,\n\t\tset(value) {\n\t\t\tvar _targetElement$value, _targetElement$value2;\n\t\t\tif (!value && innerFocused.value) (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || _targetElement$value.blur();\n\t\t\telse if (value && !innerFocused.value) (_targetElement$value2 = targetElement.value) === null || _targetElement$value2 === void 0 || _targetElement$value2.focus({ preventScroll });\n\t\t}\n\t});\n\twatch(targetElement, () => {\n\t\tfocused.value = initialValue;\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\treturn { focused };\n}\n\n//#endregion\n//#region useFocusWithin/index.ts\nconst EVENT_FOCUS_IN = \"focusin\";\nconst EVENT_FOCUS_OUT = \"focusout\";\nconst PSEUDO_CLASS_FOCUS_WITHIN = \":focus-within\";\n/**\n* Track if focus is contained within the target element\n*\n* @see https://vueuse.org/useFocusWithin\n* @param target The target element to track\n* @param options Focus within options\n*/\nfunction useFocusWithin(target, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst targetElement = computed(() => unrefElement(target));\n\tconst _focused = shallowRef(false);\n\tconst focused = computed(() => _focused.value);\n\tconst activeElement = useActiveElement(options);\n\tif (!window$1 || !activeElement.value) return { focused };\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(targetElement, EVENT_FOCUS_IN, () => _focused.value = true, listenerOptions);\n\tuseEventListener(targetElement, EVENT_FOCUS_OUT, () => {\n\t\tvar _targetElement$value$, _targetElement$value, _targetElement$value$2;\n\t\treturn _focused.value = (_targetElement$value$ = (_targetElement$value = targetElement.value) === null || _targetElement$value === void 0 || (_targetElement$value$2 = _targetElement$value.matches) === null || _targetElement$value$2 === void 0 ? void 0 : _targetElement$value$2.call(_targetElement$value, PSEUDO_CLASS_FOCUS_WITHIN)) !== null && _targetElement$value$ !== void 0 ? _targetElement$value$ : false;\n\t}, listenerOptions);\n\treturn { focused };\n}\n\n//#endregion\n//#region useFps/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useFps(options) {\n\tvar _options$every;\n\tconst fps = shallowRef(0);\n\tif (typeof performance === \"undefined\") return fps;\n\tconst every = (_options$every = options === null || options === void 0 ? void 0 : options.every) !== null && _options$every !== void 0 ? _options$every : 10;\n\tlet last = performance.now();\n\tlet ticks = 0;\n\tuseRafFn(() => {\n\t\tticks += 1;\n\t\tif (ticks >= every) {\n\t\t\tconst now = performance.now();\n\t\t\tconst diff = now - last;\n\t\t\tfps.value = Math.round(1e3 / (diff / ticks));\n\t\t\tlast = now;\n\t\t\tticks = 0;\n\t\t}\n\t});\n\treturn fps;\n}\n\n//#endregion\n//#region useFullscreen/index.ts\nconst eventHandlers = [\n\t\"fullscreenchange\",\n\t\"webkitfullscreenchange\",\n\t\"webkitendfullscreen\",\n\t\"mozfullscreenchange\",\n\t\"MSFullscreenChange\"\n];\n/**\n* Reactive Fullscreen API.\n*\n* @see https://vueuse.org/useFullscreen\n* @param target\n* @param options\n*/\nfunction useFullscreen(target, options = {}) {\n\tconst { document: document$1 = defaultDocument, autoExit = false } = options;\n\tconst targetRef = computed(() => {\n\t\tvar _unrefElement;\n\t\treturn (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : document$1 === null || document$1 === void 0 ? void 0 : document$1.documentElement;\n\t});\n\tconst isFullscreen = shallowRef(false);\n\tconst requestMethod = computed(() => {\n\t\treturn [\n\t\t\t\"requestFullscreen\",\n\t\t\t\"webkitRequestFullscreen\",\n\t\t\t\"webkitEnterFullscreen\",\n\t\t\t\"webkitEnterFullScreen\",\n\t\t\t\"webkitRequestFullScreen\",\n\t\t\t\"mozRequestFullScreen\",\n\t\t\t\"msRequestFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst exitMethod = computed(() => {\n\t\treturn [\n\t\t\t\"exitFullscreen\",\n\t\t\t\"webkitExitFullscreen\",\n\t\t\t\"webkitExitFullScreen\",\n\t\t\t\"webkitCancelFullScreen\",\n\t\t\t\"mozCancelFullScreen\",\n\t\t\t\"msExitFullscreen\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenEnabled = computed(() => {\n\t\treturn [\n\t\t\t\"fullScreen\",\n\t\t\t\"webkitIsFullScreen\",\n\t\t\t\"webkitDisplayingFullscreen\",\n\t\t\t\"mozFullScreen\",\n\t\t\t\"msFullscreenElement\"\n\t\t].find((m) => document$1 && m in document$1 || targetRef.value && m in targetRef.value);\n\t});\n\tconst fullscreenElementMethod = [\n\t\t\"fullscreenElement\",\n\t\t\"webkitFullscreenElement\",\n\t\t\"mozFullScreenElement\",\n\t\t\"msFullscreenElement\"\n\t].find((m) => document$1 && m in document$1);\n\tconst isSupported = /* @__PURE__ */ useSupported(() => targetRef.value && document$1 && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n\tconst isCurrentElementFullScreen = () => {\n\t\tif (fullscreenElementMethod) return (document$1 === null || document$1 === void 0 ? void 0 : document$1[fullscreenElementMethod]) === targetRef.value;\n\t\treturn false;\n\t};\n\tconst isElementFullScreen = () => {\n\t\tif (fullscreenEnabled.value) if (document$1 && document$1[fullscreenEnabled.value] != null) return document$1[fullscreenEnabled.value];\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[fullscreenEnabled.value]) != null) return Boolean(target$1[fullscreenEnabled.value]);\n\t\t}\n\t\treturn false;\n\t};\n\tasync function exit() {\n\t\tif (!isSupported.value || !isFullscreen.value) return;\n\t\tif (exitMethod.value) if ((document$1 === null || document$1 === void 0 ? void 0 : document$1[exitMethod.value]) != null) await document$1[exitMethod.value]();\n\t\telse {\n\t\t\tconst target$1 = targetRef.value;\n\t\t\tif ((target$1 === null || target$1 === void 0 ? void 0 : target$1[exitMethod.value]) != null) await target$1[exitMethod.value]();\n\t\t}\n\t\tisFullscreen.value = false;\n\t}\n\tasync function enter() {\n\t\tif (!isSupported.value || isFullscreen.value) return;\n\t\tif (isElementFullScreen()) await exit();\n\t\tconst target$1 = targetRef.value;\n\t\tif (requestMethod.value && (target$1 === null || target$1 === void 0 ? void 0 : target$1[requestMethod.value]) != null) {\n\t\t\tawait target$1[requestMethod.value]();\n\t\t\tisFullscreen.value = true;\n\t\t}\n\t}\n\tasync function toggle() {\n\t\tawait (isFullscreen.value ? exit() : enter());\n\t}\n\tconst handlerCallback = () => {\n\t\tconst isElementFullScreenValue = isElementFullScreen();\n\t\tif (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen()) isFullscreen.value = isElementFullScreenValue;\n\t};\n\tconst listenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t};\n\tuseEventListener(document$1, eventHandlers, handlerCallback, listenerOptions);\n\tuseEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, listenerOptions);\n\ttryOnMounted(handlerCallback, false);\n\tif (autoExit) tryOnScopeDispose(exit);\n\treturn {\n\t\tisSupported,\n\t\tisFullscreen,\n\t\tenter,\n\t\texit,\n\t\ttoggle\n\t};\n}\n\n//#endregion\n//#region useGamepad/index.ts\n/**\n* Maps a standard standard gamepad to an Xbox 360 Controller.\n*/\nfunction mapGamepadToXbox360Controller(gamepad) {\n\treturn computed(() => {\n\t\tif (gamepad.value) return {\n\t\t\tbuttons: {\n\t\t\t\ta: gamepad.value.buttons[0],\n\t\t\t\tb: gamepad.value.buttons[1],\n\t\t\t\tx: gamepad.value.buttons[2],\n\t\t\t\ty: gamepad.value.buttons[3]\n\t\t\t},\n\t\t\tbumper: {\n\t\t\t\tleft: gamepad.value.buttons[4],\n\t\t\t\tright: gamepad.value.buttons[5]\n\t\t\t},\n\t\t\ttriggers: {\n\t\t\t\tleft: gamepad.value.buttons[6],\n\t\t\t\tright: gamepad.value.buttons[7]\n\t\t\t},\n\t\t\tstick: {\n\t\t\t\tleft: {\n\t\t\t\t\thorizontal: gamepad.value.axes[0],\n\t\t\t\t\tvertical: gamepad.value.axes[1],\n\t\t\t\t\tbutton: gamepad.value.buttons[10]\n\t\t\t\t},\n\t\t\t\tright: {\n\t\t\t\t\thorizontal: gamepad.value.axes[2],\n\t\t\t\t\tvertical: gamepad.value.axes[3],\n\t\t\t\t\tbutton: gamepad.value.buttons[11]\n\t\t\t\t}\n\t\t\t},\n\t\t\tdpad: {\n\t\t\t\tup: gamepad.value.buttons[12],\n\t\t\t\tdown: gamepad.value.buttons[13],\n\t\t\t\tleft: gamepad.value.buttons[14],\n\t\t\t\tright: gamepad.value.buttons[15]\n\t\t\t},\n\t\t\tback: gamepad.value.buttons[8],\n\t\t\tstart: gamepad.value.buttons[9]\n\t\t};\n\t\treturn null;\n\t});\n}\n/* @__NO_SIDE_EFFECTS__ */\nfunction useGamepad(options = {}) {\n\tconst { navigator: navigator$1 = defaultNavigator } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"getGamepads\" in navigator$1);\n\tconst gamepads = ref([]);\n\tconst onConnectedHook = createEventHook();\n\tconst onDisconnectedHook = createEventHook();\n\tconst stateFromGamepad = (gamepad) => {\n\t\tconst hapticActuators = [];\n\t\tconst vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n\t\tif (vibrationActuator) hapticActuators.push(vibrationActuator);\n\t\tif (gamepad.hapticActuators) hapticActuators.push(...gamepad.hapticActuators);\n\t\treturn {\n\t\t\tid: gamepad.id,\n\t\t\tindex: gamepad.index,\n\t\t\tconnected: gamepad.connected,\n\t\t\tmapping: gamepad.mapping,\n\t\t\ttimestamp: gamepad.timestamp,\n\t\t\tvibrationActuator: gamepad.vibrationActuator,\n\t\t\thapticActuators,\n\t\t\taxes: gamepad.axes.map((axes) => axes),\n\t\t\tbuttons: gamepad.buttons.map((button) => ({\n\t\t\t\tpressed: button.pressed,\n\t\t\t\ttouched: button.touched,\n\t\t\t\tvalue: button.value\n\t\t\t}))\n\t\t};\n\t};\n\tconst updateGamepadState = () => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n\t};\n\tconst { isActive, pause, resume } = useRafFn(updateGamepadState);\n\tconst onGamepadConnected = (gamepad) => {\n\t\tif (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n\t\t\tgamepads.value.push(stateFromGamepad(gamepad));\n\t\t\tonConnectedHook.trigger(gamepad.index);\n\t\t}\n\t\tresume();\n\t};\n\tconst onGamepadDisconnected = (gamepad) => {\n\t\tgamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n\t\tonDisconnectedHook.trigger(gamepad.index);\n\t};\n\tconst listenerOptions = { passive: true };\n\tuseEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad), listenerOptions);\n\tuseEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad), listenerOptions);\n\ttryOnMounted(() => {\n\t\tconst _gamepads = (navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.getGamepads()) || [];\n\t\tfor (const gamepad of _gamepads) if (gamepad && gamepads.value[gamepad.index]) onGamepadConnected(gamepad);\n\t});\n\tpause();\n\treturn {\n\t\tisSupported,\n\t\tonConnected: onConnectedHook.on,\n\t\tonDisconnected: onDisconnectedHook.on,\n\t\tgamepads,\n\t\tpause,\n\t\tresume,\n\t\tisActive\n\t};\n}\n\n//#endregion\n//#region useGeolocation/index.ts\n/**\n* Reactive Geolocation API.\n*\n* @see https://vueuse.org/useGeolocation\n* @param options\n*/\nfunction useGeolocation(options = {}) {\n\tconst { enableHighAccuracy = true, maximumAge = 3e4, timeout = 27e3, navigator: navigator$1 = defaultNavigator, immediate = true } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"geolocation\" in navigator$1);\n\tconst locatedAt = shallowRef(null);\n\tconst error = shallowRef(null);\n\tconst coords = ref({\n\t\taccuracy: 0,\n\t\tlatitude: Number.POSITIVE_INFINITY,\n\t\tlongitude: Number.POSITIVE_INFINITY,\n\t\taltitude: null,\n\t\taltitudeAccuracy: null,\n\t\theading: null,\n\t\tspeed: null\n\t});\n\tfunction updatePosition(position) {\n\t\tlocatedAt.value = position.timestamp;\n\t\tcoords.value = position.coords;\n\t\terror.value = null;\n\t}\n\tlet watcher;\n\tfunction resume() {\n\t\tif (isSupported.value) watcher = navigator$1.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n\t\t\tenableHighAccuracy,\n\t\t\tmaximumAge,\n\t\t\ttimeout\n\t\t});\n\t}\n\tif (immediate) resume();\n\tfunction pause() {\n\t\tif (watcher && navigator$1) navigator$1.geolocation.clearWatch(watcher);\n\t}\n\ttryOnScopeDispose(() => {\n\t\tpause();\n\t});\n\treturn {\n\t\tisSupported,\n\t\tcoords,\n\t\tlocatedAt,\n\t\terror,\n\t\tresume,\n\t\tpause\n\t};\n}\n\n//#endregion\n//#region useIdle/index.ts\nconst defaultEvents$1 = [\n\t\"mousemove\",\n\t\"mousedown\",\n\t\"resize\",\n\t\"keydown\",\n\t\"touchstart\",\n\t\"wheel\"\n];\nconst oneMinute = 6e4;\n/**\n* Tracks whether the user is being inactive.\n*\n* @see https://vueuse.org/useIdle\n* @param timeout default to 1 minute\n* @param options IdleOptions\n*/\nfunction useIdle(timeout = oneMinute, options = {}) {\n\tconst { initialState = false, listenForVisibilityChange = true, events: events$1 = defaultEvents$1, window: window$1 = defaultWindow, eventFilter = throttleFilter(50) } = options;\n\tconst idle = shallowRef(initialState);\n\tconst lastActive = shallowRef(timestamp());\n\tconst isPending = shallowRef(false);\n\tlet timer;\n\tconst reset = () => {\n\t\tidle.value = false;\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => idle.value = true, timeout);\n\t};\n\tconst onEvent = createFilterWrapper(eventFilter, () => {\n\t\tlastActive.value = timestamp();\n\t\treset();\n\t});\n\tif (window$1) {\n\t\tconst document$1 = window$1.document;\n\t\tconst listenerOptions = { passive: true };\n\t\tfor (const event of events$1) useEventListener(window$1, event, () => {\n\t\t\tif (!isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tif (listenForVisibilityChange) useEventListener(document$1, \"visibilitychange\", () => {\n\t\t\tif (document$1.hidden || !isPending.value) return;\n\t\t\tonEvent();\n\t\t}, listenerOptions);\n\t\tstart();\n\t}\n\tfunction start() {\n\t\tif (isPending.value) return;\n\t\tisPending.value = true;\n\t\tif (!initialState) reset();\n\t}\n\tfunction stop() {\n\t\tidle.value = initialState;\n\t\tclearTimeout(timer);\n\t\tisPending.value = false;\n\t}\n\treturn {\n\t\tidle,\n\t\tlastActive,\n\t\treset,\n\t\tstop,\n\t\tstart,\n\t\tisPending: shallowReadonly(isPending)\n\t};\n}\n\n//#endregion\n//#region useImage/index.ts\nasync function loadImage(options) {\n\treturn new Promise((resolve, reject) => {\n\t\tconst img = new Image();\n\t\tconst { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy, width, height, decoding, fetchPriority, ismap, usemap } = options;\n\t\timg.src = src;\n\t\tif (srcset != null) img.srcset = srcset;\n\t\tif (sizes != null) img.sizes = sizes;\n\t\tif (clazz != null) img.className = clazz;\n\t\tif (loading != null) img.loading = loading;\n\t\tif (crossorigin != null) img.crossOrigin = crossorigin;\n\t\tif (referrerPolicy != null) img.referrerPolicy = referrerPolicy;\n\t\tif (width != null) img.width = width;\n\t\tif (height != null) img.height = height;\n\t\tif (decoding != null) img.decoding = decoding;\n\t\tif (fetchPriority != null) img.fetchPriority = fetchPriority;\n\t\tif (ismap != null) img.isMap = ismap;\n\t\tif (usemap != null) img.useMap = usemap;\n\t\timg.onload = () => resolve(img);\n\t\timg.onerror = reject;\n\t});\n}\n/**\n* Reactive load an image in the browser, you can wait the result to display it or show a fallback.\n*\n* @see https://vueuse.org/useImage\n* @param options Image attributes, as used in the tag\n* @param asyncStateOptions\n*/\nfunction useImage(options, asyncStateOptions = {}) {\n\tconst state = useAsyncState(() => loadImage(toValue(options)), void 0, {\n\t\tresetOnExecute: true,\n\t\t...asyncStateOptions\n\t});\n\twatch(() => toValue(options), () => state.execute(asyncStateOptions.delay), { deep: true });\n\treturn state;\n}\n\n//#endregion\n//#region _resolve-element.ts\n/**\n* Resolves an element from a given element, window, or document.\n*\n* @internal\n*/\nfunction resolveElement(el) {\n\tif (typeof Window !== \"undefined\" && el instanceof Window) return el.document.documentElement;\n\tif (typeof Document !== \"undefined\" && el instanceof Document) return el.documentElement;\n\treturn el;\n}\n\n//#endregion\n//#region useScroll/index.ts\n/**\n* We have to check if the scroll amount is close enough to some threshold in order to\n* more accurately calculate arrivedState. This is because scrollTop/scrollLeft are non-rounded\n* numbers, while scrollHeight/scrollWidth and clientHeight/clientWidth are rounded.\n* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#determine_if_an_element_has_been_totally_scrolled\n*/\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\n/**\n* Reactive scroll.\n*\n* @see https://vueuse.org/useScroll\n* @param element\n* @param options\n*/\nfunction useScroll(element, options = {}) {\n\tconst { throttle = 0, idle = 200, onStop = noop, onScroll = noop, offset = {\n\t\tleft: 0,\n\t\tright: 0,\n\t\ttop: 0,\n\t\tbottom: 0\n\t}, observe: _observe = { mutation: false }, eventListenerOptions = {\n\t\tcapture: false,\n\t\tpassive: true\n\t}, behavior = \"auto\", window: window$1 = defaultWindow, onError = (e) => {\n\t\tconsole.error(e);\n\t} } = options;\n\tconst observe = typeof _observe === \"boolean\" ? { mutation: _observe } : _observe;\n\tconst internalX = shallowRef(0);\n\tconst internalY = shallowRef(0);\n\tconst x = computed({\n\t\tget() {\n\t\t\treturn internalX.value;\n\t\t},\n\t\tset(x$1) {\n\t\t\tscrollTo(x$1, void 0);\n\t\t}\n\t});\n\tconst y = computed({\n\t\tget() {\n\t\t\treturn internalY.value;\n\t\t},\n\t\tset(y$1) {\n\t\t\tscrollTo(void 0, y$1);\n\t\t}\n\t});\n\tfunction scrollTo(_x, _y) {\n\t\tvar _ref, _toValue, _toValue2, _document;\n\t\tif (!window$1) return;\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\t(_ref = _element instanceof Document ? window$1.document.body : _element) === null || _ref === void 0 || _ref.scrollTo({\n\t\t\ttop: (_toValue = toValue(_y)) !== null && _toValue !== void 0 ? _toValue : y.value,\n\t\t\tleft: (_toValue2 = toValue(_x)) !== null && _toValue2 !== void 0 ? _toValue2 : x.value,\n\t\t\tbehavior: toValue(behavior)\n\t\t});\n\t\tconst scrollContainer = (_element === null || _element === void 0 || (_document = _element.document) === null || _document === void 0 ? void 0 : _document.documentElement) || (_element === null || _element === void 0 ? void 0 : _element.documentElement) || _element;\n\t\tif (x != null) internalX.value = scrollContainer.scrollLeft;\n\t\tif (y != null) internalY.value = scrollContainer.scrollTop;\n\t}\n\tconst isScrolling = shallowRef(false);\n\tconst arrivedState = reactive({\n\t\tleft: true,\n\t\tright: false,\n\t\ttop: true,\n\t\tbottom: false\n\t});\n\tconst directions = reactive({\n\t\tleft: false,\n\t\tright: false,\n\t\ttop: false,\n\t\tbottom: false\n\t});\n\tconst onScrollEnd = (e) => {\n\t\tif (!isScrolling.value) return;\n\t\tisScrolling.value = false;\n\t\tdirections.left = false;\n\t\tdirections.right = false;\n\t\tdirections.top = false;\n\t\tdirections.bottom = false;\n\t\tonStop(e);\n\t};\n\tconst onScrollEndDebounced = useDebounceFn(onScrollEnd, throttle + idle);\n\tconst setArrivedState = (target) => {\n\t\tvar _document2;\n\t\tif (!window$1) return;\n\t\tconst el = (target === null || target === void 0 || (_document2 = target.document) === null || _document2 === void 0 ? void 0 : _document2.documentElement) || (target === null || target === void 0 ? void 0 : target.documentElement) || unrefElement(target);\n\t\tconst { display, flexDirection, direction } = getComputedStyle(el);\n\t\tconst directionMultipler = direction === \"rtl\" ? -1 : 1;\n\t\tconst scrollLeft = el.scrollLeft;\n\t\tdirections.left = scrollLeft < internalX.value;\n\t\tdirections.right = scrollLeft > internalX.value;\n\t\tconst left = Math.abs(scrollLeft * directionMultipler) <= (offset.left || 0);\n\t\tconst right = Math.abs(scrollLeft * directionMultipler) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\tif (display === \"flex\" && flexDirection === \"row-reverse\") {\n\t\t\tarrivedState.left = right;\n\t\t\tarrivedState.right = left;\n\t\t} else {\n\t\t\tarrivedState.left = left;\n\t\t\tarrivedState.right = right;\n\t\t}\n\t\tinternalX.value = scrollLeft;\n\t\tlet scrollTop = el.scrollTop;\n\t\tif (target === window$1.document && !scrollTop) scrollTop = window$1.document.body.scrollTop;\n\t\tdirections.top = scrollTop < internalY.value;\n\t\tdirections.bottom = scrollTop > internalY.value;\n\t\tconst top = Math.abs(scrollTop) <= (offset.top || 0);\n\t\tconst bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n\t\t/**\n\t\t* reverse columns and rows behave exactly the other way around,\n\t\t* bottom is treated as top and top is treated as the negative version of bottom\n\t\t*/\n\t\tif (display === \"flex\" && flexDirection === \"column-reverse\") {\n\t\t\tarrivedState.top = bottom;\n\t\t\tarrivedState.bottom = top;\n\t\t} else {\n\t\t\tarrivedState.top = top;\n\t\t\tarrivedState.bottom = bottom;\n\t\t}\n\t\tinternalY.value = scrollTop;\n\t};\n\tconst onScrollHandler = (e) => {\n\t\tvar _documentElement;\n\t\tif (!window$1) return;\n\t\tsetArrivedState((_documentElement = e.target.documentElement) !== null && _documentElement !== void 0 ? _documentElement : e.target);\n\t\tisScrolling.value = true;\n\t\tonScrollEndDebounced(e);\n\t\tonScroll(e);\n\t};\n\tuseEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler, eventListenerOptions);\n\ttryOnMounted(() => {\n\t\ttry {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (!_element) return;\n\t\t\tsetArrivedState(_element);\n\t\t} catch (e) {\n\t\t\tonError(e);\n\t\t}\n\t});\n\tif ((observe === null || observe === void 0 ? void 0 : observe.mutation) && element != null && element !== window$1 && element !== document) useMutationObserver(element, () => {\n\t\tconst _element = toValue(element);\n\t\tif (!_element) return;\n\t\tsetArrivedState(_element);\n\t}, {\n\t\tattributes: true,\n\t\tchildList: true,\n\t\tsubtree: true\n\t});\n\tuseEventListener(element, \"scrollend\", onScrollEnd, eventListenerOptions);\n\treturn {\n\t\tx,\n\t\ty,\n\t\tisScrolling,\n\t\tarrivedState,\n\t\tdirections,\n\t\tmeasure() {\n\t\t\tconst _element = toValue(element);\n\t\t\tif (window$1 && _element) setArrivedState(_element);\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useInfiniteScroll/index.ts\n/**\n* Reactive infinite scroll.\n*\n* @see https://vueuse.org/useInfiniteScroll\n*/\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n\tvar _options$distance;\n\tconst { direction = \"bottom\", interval = 100, canLoadMore = () => true } = options;\n\tconst state = reactive(useScroll(element, {\n\t\t...options,\n\t\toffset: {\n\t\t\t[direction]: (_options$distance = options.distance) !== null && _options$distance !== void 0 ? _options$distance : 0,\n\t\t\t...options.offset\n\t\t}\n\t}));\n\tconst promise = ref();\n\tconst isLoading = computed(() => !!promise.value);\n\tconst observedElement = computed(() => {\n\t\treturn resolveElement(toValue(element));\n\t});\n\tconst isElementVisible = useElementVisibility(observedElement);\n\tfunction checkAndLoad() {\n\t\tstate.measure();\n\t\tif (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value)) return;\n\t\tconst { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n\t\tconst isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n\t\tif (state.arrivedState[direction] || isNarrower) {\n\t\t\tif (!promise.value) promise.value = Promise.all([onLoadMore(state), new Promise((resolve) => setTimeout(resolve, interval))]).finally(() => {\n\t\t\t\tpromise.value = null;\n\t\t\t\tnextTick(() => checkAndLoad());\n\t\t\t});\n\t\t}\n\t}\n\ttryOnUnmounted(watch(() => [state.arrivedState[direction], isElementVisible.value], checkAndLoad, { immediate: true }));\n\treturn {\n\t\tisLoading,\n\t\treset() {\n\t\t\tnextTick(() => checkAndLoad());\n\t\t}\n\t};\n}\n\n//#endregion\n//#region useKeyModifier/index.ts\nconst defaultEvents = [\n\t\"mousedown\",\n\t\"mouseup\",\n\t\"keydown\",\n\t\"keyup\"\n];\n/* @__NO_SIDE_EFFECTS__ */\nfunction useKeyModifier(modifier, options = {}) {\n\tconst { events: events$1 = defaultEvents, document: document$1 = defaultDocument, initial = null } = options;\n\tconst state = shallowRef(initial);\n\tif (document$1) events$1.forEach((listenerEvent) => {\n\t\tuseEventListener(document$1, listenerEvent, (evt) => {\n\t\t\tif (typeof evt.getModifierState === \"function\") state.value = evt.getModifierState(modifier);\n\t\t}, { passive: true });\n\t});\n\treturn state;\n}\n\n//#endregion\n//#region useLocalStorage/index.ts\n/**\n* Reactive LocalStorage.\n*\n* @see https://vueuse.org/useLocalStorage\n* @param key\n* @param initialValue\n* @param options\n*/\nfunction useLocalStorage(key, initialValue, options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\treturn useStorage(key, initialValue, window$1 === null || window$1 === void 0 ? void 0 : window$1.localStorage, options);\n}\n\n//#endregion\n//#region useMagicKeys/aliasMap.ts\nconst DefaultMagicKeysAliasMap = {\n\tctrl: \"control\",\n\tcommand: \"meta\",\n\tcmd: \"meta\",\n\toption: \"alt\",\n\tup: \"arrowup\",\n\tdown: \"arrowdown\",\n\tleft: \"arrowleft\",\n\tright: \"arrowright\"\n};\n\n//#endregion\n//#region useMagicKeys/index.ts\nfunction useMagicKeys(options = {}) {\n\tconst { reactive: useReactive = false, target = defaultWindow, aliasMap = DefaultMagicKeysAliasMap, passive = true, onEventFired = noop } = options;\n\tconst current = reactive(/* @__PURE__ */ new Set());\n\tconst obj = {\n\t\ttoJSON() {\n\t\t\treturn {};\n\t\t},\n\t\tcurrent\n\t};\n\tconst refs = useReactive ? reactive(obj) : obj;\n\tconst metaDeps = /* @__PURE__ */ new Set();\n\tconst depsMap = new Map([\n\t\t[\"Meta\", metaDeps],\n\t\t[\"Shift\", /* @__PURE__ */ new Set()],\n\t\t[\"Alt\", /* @__PURE__ */ new Set()]\n\t]);\n\tconst usedKeys = /* @__PURE__ */ new Set();\n\tfunction setRefs(key, value) {\n\t\tif (key in refs) if (useReactive) refs[key] = value;\n\t\telse refs[key].value = value;\n\t}\n\tfunction reset() {\n\t\tcurrent.clear();\n\t\tfor (const key of usedKeys) setRefs(key, false);\n\t}\n\tfunction updateDeps(value, e, keys$1) {\n\t\tif (!value || typeof e.getModifierState !== \"function\") return;\n\t\tfor (const [modifier, depsSet] of depsMap) if (e.getModifierState(modifier)) {\n\t\t\tkeys$1.forEach((key) => depsSet.add(key));\n\t\t\tbreak;\n\t\t}\n\t}\n\tfunction clearDeps(value, key) {\n\t\tif (value) return;\n\t\tconst depsMapKey = `${key[0].toUpperCase()}${key.slice(1)}`;\n\t\tconst deps = depsMap.get(depsMapKey);\n\t\tif (![\"shift\", \"alt\"].includes(key) || !deps) return;\n\t\tconst depsArray = Array.from(deps);\n\t\tconst depsIndex = depsArray.indexOf(key);\n\t\tdepsArray.forEach((key$1, index) => {\n\t\t\tif (index >= depsIndex) {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t}\n\t\t});\n\t\tdeps.clear();\n\t}\n\tfunction updateRefs(e, value) {\n\t\tvar _e$key, _e$code;\n\t\tconst key = (_e$key = e.key) === null || _e$key === void 0 ? void 0 : _e$key.toLowerCase();\n\t\tconst values = [(_e$code = e.code) === null || _e$code === void 0 ? void 0 : _e$code.toLowerCase(), key].filter(Boolean);\n\t\tif (key) if (value) current.add(key);\n\t\telse current.delete(key);\n\t\tfor (const key$1 of values) {\n\t\t\tusedKeys.add(key$1);\n\t\t\tsetRefs(key$1, value);\n\t\t}\n\t\tupdateDeps(value, e, [...current, ...values]);\n\t\tclearDeps(value, key);\n\t\tif (key === \"meta\" && !value) {\n\t\t\tmetaDeps.forEach((key$1) => {\n\t\t\t\tcurrent.delete(key$1);\n\t\t\t\tsetRefs(key$1, false);\n\t\t\t});\n\t\t\tmetaDeps.clear();\n\t\t}\n\t}\n\tuseEventListener(target, \"keydown\", (e) => {\n\t\tupdateRefs(e, true);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(target, \"keyup\", (e) => {\n\t\tupdateRefs(e, false);\n\t\treturn onEventFired(e);\n\t}, { passive });\n\tuseEventListener(\"blur\", reset, { passive });\n\tuseEventListener(\"focus\", reset, { passive });\n\tconst proxy = new Proxy(refs, { get(target$1, prop, rec) {\n\t\tif (typeof prop !== \"string\") return Reflect.get(target$1, prop, rec);\n\t\tprop = prop.toLowerCase();\n\t\tif (prop in aliasMap) prop = aliasMap[prop];\n\t\tif (!(prop in refs)) if (/[+_-]/.test(prop)) {\n\t\t\tconst keys$1 = prop.split(/[+_-]/g).map((i) => i.trim());\n\t\t\trefs[prop] = computed(() => keys$1.map((key) => toValue(proxy[key])).every(Boolean));\n\t\t} else refs[prop] = shallowRef(false);\n\t\tconst r = Reflect.get(target$1, prop, rec);\n\t\treturn useReactive ? toValue(r) : r;\n\t} });\n\treturn proxy;\n}\n\n//#endregion\n//#region useMediaControls/index.ts\n/**\n* Automatically check if the ref exists and if it does run the cb fn\n*/\nfunction usingElRef(source, cb) {\n\tif (toValue(source)) cb(toValue(source));\n}\n/**\n* Converts a TimeRange object to an array\n*/\nfunction timeRangeToArray(timeRanges) {\n\tlet ranges = [];\n\tfor (let i = 0; i < timeRanges.length; ++i) ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n\treturn ranges;\n}\n/**\n* Converts a TextTrackList object to an array of `UseMediaTextTrack`\n*/\nfunction tracksToArray(tracks) {\n\treturn Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({\n\t\tid,\n\t\tlabel,\n\t\tkind,\n\t\tlanguage,\n\t\tmode,\n\t\tactiveCues,\n\t\tcues,\n\t\tinBandMetadataTrackDispatchType\n\t}));\n}\nconst defaultOptions = {\n\tsrc: \"\",\n\ttracks: []\n};\nfunction useMediaControls(target, options = {}) {\n\ttarget = toRef(target);\n\toptions = {\n\t\t...defaultOptions,\n\t\t...options\n\t};\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst listenerOptions = { passive: true };\n\tconst currentTime = shallowRef(0);\n\tconst duration = shallowRef(0);\n\tconst seeking = shallowRef(false);\n\tconst volume = shallowRef(1);\n\tconst waiting = shallowRef(false);\n\tconst ended = shallowRef(false);\n\tconst playing = shallowRef(false);\n\tconst rate = shallowRef(1);\n\tconst stalled = shallowRef(false);\n\tconst buffered = ref([]);\n\tconst tracks = ref([]);\n\tconst selectedTrack = shallowRef(-1);\n\tconst isPictureInPicture = shallowRef(false);\n\tconst muted = shallowRef(false);\n\tconst supportsPictureInPicture = document$1 && \"pictureInPictureEnabled\" in document$1;\n\tconst sourceErrorEvent = createEventHook();\n\tconst playbackErrorEvent = createEventHook();\n\t/**\n\t* Disables the specified track. If no track is specified then\n\t* all tracks will be disabled\n\t*\n\t* @param track The id of the track to disable\n\t*/\n\tconst disableTrack = (track) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tif (track) {\n\t\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\t\tel.textTracks[id].mode = \"disabled\";\n\t\t\t} else for (let i = 0; i < el.textTracks.length; ++i) el.textTracks[i].mode = \"disabled\";\n\t\t\tselectedTrack.value = -1;\n\t\t});\n\t};\n\t/**\n\t* Enables the specified track and disables the\n\t* other tracks unless otherwise specified\n\t*\n\t* @param track The track of the id of the track to enable\n\t* @param disableTracks Disable all other tracks\n\t*/\n\tconst enableTrack = (track, disableTracks = true) => {\n\t\tusingElRef(target, (el) => {\n\t\t\tconst id = typeof track === \"number\" ? track : track.id;\n\t\t\tif (disableTracks) disableTrack();\n\t\t\tel.textTracks[id].mode = \"showing\";\n\t\t\tselectedTrack.value = id;\n\t\t});\n\t};\n\t/**\n\t* Toggle picture in picture mode for the player.\n\t*/\n\tconst togglePictureInPicture = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tusingElRef(target, async (el) => {\n\t\t\t\tif (supportsPictureInPicture) if (!isPictureInPicture.value) el.requestPictureInPicture().then(resolve).catch(reject);\n\t\t\t\telse document$1.exitPictureInPicture().then(resolve).catch(reject);\n\t\t\t});\n\t\t});\n\t};\n\t/**\n\t* This will automatically inject sources to the media element. The sources will be\n\t* appended as children to the media element as `` elements.\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tconst src = toValue(options.src);\n\t\tlet sources = [];\n\t\tif (!src) return;\n\t\tif (typeof src === \"string\") sources = [{ src }];\n\t\telse if (Array.isArray(src)) sources = src;\n\t\telse if (isObject(src)) sources = [src];\n\t\tel.querySelectorAll(\"source\").forEach((e) => {\n\t\t\te.remove();\n\t\t});\n\t\tsources.forEach(({ src: src$1, type, media }) => {\n\t\t\tconst source = document$1.createElement(\"source\");\n\t\t\tsource.setAttribute(\"src\", src$1);\n\t\t\tsource.setAttribute(\"type\", type || \"\");\n\t\t\tsource.setAttribute(\"media\", media || \"\");\n\t\t\tuseEventListener(source, \"error\", sourceErrorEvent.trigger, listenerOptions);\n\t\t\tel.appendChild(source);\n\t\t});\n\t\tel.load();\n\t});\n\t/**\n\t* Apply composable state to the element, also when element is changed\n\t*/\n\twatch([target, volume], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.volume = volume.value;\n\t});\n\twatch([target, muted], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.muted = muted.value;\n\t});\n\twatch([target, rate], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.playbackRate = rate.value;\n\t});\n\t/**\n\t* Load Tracks\n\t*/\n\twatchEffect(() => {\n\t\tif (!document$1) return;\n\t\tconst textTracks = toValue(options.tracks);\n\t\tconst el = toValue(target);\n\t\tif (!textTracks || !textTracks.length || !el) return;\n\t\t/**\n\t\t* The MediaAPI provides an API for adding text tracks, but they don't currently\n\t\t* have an API for removing text tracks, so instead we will just create and remove\n\t\t* the tracks manually using the HTML api.\n\t\t*/\n\t\tel.querySelectorAll(\"track\").forEach((e) => e.remove());\n\t\ttextTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n\t\t\tconst track = document$1.createElement(\"track\");\n\t\t\ttrack.default = isDefault || false;\n\t\t\ttrack.kind = kind;\n\t\t\ttrack.label = label;\n\t\t\ttrack.src = src;\n\t\t\ttrack.srclang = srcLang;\n\t\t\tif (track.default) selectedTrack.value = i;\n\t\t\tel.appendChild(track);\n\t\t});\n\t});\n\t/**\n\t* This will allow us to update the current time from the timeupdate event\n\t* without setting the medias current position, but if the user changes the\n\t* current time via the ref, then the media will seek.\n\t*\n\t* If we did not use an ignorable watch, then the current time update from\n\t* the timeupdate event would cause the media to stutter.\n\t*/\n\tconst { ignoreUpdates: ignoreCurrentTimeUpdates } = watchIgnorable(currentTime, (time) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tel.currentTime = time;\n\t});\n\t/**\n\t* Using an ignorable watch so we can control the play state using a ref and not\n\t* a function\n\t*/\n\tconst { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tif (isPlaying) el.play().catch((e) => {\n\t\t\tplaybackErrorEvent.trigger(e);\n\t\t\tthrow e;\n\t\t});\n\t\telse el.pause();\n\t});\n\tuseEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = toValue(target).currentTime), listenerOptions);\n\tuseEventListener(target, \"durationchange\", () => duration.value = toValue(target).duration, listenerOptions);\n\tuseEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(toValue(target).buffered), listenerOptions);\n\tuseEventListener(target, \"seeking\", () => seeking.value = true, listenerOptions);\n\tuseEventListener(target, \"seeked\", () => seeking.value = false, listenerOptions);\n\tuseEventListener(target, [\"waiting\", \"loadstart\"], () => {\n\t\twaiting.value = true;\n\t\tignorePlayingUpdates(() => playing.value = false);\n\t}, listenerOptions);\n\tuseEventListener(target, \"loadeddata\", () => waiting.value = false, listenerOptions);\n\tuseEventListener(target, \"playing\", () => {\n\t\twaiting.value = false;\n\t\tended.value = false;\n\t\tignorePlayingUpdates(() => playing.value = true);\n\t}, listenerOptions);\n\tuseEventListener(target, \"ratechange\", () => rate.value = toValue(target).playbackRate, listenerOptions);\n\tuseEventListener(target, \"stalled\", () => stalled.value = true, listenerOptions);\n\tuseEventListener(target, \"ended\", () => ended.value = true, listenerOptions);\n\tuseEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false), listenerOptions);\n\tuseEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true), listenerOptions);\n\tuseEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true, listenerOptions);\n\tuseEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false, listenerOptions);\n\tuseEventListener(target, \"volumechange\", () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tvolume.value = el.volume;\n\t\tmuted.value = el.muted;\n\t}, listenerOptions);\n\t/**\n\t* The following listeners need to listen to a nested\n\t* object on the target, so we will have to use a nested\n\t* watch and manually remove the listeners\n\t*/\n\tconst listeners = [];\n\tconst stop = watch([target], () => {\n\t\tconst el = toValue(target);\n\t\tif (!el) return;\n\t\tstop();\n\t\tlisteners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t\tlisteners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks), listenerOptions);\n\t});\n\ttryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n\treturn {\n\t\tcurrentTime,\n\t\tduration,\n\t\twaiting,\n\t\tseeking,\n\t\tended,\n\t\tstalled,\n\t\tbuffered,\n\t\tplaying,\n\t\trate,\n\t\tvolume,\n\t\tmuted,\n\t\ttracks,\n\t\tselectedTrack,\n\t\tenableTrack,\n\t\tdisableTrack,\n\t\tsupportsPictureInPicture,\n\t\ttogglePictureInPicture,\n\t\tisPictureInPicture,\n\t\tonSourceError: sourceErrorEvent.on,\n\t\tonPlaybackError: playbackErrorEvent.on\n\t};\n}\n\n//#endregion\n//#region useMemoize/index.ts\n/**\n* Reactive function result cache based on arguments\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemoize(resolver, options) {\n\tconst initCache = () => {\n\t\tif (options === null || options === void 0 ? void 0 : options.cache) return shallowReactive(options.cache);\n\t\treturn shallowReactive(/* @__PURE__ */ new Map());\n\t};\n\tconst cache = initCache();\n\t/**\n\t* Generate key from args\n\t*/\n\tconst generateKey = (...args) => (options === null || options === void 0 ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n\t/**\n\t* Load data and save in cache\n\t*/\n\tconst _loadData = (key, ...args) => {\n\t\tcache.set(key, resolver(...args));\n\t\treturn cache.get(key);\n\t};\n\tconst loadData = (...args) => _loadData(generateKey(...args), ...args);\n\t/**\n\t* Delete key from cache\n\t*/\n\tconst deleteData = (...args) => {\n\t\tcache.delete(generateKey(...args));\n\t};\n\t/**\n\t* Clear cached data\n\t*/\n\tconst clearData = () => {\n\t\tcache.clear();\n\t};\n\tconst memoized = (...args) => {\n\t\tconst key = generateKey(...args);\n\t\tif (cache.has(key)) return cache.get(key);\n\t\treturn _loadData(key, ...args);\n\t};\n\tmemoized.load = loadData;\n\tmemoized.delete = deleteData;\n\tmemoized.clear = clearData;\n\tmemoized.generateKey = generateKey;\n\tmemoized.cache = cache;\n\treturn memoized;\n}\n\n//#endregion\n//#region useMemory/index.ts\n/**\n* Reactive Memory Info.\n*\n* @see https://vueuse.org/useMemory\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMemory(options = {}) {\n\tconst memory = ref();\n\tconst isSupported = /* @__PURE__ */ useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n\tif (isSupported.value) {\n\t\tconst { interval = 1e3 } = options;\n\t\tuseIntervalFn(() => {\n\t\t\tmemory.value = performance.memory;\n\t\t}, interval, {\n\t\t\timmediate: options.immediate,\n\t\t\timmediateCallback: options.immediateCallback\n\t\t});\n\t}\n\treturn {\n\t\tisSupported,\n\t\tmemory\n\t};\n}\n\n//#endregion\n//#region useMouse/index.ts\nconst UseMouseBuiltinExtractors = {\n\tpage: (event) => [event.pageX, event.pageY],\n\tclient: (event) => [event.clientX, event.clientY],\n\tscreen: (event) => [event.screenX, event.screenY],\n\tmovement: (event) => event instanceof MouseEvent ? [event.movementX, event.movementY] : null\n};\n/**\n* Reactive mouse position.\n*\n* @see https://vueuse.org/useMouse\n* @param options\n*/\nfunction useMouse(options = {}) {\n\tconst { type = \"page\", touch = true, resetOnTouchEnds = false, initialValue = {\n\t\tx: 0,\n\t\ty: 0\n\t}, window: window$1 = defaultWindow, target = window$1, scroll = true, eventFilter } = options;\n\tlet _prevMouseEvent = null;\n\tlet _prevScrollX = 0;\n\tlet _prevScrollY = 0;\n\tconst x = shallowRef(initialValue.x);\n\tconst y = shallowRef(initialValue.y);\n\tconst sourceType = shallowRef(null);\n\tconst extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n\tconst mouseHandler = (event) => {\n\t\tconst result = extractor(event);\n\t\t_prevMouseEvent = event;\n\t\tif (result) {\n\t\t\t[x.value, y.value] = result;\n\t\t\tsourceType.value = \"mouse\";\n\t\t}\n\t\tif (window$1) {\n\t\t\t_prevScrollX = window$1.scrollX;\n\t\t\t_prevScrollY = window$1.scrollY;\n\t\t}\n\t};\n\tconst touchHandler = (event) => {\n\t\tif (event.touches.length > 0) {\n\t\t\tconst result = extractor(event.touches[0]);\n\t\t\tif (result) {\n\t\t\t\t[x.value, y.value] = result;\n\t\t\t\tsourceType.value = \"touch\";\n\t\t\t}\n\t\t}\n\t};\n\tconst scrollHandler = () => {\n\t\tif (!_prevMouseEvent || !window$1) return;\n\t\tconst pos = extractor(_prevMouseEvent);\n\t\tif (_prevMouseEvent instanceof MouseEvent && pos) {\n\t\t\tx.value = pos[0] + window$1.scrollX - _prevScrollX;\n\t\t\ty.value = pos[1] + window$1.scrollY - _prevScrollY;\n\t\t}\n\t};\n\tconst reset = () => {\n\t\tx.value = initialValue.x;\n\t\ty.value = initialValue.y;\n\t};\n\tconst mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n\tconst touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n\tconst scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n\t\tif (touch && type !== \"movement\") {\n\t\t\tuseEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n\t\t\tif (resetOnTouchEnds) useEventListener(target, \"touchend\", reset, listenerOptions);\n\t\t}\n\t\tif (scroll && type === \"page\") useEventListener(window$1, \"scroll\", scrollHandlerWrapper, listenerOptions);\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useMouseInElement/index.ts\n/**\n* Reactive mouse position related to an element.\n*\n* @see https://vueuse.org/useMouseInElement\n* @param target\n* @param options\n*/\nfunction useMouseInElement(target, options = {}) {\n\tconst { windowResize = true, windowScroll = true, handleOutside = true, window: window$1 = defaultWindow } = options;\n\tconst type = options.type || \"page\";\n\tconst { x, y, sourceType } = useMouse(options);\n\tconst targetRef = shallowRef(target !== null && target !== void 0 ? target : window$1 === null || window$1 === void 0 ? void 0 : window$1.document.body);\n\tconst elementX = shallowRef(0);\n\tconst elementY = shallowRef(0);\n\tconst elementPositionX = shallowRef(0);\n\tconst elementPositionY = shallowRef(0);\n\tconst elementHeight = shallowRef(0);\n\tconst elementWidth = shallowRef(0);\n\tconst isOutside = shallowRef(true);\n\tfunction update() {\n\t\tif (!window$1) return;\n\t\tconst el = unrefElement(targetRef);\n\t\tif (!el || !(el instanceof Element)) return;\n\t\tconst { left, top, width, height } = el.getBoundingClientRect();\n\t\telementPositionX.value = left + (type === \"page\" ? window$1.pageXOffset : 0);\n\t\telementPositionY.value = top + (type === \"page\" ? window$1.pageYOffset : 0);\n\t\telementHeight.value = height;\n\t\telementWidth.value = width;\n\t\tconst elX = x.value - elementPositionX.value;\n\t\tconst elY = y.value - elementPositionY.value;\n\t\tisOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n\t\tif (handleOutside || !isOutside.value) {\n\t\t\telementX.value = elX;\n\t\t\telementY.value = elY;\n\t\t}\n\t}\n\tconst stopFnList = [];\n\tfunction stop() {\n\t\tstopFnList.forEach((fn) => fn());\n\t\tstopFnList.length = 0;\n\t}\n\ttryOnMounted(() => {\n\t\tupdate();\n\t});\n\tif (window$1) {\n\t\tconst { stop: stopResizeObserver } = useResizeObserver(targetRef, update);\n\t\tconst { stop: stopMutationObserver } = useMutationObserver(targetRef, update, { attributeFilter: [\"style\", \"class\"] });\n\t\tconst stopWatch = watch([\n\t\t\ttargetRef,\n\t\t\tx,\n\t\t\ty\n\t\t], update);\n\t\tstopFnList.push(stopResizeObserver, stopMutationObserver, stopWatch);\n\t\tuseEventListener(document, \"mouseleave\", () => isOutside.value = true, { passive: true });\n\t\tif (windowScroll) stopFnList.push(useEventListener(\"scroll\", update, {\n\t\t\tcapture: true,\n\t\t\tpassive: true\n\t\t}));\n\t\tif (windowResize) stopFnList.push(useEventListener(\"resize\", update, { passive: true }));\n\t}\n\treturn {\n\t\tx,\n\t\ty,\n\t\tsourceType,\n\t\telementX,\n\t\telementY,\n\t\telementPositionX,\n\t\telementPositionY,\n\t\telementHeight,\n\t\telementWidth,\n\t\tisOutside,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region useMousePressed/index.ts\n/**\n* Reactive mouse pressing state.\n*\n* @see https://vueuse.org/useMousePressed\n* @param options\n*/\nfunction useMousePressed(options = {}) {\n\tconst { touch = true, drag = true, capture = false, initialValue = false, window: window$1 = defaultWindow } = options;\n\tconst pressed = shallowRef(initialValue);\n\tconst sourceType = shallowRef(null);\n\tif (!window$1) return {\n\t\tpressed,\n\t\tsourceType\n\t};\n\tconst onPressed = (srcType) => (event) => {\n\t\tvar _options$onPressed;\n\t\tpressed.value = true;\n\t\tsourceType.value = srcType;\n\t\t(_options$onPressed = options.onPressed) === null || _options$onPressed === void 0 || _options$onPressed.call(options, event);\n\t};\n\tconst onReleased = (event) => {\n\t\tvar _options$onReleased;\n\t\tpressed.value = false;\n\t\tsourceType.value = null;\n\t\t(_options$onReleased = options.onReleased) === null || _options$onReleased === void 0 || _options$onReleased.call(options, event);\n\t};\n\tconst target = computed(() => unrefElement(options.target) || window$1);\n\tconst listenerOptions = {\n\t\tpassive: true,\n\t\tcapture\n\t};\n\tuseEventListener(target, \"mousedown\", onPressed(\"mouse\"), listenerOptions);\n\tuseEventListener(window$1, \"mouseleave\", onReleased, listenerOptions);\n\tuseEventListener(window$1, \"mouseup\", onReleased, listenerOptions);\n\tif (drag) {\n\t\tuseEventListener(target, \"dragstart\", onPressed(\"mouse\"), listenerOptions);\n\t\tuseEventListener(window$1, \"drop\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"dragend\", onReleased, listenerOptions);\n\t}\n\tif (touch) {\n\t\tuseEventListener(target, \"touchstart\", onPressed(\"touch\"), listenerOptions);\n\t\tuseEventListener(window$1, \"touchend\", onReleased, listenerOptions);\n\t\tuseEventListener(window$1, \"touchcancel\", onReleased, listenerOptions);\n\t}\n\treturn {\n\t\tpressed,\n\t\tsourceType\n\t};\n}\n\n//#endregion\n//#region useNavigatorLanguage/index.ts\n/**\n*\n* Reactive useNavigatorLanguage\n*\n* Detects the currently selected user language and returns a reactive language\n* @see https://vueuse.org/useNavigatorLanguage\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNavigatorLanguage(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"language\" in navigator$1);\n\tconst language = shallowRef(navigator$1 === null || navigator$1 === void 0 ? void 0 : navigator$1.language);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tif (navigator$1) language.value = navigator$1.language;\n\t}, { passive: true });\n\treturn {\n\t\tisSupported,\n\t\tlanguage\n\t};\n}\n\n//#endregion\n//#region useNetwork/index.ts\n/**\n* Reactive Network status.\n*\n* @see https://vueuse.org/useNetwork\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNetwork(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst navigator$1 = window$1 === null || window$1 === void 0 ? void 0 : window$1.navigator;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => navigator$1 && \"connection\" in navigator$1);\n\tconst isOnline = shallowRef(true);\n\tconst saveData = shallowRef(false);\n\tconst offlineAt = shallowRef(void 0);\n\tconst onlineAt = shallowRef(void 0);\n\tconst downlink = shallowRef(void 0);\n\tconst downlinkMax = shallowRef(void 0);\n\tconst rtt = shallowRef(void 0);\n\tconst effectiveType = shallowRef(void 0);\n\tconst type = shallowRef(\"unknown\");\n\tconst connection = isSupported.value && navigator$1.connection;\n\tfunction updateNetworkInformation() {\n\t\tif (!navigator$1) return;\n\t\tisOnline.value = navigator$1.onLine;\n\t\tofflineAt.value = isOnline.value ? void 0 : Date.now();\n\t\tonlineAt.value = isOnline.value ? Date.now() : void 0;\n\t\tif (connection) {\n\t\t\tdownlink.value = connection.downlink;\n\t\t\tdownlinkMax.value = connection.downlinkMax;\n\t\t\teffectiveType.value = connection.effectiveType;\n\t\t\trtt.value = connection.rtt;\n\t\t\tsaveData.value = connection.saveData;\n\t\t\ttype.value = connection.type;\n\t\t}\n\t}\n\tconst listenerOptions = { passive: true };\n\tif (window$1) {\n\t\tuseEventListener(window$1, \"offline\", () => {\n\t\t\tisOnline.value = false;\n\t\t\tofflineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t\tuseEventListener(window$1, \"online\", () => {\n\t\t\tisOnline.value = true;\n\t\t\tonlineAt.value = Date.now();\n\t\t}, listenerOptions);\n\t}\n\tif (connection) useEventListener(connection, \"change\", updateNetworkInformation, listenerOptions);\n\tupdateNetworkInformation();\n\treturn {\n\t\tisSupported,\n\t\tisOnline: readonly(isOnline),\n\t\tsaveData: readonly(saveData),\n\t\tofflineAt: readonly(offlineAt),\n\t\tonlineAt: readonly(onlineAt),\n\t\tdownlink: readonly(downlink),\n\t\tdownlinkMax: readonly(downlinkMax),\n\t\teffectiveType: readonly(effectiveType),\n\t\trtt: readonly(rtt),\n\t\ttype: readonly(type)\n\t};\n}\n\n//#endregion\n//#region useNow/index.ts\n/**\n* Reactive current Date instance.\n*\n* @see https://vueuse.org/useNow\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useNow(options = {}) {\n\tconst { controls: exposeControls = false, interval = \"requestAnimationFrame\", immediate = true } = options;\n\tconst now = ref(/* @__PURE__ */ new Date());\n\tconst update = () => now.value = /* @__PURE__ */ new Date();\n\tconst controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate }) : useIntervalFn(update, interval, { immediate });\n\tif (exposeControls) return {\n\t\tnow,\n\t\t...controls\n\t};\n\telse return now;\n}\n\n//#endregion\n//#region useObjectUrl/index.ts\n/**\n* Reactive URL representing an object.\n*\n* @see https://vueuse.org/useObjectUrl\n* @param object\n*/\nfunction useObjectUrl(object) {\n\tconst url = shallowRef();\n\tconst release = () => {\n\t\tif (url.value) URL.revokeObjectURL(url.value);\n\t\turl.value = void 0;\n\t};\n\twatch(() => toValue(object), (newObject) => {\n\t\trelease();\n\t\tif (newObject) url.value = URL.createObjectURL(newObject);\n\t}, { immediate: true });\n\ttryOnScopeDispose(release);\n\treturn readonly(url);\n}\n\n//#endregion\n//#region ../math/useClamp/index.ts\n/**\n* Reactively clamp a value between two other values.\n*\n* @see https://vueuse.org/useClamp\n* @param value number\n* @param min\n* @param max\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useClamp(value, min, max) {\n\tif (typeof value === \"function\" || isReadonly(value)) return computed(() => clamp(toValue(value), toValue(min), toValue(max)));\n\tconst _value = ref(value);\n\treturn computed({\n\t\tget() {\n\t\t\treturn _value.value = clamp(_value.value, toValue(min), toValue(max));\n\t\t},\n\t\tset(value$1) {\n\t\t\t_value.value = clamp(value$1, toValue(min), toValue(max));\n\t\t}\n\t});\n}\n\n//#endregion\n//#region useOffsetPagination/index.ts\nfunction useOffsetPagination(options) {\n\tconst { total = Number.POSITIVE_INFINITY, pageSize = 10, page = 1, onPageChange = noop, onPageSizeChange = noop, onPageCountChange = noop } = options;\n\tconst currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n\tconst pageCount = computed(() => Math.max(1, Math.ceil(toValue(total) / toValue(currentPageSize))));\n\tconst currentPage = useClamp(page, 1, pageCount);\n\tconst isFirstPage = computed(() => currentPage.value === 1);\n\tconst isLastPage = computed(() => currentPage.value === pageCount.value);\n\tif (isRef(page)) syncRef(page, currentPage, { direction: isReadonly(page) ? \"ltr\" : \"both\" });\n\tif (isRef(pageSize)) syncRef(pageSize, currentPageSize, { direction: isReadonly(pageSize) ? \"ltr\" : \"both\" });\n\tfunction prev() {\n\t\tcurrentPage.value--;\n\t}\n\tfunction next() {\n\t\tcurrentPage.value++;\n\t}\n\tconst returnValue = {\n\t\tcurrentPage,\n\t\tcurrentPageSize,\n\t\tpageCount,\n\t\tisFirstPage,\n\t\tisLastPage,\n\t\tprev,\n\t\tnext\n\t};\n\twatch(currentPage, () => {\n\t\tonPageChange(reactive(returnValue));\n\t});\n\twatch(currentPageSize, () => {\n\t\tonPageSizeChange(reactive(returnValue));\n\t});\n\twatch(pageCount, () => {\n\t\tonPageCountChange(reactive(returnValue));\n\t});\n\treturn returnValue;\n}\n\n//#endregion\n//#region useOnline/index.ts\n/**\n* Reactive online state.\n*\n* @see https://vueuse.org/useOnline\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useOnline(options = {}) {\n\tconst { isOnline } = useNetwork(options);\n\treturn isOnline;\n}\n\n//#endregion\n//#region usePageLeave/index.ts\n/**\n* Reactive state to show whether mouse leaves the page.\n*\n* @see https://vueuse.org/usePageLeave\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePageLeave(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isLeft = shallowRef(false);\n\tconst handler = (event) => {\n\t\tif (!window$1) return;\n\t\tevent = event || window$1.event;\n\t\tisLeft.value = !(event.relatedTarget || event.toElement);\n\t};\n\tif (window$1) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(window$1, \"mouseout\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseleave\", handler, listenerOptions);\n\t\tuseEventListener(window$1.document, \"mouseenter\", handler, listenerOptions);\n\t}\n\treturn isLeft;\n}\n\n//#endregion\n//#region useScreenOrientation/index.ts\n/**\n* Reactive screen orientation\n*\n* @see https://vueuse.org/useScreenOrientation\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useScreenOrientation(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"screen\" in window$1 && \"orientation\" in window$1.screen);\n\tconst screenOrientation = isSupported.value ? window$1.screen.orientation : {};\n\tconst orientation = ref(screenOrientation.type);\n\tconst angle = shallowRef(screenOrientation.angle || 0);\n\tif (isSupported.value) useEventListener(window$1, \"orientationchange\", () => {\n\t\torientation.value = screenOrientation.type;\n\t\tangle.value = screenOrientation.angle;\n\t}, { passive: true });\n\tconst lockOrientation = (type) => {\n\t\tif (isSupported.value && typeof screenOrientation.lock === \"function\") return screenOrientation.lock(type);\n\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Not supported\"));\n\t};\n\tconst unlockOrientation = () => {\n\t\tif (isSupported.value && typeof screenOrientation.unlock === \"function\") screenOrientation.unlock();\n\t};\n\treturn {\n\t\tisSupported,\n\t\torientation,\n\t\tangle,\n\t\tlockOrientation,\n\t\tunlockOrientation\n\t};\n}\n\n//#endregion\n//#region useParallax/index.ts\n/**\n* Create parallax effect easily. It uses `useDeviceOrientation` and fallback to `useMouse`\n* if orientation is not supported.\n*\n* @param target\n* @param options\n*/\nfunction useParallax(target, options = {}) {\n\tconst { deviceOrientationTiltAdjust = (i) => i, deviceOrientationRollAdjust = (i) => i, mouseTiltAdjust = (i) => i, mouseRollAdjust = (i) => i, window: window$1 = defaultWindow } = options;\n\tconst orientation = reactive(useDeviceOrientation({ window: window$1 }));\n\tconst screenOrientation = reactive(useScreenOrientation({ window: window$1 }));\n\tconst { elementX: x, elementY: y, elementWidth: width, elementHeight: height } = useMouseInElement(target, {\n\t\thandleOutside: false,\n\t\twindow: window$1\n\t});\n\tconst source = computed(() => {\n\t\tif (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) return \"deviceOrientation\";\n\t\treturn \"mouse\";\n\t});\n\treturn {\n\t\troll: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = -orientation.beta / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationRollAdjust(value);\n\t\t\t} else return mouseRollAdjust(-(y.value - height.value / 2) / height.value);\n\t\t}),\n\t\ttilt: computed(() => {\n\t\t\tif (source.value === \"deviceOrientation\") {\n\t\t\t\tlet value;\n\t\t\t\tswitch (screenOrientation.orientation) {\n\t\t\t\t\tcase \"landscape-primary\":\n\t\t\t\t\t\tvalue = orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"landscape-secondary\":\n\t\t\t\t\t\tvalue = -orientation.beta / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-primary\":\n\t\t\t\t\t\tvalue = orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"portrait-secondary\":\n\t\t\t\t\t\tvalue = -orientation.gamma / 90;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault: value = orientation.gamma / 90;\n\t\t\t\t}\n\t\t\t\treturn deviceOrientationTiltAdjust(value);\n\t\t\t} else return mouseTiltAdjust((x.value - width.value / 2) / width.value);\n\t\t}),\n\t\tsource\n\t};\n}\n\n//#endregion\n//#region useParentElement/index.ts\nfunction useParentElement(element = useCurrentElement()) {\n\tconst parentElement = shallowRef();\n\tconst update = () => {\n\t\tconst el = unrefElement(element);\n\t\tif (el) parentElement.value = el.parentElement;\n\t};\n\ttryOnMounted(update);\n\twatch(() => toValue(element), update);\n\treturn parentElement;\n}\n\n//#endregion\n//#region usePerformanceObserver/index.ts\n/**\n* Observe performance metrics.\n*\n* @see https://vueuse.org/usePerformanceObserver\n* @param options\n*/\nfunction usePerformanceObserver(options, callback) {\n\tconst { window: window$1 = defaultWindow, immediate = true,...performanceOptions } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window$1 && \"PerformanceObserver\" in window$1);\n\tlet observer;\n\tconst stop = () => {\n\t\tobserver === null || observer === void 0 || observer.disconnect();\n\t};\n\tconst start = () => {\n\t\tif (isSupported.value) {\n\t\t\tstop();\n\t\t\tobserver = new PerformanceObserver(callback);\n\t\t\tobserver.observe(performanceOptions);\n\t\t}\n\t};\n\ttryOnScopeDispose(stop);\n\tif (immediate) start();\n\treturn {\n\t\tisSupported,\n\t\tstart,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePointer/index.ts\nconst defaultState = {\n\tx: 0,\n\ty: 0,\n\tpointerId: 0,\n\tpressure: 0,\n\ttiltX: 0,\n\ttiltY: 0,\n\twidth: 0,\n\theight: 0,\n\ttwist: 0,\n\tpointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\n/**\n* Reactive pointer state.\n*\n* @see https://vueuse.org/usePointer\n* @param options\n*/\nfunction usePointer(options = {}) {\n\tconst { target = defaultWindow } = options;\n\tconst isInside = shallowRef(false);\n\tconst state = shallowRef(options.initialValue || {});\n\tObject.assign(state.value, defaultState, state.value);\n\tconst handler = (event) => {\n\t\tisInside.value = true;\n\t\tif (options.pointerTypes && !options.pointerTypes.includes(event.pointerType)) return;\n\t\tstate.value = objectPick(event, keys, false);\n\t};\n\tif (target) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(target, [\n\t\t\t\"pointerdown\",\n\t\t\t\"pointermove\",\n\t\t\t\"pointerup\"\n\t\t], handler, listenerOptions);\n\t\tuseEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n\t}\n\treturn {\n\t\t...toRefs(state),\n\t\tisInside\n\t};\n}\n\n//#endregion\n//#region usePointerLock/index.ts\n/**\n* Reactive pointer lock.\n*\n* @see https://vueuse.org/usePointerLock\n* @param target\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePointerLock(target, options = {}) {\n\tconst { document: document$1 = defaultDocument } = options;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => document$1 && \"pointerLockElement\" in document$1);\n\tconst element = shallowRef();\n\tconst triggerElement = shallowRef();\n\tlet targetElement;\n\tif (isSupported.value) {\n\t\tconst listenerOptions = { passive: true };\n\t\tuseEventListener(document$1, \"pointerlockchange\", () => {\n\t\t\tvar _pointerLockElement;\n\t\t\tconst currentElement = (_pointerLockElement = document$1.pointerLockElement) !== null && _pointerLockElement !== void 0 ? _pointerLockElement : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\telement.value = document$1.pointerLockElement;\n\t\t\t\tif (!element.value) targetElement = triggerElement.value = null;\n\t\t\t}\n\t\t}, listenerOptions);\n\t\tuseEventListener(document$1, \"pointerlockerror\", () => {\n\t\t\tvar _pointerLockElement2;\n\t\t\tconst currentElement = (_pointerLockElement2 = document$1.pointerLockElement) !== null && _pointerLockElement2 !== void 0 ? _pointerLockElement2 : element.value;\n\t\t\tif (targetElement && currentElement === targetElement) {\n\t\t\t\tconst action = document$1.pointerLockElement ? \"release\" : \"acquire\";\n\t\t\t\tthrow new Error(`Failed to ${action} pointer lock.`);\n\t\t\t}\n\t\t}, listenerOptions);\n\t}\n\tasync function lock(e) {\n\t\tvar _unrefElement;\n\t\tif (!isSupported.value) throw new Error(\"Pointer Lock API is not supported by your browser.\");\n\t\ttriggerElement.value = e instanceof Event ? e.currentTarget : null;\n\t\ttargetElement = e instanceof Event ? (_unrefElement = unrefElement(target)) !== null && _unrefElement !== void 0 ? _unrefElement : triggerElement.value : unrefElement(e);\n\t\tif (!targetElement) throw new Error(\"Target element undefined.\");\n\t\ttargetElement.requestPointerLock();\n\t\treturn await until(element).toBe(targetElement);\n\t}\n\tasync function unlock() {\n\t\tif (!element.value) return false;\n\t\tdocument$1.exitPointerLock();\n\t\tawait until(element).toBeNull();\n\t\treturn true;\n\t}\n\treturn {\n\t\tisSupported,\n\t\telement,\n\t\ttriggerElement,\n\t\tlock,\n\t\tunlock\n\t};\n}\n\n//#endregion\n//#region usePointerSwipe/index.ts\n/**\n* Reactive swipe detection based on PointerEvents.\n*\n* @see https://vueuse.org/usePointerSwipe\n* @param target\n* @param options\n*/\nfunction usePointerSwipe(target, options = {}) {\n\tconst targetRef = toRef(target);\n\tconst { threshold = 50, onSwipe, onSwipeEnd, onSwipeStart, disableTextSelect = false } = options;\n\tconst posStart = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosStart = (x, y) => {\n\t\tposStart.x = x;\n\t\tposStart.y = y;\n\t};\n\tconst posEnd = reactive({\n\t\tx: 0,\n\t\ty: 0\n\t});\n\tconst updatePosEnd = (x, y) => {\n\t\tposEnd.x = x;\n\t\tposEnd.y = y;\n\t};\n\tconst distanceX = computed(() => posStart.x - posEnd.x);\n\tconst distanceY = computed(() => posStart.y - posEnd.y);\n\tconst { max, abs } = Math;\n\tconst isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n\tconst isSwiping = shallowRef(false);\n\tconst isPointerDown = shallowRef(false);\n\tconst direction = computed(() => {\n\t\tif (!isThresholdExceeded.value) return \"none\";\n\t\tif (abs(distanceX.value) > abs(distanceY.value)) return distanceX.value > 0 ? \"left\" : \"right\";\n\t\telse return distanceY.value > 0 ? \"up\" : \"down\";\n\t});\n\tconst eventIsAllowed = (e) => {\n\t\tvar _ref, _options$pointerTypes, _options$pointerTypes2;\n\t\tconst isReleasingButton = e.buttons === 0;\n\t\tconst isPrimaryButton = e.buttons === 1;\n\t\treturn (_ref = (_options$pointerTypes = (_options$pointerTypes2 = options.pointerTypes) === null || _options$pointerTypes2 === void 0 ? void 0 : _options$pointerTypes2.includes(e.pointerType)) !== null && _options$pointerTypes !== void 0 ? _options$pointerTypes : isReleasingButton || isPrimaryButton) !== null && _ref !== void 0 ? _ref : true;\n\t};\n\tconst listenerOptions = { passive: true };\n\tconst stops = [\n\t\tuseEventListener(target, \"pointerdown\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tisPointerDown.value = true;\n\t\t\tconst eventTarget = e.target;\n\t\t\teventTarget === null || eventTarget === void 0 || eventTarget.setPointerCapture(e.pointerId);\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosStart(x, y);\n\t\t\tupdatePosEnd(x, y);\n\t\t\tonSwipeStart === null || onSwipeStart === void 0 || onSwipeStart(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointermove\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (!isPointerDown.value) return;\n\t\t\tconst { clientX: x, clientY: y } = e;\n\t\t\tupdatePosEnd(x, y);\n\t\t\tif (!isSwiping.value && isThresholdExceeded.value) isSwiping.value = true;\n\t\t\tif (isSwiping.value) onSwipe === null || onSwipe === void 0 || onSwipe(e);\n\t\t}, listenerOptions),\n\t\tuseEventListener(target, \"pointerup\", (e) => {\n\t\t\tif (!eventIsAllowed(e)) return;\n\t\t\tif (isSwiping.value) onSwipeEnd === null || onSwipeEnd === void 0 || onSwipeEnd(e, direction.value);\n\t\t\tisPointerDown.value = false;\n\t\t\tisSwiping.value = false;\n\t\t}, listenerOptions)\n\t];\n\ttryOnMounted(() => {\n\t\tvar _targetRef$value;\n\t\t(_targetRef$value = targetRef.value) === null || _targetRef$value === void 0 || (_targetRef$value = _targetRef$value.style) === null || _targetRef$value === void 0 || _targetRef$value.setProperty(\"touch-action\", \"pan-y\");\n\t\tif (disableTextSelect) {\n\t\t\tvar _targetRef$value2, _targetRef$value3, _targetRef$value4;\n\t\t\t(_targetRef$value2 = targetRef.value) === null || _targetRef$value2 === void 0 || (_targetRef$value2 = _targetRef$value2.style) === null || _targetRef$value2 === void 0 || _targetRef$value2.setProperty(\"-webkit-user-select\", \"none\");\n\t\t\t(_targetRef$value3 = targetRef.value) === null || _targetRef$value3 === void 0 || (_targetRef$value3 = _targetRef$value3.style) === null || _targetRef$value3 === void 0 || _targetRef$value3.setProperty(\"-ms-user-select\", \"none\");\n\t\t\t(_targetRef$value4 = targetRef.value) === null || _targetRef$value4 === void 0 || (_targetRef$value4 = _targetRef$value4.style) === null || _targetRef$value4 === void 0 || _targetRef$value4.setProperty(\"user-select\", \"none\");\n\t\t}\n\t});\n\tconst stop = () => stops.forEach((s) => s());\n\treturn {\n\t\tisSwiping: readonly(isSwiping),\n\t\tdirection: readonly(direction),\n\t\tposStart: readonly(posStart),\n\t\tposEnd: readonly(posEnd),\n\t\tdistanceX,\n\t\tdistanceY,\n\t\tstop\n\t};\n}\n\n//#endregion\n//#region usePreferredColorScheme/index.ts\n/**\n* Reactive prefers-color-scheme media query.\n*\n* @see https://vueuse.org/usePreferredColorScheme\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredColorScheme(options) {\n\tconst isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n\tconst isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n\treturn computed(() => {\n\t\tif (isDark.value) return \"dark\";\n\t\tif (isLight.value) return \"light\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredContrast/index.ts\n/**\n* Reactive prefers-contrast media query.\n*\n* @see https://vueuse.org/usePreferredContrast\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredContrast(options) {\n\tconst isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n\tconst isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n\tconst isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n\treturn computed(() => {\n\t\tif (isMore.value) return \"more\";\n\t\tif (isLess.value) return \"less\";\n\t\tif (isCustom.value) return \"custom\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredLanguages/index.ts\n/**\n* Reactive Navigator Languages.\n*\n* @see https://vueuse.org/usePreferredLanguages\n* @param options\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredLanguages(options = {}) {\n\tconst { window: window$1 = defaultWindow } = options;\n\tif (!window$1) return shallowRef([\"en\"]);\n\tconst navigator$1 = window$1.navigator;\n\tconst value = shallowRef(navigator$1.languages);\n\tuseEventListener(window$1, \"languagechange\", () => {\n\t\tvalue.value = navigator$1.languages;\n\t}, { passive: true });\n\treturn value;\n}\n\n//#endregion\n//#region usePreferredReducedMotion/index.ts\n/**\n* Reactive prefers-reduced-motion media query.\n*\n* @see https://vueuse.org/usePreferredReducedMotion\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedMotion(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePreferredReducedTransparency/index.ts\n/**\n* Reactive prefers-reduced-transparency media query.\n*\n* @see https://vueuse.org/usePreferredReducedTransparency\n* @param [options]\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction usePreferredReducedTransparency(options) {\n\tconst isReduced = useMediaQuery(\"(prefers-reduced-transparency: reduce)\", options);\n\treturn computed(() => {\n\t\tif (isReduced.value) return \"reduce\";\n\t\treturn \"no-preference\";\n\t});\n}\n\n//#endregion\n//#region usePrevious/index.ts\nfunction usePrevious(value, initialValue) {\n\tconst previous = shallowRef(initialValue);\n\twatch(toRef(value), (_, oldValue) => {\n\t\tprevious.value = oldValue;\n\t}, { flush: \"sync\" });\n\treturn readonly(previous);\n}\n\n//#endregion\n//#region useScreenSafeArea/index.ts\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\n/**\n* Reactive `env(safe-area-inset-*)`\n*\n* @see https://vueuse.org/useScreenSafeArea\n*/\nfunction useScreenSafeArea() {\n\tconst top = shallowRef(\"\");\n\tconst right = shallowRef(\"\");\n\tconst bottom = shallowRef(\"\");\n\tconst left = shallowRef(\"\");\n\tif (isClient) {\n\t\tconst topCssVar = useCssVar(topVarName);\n\t\tconst rightCssVar = useCssVar(rightVarName);\n\t\tconst bottomCssVar = useCssVar(bottomVarName);\n\t\tconst leftCssVar = useCssVar(leftVarName);\n\t\ttopCssVar.value = \"env(safe-area-inset-top, 0px)\";\n\t\trightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n\t\tbottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n\t\tleftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n\t\ttryOnMounted(update);\n\t\tuseEventListener(\"resize\", useDebounceFn(update), { passive: true });\n\t}\n\tfunction update() {\n\t\ttop.value = getValue(topVarName);\n\t\tright.value = getValue(rightVarName);\n\t\tbottom.value = getValue(bottomVarName);\n\t\tleft.value = getValue(leftVarName);\n\t}\n\treturn {\n\t\ttop,\n\t\tright,\n\t\tbottom,\n\t\tleft,\n\t\tupdate\n\t};\n}\nfunction getValue(position) {\n\treturn getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\n//#endregion\n//#region useScriptTag/index.ts\n/**\n* Async script tag loading.\n*\n* @see https://vueuse.org/useScriptTag\n* @param src\n* @param onLoaded\n* @param options\n*/\nfunction useScriptTag(src, onLoaded = noop, options = {}) {\n\tconst { immediate = true, manual = false, type = \"text/javascript\", async = true, crossOrigin, referrerPolicy, noModule, defer, document: document$1 = defaultDocument, attrs = {}, nonce = void 0 } = options;\n\tconst scriptTag = shallowRef(null);\n\tlet _promise = null;\n\t/**\n\t* Load the script specified via `src`.\n\t*\n\t* @param waitForScriptLoad Whether if the Promise should resolve once the \"load\" event is emitted by the \n\n\n\n\n","\n\n\n\n\n","import CustomCheck from \"@/resources/CustomCheck\";\nimport { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { computed, ref, watch } from \"vue\";\nimport { useCounter } from \"@vueuse/core\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\n\nexport const useCustomChecksStore = defineStore(\"CustomChecksStore\", () => {\n const prefix = \"customchecks/\";\n\n const serviceControlStore = useServiceControlStore();\n\n const pageNumber = ref(1);\n const failingCount = ref(0);\n const failedChecks = ref([]);\n\n const { count, inc, dec } = useCounter(0);\n const skipRefresh = computed(() => count.value > 0);\n\n const refresh = async () => {\n if (skipRefresh.value) {\n return;\n }\n try {\n const [response, data] = await serviceControlStore.fetchTypedFromServiceControl(`customchecks?status=fail&page=${pageNumber.value}`);\n failedChecks.value = data;\n failingCount.value = parseInt(response.headers.get(\"Total-Count\") ?? \"0\");\n } catch (e) {\n failedChecks.value = [];\n failingCount.value = 0;\n throw e;\n }\n };\n\n watch(pageNumber, () => refresh());\n\n async function dismissCustomCheck(id: string) {\n try {\n inc();\n // NOTE: If it takes more than the refresh interval for ServiceControl to delete the check it will reappear\n failedChecks.value = failedChecks.value.filter((x) => x.id !== id);\n failingCount.value--;\n\n // HINT: This is required to handle the difference between ServiceControl 4 and 5\n const guid = id.toLocaleLowerCase().startsWith(prefix) ? id.substring(prefix.length) : id;\n await serviceControlStore.deleteFromServiceControl(`${prefix}${guid}`);\n } finally {\n dec();\n }\n }\n\n return {\n refresh,\n dismissCustomCheck,\n pageNumber,\n failingCount,\n failedChecks,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useCustomChecksStore, import.meta.hot));\n}\n\nexport type CustomChecksStore = ReturnType;\n","import { useCustomChecksStore } from \"@/stores/CustomChecksStore\";\nimport { useStoreAutoRefresh } from \"./useAutoRefresh\";\n\nexport default useStoreAutoRefresh(\"customChecks\", useCustomChecksStore, 5000);\n","\n\n\n","export interface LogicalEndpoint {\n name: string;\n monitor_heartbeat: boolean;\n heartbeat_information?: {\n last_report_at: string;\n reported_status: EndpointStatus;\n };\n track_instances: boolean;\n alive_count: number;\n down_count: number;\n muted_count: number;\n}\n\nexport enum EndpointStatus {\n Alive = \"beating\",\n Dead = \"dead\",\n}\n","import { IconDefinition } from \"@fortawesome/free-solid-svg-icons\";\nimport type { Moment } from \"moment\";\n\nexport type GroupPropertyType = string | number | Date | Moment | boolean;\n\nexport default interface SortOptions {\n description: string;\n iconAsc: IconDefinition;\n iconDesc: IconDefinition;\n dir?: SortDirection;\n //used for client-side sorting only\n selector?: (group: T) => GroupPropertyType;\n sort?: (firstElement: T, secondElement: T) => number;\n}\n\nexport enum SortDirection {\n Ascending = \"asc\",\n Descending = \"desc\",\n}\n","import { type GroupPropertyType, SortDirection } from \"@/resources/SortOptions\";\n\nexport default function getSortFunction(selector: ((group: T) => GroupPropertyType) | undefined, dir: SortDirection) {\n if (!selector) {\n return () => 0;\n }\n const sortFunc = (firstElement: T, secondElement: T) => {\n const x = selector(firstElement);\n const y = selector(secondElement);\n if (x > y) {\n return 1;\n } else if (x < y) {\n return -1;\n }\n return 0;\n };\n\n return dir === SortDirection.Ascending ? sortFunc : (firstElement: T, secondElement: T) => -sortFunc(firstElement, secondElement);\n}\n","const reSemver = /^v?((\\d+)\\.(\\d+)\\.(\\d+))(?:-([\\dA-Za-z\\-_]+(?:\\.[\\dA-Za-z\\-_]+)*))?(?:\\+([\\dA-Za-z\\-_]+(?:\\.[\\dA-Za-z\\-_]+)*))?$/;\n\nexport function isUpgradeAvailable(currentVersion: string, latestVersion: string) {\n const latest = parse(latestVersion.split(\"-\")[0]);\n const current = parse(currentVersion.split(\"-\")[0]);\n\n if (latest == null) return false;\n if (current == null) return false;\n\n if (latest.major !== current.major) {\n return latest.major > current.major;\n }\n if (latest.minor !== current.minor) {\n return latest.minor > current.minor;\n }\n if (latest.patch !== current.patch) {\n return latest.patch > current.patch;\n }\n\n return false;\n}\n\nexport function isSupported(currentVersion: string, minSupportedVersion: string) {\n const minSupported = parse(minSupportedVersion);\n const current = parse(currentVersion);\n\n if (current == null) return false;\n if (minSupported == null) return true;\n\n if (minSupported.major !== current.major) {\n return minSupported.major <= current.major;\n }\n if (minSupported.minor !== current.minor) {\n return minSupported.minor <= current.minor;\n }\n if (minSupported.patch !== current.patch) {\n return minSupported.patch <= current.patch;\n }\n\n return true;\n}\n\ninterface SemVer {\n semver: string | null;\n version: string;\n major: number;\n minor: number;\n patch: number;\n release: string;\n build: string;\n}\n\nfunction parse(version: string) {\n // semver, major, minor, patch\n // https://github.com/mojombo/semver/issues/32\n // https://github.com/isaacs/node-semver/issues/10\n // optional v\n const m = reSemver.exec(version) || [];\n\n function defaultToZero(num: string) {\n const n = parseInt(num, 10);\n\n return isNaN(n) ? 0 : n;\n }\n\n return 0 === m.length\n ? null\n : {\n semver: m[0],\n version: m[1],\n major: defaultToZero(m[2]),\n minor: defaultToZero(m[3]),\n patch: defaultToZero(m[4]),\n release: m[5],\n build: m[6],\n };\n}\n","import { isSupported, isUpgradeAvailable } from \"@/composables/serviceSemVer\";\nimport Release from \"@/resources/Release\";\nimport RootUrls from \"@/resources/RootUrls\";\nimport { useMemoize } from \"@vueuse/core\";\nimport { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { computed, reactive } from \"vue\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport { getDefaultConfig } from \"@/defaultConfig\";\n\nexport const useEnvironmentAndVersionsStore = defineStore(\"EnvironmentAndVersionsStore\", () => {\n const serviceControlStore = useServiceControlStore();\n\n const environment = reactive({\n monitoring_version: \"\",\n sc_version: \"\",\n minimum_supported_sc_version: \"6.6.0\",\n is_compatible_with_sc: true,\n sp_version: getDefaultConfig().version,\n supportsArchiveGroups: false,\n endpoints_error_url: \"\",\n known_endpoints_url: \"\",\n endpoints_message_search_url: \"\",\n endpoints_messages_url: \"\",\n endpoints_url: \"\",\n errors_url: \"\",\n configuration: \"\",\n message_search_url: \"\",\n sagas_url: \"\",\n });\n\n const newVersions = reactive({\n newSPVersion: {\n newspversion: false,\n newspversionlink: \"\",\n newspversionnumber: \"\",\n },\n newSCVersion: {\n newscversion: false,\n newscversionlink: \"\",\n newscversionnumber: \"\",\n },\n newMVersion: {\n newmversion: false,\n newmversionlink: \"\",\n newmversionnumber: \"\",\n },\n });\n\n const serviceControlIsGreaterThan = useMemoize((requiredVersion: string) => computed(() => isSupported(environment.sc_version, requiredVersion)));\n\n async function refresh() {\n const productsResult = useServiceProductUrls();\n const scResult = getPrimaryVersion();\n const mResult = setMonitoringVersion();\n\n const [products, scVer] = await Promise.all([productsResult, scResult, mResult]);\n if (scVer) {\n environment.supportsArchiveGroups = !!scVer.archived_groups_url;\n environment.is_compatible_with_sc = isSupported(environment.sc_version, environment.minimum_supported_sc_version);\n environment.endpoints_error_url = scVer && scVer.endpoints_error_url;\n environment.known_endpoints_url = scVer && scVer.known_endpoints_url;\n environment.endpoints_message_search_url = scVer.endpoints_message_search_url;\n environment.endpoints_messages_url = scVer.endpoints_messages_url;\n environment.endpoints_url = scVer.endpoints_url;\n environment.errors_url = scVer.errors_url;\n environment.configuration = scVer.configuration;\n environment.message_search_url = scVer.message_search_url;\n environment.sagas_url = scVer.sagas_url;\n }\n if (products.latestSP && isUpgradeAvailable(environment.sp_version, products.latestSP.tag)) {\n newVersions.newSPVersion.newspversion = true;\n newVersions.newSPVersion.newspversionlink = products.latestSP.release;\n newVersions.newSPVersion.newspversionnumber = products.latestSP.tag;\n }\n if (products.latestSC && isUpgradeAvailable(environment.sc_version, products.latestSC.tag)) {\n newVersions.newSCVersion.newscversion = true;\n newVersions.newSCVersion.newscversionlink = products.latestSC.release;\n newVersions.newSCVersion.newscversionnumber = products.latestSC.tag;\n }\n if (products.latestSC && isUpgradeAvailable(environment.monitoring_version, products.latestSC.tag)) {\n newVersions.newMVersion.newmversion = true;\n newVersions.newMVersion.newmversionlink = products.latestSC.release;\n newVersions.newMVersion.newmversionnumber = products.latestSC.tag;\n }\n }\n\n async function getPrimaryVersion() {\n try {\n const [response, data] = await serviceControlStore.fetchTypedFromServiceControl(\"\");\n environment.sc_version = response.headers.get(\"X-Particular-Version\") ?? \"\";\n return data;\n } catch {\n return null;\n }\n }\n\n async function setMonitoringVersion() {\n try {\n const [response] = await serviceControlStore.fetchTypedFromMonitoring(\"\");\n if (response) {\n environment.monitoring_version = response.headers.get(\"X-Particular-Version\") ?? \"\";\n }\n } catch {\n environment.monitoring_version = \"\";\n }\n }\n\n return {\n refresh,\n environment,\n newVersions,\n serviceControlIsGreaterThan,\n };\n});\n\nasync function getData(url: string) {\n try {\n const response = await fetch(url);\n return (await response.json()) as unknown as Release[];\n } catch (e) {\n console.log(e);\n return [\n {\n tag: \"Unknown\",\n release: \"Unknown\",\n published: \"Unknown\",\n },\n ];\n }\n}\n\nasync function useServiceProductUrls() {\n const spURL = \"https://platformupdate.particular.net/servicepulse.txt\";\n const scURL = \"https://platformupdate.particular.net/servicecontrol.txt\";\n\n const servicePulse = getData(spURL);\n const serviceControl = getData(scURL);\n\n const [sp, sc] = await Promise.all([servicePulse, serviceControl]);\n const latestSP = sp[0];\n const latestSC = sc[0];\n\n return { latestSP, latestSC };\n}\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useEnvironmentAndVersionsStore, import.meta.hot));\n}\n\nexport type EnvironmentAndVersionsStore = ReturnType;\n","import { useEnvironmentAndVersionsStore } from \"@/stores/EnvironmentAndVersionsStore\";\nimport { useStoreAutoRefresh } from \"./useAutoRefresh\";\n\nexport default useStoreAutoRefresh(\"environmentAndVersions\", useEnvironmentAndVersionsStore, 5000);\n","import useEnvironmentAndVersionsAutoRefresh from \"@/composables/useEnvironmentAndVersionsAutoRefresh\";\n\nexport const minimumSCVersionForEndpointSettings = \"5.9.0\";\n\nexport default function useIsEndpointSettingsSupported() {\n const { store: environmentStore } = useEnvironmentAndVersionsAutoRefresh();\n return environmentStore.serviceControlIsGreaterThan(minimumSCVersionForEndpointSettings);\n}\n","import { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport { EndpointSettings } from \"@/resources/EndpointSettings\";\nimport useIsEndpointSettingsSupported from \"@/components/heartbeats/isEndpointSettingsSupported\";\n\nexport const useEndpointSettingsStore = defineStore(\"EndpointSettingsStore\", () => {\n const defaultEndpointSettingsValue = { name: \"\", track_instances: true };\n const serviceControlStore = useServiceControlStore();\n\n const isEndpointSettingsSupported = useIsEndpointSettingsSupported();\n\n async function getEndpointSettings(): Promise {\n if (!isEndpointSettingsSupported.value) return [defaultEndpointSettingsValue];\n\n const [, data] = await serviceControlStore.fetchTypedFromServiceControl(`endpointssettings`);\n return data;\n }\n\n return {\n defaultEndpointSettingsValue,\n getEndpointSettings,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useEndpointSettingsStore, import.meta.hot));\n}\n\nexport type EndpointSettingsStore = ReturnType;\n","import { acceptHMRUpdate, defineStore } from \"pinia\";\nimport { computed, ref, watch } from \"vue\";\nimport { EndpointStatus, LogicalEndpoint } from \"@/resources/Heartbeat\";\nimport moment from \"moment\";\nimport { SortDirection, type GroupPropertyType } from \"@/resources/SortOptions\";\nimport getSortFunction from \"@/components/getSortFunction\";\nimport { EndpointsView } from \"@/resources/EndpointView\";\nimport type { SortInfo } from \"@/components/SortInfo\";\nimport { EndpointSettings } from \"@/resources/EndpointSettings\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport { useEndpointSettingsStore } from \"./EndpointSettingsStore\";\n\nexport enum ColumnNames {\n Name = \"name\",\n InstancesDown = \"instancesDown\",\n InstancesTotal = \"instancesTotal\",\n LastHeartbeat = \"latestHeartbeat\",\n Muted = \"muted\",\n Tracked = \"instancesTracked\",\n TrackToggle = \"toggleInstancesTracked\",\n}\n\nexport enum MutedType {\n None = 0,\n Some = 1,\n All = 2,\n}\n\nconst columnSortings = new Map GroupPropertyType>([\n [ColumnNames.Name, (endpoint) => endpoint.name],\n [ColumnNames.InstancesDown, (endpoint) => endpoint.alive_count - endpoint.down_count],\n [ColumnNames.InstancesTotal, (endpoint) => endpoint.alive_count + endpoint.down_count],\n [ColumnNames.LastHeartbeat, (endpoint) => moment.utc(endpoint.heartbeat_information?.last_report_at ?? \"1975-01-01T00:00:00\")],\n [\n ColumnNames.Muted,\n (endpoint) => {\n switch (endpoint.muted_count) {\n case 0:\n return MutedType.None;\n case endpoint.alive_count + endpoint.down_count:\n return MutedType.All;\n default:\n return MutedType.Some;\n }\n },\n ],\n [ColumnNames.Tracked, (endpoint) => endpoint.track_instances],\n [ColumnNames.TrackToggle, (endpoint) => endpoint.track_instances],\n]);\n\nexport const useHeartbeatsStore = defineStore(\"HeartbeatsStore\", () => {\n const serviceControlStore = useServiceControlStore();\n const endpointSettingsStore = useEndpointSettingsStore();\n\n const sortByInstances = ref({\n property: ColumnNames.Name,\n isAscending: true,\n });\n\n const defaultTrackingInstancesValue = ref(endpointSettingsStore.defaultEndpointSettingsValue.track_instances);\n const endpointFilterString = ref(\"\");\n const itemsPerPage = ref(20);\n const endpointInstances = ref([]);\n const settings = ref([]);\n const sortedEndpoints = computed(() =>\n mapEndpointsToLogical(endpointInstances.value, settings.value).sort(getSortFunction(columnSortings.get(sortByInstances.value.property), sortByInstances.value.isAscending ? SortDirection.Ascending : SortDirection.Descending))\n );\n const filteredEndpoints = computed(() => sortedEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase())));\n const healthyEndpoints = computed(() =>\n sortedEndpoints.value.filter(function (endpoint) {\n return endpoint.monitor_heartbeat && endpoint.heartbeat_information?.reported_status === EndpointStatus.Alive && ((endpoint.track_instances && endpoint.down_count === 0) || (!endpoint.track_instances && endpoint.alive_count > 0));\n })\n );\n const filteredHealthyEndpoints = computed(() => healthyEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase())));\n const unhealthyEndpoints = computed(() =>\n sortedEndpoints.value.filter(function (endpoint) {\n return !endpoint.monitor_heartbeat || endpoint.heartbeat_information?.reported_status === EndpointStatus.Dead || (endpoint.track_instances && endpoint.down_count > 0) || (!endpoint.track_instances && endpoint.alive_count === 0);\n })\n );\n const filteredUnhealthyEndpoints = computed(() => unhealthyEndpoints.value.filter((endpoint) => !endpointFilterString.value || endpoint.name.toLowerCase().includes(endpointFilterString.value.toLowerCase())));\n const failedHeartbeatsCount = computed(() => {\n let counter = 0;\n\n for (const logical of sortedEndpoints.value) {\n const endpointInstancesThatAreNotMuted = endpointInstances.value.filter((instance) => instance.name === logical.name && instance.monitor_heartbeat);\n\n if (logical.track_instances) {\n if (endpointInstancesThatAreNotMuted.some((instance) => instance.heartbeat_information?.reported_status !== EndpointStatus.Alive)) {\n counter++;\n }\n } else {\n if (!endpointInstancesThatAreNotMuted.some((instance) => instance.heartbeat_information?.reported_status === EndpointStatus.Alive)) {\n counter++;\n }\n }\n }\n\n return counter;\n });\n watch(endpointFilterString, (newValue) => {\n setEndpointFilterString(newValue);\n });\n\n const refresh = async () => {\n try {\n const [[, data], data2] = await Promise.all([serviceControlStore.fetchTypedFromServiceControl(\"endpoints\"), endpointSettingsStore.getEndpointSettings()]);\n endpointInstances.value = data;\n settings.value = data2;\n defaultTrackingInstancesValue.value = data2.find((value) => value.name === \"\")!.track_instances;\n } catch (e) {\n endpointInstances.value = settings.value = [];\n throw e;\n }\n };\n\n async function updateEndpointSettings(endpoints: Pick[]) {\n await Promise.all(endpoints.map((endpoint) => serviceControlStore.patchToServiceControl(`endpointssettings/${endpoint.name}`, { track_instances: !endpoint.track_instances })));\n await refresh();\n }\n\n function instanceDisplayText(endpoint: LogicalEndpoint) {\n const total = endpoint.alive_count + endpoint.down_count;\n\n if (endpoint.track_instances) {\n return `${endpoint.alive_count}/${total}`;\n } else {\n return `${endpoint.alive_count}`;\n }\n }\n\n function setEndpointFilterString(filter: string) {\n endpointFilterString.value = filter;\n }\n\n function setItemsPerPage(value: number) {\n itemsPerPage.value = value;\n }\n\n function mapEndpointsToLogical(endpoints: EndpointsView[], settings: EndpointSettings[]): LogicalEndpoint[] {\n const logicalNames = [...new Set(endpoints.map((endpoint) => endpoint.name))];\n\n return logicalNames.map((endpointName) => {\n const endpointInstances = endpoints.filter((endpoint) => endpoint.name === endpointName);\n const aliveList = endpointInstances.filter((endpoint) => endpoint.heartbeat_information && endpoint.heartbeat_information.reported_status === EndpointStatus.Alive);\n\n const aliveCount = aliveList.length;\n const downCount = endpointInstances.length - aliveCount;\n\n return {\n id: endpointName, //need this to be consistent between data refreshes for UI purposes, so using name rather than an id from one of the instances\n name: endpointName,\n alive_count: aliveCount,\n down_count: downCount,\n muted_count: endpointInstances.filter((endpoint) => !endpoint.monitor_heartbeat).length,\n track_instances: settings.find((value) => value.name === endpointName)?.track_instances ?? defaultTrackingInstancesValue.value,\n heartbeat_information: {\n reported_status: aliveCount > 0 ? EndpointStatus.Alive : EndpointStatus.Dead,\n last_report_at: endpointInstances.reduce((previousMax: EndpointsView | null, endpoint: EndpointsView) => {\n if (endpoint.heartbeat_information) {\n if (previousMax) {\n return moment.utc(endpoint.heartbeat_information.last_report_at) > moment.utc(previousMax.heartbeat_information!.last_report_at) ? endpoint : previousMax;\n }\n return endpoint;\n }\n return previousMax;\n }, null)?.heartbeat_information?.last_report_at,\n },\n monitor_heartbeat: endpointInstances.every((endpoint) => endpoint.monitor_heartbeat),\n } as LogicalEndpoint;\n });\n }\n\n return {\n refresh,\n defaultTrackingInstancesValue,\n updateEndpointSettings,\n sortedEndpoints,\n filteredEndpoints,\n endpointInstances,\n healthyEndpoints,\n filteredHealthyEndpoints,\n unhealthyEndpoints,\n filteredUnhealthyEndpoints,\n failedHeartbeatsCount,\n instanceDisplayText,\n sortByInstances,\n endpointFilterString,\n itemsPerPage,\n setItemsPerPage,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useHeartbeatsStore, import.meta.hot));\n}\n\nexport type HeartbeatsStore = ReturnType;\n","import { useHeartbeatsStore } from \"@/stores/HeartbeatsStore\";\nimport { useStoreAutoRefresh } from \"./useAutoRefresh\";\n\nexport default useStoreAutoRefresh(\"heartbeats\", useHeartbeatsStore, 5000);\n","\n\n\n","\n\n\n","\n\n\n\n\n","import { useLink, useRoute } from \"vue-router\";\n\nexport default function isRouteSelected(path: string) {\n const route = useRoute();\n const pathRoute = useLink({ to: path }).route.value;\n\n return route.matched.some((match) => match.name === pathRoute.name);\n}\n","\n\n\n","/**\r\n * Vue3 Cookies v1.0.0\r\n *\r\n * Forked from\r\n * https://github.com/cmp-cc/vue-cookies\r\n * And changed format to support Vue.js 3\r\n *\r\n */\r\nimport { reactive } from \"vue\";\r\nvar defaultConfig = {\r\n expireTimes: \"1d\",\r\n path: \"; path=/\",\r\n domain: \"\",\r\n secure: false,\r\n sameSite: \"; SameSite=Lax\",\r\n};\r\nvar VueCookiesManager = /** @class */ (function () {\r\n function VueCookiesManager() {\r\n this.current_default_config = defaultConfig;\r\n }\r\n VueCookiesManager.prototype.config = function (config) {\r\n for (var propertyName in this.current_default_config) {\r\n this.current_default_config[propertyName] = config[propertyName]\r\n ? config[propertyName]\r\n : defaultConfig[propertyName];\r\n }\r\n };\r\n VueCookiesManager.prototype.get = function (keyName) {\r\n var value = decodeURIComponent(document.cookie.replace(new RegExp(\"(?:(?:^|.*;)\\\\s*\" +\r\n encodeURIComponent(keyName).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\r\n \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"), \"$1\")) || null;\r\n if (value &&\r\n value.substring(0, 1) === \"{\" &&\r\n value.substring(value.length - 1, value.length) === \"}\") {\r\n try {\r\n value = JSON.parse(value);\r\n }\r\n catch (e) {\r\n return value;\r\n }\r\n }\r\n return value;\r\n };\r\n VueCookiesManager.prototype.set = function (keyName, value, expireTimes, path, domain, secure, sameSite) {\r\n if (!keyName) {\r\n throw new Error(\"Cookie name is not found in the first argument.\");\r\n }\r\n else if (/^(?:expires|max-age|path|domain|secure|SameSite)$/i.test(keyName)) {\r\n throw new Error('Cookie name illegality. Cannot be set to [\"expires\",\"max-age\",\"path\",\"domain\",\"secure\",\"SameSite\"]\\t current key name: ' +\r\n keyName);\r\n }\r\n // support json object\r\n if (value && value.constructor === Object) {\r\n value = JSON.stringify(value);\r\n }\r\n var _expires = \"\";\r\n if (expireTimes == undefined) {\r\n expireTimes = this.current_default_config.expireTimes\r\n ? this.current_default_config.expireTimes\r\n : \"\";\r\n }\r\n if (expireTimes && expireTimes != 0) {\r\n switch (expireTimes.constructor) {\r\n case Number:\r\n if (expireTimes === Infinity || expireTimes === -1)\r\n _expires = \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\";\r\n else\r\n _expires = \"; max-age=\" + expireTimes;\r\n break;\r\n case String:\r\n if (/^(?:\\d+(y|m|d|h|min|s))$/i.test(expireTimes)) {\r\n // get capture number group\r\n var _expireTime = expireTimes.replace(/^(\\d+)(?:y|m|d|h|min|s)$/i, \"$1\");\r\n // get capture type group , to lower case\r\n switch (expireTimes\r\n .replace(/^(?:\\d+)(y|m|d|h|min|s)$/i, \"$1\")\r\n .toLowerCase()) {\r\n // Frequency sorting\r\n case \"m\":\r\n _expires = \"; max-age=\" + +_expireTime * 2592000;\r\n break; // 60 * 60 * 24 * 30\r\n case \"d\":\r\n _expires = \"; max-age=\" + +_expireTime * 86400;\r\n break; // 60 * 60 * 24\r\n case \"h\":\r\n _expires = \"; max-age=\" + +_expireTime * 3600;\r\n break; // 60 * 60\r\n case \"min\":\r\n _expires = \"; max-age=\" + +_expireTime * 60;\r\n break; // 60\r\n case \"s\":\r\n _expires = \"; max-age=\" + _expireTime;\r\n break;\r\n case \"y\":\r\n _expires = \"; max-age=\" + +_expireTime * 31104000;\r\n break; // 60 * 60 * 24 * 30 * 12\r\n default:\r\n new Error('unknown exception of \"set operation\"');\r\n }\r\n }\r\n else {\r\n _expires = \"; expires=\" + expireTimes;\r\n }\r\n break;\r\n case Date:\r\n _expires = \"; expires=\" + expireTimes.toUTCString();\r\n break;\r\n }\r\n }\r\n document.cookie =\r\n encodeURIComponent(keyName) +\r\n \"=\" +\r\n encodeURIComponent(value) +\r\n _expires +\r\n (domain\r\n ? \"; domain=\" + domain\r\n : this.current_default_config.domain\r\n ? this.current_default_config.domain\r\n : \"\") +\r\n (path\r\n ? \"; path=\" + path\r\n : this.current_default_config.path\r\n ? this.current_default_config.path\r\n : \"; path=/\") +\r\n (secure == undefined\r\n ? this.current_default_config.secure\r\n ? \"; Secure\"\r\n : \"\"\r\n : secure\r\n ? \"; Secure\"\r\n : \"\") +\r\n (sameSite == undefined\r\n ? this.current_default_config.sameSite\r\n ? \"; SameSute=\" + this.current_default_config.sameSite\r\n : \"\"\r\n : sameSite\r\n ? \"; SameSite=\" + sameSite\r\n : \"\");\r\n return this;\r\n };\r\n VueCookiesManager.prototype.remove = function (keyName, path, domain) {\r\n if (!keyName || !this.isKey(keyName)) {\r\n return false;\r\n }\r\n document.cookie =\r\n encodeURIComponent(keyName) +\r\n \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" +\r\n (domain\r\n ? \"; domain=\" + domain\r\n : this.current_default_config.domain\r\n ? this.current_default_config.domain\r\n : \"\") +\r\n (path\r\n ? \"; path=\" + path\r\n : this.current_default_config.path\r\n ? this.current_default_config.path\r\n : \"; path=/\") +\r\n \"; SameSite=Lax\";\r\n return true;\r\n };\r\n VueCookiesManager.prototype.isKey = function (keyName) {\r\n return new RegExp(\"(?:^|;\\\\s*)\" +\r\n encodeURIComponent(keyName).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\r\n \"\\\\s*\\\\=\").test(document.cookie);\r\n };\r\n VueCookiesManager.prototype.keys = function () {\r\n if (!document.cookie)\r\n return [];\r\n var _keys = document.cookie\r\n .replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\")\r\n .split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var _index = 0; _index < _keys.length; _index++) {\r\n _keys[_index] = decodeURIComponent(_keys[_index]);\r\n }\r\n return _keys;\r\n };\r\n return VueCookiesManager;\r\n}());\r\nexport default {\r\n install: function (app, options) {\r\n app.config.globalProperties.$cookies = new VueCookiesManager();\r\n if (options) {\r\n app.config.globalProperties.$cookies.config(options);\r\n }\r\n },\r\n};\r\nvar GLOBAL_COOKIES_MANAGER = null;\r\nfunction globalCookiesConfig(options) {\r\n if (GLOBAL_COOKIES_MANAGER == null) {\r\n GLOBAL_COOKIES_MANAGER = new VueCookiesManager();\r\n }\r\n GLOBAL_COOKIES_MANAGER.config(options);\r\n}\r\nfunction useCookies() {\r\n if (GLOBAL_COOKIES_MANAGER == null) {\r\n GLOBAL_COOKIES_MANAGER = new VueCookiesManager();\r\n }\r\n var cookies = reactive(GLOBAL_COOKIES_MANAGER);\r\n return { cookies: cookies };\r\n}\r\nexport { globalCookiesConfig, useCookies };\r\n","import { defineStore, acceptHMRUpdate } from \"pinia\";\nimport { ref } from \"vue\";\nimport { useRoute, useRouter, type RouteLocationNormalizedLoaded } from \"vue-router\";\nimport { useCookies } from \"vue3-cookies\";\n\nexport interface MonitoringHistoryPeriod {\n pVal: number;\n text: string;\n refreshIntervalVal: number;\n refreshIntervalText: string;\n}\n\nexport const useMonitoringHistoryPeriodStore = defineStore(\"MonitoringHistoryPeriodStore\", () => {\n const { cookies } = useCookies();\n const route = useRoute();\n const router = useRouter();\n\n const periods: MonitoringHistoryPeriod[] = [\n { pVal: 1, text: \"1m\", refreshIntervalVal: 1 * 1000, refreshIntervalText: \"Show data from the last minute. Refreshes every 1 second\" },\n { pVal: 5, text: \"5m\", refreshIntervalVal: 5 * 1000, refreshIntervalText: \"Show data from the last 5 minutes. Refreshes every 5 seconds\" },\n { pVal: 10, text: \"10m\", refreshIntervalVal: 10 * 1000, refreshIntervalText: \"Show data from the last 10 minutes. Refreshes every 10 seconds\" },\n { pVal: 15, text: \"15m\", refreshIntervalVal: 15 * 1000, refreshIntervalText: \"Show data from the last 15 minutes. Refreshes every 15 seconds\" },\n { pVal: 30, text: \"30m\", refreshIntervalVal: 30 * 1000, refreshIntervalText: \"Show data from the last 30 minutes. Refreshes every 30 seconds\" },\n { pVal: 60, text: \"1h\", refreshIntervalVal: 60 * 1000, refreshIntervalText: \"Show data from the last hour. Refreshes every 1 minute\" },\n ];\n\n function getHistoryPeriod(route?: RouteLocationNormalizedLoaded, requestedPeriod?: string) {\n const period = requestedPeriod ?? (route?.query?.historyPeriod?.toString() || cookies.get(\"history_period\"));\n\n return allPeriods.value.find((index) => index.pVal === parseInt(period)) ?? periods[0];\n }\n\n const allPeriods = ref(periods);\n\n const historyPeriod = ref(getHistoryPeriod(route));\n\n /**\n * @param {String} requestedPeriod - The history period value\n * @description Sets the history period based on, in order of importance, a passed parameter, the url query string, saved cookie, or default value\n */\n async function setHistoryPeriod(requestedPeriod?: string) {\n historyPeriod.value = getHistoryPeriod(route, requestedPeriod);\n cookies.set(\"history_period\", historyPeriod.value.pVal.toString());\n await router.replace({ query: { ...route.query, historyPeriod: historyPeriod.value.pVal } });\n }\n\n return {\n allPeriods,\n historyPeriod,\n setHistoryPeriod,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useMonitoringHistoryPeriodStore, import.meta.hot));\n}\n\nexport type MonitoringHistoryPeriodStore = ReturnType;\n","import { defineStore, acceptHMRUpdate } from \"pinia\";\nimport { computed, ref, watch } from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport { useMonitoringHistoryPeriodStore } from \"./MonitoringHistoryPeriodStore\";\nimport type { EndpointGroup, Endpoint, GroupedEndpoint } from \"@/resources/MonitoringEndpoint\";\nimport type { SortInfo } from \"@/components/SortInfo\";\nimport useConnectionsAndStatsAutoRefresh from \"@/composables/useConnectionsAndStatsAutoRefresh\";\nimport { useServiceControlStore } from \"./ServiceControlStore\";\nimport GroupOperation from \"@/resources/GroupOperation\";\n\nexport const useMonitoringStore = defineStore(\"MonitoringStore\", () => {\n const historyPeriodStore = useMonitoringHistoryPeriodStore();\n\n const route = useRoute();\n const router = useRouter();\n const { store: connectionStore } = useConnectionsAndStatsAutoRefresh();\n const serviceControlStore = useServiceControlStore();\n\n //STORE STATE CONSTANTS\n const grouping = ref({\n groupedEndpoints: [] as EndpointGroup[],\n groupSegments: 0,\n selectedGrouping: 0,\n });\n\n const sortBy = ref({\n property: \"name\",\n isAscending: true,\n });\n\n const endpointList = ref([]);\n const disconnectedEndpointCount = ref(0);\n const filterString = ref(\"\");\n const endpointListCount = computed(() => endpointList.value.length);\n const endpointListIsEmpty = computed(() => endpointListCount.value === 0);\n const endpointListIsGrouped = computed(() => grouping.value.selectedGrouping !== 0);\n const getEndpointList = computed(() => (filterString.value ? endpointList.value.filter((endpoint) => endpoint.name.toLowerCase().includes(filterString.value.toLowerCase())) : endpointList.value));\n\n watch(sortBy, async () => await updateEndpointList(), { deep: true });\n watch(filterString, async (newValue) => {\n await updateFilterString(newValue);\n });\n\n //STORE ACTIONS\n async function updateFilterString(filter: string | null = null) {\n filterString.value = filter ?? route.query.filter?.toString() ?? \"\";\n\n if (filterString.value === \"\") {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { filter, ...withoutFilter } = route.query;\n await router.replace({ query: withoutFilter }); // Update or add filter query parameter to url\n } else {\n await router.replace({ query: { ...route.query, filter: filterString.value } }); // Update or add filter query parameter to url\n }\n updateGroupedEndpoints();\n }\n\n async function updateEndpointList() {\n if (connectionStore.monitoringConnectionState.unableToConnect) {\n endpointList.value = [];\n } else {\n endpointList.value = await getAllMonitoredEndpoints();\n }\n if (!endpointListIsEmpty.value) {\n updateGroupSegments();\n if (endpointListIsGrouped.value) {\n updateGroupedEndpoints();\n } else {\n sortEndpointList();\n }\n }\n }\n\n async function getAllMonitoredEndpoints() {\n let endpoints: Endpoint[] = [];\n if (serviceControlStore.isMonitoringEnabled) {\n try {\n const [, data] = await serviceControlStore.fetchTypedFromMonitoring(`monitored-endpoints?history=${historyPeriodStore.historyPeriod.pVal}`);\n endpoints = data ?? [];\n const [, exceptionGroups] = await serviceControlStore.fetchTypedFromServiceControl(`recoverability/groups/Endpoint Name`);\n\n //Squash and add to existing monitored endpoints\n if (exceptionGroups.length > 0) {\n //sort the exceptionGroups array by name - case sensitive\n exceptionGroups.sort((a, b) => (a.title > b.title ? 1 : a.title < b.title ? -1 : 0)); //desc\n exceptionGroups\n .filter((exceptionGroup) => exceptionGroup.operation_status !== \"ArchiveCompleted\")\n .forEach((exceptionGroup) => {\n const monitoredEndpoint = endpoints.find((item) => item.name === exceptionGroup.title);\n if (monitoredEndpoint) {\n monitoredEndpoint.serviceControlId = exceptionGroup.id;\n monitoredEndpoint.errorCount = exceptionGroup.count;\n }\n });\n }\n } catch (error) {\n console.error(error);\n }\n }\n return endpoints;\n }\n\n function updateSelectedGrouping(groupSize: number) {\n grouping.value.selectedGrouping = groupSize;\n if (groupSize === 0) {\n sortEndpointList();\n } else {\n updateGroupedEndpoints();\n }\n }\n\n function updateGroupSegments() {\n grouping.value.groupSegments = endpointList.value.reduce((acc, cur) => Math.max(acc, cur.name.split(\".\").length - 1), 0);\n }\n\n function updateGroupedEndpoints() {\n const groups = new Map();\n for (const element of getEndpointList.value) {\n const newGrouping = parseEndpoint(element, grouping.value.selectedGrouping);\n\n const resultGroup = groups.get(newGrouping.groupName) ?? {\n group: newGrouping.groupName,\n endpoints: [],\n };\n resultGroup.endpoints.push(newGrouping);\n groups.set(newGrouping.groupName, resultGroup);\n }\n\n grouping.value.groupedEndpoints = [...groups.values()];\n sortGroupedEndpointList();\n }\n\n function parseEndpoint(endpoint: Endpoint, maxGroupSegments: number) {\n if (maxGroupSegments === 0) {\n return {\n groupName: \"Ungrouped\",\n shortName: endpoint.name,\n endpoint: endpoint,\n };\n }\n\n const segments = endpoint.name.split(\".\");\n const groupSegments = segments.slice(0, maxGroupSegments);\n const endpointSegments = segments.slice(maxGroupSegments);\n if (endpointSegments.length === 0) {\n // the endpoint's name is shorter than the group size\n return parseEndpoint(endpoint, maxGroupSegments - 1);\n }\n\n return {\n groupName: groupSegments.join(\".\"),\n shortName: endpointSegments.join(\".\"),\n endpoint,\n } as GroupedEndpoint;\n }\n\n function sortEndpointList() {\n const comparator = (() => {\n if (sortBy.value.property === \"name\") {\n return (a: Endpoint, b: Endpoint) => (sortBy.value.isAscending ? a.name.localeCompare(b.name) : b.name.localeCompare(a.name));\n } else {\n return (a: Endpoint, b: Endpoint) => {\n const propertyA = a.metrics[sortBy.value.property].average;\n const propertyB = b.metrics[sortBy.value.property].average;\n\n return sortBy.value.isAscending ? propertyA - propertyB : propertyB - propertyA;\n };\n }\n })();\n\n endpointList.value.sort(comparator);\n }\n\n function sortGroupedEndpointList() {\n let comparator;\n const endpointShortNameComparator = (a: GroupedEndpoint, b: GroupedEndpoint) => {\n return sortBy.value.isAscending ? a.shortName.localeCompare(b.shortName) : b.shortName.localeCompare(a.shortName);\n };\n\n if (sortBy.value.property === \"name\") {\n comparator = (a: EndpointGroup, b: EndpointGroup) => {\n const groupNameA = a.group;\n const groupNameB = b.group;\n const endpointListGroupA = a.endpoints;\n const endpointListGroupB = b.endpoints;\n\n // Sort each group's endpoints before sorting the group name\n endpointListGroupA.sort(endpointShortNameComparator);\n endpointListGroupB.sort(endpointShortNameComparator);\n\n return sortBy.value.isAscending ? groupNameA.localeCompare(groupNameB) : groupNameB.localeCompare(groupNameA);\n };\n }\n // TODO: Determine how sorting should be handled for columns other than endpoint name\n\n if (grouping.value.groupedEndpoints.length > 1) {\n grouping.value.groupedEndpoints.sort(comparator);\n } else if (grouping.value.groupedEndpoints.length === 1) {\n grouping.value.groupedEndpoints[0].endpoints.sort(endpointShortNameComparator);\n }\n }\n\n return {\n //state\n grouping,\n endpointList,\n disconnectedEndpointCount,\n filterString,\n sortBy,\n\n //getters\n endpointListCount,\n endpointListIsEmpty,\n endpointListIsGrouped,\n getEndpointList,\n\n //actions\n updateSelectedGrouping,\n updateEndpointList,\n updateFilterString,\n };\n});\n\nif (import.meta.hot) {\n import.meta.hot.accept(acceptHMRUpdate(useMonitoringStore, import.meta.hot));\n}\n\nexport type MonitoringStore = ReturnType;\n","\n\n\n\n\n","import { type EndpointValues } from \"@/resources/MonitoringEndpoint\";\nimport { useFormatTime, useFormatLargeNumber, type ValueWithUnit } from \"../../composables/formatter\";\n\nexport function formatGraphDuration(input?: EndpointValues): ValueWithUnit {\n if (input != null) {\n const lastValue = input.points.length > 0 ? input.points[input.points.length - 1] : 0;\n return useFormatTime(lastValue);\n }\n return { value: \"0\", unit: \"\" };\n}\n\nexport function formatGraphDecimalFromNumber(input?: number, deci?: number): string {\n input = input ?? 0;\n let decimals = 0;\n if (input < 10 || input > 1000000) {\n decimals = 2;\n }\n return useFormatLargeNumber(input, deci || decimals);\n}\n\nexport function formatGraphDecimal(input?: EndpointValues, deci?: number): string {\n input = input ?? {\n points: [],\n average: 0,\n };\n const lastValue = input.points.length > 0 ? input.points[input.points.length - 1] : 0;\n return formatGraphDecimalFromNumber(lastValue, deci);\n}\n\nexport const largeGraphsMinimumYAxis = Object.freeze({\n queueLength: 10,\n throughputRetries: 10,\n processingCritical: 10,\n});\n\nexport const smallGraphsMinimumYAxis = Object.freeze({\n queueLength: 10,\n throughput: 10,\n retries: 10,\n processingTime: 10,\n criticalTime: 10,\n});\n","import { ref, toValue, watchEffect } from \"vue\";\nimport type { Coordinate, PlotData } from \"./PlotData\";\n\nexport function useGraph(plotdata: () => PlotData | undefined, minimumyaxis: () => number | undefined, minPoints = () => 10) {\n const valuesPath = ref(\"\"),\n valuesArea = ref(\"\"),\n maxYaxis = ref(10),\n average = ref(0),\n averageLine = ref(\"\");\n\n const createGraph = () => {\n const plotData = toValue(plotdata) ?? { points: [], average: 0 };\n const values = (() => {\n let result = plotData.points;\n if (result.length === 0) {\n result = new Array(toValue(minPoints)).fill(0);\n }\n return result;\n })();\n const xTick = 100 / (values.length - 1);\n const coordinates = values.reduce((points: Coordinate[], yValue, i) => [...points, [i * xTick, yValue] as Coordinate], []);\n valuesPath.value = new Path().startAt(coordinates[0]).followCoordinates(coordinates.slice(1)).toString();\n valuesArea.value = new Path().startAt([0, 0]).followCoordinates(coordinates).lineTo([100, 0]).close().toString();\n\n average.value = plotData.average;\n //TODO: why is this called minimumYaxis when it's only used to determine the maxYaxis?\n // should the graph actually set the min y value rather than leave it at 0?\n const minYaxis = toValue(minimumyaxis) ?? 10;\n const minimumYaxis = !isNaN(minYaxis) ? Number(minYaxis) : 10;\n maxYaxis.value = Math.max(...[...values, average.value * 1.5, minimumYaxis]);\n\n averageLine.value = new Path().startAt([0, average.value]).lineTo([100, average.value]).toString();\n };\n\n watchEffect(() => createGraph());\n\n return { valuesPath, valuesArea, maxYaxis, average, averageLine };\n}\n\nclass Path {\n #pathElements: string[] = [];\n #complete = false;\n\n startAt([x, y]: Coordinate) {\n if (this.#pathElements.length > 0) throw new Error(\"startAt must be the first call on a path\");\n return this.moveTo([x, y]);\n }\n\n moveTo([x, y]: Coordinate) {\n if (this.#complete) throw new Error(\"Path is already closed\");\n this.#pathElements.push(`M${x} ${y}`);\n return this;\n }\n\n lineTo([x, y]: Coordinate) {\n if (this.#complete) throw new Error(\"Path is already closed\");\n this.#pathElements.push(`L${x} ${y}`);\n return this;\n }\n\n followCoordinates(coordinates: Coordinate[]) {\n for (const c of coordinates) {\n this.lineTo(c);\n }\n return this;\n }\n\n close() {\n if (this.#complete) throw new Error(\"Path is already closed\");\n if (this.#pathElements.length === 0) throw new Error(\"Cannot close an empty path\");\n this.#pathElements.push(\"Z\");\n this.#complete = true;\n return this;\n }\n\n toString() {\n return this.#pathElements.join(\" \");\n }\n}\n","\n\n\n\n\n","/*!\n * vue-tippy v6.7.1\n * (c) 2025 \n * @license MIT\n */\nimport { getCurrentInstance, ref, shallowRef, onMounted, onUnmounted, isRef, isReactive, watch, isVNode, createApp, h, defineComponent, nextTick, unref, reactive } from 'vue';\n\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar clippingParents = 'clippingParents';\nvar viewport = 'viewport';\nvar popper = 'popper';\nvar reference = 'reference';\nvar variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nvar max = Math.max;\nvar min = Math.min;\nvar round = Math.round;\n\nfunction getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n var offsetHeight = element.offsetHeight;\n var offsetWidth = element.offsetWidth; // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // Fallback to 1 in case both values are `0`\n\n if (offsetWidth > 0) {\n scaleX = round(rect.width) / offsetWidth || 1;\n }\n\n if (offsetHeight > 0) {\n scaleY = round(rect.height) / offsetHeight || 1;\n }\n }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}\n\n// means it doesn't take into account transforms.\n\nfunction getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}\n\nfunction contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}\n\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n\nfunction getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}\n\nfunction getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\nfunction withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}\n\nfunction getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}\n\nfunction mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}\n\nfunction expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect$1(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar arrow$1 = {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect$1,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};\n\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};\n\nvar passive = {\n passive: true\n};\n\nfunction effect$2(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect$2,\n data: {}\n};\n\nvar hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\nvar hash$1 = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash$1[matched];\n });\n}\n\nfunction getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}\n\nfunction getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}\n\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n\nfunction rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body' && (canEscapeClipping ? getComputedStyle(clippingParent).position !== 'static' : true);\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nfunction computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n }\n }\n\n return offsets;\n}\n\nfunction detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n\nfunction computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements$1.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements$1;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar flip$1 = {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar hide$1 = {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};\n\nfunction distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};\n\nfunction getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min$1 = offset + overflow[mainSide];\n var max$1 = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar preventOverflow$1 = {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};\n\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nfunction orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}\n\nfunction debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}\n\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nvar defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1, offset$1, flip$1, preventOverflow$1, arrow$1, hide$1];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\n/**!\n* tippy.js v6.3.7\n* (c) 2017-2021 atomiks\n* MIT License\n*/\n\nvar ROUND_ARROW = '';\nvar BOX_CLASS = \"tippy-box\";\nvar CONTENT_CLASS = \"tippy-content\";\nvar BACKDROP_CLASS = \"tippy-backdrop\";\nvar ARROW_CLASS = \"tippy-arrow\";\nvar SVG_ARROW_CLASS = \"tippy-svg-arrow\";\nvar TOUCH_OPTIONS = {\n passive: true,\n capture: true\n};\nvar TIPPY_DEFAULT_APPEND_TO = function TIPPY_DEFAULT_APPEND_TO() {\n return document.body;\n};\nfunction getValueAtIndexOrReturn(value, index, defaultValue) {\n if (Array.isArray(value)) {\n var v = value[index];\n return v == null ? Array.isArray(defaultValue) ? defaultValue[index] : defaultValue : v;\n }\n\n return value;\n}\nfunction isType(value, type) {\n var str = {}.toString.call(value);\n return str.indexOf('[object') === 0 && str.indexOf(type + \"]\") > -1;\n}\nfunction invokeWithArgsOrReturn(value, args) {\n return typeof value === 'function' ? value.apply(void 0, args) : value;\n}\nfunction debounce$1(fn, ms) {\n // Avoid wrapping in `setTimeout` if ms is 0 anyway\n if (ms === 0) {\n return fn;\n }\n\n var timeout;\n return function (arg) {\n clearTimeout(timeout);\n timeout = setTimeout(function () {\n fn(arg);\n }, ms);\n };\n}\nfunction removeProperties(obj, keys) {\n var clone = Object.assign({}, obj);\n keys.forEach(function (key) {\n delete clone[key];\n });\n return clone;\n}\nfunction splitBySpaces(value) {\n return value.split(/\\s+/).filter(Boolean);\n}\nfunction normalizeToArray(value) {\n return [].concat(value);\n}\nfunction pushIfUnique(arr, value) {\n if (arr.indexOf(value) === -1) {\n arr.push(value);\n }\n}\nfunction unique(arr) {\n return arr.filter(function (item, index) {\n return arr.indexOf(item) === index;\n });\n}\nfunction getBasePlacement$1(placement) {\n return placement.split('-')[0];\n}\nfunction arrayFrom(value) {\n return [].slice.call(value);\n}\nfunction removeUndefinedProps(obj) {\n return Object.keys(obj).reduce(function (acc, key) {\n if (obj[key] !== undefined) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nfunction div() {\n return document.createElement('div');\n}\nfunction isElement$1(value) {\n return ['Element', 'Fragment'].some(function (type) {\n return isType(value, type);\n });\n}\nfunction isNodeList(value) {\n return isType(value, 'NodeList');\n}\nfunction isMouseEvent(value) {\n return isType(value, 'MouseEvent');\n}\nfunction isReferenceElement(value) {\n return !!(value && value._tippy && value._tippy.reference === value);\n}\nfunction getArrayOfElements(value) {\n if (isElement$1(value)) {\n return [value];\n }\n\n if (isNodeList(value)) {\n return arrayFrom(value);\n }\n\n if (Array.isArray(value)) {\n return value;\n }\n\n return arrayFrom(document.querySelectorAll(value));\n}\nfunction setTransitionDuration(els, value) {\n els.forEach(function (el) {\n if (el) {\n el.style.transitionDuration = value + \"ms\";\n }\n });\n}\nfunction setVisibilityState(els, state) {\n els.forEach(function (el) {\n if (el) {\n el.setAttribute('data-state', state);\n }\n });\n}\nfunction getOwnerDocument(elementOrElements) {\n var _element$ownerDocumen;\n\n var _normalizeToArray = normalizeToArray(elementOrElements),\n element = _normalizeToArray[0]; // Elements created via a